eve
Version:
Filesystem-first framework for durable backend AI agents that run anywhere.
1 lines • 1.26 kB
JavaScript
import{createStableHash}from"#execution/sandbox/bindings/microsandbox-runtime.js";import{pruneMicrosandboxTemplates}from"#execution/sandbox/bindings/microsandbox-templates.js";import{microsandboxOptionsForHash,resolveMicrosandboxOptions}from"#execution/sandbox/bindings/microsandbox-options.js";import{enrichMicrosandboxError}from"#execution/sandbox/bindings/microsandbox-create.js";import{createMicrosandboxHandle,prewarmMicrosandboxTemplate}from"#execution/sandbox/bindings/microsandbox-lifecycle.js";const MICROSANDBOX_BACKEND_NAME=`microsandbox`;function createMicrosandboxSandboxBackend(t={}){let n=resolveMicrosandboxOptions(t.createOptions),r=createStableHash(JSON.stringify(microsandboxOptionsForHash(n))).slice(0,20);return{name:MICROSANDBOX_BACKEND_NAME,async prewarm(e){try{return await prewarmMicrosandboxTemplate({backendName:MICROSANDBOX_BACKEND_NAME,options:n,optionsHash:r,prewarmInput:e})}catch(t){throw enrichMicrosandboxError({context:`Failed to prewarm microsandbox template "${e.templateKey}"`,error:t})}},async create(e){return await createMicrosandboxHandle({backendName:MICROSANDBOX_BACKEND_NAME,createInput:e,options:n,optionsHash:r})}}}export{MICROSANDBOX_BACKEND_NAME,createMicrosandboxSandboxBackend,pruneMicrosandboxTemplates};