eve
Version:
Filesystem-first framework for durable backend AI agents that run anywhere.
1 lines • 836 B
JavaScript
import{join,posix}from"node:path";import{readFile,readdir}from"node:fs/promises";import{WORKSPACE_ROOT}from"#runtime/workspace/types.js";async function materializeWorkspaceDirectory(e){let t=[];return await addMaterializedDirectoryFiles({files:t,logicalDirectoryPath:`.`,sourceDirectoryPath:e}),t.sort((e,t)=>e.path.localeCompare(t.path)),t}async function addMaterializedDirectoryFiles(r){let i=await readdir(r.sourceDirectoryPath,{withFileTypes:!0});for(let n of i){if(!n.isDirectory()&&!n.isFile())continue;let i=join(r.sourceDirectoryPath,n.name),a=posix.join(r.logicalDirectoryPath,n.name);if(n.isDirectory()){await addMaterializedDirectoryFiles({files:r.files,logicalDirectoryPath:a,sourceDirectoryPath:i});continue}r.files.push({content:await readFile(i),path:posix.join(WORKSPACE_ROOT,a)})}}export{materializeWorkspaceDirectory};