UNPKG

eve

Version:

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

1 lines 1.39 kB
import{isObject}from"#shared/guards.js";const sessionInboxWireV3Migration={from:3,migrate(e){if(!isObject(e))throw Error(`session inbox wire v3 value is not an object.`);return e.kind===`deliver`?{...e,payload:migratePayload(e.payload),payloads:Array.isArray(e.payloads)?e.payloads.map(migratePayload):e.payloads,version:4}:{...e,version:4}},to:4};function migratePayload(e){if(!isObject(e)||!isObject(e.task))return e;let t=e.task;return{...e,task:{agentRequests:t.agentRequests,authorizationEvents:t.authorizationEvents,inputRequests:migrateInputRequests(t.inputRequests),views:Array.isArray(t.views)?t.views.map(migrateTaskView):t.views}}}function migrateInputRequests(e){if(Array.isArray(e))return e.flatMap(e=>{if(!isObject(e))return[];if(`request`in e||`requests`in e)return[e];if(!isObject(e.hookPayload)||typeof e.taskId!=`string`)return[];let t=e.hookPayload,n=t.event;return typeof t.childContinuationToken!=`string`||!isObject(n)||!Array.isArray(n.requests)||typeof n.sequence!=`number`||typeof n.stepIndex!=`number`||typeof n.turnId!=`string`?[]:n.requests.map(r=>({...e,replyTo:t.childContinuationToken,request:r,sequence:n.sequence,stepIndex:n.stepIndex,taskId:e.taskId,turnId:n.turnId}))})}function migrateTaskView(e){return!isObject(e)||!isObject(e.executor)?e:{...e,executor:e.executor.binding===void 0?void 0:{binding:e.executor.binding}}}export{sessionInboxWireV3Migration};