UNPKG

eve

Version:

Filesystem-first framework for durable backend AI agents that run anywhere.

1 lines 2.42 kB
import{resolveInstalledPackageInfo}from"#internal/application/package.js";import{dirname}from"node:path";import{mkdir,writeFile}from"node:fs/promises";import{VERCEL_EVE_AGENT_SUMMARY_KIND,VERCEL_EVE_AGENT_SUMMARY_VERSION,normalizeChannelKindForDisplay}from"#internal/vercel-agent-summary.js";function buildVercelAgentSummary(t){let{manifest:n}=t;return{kind:VERCEL_EVE_AGENT_SUMMARY_KIND,schemaVersion:VERCEL_EVE_AGENT_SUMMARY_VERSION,generatorVersion:t.generatorVersion??resolveInstalledPackageInfo().version,agent:{name:n.config.name,description:n.config.description,modelId:n.config.model.id},instructions:n.instructions?toInstructionsEntry(n.instructions):null,schedules:n.schedules.map(toScheduleEntry),tools:n.tools.map(toToolEntry),skills:n.skills.map(toSkillEntry),connections:n.connections.map(toConnectionEntry),channels:n.channels.filter(isActiveChannel).map(toChannelEntry),sandbox:n.sandbox===null?null:{logicalPath:n.sandbox.logicalPath},subagents:n.subagents.map(toSubagentEntry),diagnostics:{errors:n.diagnosticsSummary.errors,warnings:n.diagnosticsSummary.warnings}}}async function emitVercelAgentSummary(e){let r=buildVercelAgentSummary({generatorVersion:e.generatorVersion,manifest:e.manifest});return await mkdir(dirname(e.outputPath),{recursive:!0}),await writeFile(e.outputPath,`${JSON.stringify(r,null,2)}\n`),e.outputPath}function isActiveChannel(e){return e.kind===`channel`}function toInstructionsEntry(e){return{logicalPath:e.logicalPath,sourceKind:e.sourceKind,markdown:e.markdown}}function toScheduleEntry(e){return{name:e.name,cron:e.cron,logicalPath:e.logicalPath}}function toToolEntry(e){return{name:e.name,description:e.description,logicalPath:e.logicalPath}}function toSkillEntry(e){return{name:e.name,description:e.description,logicalPath:e.logicalPath,sourceKind:e.sourceKind}}function toConnectionEntry(e){let t={name:e.connectionName,description:e.description,url:e.url,logicalPath:e.logicalPath,type:e.protocol};return e.vercelConnect===void 0?t:{...t,vercelConnect:{connector:e.vercelConnect.connector}}}function toChannelEntry(e){let t={name:e.name,method:e.method,urlPath:e.urlPath,type:normalizeChannelKindForDisplay(e.adapterKind),logicalPath:e.logicalPath};return e.adapterKind===void 0?t:{...t,adapterKind:e.adapterKind}}function toSubagentEntry(e){return{name:e.name,description:e.description,logicalPath:e.logicalPath}}export{buildVercelAgentSummary,emitVercelAgentSummary};