eve
Version:
Filesystem-first framework for durable backend AI agents that run anywhere.
1 lines • 1.14 kB
JavaScript
import{mkdir}from"node:fs/promises";import{resolve}from"node:path";import{getLocalDevCapability}from"eve/local-dev";async function createSelfModificationFilesystem(e){let t=getLocalDevCapability();if(t===void 0)throw Error(`Self-modification requires eve dev facilities for the authored source tree and watcher.`);let{MountableFs:n,OverlayFs:r,ReadWriteFs:i}=e.justBash,a=t.appRoot,o=resolve(a,`.eve/traces/v1`),s=resolve(a,`.eve/logs`);return await Promise.all([e.defaultFilesystem.mkdir(`/source`,{recursive:!0}),mkdir(o,{recursive:!0}),mkdir(s,{recursive:!0})]),new n({base:e.defaultFilesystem,mounts:[{filesystem:new i({allowSymlinks:!1,maxFileReadSize:2**53-1,root:resolve(a,`agent`)}),mountPoint:`/source`},{filesystem:new r({mountPoint:`/`,readOnly:!0,root:o}),mountPoint:`/traces`},{filesystem:new r({mountPoint:`/`,readOnly:!0,root:s}),mountPoint:`/logs`},{filesystem:new r({mountPoint:`/`,readOnly:!0,root:resolve(a,`node_modules/eve/docs`)}),mountPoint:`/eve-docs`}]})}const createLocalSelfModificationFilesystem=createSelfModificationFilesystem;export{createLocalSelfModificationFilesystem,createSelfModificationFilesystem};