eve
Version:
Filesystem-first framework for durable backend AI agents that run anywhere.
2 lines • 1.53 kB
JavaScript
import{defineSetupIntegration}from"../types.js";import{FILE_MEMORY_BLOB_ENVIRONMENTS,applyFileMemoryBlob,prepareFileMemoryBlob}from"./vercel.js";const defaultDeps={applyBlob:applyFileMemoryBlob,prepareBlob:prepareFileMemoryBlob};async function prepareFileMemorySetup(e,t=defaultDeps){let n=await e.resolveVercelProject(`file memory`);return await t.prepareBlob({appRoot:e.appRoot,project:n,signal:e.signal})}async function applyFileMemorySetup(e,t,n=defaultDeps){t.presenter.note([`Project: ${e.projectName} (${e.project.projectId})`,`Store: ${e.storeName}`,`Region: ${e.region}`,`Environments: ${FILE_MEMORY_BLOB_ENVIRONMENTS.join(`, `)}`,`Setup will create or connect a private Vercel Blob resource. Blob usage may incur charges.`].join(`
`),`File-memory storage`),e.regionWarning!==void 0&&t.presenter.log.warning(e.regionWarning);let r=await n.applyBlob({appRoot:t.appRoot,log:t.presenter.log,plan:e,signal:t.signal}),i=r.action===`create`?`Created`:r.action===`repair`?`Repaired`:`Reused`;return{deploymentRequired:!0,facts:[{label:`Blob store`,value:r.store.name},{label:`Vercel project`,value:e.projectName},{label:`Region`,value:r.store.region},{label:`Environments`,value:FILE_MEMORY_BLOB_ENVIRONMENTS.join(`, `)},{label:`Setup result`,value:i}]}}const FILE_MEMORY_SETUP=defineSetupIntegration({kind:`file-memory`,label:`File memory`,hint:`Store durable facts in a private Vercel Blob store`,prepare:prepareFileMemorySetup,apply:applyFileMemorySetup});export{FILE_MEMORY_SETUP,applyFileMemorySetup,prepareFileMemorySetup};