eve
Version:
Filesystem-first framework for durable backend AI agents that run anywhere.
1 lines • 1.71 kB
JavaScript
import{isAbsolute,relative,sep}from"node:path";const AUTHORED_ARTIFACTS_UPDATED_LOG_LINE=`[eve:dev] authored artifacts updated.`,STRUCTURAL_RELOAD_LOG_LINE=`[eve:dev] structural change detected, reloading Nitro worker...`;function formatChangeDetectedLogLine(e,t){return`[eve:dev] change detected (${formatChangeEventList(e,t)}), rebuilding authored artifacts...`}const CHANGE_DETECTED_PATTERN=/^\[eve:dev\] change detected \(\d+ events?: (.+)\), rebuilding authored artifacts\.\.\.$/u,MORE_EVENTS_PATTERN=/^\+(\d+) more$/u,REBUILD_FAILED_PATTERN=/^\[eve:dev\] rebuild (?:failed|queue error): (.+)$/u;function parseDevRebuildLogLine(e){if(e===`[eve:dev] authored artifacts updated.`)return{kind:`rebuilt`};if(e===`[eve:dev] structural change detected, reloading Nitro worker...`)return{kind:`reloading`};let t=REBUILD_FAILED_PATTERN.exec(e);if(t!==null)return{kind:`failed`,message:t[1]};let n=CHANGE_DETECTED_PATTERN.exec(e);if(n===null)return;let r=[],i=0;for(let e of n[1].split(`, `)){let t=MORE_EVENTS_PATTERN.exec(e);if(t!==null){i+=Number(t[1]);continue}let n=e.indexOf(` `);if(n===-1)return;r.push({event:e.slice(0,n),path:e.slice(n+1)})}if(r.length!==0)return{kind:`rebuilding`,events:r,more:i}}function formatChangeEventList(e,t){let n=`${t.length} event${t.length===1?``:`s`}`,r=t.slice(0,6).map(t=>`${t.event} ${formatChangeEventPath(e,t.path)}`),i=t.length-r.length;return i>0&&r.push(`+${i} more`),`${n}: ${r.join(`, `)}`}function formatChangeEventPath(r,i){let a=relative(r,i),o=a===`..`||a.startsWith(`..${sep}`)||isAbsolute(a);return(a.length>0&&!o?a:i).replaceAll(`\\`,`/`)}export{AUTHORED_ARTIFACTS_UPDATED_LOG_LINE,STRUCTURAL_RELOAD_LOG_LINE,formatChangeDetectedLogLine,parseDevRebuildLogLine};