eve
Version:
Filesystem-first framework for durable backend AI agents that run anywhere.
3 lines • 1.8 kB
JavaScript
import{discoverAgent}from"#discover/discover-agent.js";import{hasDiscoverErrors,summarizeDiscoverDiagnostics}from"#discover/diagnostics.js";import{resolveDiscoveryProject}from"#discover/project.js";import{createDiskProjectSource}from"#discover/project-source.js";import{writeCompilerArtifacts}from"#compiler/artifacts.js";var CompileAgentError=class extends Error{result;constructor(e){super(formatCompileAgentErrorMessage({diagnostics:e.diagnostics,diagnosticsPath:e.paths.diagnosticsPath})),this.name=`CompileAgentError`,this.result=e}};async function compileAgent(n={}){let i=n.source??createDiskProjectSource(),a=await resolveDiscoveryProject(n.startPath,{source:i}),o=await discoverAgent({...a,source:i}),s=await writeCompilerArtifacts({appRoot:a.appRoot,diagnostics:o.diagnostics,manifest:o.manifest}),c={diagnostics:o.diagnostics,manifest:s.compiledManifest,metadata:s.metadata,paths:s.paths,project:a};if(hasDiscoverErrors(o.diagnostics))throw new CompileAgentError(c);return reportDiscoverWarnings(o.diagnostics),c}function reportDiscoverWarnings(e){let t=e.filter(e=>e.severity===`warning`);if(t.length!==0)for(let e of t)console.warn(`Warning [${e.code}]: ${e.message}\n source: ${e.sourcePath}`)}function formatCompileAgentErrorMessage(e){let t=summarizeDiscoverDiagnostics(e.diagnostics),r=[`Discovery failed with ${t.errors} error(s) and ${t.warnings} warning(s).`];if(e.diagnosticsPath!==void 0&&r.push(`Diagnostics artifact: ${e.diagnosticsPath}`),e.diagnostics.length===0)return r.join(`
`);r.push(`Discovery diagnostics:`);for(let t of e.diagnostics)r.push(`- ${formatDiagnosticSeverity(t.severity)}: ${t.message}`),r.push(` source: ${t.sourcePath}`);return r.join(`
`)}function formatDiagnosticSeverity(e){return e===`error`?`Error`:`Warning`}export{CompileAgentError,compileAgent};