@lvlup-sw/exarchos 2.0.7 → 2.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -14,10 +14,10 @@
|
|
|
14
14
|
"source": {
|
|
15
15
|
"source": "npm",
|
|
16
16
|
"package": "@lvlup-sw/exarchos",
|
|
17
|
-
"version": "2.0.
|
|
17
|
+
"version": "2.0.8"
|
|
18
18
|
},
|
|
19
19
|
"description": "SDLC workflows with agent team coordination, quality gates, and Graphite stacked PRs",
|
|
20
|
-
"version": "2.0.
|
|
20
|
+
"version": "2.0.8",
|
|
21
21
|
"author": {
|
|
22
22
|
"name": "Levelup Software"
|
|
23
23
|
},
|
package/dist/exarchos-mcp.js
CHANGED
|
@@ -28,7 +28,7 @@ ${L}`,x="",y="",s=Math.min(D,W);if(hY(F))x+=cF(F,b,W),z=z.slice(F.length),s-=F.l
|
|
|
28
28
|
${L}${x}
|
|
29
29
|
${j}`;return N.pop(),`{${x}}`}case"number":return isFinite(F)?String(F):Q?Q(F):"null";case"boolean":return F===!0?"true":"false";case"undefined":return;case"bigint":if(J)return String(F);default:return Q?Q(F):void 0}}function V(O,F,N){switch(typeof F){case"string":return T6(F);case"object":{if(F===null)return"null";if(typeof F.toJSON==="function"){if(F=F.toJSON(O),typeof F!=="object")return V(O,F,N);if(F===null)return"null"}if(N.indexOf(F)!==-1)return X;let M="",L=F.length!==void 0;if(L&&Array.isArray(F)){if(F.length===0)return"[]";if(H<N.length+1)return'"[Array]"';N.push(F);let x=Math.min(F.length,W),y=0;for(;y<x-1;y++){let p=V(String(y),F[y],N);M+=p!==void 0?p:"null",M+=","}let s=V(String(y),F[y],N);if(M+=s!==void 0?s:"null",F.length-1>W){let p=F.length-W-1;M+=`,"... ${Y9(p)} not stringified"`}return N.pop(),`[${M}]`}let j=Object.keys(F),z=j.length;if(z===0)return"{}";if(H<N.length+1)return'"[Object]"';let D="",b=Math.min(z,W);if(L&&hY(F))M+=cF(F,",",W),j=j.slice(F.length),b-=F.length,D=",";if(Y)j=gY(j,G);N.push(F);for(let x=0;x<b;x++){let y=j[x],s=V(y,F[y],N);if(s!==void 0)M+=`${D}${T6(y)}:${s}`,D=","}if(z>W){let x=z-W;M+=`${D}"...":"${Y9(x)} not stringified"`}return N.pop(),`{${M}}`}case"number":return isFinite(F)?String(F):Q?Q(F):"null";case"boolean":return F===!0?"true":"false";case"undefined":return;case"bigint":if(J)return String(F);default:return Q?Q(F):void 0}}function A(O,F,N){if(arguments.length>1){let M="";if(typeof N==="number")M=" ".repeat(Math.min(N,10));else if(typeof N==="string")M=N.slice(0,10);if(F!=null){if(typeof F==="function")return B("",{"":O},[],F,M,"");if(Array.isArray(F))return K("",O,[],Yx(F),M,"")}if(M.length!==0)return q("",O,[],M,"")}return V("",O,[])}return A}});var aF=w((Tp,rF)=>{var uY=Symbol.for("pino.metadata"),{DEFAULT_LEVELS:oF}=ZQ(),Bx=oF.info;function Kx($,Q){$=$||[],Q=Q||{dedupe:!1};let X=Object.create(oF);if(X.silent=1/0,Q.levels&&typeof Q.levels==="object")Object.keys(Q.levels).forEach((V)=>{X[V]=Q.levels[V]});let J={write:Y,add:W,remove:B,emit:G,flushSync:H,end:K,minLevel:0,lastId:0,streams:[],clone:q,[uY]:!0,streamLevels:X};if(Array.isArray($))$.forEach(W,J);else W.call(J,$);return $=null,J;function Y(V){let A,O=this.lastLevel,{streams:F}=this,N=0,M;for(let L=Ux(F.length,Q.dedupe);Vx(L,F.length,Q.dedupe);L=qx(L,Q.dedupe))if(A=F[L],A.level<=O){if(N!==0&&N!==A.level)break;if(M=A.stream,M[uY]){let{lastTime:j,lastMsg:z,lastObj:D,lastLogger:b}=this;M.lastLevel=O,M.lastTime=j,M.lastMsg=z,M.lastObj=D,M.lastLogger=b}if(M.write(V),Q.dedupe)N=A.level}else if(!Q.dedupe)break}function G(...V){for(let{stream:A}of this.streams)if(typeof A.emit==="function")A.emit(...V)}function H(){for(let{stream:V}of this.streams)if(typeof V.flushSync==="function")V.flushSync()}function W(V){if(!V)return J;let A=typeof V.write==="function"||V.stream,O=V.write?V:V.stream;if(!A)throw Error("stream object needs to implement either StreamEntry or DestinationStream interface");let{streams:F,streamLevels:N}=this,M;if(typeof V.levelVal==="number")M=V.levelVal;else if(typeof V.level==="string")M=N[V.level];else if(typeof V.level==="number")M=V.level;else M=Bx;let L={stream:O,level:M,levelVal:void 0,id:++J.lastId};return F.unshift(L),F.sort(iF),this.minLevel=F[0].level,J}function B(V){let{streams:A}=this,O=A.findIndex((F)=>F.id===V);if(O>=0)A.splice(O,1),A.sort(iF),this.minLevel=A.length>0?A[0].level:-1;return J}function K(){for(let{stream:V}of this.streams){if(typeof V.flushSync==="function")V.flushSync();V.end()}}function q(V){let A=Array(this.streams.length);for(let O=0;O<A.length;O++)A[O]={level:V,stream:this.streams[O].stream};return{write:Y,add:W,remove:B,minLevel:V,streams:A,clone:q,emit:G,flushSync:H,[uY]:!0}}}function iF($,Q){return $.level-Q.level}function Ux($,Q){return Q?$-1:0}function qx($,Q){return Q?$-1:$+1}function Vx($,Q,X){return X?$>=0:$<Q}rF.exports=Kx});var UO=w((Ip,A1)=>{var Fx=Z0("node:os"),YO=BY(),Ox=KY(),Ax=VY(),GO=lV(),Nx=lF(),HO=o9(),{configure:Mx}=nF(),{assertDefaultLevelFound:Lx,mappings:WO,genLsCache:Dx,genLevelComparison:jx,assertLevelComparison:zx}=_Y(),{DEFAULT_LEVELS:BO,SORTING_ORDER:Rx}=ZQ(),{createArgsNormalizer:Px,asChindings:Zx,buildSafeSonicBoom:sF,buildFormatters:bx,stringify:mY,normalizeDestFileDescriptor:tF,noop:wx}=PQ(),{version:Cx}=SY(),{chindingsSym:eF,redactFmtSym:Ex,serializersSym:$O,timeSym:Tx,timeSliceIndexSym:Ix,streamSym:_x,stringifySym:QO,stringifySafeSym:lY,stringifiersSym:XO,setLevelSym:Sx,endSym:xx,formatOptsSym:kx,messageKeySym:vx,errorKeySym:yx,nestedKeySym:gx,mixinSym:hx,levelCompSym:fx,useOnlyCustomLevelsSym:ux,formattersSym:JO,hooksSym:mx,nestedKeyStrSym:lx,mixinMergeStrategySym:cx,msgPrefixSym:px}=HO,{epochTime:KO,nullTime:dx}=GO,{pid:nx}=process,ix=Fx.hostname(),ox=YO.err,rx={level:"info",levelComparison:Rx.ASC,levels:BO,messageKey:"msg",errorKey:"err",nestedKey:null,enabled:!0,base:{pid:nx,hostname:ix},serializers:Object.assign(Object.create(null),{err:ox}),formatters:Object.assign(Object.create(null),{bindings($){return $},level($,Q){return{level:Q}}}),hooks:{logMethod:void 0,streamWrite:void 0},timestamp:KO,name:void 0,redact:null,customLevels:null,useOnlyCustomLevels:!1,depthLimit:5,edgeLimit:100},ax=Px(rx),sx=Object.assign(Object.create(null),YO);function cY(...$){let Q={},{opts:X,stream:J}=ax(Q,Ox(),...$);if(X.level&&typeof X.level==="string"&&BO[X.level.toLowerCase()]!==void 0)X.level=X.level.toLowerCase();let{redact:Y,crlf:G,serializers:H,timestamp:W,messageKey:B,errorKey:K,nestedKey:q,base:V,name:A,level:O,customLevels:F,levelComparison:N,mixin:M,mixinMergeStrategy:L,useOnlyCustomLevels:j,formatters:z,hooks:D,depthLimit:b,edgeLimit:x,onChild:y,msgPrefix:s}=X,p=Mx({maximumDepth:b,maximumBreadth:x}),H0=bx(z.level,z.bindings,z.log),I0=mY.bind({[lY]:p}),P0=Y?Ax(Y,I0):{},l0=Y?{stringify:P0[Ex]}:{stringify:I0},o0="}"+(G?`\r
|
|
30
30
|
`:`
|
|
31
|
-
`),y6=Zx.bind(null,{[eF]:"",[$O]:H,[XO]:P0,[QO]:mY,[lY]:p,[JO]:H0}),rQ="";if(V!==null)if(A===void 0)rQ=y6(V);else rQ=y6(Object.assign({},V,{name:A}));let D3=W instanceof Function?W:W?KO:dx,lN=D3().indexOf(":")+1;if(j&&!F)throw Error("customLevels is required if useOnlyCustomLevels is set true");if(M&&typeof M!=="function")throw Error(`Unknown mixin type "${typeof M}" - expected "function"`);if(s&&typeof s!=="string")throw Error(`Unknown msgPrefix type "${typeof s}" - expected "string"`);Lx(O,F,j);let j3=WO(F,j);if(typeof J.emit==="function")J.emit("message",{code:"PINO_CONFIG",config:{levels:j3,messageKey:B,errorKey:K}});zx(N);let cN=jx(N);return Object.assign(Q,{levels:j3,[fx]:cN,[ux]:j,[_x]:J,[Tx]:D3,[Ix]:lN,[QO]:mY,[lY]:p,[XO]:P0,[xx]:o0,[kx]:l0,[vx]:B,[yx]:K,[gx]:q,[lx]:q?`,${JSON.stringify(q)}:{`:"",[$O]:H,[hx]:M,[cx]:L,[eF]:rQ,[JO]:H0,[mx]:D,silent:wx,onChild:y,[px]:s}),Object.setPrototypeOf(Q,Nx()),Dx(Q),Q[Sx](O),Q}A1.exports=cY;A1.exports.destination=($=process.stdout.fd)=>{if(typeof $==="object")return $.dest=tF($.dest||process.stdout.fd),sF($);else return sF({dest:tF($),minLength:0})};A1.exports.transport=bY();A1.exports.multistream=aF();A1.exports.levels=WO();A1.exports.stdSerializers=sx;A1.exports.stdTimeFunctions=Object.assign({},GO);A1.exports.symbols=HO;A1.exports.version=Cx;A1.exports.default=cY;A1.exports.pino=cY});var pY,tx,K0,CQ,_p,dY,Sp,qO;var H9=w0(()=>{pY=sQ(UO(),1),tx=process.env.EXARCHOS_LOG_LEVEL??"warn",K0=pY.default({level:tx},pY.default.destination({fd:2,sync:!1})),CQ=K0.child({subsystem:"event-store"}),_p=K0.child({subsystem:"workflow"}),dY=K0.child({subsystem:"views"}),Sp=K0.child({subsystem:"sync"}),qO=K0.child({subsystem:"telemetry"})});function EQ($){if($==="")return!1;let Q=$.split(".")[0];if(Ak.has(Q))return!0;return $.startsWith("_")||$.split(".").some((X)=>X.startsWith("_"))}var ex,vp,$k,yp,Qk,Xk,Jk,Yk,Gk,Hk,Wk,Bk,Kk,Uk,qk,c1,VO,nY,Vk,Fk,Ok,J6,gp,hp,fp,up,mp,lp,cp,pp,dp,np,ip,v,Ak;var p1=w0(()=>{Q6();ex=U.enum(["transition","checkpoint","guard-failed","compound-entry","compound-exit","fix-cycle","circuit-open","compensation","cancel","cleanup","field-update"]),vp=U.object({sequence:U.number().int().positive(),version:U.literal("1.0"),timestamp:U.string().datetime(),type:ex,from:U.string().optional(),to:U.string().optional(),trigger:U.string(),metadata:U.record(U.unknown()).optional()}),$k=U.object({timestamp:U.string().datetime(),phase:U.string(),summary:U.string(),operationsSince:U.number().int().min(0),fixCycleCount:U.number().int().min(0),lastActivityTimestamp:U.string().datetime(),staleAfterMinutes:U.number().int().positive().default(120)}),yp=U.union([U.object({checkpointAdvised:U.literal(!1)}),U.object({checkpointAdvised:U.boolean(),operationsSinceCheckpoint:U.number().int().min(0),lastCheckpointPhase:U.string(),lastCheckpointTimestamp:U.string().datetime(),stale:U.boolean(),minutesSinceActivity:U.number().min(0)})]),Qk=U.enum(["ideate","plan","plan-review","delegate","review","synthesize","completed","cancelled","blocked"]),Xk=U.enum(["triage","investigate","rca","design","synthesize","debug-implement","debug-validate","debug-review","hotfix-implement","hotfix-validate","completed","cancelled","blocked"]),Jk=U.enum(["explore","brief","polish-implement","polish-validate","polish-update-docs","overhaul-plan","overhaul-delegate","overhaul-review","overhaul-update-docs","synthesize","completed","cancelled","blocked"]),Yk=U.object({metric:U.string(),threshold:U.number(),unit:U.enum(["ms","ops/s","MB"])}),Gk=U.object({exampleTests:U.literal(!0),propertyTests:U.boolean(),benchmarks:U.boolean(),properties:U.array(U.string()).optional(),performanceSLAs:U.array(Yk).optional()}),Hk=U.enum(["pending","in_progress","complete","failed"]),Wk=U.object({id:U.string(),title:U.string(),status:Hk,branch:U.string().optional(),startedAt:U.string().datetime().optional(),completedAt:U.string().datetime().optional(),nativeTaskId:U.string().optional(),teammateName:U.string().optional(),blockedBy:U.array(U.string()).default([]),worktreePath:U.string().optional(),testingStrategy:Gk.optional()}),Bk=U.enum(["active","merged","removed"]),Kk=U.object({branch:U.string(),taskId:U.string().optional(),tasks:U.array(U.string()).optional(),status:Bk}).passthrough().refine(($)=>$.taskId!==void 0||$.tasks!==void 0&&$.tasks.length>0,{message:"Either taskId or tasks (non-empty) must be provided"}),Uk=U.object({integrationBranch:U.string().nullable(),mergeOrder:U.array(U.string()),mergedBranches:U.array(U.string()),prUrl:U.union([U.string(),U.array(U.string())]).nullable(),prFeedback:U.array(U.unknown())}).passthrough(),qk=U.object({design:U.string().nullable(),plan:U.string().nullable(),pr:U.union([U.string(),U.array(U.string())]).nullable()}).passthrough(),c1=U.string().min(1).regex(/^[a-z0-9-]+$/),VO=U.enum(["feature","debug","refactor"]),nY=U.object({version:U.string().default("1.1"),featureId:c1,createdAt:U.string().datetime(),updatedAt:U.string().datetime(),artifacts:qk,tasks:U.array(Wk),worktrees:U.record(U.string(),Kk),reviews:U.record(U.string(),U.unknown()),integration:U.object({passed:U.boolean()}).nullable().default(null),synthesis:Uk,_esVersion:U.number().int().positive().optional(),_version:U.number().int().positive().default(1),_history:U.record(U.string(),U.string()).default({}),_checkpoint:$k.default({timestamp:"1970-01-01T00:00:00Z",phase:"init",summary:"Initial state",operationsSince:0,fixCycleCount:0,lastActivityTimestamp:"1970-01-01T00:00:00Z",staleAfterMinutes:120}),_compensationCheckpoint:U.object({completedActions:U.array(U.string())}).optional()}).passthrough(),Vk=nY.extend({workflowType:U.literal("feature"),phase:Qk}),Fk=nY.extend({workflowType:U.literal("debug"),phase:Xk}),Ok=nY.extend({workflowType:U.literal("refactor"),phase:Jk}),J6=U.discriminatedUnion("workflowType",[Vk,Fk,Ok]),gp=U.object({featureId:c1,workflowType:VO}),hp=U.object({}),fp=U.object({featureId:c1,query:U.string().optional(),fields:U.array(U.string()).optional()}),up=U.object({featureId:c1,updates:U.record(U.string(),U.unknown()).optional(),phase:U.string().optional()}),mp=U.object({featureId:c1}),lp=U.object({featureId:c1}),cp=U.object({featureId:c1}),pp=U.object({workflowType:VO,fromPhase:U.string().optional()}),dp=U.object({featureId:c1,reason:U.string().optional(),dryRun:U.boolean().optional()}),np=U.object({featureId:c1,mergeVerified:U.boolean(),prUrl:U.union([U.string(),U.array(U.string())]).optional(),mergedBranches:U.array(U.string()).optional(),dryRun:U.boolean().optional()}),ip=U.object({featureId:c1,summary:U.string().optional()}),v={STATE_NOT_FOUND:"STATE_NOT_FOUND",STATE_ALREADY_EXISTS:"STATE_ALREADY_EXISTS",STATE_CORRUPT:"STATE_CORRUPT",MIGRATION_FAILED:"MIGRATION_FAILED",INVALID_TRANSITION:"INVALID_TRANSITION",GUARD_FAILED:"GUARD_FAILED",CIRCUIT_OPEN:"CIRCUIT_OPEN",INVALID_INPUT:"INVALID_INPUT",RESERVED_FIELD:"RESERVED_FIELD",ALREADY_CANCELLED:"ALREADY_CANCELLED",ALREADY_COMPLETED:"ALREADY_COMPLETED",COMPENSATION_PARTIAL:"COMPENSATION_PARTIAL",FILE_IO_ERROR:"FILE_IO_ERROR",EVENT_APPEND_FAILED:"EVENT_APPEND_FAILED",VERSION_CONFLICT:"VERSION_CONFLICT",EVENT_MIGRATION_FAILED:"EVENT_MIGRATION_FAILED",EVENT_STORE_NOT_CONFIGURED:"EVENT_STORE_NOT_CONFIGURED"},Ak=new Set(["phase","workflowType","featureId","createdAt","version"])});import*as OO from"node:fs/promises";async function AO($){let Q=`${$}.bak`;return await OO.copyFile($,Q),Q}function TQ($){if(typeof $!=="object"||$===null)throw Error("MIGRATION_FAILED: state must be a non-null object");let Q=$,X=Q.version??"1.0";if(X===s9)return Q;let J={...Q},Y=X,G=FO.length+1,H=0,W=[];while(Y!==s9){if(H>=G)throw Error(`MIGRATION_FAILED: no migration path from version ${Y} to ${s9}`);let B=FO.find((K)=>K.from===Y);if(!B)throw Error(`MIGRATION_FAILED: no migration registered for version ${Y}`);J=B.migrate(J),W.push({from:B.from,to:B.to,timestamp:new Date().toISOString()}),Y=B.to,H++}if(W.length>0)J._migrationHistory=W;return J}var s9="1.1",FO;var iY=w0(()=>{FO=[{from:"1.0",to:"1.1",migrate:($)=>{let Q=Array.isArray($.tasks)?$.tasks.map((G)=>({...G,assignee:G.assignee==="jules"?"subagent":G.assignee})):$.tasks,{_events:X,_eventSequence:J,...Y}=$;return{...Y,version:"1.1",tasks:Q,_history:Y._history??{},_checkpoint:Y._checkpoint??{timestamp:$.updatedAt??new Date().toISOString(),phase:$.phase??"unknown",summary:"",operationsSince:0,fixCycleCount:0,lastActivityTimestamp:$.updatedAt??new Date().toISOString(),staleAfterMinutes:120}}}}]});function QA($){if(!sk.includes($.type))return!0;if(!$.agentId)throw Error(`Agent event '${$.type}' requires agentId but none was provided`);if(!$.source)throw Error(`Agent event '${$.type}' requires source but none was provided`);return!0}var ak,B9,Zn,bn,wn,Cn,En,Tn,In,_n,Sn,xn,kn,vn,yn,gn,hn,fn,un,mn,ln,cn,pn,dn,nn,on,rn,an,sn,tn,en,$A,$i,Qi,Xi,Ji,Yi,Gi,Hi,Wi,Bi,Ki,Ui,sk;var Y4=w0(()=>{Q6();ak=["workflow.started","task.assigned","task.claimed","task.progressed","task.completed","task.failed","gate.executed","state.patched","stack.position-filled","stack.restacked","stack.enqueued","workflow.transition","workflow.fix-cycle","workflow.guard-failed","workflow.checkpoint","workflow.compound-entry","workflow.compound-exit","workflow.cancel","workflow.cleanup","workflow.compensation","workflow.circuit-open","tool.invoked","tool.completed","tool.errored","benchmark.completed","team.spawned","team.task.assigned","team.task.completed","team.task.failed","team.disbanded","team.context.injected","team.task.planned","team.teammate.dispatched","quality.regression","workflow.cas-failed","review.routed","review.finding","review.escalated","quality.hint.generated","eval.run.started","eval.case.completed","eval.run.completed"],B9=U.object({streamId:U.string().min(1),sequence:U.number().int().positive(),timestamp:U.string().datetime().default(()=>new Date().toISOString()),type:U.enum(ak),correlationId:U.string().optional(),causationId:U.string().optional(),agentId:U.string().optional(),agentRole:U.string().optional(),tenantId:U.string().min(1).optional(),organizationId:U.string().min(1).optional(),source:U.string().optional(),schemaVersion:U.string().default("1.0"),data:U.record(U.string(),U.unknown()).optional(),idempotencyKey:U.string().optional()}),Zn=U.object({featureId:U.string(),workflowType:U.enum(["feature","debug","refactor"]),designPath:U.string().optional()}),bn=U.object({taskId:U.string(),title:U.string(),branch:U.string().optional(),worktree:U.string().optional(),assignee:U.string().optional()}),wn=U.object({taskId:U.string(),agentId:U.string(),claimedAt:U.string()}),Cn=U.object({taskId:U.string(),tddPhase:U.enum(["red","green","refactor"]),detail:U.string().optional()}),En=U.object({taskId:U.string(),artifacts:U.array(U.string()).optional(),duration:U.number().optional()}),Tn=U.object({taskId:U.string(),error:U.string(),diagnostics:U.record(U.string(),U.unknown()).optional()}),In=U.object({gateName:U.string(),layer:U.string(),passed:U.boolean(),duration:U.number().optional(),details:U.record(U.string(),U.unknown()).optional()}),_n=U.object({position:U.number().int(),taskId:U.string(),branch:U.string().optional(),prUrl:U.string().optional()}),Sn=U.object({affectedPositions:U.array(U.number().int())}),xn=U.object({prNumbers:U.array(U.number().int())}),kn=U.object({from:U.string(),to:U.string(),trigger:U.string(),featureId:U.string()}),vn=U.object({compoundStateId:U.string(),count:U.number().int(),featureId:U.string()}),yn=U.object({guard:U.string(),from:U.string(),to:U.string(),featureId:U.string()}),gn=U.object({counter:U.number().int(),phase:U.string(),featureId:U.string()}),hn=U.object({compoundStateId:U.string(),featureId:U.string()}),fn=U.object({compoundStateId:U.string(),featureId:U.string(),from:U.string().optional(),to:U.string().optional(),trigger:U.string().optional()}),un=U.object({from:U.string(),to:U.string(),trigger:U.string(),featureId:U.string()}),mn=U.object({from:U.string(),to:U.string(),trigger:U.string(),featureId:U.string(),reason:U.string().optional()}),ln=U.object({featureId:U.string(),actionId:U.string(),status:U.enum(["executed","skipped","failed","dry-run"]),message:U.string()}),cn=U.object({featureId:U.string(),compoundId:U.string(),fixCycleCount:U.number().int().optional(),maxFixCycles:U.number().int().optional()}),pn=U.object({featureId:U.string(),phase:U.string(),retries:U.number().int()}),dn=U.object({pr:U.number().int(),riskScore:U.number(),factors:U.array(U.string()),destination:U.enum(["coderabbit","self-hosted","both"]),velocityTier:U.enum(["normal","elevated","high"]),semanticAugmented:U.boolean()}),nn=U.object({pr:U.number().int(),source:U.enum(["coderabbit","self-hosted"]),severity:U.enum(["critical","major","minor","suggestion"]),filePath:U.string(),lineRange:U.tuple([U.number().int(),U.number().int()]).optional(),message:U.string(),rule:U.string().optional()}),on=U.object({pr:U.number().int(),reason:U.string(),originalScore:U.number(),triggeringFinding:U.string()}),rn=U.object({tool:U.string()}),an=U.object({tool:U.string(),durationMs:U.number(),responseBytes:U.number(),tokenEstimate:U.number()}),sn=U.object({tool:U.string(),durationMs:U.number(),errorMessage:U.string()}),tn=U.object({taskId:U.string(),results:U.array(U.object({operation:U.string().min(1),metric:U.string(),value:U.number(),unit:U.string(),baseline:U.number().optional(),regressionPercent:U.number().optional(),passed:U.boolean()})).min(1)}),en=U.object({teamSize:U.number().int(),teammateNames:U.array(U.string()),taskCount:U.number().int(),dispatchMode:U.string()}),$A=U.object({taskId:U.string(),teammateName:U.string(),worktreePath:U.string(),modules:U.array(U.string())}),$i=U.object({taskId:U.string(),teammateName:U.string(),durationMs:U.number(),filesChanged:U.array(U.string()),testsPassed:U.boolean(),qualityGateResults:U.record(U.string(),U.unknown())}),Qi=U.object({taskId:U.string(),teammateName:U.string(),failureReason:U.string(),gateResults:U.record(U.string(),U.unknown())}),Xi=U.object({totalDurationMs:U.number(),tasksCompleted:U.number().int(),tasksFailed:U.number().int()}),Ji=U.object({phase:U.string(),toolsAvailable:U.number().int(),historicalHints:U.array(U.string())}),Yi=U.object({taskId:U.string(),title:U.string(),modules:U.array(U.string()),blockedBy:U.array(U.string())}),Gi=U.object({teammateName:U.string(),worktreePath:U.string(),assignedTaskIds:U.array(U.string()),model:U.string()}),Hi=U.object({skill:U.string(),gate:U.string(),consecutiveFailures:U.number().int().nonnegative(),firstFailureCommit:U.string(),lastFailureCommit:U.string(),detectedAt:U.string().datetime()}),Wi=U.object({skill:U.string(),hintCount:U.number().int().nonnegative(),categories:U.array(U.string()),generatedAt:U.string().datetime()}),Bi=U.object({runId:U.string().uuid(),suiteId:U.string(),layer:U.enum(["regression","capability","reliability"]).optional(),trigger:U.enum(["ci","local","scheduled"]),caseCount:U.number().int().nonnegative()}),Ki=U.object({runId:U.string().uuid(),caseId:U.string(),suiteId:U.string(),passed:U.boolean(),score:U.number().min(0).max(1),assertions:U.array(U.object({name:U.string(),type:U.string(),passed:U.boolean(),score:U.number().min(0).max(1),reason:U.string()})),duration:U.number().int().nonnegative()}),Ui=U.object({runId:U.string().uuid(),suiteId:U.string(),total:U.number().int().nonnegative(),passed:U.number().int().nonnegative(),failed:U.number().int().nonnegative(),avgScore:U.number().min(0).max(1),duration:U.number().int().nonnegative(),regressions:U.array(U.string())}),sk=["task.claimed","task.progressed","team.task.completed","team.task.failed"]});var hA={};W6(hA,{generateQualityHints:()=>Ev,configureQualityEventStore:()=>F3});function F3($){V3=$}function gA($){return $==="warning"?0:1}function Ev($,Q){let X=[],J=Q?[Q]:Object.keys($.skills);for(let H of J)for(let W of bv){let B=W($,H);if(B)X.push(B)}let Y=Q??J[0];if(Y)for(let H of wv){let W=H($,Y);if(W)X.push(W)}X.sort((H,W)=>gA(H.severity)-gA(W.severity));let G=X.slice(0,Cv);if(G.length>0&&V3)V3.append("quality-hints",{type:"quality.hint.generated",data:{skill:Q??"global",hintCount:G.length,categories:[...new Set(G.map((H)=>H.category))],generatedAt:new Date().toISOString()}}).catch(()=>{});return G}var V3=null,zv=0.8,Rv=3,Pv=0.3,Zv=0.15,bv,wv,Cv=5;var O3=w0(()=>{bv=[($,Q)=>{let X=$.skills[Q];if(!X||X.gatePassRate>=zv)return null;let J=X.topFailureCategories.slice(0,3).map((Y)=>Y.category).join(", ");return{skill:Q,category:"gate",severity:"warning",hint:`Gate pass rate is ${Math.floor(X.gatePassRate*100)}%. Common failures: ${J}. Pay extra attention to these areas.`}},($,Q)=>{let X=$.regressions.filter((Y)=>Y.skill===Q&&Y.consecutiveFailures>=Rv);if(X.length===0)return null;let J=X.map((Y)=>`${Y.gate} (${Y.consecutiveFailures} consecutive)`).join(", ");return{skill:Q,category:"gate",severity:"warning",hint:`Active regressions: ${J}. These gates have consecutive failures — investigate before proceeding.`}},($,Q)=>{let X=$.skills[Q];if(!X||X.selfCorrectionRate<Pv)return null;return{skill:Q,category:"review",severity:"info",hint:`High self-correction rate (${(X.selfCorrectionRate*100).toFixed(0)}%). Consider strengthening upfront validation to reduce remediation cycles.`}}],wv=[($,Q)=>{let X=$.benchmarks.filter((Y)=>Y.trend==="degrading");if(X.length===0)return null;let J=X.map((Y)=>Y.operation).join(", ");return{skill:Q,category:"benchmark",severity:"warning",hint:`Degrading benchmarks detected: ${J}. Review recent changes for performance impact.`}},($,Q)=>{let X=$.gates["check-property-tests"];if(!X)return null;let J=Math.round((1-X.passRate)*100)/100;if(J<=Zv)return null;return{skill:Q,category:"pbt",severity:"warning",hint:`Property-based test failure rate is ${(J*100).toFixed(0)}%. Review edge cases and invariant definitions.`}}]});var M1="telemetry",cQ=1200,pQ=600,dQ=2000,KN=200,UN=20,qN=0.2,VN=10,FN=5;var N3;var ZN=w0(()=>{N3=class N3 extends Error{featureId;expected;actual;constructor($,Q,X){super(`Version conflict for '${$}': expected ${Q}, actual ${X}`);this.featureId=$;this.expected=Q;this.actual=X;this.name="VersionConflictError"}}});var CN={};W6(CN,{SqliteBackend:()=>wN});import $y from"better-sqlite3";class wN{dbPath;db;stmts;outboxIdCounter=0;queryStmtCache=new Map;constructor($){this.dbPath=$}initialize(){if(this.db=new $y(this.dbPath),this.db.pragma("journal_mode = WAL"),this.db.pragma("synchronous = NORMAL"),this.db.pragma("mmap_size = 268435456"),this.db.exec(Qy),this.migrateSchema(),!this.db.prepare("SELECT version FROM schema_version WHERE version = ?").get(bN))this.db.prepare("INSERT OR IGNORE INTO schema_version (version, appliedAt) VALUES (?, ?)").run(bN,new Date().toISOString());this.stmts=this.prepareStatements()}close(){if(this.db)this.db.close()}migrateSchema(){if(!this.db.prepare("PRAGMA table_info(events)").all().some((X)=>X.name==="payload"))this.db.exec("ALTER TABLE events ADD COLUMN payload TEXT")}prepareStatements(){return{insertEvent:this.db.prepare("INSERT INTO events (streamId, sequence, type, timestamp, data, payload) VALUES (?, ?, ?, ?, ?, ?)"),upsertSequence:this.db.prepare("INSERT INTO sequences (streamId, sequence) VALUES (?, ?) ON CONFLICT(streamId) DO UPDATE SET sequence = excluded.sequence"),selectSequence:this.db.prepare("SELECT sequence FROM sequences WHERE streamId = ?"),selectEvents:this.db.prepare("SELECT streamId, sequence, type, timestamp, data, payload FROM events WHERE streamId = ? ORDER BY sequence"),getState:this.db.prepare("SELECT state, version FROM workflow_state WHERE featureId = ?"),upsertState:this.db.prepare(`INSERT INTO workflow_state (featureId, state, version, updatedAt) VALUES (?, ?, ?, ?)
|
|
31
|
+
`),y6=Zx.bind(null,{[eF]:"",[$O]:H,[XO]:P0,[QO]:mY,[lY]:p,[JO]:H0}),rQ="";if(V!==null)if(A===void 0)rQ=y6(V);else rQ=y6(Object.assign({},V,{name:A}));let D3=W instanceof Function?W:W?KO:dx,lN=D3().indexOf(":")+1;if(j&&!F)throw Error("customLevels is required if useOnlyCustomLevels is set true");if(M&&typeof M!=="function")throw Error(`Unknown mixin type "${typeof M}" - expected "function"`);if(s&&typeof s!=="string")throw Error(`Unknown msgPrefix type "${typeof s}" - expected "string"`);Lx(O,F,j);let j3=WO(F,j);if(typeof J.emit==="function")J.emit("message",{code:"PINO_CONFIG",config:{levels:j3,messageKey:B,errorKey:K}});zx(N);let cN=jx(N);return Object.assign(Q,{levels:j3,[fx]:cN,[ux]:j,[_x]:J,[Tx]:D3,[Ix]:lN,[QO]:mY,[lY]:p,[XO]:P0,[xx]:o0,[kx]:l0,[vx]:B,[yx]:K,[gx]:q,[lx]:q?`,${JSON.stringify(q)}:{`:"",[$O]:H,[hx]:M,[cx]:L,[eF]:rQ,[JO]:H0,[mx]:D,silent:wx,onChild:y,[px]:s}),Object.setPrototypeOf(Q,Nx()),Dx(Q),Q[Sx](O),Q}A1.exports=cY;A1.exports.destination=($=process.stdout.fd)=>{if(typeof $==="object")return $.dest=tF($.dest||process.stdout.fd),sF($);else return sF({dest:tF($),minLength:0})};A1.exports.transport=bY();A1.exports.multistream=aF();A1.exports.levels=WO();A1.exports.stdSerializers=sx;A1.exports.stdTimeFunctions=Object.assign({},GO);A1.exports.symbols=HO;A1.exports.version=Cx;A1.exports.default=cY;A1.exports.pino=cY});var pY,tx,K0,CQ,_p,dY,Sp,qO;var H9=w0(()=>{pY=sQ(UO(),1),tx=process.env.EXARCHOS_LOG_LEVEL??"warn",K0=pY.default({level:tx},pY.default.destination({fd:2,sync:!1})),CQ=K0.child({subsystem:"event-store"}),_p=K0.child({subsystem:"workflow"}),dY=K0.child({subsystem:"views"}),Sp=K0.child({subsystem:"sync"}),qO=K0.child({subsystem:"telemetry"})});function EQ($){if($==="")return!1;let Q=$.split(".")[0];if(Ak.has(Q))return!0;return $.startsWith("_")||$.split(".").some((X)=>X.startsWith("_"))}var ex,vp,$k,yp,Qk,Xk,Jk,Yk,Gk,Hk,Wk,Bk,Kk,Uk,qk,c1,VO,nY,Vk,Fk,Ok,J6,gp,hp,fp,up,mp,lp,cp,pp,dp,np,ip,v,Ak;var p1=w0(()=>{Q6();ex=U.enum(["transition","checkpoint","guard-failed","compound-entry","compound-exit","fix-cycle","circuit-open","compensation","cancel","cleanup","field-update"]),vp=U.object({sequence:U.number().int().positive(),version:U.literal("1.0"),timestamp:U.string().datetime(),type:ex,from:U.string().optional(),to:U.string().optional(),trigger:U.string(),metadata:U.record(U.unknown()).optional()}),$k=U.object({timestamp:U.string().datetime(),phase:U.string(),summary:U.string(),operationsSince:U.number().int().min(0),fixCycleCount:U.number().int().min(0),lastActivityTimestamp:U.string().datetime(),staleAfterMinutes:U.number().int().positive().default(120)}),yp=U.union([U.object({checkpointAdvised:U.literal(!1)}),U.object({checkpointAdvised:U.boolean(),operationsSinceCheckpoint:U.number().int().min(0),lastCheckpointPhase:U.string(),lastCheckpointTimestamp:U.string().datetime(),stale:U.boolean(),minutesSinceActivity:U.number().min(0)})]),Qk=U.enum(["ideate","plan","plan-review","delegate","review","synthesize","completed","cancelled","blocked"]),Xk=U.enum(["triage","investigate","rca","design","synthesize","debug-implement","debug-validate","debug-review","hotfix-implement","hotfix-validate","completed","cancelled","blocked"]),Jk=U.enum(["explore","brief","polish-implement","polish-validate","polish-update-docs","overhaul-plan","overhaul-delegate","overhaul-review","overhaul-update-docs","synthesize","completed","cancelled","blocked"]),Yk=U.object({metric:U.string(),threshold:U.number(),unit:U.enum(["ms","ops/s","MB"])}),Gk=U.object({exampleTests:U.literal(!0),propertyTests:U.boolean(),benchmarks:U.boolean(),properties:U.array(U.string()).optional(),performanceSLAs:U.array(Yk).optional()}),Hk=U.enum(["pending","in_progress","complete","failed"]),Wk=U.object({id:U.string(),title:U.string(),status:Hk,branch:U.string().optional(),startedAt:U.string().datetime().optional(),completedAt:U.string().datetime().optional(),nativeTaskId:U.string().optional(),teammateName:U.string().optional(),blockedBy:U.array(U.string()).default([]),worktreePath:U.string().optional(),testingStrategy:Gk.optional()}),Bk=U.enum(["active","merged","removed"]),Kk=U.object({branch:U.string(),taskId:U.string().optional(),tasks:U.array(U.string()).optional(),status:Bk}).passthrough().refine(($)=>$.taskId!==void 0||$.tasks!==void 0&&$.tasks.length>0,{message:"Either taskId or tasks (non-empty) must be provided"}),Uk=U.object({integrationBranch:U.string().nullable(),mergeOrder:U.array(U.string()),mergedBranches:U.array(U.string()),prUrl:U.union([U.string(),U.array(U.string())]).nullable(),prFeedback:U.array(U.unknown())}).passthrough(),qk=U.object({design:U.string().nullable(),plan:U.string().nullable(),pr:U.union([U.string(),U.array(U.string())]).nullable()}).passthrough(),c1=U.string().min(1).regex(/^[a-z0-9-]+$/),VO=U.enum(["feature","debug","refactor"]),nY=U.object({version:U.string().default("1.1"),featureId:c1,createdAt:U.string().datetime(),updatedAt:U.string().datetime(),artifacts:qk,tasks:U.array(Wk),worktrees:U.record(U.string(),Kk),reviews:U.record(U.string(),U.unknown()),integration:U.object({passed:U.boolean()}).nullable().default(null),synthesis:Uk,_esVersion:U.number().int().positive().optional(),_version:U.number().int().positive().default(1),_history:U.record(U.string(),U.string()).default({}),_checkpoint:$k.default({timestamp:"1970-01-01T00:00:00Z",phase:"init",summary:"Initial state",operationsSince:0,fixCycleCount:0,lastActivityTimestamp:"1970-01-01T00:00:00Z",staleAfterMinutes:120}),_compensationCheckpoint:U.object({completedActions:U.array(U.string())}).optional()}).passthrough(),Vk=nY.extend({workflowType:U.literal("feature"),phase:Qk}),Fk=nY.extend({workflowType:U.literal("debug"),phase:Xk}),Ok=nY.extend({workflowType:U.literal("refactor"),phase:Jk}),J6=U.discriminatedUnion("workflowType",[Vk,Fk,Ok]),gp=U.object({featureId:c1,workflowType:VO}),hp=U.object({}),fp=U.object({featureId:c1,query:U.string().optional(),fields:U.array(U.string()).optional()}),up=U.object({featureId:c1,updates:U.record(U.string(),U.unknown()).optional(),phase:U.string().optional()}),mp=U.object({featureId:c1}),lp=U.object({featureId:c1}),cp=U.object({featureId:c1}),pp=U.object({workflowType:VO,fromPhase:U.string().optional()}),dp=U.object({featureId:c1,reason:U.string().optional(),dryRun:U.boolean().optional()}),np=U.object({featureId:c1,mergeVerified:U.boolean(),prUrl:U.union([U.string(),U.array(U.string())]).optional(),mergedBranches:U.array(U.string()).optional(),dryRun:U.boolean().optional()}),ip=U.object({featureId:c1,summary:U.string().optional()}),v={STATE_NOT_FOUND:"STATE_NOT_FOUND",STATE_ALREADY_EXISTS:"STATE_ALREADY_EXISTS",STATE_CORRUPT:"STATE_CORRUPT",MIGRATION_FAILED:"MIGRATION_FAILED",INVALID_TRANSITION:"INVALID_TRANSITION",GUARD_FAILED:"GUARD_FAILED",CIRCUIT_OPEN:"CIRCUIT_OPEN",INVALID_INPUT:"INVALID_INPUT",RESERVED_FIELD:"RESERVED_FIELD",ALREADY_CANCELLED:"ALREADY_CANCELLED",ALREADY_COMPLETED:"ALREADY_COMPLETED",COMPENSATION_PARTIAL:"COMPENSATION_PARTIAL",FILE_IO_ERROR:"FILE_IO_ERROR",EVENT_APPEND_FAILED:"EVENT_APPEND_FAILED",VERSION_CONFLICT:"VERSION_CONFLICT",EVENT_MIGRATION_FAILED:"EVENT_MIGRATION_FAILED",EVENT_STORE_NOT_CONFIGURED:"EVENT_STORE_NOT_CONFIGURED"},Ak=new Set(["phase","workflowType","featureId","createdAt","version"])});import*as OO from"node:fs/promises";async function AO($){let Q=`${$}.bak`;return await OO.copyFile($,Q),Q}function TQ($){if(typeof $!=="object"||$===null)throw Error("MIGRATION_FAILED: state must be a non-null object");let Q=$,X=Q.version??"1.0";if(X===s9)return Q;let J={...Q},Y=X,G=FO.length+1,H=0,W=[];while(Y!==s9){if(H>=G)throw Error(`MIGRATION_FAILED: no migration path from version ${Y} to ${s9}`);let B=FO.find((K)=>K.from===Y);if(!B)throw Error(`MIGRATION_FAILED: no migration registered for version ${Y}`);J=B.migrate(J),W.push({from:B.from,to:B.to,timestamp:new Date().toISOString()}),Y=B.to,H++}if(W.length>0)J._migrationHistory=W;return J}var s9="1.1",FO;var iY=w0(()=>{FO=[{from:"1.0",to:"1.1",migrate:($)=>{let Q=Array.isArray($.tasks)?$.tasks.map((G)=>({...G,assignee:G.assignee==="jules"?"subagent":G.assignee})):$.tasks,{_events:X,_eventSequence:J,...Y}=$;return{...Y,version:"1.1",tasks:Q,_history:Y._history??{},_checkpoint:Y._checkpoint??{timestamp:$.updatedAt??new Date().toISOString(),phase:$.phase??"unknown",summary:"",operationsSince:0,fixCycleCount:0,lastActivityTimestamp:$.updatedAt??new Date().toISOString(),staleAfterMinutes:120}}}}]});function QA($){if(!sk.includes($.type))return!0;if(!$.agentId)throw Error(`Agent event '${$.type}' requires agentId but none was provided`);if(!$.source)throw Error(`Agent event '${$.type}' requires source but none was provided`);return!0}var ak,B9,Zn,bn,wn,Cn,En,Tn,In,_n,Sn,xn,kn,vn,yn,gn,hn,fn,un,mn,ln,cn,pn,dn,nn,on,rn,an,sn,tn,en,$A,$i,Qi,Xi,Ji,Yi,Gi,Hi,Wi,Bi,Ki,Ui,sk;var Y4=w0(()=>{Q6();ak=["workflow.started","task.assigned","task.claimed","task.progressed","task.completed","task.failed","gate.executed","state.patched","stack.position-filled","stack.restacked","stack.enqueued","workflow.transition","workflow.fix-cycle","workflow.guard-failed","workflow.checkpoint","workflow.compound-entry","workflow.compound-exit","workflow.cancel","workflow.cleanup","workflow.compensation","workflow.circuit-open","tool.invoked","tool.completed","tool.errored","benchmark.completed","team.spawned","team.task.assigned","team.task.completed","team.task.failed","team.disbanded","team.context.injected","team.task.planned","team.teammate.dispatched","quality.regression","workflow.cas-failed","review.routed","review.finding","review.escalated","quality.hint.generated","eval.run.started","eval.case.completed","eval.run.completed"],B9=U.object({streamId:U.string().min(1),sequence:U.number().int().positive(),timestamp:U.string().datetime().default(()=>new Date().toISOString()),type:U.enum(ak),correlationId:U.string().optional(),causationId:U.string().optional(),agentId:U.string().optional(),agentRole:U.string().optional(),tenantId:U.string().min(1).optional(),organizationId:U.string().min(1).optional(),source:U.string().optional(),schemaVersion:U.string().default("1.0"),data:U.record(U.string(),U.unknown()).optional(),idempotencyKey:U.string().optional()}),Zn=U.object({featureId:U.string(),workflowType:U.enum(["feature","debug","refactor"]),designPath:U.string().optional()}),bn=U.object({taskId:U.string(),title:U.string(),branch:U.string().optional(),worktree:U.string().optional(),assignee:U.string().optional()}),wn=U.object({taskId:U.string(),agentId:U.string(),claimedAt:U.string()}),Cn=U.object({taskId:U.string(),tddPhase:U.enum(["red","green","refactor"]),detail:U.string().optional()}),En=U.object({taskId:U.string(),artifacts:U.array(U.string()).optional(),duration:U.number().optional()}),Tn=U.object({taskId:U.string(),error:U.string(),diagnostics:U.record(U.string(),U.unknown()).optional()}),In=U.object({gateName:U.string(),layer:U.string(),passed:U.boolean(),duration:U.number().optional(),details:U.record(U.string(),U.unknown()).optional()}),_n=U.object({position:U.number().int(),taskId:U.string(),branch:U.string().optional(),prUrl:U.string().optional()}),Sn=U.object({affectedPositions:U.array(U.number().int())}),xn=U.object({prNumbers:U.array(U.number().int())}),kn=U.object({from:U.string(),to:U.string(),trigger:U.string(),featureId:U.string()}),vn=U.object({compoundStateId:U.string(),count:U.number().int(),featureId:U.string()}),yn=U.object({guard:U.string(),from:U.string(),to:U.string(),featureId:U.string()}),gn=U.object({counter:U.number().int(),phase:U.string(),featureId:U.string()}),hn=U.object({compoundStateId:U.string(),featureId:U.string()}),fn=U.object({compoundStateId:U.string(),featureId:U.string(),from:U.string().optional(),to:U.string().optional(),trigger:U.string().optional()}),un=U.object({from:U.string(),to:U.string(),trigger:U.string(),featureId:U.string()}),mn=U.object({from:U.string(),to:U.string(),trigger:U.string(),featureId:U.string(),reason:U.string().optional()}),ln=U.object({featureId:U.string(),actionId:U.string(),status:U.enum(["executed","skipped","failed","dry-run"]),message:U.string()}),cn=U.object({featureId:U.string(),compoundId:U.string(),fixCycleCount:U.number().int().optional(),maxFixCycles:U.number().int().optional()}),pn=U.object({featureId:U.string(),phase:U.string(),retries:U.number().int()}),dn=U.object({pr:U.number().int(),riskScore:U.number(),factors:U.array(U.string()),destination:U.enum(["coderabbit","self-hosted","both"]),velocityTier:U.enum(["normal","elevated","high"]),semanticAugmented:U.boolean()}),nn=U.object({pr:U.number().int(),source:U.enum(["coderabbit","self-hosted"]),severity:U.enum(["critical","major","minor","suggestion"]),filePath:U.string(),lineRange:U.tuple([U.number().int(),U.number().int()]).optional(),message:U.string(),rule:U.string().optional()}),on=U.object({pr:U.number().int(),reason:U.string(),originalScore:U.number(),triggeringFinding:U.string()}),rn=U.object({tool:U.string()}),an=U.object({tool:U.string(),durationMs:U.number(),responseBytes:U.number(),tokenEstimate:U.number()}),sn=U.object({tool:U.string(),durationMs:U.number(),errorMessage:U.string()}),tn=U.object({taskId:U.string(),results:U.array(U.object({operation:U.string().min(1),metric:U.string(),value:U.number(),unit:U.string(),baseline:U.number().optional(),regressionPercent:U.number().optional(),passed:U.boolean()})).min(1)}),en=U.object({teamSize:U.number().int(),teammateNames:U.array(U.string()),taskCount:U.number().int(),dispatchMode:U.string()}),$A=U.object({taskId:U.string(),teammateName:U.string(),worktreePath:U.string(),modules:U.array(U.string())}),$i=U.object({taskId:U.string(),teammateName:U.string(),durationMs:U.number(),filesChanged:U.array(U.string()),testsPassed:U.boolean(),qualityGateResults:U.record(U.string(),U.unknown())}),Qi=U.object({taskId:U.string(),teammateName:U.string(),failureReason:U.string(),gateResults:U.record(U.string(),U.unknown())}),Xi=U.object({totalDurationMs:U.number(),tasksCompleted:U.number().int(),tasksFailed:U.number().int()}),Ji=U.object({phase:U.string(),toolsAvailable:U.number().int(),historicalHints:U.array(U.string())}),Yi=U.object({taskId:U.string(),title:U.string(),modules:U.array(U.string()),blockedBy:U.array(U.string())}),Gi=U.object({teammateName:U.string(),worktreePath:U.string(),assignedTaskIds:U.array(U.string()),model:U.string()}),Hi=U.object({skill:U.string(),gate:U.string(),consecutiveFailures:U.number().int().nonnegative(),firstFailureCommit:U.string(),lastFailureCommit:U.string(),detectedAt:U.string().datetime()}),Wi=U.object({skill:U.string(),hintCount:U.number().int().nonnegative(),categories:U.array(U.string()),generatedAt:U.string().datetime()}),Bi=U.object({runId:U.string().uuid(),suiteId:U.string(),layer:U.enum(["regression","capability","reliability"]).optional(),trigger:U.enum(["ci","local","scheduled"]),caseCount:U.number().int().nonnegative()}),Ki=U.object({runId:U.string().uuid(),caseId:U.string(),suiteId:U.string(),passed:U.boolean(),score:U.number().min(0).max(1),assertions:U.array(U.object({name:U.string(),type:U.string(),passed:U.boolean(),score:U.number().min(0).max(1),reason:U.string()})),duration:U.number().int().nonnegative()}),Ui=U.object({runId:U.string().uuid(),suiteId:U.string(),total:U.number().int().nonnegative(),passed:U.number().int().nonnegative(),failed:U.number().int().nonnegative(),avgScore:U.number().min(0).max(1),duration:U.number().int().nonnegative(),regressions:U.array(U.string())}),sk=["task.claimed","task.progressed","team.task.completed","team.task.failed"]});var hA={};W6(hA,{generateQualityHints:()=>Ev,configureQualityEventStore:()=>F3});function F3($){V3=$}function gA($){return $==="warning"?0:1}function Ev($,Q){let X=[],J=Q?[Q]:Object.keys($.skills);for(let H of J)for(let W of bv){let B=W($,H);if(B)X.push(B)}let Y=Q??J[0];if(Y)for(let H of wv){let W=H($,Y);if(W)X.push(W)}X.sort((H,W)=>gA(H.severity)-gA(W.severity));let G=X.slice(0,Cv);if(G.length>0&&V3)V3.append("quality-hints",{type:"quality.hint.generated",data:{skill:Q??"global",hintCount:G.length,categories:[...new Set(G.map((H)=>H.category))],generatedAt:new Date().toISOString()}}).catch(()=>{});return G}var V3=null,zv=0.8,Rv=3,Pv=0.3,Zv=0.15,bv,wv,Cv=5;var O3=w0(()=>{bv=[($,Q)=>{let X=$.skills[Q];if(!X||X.gatePassRate>=zv)return null;let J=X.topFailureCategories.slice(0,3).map((Y)=>Y.category).join(", ");return{skill:Q,category:"gate",severity:"warning",hint:`Gate pass rate is ${Math.floor(X.gatePassRate*100)}%. Common failures: ${J}. Pay extra attention to these areas.`}},($,Q)=>{let X=$.regressions.filter((Y)=>Y.skill===Q&&Y.consecutiveFailures>=Rv);if(X.length===0)return null;let J=X.map((Y)=>`${Y.gate} (${Y.consecutiveFailures} consecutive)`).join(", ");return{skill:Q,category:"gate",severity:"warning",hint:`Active regressions: ${J}. These gates have consecutive failures — investigate before proceeding.`}},($,Q)=>{let X=$.skills[Q];if(!X||X.selfCorrectionRate<Pv)return null;return{skill:Q,category:"review",severity:"info",hint:`High self-correction rate (${(X.selfCorrectionRate*100).toFixed(0)}%). Consider strengthening upfront validation to reduce remediation cycles.`}}],wv=[($,Q)=>{let X=$.benchmarks.filter((Y)=>Y.trend==="degrading");if(X.length===0)return null;let J=X.map((Y)=>Y.operation).join(", ");return{skill:Q,category:"benchmark",severity:"warning",hint:`Degrading benchmarks detected: ${J}. Review recent changes for performance impact.`}},($,Q)=>{let X=$.gates["check-property-tests"];if(!X)return null;let J=Math.round((1-X.passRate)*100)/100;if(J<=Zv)return null;return{skill:Q,category:"pbt",severity:"warning",hint:`Property-based test failure rate is ${(J*100).toFixed(0)}%. Review edge cases and invariant definitions.`}}]});var M1="telemetry",cQ=1200,pQ=600,dQ=2000,KN=200,UN=20,qN=0.2,VN=10,FN=5;var N3;var ZN=w0(()=>{N3=class N3 extends Error{featureId;expected;actual;constructor($,Q,X){super(`Version conflict for '${$}': expected ${Q}, actual ${X}`);this.featureId=$;this.expected=Q;this.actual=X;this.name="VersionConflictError"}}});var CN={};W6(CN,{SqliteBackend:()=>wN});import $y from"better-sqlite3";class wN{dbPath;db;stmts;outboxIdCounter=0;queryStmtCache=new Map;constructor($){this.dbPath=$}initialize(){if(this.db=new $y(this.dbPath),this.db.pragma("journal_mode = WAL"),this.db.pragma("synchronous = NORMAL"),this.db.pragma("mmap_size = 268435456"),this.db.exec(Qy),this.migrateSchema(),!this.db.prepare("SELECT version FROM schema_version WHERE version = ?").get(bN))this.db.prepare("INSERT OR IGNORE INTO schema_version (version, appliedAt) VALUES (?, ?)").run(bN,new Date().toISOString());this.stmts=this.prepareStatements()}close(){if(this.db)this.db.close()}migrateSchema(){if(!this.db.prepare("PRAGMA table_info(events)").all().some((X)=>X.name==="payload"))this.db.exec("ALTER TABLE events ADD COLUMN payload TEXT")}prepareStatements(){return{insertEvent:this.db.prepare("INSERT OR IGNORE INTO events (streamId, sequence, type, timestamp, data, payload) VALUES (?, ?, ?, ?, ?, ?)"),upsertSequence:this.db.prepare("INSERT INTO sequences (streamId, sequence) VALUES (?, ?) ON CONFLICT(streamId) DO UPDATE SET sequence = excluded.sequence"),selectSequence:this.db.prepare("SELECT sequence FROM sequences WHERE streamId = ?"),selectEvents:this.db.prepare("SELECT streamId, sequence, type, timestamp, data, payload FROM events WHERE streamId = ? ORDER BY sequence"),getState:this.db.prepare("SELECT state, version FROM workflow_state WHERE featureId = ?"),upsertState:this.db.prepare(`INSERT INTO workflow_state (featureId, state, version, updatedAt) VALUES (?, ?, ?, ?)
|
|
32
32
|
ON CONFLICT(featureId) DO UPDATE SET state = excluded.state, version = excluded.version, updatedAt = excluded.updatedAt`),selectAllStates:this.db.prepare("SELECT featureId, state FROM workflow_state"),getStateVersion:this.db.prepare("SELECT version FROM workflow_state WHERE featureId = ?"),insertOutbox:this.db.prepare("INSERT INTO outbox (id, streamId, event, status, attempts, createdAt) VALUES (?, ?, ?, ?, ?, ?)"),selectPendingOutbox:this.db.prepare("SELECT id, streamId, event, attempts FROM outbox WHERE streamId = ? AND status = ? ORDER BY createdAt"),updateOutboxConfirmed:this.db.prepare("UPDATE outbox SET status = ?, lastAttemptAt = ? WHERE id = ?"),updateOutboxFailed:this.db.prepare("UPDATE outbox SET status = ?, attempts = ?, lastAttemptAt = ?, nextRetryAt = ?, error = ? WHERE id = ?"),updateOutboxDeadLetter:this.db.prepare("UPDATE outbox SET status = ?, lastAttemptAt = ?, error = ? WHERE id = ?"),getViewCache:this.db.prepare("SELECT state, highWaterMark FROM view_cache WHERE streamId = ? AND viewName = ?"),upsertViewCache:this.db.prepare(`INSERT INTO view_cache (streamId, viewName, state, highWaterMark, savedAt) VALUES (?, ?, ?, ?, ?)
|
|
33
33
|
ON CONFLICT(streamId, viewName) DO UPDATE SET state = excluded.state, highWaterMark = excluded.highWaterMark, savedAt = excluded.savedAt`),insertSchemaVersion:this.db.prepare("INSERT OR IGNORE INTO schema_version (version, appliedAt) VALUES (?, ?)")}}appendEvent($,Q){let X=Q.data?JSON.stringify(Q.data):null,J=JSON.stringify(Q);this.db.transaction(()=>{this.stmts.insertEvent.run($,Q.sequence,Q.type,Q.timestamp,X,J),this.stmts.upsertSequence.run($,Q.sequence)})()}queryEvents($,Q){let X=["streamId = ?"],J=[$];if(Q?.sinceSequence!==void 0)X.push("sequence > ?"),J.push(Q.sinceSequence);if(Q?.type)X.push("type = ?"),J.push(Q.type);if(Q?.since)X.push("timestamp >= ?"),J.push(Q.since);if(Q?.until)X.push("timestamp <= ?"),J.push(Q.until);let Y=`SELECT streamId, sequence, type, timestamp, data, payload FROM events WHERE ${X.join(" AND ")} ORDER BY sequence`;if(Q?.limit!==void 0&&Q?.offset!==void 0)Y+=" LIMIT ? OFFSET ?",J.push(Q.limit,Q.offset);else if(Q?.limit!==void 0)Y+=" LIMIT ?",J.push(Q.limit);else if(Q?.offset!==void 0)Y+=" LIMIT -1 OFFSET ?",J.push(Q.offset);let G=this.queryStmtCache.get(Y);if(!G)G=this.db.prepare(Y),this.queryStmtCache.set(Y,G);return G.all(...J).map((W)=>this.rowToEvent(W))}getSequence($){let Q=this.stmts.selectSequence.get($);return Q?Q.sequence:0}listStreams(){return this.db.prepare("SELECT DISTINCT streamId FROM sequences ORDER BY streamId").all().map((Q)=>Q.streamId)}getState($){let Q=this.stmts.getState.get($);if(!Q)return null;return JSON.parse(Q.state)}setState($,Q,X){this.db.transaction(()=>{let Y=this.stmts.getStateVersion.get($),G=Y?Y.version:0;if(X!==void 0&&G!==X)throw new N3($,X,G);let H=G+1;this.stmts.upsertState.run($,JSON.stringify(Q),H,new Date().toISOString())})()}listStates(){return this.stmts.selectAllStates.all().map((Q)=>({featureId:Q.featureId,state:JSON.parse(Q.state)}))}addOutboxEntry($,Q){this.outboxIdCounter++;let X=`outbox-${this.outboxIdCounter}-${Date.now()}`;return this.stmts.insertOutbox.run(X,$,JSON.stringify(Q),"pending",0,new Date().toISOString()),X}drainOutbox($,Q,X){let J=this.stmts.selectPendingOutbox.all($,"pending");if(J.length===0)return{sent:0,failed:0};let Y=X!==void 0?J.slice(0,X):J,G=0,H=0,W=new Date().toISOString();for(let B of Y){let K=JSON.parse(B.event);try{Q.appendEvents($,[{streamId:K.streamId,sequence:K.sequence,timestamp:K.timestamp,type:K.type,correlationId:K.correlationId,causationId:K.causationId,agentId:K.agentId,agentRole:K.agentRole,source:K.source,schemaVersion:K.schemaVersion,data:K.data,...K.idempotencyKey?{idempotencyKey:K.idempotencyKey}:{}}]),this.stmts.updateOutboxConfirmed.run("confirmed",W,B.id),G++}catch{let q=B.attempts+1;if(q>=Xy)this.stmts.updateOutboxDeadLetter.run("dead-letter",W,"Max retries exceeded",B.id);else{let V=Math.pow(2,q)*1000,A=new Date(Date.now()+V).toISOString();this.stmts.updateOutboxFailed.run("pending",q,W,A,"Send failed",B.id)}H++}}return{sent:G,failed:H}}getViewCache($,Q){let X=this.stmts.getViewCache.get($,Q);if(!X)return null;return{state:JSON.parse(X.state),highWaterMark:X.highWaterMark}}setViewCache($,Q,X,J){this.stmts.upsertViewCache.run($,Q,JSON.stringify(X),J,new Date().toISOString())}deleteStream($){this.db.transaction(()=>{this.db.prepare("DELETE FROM events WHERE streamId = ?").run($),this.db.prepare("DELETE FROM sequences WHERE streamId = ?").run($)})()}deleteState($){this.db.prepare("DELETE FROM workflow_state WHERE featureId = ?").run($)}pruneEvents($,Q){return this.db.prepare("DELETE FROM events WHERE streamId = ? AND timestamp < ?").run($,Q).changes}rowToEvent($){if($.payload)return JSON.parse($.payload);return{streamId:$.streamId,sequence:$.sequence,type:$.type,timestamp:$.timestamp,...$.data?{data:JSON.parse($.data)}:{}}}}var bN=2,Qy=`
|
|
34
34
|
CREATE TABLE IF NOT EXISTS events (
|