eve
Version:
Filesystem-first framework for durable backend AI agents that run anywhere.
1 lines • 1.09 kB
JavaScript
import{expectFunction,expectObjectRecord}from"../internal/authored-module.js";import{ResolveAgentError,loadResolvedModuleExport}from"./resolve-helpers.js";import{toErrorMessage}from"../shared/errors.js";async function resolveHookDefinition(e,t,n){try{let r=await loadResolvedModuleExport({definition:e,kindLabel:`hook`,moduleMap:t,nodeId:n}),i=expectObjectRecord(r,describe(e,`to return an object`)),a={},o=i.events;if(o!==void 0){let t=expectObjectRecord(o,describe(e,"to expose `events` as an object"));for(let[n,r]of Object.entries(t))r!==void 0&&(a[n]=expectFunction(r,describe(e,`to provide a function for "events.${n}"`)))}return{events:a,exportName:e.exportName,logicalPath:e.logicalPath,slug:e.slug,sourceId:e.sourceId,sourceKind:`module`}}catch(t){throw t instanceof ResolveAgentError?t:new ResolveAgentError(`Failed to attach hook handlers from "${e.logicalPath}": ${toErrorMessage(t)}`,{logicalPath:e.logicalPath,sourceId:e.sourceId})}}function describe(e,t){return`Expected the hook export "${e.exportName??`default`}" from "${e.logicalPath}" ${t}.`}export{resolveHookDefinition};