eve
Version:
Filesystem-first framework for durable backend AI agents that run anywhere.
1 lines • 1.38 kB
JavaScript
import{parseActivitySink}from"#channel/activity-sink.js";import{parseActivityWorkIdentityV1}from"#protocol/activity.js";function parseActivityObserverField(e){if(e!==void 0){if(typeof e!=`object`||!e)return invalidActivityObserver();try{let t=parseActivitySink(Reflect.get(e,`sink`)),n=parseActivityWorkIdentityV1(Reflect.get(e,`workIdentity`));return t===void 0||n===void 0?invalidActivityObserver():{sink:t,workIdentity:n}}catch(e){return invalidActivityObserver(e instanceof Error?e.message:`Invalid activity observer configuration.`)}}}function validateActivityObserverBinding(e,t){if(t===void 0)return invalidBinding(`Activity observer configuration requires a delegated session callback.`);if(e.workIdentity.callId!==t.callId)return invalidBinding(`Activity observer callId must match the delegated session callback.`);if(e.workIdentity.name!==t.subagentName)return invalidBinding(`Activity observer name must match the delegated session callback.`);if(new URL(e.sink.url).origin!==new URL(t.url).origin)return invalidBinding(`Activity observer sink must share the delegated callback origin.`)}function invalidActivityObserver(e=`Invalid activity observer configuration.`){return Response.json({error:e,ok:!1},{status:400})}function invalidBinding(e){return Response.json({error:e,ok:!1},{status:400})}export{parseActivityObserverField,validateActivityObserverBinding};