eve
Version:
Filesystem-first framework for durable backend AI agents that run anywhere.
1 lines • 933 B
JavaScript
import{contextStorage}from"#context/container.js";import{connectionProvider}from"#context/providers/connection.js";import{sandboxProvider}from"#context/providers/sandbox.js";import{sessionProvider}from"#context/providers/session.js";const frameworkProviders=[sessionProvider,connectionProvider,sandboxProvider];async function withContextScope(t,n,r){let a=n;t.clearVirtualContext();for(let e of frameworkProviders){let n=await e.create(t,a);n!==void 0&&(t.setVirtualContext(e.key,n.value),n.session!==void 0&&(a=n.session))}let o=await contextStorage.run(t,()=>r(a)),s=o.session;for(let e of frameworkProviders)e.commit&&t.has(e.key)&&(s=await e.commit(t.require(e.key),s));return s===o.session?o:{result:o.result,session:s}}async function runStep(e,t,n){let{result:r,session:i}=await withContextScope(e,t,async e=>{let t=await n(e);return{result:t.next,session:t.session}});return{next:r,session:i}}export{runStep,withContextScope};