eve
Version:
Filesystem-first framework for durable backend AI agents that run anywhere.
1 lines • 1.24 kB
JavaScript
import{readDurableSession}from"#execution/durable-session-store.js";import{getAgentHandleStore}from"#subagents/handles/store.js";import{findSessionTaskEntry}from"#tasks/session-index.js";import{readLatestTaskView}from"#execution/tasks/parent/run-parent.js";import{isTerminalTaskStatus}from"#tasks/types.js";async function acceptTaskAuthorizationEventStep(e){"use step";let{hookPayload:t,taskId:n}=e.delivery,r=await readDurableSession(e.sessionState),i=findSessionTaskEntry(r.state,n);if(i===void 0)return!1;if(i.metadata.kind===`tool`&&i.taskRunId===t.childSessionId&&i.metadata.name===t.subagentName&&i.createdByTurnId===t.event.data.turnId){let e=await readLatestTaskView({taskRunId:i.taskRunId});return e!==void 0&&(t.event.type===`authorization.completed`||!isTerminalTaskStatus(e.status))}let a=getAgentHandleStore(r.state)?.handles??[],o=a.find(e=>e.phase===`claimed`&&e.ownerId===n&&e.identity.name===t.subagentName&&e.address.sessionId===t.childSessionId),s=a.filter(e=>e.phase===`reserved`&&e.ownerId===n&&e.identity.name===t.subagentName);if(o===void 0&&s.length!==1)return!1;let c=await readLatestTaskView({taskRunId:i.taskRunId});return c!==void 0&&!isTerminalTaskStatus(c.status)}export{acceptTaskAuthorizationEventStep};