UNPKG

eve

Version:

Filesystem-first framework for durable backend AI agents that run anywhere.

1 lines 3.49 kB
import{resolveInstalledPackageInfo}from"#internal/application/package.js";import{join,relative,resolve}from"node:path";import{mkdir,writeFile}from"node:fs/promises";import{createHash}from"node:crypto";import{summarizeDiscoverDiagnostics}from"#discover/diagnostics.js";import{normalizeLogicalPath}from"#discover/filesystem.js";import{createCompiledModuleMapSource}from"#compiler/module-map.js";import{compileAgentManifest}from"#compiler/normalize-manifest.js";import{materializeWorkspaceResources}from"#compiler/workspace-resources.js";const COMPILE_METADATA_KIND=`eve-compile-metadata`,COMPILE_METADATA_VERSION=5;function resolveCompilerArtifactPaths(e){return resolveCompilerArtifactPathsAt(e,join(resolve(e),`.eve`))}function resolveCompilerArtifactPathsAt(e,n){let i=resolve(e),a=resolve(n),o=join(a,`discovery`),s=join(a,`compile`);return{appRoot:i,compiledManifestPath:join(s,`compiled-agent-manifest.json`),compileDirectoryPath:s,compileMetadataPath:join(s,`compile-metadata.json`),diagnosticsPath:join(o,`diagnostics.json`),discoveryManifestPath:join(o,`agent-discovery-manifest.json`),discoveryDirectoryPath:o,moduleMapPath:join(s,`module-map.mjs`)}}function createDiscoveryDiagnosticsArtifact(e){return{diagnostics:[...e],kind:`eve-discovery-diagnostics`,summary:summarizeDiscoverDiagnostics(e),version:1}}function createCompileMetadata(t){let n=resolveInstalledPackageInfo(),r=createContentHash(t.discoveryManifestJson),i=createContentHash(t.diagnosticsArtifactJson),a=createContentHash(t.moduleMapSource);return{compile:{moduleMap:{path:toArtifactRelativePath(t.appRoot,t.paths.moduleMapPath),sha256:a}},discovery:{diagnostics:{path:toArtifactRelativePath(t.appRoot,t.paths.diagnosticsPath),sha256:i},manifest:{path:toArtifactRelativePath(t.appRoot,t.paths.discoveryManifestPath),sha256:r},sourceGraphHash:createContentHash(`${r}:${i}:${a}`),summary:t.diagnosticsSummary},generator:{name:n.name,version:n.version},kind:COMPILE_METADATA_KIND,status:t.diagnosticsSummary.errors>0?`failed`:`ready`,version:5}}async function writeCompilerArtifacts(e){let t=resolveCompilerArtifactPathsAt(e.appRoot,e.artifactLocations.writeRoot),n=resolveCompilerArtifactPathsAt(e.appRoot,e.artifactLocations.publishedRoot),r=createDiscoveryDiagnosticsArtifact(e.diagnostics),o=await materializeWorkspaceResources({compileDirectoryPath:t.compileDirectoryPath,manifest:await compileAgentManifest(e.manifest)}),s=serializeArtifactJson(o),c=serializeArtifactJson(e.manifest),l=serializeArtifactJson(r),u=createCompiledModuleMapSource({manifest:o,moduleMapPath:n.moduleMapPath}),d=createCompileMetadata({appRoot:e.appRoot,diagnosticsArtifactJson:l,diagnosticsSummary:r.summary,discoveryManifestJson:c,moduleMapSource:u,paths:n}),f=serializeArtifactJson(d);return await mkdir(t.discoveryDirectoryPath,{recursive:!0}),await mkdir(t.compileDirectoryPath,{recursive:!0}),await Promise.all([writeFile(t.compiledManifestPath,s),writeFile(t.diagnosticsPath,l),writeFile(t.discoveryManifestPath,c),writeFile(t.moduleMapPath,u),writeFile(t.compileMetadataPath,f)]),{compiledManifest:o,diagnosticsArtifact:r,metadata:d,moduleMapSource:u,paths:t}}function createContentHash(e){return createHash(`sha256`).update(e).digest(`hex`)}function serializeArtifactJson(e){return`${JSON.stringify(e,null,2)}\n`}function toArtifactRelativePath(e,t){return normalizeLogicalPath(relative(resolve(e),t))}export{COMPILE_METADATA_KIND,COMPILE_METADATA_VERSION,createCompileMetadata,resolveCompilerArtifactPaths,writeCompilerArtifacts};