eve
Version:
Filesystem-first framework for durable backend AI agents that run anywhere.
1 lines • 983 B
JavaScript
import{assembleLocalTrace,listLocalTraceIds,listLocalTraceSegments,readLocalTraceActivityMs,readLocalTraceSegment}from"#tracing/local-trace-reader.js";function createTraceStore(e){let t=new Map;return{async list(){let t=[];for(let n of await listLocalTraceIds(e.appRoot)){let r=await readLocalTraceActivityMs(e.appRoot,n);r!==void 0&&t.push({traceId:n,lastActivityMs:r})}return t.sort((e,t)=>t.lastActivityMs===e.lastActivityMs?e.traceId.localeCompare(t.traceId):t.lastActivityMs-e.lastActivityMs)},async read(n){let r=await listLocalTraceSegments(e.appRoot,n);if(r===void 0){t.delete(n);return}let i=t.get(n);i===void 0&&(i={seen:new Set,spans:new Map},t.set(n,i));let a=!1;for(let t of r)if(!i.seen.has(t)){i.seen.add(t);for(let r of await readLocalTraceSegment(e.appRoot,n,t))i.spans.has(r.spanId)||(i.spans.set(r.spanId,r),a=!0)}if(i.spans.size!==0)return(a||i.assembled===void 0)&&(i.assembled=assembleLocalTrace(n,[...i.spans.values()])),i.assembled}}}export{createTraceStore};