UNPKG

eve

Version:

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

1 lines 1.34 kB
import{expectFunction,expectObjectRecord,expectOnlyKnownKeys}from"#internal/authored-module.js";import{toErrorMessage}from"#shared/errors.js";import{ResolveAgentError,loadResolvedModuleExport}from"#runtime/resolve-helpers.js";async function resolveDynamicSubagentDefinition(e){try{let t=await loadResolvedModuleExport({definition:e.definition,kindLabel:`dynamic subagent`,moduleMap:e.moduleMap,nodeId:e.nodeId});return normalizeResolvedDynamicSubagentDefinition(e.definition,t)}catch(t){throw t instanceof ResolveAgentError?t:new ResolveAgentError(`Failed to resolve dynamic subagent from "${e.definition.logicalPath}": ${toErrorMessage(t)}`,{logicalPath:e.definition.logicalPath,sourceId:e.definition.sourceId})}}function normalizeResolvedDynamicSubagentDefinition(e,t){let n=`Expected the dynamic subagent export "${e.exportName??`default`}" from "${e.logicalPath}" to provide defineDynamic({ events }).`,r=expectObjectRecord(t,n);if(expectOnlyKnownKeys(r,[`build`,`events`,`kind`],n),r.kind!==`eve:dynamic`)throw Error(n);let i=expectObjectRecord(r.events,n),a={};for(let t of e.eventNames)a[t]=expectFunction(i[t],n);return{eventNames:[...e.eventNames],events:a,exportName:e.exportName,logicalPath:e.logicalPath,sourceId:e.sourceId,sourceKind:`module`}}export{normalizeResolvedDynamicSubagentDefinition,resolveDynamicSubagentDefinition};