create-principles-disciple 1.145.28 → 1.145.29

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.
Files changed (37) hide show
  1. package/_release/product-identity.json +2 -2
  2. package/codex-adapter/dist/index.d.ts +4 -0
  3. package/codex-adapter/dist/index.js +2 -0
  4. package/codex-adapter/dist/ingestion/admission.js +1 -0
  5. package/codex-adapter/dist/ingestion/explicit-owner-statement.d.ts +22 -3
  6. package/codex-adapter/dist/ingestion/explicit-owner-statement.js +43 -16
  7. package/codex-adapter/dist/ingestion/turn-context.d.ts +75 -0
  8. package/codex-adapter/dist/ingestion/turn-context.js +302 -0
  9. package/codex-adapter/dist/pd-hook.js +87 -36
  10. package/codex-adapter/dist/worker/workspace-worker.js +4 -1
  11. package/codex-adapter/package.json +1 -1
  12. package/core/dist/runtime-v2/context-payload.d.ts +4 -4
  13. package/core/dist/runtime-v2/context-payload.d.ts.map +1 -1
  14. package/core/dist/runtime-v2/context-payload.js +1 -0
  15. package/core/dist/runtime-v2/context-payload.js.map +1 -1
  16. package/core/dist/runtime-v2/task-status.d.ts +1 -1
  17. package/core/package.json +1 -1
  18. package/host-runtime/dist/governance-signal-admission.d.ts +26 -7
  19. package/host-runtime/dist/governance-signal-admission.js +104 -34
  20. package/host-runtime/package.json +1 -1
  21. package/package.json +2 -2
  22. package/pd-cli/dist/commands/codex-reconcile.d.ts.map +1 -1
  23. package/pd-cli/dist/commands/codex-reconcile.js +30 -1
  24. package/pd-cli/dist/commands/codex-reconcile.js.map +1 -1
  25. package/pd-cli/dist/commands/pain-explicit.d.ts +8 -0
  26. package/pd-cli/dist/commands/pain-explicit.d.ts.map +1 -0
  27. package/pd-cli/dist/commands/pain-explicit.js +89 -0
  28. package/pd-cli/dist/commands/pain-explicit.js.map +1 -0
  29. package/pd-cli/dist/index.js +10 -0
  30. package/pd-cli/dist/index.js.map +1 -1
  31. package/pd-cli/package.json +1 -1
  32. package/plugin/dist/bundle.js +1 -1
  33. package/plugin/openclaw.plugin.json +1 -1
  34. package/plugin/package.json +1 -1
  35. package/release-manager/package.json +2 -2
  36. package/workbuddy-adapter/dist/worker/workspace-worker.js +1 -1
  37. package/workbuddy-adapter/package.json +1 -1
@@ -308,7 +308,7 @@ ${a}`;return}if(Q9(e,i,DPn)){PPn(e,o)&&(n.retry=e.toString("utf8",o));return}if(
308
308
  `);t.stack=n?`${n}
309
309
  ${o}`:i.stack}st.exports.fetch=function(e,n=void 0){return pLn(e,n).catch(r=>{throw ght?Eht(r,ght):r&&typeof r=="object"&&Error.captureStackTrace(r,st.exports.fetch),r})};st.exports.Headers=sb().Headers;st.exports.Response=iQ().Response;st.exports.Request=zD().Request;st.exports.FormData=u7().FormData;var{setGlobalOrigin:fLn,getGlobalOrigin:mLn}=b_e();st.exports.setGlobalOrigin=fLn;st.exports.getGlobalOrigin=mLn;var{CacheStorage:hLn}=imt(),{kConstruct:gLn}=zr();st.exports.caches=new hLn(gLn);var{deleteCookie:ALn,getCookies:yLn,getSetCookies:_Ln,setCookie:ELn,parseCookie:ILn}=gmt();st.exports.deleteCookie=ALn;st.exports.getCookies=yLn;st.exports.getSetCookies=_Ln;st.exports.setCookie=ELn;st.exports.parseCookie=ILn;var{parseMIMEType:vLn,serializeAMimeType:xLn}=Qp();st.exports.parseMIMEType=vLn;st.exports.serializeAMimeType=xLn;var{CloseEvent:wLn,ErrorEvent:bLn,MessageEvent:SLn}=k9(),{WebSocket:CLn,ping:kLn}=zmt();st.exports.WebSocket=CLn;st.exports.CloseEvent=wLn;st.exports.ErrorEvent=bLn;st.exports.MessageEvent=SLn;st.exports.ping=kLn;st.exports.WebSocketStream=rht().WebSocketStream;st.exports.WebSocketError=nxe().WebSocketError;st.exports.request=gQ(sP.request);st.exports.stream=gQ(sP.stream);st.exports.pipeline=gQ(sP.pipeline);st.exports.connect=gQ(sP.connect);st.exports.upgrade=gQ(sP.upgrade);st.exports.MockClient=eLn;st.exports.MockCallHistory=tLn;st.exports.MockCallHistoryLog=nLn;st.exports.MockPool=iLn;st.exports.MockAgent=rLn;st.exports.SnapshotAgent=oLn;st.exports.mockErrors=aLn;var{EventSource:TLn}=hht();st.exports.EventSource=TLn;function RLn(){globalThis.fetch=st.exports.fetch,globalThis.Headers=st.exports.Headers,globalThis.Response=st.exports.Response,globalThis.Request=st.exports.Request,globalThis.FormData=st.exports.FormData,globalThis.WebSocket=st.exports.WebSocket,globalThis.CloseEvent=st.exports.CloseEvent,globalThis.ErrorEvent=st.exports.ErrorEvent,globalThis.MessageEvent=st.exports.MessageEvent,globalThis.EventSource=st.exports.EventSource}st.exports.install=RLn});import*as $Ce from"path";an();var iRt=d.String(),oRt=d.Literal("1.0.0");In();an();In();an();var KLt="^\\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\\d|3[01])T(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d{3})?Z$",sC=d.String({pattern:KLt});var oo=d.String({minLength:1}),Hg=sC,cC=d.Union([d.Literal("prompt"),d.Literal("code_tool_hook"),d.Literal("defer_archive")]),qI=d.Union([d.Literal("strong"),d.Literal("weak"),d.Literal("unknown")]),Wa=d.Object({type:d.Union([d.Literal("principle"),d.Literal("artifact"),d.Literal("task"),d.Literal("run"),d.Literal("approval"),d.Literal("activation"),d.Literal("trajectory")]),id:oo},{additionalProperties:!1}),Bne=d.Union([d.Object({kind:d.Literal("evaluator_repair"),sourceEvaluatorTaskId:oo,sourceArtificerArtifactId:oo,repairIteration:d.Integer({minimum:0})},{additionalProperties:!1}),d.Object({kind:d.Literal("rollout_reopen"),causeId:oo,sourceRolloutTaskId:oo,sourceArtifactId:oo,revisionIteration:d.Integer({minimum:0}),taskRevisionEpoch:d.Optional(d.Integer({minimum:0}))},{additionalProperties:!1}),d.Object({kind:d.Literal("none")},{additionalProperties:!1})]),uC={schemaVersion:d.Literal("1"),sourceRef:Wa,principleId:oo,artifactId:d.Optional(oo),taskId:d.Optional(oo),lineageKey:d.Optional(oo),lineageConfidence:qI,revisionIdentity:d.Optional(Bne),occurredAt:d.Optional(Hg),recordedAt:Hg},IPe=d.Object({...uC,family:d.Literal("principle"),state:d.Union([d.Literal("candidate"),d.Literal("active"),d.Literal("archived"),d.Literal("deprecated"),d.Literal("probation")])},{additionalProperties:!1}),Fne=d.Object({...uC,family:d.Literal("task"),taskKind:d.Union([d.Literal("dreamer"),d.Literal("philosopher"),d.Literal("scribe"),d.Literal("artificer"),d.Literal("evaluator"),d.Literal("rollout_reviewer")]),channel:cC,status:d.Union([d.Literal("pending"),d.Literal("leased"),d.Literal("succeeded"),d.Literal("retry_wait"),d.Literal("failed"),d.Literal("needs_human_review")]),leaseExpiresAt:d.Optional(Hg),attemptCount:d.Integer({minimum:0}),maxAttempts:d.Integer({minimum:1}),lastErrorCategory:d.Optional(i0),completionIntent:d.Optional(d.Object({status:d.Union([d.Literal("pending"),d.Literal("applied")]),revisionEpoch:d.Integer({minimum:0}),effect:d.Union([d.Literal("governance_transition"),d.Literal("needs_human_review")])},{additionalProperties:!1}))},{additionalProperties:!1}),vPe=d.Object({...uC,family:d.Literal("runner_verdict"),runnerKind:d.Union([d.Literal("evaluator"),d.Literal("rollout_reviewer")]),outcome:d.Union([d.Literal("approved"),d.Literal("approve_rollout"),d.Literal("needs_revision"),d.Literal("rejected"),d.Literal("reject")])},{additionalProperties:!1}),xPe=d.Object({...uC,family:d.Literal("approval"),approvalId:oo,artifactId:oo,channel:cC,outcome:d.Union([d.Literal("pending"),d.Literal("approved"),d.Literal("rejected"),d.Literal("cancelled")])},{additionalProperties:!1}),wPe=d.Object({...uC,family:d.Literal("activation"),artifactId:oo,activationId:oo,channel:cC,outcome:d.Union([d.Literal("active"),d.Literal("deactivated")]),activatedAt:Hg,deactivatedAt:d.Optional(Hg)},{additionalProperties:!1}),bPe=d.Object({...uC,family:d.Literal("derived_relation"),relation:d.Union([d.Literal("successor_present"),d.Literal("revision_materialized"),d.Literal("revision_pending"),d.Literal("verdict_missing")]),evidenceRefs:d.Array(Wa)},{additionalProperties:!1}),Une=d.Object({code:d.Union([d.Literal("pain_created"),d.Literal("candidate_generated"),d.Literal("review_started"),d.Literal("revision_requested"),d.Literal("revision_reopened"),d.Literal("approved"),d.Literal("rejected"),d.Literal("activated"),d.Literal("deactivated"),d.Literal("failed"),d.Literal("human_review")]),occurredAt:d.Optional(Hg),recordedAt:Hg,summaryCode:oo,sourceRef:Wa,lineageConfidence:qI},{additionalProperties:!1}),Qne=d.Object({source:d.Union([d.Literal("ledger"),d.Literal("artifact"),d.Literal("task"),d.Literal("approval"),d.Literal("activation"),d.Literal("trajectory"),d.Literal("lineage")]),reasonCode:oo,nextActionCode:oo,sourceRef:d.Optional(Wa)},{additionalProperties:!1}),SPe=d.Object({principleId:oo,artifactIds:d.Array(oo),taskIds:d.Array(oo),revisionIdentities:d.Array(Bne),confidence:qI,sourceRefs:d.Array(Wa)},{additionalProperties:!1}),gN=d.Object({schemaVersion:d.Literal("1"),principleId:oo,asOf:Hg,lineage:SPe,principle:IPe,tasks:d.Array(Fne),runnerVerdicts:d.Array(vPe),derivedRelations:d.Array(bPe),approvals:d.Array(xPe),activations:d.Array(wPe),timelineEvents:d.Array(Une),collectionIssues:d.Array(Qne)},{additionalProperties:!1}),CPe=d.Object({value:d.Union([d.Literal("candidate"),d.Literal("active"),d.Literal("archived"),d.Literal("deprecated"),d.Literal("probation")]),sourceRefs:d.Array(Wa)},{additionalProperties:!1}),kPe=d.Object({stage:d.Optional(d.Union([d.Literal("generating"),d.Literal("reviewing"),d.Literal("revising"),d.Literal("approval"),d.Literal("activation")])),currentTaskKind:d.Optional(Fne.properties.taskKind),sourceRefs:d.Array(Wa)},{additionalProperties:!1}),TPe=d.Object({state:d.Union([d.Literal("idle"),d.Literal("queued"),d.Literal("running"),d.Literal("retry_scheduled"),d.Literal("stalled")]),sourceRefs:d.Array(Wa)},{additionalProperties:!1}),RPe=d.Object({kind:d.Union([d.Literal("owner_decision"),d.Literal("recovery")]),reasonCode:oo,sourceRef:Wa},{additionalProperties:!1}),OPe=d.Object({primary:d.Union([d.Literal("none"),d.Literal("owner_required"),d.Literal("recovery_required")]),items:d.Array(RPe)},{additionalProperties:!1}),DPe=d.Object({state:d.Union([d.Literal("none"),d.Literal("active"),d.Literal("partially_active"),d.Literal("deactivated")]),channels:d.Array(cC),observedChannels:d.Array(cC),sourceRefs:d.Array(Wa)},{additionalProperties:!1}),VLt=d.Union([d.Literal("governance.headline.owner_decision"),d.Literal("governance.headline.recovery"),d.Literal("governance.headline.revision"),d.Literal("governance.headline.processing"),d.Literal("governance.headline.active"),d.Literal("governance.headline.unavailable"),d.Literal("governance.headline.recorded")]),zLt=d.Union([d.Literal("governance.reason.approval_pending"),d.Literal("governance.reason.recovery_required"),d.Literal("governance.reason.automatic_revision"),d.Literal("governance.reason.processing"),d.Literal("governance.reason.activation_active"),d.Literal("governance.reason.data_incomplete"),d.Literal("governance.reason.no_current_process")]),YLt=d.Union([d.Literal("governance.next.review"),d.Literal("governance.next.inspect_recovery"),d.Literal("governance.next.wait"),d.Literal("governance.next.monitor"),d.Literal("governance.next.inspect_data"),d.Literal("governance.next.none")]),PPe=d.Object({headlineCode:VLt,reasonCode:zLt,nextActionCode:YLt,ownerActionRequired:d.Boolean(),safeReasonSummary:d.Optional(oo),sourceRefs:d.Array(Wa)},{additionalProperties:!1}),LPe=d.Object({degraded:d.Boolean(),issues:d.Array(Qne)},{additionalProperties:!1}),fH=d.Object({schemaVersion:d.Literal("1"),principleId:oo,asOf:Hg,summary:PPe,principleState:CPe,process:kPe,automation:TPe,attention:OPe,activationSummary:DPe,timeline:d.Array(Une),sourceRefs:d.Array(Wa),dataQuality:LPe},{additionalProperties:!1});an();var Jn=d.String({minLength:1}),AN=sC,Wne=d.Union([d.Literal("observed_fact"),d.Literal("pd_interpretation"),d.Literal("proposed_behavior"),d.Literal("system_state")]),NPe=d.Union([d.Object({status:d.Literal("known"),value:Jn},{additionalProperties:!1}),d.Object({status:d.Literal("unknown"),reasonCode:Jn},{additionalProperties:!1})]),MPe=d.Union([d.Literal("exact_id"),d.Literal("derived_relation"),d.Literal("heuristic"),d.Literal("unknown")]),BPe=d.Union([d.Literal("ledger"),d.Literal("candidate"),d.Literal("generic_artifact"),d.Literal("run"),d.Literal("pi_artifact"),d.Literal("task"),d.Literal("pain"),d.Literal("user_turn"),d.Literal("assistant_turn"),d.Literal("correction_sample"),d.Literal("approval"),d.Literal("activation"),d.Literal("decision"),d.Literal("application"),d.Literal("evidence_snapshot")]),Zr=d.Object({kind:BPe,id:Jn,fieldPath:d.String(),relation:MPe,claimClass:Wne,producer:NPe,recordedAt:d.Optional(AN),capturedAt:AN,truncated:d.Boolean()}),ao=d.Object({code:Jn,ownerText:Jn,sourceRefs:d.Array(Zr),count:d.Optional(d.Integer({minimum:1}))}),yN=d.Object({text:Jn,claimClass:Wne,sourceRefs:d.Array(Zr,{minItems:1})}),JLt=d.Object({items:d.Array(yN)}),o0=d.Union([d.Object({status:d.Literal("known"),value:Jn,provenance:d.Array(Zr,{minItems:1}),warnings:d.Array(ao)},{additionalProperties:!1}),d.Object({status:d.Literal("unknown"),reason:ao,provenance:d.Array(Zr)},{additionalProperties:!1}),d.Object({status:d.Literal("not_applicable"),reason:ao,provenance:d.Array(Zr,{minItems:1})},{additionalProperties:!1})]),lC=d.Union([d.Object({status:d.Literal("known"),value:d.Integer({minimum:0}),provenance:d.Array(Zr,{minItems:1}),warnings:d.Array(ao)},{additionalProperties:!1}),d.Object({status:d.Literal("unknown"),reason:ao,provenance:d.Array(Zr)},{additionalProperties:!1}),d.Object({status:d.Literal("not_applicable"),reason:ao,provenance:d.Array(Zr,{minItems:1})},{additionalProperties:!1})]),a0=d.Union([d.Object({status:d.Literal("known"),value:d.Array(yN),provenance:d.Array(Zr,{minItems:1}),warnings:d.Array(ao)},{additionalProperties:!1}),d.Object({status:d.Literal("unknown"),reason:ao,provenance:d.Array(Zr)},{additionalProperties:!1}),d.Object({status:d.Literal("not_applicable"),reason:ao,provenance:d.Array(Zr,{minItems:1})},{additionalProperties:!1})]),s0=a0,FPe=d.Object({text:Jn,sourceTier:d.Union([d.Literal("scribe"),d.Literal("distiller"),d.Literal("philosopher"),d.Literal("candidate_principle")]),selectionMode:d.Union([d.Literal("whole_field"),d.Literal("extracted_sentence")]),selectionReason:Jn,sourceVersion:Jn,decisionArtifactRef:d.Optional(Zr)}),UPe=d.Object({items:d.Array(yN),completeness:d.Union([d.Literal("partial"),d.Literal("not_assessed")])}),XLt=d.Object({activationRef:Zr,artifactRef:d.Optional(Zr),channel:d.Union([d.Literal("prompt"),d.Literal("code_tool_hook"),d.Literal("defer_archive")]),effectKind:d.Union([d.Literal("context_guidance"),d.Literal("runtime_rule"),d.Literal("non_enforcing_outcome")]),mode:o0,active:d.Boolean(),since:o0}),QPe=d.Object({state:d.Union([d.Literal("none"),d.Literal("active"),d.Literal("partially_active"),d.Literal("deactivated")]),items:d.Array(XLt)}),WPe=d.Object({ownerExplanation:Jn,sourceAvailability:o0,retainedBehaviorCount:lC,sourceReferenceCount:lC,governanceLineage:o0,promotionSufficiency:o0,observation:d.Object({deterministicEffects:lC,selfReportedEffects:lC,contextPresence:lC,window:o0,recentExamples:d.Array(yN)})}),ZLt=d.Object({targetRef:Zr,actionKey:Jn,scope:Jn,limitation:Jn,successfulPastReceipt:d.Optional(Zr)}),$Pe=d.Object({stopFuture:a0,restoreConfiguration:a0,undoPastExternalEffects:a0,ownerText:Jn}),eNt=d.Object({key:d.Union([d.Literal("target_identity"),d.Literal("human_readable_subject"),d.Literal("expected_consequence"),d.Literal("current_revision"),d.Literal("action_specific_requirement")]),status:d.Union([d.Literal("satisfied"),d.Literal("missing"),d.Literal("conflicting")]),ownerText:Jn,sourceRefs:d.Array(Zr)}),HPe=d.Object({actionSemantic:Jn,status:d.Union([d.Literal("ready"),d.Literal("blocked")]),requiredItems:d.Array(eNt)}),jPe=d.Object({key:Jn,targetRefs:d.Array(Zr),channel:d.Union([d.Literal("prompt"),d.Literal("code_tool_hook"),d.Literal("defer_archive")]),revisionArtifactId:o0,state:d.Union([d.Literal("pending"),d.Literal("approved"),d.Literal("rejected"),d.Literal("cancelled")]),reason:ao,materialGates:d.Array(HPe),decisionMaterial:d.Object({learnedPrinciple:s0,rationale:s0,consequence:s0},{additionalProperties:!1})}),GPe=d.Object({key:Jn,semantic:Jn,label:Jn,targetRefs:d.Array(Zr,{minItems:1}),serviceOperation:Jn,channel:d.String(),assessedAt:AN,requirements:d.Array(d.Object({name:Jn,ownerText:Jn,required:d.Boolean()})),expectedConsequence:s0,confirmation:d.Object({required:d.Boolean(),text:Jn}),sourceRefs:d.Array(Zr,{minItems:1})}),qPe=d.Object({subjectKey:Jn,actionSemantic:d.Union([Jn,d.Literal("judgment")]),kind:d.Union([d.Literal("data"),d.Literal("authorization"),d.Literal("safety"),d.Literal("runtime"),d.Literal("unsupported")]),reason:ao,requiredAudience:d.Union([d.Literal("owner"),d.Literal("operator"),d.Literal("system")])}),KPe=d.Object({code:d.Union([d.Literal("review"),d.Literal("wait"),d.Literal("inspect_data"),d.Literal("inspect_recovery"),d.Literal("monitor"),d.Literal("none")]),ownerText:Jn,targetRefs:d.Array(Zr),actionKey:d.Optional(Jn)}),tNt=d.Union([d.Literal("complete"),d.Literal("partial")]),VPe=d.Object({source:Jn,status:d.Union([d.Literal("available"),d.Literal("unavailable"),d.Literal("not_requested")]),capturedAt:AN,scope:Jn,reason:d.Optional(Jn)}),zPe=d.Object({group:d.Union([d.Literal("decision"),d.Literal("blocked"),d.Literal("recovery"),d.Literal("none")]),attention:d.Union([d.Literal("individual"),d.Literal("aggregate"),d.Literal("none")]),reason:ao}),nNt=d.Object({available:d.Boolean(),links:d.Array(d.Object({kind:Jn,target:Jn,reason:Jn})),warnings:d.Array(ao)}),YPe=d.Union([d.Literal("needs_owner_decision"),d.Literal("processing"),d.Literal("blocked"),d.Literal("recovery_needed"),d.Literal("decided"),d.Literal("no_action")]),JPe=d.Object({schemaVersion:d.Literal("1"),principleId:Jn,asOf:AN,sourceReadStatus:tNt,sourceReads:d.Array(VPe),incidentSummary:s0,learnedPrinciple:d.Union([d.Object({status:d.Literal("known"),value:FPe,provenance:d.Array(Zr,{minItems:1}),warnings:d.Array(ao)},{additionalProperties:!1}),d.Object({status:d.Literal("unknown"),reason:ao,provenance:d.Array(Zr)},{additionalProperties:!1})]),rationale:s0,applicability:a0,nonApplicabilityOrUnknown:a0,expectedBehavior:s0,currentEnforcement:d.Object({status:d.Union([d.Literal("known"),d.Literal("unknown")]),value:d.Optional(QPe),reason:d.Optional(ao),provenance:d.Array(Zr),warnings:d.Array(ao)}),evidenceSummary:d.Object({status:d.Union([d.Literal("known"),d.Literal("unknown")]),value:d.Optional(WPe),reason:d.Optional(ao),provenance:d.Array(Zr),warnings:d.Array(ao)}),uncertainty:a0,risk:d.Object({status:d.Union([d.Literal("known"),d.Literal("unknown")]),value:d.Optional(UPe),reason:d.Optional(ao),provenance:d.Array(Zr),warnings:d.Array(ao)}),rollback:d.Object({status:d.Union([d.Literal("known"),d.Literal("unknown")]),value:d.Optional($Pe),reason:d.Optional(ao),provenance:d.Array(Zr),warnings:d.Array(ao)}),decisionState:YPe,decisionSubjects:d.Array(jPe),availableActions:d.Array(GPe),blockers:d.Array(qPe),nextAction:KPe,inbox:zPe,technicalDetails:nNt});an();var ns=d.String({minLength:1}),XPe=gN.properties.asOf,aNt=d.Object({candidateId:ns,status:d.String(),recommendationKind:d.String(),description:d.String(),abstractedPrinciple:d.Optional(d.String()),trigger:d.Optional(d.String()),action:d.Optional(d.String()),title:d.Optional(d.String()),confidence:d.Optional(d.Number()),sourceRef:d.Optional(ns)}),sNt=d.Object({artifactId:ns,summary:d.Optional(d.String()),rootCause:d.Optional(d.String()),evidenceItems:d.Array(d.String()),diagnosisId:d.Optional(ns),sourceRunId:d.Optional(ns),truncated:d.Boolean()}),cNt=d.Object({artifactId:ns,statement:d.Optional(d.String()),rationale:d.Optional(d.String()),applicability:d.Array(d.String()),antiPatterns:d.Array(d.String()),risks:d.Array(d.String()),targetBehavior:d.Optional(d.String()),updatedAt:d.String()}),uNt=d.Object({artifactId:ns,title:d.Optional(d.String()),rationale:d.Optional(d.String()),scope:d.Optional(d.String())}),lNt=d.Object({sourceStatus:d.Union([d.Literal("available"),d.Literal("disabled"),d.Literal("unavailable")]),deterministicCount:d.Integer({minimum:0}),selfReportedCount:d.Integer({minimum:0}),contextPresenceCount:d.Integer({minimum:0}),windowDays:d.Integer({minimum:0}),recent:d.Array(d.Object({text:d.String(),createdAt:d.Optional(d.String()),level:d.String()}))}),dNt=d.Object({schemaVersion:d.Literal("1"),principleId:ns,asOf:XPe,ledger:d.Object({status:ns,text:d.String(),evaluability:d.String(),triggerPattern:d.String(),action:d.String(),derivedFromPainIds:d.Array(ns),ruleIds:d.Array(ns),createdAt:d.String(),updatedAt:d.String()}),governance:gN,candidate:d.Union([aNt,d.Null()]),diagnosis:d.Union([sNt,d.Null()]),scribe:d.Union([cNt,d.Null()]),philosopher:d.Union([uNt,d.Null()]),applications:d.Union([lNt,d.Null()]),coverageSourceStatus:d.Union([d.Literal("available"),d.Literal("disabled"),d.Literal("unavailable")]),semanticSources:d.Array(d.Object({tier:d.Union([d.Literal("scribe"),d.Literal("distiller"),d.Literal("philosopher"),d.Literal("candidate_principle")]),text:d.String(),sourceVersion:ns})),technicalRecommendationAvailable:d.Boolean(),scribeMaterials:d.Array(d.Object({artifactId:ns,statement:ns,rationale:d.Optional(d.String()),targetBehavior:d.Optional(d.String()),sourceVersion:ns})),piRootBound:d.Boolean(),sourceReads:d.Array(d.Object({source:ns,status:d.Union([d.Literal("available"),d.Literal("unavailable"),d.Literal("not_requested")]),capturedAt:XPe,scope:ns,reason:d.Optional(ns)}))});an();var jm=d.String({minLength:1}),ZPe=sC,$ne=d.Union([d.Literal("setup_required"),d.Literal("owner_decision_required"),d.Literal("recovery_required"),d.Literal("degraded"),d.Literal("background_processing"),d.Literal("all_clear")]),Hne=d.Union([d.Literal("governance.exp.reason.owner_identity_missing"),d.Literal("governance.exp.reason.owner_identity_invalid"),d.Literal("governance.exp.reason.owner_authentication_missing"),d.Literal("governance.exp.reason.approval_pending"),d.Literal("governance.exp.reason.rulecode_owner_decision"),d.Literal("governance.exp.reason.no_pending_decision"),d.Literal("governance.exp.reason.owner_decision_available"),d.Literal("governance.exp.reason.break_glass_entry"),d.Literal("governance.exp.reason.recovery_required"),d.Literal("governance.exp.reason.source_unavailable"),d.Literal("governance.exp.reason.config_invalid"),d.Literal("governance.exp.reason.processing"),d.Literal("governance.exp.reason.workspace_clear"),d.Literal("governance.exp.reason.workspace_empty")]),jne=d.Union([d.Literal("governance.exp.next.configure_owner"),d.Literal("governance.exp.next.authenticate_console"),d.Literal("governance.exp.next.review_approvals"),d.Literal("governance.exp.next.inspect_recovery"),d.Literal("governance.exp.next.inspect_sources"),d.Literal("governance.exp.next.fix_config"),d.Literal("governance.exp.next.monitor"),d.Literal("governance.exp.next.none")]),eLe=d.Union([d.Literal("production"),d.Literal("development"),d.Literal("demo"),d.Literal("test")]),Gne=d.Object({environment:d.Union([eLe,d.Literal("unknown")]),source:d.Union([d.Literal("workspace_config"),d.Literal("missing")]),configIssue:d.Optional(jm)},{additionalProperties:!1}),tLe=d.Object({sourceId:d.Union([d.Literal("state_db"),d.Literal("principle_ledger")]),available:d.Boolean(),reasonCode:d.Optional(jm)},{additionalProperties:!1}),nLe=d.Object({source:d.Union([d.Literal("approval"),d.Literal("task"),d.Literal("artifact"),d.Literal("principle"),d.Literal("activation")]),reasonCode:jm,count:d.Integer({minimum:0}),sampleRefs:d.Array(Wa,{maxItems:10})},{additionalProperties:!1}),mH=d.Object({authenticationMode:d.Union([d.Literal("authenticated"),d.Literal("no_auth")]),ownerIdentityConfiguration:d.Union([d.Literal("configured"),d.Literal("missing"),d.Literal("invalid")])},{additionalProperties:!1}),rLe=d.Object({view:fH,lineageConfidence:qI},{additionalProperties:!1}),iLe=d.Object({sourceId:d.Literal("state_db"),activeTaskCount:d.Integer({minimum:0}),sampleRefs:d.Array(Wa,{maxItems:10})},{additionalProperties:!1}),oLe=d.Object({schemaVersion:d.Literal("1"),asOf:ZPe,workspaceHash:jm,governanceViews:d.Array(rLe),ownerConfigSnapshot:mH,environmentContext:Gne,sourceAvailability:d.Array(tLe),dataQualityInputs:d.Array(nLe),frontierEvidence:d.Optional(iLe),rulecodeDecisionEvidence:d.Optional(d.Object({pendingCount:d.Integer({minimum:0}),sampleRefs:d.Array(Wa,{maxItems:10})},{additionalProperties:!1}))},{additionalProperties:!1}),aLe=d.Union([d.Literal("principle_approval"),d.Literal("rulecode_owner_decision"),d.Literal("emergency_pause")]),sLe=d.Union([d.Literal("operator_legacy"),d.Literal("configured_owner"),d.Literal("break_glass")]),cLe=d.Object({kind:aLe,observedAuthority:sLe,status:d.Union([d.Literal("entry_conditions_met"),d.Literal("blocked")]),reasonCode:Hne,nextActionCode:jne},{additionalProperties:!1}),uLe=d.Object({authenticationMode:mH.properties.authenticationMode,ownerIdentityConfiguration:mH.properties.ownerIdentityConfiguration,governanceActions:d.Array(cLe,{minItems:3,maxItems:3})},{additionalProperties:!1}),qne=d.Union([d.Literal("blocked"),d.Literal("needs_recovery"),d.Literal("needs_decision"),d.Literal("processing")]),lLe=d.Object({principleId:d.Optional(jm),category:qne,reasonCode:jm,sourceRefs:d.Array(Wa,{maxItems:10})},{additionalProperties:!1}),dLe=d.Object({category:qne,count:d.Integer({minimum:0}),items:d.Array(lLe,{maxItems:10}),hasMore:d.Boolean()},{additionalProperties:!1}),pLe=d.Object({primaryAttention:$ne,categories:d.Array(dLe)},{additionalProperties:!1}),fLe=d.Object({confidence:qI,strongViewCount:d.Integer({minimum:0}),weakViewCount:d.Integer({minimum:0}),unknownViewCount:d.Integer({minimum:0})},{additionalProperties:!1}),mLe=d.Object({environmentContext:Gne,lineageTransparency:fLe},{additionalProperties:!1}),hLe=d.Object({source:d.Union([d.Literal("ledger"),d.Literal("artifact"),d.Literal("task"),d.Literal("approval"),d.Literal("activation"),d.Literal("trajectory"),d.Literal("lineage"),d.Literal("workspace")]),reasonCode:jm,nextActionCode:jm,count:d.Integer({minimum:1}),sampleRefs:d.Array(Wa,{maxItems:3})},{additionalProperties:!1}),gLe=d.Object({degraded:d.Boolean(),issueGroups:d.Array(hLe,{maxItems:10}),hasMore:d.Boolean()},{additionalProperties:!1}),ALe=d.Object({primaryAttention:$ne,headlineCode:jm,reasonCode:Hne,nextActionCode:jne},{additionalProperties:!1}),yLe=d.Object({schemaVersion:d.Literal("1"),snapshotId:jm,asOf:ZPe,summary:ALe,readiness:uLe,activity:pLe,trustContext:mLe,dataQuality:gLe},{additionalProperties:!1});var dC=["openclaw_plugin_event_log","codex_pd_hook_event_log","codex_governance_observation"],pC="openclaw-application-ledger:";function Kne(t,e){let n=dC.some(o=>o===t),r=t==="openclaw_plugin_event_log"&&e?.startsWith(pC)===!0;return{retentionDays:n&&!r?7:90,...n?{sourceStatus:"unknown"}:{}}}import{createHmac as _Le,randomBytes as pNt}from"node:crypto";var ELe=32,Vne=32,ILe=16;function hH(){return pNt(ELe).toString("hex")}function bf(t){return typeof t=="string"&&/^[0-9a-f]{64}$/.test(t)}function fC(t){return new Date(t).toISOString().slice(0,10)}function _N(t){if(typeof t!="string"||!/^\d{4}-\d{2}-\d{2}$/.test(t))return!1;let e=new Date(`${t}T00:00:00.000Z`);return!Number.isNaN(e.getTime())&&e.toISOString().slice(0,10)===t}function zne(t,e){return _Le("sha256",t).update(`workspace:${e}`).digest("hex").slice(0,ILe)}function gH(t,e,n){return _Le("sha256",t).update(`daily-workspace:${e}:${n}`).digest("hex").slice(0,Vne)}function Yne(t){return typeof t=="string"&&t.length===Vne&&/^[0-9a-f]+$/.test(t)}an();var mC="1",c0="1",AH=["openclaw","codex","workbuddy","other"],yH=32,KI=d.Union([d.Boolean(),d.Null()]),fNt=d.Object({schemaVersion:d.Literal(mC),dailyTelemetryId:d.String(),bucketDate:d.String(),pdVersion:d.String({maxLength:yH}),hostKind:d.Union([d.Literal("openclaw"),d.Literal("codex"),d.Literal("workbuddy"),d.Literal("other")]),milestones:d.Object({initialized:KI,painObserved:KI,principleObserved:KI,activationObserved:KI,presenceReceiptObserved:KI,effectReceiptObserved:KI}),reliability:d.Object({initializationFailed:KI}),consentVersion:d.String()}),xLe=["schemaVersion","dailyTelemetryId","bucketDate","pdVersion","hostKind","milestones","reliability","consentVersion"];function EN(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function vLe(t){return t===null||typeof t=="boolean"}function wLe(t){let e=[];if(!EN(t))return{ok:!1,errors:["snapshot must be a JSON object"]};for(let u of Object.keys(t))xLe.includes(u)||e.push(`unknown top-level field '${u}'`);if(e.length>0)return{ok:!1,errors:e};(!Object.hasOwn(t,"schemaVersion")||t.schemaVersion!==mC)&&e.push(`schemaVersion must be '${mC}'`),(!Object.hasOwn(t,"consentVersion")||typeof t.consentVersion!="string"||t.consentVersion.length===0||t.consentVersion.length>8)&&e.push("consentVersion must be a short non-empty string"),Yne(t.dailyTelemetryId)||e.push("dailyTelemetryId must be 32 lowercase hex chars"),_N(t.bucketDate)||e.push("bucketDate must be a valid YYYY-MM-DD UTC date"),(typeof t.pdVersion!="string"||t.pdVersion.length===0||t.pdVersion.length>yH)&&e.push(`pdVersion must be a non-empty string of at most ${yH} chars`),AH.includes(t.hostKind)||e.push(`hostKind must be one of: ${AH.join(", ")}`);let n=["initialized","painObserved","principleObserved","activationObserved","presenceReceiptObserved","effectReceiptObserved"],{milestones:r}=t;if(!EN(r))e.push("milestones must be an object");else{for(let u of Object.keys(r))n.includes(u)||e.push(`unknown milestones field '${u}'`);for(let u of n)(!Object.hasOwn(r,u)||!vLe(r[u]))&&e.push(`milestones.${u} must be a boolean or null`)}let{reliability:i}=t;if(!EN(i))e.push("reliability must be an object");else{for(let u of Object.keys(i))u!=="initializationFailed"&&e.push(`unknown reliability field '${u}'`);(!Object.hasOwn(i,"initializationFailed")||!vLe(i.initializationFailed))&&e.push("reliability.initializationFailed must be a boolean or null")}if(e.length>0)return{ok:!1,errors:e};let o=AH.find(u=>u===t.hostKind),a=EN(t.milestones)?t.milestones:void 0,s=EN(t.reliability)?t.reliability:void 0;if(o===void 0||a===void 0||s===void 0)return{ok:!1,errors:["schema fields failed post-validation narrowing"]};let c=u=>u===null?null:u===!0;return{ok:!0,value:{schemaVersion:mC,dailyTelemetryId:typeof t.dailyTelemetryId=="string"?t.dailyTelemetryId:"",bucketDate:typeof t.bucketDate=="string"?t.bucketDate:"",pdVersion:typeof t.pdVersion=="string"?t.pdVersion:"",hostKind:o,milestones:{initialized:c(a.initialized),painObserved:c(a.painObserved),principleObserved:c(a.principleObserved),activationObserved:c(a.activationObserved),presenceReceiptObserved:c(a.presenceReceiptObserved),effectReceiptObserved:c(a.effectReceiptObserved)},reliability:{initializationFailed:c(s.initializationFailed)},consentVersion:typeof t.consentVersion=="string"?t.consentVersion:""}}}function _H(t){let e={schemaVersion:mC,dailyTelemetryId:t.dailyTelemetryId,bucketDate:t.bucketDate,pdVersion:t.pdVersion,hostKind:t.hostKind,milestones:{initialized:t.milestones.initialized,painObserved:t.milestones.painObserved,principleObserved:t.milestones.principleObserved,activationObserved:t.milestones.activationObserved,presenceReceiptObserved:t.milestones.presenceReceiptObserved,effectReceiptObserved:t.milestones.effectReceiptObserved},reliability:{initializationFailed:t.reliability.initializationFailed},consentVersion:c0},n=wLe(e);if(!n.ok)throw new Error(`Invalid product telemetry snapshot (programmer error): ${n.errors.join("; ")}`);return n.value}an();an();In();var Gm=d.Union([d.Literal("openclaw"),d.Literal("openclaw-cli"),d.Literal("openclaw-history"),d.Literal("claude-cli"),d.Literal("codex-cli"),d.Literal("gemini-cli"),d.Literal("local-worker"),d.Literal("test-double"),d.Literal("pi-ai"),d.Literal("pi-ai-l2")]),mNt=d.Object({supportsStructuredJsonOutput:d.Boolean(),supportsToolUse:d.Boolean(),supportsWorkingDirectory:d.Boolean(),supportsModelSelection:d.Boolean(),supportsLongRunningSessions:d.Boolean(),supportsCancellation:d.Boolean(),supportsArtifactWriteBack:d.Boolean(),supportsConcurrentRuns:d.Boolean(),supportsStreaming:d.Boolean(),capabilitiesValidUntil:d.Optional(d.String()),dynamicCapabilities:d.Optional(d.Object({toolsAvailable:d.Optional(d.Array(d.String())),modelOptions:d.Optional(d.Array(d.String()))}))}),hNt=d.Object({healthy:d.Boolean(),degraded:d.Boolean(),warnings:d.Array(d.String()),lastCheckedAt:d.String()}),gNt=d.Object({runId:d.String({minLength:1}),runtimeKind:Gm,startedAt:d.String()}),Jne=d.Union([d.Literal("queued"),d.Literal("running"),d.Literal("succeeded"),d.Literal("failed"),d.Literal("timed_out"),d.Literal("cancelled")]),ANt=d.Object({runId:d.String({minLength:1}),status:Jne,startedAt:d.Optional(d.String()),endedAt:d.Optional(d.String()),reason:d.Optional(d.String())}),EH=d.Object({runId:d.String({minLength:1}),runtimeKind:Gm,startedAt:d.String(),taskId:d.String({minLength:1}),attemptNumber:d.Integer({minimum:0}),executionStatus:Jne,endedAt:d.Optional(d.String()),reason:d.Optional(d.String()),outputRef:d.Optional(d.String()),createdAt:d.String(),updatedAt:d.String(),inputPayload:d.Optional(d.String()),outputPayload:d.Optional(d.String()),errorCategory:d.Optional(i0)}),bLe=d.Object({role:d.Union([d.Literal("user"),d.Literal("system"),d.Literal("tool")]),content:d.String()}),SLe=d.Object({agentId:d.String({minLength:1}),schemaVersion:d.String({minLength:1})}),CLe=d.Object({workflowId:d.String({minLength:1})}),kLe=d.Object({taskId:d.String({minLength:1})}),yNt=d.Object({agentSpec:SLe,workflowRef:d.Optional(CLe),taskRef:d.Optional(kLe),inputPayload:d.Unknown(),contextItems:d.Array(bLe),outputSchemaRef:d.Optional(d.String()),artifactContractRef:d.Optional(d.String()),timeoutMs:d.Number({minimum:0}),maxTokens:d.Optional(d.Number({minimum:1})),idempotencyKey:d.Optional(d.String()),preferredModel:d.Optional(d.String()),preferredRuntimeProfile:d.Optional(d.String()),systemPrompt:d.Optional(d.String())}),_Nt=d.Object({runId:d.String(),payload:d.Unknown()}),ENt=d.Object({artifactType:d.String(),ref:d.String()});var TLe=d.Object({structuredJson:d.Boolean(),toolUse:d.Optional(d.Boolean()),workingDirectory:d.Optional(d.Boolean())}),RLe=d.Object({defaultTimeoutMs:d.Number({minimum:0})}),OLe=d.Object({maxAttempts:d.Integer({minimum:1})}),INt=d.Object({agentId:d.String({minLength:1}),role:d.String({minLength:1}),schemaVersion:d.String({minLength:1}),inputSchemaRef:d.String({minLength:1}),outputSchemaRef:d.String({minLength:1}),artifactContractRef:d.Optional(d.String()),timeoutPolicy:RLe,retryPolicy:OLe,capabilitiesRequired:TLe,preferredRuntimeKinds:d.Optional(d.Array(Gm)),preferredModelProfile:d.Optional(d.String())});an();In();an();an();var IN=["tool_call","tool_result","assistant_message","user_message","system_event","unknown"],PLe=d.Union(IN.map(t=>d.Literal(t))),vH=["task","run","artifact","event"],LLe=d.Union(vH.map(t=>d.Literal(t))),NLe=d.Object({kind:LLe,id:d.String({minLength:1})}),MLe=d.Object({at:d.Union([d.String({minLength:1}),d.Null()]),kind:PLe,summary:d.String({minLength:1}),rawPreview:d.Optional(d.String()),metadata:d.Optional(d.Record(d.String(),d.Unknown()))}),BLe=d.Object({sourceTaskId:d.String({minLength:1}),sourcePainId:d.String({minLength:1}),sourceRunIds:d.Array(d.String({minLength:1})),capturedAt:d.String({minLength:1}),sourceRefs:d.Array(NLe),timeline:d.Array(MLe),ambiguityNotes:d.Array(d.String()),sanitizationNotes:d.Array(d.String())}),vNt=new Set(IN),xNt=new Set(vH);function wNt(t){let e=new Date(t);return!isNaN(e.getTime())}function Xne(t){return Array.isArray(t)&&t.every(e=>typeof e=="string")}function bNt(t){if(typeof t!="object"||t===null)return!1;let e=t;return!(typeof e.kind!="string"||!xNt.has(e.kind)||typeof e.id!="string"||e.id.length===0)}function SNt(t){if(typeof t!="object"||t===null)return{valid:!1,error:"timeline entry must be an object"};let e=t;return e.at!==null&&typeof e.at!="string"?{valid:!1,error:"timeline entry.at must be string or null"}:typeof e.at=="string"&&e.at.length===0?{valid:!1,error:"timeline entry.at must be non-empty string when present"}:typeof e.kind!="string"||!vNt.has(e.kind)?{valid:!1,error:`timeline entry.kind must be one of ${IN.join("|")}, got: ${String(e.kind)}`}:typeof e.summary!="string"||e.summary.length===0?{valid:!1,error:"timeline entry.summary must be a non-empty string"}:e.rawPreview!==void 0&&typeof e.rawPreview!="string"?{valid:!1,error:"timeline entry.rawPreview must be string if present"}:e.metadata!==void 0&&(typeof e.metadata!="object"||e.metadata===null||Array.isArray(e.metadata))?{valid:!1,error:"timeline entry.metadata must be a record if present"}:{valid:!0}}function xH(t){let e=[];if(typeof t!="object"||t===null)return{valid:!1,errors:["FullTracePayload must be an object"]};let n=t;if((typeof n.sourceTaskId!="string"||n.sourceTaskId.length===0)&&e.push("sourceTaskId must be a non-empty string"),(typeof n.sourcePainId!="string"||n.sourcePainId.length===0)&&e.push("sourcePainId must be a non-empty string"),Xne(n.sourceRunIds)?n.sourceRunIds.some(r=>r.length===0)&&e.push("sourceRunIds must not contain empty strings"):e.push("sourceRunIds must be an array of non-empty strings"),typeof n.capturedAt!="string"||n.capturedAt.length===0?e.push("capturedAt must be a non-empty ISO timestamp string"):wNt(n.capturedAt)||e.push("capturedAt must be a valid ISO 8601 timestamp"),!Array.isArray(n.sourceRefs))e.push("sourceRefs must be an array");else if(n.sourceRefs.length===0)e.push("sourceRefs must not be empty \u2014 at least one task ref is required");else{for(let i=0;i<n.sourceRefs.length;i++)bNt(n.sourceRefs[i])||e.push(`sourceRefs[${i}] is invalid: must have { kind: SourceRefKind, id: non-empty string }`);n.sourceRefs.some(i=>typeof i=="object"&&i!==null&&i.kind==="task")||e.push('sourceRefs must contain at least one { kind: "task", id } entry')}if(typeof n.sourceTaskId=="string"&&n.sourceTaskId.length>0&&Array.isArray(n.sourceRefs)){let r=n.sourceRefs.find(i=>typeof i=="object"&&i!==null&&i.kind==="task");r&&typeof r.id=="string"&&r.id!==n.sourceTaskId&&e.push("sourceRefs task ref id must match sourceTaskId")}if(Array.isArray(n.sourceRunIds)&&Array.isArray(n.sourceRefs)){let r=n.sourceRefs.filter(i=>typeof i=="object"&&i!==null&&i.kind==="run").map(i=>i.id);for(let i of n.sourceRunIds)r.includes(i)||e.push(`sourceRefs is missing { kind: "run", id: "${i}" } for sourceRunIds entry`)}if(!Array.isArray(n.timeline))e.push("timeline must be an array");else for(let r=0;r<n.timeline.length;r++){let i=SNt(n.timeline[r]);i.valid||e.push(`timeline[${r}]: ${i.error}`)}return Xne(n.ambiguityNotes)||e.push("ambiguityNotes must be an array of strings"),Xne(n.sanitizationNotes)||e.push("sanitizationNotes must be an array of strings"),{valid:e.length===0,errors:e}}var CNt=["apikey","api_key","api-key","token","authorization","password","secret","bearer","access_token","refresh_token","auth_token","secret_key"];function Zne(t){let e=!1;return{result:t.replace(/\bapi[_-]?key\s*[:=]\s*\S+/gi,r=>(e=!0,r.replace(/\S+$/,"[REDACTED]"))).replace(/\bapi[_-]?key["']?\s*:\s*["'][^"']*["']/gi,r=>{e=!0;let i=r.indexOf(":");return r.slice(0,i+1)+'"[REDACTED]"'}).replace(/\btoken\s*[:=]\s*\S+/gi,r=>(e=!0,r.replace(/\S+$/,"[REDACTED]"))).replace(/\btoken["']?\s*:\s*["'][^"']*["']/gi,r=>{e=!0;let i=r.indexOf(":");return r.slice(0,i+1)+'"[REDACTED]"'}).replace(/\bbearer\s+\S+/gi,r=>(e=!0,r.replace(/\S+$/,"[REDACTED]"))).replace(/\bauthorization\s*[:=]\s*\S+/gi,r=>(e=!0,r.replace(/\S+$/,"[REDACTED]"))).replace(/\bauthorization["']?\s*:\s*["'][^"']*["']/gi,r=>{e=!0;let i=r.indexOf(":");return r.slice(0,i+1)+'"[REDACTED]"'}).replace(/\bpassword\s*[:=]\s*\S+/gi,r=>(e=!0,r.replace(/\S+$/,"[REDACTED]"))).replace(/\bpassword["']?\s*:\s*["'][^"']*["']/gi,r=>{e=!0;let i=r.indexOf(":");return r.slice(0,i+1)+'"[REDACTED]"'}).replace(/\bsecret\s*[:=]\s*\S+/gi,r=>(e=!0,r.replace(/\S+$/,"[REDACTED]"))).replace(/\bsecret["']?\s*:\s*["'][^"']*["']/gi,r=>{e=!0;let i=r.indexOf(":");return r.slice(0,i+1)+'"[REDACTED]"'}),redacted:e}}function ere(t){if(typeof t=="string"){let{result:e,redacted:n}=Zne(t);return{result:e,redactedKeys:n?["string_value"]:[]}}if(Array.isArray(t)){let e=[];return{result:t.map((r,i)=>{let{result:o,redactedKeys:a}=ere(r);return e.push(...a.map(s=>`[${i}].${s}`)),o}),redactedKeys:e}}if(typeof t=="object"&&t!==null){let e={},n=[];for(let[r,i]of Object.entries(t)){let o=r.toLowerCase();if(CNt.some(a=>o===a||o.endsWith("_"+a)||o.startsWith(a+"_")||o.endsWith("-"+a)||o.startsWith(a+"-")))e[r]="[REDACTED]",n.push(r);else{let{result:a,redactedKeys:s}=ere(i);e[r]=a,n.push(...s.map(c=>`${r}.${c}`))}}return{result:e,redactedKeys:n}}return{result:t,redactedKeys:[]}}function wH(t){let e=[],n=t.timeline.map((r,i)=>{let{result:o,redacted:a}=Zne(r.summary);a&&e.push(`timeline[${i}].summary: secret pattern redacted`);let s=r.rawPreview;if(typeof r.rawPreview=="string"){let{result:u,redacted:l}=Zne(r.rawPreview);s=u,l&&e.push(`timeline[${i}].rawPreview: secret pattern redacted`)}let c=r.metadata;if(r.metadata){let{result:u,redactedKeys:l}=ere(r.metadata);c=u;for(let p of l)e.push(`timeline[${i}].metadata.${p}: secret key redacted`)}return{...r,summary:o,rawPreview:s,metadata:c}});return{payload:{...t,timeline:n,sanitizationNotes:[...t.sanitizationNotes,...e]},sanitizationNotes:e}}function DLe(t){if(!t)return null;let e=t.trim();if(!e.startsWith("{")&&!e.startsWith("["))return null;try{let n=JSON.parse(e);return typeof n=="object"&&n!==null&&!Array.isArray(n)?n:null}catch{return null}}function IH(t,e){let n=t[e];return typeof n=="string"&&n.length>0?n:void 0}function kNt(t){if(Array.isArray(t.userTurns)){let e=[];for(let n of t.userTurns)n&&typeof n=="object"&&typeof n.text=="string"&&e.push(n.text);return e.length>0?e.join(`
310
310
  `):void 0}}function TNt(t){if(Array.isArray(t.turns)){let e=[];for(let n of t.turns)n&&typeof n=="object"&&typeof n.text=="string"&&e.push(n.text);return e.length>0?e.join(`
311
- `):void 0}}function bH(t){let e=[];for(let n of t){let r=DLe(n.inputPayload),i=DLe(n.outputPayload),o=!1,a=!1,s=r?IH(r,"text")??kNt(r):void 0;s&&(e.push({at:n.startedAt??null,kind:"user_message",summary:s.length>200?s.slice(0,200)+"...[truncated]":s,rawPreview:s.length>500?s.slice(0,500)+"...[truncated]":void 0}),o=!0);let c=r?.toolCalls??i?.toolCalls;if(Array.isArray(c))for(let l of c){if(typeof l!="object"||l===null)continue;let p=l,f=typeof p.toolName=="string"?p.toolName:typeof p.name=="string"?p.name:"unknown",m=typeof p.status=="string"?p.status:void 0;e.push({at:n.startedAt??null,kind:"tool_call",summary:`${f}${m?` (${m})`:""}`,rawPreview:p.params?JSON.stringify(p.params).slice(0,500):void 0,metadata:{toolName:f,...m?{status:m}:{},...p.error?{error:typeof p.error=="string"?p.error:JSON.stringify(p.error)}:{}}}),o=!0,(p.result||p.error)&&(e.push({at:n.endedAt??n.startedAt??null,kind:"tool_result",summary:p.error?`Error from ${f}`:`Result from ${f}`,rawPreview:p.result?(typeof p.result=="string"?p.result:JSON.stringify(p.result)).slice(0,500):void 0,metadata:p.error?{toolName:f,error:typeof p.error=="string"?p.error:JSON.stringify(p.error)}:{toolName:f}}),a=!0)}else if(r){let l=IH(r,"toolName")??IH(r,"name");l&&(e.push({at:n.startedAt??null,kind:"tool_call",summary:`${l} (${n.executionStatus})`,rawPreview:r.params?JSON.stringify(r.params).slice(0,500):void 0,metadata:{toolName:l,status:n.executionStatus}}),o=!0)}let u=i?IH(i,"text")??TNt(i):void 0;if(u&&(e.push({at:n.endedAt??n.startedAt??null,kind:"assistant_message",summary:u.length>200?u.slice(0,200)+"...[truncated]":u,rawPreview:u.length>500?u.slice(0,500)+"...[truncated]":void 0}),a=!0),n.inputPayload&&!r&&n.inputPayload.trim().length>0){let l=n.inputPayload.trim();e.push({at:n.startedAt??null,kind:"unknown",summary:l.length>200?l.slice(0,200)+"...[truncated]":l,rawPreview:l.length>500?l.slice(0,500)+"...[truncated]":void 0}),o=!0}if(n.outputPayload&&!i&&n.outputPayload.trim().length>0){let l=n.outputPayload.trim();e.push({at:n.endedAt??n.startedAt??null,kind:"unknown",summary:l.length>200?l.slice(0,200)+"...[truncated]":l,rawPreview:l.length>500?l.slice(0,500)+"...[truncated]":void 0}),a=!0}if(r&&!o){let l=JSON.stringify(r).slice(0,500);e.push({at:n.startedAt??null,kind:"unknown",summary:l.length>200?l.slice(0,200)+"...[truncated]":l,rawPreview:l,metadata:{parseStatus:"unrecognized_json_shape"}})}if(i&&!a){let l=JSON.stringify(i).slice(0,500);e.push({at:n.endedAt??n.startedAt??null,kind:"unknown",summary:l.length>200?l.slice(0,200)+"...[truncated]":l,rawPreview:l,metadata:{parseStatus:"unrecognized_json_shape"}})}}return e}function SH(t,e){let n=[{kind:"task",id:t}];for(let r of e)n.push({kind:"run",id:r});return n}var CH=d.Object({ts:d.String({minLength:1}),role:d.Union([d.Literal("user"),d.Literal("assistant"),d.Literal("tool"),d.Literal("system")]),text:d.Optional(d.String()),toolName:d.Optional(d.String()),toolResultSummary:d.Optional(d.String()),eventType:d.Optional(d.String())}),FLe=d.Object({painId:d.Optional(d.String({minLength:1})),taskId:d.Optional(d.String({minLength:1})),runId:d.Optional(d.String({minLength:1})),sessionId:d.Optional(d.String({minLength:1})),timeRange:d.Optional(d.Object({start:d.String({minLength:1}),end:d.String({minLength:1})})),workspace:d.Optional(d.String({minLength:1})),executionStatus:d.Optional(d.String({minLength:1}))}),ULe=d.Object({trajectoryRef:d.String({minLength:1}),confidence:d.Number({minimum:0,maximum:1}),reasons:d.Array(d.String({minLength:1})),sourceTypes:d.Optional(d.Array(d.String({minLength:1})))}),tre=d.Object({query:FLe,candidates:d.Array(ULe)}),nre=d.Object({sourceRef:d.String({minLength:1}),entries:d.Array(CH),truncated:d.Boolean(),nextCursor:d.Optional(d.String({minLength:1}))}),ONt=d.Object({sourceRef:d.String({minLength:1}),note:d.String({minLength:1,maxLength:200})}),rre=d.Object({text:d.String({minLength:1}),sessionId:d.Optional(d.String()),turnIndex:d.Optional(d.Integer({minimum:0})),referencesAssistantTurnId:d.Optional(d.Integer({minimum:0})),occurredAt:d.Optional(d.String()),classification:d.Optional(d.Literal("owner_statement")),channel:d.Optional(d.Union([d.Literal("cli_owner_statement"),d.Literal("codex_explicit_prefix"),d.Literal("workbuddy_explicit_prefix"),d.Literal("openclaw_manual_pain")]))}),ire=d.Object({reasonSummary:d.Optional(d.String()),source:d.Optional(d.String()),severity:d.Optional(d.String()),painId:d.Optional(d.String({minLength:1})),sessionIdHint:d.Optional(d.String({minLength:1})),provenance:d.Optional(d.Union([d.Literal("host_context_bound"),d.Literal("owner_reported_no_host_trace"),d.Literal("automatic_hook")])),hostKind:d.Optional(d.Union([d.Literal("openclaw"),d.Literal("codex"),d.Literal("workbuddy")])),provenanceReason:d.Optional(d.String()),traceAvailability:d.Optional(d.Union([d.Literal("available"),d.Literal("unavailable_with_reason"),d.Literal("ambiguous")])),traceUnavailableDetail:d.Optional(d.Object({reason:d.String(),nextAction:d.String()})),evidence:d.Optional(d.Array(ONt)),correctionEvidence:d.Optional(rre)}),QLe=d.Object({toolName:d.Optional(d.String()),status:d.Optional(d.String()),params:d.Optional(d.String()),resultSummary:d.Optional(d.String()),errorSummary:d.Optional(d.String()),startedAt:d.Optional(d.String()),completedAt:d.Optional(d.String())}),WLe=d.Object({painId:d.Optional(d.String({minLength:1})),severity:d.Optional(d.String()),source:d.Optional(d.String()),reasonSummary:d.Optional(d.String()),sessionIdHint:d.Optional(d.String())}),$Le=d.Object({painContext:WLe,scratchpad:d.Array(d.String()),toolCallHistory:d.Array(QLe)});var DNt=d.Object({contextId:d.String({minLength:1}),sourceRefs:d.Array(d.String({minLength:1})),targetAgent:d.Optional(d.String({minLength:1})),diagnosisTarget:d.Optional(ire),conversationWindow:d.Array(CH),artifactRefs:d.Optional(d.Array(d.String({minLength:1}))),ambiguityNotes:d.Optional(d.Array(d.String())),summary:d.String({minLength:1})}),ore=d.Object({contextId:d.String({minLength:1}),contextHash:d.String({minLength:1}),taskId:d.String({minLength:1}),workspaceDir:d.String({minLength:1}),sourceRefs:d.Array(d.String({minLength:1})),diagnosisTarget:ire,conversationWindow:d.Array(CH),ambiguityNotes:d.Optional(d.Array(d.String())),fullTrace:d.Optional(d.Union([$Le,BLe,d.Null()]))});var HLe=["pending","leased","succeeded","retry_wait","failed","needs_human_review"],jLe=d.Union([...HLe.map(t=>d.Literal(t))]);var kH=d.Object({taskId:d.String({minLength:1}),taskKind:d.String({minLength:1}),status:jLe,createdAt:d.String(),updatedAt:d.String(),leaseOwner:d.Optional(d.String()),leaseExpiresAt:d.Optional(d.String()),attemptCount:d.Integer({minimum:0}),maxAttempts:d.Integer({minimum:1}),lastError:d.Optional(d.Union([i0,d.Null()])),inputRef:d.Optional(d.String()),resultRef:d.Optional(d.String()),diagnosticJson:d.Optional(d.String())}),PNt=d.Intersect([kH,d.Object({taskKind:d.Literal("diagnostician"),sourcePainId:d.Optional(d.String()),workspaceDir:d.String(),severity:d.Optional(d.String()),source:d.Optional(d.String()),sessionIdHint:d.Optional(d.String()),agentIdHint:d.Optional(d.String()),reasonSummary:d.String(),provenance:d.Optional(d.Union([d.Literal("host_context_bound"),d.Literal("owner_reported_no_host_trace"),d.Literal("automatic_hook"),d.Literal("openclaw_context_bound")])),hostKind:d.Optional(d.Union([d.Literal("openclaw"),d.Literal("codex"),d.Literal("workbuddy")])),provenanceReason:d.Optional(d.String()),evidence:d.Optional(d.Array(d.Object({sourceRef:d.String({minLength:1}),note:d.String({minLength:1,maxLength:200})}))),correctionEvidence:d.Optional(rre)})]);an();an();Do();var LNt=d.Union([d.Literal("People"),d.Literal("Design"),d.Literal("Assumption"),d.Literal("Tooling")]),NNt=d.Object({why:d.Number({minimum:1,maximum:5}),statement:d.String({minLength:1}),evidenceRefs:d.Array(d.String({minLength:1}),{minItems:1})}),MNt=d.Object({sourceRef:d.String({minLength:1}),note:d.String({minLength:1})}),qLe=d.Union([d.Literal("none"),d.Literal("action_drift"),d.Literal("intent_suspect"),d.Literal("healthy_tension")]),KLe=d.Union([d.Literal("weak"),d.Literal("moderate"),d.Literal("strong")]),VLe=d.Union([d.Literal("why"),d.Literal("desired_outcome"),d.Literal("non_negotiables"),d.Literal("stop_escalation"),d.Literal("current_strategic_focus")]),zLe=d.Union([d.Literal("confirm_drift"),d.Literal("revise_intent"),d.Literal("observe"),d.Literal("dismiss"),d.Literal("promote_to_principle"),d.Literal("promote_to_rulehost")]);var hC=d.Object({source:qLe,evidenceStrength:KLe,relatedIntentFields:d.Array(VLe),evidence:d.Array(d.String(),{maxItems:3}),explanation:d.String({minLength:1}),suggestedOwnerAction:zLe,intentDocHash:d.Optional(d.String())},{additionalProperties:!1}),Hl=d.Object({valid:d.Boolean(),diagnosisId:d.String({minLength:1}),taskId:d.String({minLength:1,description:"Lineage \u2014 re-injected if stripped; ERR-008"}),summary:d.String({minLength:1}),causalChain:d.Array(NNt),rootCause:d.String({minLength:1,description:'MUST include category prefix: "People: ..." or "Design: ..." or "Assumption: ..." or "Tooling: ..."'}),rootCauseCategory:LNt,evidence:d.Array(MNt),confidence:d.Number({minimum:0,maximum:1}),ambiguityNotes:d.Optional(d.Array(d.String())),intentTension:d.Optional(hC)}),GLe=new Set(["People","Design","Assumption","Tooling"]),vN=class{async validate(e,n){let r=[],i=[];if(typeof e!="object"||e===null)return{valid:!1,errors:["Output is not an object"],errorCategory:"output_invalid"};let o=e;if(typeof o.taskId!="string"||o.taskId!==n){let a="diag_rootcause-";if(typeof o.taskId=="string"&&n.startsWith(a)&&o.taskId===n.slice(a.length)){let s=o.taskId;o.taskId=n,i.push(`taskId re-injected: LLM output parent ID "${s}", corrected to "${n}" (ERR-008)`)}else r.push(`taskId mismatch: expected ${n}, got ${String(o.taskId)}`)}if(o.valid!==!0&&r.push("output.valid must be true"),(typeof o.rootCauseCategory!="string"||!GLe.has(o.rootCauseCategory))&&r.push(`rootCauseCategory must be one of People|Design|Assumption|Tooling, got ${String(o.rootCauseCategory)}`),typeof o.rootCause=="string"&&typeof o.rootCauseCategory=="string"&&GLe.has(o.rootCauseCategory)){let a=`${o.rootCauseCategory}: `;o.rootCause.startsWith(a)||r.push(`rootCause must start with "${a}" (matching rootCauseCategory "${o.rootCauseCategory}"), got: "${o.rootCause.slice(0,40)}${o.rootCause.length>40?"...":""}"`)}if(Array.isArray(o.causalChain))for(let a=0;a<o.causalChain.length;a++){let s=o.causalChain[a];if(!s||typeof s!="object"){r.push(`causalChain[${a}] must be an object`);continue}(typeof s.why!="number"||s.why<1||s.why>5)&&r.push(`causalChain[${a}].why must be a number in [1, 5]`),(typeof s.statement!="string"||s.statement.trim()==="")&&r.push(`causalChain[${a}].statement must be a non-empty string`),Array.isArray(s.evidenceRefs)?s.evidenceRefs.length===0&&r.push(`causalChain[${a}].evidenceRefs must have at least 1 item`):r.push(`causalChain[${a}].evidenceRefs must be an array`)}if(Array.isArray(o.evidence))for(let a=0;a<o.evidence.length;a++){let s=o.evidence[a];if(!s||typeof s!="object"){r.push(`evidence[${a}] must be an object`);continue}(typeof s.sourceRef!="string"||s.sourceRef.trim()==="")&&r.push(`evidence[${a}].sourceRef must be a non-empty string`),(typeof s.note!="string"||s.note.trim()==="")&&r.push(`evidence[${a}].note must be a non-empty string`)}if(Object.hasOwn(o,"intentTension")){let a=o.intentTension;if(a===null||typeof a!="object")r.push("intentTension must be an object when present");else{let s=a;Object.hasOwn(s,"confidence")&&r.push("intentTension.confidence is forbidden (SPEC \xA716.3); use rootCause-level confidence instead")}}if(!it.Check(Hl,e)){let s=[...it.Errors(Hl,e)].map(c=>`${c.path}: ${c.message}`);r.push(...s)}return r.length>0?{valid:!1,errors:r,errorCategory:"output_invalid",warnings:i}:{valid:!0,errors:[],warnings:i}}};var YLe=d.Object({principleId:d.Optional(d.String({minLength:1})),title:d.Optional(d.String()),rationale:d.String({minLength:1})}),JLe=d.Object({sourceRef:d.String({minLength:1}),note:d.String({minLength:1})}),TH=d.Union([d.Literal("principle"),d.Literal("rule"),d.Literal("implementation"),d.Literal("prompt"),d.Literal("defer")]),RH=d.Object({kind:TH,description:d.String({minLength:1}),triggerPattern:d.Optional(d.String({description:'Required when kind is "rule". Regex or keyword pattern for interception.'})),action:d.Optional(d.String({description:'Required when kind is "rule". Action to take when pattern matches.'})),abstractedPrinciple:d.Optional(d.String({description:'Required when kind is "principle". Highly abstracted, reusable wisdom (\u2264200 chars).'}))}),Jo=d.Object({valid:d.Boolean(),diagnosisId:d.String({minLength:1}),summary:d.String({minLength:1}),rootCause:d.String({minLength:1,description:'MUST include category prefix: "Design: ..." or "People: ..." or "Assumption: ..." or "Tooling: ..."'}),violatedPrinciples:d.Array(YLe),evidence:d.Array(JLe),recommendations:d.Array(RH,{minItems:1}),confidence:d.Number({minimum:0,maximum:1,description:"A number between 0.0 and 1.0 (NOT a string, NOT a percentage)"}),ambiguityNotes:d.Optional(d.Array(d.String())),intentTension:d.Optional(hC)}),BNt=d.Object({agentId:d.String({minLength:1}),taskId:d.String({minLength:1}),context:d.Unknown(),outputSchemaRef:d.Literal("diagnostician-output-v1"),timeoutMs:d.Number({minimum:0})});an();var xN=["candidate","active","archived","deprecated","probation"],OH=d.Union([...xN.map(t=>d.Literal(t))]),DH=d.Union([d.Literal("P0"),d.Literal("P1"),d.Literal("P2")]),PH=d.Union([d.Literal("general"),d.Literal("domain"),d.Literal("scenario")]),LH=d.Union([d.Literal("manual_only"),d.Literal("deterministic"),d.Literal("weak_heuristic")]),NH=d.Union([d.Literal("proposed"),d.Literal("implemented"),d.Literal("enforced"),d.Literal("retired")]),MH=d.Union([d.Literal("hook"),d.Literal("gate"),d.Literal("skill"),d.Literal("lora"),d.Literal("test"),d.Literal("prompt")]),BH=d.Union([d.Literal("candidate"),d.Literal("active"),d.Literal("disabled"),d.Literal("archived")]),FH=d.Union([d.Literal("code"),d.Literal("skill"),d.Literal("lora"),d.Literal("test"),d.Literal("prompt")]),XLe=d.Union([d.Literal("pain-negative"),d.Literal("success-positive"),d.Literal("principle-anchor")]);an();var FNt=d.Object({kind:d.Union([d.Literal("owner"),d.Literal("ai_owner")]),id:d.String()}),UNt=d.Object({painId:d.String(),candidateId:d.String(),decision:d.Literal("reuse"),actor:FNt,reason:d.String(),decidedAt:d.String(),decisionId:d.Optional(d.String())}),UH=d.Object({id:d.String(),version:d.Number(),text:d.String(),coreAxiomId:d.Optional(d.String()),triggerPattern:d.String(),action:d.String(),status:OH,priority:DH,scope:PH,domain:d.Optional(d.String()),evaluability:LH,valueScore:d.Number(),adherenceRate:d.Number(),painPreventedCount:d.Number(),lastPainPreventedAt:d.Optional(d.String()),derivedFromPainIds:d.Array(d.String()),ruleIds:d.Array(d.String()),conflictsWithPrincipleIds:d.Array(d.String()),supersedesPrincipleId:d.Optional(d.String()),createdAt:d.String(),updatedAt:d.String(),deprecatedAt:d.Optional(d.String()),deprecatedReason:d.Optional(d.String()),compilationRetryCount:d.Optional(d.Number()),reuseEvidence:d.Optional(d.Array(UNt))}),QH=d.Object({id:d.String(),version:d.Number(),name:d.String(),description:d.String(),type:MH,triggerCondition:d.String(),enforcement:d.Union([d.Literal("block"),d.Literal("warn"),d.Literal("log")]),action:d.String(),principleId:d.String(),parentRuleId:d.Optional(d.String()),status:NH,coverageRate:d.Number(),falsePositiveRate:d.Number(),implementationPath:d.Optional(d.String()),testPath:d.Optional(d.String()),createdAt:d.String(),updatedAt:d.String()}),WH=d.Object({id:d.String(),ruleId:d.String(),type:FH,path:d.String(),version:d.String(),coversCondition:d.String(),coveragePercentage:d.Number(),lifecycleState:BH,previousActive:d.Optional(d.String()),disabledAt:d.Optional(d.String()),disabledBy:d.Optional(d.String()),disabledReason:d.Optional(d.String()),archivedAt:d.Optional(d.String()),createdAt:d.String(),updatedAt:d.String()});an();var ZLe=d.Object({principleId:d.String(),dependsOn:d.Array(d.String()),conflictedWith:d.Array(d.String()),supersedes:d.Array(d.String())});an();var $H=d.Object({principleId:d.String(),painPreventedCount:d.Number(),avgPainSeverityPrevented:d.Number(),lastPainPreventedAt:d.Optional(d.String()),totalOpportunities:d.Number(),adheredCount:d.Number(),violatedCount:d.Number(),implementationCost:d.Number(),benefitScore:d.Number(),calculatedAt:d.String()});an();var are=d.Union([d.Literal("principle_created"),d.Literal("principle_updated"),d.Literal("principle_promoted"),d.Literal("principle_deprecated"),d.Literal("rule_created"),d.Literal("rule_enforced"),d.Literal("rule_retired"),d.Literal("implementation_added"),d.Literal("value_metrics_updated")]),eNe=d.Object({ts:d.String(),type:are,data:d.Object({principleId:d.Optional(d.String()),ruleId:d.Optional(d.String()),implementationId:d.Optional(d.String()),reason:d.String(),metrics:d.Optional(d.Record(d.String(),d.Any()))})});an();var tNe=d.Object({principles:d.Record(d.String(),UH),rules:d.Record(d.String(),QH),implementations:d.Record(d.String(),WH),metrics:d.Record(d.String(),$H),lastUpdated:d.String()});an();var nNe=d.Object({ts:d.String(),tool:d.String(),path:d.String(),type:d.Union([d.Literal("memory"),d.Literal("plan"),d.Literal("other")]),contentLength:d.Number()}),rNe=d.Object({date:d.String(),persistenceCount:d.Number(),persistenceByFile:d.Record(d.String(),d.Number()),lastPersistenceTime:d.Optional(d.String()),totalCharsPersisted:d.Number(),groomingExecutedCount:d.Number(),lastGroomingTime:d.Optional(d.String())});function VI(t){return{date:t,persistenceCount:0,persistenceByFile:{},totalCharsPersisted:0,groomingExecutedCount:0}}an();Do();var sre=d.Union([d.Literal("tool_call"),d.Literal("pain_signal"),d.Literal("rule_promotion"),d.Literal("governance_action"),d.Literal("hook_execution"),d.Literal("gate_block"),d.Literal("gate_bypass"),d.Literal("evolution_task"),d.Literal("empathy_rollback"),d.Literal("error"),d.Literal("warn"),d.Literal("diagnosis_task"),d.Literal("heartbeat_diagnosis"),d.Literal("diagnostician_report"),d.Literal("principle_candidate"),d.Literal("rule_enforced"),d.Literal("rulehost_evaluated"),d.Literal("rulehost_blocked"),d.Literal("rulehost_requireApproval"),d.Literal("rulehost_auto_correct_proposed"),d.Literal("rulehost_auto_correct_applied"),d.Literal("runtime_v2_prompt_activations_injected"),d.Literal("rulehost_unhealthy"),d.Literal("rulehost_skipped"),d.Literal("trajectory_observability_failure")]),Vc=d.Union([d.Literal("success"),d.Literal("failure"),d.Literal("detected"),d.Literal("blocked"),d.Literal("bypassed"),d.Literal("approved"),d.Literal("enqueued"),d.Literal("completed"),d.Literal("promoted"),d.Literal("passed"),d.Literal("changed"),d.Literal("rolled_back"),d.Literal("written"),d.Literal("injected"),d.Literal("created"),d.Literal("matched"),d.Literal("evaluated"),d.Literal("requireApproval"),d.Literal("auto_correct")]),iNe=d.Object({ts:d.String(),date:d.String(),type:sre,category:Vc,sessionId:d.Optional(d.String()),workspaceDir:d.Optional(d.String()),data:d.Record(d.String(),d.Any())}),oNe=d.Object({toolName:d.String(),filePath:d.Optional(d.String()),error:d.Optional(d.String()),errorType:d.Optional(d.String()),gfi:d.Optional(d.Number()),consecutiveErrors:d.Optional(d.Number()),exitCode:d.Optional(d.Number()),gfiBefore:d.Optional(d.Number()),gfiAfter:d.Optional(d.Number()),runId:d.Optional(d.String()),toolCallId:d.Optional(d.String())}),aNe=d.Object({score:d.Number(),source:d.String(),eventId:d.Optional(d.String()),reason:d.Optional(d.String()),isRisky:d.Optional(d.Boolean()),origin:d.Optional(d.Union([d.Literal("assistant_self_report"),d.Literal("user_manual"),d.Literal("system_infer")])),severity:d.Optional(d.Union([d.Literal("mild"),d.Literal("moderate"),d.Literal("severe")])),confidence:d.Optional(d.Number()),detection_mode:d.Optional(d.Union([d.Literal("structured"),d.Literal("legacy_tag")])),deduped:d.Optional(d.Boolean()),trigger_text_excerpt:d.Optional(d.String()),raw_score:d.Optional(d.Number()),calibrated_score:d.Optional(d.Number())}),sNe=d.Object({fingerprint:d.String(),ruleId:d.String(),phrase:d.String(),sampleCount:d.Number(),avgSimilarity:d.Number()}),cre=d.Object({action:d.Union([d.Literal("deactivate"),d.Literal("promote"),d.Literal("global_pause")]),activationId:d.Optional(d.String({minLength:1})),subject:d.Optional(d.Literal("all_live_rulecode")),actor:d.Union([d.Literal("owner"),d.Literal("cli"),d.Literal("session")]),reasonCode:d.String({minLength:1,maxLength:200}),outcome:d.Literal("authorized")}),cNe=d.Object({hook:d.String(),sessionId:d.Optional(d.String()),durationMs:d.Optional(d.Number()),error:d.Optional(d.String())}),uNe=d.Object({toolName:d.String(),filePath:d.String(),reason:d.String(),blockSource:d.Optional(d.String())}),lNe=d.Object({toolName:d.String(),filePath:d.String(),bypassType:d.Union([d.Literal("stage4_architect"),d.Literal("whitelisted")])}),dNe=d.Object({taskId:d.String(),taskType:d.String(),reason:d.String()}),pNe=d.Object({eventId:d.String(),originalScore:d.Number(),originalSessionId:d.Optional(d.String()),reason:d.String(),triggeredBy:d.Union([d.Literal("user_command"),d.Literal("natural_language"),d.Literal("system")])}),fNe=d.Object({taskCount:d.Number(),taskIds:d.Array(d.String()),trigger:d.Union([d.Literal("heartbeat"),d.Literal("immediate")])}),mNe=d.Object({taskId:d.String(),painEventId:d.Optional(d.String()),sessionId:d.Optional(d.String())}),hNe=d.Object({taskId:d.String(),reportPath:d.String(),category:d.Union([d.Literal("success"),d.Literal("missing_json"),d.Literal("incomplete_fields")])}),gNe=d.Object({principleId:d.String(),taskId:d.String(),source:d.Union([d.Literal("diagnostician"),d.Literal("manual")])}),ANe=d.Object({ruleId:d.String(),principleId:d.String(),enforcement:d.Union([d.Literal("warn"),d.Literal("block"),d.Literal("requireApproval")]),toolName:d.String(),filePath:d.String()}),ure=d.Object({toolName:d.String(),filePath:d.String(),matched:d.Boolean(),decision:d.Union([d.Literal("allow"),d.Literal("block"),d.Literal("requireApproval"),d.Literal("auto_correct"),d.Literal("no_rules_armed"),d.Literal("evaluation_failed")]),ruleId:d.Optional(d.String()),activationId:d.Optional(d.String()),activationMode:d.Optional(d.Union([d.Literal("shadow"),d.Literal("live")]))});function lre(t){return it.Check(ure,t)}var yNe=d.Object({toolName:d.String(),filePath:d.String(),reason:d.String(),ruleId:d.Optional(d.String())}),_Ne=d.Object({toolName:d.String(),filePath:d.String(),reason:d.String(),ruleId:d.Optional(d.String())}),ENe=d.Object({toolName:d.String(),filePath:d.String(),ruleId:d.String(),principleId:d.Optional(d.String()),confidence:d.Number(),reason:d.String(),applicationMode:d.Union([d.Literal("shadow"),d.Literal("live")]),correctedFields:d.Array(d.String()),validationValid:d.Boolean()}),INe=d.Object({toolName:d.String(),filePath:d.String(),ruleId:d.String(),principleId:d.Optional(d.String()),confidence:d.Number(),reason:d.String(),correctedFields:d.Array(d.Object({field:d.String(),original:d.Unknown(),applied:d.Unknown()}))}),vNe=d.Object({sessionId:d.String(),workspaceDir:d.String(),principleIds:d.Array(d.String()),activationIds:d.Array(d.String()),artifactIds:d.Array(d.String()),injectedCount:d.Number(),skippedWarnings:d.Array(d.String()),injectedCharCount:d.Number(),budget:d.Number(),skipReason:d.Optional(d.String()),nextAction:d.Optional(d.String()),legacySelectedCount:d.Optional(d.Number()),legacyTotalChars:d.Optional(d.Number()),legacyTruncated:d.Optional(d.Boolean()),v2Truncated:d.Optional(d.Boolean()),crossBlockDuplicateIds:d.Optional(d.Array(d.String())),runId:d.Optional(d.String()),hostKind:d.Optional(d.Union([d.Literal("openclaw"),d.Literal("codex"),d.Literal("workbuddy")])),eventId:d.Optional(d.String()),selectionPolicy:d.Optional(d.Union([d.Literal("legacy_fifo_prefix_v1"),d.Literal("fair_rotation_v1")])),eligibleCount:d.Optional(d.Number()),rotationStartIndex:d.Optional(d.Number()),selectionRoundOrdinal:d.Optional(d.Number()),selectionRoundSource:d.Optional(d.Literal("session_user_turn_ordinal")),droppedActivationIds:d.Optional(d.Array(d.String(),{maxItems:16})),oversizedActivationIds:d.Optional(d.Array(d.String(),{maxItems:16})),budgetPolicyVersion:d.Optional(d.String()),budgetCapacitySource:d.Optional(d.Union([d.Literal("operator_declared"),d.Literal("host_effective_window"),d.Literal("pi_catalog_exact"),d.Literal("legacy_fallback")])),budgetCapacityStatus:d.Optional(d.Union([d.Literal("confirmed"),d.Literal("unknown")])),budgetContextWindowTokens:d.Optional(d.Number()),budgetFallbackReason:d.Optional(d.Union([d.Literal("host_capacity_absent"),d.Literal("host_capacity_source_untrusted"),d.Literal("host_capacity_invalid_value"),d.Literal("catalog_unavailable"),d.Literal("model_identity_absent"),d.Literal("catalog_no_exact_match"),d.Literal("catalog_no_match_for_model_id"),d.Literal("catalog_ambiguous_model_id"),d.Literal("catalog_provider_absent"),d.Literal("catalog_metadata_invalid")]))}),xNe=d.Object({activationId:d.String(),artifactId:d.String(),ruleId:d.String(),reason:d.String(),nextAction:d.String()}),wNe=d.Object({activationId:d.String(),artifactId:d.String(),ruleId:d.String(),mode:d.Optional(d.Union([d.Literal("shadow"),d.Literal("live")])),reason:d.String(),nextAction:d.String()}),bNe=d.Object({sessionId:d.Optional(d.String()),reason:d.String(),nextAction:d.String()}),dre=d.Object({total:d.Number(),success:d.Number(),failure:d.Number(),byTool:d.Record(d.String(),d.Object({success:d.Number(),failure:d.Number()}))}),pre=d.Object({total:d.Number(),byType:d.Record(d.String(),d.Number()),byTool:d.Record(d.String(),d.Number())}),fre=d.Object({totalEvents:d.Number(),dedupedCount:d.Number(),dedupeHitRate:d.Number(),totalPenaltyScore:d.Number(),rolledBackScore:d.Number(),rollbackCount:d.Number(),bySeverity:d.Object({mild:d.Number(),moderate:d.Number(),severe:d.Number()}),scoreBySeverity:d.Object({mild:d.Number(),moderate:d.Number(),severe:d.Number()}),byDetectionMode:d.Object({structured:d.Number(),legacy_tag:d.Number()}),byOrigin:d.Object({assistant_self_report:d.Number(),user_manual:d.Number(),system_infer:d.Number()}),confidenceDistribution:d.Object({high:d.Number(),medium:d.Number(),low:d.Number()}),dailyTrend:d.Array(d.Object({date:d.String(),count:d.Number(),score:d.Number()}))}),mre=d.Object({peak:d.Number(),samples:d.Number(),total:d.Number(),resetCount:d.Number(),hourlyDistribution:d.Array(d.Number())}),hre=d.Object({tasksEnqueued:d.Number(),tasksCompleted:d.Number(),rulesPromoted:d.Number(),diagnosisTasksWritten:d.Number(),heartbeatsInjected:d.Number(),diagnosticianReportsWritten:d.Number(),reportsMissingJson:d.Number(),reportsIncompleteFields:d.Number(),principleCandidatesCreated:d.Number(),rulesEnforced:d.Number(),rulehostEvaluated:d.Number(),rulehostBlocked:d.Number(),rulehostRequireApproval:d.Number(),rulehostAutoCorrectProposed:d.Number(),rulehostAutoCorrectApplied:d.Number()});var gre=d.Object({total:d.Number(),success:d.Number(),failure:d.Number(),byType:d.Record(d.String(),d.Object({total:d.Number(),success:d.Number(),failure:d.Number()})),errors:d.Number(),totalDurationMs:d.Number()}),SNe=d.Object({date:d.String(),createdAt:d.String(),updatedAt:d.String(),tools:d.Object({total:d.Number(),success:d.Number(),failure:d.Number()}),toolCalls:dre,errors:pre,empathy:fre,gfi:mre,evolution:hre,hooks:gre});function gC(t){let e=new Date().toISOString();return{date:t,createdAt:e,updatedAt:e,tools:{total:0,success:0,failure:0},toolCalls:{total:0,success:0,failure:0,byTool:{}},errors:{total:0,byType:{},byTool:{}},empathy:{totalEvents:0,dedupedCount:0,dedupeHitRate:0,totalPenaltyScore:0,rolledBackScore:0,rollbackCount:0,bySeverity:{mild:0,moderate:0,severe:0},scoreBySeverity:{mild:0,moderate:0,severe:0},byDetectionMode:{structured:0,legacy_tag:0},byOrigin:{assistant_self_report:0,user_manual:0,system_infer:0},confidenceDistribution:{high:0,medium:0,low:0},dailyTrend:[]},gfi:{peak:0,samples:0,total:0,resetCount:0,hourlyDistribution:new Array(24).fill(0)},evolution:{tasksEnqueued:0,tasksCompleted:0,rulesPromoted:0,diagnosisTasksWritten:0,heartbeatsInjected:0,diagnosticianReportsWritten:0,reportsMissingJson:0,reportsIncompleteFields:0,principleCandidatesCreated:0,rulesEnforced:0,rulehostEvaluated:0,rulehostBlocked:0,rulehostRequireApproval:0,rulehostAutoCorrectProposed:0,rulehostAutoCorrectApplied:0},hooks:{total:0,success:0,failure:0,byType:{},errors:0,totalDurationMs:0}}}an();var CNe=d.Union([d.Object({ts:d.String(),date:d.String(),type:d.Literal("tool_call"),category:Vc,sessionId:d.Optional(d.String()),workspaceDir:d.Optional(d.String()),data:d.Record(d.String(),d.Any())}),d.Object({ts:d.String(),date:d.String(),type:d.Literal("pain_signal"),category:Vc,sessionId:d.Optional(d.String()),workspaceDir:d.Optional(d.String()),data:d.Record(d.String(),d.Any())}),d.Object({ts:d.String(),date:d.String(),type:d.Literal("rule_promotion"),category:Vc,sessionId:d.Optional(d.String()),workspaceDir:d.Optional(d.String()),data:d.Record(d.String(),d.Any())}),d.Object({ts:d.String(),date:d.String(),type:d.Literal("governance_action"),category:Vc,sessionId:d.Optional(d.String()),workspaceDir:d.Optional(d.String()),data:cre}),d.Object({ts:d.String(),date:d.String(),type:d.Literal("hook_execution"),category:Vc,sessionId:d.Optional(d.String()),workspaceDir:d.Optional(d.String()),data:d.Record(d.String(),d.Any())}),d.Object({ts:d.String(),date:d.String(),type:d.Literal("gate_block"),category:Vc,sessionId:d.Optional(d.String()),workspaceDir:d.Optional(d.String()),data:d.Record(d.String(),d.Any())}),d.Object({ts:d.String(),date:d.String(),type:d.Literal("gate_bypass"),category:Vc,sessionId:d.Optional(d.String()),workspaceDir:d.Optional(d.String()),data:d.Record(d.String(),d.Any())}),d.Object({ts:d.String(),date:d.String(),type:d.Literal("evolution_task"),category:Vc,sessionId:d.Optional(d.String()),workspaceDir:d.Optional(d.String()),data:d.Record(d.String(),d.Any())}),d.Object({ts:d.String(),date:d.String(),type:d.Literal("empathy_rollback"),category:Vc,sessionId:d.Optional(d.String()),workspaceDir:d.Optional(d.String()),data:d.Record(d.String(),d.Any())}),d.Object({ts:d.String(),date:d.String(),type:d.Literal("error"),category:Vc,sessionId:d.Optional(d.String()),workspaceDir:d.Optional(d.String()),data:d.Record(d.String(),d.Any())}),d.Object({ts:d.String(),date:d.String(),type:d.Literal("warn"),category:Vc,sessionId:d.Optional(d.String()),workspaceDir:d.Optional(d.String()),data:d.Record(d.String(),d.Any())})]);an();var Are=d.Union([d.Literal("low"),d.Literal("medium"),d.Literal("high"),d.Literal("critical")]),kNe=d.Object({source:d.String({minLength:1}),score:d.Number({minimum:0,maximum:100}),timestamp:d.String({minLength:1}),reason:d.String({minLength:1}),sessionId:d.Optional(d.String()),agentId:d.Optional(d.String()),traceId:d.Optional(d.String()),triggerTextPreview:d.String(),version:d.Optional(d.String({default:"0.1.0"})),domain:d.String({default:"coding"}),severity:Are,context:d.Record(d.String(),d.Unknown())});var zI="_tree";an();var HH=d.Object({kind:d.Literal("every"),everyMs:d.Number({minimum:1e3})}),jH=d.Object({promptTemplate:d.String({minLength:1}),timeoutSeconds:d.Optional(d.Number({minimum:1})),lightContext:d.Optional(d.Boolean()),toolsAllow:d.Optional(d.Array(d.String({minLength:1})))}),GH=d.Object({mode:d.Union([d.Literal("none"),d.Literal("announce")]),channel:d.Optional(d.String({minLength:1})),to:d.Optional(d.String({minLength:1}))}),qH=d.Object({createdAtMs:d.Optional(d.Number({minimum:0})),lastSyncedAtMs:d.Optional(d.Number({minimum:0})),lastSyncedJobId:d.Optional(d.String({minLength:1})),lastSyncStatus:d.Optional(d.Union([d.Literal("ok"),d.Literal("error")])),lastSyncError:d.Optional(d.String({minLength:1})),consecutiveFailCount:d.Optional(d.Number({minimum:0})),lastFailedAtMs:d.Optional(d.Number({minimum:0})),autoDisabled:d.Optional(d.Boolean()),autoDisabledAt:d.Optional(d.Number({minimum:0})),autoDisabledReason:d.Optional(d.String({minLength:1})),lastTriggeredAtMs:d.Optional(d.Number({minimum:0})),lastTriggerStatus:d.Optional(d.Union([d.Literal("succeeded"),d.Literal("failed"),d.Literal("pending")]))}),yre=d.Object({id:d.String({minLength:1}),name:d.String({minLength:1}),description:d.String({minLength:1}),enabled:d.Boolean(),version:d.String({minLength:1}),schedule:HH,agentId:d.Optional(d.String({minLength:1})),execution:jH,delivery:GH,meta:d.Optional(qH)});an();var _re=d.Union([d.Literal("recorded-only"),d.Literal("evidence-only"),d.Literal("diagnosis-queued"),d.Literal("diagnosis-running"),d.Literal("diagnosis-succeeded"),d.Literal("diagnosis-failed"),d.Literal("diagnosis-retry-wait"),d.Literal("candidate-generated"),d.Literal("internalization-missing"),d.Literal("internalization-pending"),d.Literal("internalization-running"),d.Literal("internalization-failed"),d.Literal("internalization-succeeded"),d.Literal("owner-reviewable"),d.Literal("malformed"),d.Literal("degraded")]),Ere=d.Object({id:d.String(),sourceKind:d.String(),observedAt:d.String(),state:_re,summary:d.String(),admissionDecision:d.Optional(d.String()),linkedPainId:d.Optional(d.String()),linkedTaskId:d.Optional(d.String()),linkedTaskStatus:d.Optional(d.String()),linkedCandidateId:d.Optional(d.String()),linkedPrincipleId:d.Optional(d.String()),failureReason:d.Optional(d.String()),degradedReason:d.Optional(d.String()),nextAction:d.Optional(d.String()),candidateTitle:d.Optional(d.String()),candidateSummary:d.Optional(d.String()),rootCauseSummary:d.Optional(d.String()),confidence:d.Optional(d.Number()),recommendationKind:d.Optional(d.String()),internalizationTaskId:d.Optional(d.String()),dreamerTaskStatus:d.Optional(d.String()),canonicalPainId:d.Optional(d.String()),runtimeTaskId:d.Optional(d.String()),linkMode:d.Optional(d.Union([d.Literal("canonical"),d.Literal("legacy")])),intentTension:d.Optional(hC)}),TNe=d.Object({records:d.Array(Ere),generatedAt:d.String(),degradedReason:d.Optional(d.String()),nextAction:d.Optional(d.String()),note:d.Optional(d.String())});an();var aMt=d.Object({candidateId:d.String({minLength:1}),workspaceDir:d.String({minLength:1})}),sMt=d.Object({candidateId:d.String(),artifactId:d.String(),ledgerRef:d.String(),status:d.Literal("consumed")}),cMt=d.Object({id:d.String(),title:d.String(),text:d.String(),triggerPattern:d.Optional(d.String()),action:d.Optional(d.String()),status:d.Literal("probation"),evaluability:d.Literal("weak_heuristic"),sourceRef:d.String(),artifactRef:d.Optional(d.String()),taskRef:d.Optional(d.String()),createdAt:d.String()});function AC(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}var uMt=["title","text","triggerPattern","action","abstractedPrinciple"];function qm(t){if(!AC(t))return null;let e=!1;for(let n of uMt){let r=t[n];if(r!==void 0){if(typeof r!="string")return null;e=!0}}return e?t:null}var pa={CANDIDATE_NOT_FOUND:"candidate_not_found",CANDIDATE_ALREADY_CONSUMED:"candidate_already_consumed",ARTIFACT_NOT_FOUND:"artifact_not_found",LEDGER_WRITE_FAILED:"ledger_write_failed",INPUT_INVALID:"input_invalid",REUSE_CHECK_FAILED:"reuse_check_failed"},Qi=class extends Error{code;context;constructor(e,n,r){super(n),this.code=e,this.context=r,this.name="CandidateIntakeError"}};In();In();import{randomUUID as jMt}from"crypto";var RNe=new Set(["principle","rule","implementation","prompt","defer"]);function KH(t){return typeof t=="string"&&RNe.has(t)?t:"principle"}var lMt="principle";function Ire(t){return typeof t=="string"&&RNe.has(t)?t:null}function Km(t){return Ire(t)===lMt}function vre(t,e){let n=e.candidates.map(r=>({principleId:r.principleId,score:r.score,reasons:[r.similarityReason,...r.evidence.map(i=>`${i.field}: ${i.sharedTerms.slice(0,5).join("\u3001")}`)]}));return{candidateId:t,status:n.length>0?"pending":"no_candidates",candidates:n,eligibleCount:e.eligibleCount}}function xre(t){return t.status==="pending"}function ONe(t){if(t==null)return{ok:!1,reason:"decision_is_nullish"};if(typeof t!="object"||Array.isArray(t))return{ok:!1,reason:"decision_is_not_an_object"};let e=t,{decision:n}=e;if(n==="create")return{ok:!0,decision:{decision:"create"}};if(n!=="reuse")return{ok:!1,reason:`unknown_decision_value:${String(n)}`};let r=e.selectedPrincipleId;if(typeof r!="string"||r.length===0)return{ok:!1,reason:"reuse_without_principle_id"};let i=e.actor;if(typeof i!="object"||i===null||Array.isArray(i))return{ok:!1,reason:"reuse_actor_invalid"};let o=i;if(!(o.kind==="owner"||o.kind==="ai_owner")||typeof o.id!="string"||o.id.length===0)return{ok:!1,reason:"reuse_actor_invalid"};let{reason:a,decidedAt:s}=e;return typeof a!="string"||a.length===0?{ok:!1,reason:"reuse_reason_missing"}:typeof s!="string"||s.length===0||Number.isNaN(Date.parse(s))?{ok:!1,reason:"reuse_decidedAt_invalid"}:{ok:!0,decision:{decision:"reuse",selectedPrincipleId:r,actor:{kind:o.kind,id:o.id},reason:a,decidedAt:s}}}import{existsSync as FMt,readFileSync as UMt}from"fs";import*as vn from"fs";import*as jg from"path";import{randomUUID as EMt}from"node:crypto";Do();import{createHash as dMt}from"node:crypto";var wre=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,bre=/^sha256:[0-9a-f]{64}$/;function Gd(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function pc(t){return typeof t=="string"&&t.trim().length>0}var wN=class extends Error{constructor(e){super(e),this.name="RuleCandidateBindingCorruptionError"}};function DNe(t){let e=()=>{throw new wN("Malformed ruleCandidateBindings; preserve the ledger and repair from audited evidence.")};if(!Gd(t))return e();let n=Object.create(null),r=new Set,i=new Set;for(let[o,a]of Object.entries(t)){if(!pc(o)||!Gd(a)||a.candidateId!==o||!Array.isArray(a.revisions)||a.revisions.length===0)return e();let s=[];for(let[c,u]of a.revisions.entries()){if(!Gd(u)||u.revision!==c+1||!pc(u.decisionId)||!wre.test(u.decisionId)||r.has(u.decisionId)||!pc(u.requestId)||u.requestId.length>200||!["bind","revoke"].includes(String(u.action))||!pc(u.principleId)||!wre.test(u.principleId)||!pc(u.reason)||u.reason.length>2e3||!pc(u.decidedAt)||!Number.isFinite(Date.parse(u.decidedAt))||new Date(u.decidedAt).toISOString()!==u.decidedAt||!Gd(u.owner)||!pc(u.owner.actorId)||u.owner.source!=="authenticated_console"||typeof u.reviewedCandidateDigest!="string"||!bre.test(u.reviewedCandidateDigest)||typeof u.reviewedPrincipleDigest!="string"||!bre.test(u.reviewedPrincipleDigest))return e();let l=JSON.stringify([u.owner.actorId,u.requestId]);if(i.has(l))return e();let p=s.at(-1);if(u.action==="revoke"&&(!p||p.action!=="bind"||p.principleId!==u.principleId)||u.action==="bind"&&p?.action==="bind")return e();i.add(l),r.add(u.decisionId),s.push({...u,revision:c+1,decisionId:u.decisionId,requestId:u.requestId,action:u.action==="bind"?"bind":"revoke",principleId:u.principleId,reason:u.reason,decidedAt:u.decidedAt,owner:{...u.owner,actorId:u.owner.actorId,source:"authenticated_console"},reviewedCandidateDigest:u.reviewedCandidateDigest,reviewedPrincipleDigest:u.reviewedPrincipleDigest})}n[o]={...a,candidateId:o,revisions:s}}return n}function u0(t){let e=new Set,n=r=>{let i=typeof r;if(i==="boolean"||i==="string")return JSON.stringify(r);if(i==="number"){if(!Number.isFinite(r))throw new Error("Review snapshot is not finite JSON data.");return JSON.stringify(r)}if(i!=="object")throw new Error("Review snapshot is not finite JSON data.");if(!r)return JSON.stringify(r);if(e.has(r))throw new Error("Review snapshot is not finite JSON data.");e.add(r);let o;if(Array.isArray(r))o="["+r.map(n).join(",")+"]";else if(Gd(r)){let a=r;o="{"+Object.keys(a).sort().filter(s=>a[s]!==void 0).map(s=>JSON.stringify(s)+":"+n(a[s])).join(",")+"}"}else throw new Error("Review snapshot is not finite JSON data.");return e.delete(r),o};return"sha256:"+dMt("sha256").update(n(t)).digest("hex")}function bN(t,e,n){if(!Gd(t)||!Gd(t.candidate)||!Gd(t.task)||!Gd(t.run)||!Gd(t.artifact))return!1;let{candidate:r,task:i,run:o,artifact:a}=t,s=t.parentTask,c=i.taskKind==="diagnostician"?pc(i.inputRef):i.taskKind==="diag_router"&&Gd(s)&&pc(i.inputRef)&&s.taskId===i.inputRef&&s.taskKind==="diagnostician"&&s.status==="succeeded"&&pc(s.inputRef);if(!(r.candidateId===e&&r.rawRecommendationKind===n&&pc(r.taskId)&&r.taskId===i.taskId&&r.taskId===o.taskId&&r.taskId===a.taskId&&pc(r.sourceRunId)&&r.sourceRunId===o.runId&&r.sourceRunId===a.runId&&pc(r.artifactId)&&r.artifactId===a.artifactId&&c&&o.executionStatus==="succeeded"&&pc(r.sourceRecommendationJson)&&pc(a.contentJson)&&pc(o.outputPayload))||typeof r.sourceRecommendationJson!="string"||typeof a.contentJson!="string"||typeof o.outputPayload!="string")return!1;try{let l=JSON.parse(r.sourceRecommendationJson),p=JSON.parse(o.outputPayload),f=JSON.parse(a.contentJson);if(!it.Check(RH,l)||l.kind!==n||!it.Check(Jo,p)||!p.valid||!it.Check(Jo,f)||!f.valid)return!1;let m=u0(l);return p.recommendations.some(h=>u0(h)===m)&&f.recommendations.some(h=>u0(h)===m)}catch{return!1}}function YI(t,e){return!Gd(t)||e.status!=="resolved"?!1:t.candidateId===e.candidateId&&t.basis===e.basis&&t.principleId===e.principleId&&t.bindingRevision===e.bindingRevision&&t.decisionId===e.decisionId}function SN(t){return typeof t=="string"&&wre.test(t)}function Sre(t){return typeof t=="string"&&bre.test(t)}var pMt=["deterministic","weak_heuristic","manual_only"],fMt=["prompt_only","needs_training","in_training","deployed_pending_eval","internalized","regressed"];function Xo(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function yC(t){return Array.isArray(t)?t.filter(e=>typeof e=="string"):[]}function Cre(t,e){return typeof t!="number"||!Number.isFinite(t)?e.fallback:Math.max(e.min,Math.min(e.max,t))}function VH(t,e){return typeof t!="number"||!Number.isFinite(t)?e.fallback:Math.max(e.min,Math.min(e.max,Math.round(t)))}function Sf(t){return Array.from(new Set(t))}function mMt(t){if(!Xo(t))return{};let e={};for(let[n,r]of Object.entries(t))n===zI||!Xo(r)||r.principleId===n&&(e[n]={principleId:n,evaluability:pMt.includes(r.evaluability)?r.evaluability:"manual_only",applicableOpportunityCount:VH(r.applicableOpportunityCount,{min:0,max:1/0,fallback:0}),observedViolationCount:VH(r.observedViolationCount,{min:0,max:1/0,fallback:0}),complianceRate:Cre(r.complianceRate,{min:0,max:1,fallback:0}),violationTrend:Cre(r.violationTrend,{min:-1,max:1,fallback:0}),generatedSampleCount:VH(r.generatedSampleCount,{min:0,max:1/0,fallback:0}),approvedSampleCount:VH(r.approvedSampleCount,{min:0,max:1/0,fallback:0}),includedTrainRunIds:yC(r.includedTrainRunIds),deployedCheckpointIds:yC(r.deployedCheckpointIds),lastEvalScore:typeof r.lastEvalScore=="number"&&Number.isFinite(r.lastEvalScore)?Cre(r.lastEvalScore,{min:0,max:1,fallback:0}):void 0,internalizationStatus:fMt.includes(r.internalizationStatus)?r.internalizationStatus:"prompt_only"});return e}function hMt(t){if(!Xo(t))return{};let e={};for(let[n,r]of Object.entries(t))Xo(r)&&(e[n]={...r,id:n,ruleIds:yC(r.ruleIds),conflictsWithPrincipleIds:yC(r.conflictsWithPrincipleIds),derivedFromPainIds:yC(r.derivedFromPainIds)});return e}function gMt(t){if(!Xo(t))return{};let e={};for(let[n,r]of Object.entries(t))Xo(r)&&(e[n]={...r,id:n,principleId:typeof r.principleId=="string"?r.principleId:"",implementationIds:yC(r.implementationIds)});return e}function AMt(t){if(!Xo(t))return{};let e={};for(let[n,r]of Object.entries(t))!Xo(r)||typeof r.ruleId!="string"||(e[n]={...r,id:n,ruleId:r.ruleId});return e}function yMt(t){if(!Xo(t))return{};let e={};for(let[n,r]of Object.entries(t))Xo(r)&&(e[n]={...r,principleId:typeof r.principleId=="string"?r.principleId:n});return e}function _C(){return{principles:{},rules:{},implementations:{},metrics:{},lastUpdated:new Date(0).toISOString()}}function _Mt(t){return Xo(t)?{...t,...Object.hasOwn(t,"ruleCandidateBindings")?{ruleCandidateBindings:DNe(t.ruleCandidateBindings)}:{},principles:hMt(t.principles),rules:gMt(t.rules),implementations:AMt(t.implementations),metrics:yMt(t.metrics),lastUpdated:typeof t.lastUpdated=="string"?t.lastUpdated:new Date(0).toISOString()}:_C()}function PNe(t){if(!Xo(t))return{trainingStore:{},tree:_C()};let e=t.trainingStore??t,n=t[zI]??t.tree;return{trainingStore:mMt(e),tree:_Mt(n)}}function kre(t){return JSON.stringify({...t.trainingStore,[zI]:{...t.tree,lastUpdated:new Date().toISOString()}},null,2)}var IMt="principle_training_state.json",LNe=3,vMt=50;function MNe(t,e){let n=jg.dirname(t),r=vn.mkdtempSync(jg.join(n,".pd-write-")),i=jg.join(r,"tmp");try{vn.writeFileSync(i,e,{encoding:"utf8",mode:384});let o;for(let a=0;a<LNe;a++)try{vn.renameSync(i,t);return}catch(s){o=s;let{code:c}=s;if(c==="EPERM"||c==="EBUSY"||c==="EACCES"){if(a<LNe-1){let u=vMt*Math.pow(2,a),l=Date.now()+u;for(;Date.now()<l;)try{vn.accessSync(i)}catch{}}continue}break}throw o??new Error("atomicWriteFileSync: rename failed")}finally{try{vn.unlinkSync(i)}catch{}try{vn.rmdirSync(r)}catch{}}}function TN(t){return jg.join(t,IMt)}function JI(t){let e=TN(t);if(!vn.existsSync(e))return{ledger:{trainingStore:{},tree:_C()},availability:{status:"empty"}};try{let n=vn.readFileSync(e,"utf-8");if(!n||n.trim()==="")return{ledger:{trainingStore:{},tree:_C()},availability:{status:"empty"}};let r=JSON.parse(n);return{ledger:PNe(r),availability:{status:"ok"}}}catch(n){return{ledger:{trainingStore:{},tree:_C()},availability:{status:"unreadable",problem:n instanceof Error?n.message:String(n),...n instanceof wN?{corrupt:!0}:{}}}}}var zH=class extends Error{filePath;lockPath;constructor(e,n,r){super(e),this.name="LockAcquisitionError",this.filePath=n,this.lockPath=r}},BNe={maxRetries:50,baseRetryDelayMs:10,maxRetryDelayMs:500,lockStaleMs:1e4,lockSuffix:".lock"};function FNe(t){try{return process.kill(t,0),!0}catch{return!1}}function xMt(t){return typeof t=="object"&&t!==null&&Object.hasOwn(t,"code")}function NNe(t,e){try{let n=jg.dirname(t);vn.existsSync(n)||vn.mkdirSync(n,{recursive:!0});let r=vn.constants.O_WRONLY|vn.constants.O_CREAT|vn.constants.O_EXCL,i=vn.openSync(t,r,384);return vn.writeSync(i,String(e)),vn.fsyncSync(i),vn.closeSync(i),!0}catch(n){if(xMt(n)&&n.code==="EEXIST")return!1;throw n}}function CN(t){try{let e=vn.readFileSync(t,"utf8"),n=parseInt(e.trim(),10);return Number.isNaN(n)?null:n}catch{return null}}function wMt(t,e){try{CN(t)===e&&vn.unlinkSync(t)}catch{}}function bMt(t,e){try{let n=CN(t);if(n===null||!FNe(n))try{return vn.unlinkSync(t),!0}catch{return!1}return!1}catch{return!1}}function UNe(t,e,n){let r=Math.min(e*Math.pow(2,t),n),i=r*.2*Math.random();return Math.floor(r+i)}function SMt(t){if(t<=0)return;let e=new Int32Array(new SharedArrayBuffer(4));Atomics.wait(e,0,0,t)}function QNe(t,e,n){let r=t+e.lockSuffix;return NNe(r,n)&&CN(r)===n?{lockPath:r,pid:n,acquiredAt:Date.now()}:(bMt(r,e.lockStaleMs),NNe(r,n)&&CN(r)===n?{lockPath:r,pid:n,acquiredAt:Date.now()}:null)}function WNe(t,e){let n=t+e.lockSuffix,r=CN(n),i=r!==null?FNe(r)?`alive (PID ${r})`:`dead (PID ${r})`:"unknown";return new zH(`Failed to acquire lock for ${t}. Lock holder: ${i}.`,t,n)}function CMt(t,e={}){let n={...BNe,...e},{pid:r}=process;for(let i=0;i<n.maxRetries;i++){let o=QNe(t,n,r);if(o)return o;i<n.maxRetries-1&&SMt(UNe(i,n.baseRetryDelayMs,n.maxRetryDelayMs))}throw WNe(t,n)}async function kMt(t,e={}){let n={...BNe,...e},{pid:r}=process;for(let i=0;i<n.maxRetries;i++){let o=QNe(t,n,r);if(o)return o;i<n.maxRetries-1&&await new Promise(a=>setTimeout(a,UNe(i,n.baseRetryDelayMs,n.maxRetryDelayMs)))}throw WNe(t,n)}function $Ne(t){wMt(t.lockPath,t.pid)}function TMt(t,e,n){let r=CMt(t,n);try{return e()}finally{$Ne(r)}}async function RMt(t,e,n){let r=await kMt(t,n);try{return await e()}finally{$Ne(r)}}var kN=class extends Error{filePath;constructor(e,n){super(e),this.name="LedgerIntegrityError",this.filePath=n}};function Cf(t,e){let n=TN(t);return TMt(n,()=>{let r=JI(t);if(r.availability.status==="unreadable")throw new kN(`ledger_unavailable (refusing empty principles tree fallback): ${r.availability.problem}`,n);let i=r.ledger,o=e(i),a=jg.dirname(n);return vn.existsSync(a)||vn.mkdirSync(a,{recursive:!0}),MNe(n,kre(i)),o})}function Bn(t){return JI(t).ledger}function EC(t,e){return Cf(t,n=>(n.tree.principles[e.id]=e,n.tree.lastUpdated=new Date().toISOString(),e))}function Gg(t,e,n){return Cf(t,r=>{let i=r.tree.principles[e];if(!i)throw new Error(`Cannot update missing principle "${e}".`);let o={...i,...n,id:e,ruleIds:n.ruleIds?Sf(n.ruleIds):i.ruleIds,conflictsWithPrincipleIds:n.conflictsWithPrincipleIds?Sf(n.conflictsWithPrincipleIds):i.conflictsWithPrincipleIds,derivedFromPainIds:n.derivedFromPainIds?Sf(n.derivedFromPainIds):i.derivedFromPainIds};return r.tree.principles[e]=o,o})}var OMt=["painId","candidateId","decision","actor","reason","decidedAt","decisionId"];function Tre(t){let e=n=>{throw new Error(`appendReuseEvidence: malformed reuse evidence entry (${n}) \u2014 refusing to write (fail closed).`)};if(!Xo(t))return e(`expected an object, got ${typeof t}`);for(let n of Object.keys(t))OMt.includes(n)||e(`unknown field "${n}"`);if((typeof t.painId!="string"||t.painId.trim()==="")&&e("painId must be a non-empty string"),(typeof t.candidateId!="string"||t.candidateId.trim()==="")&&e("candidateId must be a non-empty string"),t.decision!=="reuse"&&e('decision must be exactly "reuse"'),!Xo(t.actor))return e("actor must be an object");t.actor.kind!=="owner"&&t.actor.kind!=="ai_owner"&&e('actor.kind must be "owner" or "ai_owner"'),(typeof t.actor.id!="string"||t.actor.id.trim()==="")&&e("actor.id must be a non-empty string"),(typeof t.reason!="string"||t.reason.trim()==="")&&e("reason must be a non-empty string"),(typeof t.decidedAt!="string"||t.decidedAt.trim()===""||Number.isNaN(Date.parse(t.decidedAt)))&&e("decidedAt must be a parseable date string"),t.decisionId!==void 0&&(typeof t.decisionId!="string"||t.decisionId.trim()==="")&&e("decisionId, when present, must be a non-empty string")}function HNe(t,e,n){Tre(n);let r=TN(t),i=vn.existsSync(r)?vn.statSync(r):null;return Cf(t,o=>{if(i!==null&&Object.keys(o.tree.principles).length===0)throw new kN(`Ledger file ${r} exists (${i.size} bytes) but parsed to an empty principles tree \u2014 the file is likely corrupt or truncated. Refusing to append reuse evidence, because the save below would replace the ledger with this write alone. Restore the ledger file first (fail closed).`,r);let a=o.tree.principles[e];if(!a)throw new Error(`Cannot append reuse evidence: principle "${e}" does not exist in the ledger.`);let s=a.reuseEvidence;if(s!==void 0&&!Array.isArray(s))throw new kN(`Principle "${e}" has a malformed reuseEvidence field (expected an array, got ${typeof s}). Refusing to append \u2014 fix or restore the ledger entry first (fail closed).`,r);let c=s??[];if(c.some(l=>Xo(l)&&l.candidateId===n.candidateId))return{principleId:e,reuseEvidence:c,appended:!1};let u=[...c,n];return a.reuseEvidence=u,{principleId:e,reuseEvidence:u,appended:!0}})}function RN(t,e,n){return Cf(t,r=>{let i={...n,principleId:e};return r.tree.metrics[e]=i,i})}function Rre(t){return TN(t)}function Ore(t,e){return Cf(t,n=>{let r=n.tree.principles[e.principleId];if(!r)throw new Error(`Cannot create rule "${e.id}" for missing principle "${e.principleId}".`);if(Object.hasOwn(n.tree.rules,e.id))throw new Error(`Cannot create rule "${e.id}": it already exists. Use updateRule instead.`);let i={...e,implementationIds:Sf(e.implementationIds)};return n.tree.rules[i.id]=i,r.ruleIds=Sf([...r.ruleIds,i.id]),i})}function Dre(t,e){return Cf(t,n=>{let r=n.tree.rules[e.ruleId];if(!r)throw new Error(`Cannot create implementation "${e.id}" for missing rule "${e.ruleId}".`);if(Object.hasOwn(n.tree.implementations,e.id))throw new Error(`Cannot create implementation "${e.id}": it already exists. Use updateImplementation instead.`);return n.tree.implementations[e.id]=e,r.implementationIds=Sf([...r.implementationIds,e.id]),e})}function Pre(t,e,n){return Cf(t,r=>{let i=r.tree.rules[e];if(!i)throw new Error(`Cannot update missing rule "${e}".`);let o=n.principleId??i.principleId,a=r.tree.principles[o];if(!a)throw new Error(`Cannot move rule "${e}" to missing principle "${o}".`);let s={...i,...n,id:e,principleId:o,implementationIds:n.implementationIds?Sf(n.implementationIds):i.implementationIds};if(i.principleId!==o){let c=r.tree.principles[i.principleId];c&&(c.ruleIds=c.ruleIds.filter(u=>u!==e)),a.ruleIds=Sf([...a.ruleIds,e])}return r.tree.rules[e]=s,s})}function Lre(t,e){return Cf(t,n=>{let r=n.tree.rules[e];if(!r)return;let i=n.tree.principles[r.principleId];i&&(i.ruleIds=i.ruleIds.filter(a=>a!==e));let o=Sf([...r.implementationIds,...Object.values(n.tree.implementations).filter(a=>a.ruleId===e).map(a=>a.id)]);for(let a of o)delete n.tree.implementations[a];return delete n.tree.rules[e],r})}function l0(t,e,n){return Cf(t,r=>{let i=r.tree.implementations[e];if(!i)throw new Error(`Cannot update missing implementation "${e}".`);let o=n.ruleId??i.ruleId,a=r.tree.rules[o];if(!a)throw new Error(`Cannot move implementation "${e}" to missing rule "${o}".`);let s={...i,...n,id:e,ruleId:o};if(i.ruleId!==o){let c=r.tree.rules[i.ruleId];c&&(c.implementationIds=c.implementationIds.filter(u=>u!==e)),a.implementationIds=Sf([...a.implementationIds,e])}return r.tree.implementations[e]=s,s})}function jNe(t,e){let n=Bn(t),r=n.tree.rules[e];return r?r.implementationIds.map(i=>n.tree.implementations[i]).filter(i=>i!==void 0):[]}function Nre(t,e){let n=Bn(t),r=n.tree.principles[e];if(r)return{principle:r,rules:r.ruleIds.map(i=>n.tree.rules[i]).filter(i=>i!==void 0).map(i=>({rule:i,implementations:i.implementationIds.map(o=>n.tree.implementations[o]).filter(o=>o!==void 0)}))}}var GNe={candidate:["active","archived"],active:["disabled","archived"],disabled:["active","archived"],archived:[]};function qNe(t,e){return GNe[t]?.includes(e)??!1}function YH(t){return GNe[t]??[]}function qd(t,e,n){return Cf(t,r=>{let i=r.tree.implementations[e];if(!i)throw new Error(`Implementation not found: ${e}`);let o=i.lifecycleState??"candidate";if(!qNe(o,n)){let s=YH(o);throw new Error(`Invalid lifecycle transition: ${o} -> ${n}. Allowed: ${s.length>0?s.join(", "):"none (terminal state)"}`)}let a={...i,lifecycleState:n,updatedAt:new Date().toISOString()};return r.tree.implementations[e]=a,a})}function Mre(t,e){return jNe(t,e).find(r=>r.lifecycleState==="active")??null}function JH(t,e){Cf(t,n=>{e(n.trainingStore)})}function Ms(t){return{ok:!1,reason:t,nextAction:"Reload the binding review; preserve existing evidence and resolve the reported conflict before retrying."}}async function KNe(t,e){if(!SN(t.id)||!["candidate","probation","active"].includes(t.status)||!Array.isArray(t.derivedFromPainIds)||t.derivedFromPainIds.length===0)return!1;for(let n of t.derivedFromPainIds){let r=await e.loadCandidateMaterial(n);if(!bN(r,n,"principle"))return!1}return!0}async function VNe(t,e,n){let{sources:r}=n,i=JI(t);if(i.availability.status==="unreadable")return Ms(i.availability.corrupt?"ledger_corrupt":"ledger_unavailable");let o=Object.hasOwn(i.ledger.tree.ruleCandidateBindings??{},e)?i.ledger.tree.ruleCandidateBindings?.[e]?.revisions.at(-1)??null:null;try{let a;try{a=await r.loadCandidateMaterial(e)}catch(l){if(o?.action!=="bind")throw l}if(o?.action==="bind"&&!bN(a,e,"rule"))return{ok:!0,candidateId:e,candidateMaterial:{candidate:null,task:null,run:null,artifact:null},reviewedCandidateDigest:o.reviewedCandidateDigest,currentRevision:o.revision,currentBinding:o,eligibleTargets:[]};if(!a)return Ms("candidate_missing");if(!bN(a,e,"rule"))return Ms("candidate_ineligible");if(o?.action==="bind")return{ok:!0,candidateId:e,candidateMaterial:a,reviewedCandidateDigest:o.reviewedCandidateDigest,currentRevision:o.revision,currentBinding:o,eligibleTargets:[]};let s=[],c=Math.max(1,Math.min(20,Number.isInteger(n.limit)?n.limit??20:20)),u=(n.search??"").trim().toLowerCase();for(let l of Object.values(i.ledger.tree.principles))if(!(u&&!l.id.toLowerCase().includes(u)&&!(typeof l.text=="string"&&l.text.toLowerCase().includes(u)))&&(await KNe(l,r)&&s.push({principle:l,reviewedPrincipleDigest:u0(l)}),s.length>=c))break;return{ok:!0,candidateId:e,candidateMaterial:a,reviewedCandidateDigest:u0(a),currentRevision:o?.revision??0,currentBinding:o,eligibleTargets:s}}catch{return Ms("review_source_unavailable")}}async function zNe(t,e,n){let r=TN(t);try{return await RMt(r,async()=>{let i=JI(t);if(i.availability.status==="unreadable")return Ms(i.availability.corrupt?"ledger_corrupt":"ledger_unavailable");if(!Xo(e)||typeof e.candidateId!="string"||!e.candidateId.trim()||["__proto__","constructor","prototype"].includes(e.candidateId)||!Xo(e.owner)||typeof e.owner.actorId!="string"||!e.owner.actorId.trim()||e.owner.source!=="authenticated_console"||!Xo(e.request))return Ms("invalid_request");let{request:o}=e,a=o.action==="bind"?["action","principleId","expectedRevision","expectedCandidateDigest","expectedPrincipleDigest","reason","requestId","resumeOnce"]:["action","expectedRevision","reason","requestId","resumeOnce"];if(Object.keys(o).some(I=>!a.includes(I))||!["bind","revoke"].includes(o.action)||!Number.isInteger(o.expectedRevision)||o.expectedRevision<0||typeof o.reason!="string"||!o.reason.trim()||o.reason.length>2e3||typeof o.requestId!="string"||!o.requestId.trim()||o.requestId.length>200||o.action==="bind"&&(o.resumeOnce!==!0||!SN(o.principleId)||!Sre(o.expectedCandidateDigest)||!Sre(o.expectedPrincipleDigest))||o.action==="revoke"&&o.resumeOnce!==!1)return Ms("invalid_request");let s=i.ledger.tree.ruleCandidateBindings??{},c=Object.hasOwn(s,e.candidateId)?s[e.candidateId]:void 0,u=c?.revisions.at(-1),l=(I,b)=>({ok:!0,status:b,binding:I,runtimeDeactivated:!1,inFlightOperationsMayComplete:!0});for(let I of Object.values(s))for(let b of I.revisions){if(b.owner.actorId!==e.owner.actorId||b.requestId!==o.requestId)continue;return I.candidateId===e.candidateId&&b.action===o.action&&b.reason===o.reason&&b.revision-1===o.expectedRevision&&(o.action!=="bind"||b.principleId===o.principleId&&b.reviewedCandidateDigest===o.expectedCandidateDigest&&b.reviewedPrincipleDigest===o.expectedPrincipleDigest)?l(b,b.action==="bind"?"already_bound":"already_revoked"):Ms("idempotency_conflict")}if((u?.revision??0)!==o.expectedRevision)return Ms("stale_revision");let p,f,m;if(o.action==="revoke"){if(!u)return Ms("binding_missing");if(u.action==="revoke")return l(u,"already_revoked");({principleId:p,reviewedCandidateDigest:f,reviewedPrincipleDigest:m}=u)}else{let I=await n.loadCandidateMaterial(e.candidateId);if(!I)return Ms("candidate_missing");if(!bN(I,e.candidateId,"rule"))return Ms("candidate_ineligible");let b=Object.hasOwn(i.ledger.tree.principles,o.principleId)?i.ledger.tree.principles[o.principleId]:void 0;if(!b)return Ms("target_missing");if(!await KNe(b,n))return Ms("target_ineligible");if(f=u0(I),m=u0(b),o.expectedCandidateDigest!==f||o.expectedPrincipleDigest!==m)return Ms("stale_digest");if(p=b.id,u?.action==="bind")return u.principleId===p?l(u,"already_bound"):Ms("binding_conflict")}let h={revision:(u?.revision??0)+1,decisionId:EMt(),requestId:o.requestId,action:o.action,principleId:p,reason:o.reason,decidedAt:new Date().toISOString(),owner:{actorId:e.owner.actorId,source:"authenticated_console"},reviewedCandidateDigest:f,reviewedPrincipleDigest:m},g={...c??{},candidateId:e.candidateId,revisions:[...c?.revisions??[],h]},_=Object.fromEntries([...Object.entries(s),[e.candidateId,g]]);i.ledger.tree.ruleCandidateBindings=_;let y=jg.dirname(r);return vn.existsSync(y)||vn.mkdirSync(y,{recursive:!0}),MNe(r,kre(i.ledger)),l(h,h.action==="bind"?"bound":"revoked")})}catch{return Ms("binding_write_unavailable")}}var DMt=[{from:"text",to:"text",weight:3},{from:"action",to:"action",weight:3},{from:"triggerPattern",to:"triggerPattern",weight:2},{from:"text",to:"action",weight:1},{from:"action",to:"text",weight:1}],PMt=new Set(["\u7684","\u4E86","\u662F","\u5728","\u548C","\u4E0E","\u6216","\u53CA","\u5BF9","\u4E3A","\u4EE5","\u7B49","\u4E2D","\u4E0A","\u4E0B","\u65F6","\u540E","\u524D","\u5C06","\u88AB","\u628A","\u5C31","\u90FD","\u4E5F","\u800C","\u4F46","\u5E76","\u4E0D","\u6709","\u65E0","\u4E00","\u4E2A","\u8FD9","\u90A3","\u5176","\u4E4B","\u6240","\u4F7F","\u7531","\u5982","\u82E5","\u5219","\u4E8E","\u4ECE","\u5230","\u5411","\u518D","\u66F4","\u6700","\u5F88","\u4F1A","\u80FD","\u5E94","\u987B","\u8981","\u53EF","\u4E2A","\u79CD","\u4E9B","\u4E4B","\u8005","\u6B64","\u8BE5","\u67D0"]),LMt=/[㐀-䶿一-鿿]/;function NMt(t){return LMt.test(t)}function IC(t){let e=t.normalize("NFKC").toLowerCase(),n=[],r="",i="",o=()=>{r.length>=2&&n.push(r),r=""},a=()=>{if(i.length===1)n.push(i);else for(let c=0;c+1<i.length;c++)n.push(i.slice(c,c+2));i=""};for(let c of e)NMt(c)?(o(),i+=c):/[a-z0-9]/.test(c)?(a(),r+=c):(o(),a());o(),a();let s=new Set(n);for(let c of PMt)s.delete(c);return[...s].sort()}function MMt(t,e){let n=[];for(let r of t)e.has(r)&&n.push(r);return n.sort()}function BMt(t,e,n=8){let r={text:new Set(IC(t.text)),triggerPattern:new Set(IC(t.triggerPattern)),action:new Set(IC(t.action))},i={text:new Set(IC(e.text)),triggerPattern:new Set(IC(e.triggerPattern)),action:new Set(IC(e.action))},o=[],a=0,s=0;for(let p of DMt){let f=r[p.from],m=i[p.to],h=Math.min(f.size,m.size);if(h===0)continue;s+=p.weight;let g=MMt(f,m);if(g.length===0)continue;let _=g.length/h;a+=p.weight*_;let y=p.from===p.to?p.from:`${p.from}~${p.to}`;o.push({field:y,sharedTerms:g.slice(0,n),coverage:_})}if(o.length===0||s===0)return null;let c=a/s,[u]=o.slice().sort((p,f)=>f.coverage-p.coverage||p.field.localeCompare(f.field)),l=u?`shares ${u.sharedTerms.slice(0,5).join("\u3001")} on ${u.field} (coverage ${(u.coverage*100).toFixed(0)}%)`:"no field overlap";return{principleId:e.id,principleText:e.text,score:c,evidence:o,similarityReason:l}}function YNe(t,e,n={}){let r=n.topK??3,i=n.minScore??.15,o=n.maxEvidenceTerms??8,a=[];for(let s of e){let c=BMt(t,s,o);c&&c.score>=i&&a.push(c)}return a.sort((s,c)=>c.score-s.score||s.principleId.localeCompare(c.principleId)),{candidates:a.slice(0,r),eligibleCount:e.length,consideredCount:a.length,candidateKindEligible:!0}}var QMt=new Set(["active","candidate","probation"]);function WMt(t){return typeof t!="string"||!xN.includes(t)?!1:QMt.has(t)}function $Mt(t){let e=Rre(t);if(!FMt(e))return;let n=UMt(e,"utf-8");n.trim()!==""&&JSON.parse(n)}function HMt(t){if(!AC(t))return null;let{id:e,text:n,triggerPattern:r,action:i,status:o}=t;return typeof e!="string"||e.length===0?null:{id:e,text:typeof n=="string"?n:"",triggerPattern:typeof r=="string"?r:"",action:typeof i=="string"?i:"",status:typeof o=="string"?o:""}}function Bre(t){$Mt(t);let e=Bn(t),n=Object.values(e.tree.principles),r=[];for(let i of n){let o=HMt(i);o&&WMt(o.status)&&r.push(o)}return r}function Fre(t,e,n={}){let{recommendationKind:r,...i}=n;return r!==void 0&&!Km(r)?{candidates:[],eligibleCount:0,consideredCount:0,candidateKindEligible:!1}:YNe(t,Bre(e),i)}function XH(t){if(!AC(t))return null;let e=t.description;return typeof e!="string"?null:{text:e}}function GMt(t){if(!AC(t))return null;if(Object.hasOwn(t,"recommendation")){let r=t.recommendation,i=qm(r);if(i)return i;let o=XH(r);if(o)return qm(o)}if(Object.hasOwn(t,"recommendations")){let r=t.recommendations;if(Array.isArray(r)&&r.length>0){let[i]=r,o=qm(i);if(o)return o;let a=XH(i);if(a)return qm(a)}}let e=qm(t);if(e)return e;let n=XH(t);return n?qm(n):null}function JNe(t,e){let{candidateId:n}=t,r=t.sourceRecommendationJson;if(r&&r.trim()!=="")try{let i=JSON.parse(r),o=qm(i);if(o)return{ok:!0,recommendation:o};let a=XH(i),s=a?qm(a):null;if(s)return{ok:!0,recommendation:s}}catch(i){let o=i instanceof Error?i.message:String(i);console.warn(`[CandidateIntakeService] sourceRecommendationJson parse failed for candidate ${n}: ${o}. Falling back to artifact.contentJson.`)}if(!e)return{ok:!1,error:new Qi(pa.INPUT_INVALID,`Cannot extract recommendation for candidate ${n}: no artifact content available`,{candidateId:n})};try{let i=JSON.parse(e.contentJson),o=GMt(i);return o?{ok:!0,recommendation:o}:{ok:!1,error:new Qi(pa.INPUT_INVALID,`Failed to parse artifact content for candidate ${n}: contentJson is not a valid recommendation object`,{candidateId:n})}}catch(i){return i instanceof Qi?{ok:!1,error:i}:{ok:!1,error:new Qi(pa.INPUT_INVALID,`Failed to parse artifact content for candidate ${n}: ${i instanceof Error?i.message:String(i)}`,{candidateId:n,cause:i})}}}var vC=class{#e;#t;#n;#r;#o;constructor(e){if(e.reuseDecision&&e.reuseRecommendation)throw new Qi(pa.REUSE_CHECK_FAILED,"reuseDecision and reuseRecommendation are mutually exclusive. nextAction: supply reuseRecommendation for automatic intake or reuseDecision for Owner decisions, never both.",{reason:"reuse_gate_misconfigured"});this.#e=e.stateManager,this.#t=e.ledgerAdapter,this.#n=e.reuseDecision,this.#r=e.reuseRecommendation,this.#o=e.reuseStateDir}async#i(e,n){let r=this.#r;if(!r)return{status:"unavailable",reason:"reuse recommendation hook is not configured"};try{return await r(e,n)}catch(i){return{status:"unavailable",reason:i instanceof Error?i.message:String(i)}}}async intake(e){return this.#s(e,!1)}get reuseReviewEnabled(){return this.#r!==void 0&&!this.#n}async reviewReuse(e){return this.reuseReviewEnabled?this.#s(e,!0):null}async#s(e,n){if(!e||typeof e!="string"||e.trim()==="")throw new Qi(pa.INPUT_INVALID,"candidateId must be a non-empty string",{candidateId:e});let r=this.#t.existsForCandidate(e);if(r)return{outcome:"ledger_entry",written:!1,entry:r};let i=this.#t.findReuseResolutionForCandidate(e);if(i)return{outcome:"refused",reason:"reuse_selected",candidateId:e,rawRecommendationKind:null,message:`Candidate ${e} was already resolved into existing Principle ${i.principleId} by a recorded reuse decision; the decision was NOT asked again and no new Principle was created (INV-R07 replay).`,selectedPrincipleId:i.principleId,reuseEvidence:i.evidence};let o=await this.#e.getCandidate(e);if(!o)throw new Qi(pa.CANDIDATE_NOT_FOUND,`Candidate ${e} not found`,{candidateId:e});if(!Km(o.rawRecommendationKind)){let m=Ire(o.rawRecommendationKind)===null?"unknown_kind":"non_principle_kind",h=typeof o.rawRecommendationKind=="string"?o.rawRecommendationKind:null;return{outcome:"refused",reason:m,candidateId:e,rawRecommendationKind:h,message:m==="non_principle_kind"?`Candidate ${e} has recommendation_kind '${h}' which does not target the Principle Ledger; ledger write refused (existing routing/defer handling preserved).`:`Candidate ${e} has an unrecognized recommendation_kind (${h===null?"absent":`'${h}'`}); Principle Ledger write refused fail-closed.`}}let a=await this.#e.getArtifact(o.artifactId);if(!a)throw new Qi(pa.ARTIFACT_NOT_FOUND,`Artifact ${o.artifactId} not found for candidate ${e}`,{candidateId:e,artifactId:o.artifactId});let s=JNe(o,a);if(!s.ok)throw s.error;let c=s.recommendation;if(this.#n&&!this.#o)throw new Qi(pa.REUSE_CHECK_FAILED,`Reuse gate is misconfigured: reuseDecision was provided without reuseStateDir; no Principle was created for candidate ${e}. nextAction: pass reuseStateDir, or remove reuseDecision to disable the gate.`,{candidateId:e,reason:"reuse_gate_misconfigured"});if(this.#r&&!this.#o)throw new Qi(pa.REUSE_CHECK_FAILED,`Reuse gate is misconfigured: reuseRecommendation was provided without reuseStateDir; no Principle was created for candidate ${e}. nextAction: pass reuseStateDir, or remove reuseRecommendation to disable the gate.`,{candidateId:e,reason:"reuse_gate_misconfigured"});let u="not_configured",l;if((this.#n||this.#r)&&this.#o){let f={text:c.text||o.description||"",triggerPattern:c.triggerPattern??"",action:c.action??""},m;try{m=vre(e,Fre(f,this.#o,{recommendationKind:o.rawRecommendationKind}))}catch(h){throw new Qi(pa.REUSE_CHECK_FAILED,`Reuse check could not be completed for candidate ${e}; no Principle was created. Cause: ${h instanceof Error?h.message:String(h)}`,{candidateId:e,cause:h})}if(xre(m)){if(this.#r&&!this.#n){let h=await this.#i(f,m);if(l=h,h.status==="recommended"){let{recommendation:g,selectedPrincipleId:_,confidence:y}=h;if(g==="reuse"&&_!==void 0&&m.candidates.some(I=>I.principleId===_))return{outcome:"refused",reason:"reuse_pending_owner",candidateId:e,rawRecommendationKind:typeof o.rawRecommendationKind=="string"?o.rawRecommendationKind:null,message:`Candidate ${e} is a suspected duplicate of existing Principle ${_} (semantic reuse recommendation, confidence ${y}). No Principle was created and no evidence was written; the candidate stays PENDING for the Owner. nextAction: pd candidate review --candidate-id ${e} --decide reuse|create --reason "..."`,reuseProposal:m,reuseRecommendation:h};g==="reuse"&&(l={status:"unavailable",reason:`reuse selection ${_===void 0?"(absent)":_} is not in the proposal (hallucinated id treated as unavailable per SPEC v0.3.3)`})}u="recommended_create"}else if(this.#n){let h;try{let g=this.#n(m),_=ONe(g);if(!_.ok)throw new Qi(pa.REUSE_CHECK_FAILED,`Reuse decision for candidate ${e} is not a valid reuse|create decision (${_.reason}); no Principle was created.`,{candidateId:e,reason:_.reason});({decision:h}=_)}catch(g){throw g instanceof Qi?g:new Qi(pa.REUSE_CHECK_FAILED,`Reuse decision for candidate ${e} failed (${g instanceof Error?g.message:String(g)}); no Principle was created.`,{candidateId:e,cause:g})}if(h.decision==="reuse"){if(!new Set(m.candidates.map(I=>I.principleId)).has(h.selectedPrincipleId))throw new Qi(pa.REUSE_CHECK_FAILED,`Reuse decision selected principle '${h.selectedPrincipleId}' which is not in the proposal for candidate ${e}; no Principle was created.`,{candidateId:e,selectedPrincipleId:h.selectedPrincipleId,reason:"selected_principle_not_in_proposal"});let _=await this.#a(e,o),y;try{let b=this.#t.appendReuseEvidence(h.selectedPrincipleId,{painId:_,candidateId:e,decision:"reuse",actor:h.actor,reason:h.reason,decidedAt:h.decidedAt}).reuseEvidence.find(w=>w.candidateId===e);if(!b)throw new Error(`appendReuseEvidence returned no evidence entry for candidate ${e} (adapter contract violation)`);y=b}catch(I){throw new Qi(pa.REUSE_CHECK_FAILED,`Reuse decision for candidate ${e} could not be recorded on principle '${h.selectedPrincipleId}'; no Principle was created and the decision is not durable. Cause: ${I instanceof Error?I.message:String(I)}`,{candidateId:e,selectedPrincipleId:h.selectedPrincipleId,cause:I})}return{outcome:"refused",reason:"reuse_selected",candidateId:e,rawRecommendationKind:typeof o.rawRecommendationKind=="string"?o.rawRecommendationKind:null,message:`Candidate ${e} was resolved to existing Principle ${h.selectedPrincipleId}; the reuse decision was recorded on that Principle's reuseEvidence and no new Principle was created. This candidate DOES target the Principle Ledger \u2014 review the reuse proposal, and do not re-run intake to force a new Principle.`,reuseProposal:m,selectedPrincipleId:h.selectedPrincipleId,reuseEvidence:y}}u="create_decided"}}else u="no_candidates"}if(n)return null;let p={id:jMt(),title:o.title,text:c.text||o.description||"",triggerPattern:c.triggerPattern,action:c.action,status:"probation",evaluability:"weak_heuristic",sourceRef:`candidate://${e}`,artifactRef:`artifact://${o.artifactId}`,taskRef:o.taskId?`task://${o.taskId}`:void 0,createdAt:new Date().toISOString()};try{return{outcome:"ledger_entry",written:!0,entry:this.#t.writeProbationEntry(p),reuseCheck:u,...l!==void 0?{reuseRecommendation:l}:{}}}catch(f){throw f instanceof Qi?f:new Qi(pa.LEDGER_WRITE_FAILED,`Failed to write ledger entry for candidate ${e}`,{candidateId:e,cause:f})}}async#a(e,n){let r=c=>{throw new Qi(pa.REUSE_CHECK_FAILED,`Reuse decision for candidate ${e} cannot be recorded: ${c} The evidence entry requires the Pain that re-validated the Principle. nextAction: ensure the candidate's diagnostician task has a persisted pain diagnosis (pain_diagnoses), then retry intake.`,{candidateId:e,reason:"reuse_pain_unresolvable"})};(typeof n.taskId!="string"||n.taskId==="")&&r("the candidate has no diagnostician task reference");let i;try{i=await this.#e.getDiagnosesByTaskId(n.taskId)}catch(c){throw new Qi(pa.REUSE_CHECK_FAILED,`Reuse decision for candidate ${e} cannot be recorded: the pain diagnosis lookup failed. Cause: ${c instanceof Error?c.message:String(c)}`,{candidateId:e,reason:"reuse_pain_unresolvable",cause:c})}if(i.length===0){let c=await this.#c(n);if(c!==null)try{i=await this.#e.getDiagnosesByTaskId(c)}catch(u){throw new Qi(pa.REUSE_CHECK_FAILED,`Reuse decision for candidate ${e} cannot be recorded: the pain diagnosis lookup for the top diagnostician task failed. Cause: ${u instanceof Error?u.message:String(u)}`,{candidateId:e,reason:"reuse_pain_unresolvable",cause:u})}}i.length===0&&r("no persisted pain diagnosis exists for its task");let a=[...i].sort((c,u)=>c.createdAt!==u.createdAt?c.createdAt<u.createdAt?-1:1:c.id<u.id?-1:c.id>u.id?1:0).at(-1),s=typeof a?.painId=="string"?a.painId:"";return s===""&&r("no usable pain id in the candidate's diagnosis history"),s}async#c(e){let n=await this.#e.getTask(e.taskId);if(!n||n.taskKind!=="diag_router")return null;let r=typeof n.inputRef=="string"?n.inputRef.trim():"";if(r==="")return null;let i=await this.#e.getTask(r);return!i||i.taskKind!=="diagnostician"?null:i.taskId}};import{createHash as q1n}from"node:crypto";Do();function Ure(t){return t==="owner_reported_no_host_trace"}function Qre(t,e){return t===0&&e!=="manual"&&e!=="pain"&&e!=="skill:pain"}function ZH(t){if(typeof t!="object"||t===null||Array.isArray(t))return!1;let e=t;return typeof e.text=="string"&&e.text.length>0&&e.classification==="owner_statement"}function ej(t){if(t==="host_context_bound"||t==="owner_reported_no_host_trace"||t==="automatic_hook")return t;if(t==="openclaw_context_bound")return"host_context_bound"}var Wre=.5;function XNe(t){return t.recommendationKind==="defer"?{decision:"deferred",reason:"recommendation_kind_defer_not_actionable",nextAction:"review_defer_disposition_manually",evidenceStatus:t.provenance??"unknown"}:t.inputEvidenceCount===0&&!Ure(t.provenance)&&t.ownerStatementPresent!==!0?{decision:"needs_evidence",reason:"input_evidence_empty",nextAction:"collect_evidence_before_diagnosis",evidenceStatus:t.provenance??"unknown"}:t.confidence<Wre?{decision:"needs_evidence",reason:`confidence_below_threshold:${t.confidence.toFixed(2)}<${Wre}`,nextAction:"provide_additional_evidence_or_manual_review",evidenceStatus:t.provenance??"unknown"}:t.evidenceCount===0?{decision:"needs_evidence",reason:"evidence_array_empty",nextAction:"provide_source_evidence_for_diagnosis",evidenceStatus:t.provenance??"unknown"}:{decision:"admitted",reason:"evidence_sufficient",nextAction:"none",evidenceStatus:t.provenance??"unknown"}}function tj(t,e,n={}){let{provenance:r,inputEvidenceCount:i=0,ownerStatementPresent:o}=n;return t.map(a=>{let s={recommendationKind:a.recommendationKind,confidence:e.confidence,evidenceCount:e.evidence.length,inputEvidenceCount:i,provenance:r,...o!==void 0?{ownerStatementPresent:o}:{}};return{candidateId:a.candidateId,recommendationKind:a.recommendationKind,admission:XNe(s)}})}import{createHash as ZNe}from"node:crypto";var ON=1,eMe=20,qMt=96e3,DN="admission-gate@cr-03";function PN(t){if(t==null)return{ok:!0,document:null};if(typeof t!="string"||t.length===0)return{ok:!0,document:null};let e;try{e=JSON.parse(t)}catch{return{ok:!1,document:null,reason:"admission_json_unparseable"}}if(typeof e!="object"||e===null||Array.isArray(e))return{ok:!1,document:null,reason:"admission_json_not_an_object"};let n=e;if(n.schemaVersion!==ON)return{ok:!1,document:null,reason:`admission_json_unsupported_schema_version:${String(n.schemaVersion)}`};if(!Array.isArray(n.evaluations)||n.evaluations.length>eMe)return{ok:!1,document:null,reason:"admission_json_evaluations_invalid"};for(let o of n.evaluations){if(typeof o!="object"||o===null)return{ok:!1,document:null,reason:"admission_json_evaluation_invalid"};let a=o;if(typeof a.evaluationId!="string"||a.decision!=="admitted"&&a.decision!=="needs_evidence"&&a.decision!=="deferred"||typeof a.reason!="string"||typeof a.nextAction!="string"||typeof a.evaluatedAt!="string"||typeof a.policyVersion!="string"||typeof a.materialFingerprint!="string")return{ok:!1,document:null,reason:"admission_json_evaluation_invalid"}}let r=n.currentEvaluationId;if(r!==null&&typeof r!="string")return{ok:!1,document:null,reason:"admission_json_current_evaluation_id_invalid"};let{processing:i}=n;return i!==void 0&&(typeof i!="object"||i===null||typeof i.state!="string")?{ok:!1,document:null,reason:"admission_json_processing_invalid"}:{ok:!0,document:{schemaVersion:ON,evaluations:n.evaluations,currentEvaluationId:r??null,...i!==void 0?{processing:i}:{}}}}function $re(t){let e=JSON.stringify(t);return e.length>qMt?{ok:!1,reason:"admission_json_size_exceeded"}:{ok:!0,json:e}}function XI(t){return ZNe("sha256").update(t.join("\0")).digest("hex")}function tMe(t){return ZNe("sha256").update(t).digest("hex")}function nj(t,e){if(t===null)return{status:"appended",document:{schemaVersion:ON,evaluations:[e],currentEvaluationId:e.evaluationId},evaluation:e};let n=t.evaluations.find(i=>i.materialFingerprint===e.materialFingerprint&&i.policyVersion===e.policyVersion);return n!==void 0?{status:"reused",document:{...t,currentEvaluationId:n.evaluationId},evaluation:n}:t.evaluations.length>=eMe?{status:"refused",reason:"admission_history_exceeded"}:{status:"appended",document:{...t,evaluations:[...t.evaluations,e],currentEvaluationId:e.evaluationId},evaluation:e}}function Hre(t,e){return t===null?{schemaVersion:ON,evaluations:[],currentEvaluationId:null,processing:e}:{...t,processing:e}}var KMt=new Set(["People","Design","Assumption","Tooling"]);function jre(t){return typeof t=="string"&&KMt.has(t)}function nMe(t){for(let e of["People","Design","Assumption","Tooling"])if(t.startsWith(`${e}: `))return e;return null}function rMe(t,e){return`${t}::${e}`}fa();_r();function IMe(t){return LN.map(e=>`dreamer-${t}-${e}`)}async function eie(t,e){for(let n of IMe(e)){let r=await t(n);if(r)return r}return null}function EMe(t){if(typeof t!="object"||t===null)return!1;let e=t,n=Reflect.get(e,"triggerPattern")??Reflect.get(e,"trigger_pattern"),r=Reflect.get(e,"action");return typeof n=="string"&&n.trim()!==""&&typeof r=="string"&&r.trim()!==""}function ABt(t){return EMe(t)?!0:typeof t!="object"||t===null?!1:EMe(Reflect.get(t,"recommendation"))}var tie=new Set(["prompt","code_tool_hook","defer_archive"]),cj={principle:"principle-ledger",rule:"rule-candidate",implementation:"implementation-candidate",prompt:"prompt-injection-candidate",defer:"deferred"},QN={"principle-ledger":"prompt","rule-candidate":"code_tool_hook","implementation-candidate":"skill","prompt-injection-candidate":"prompt"};function vMe(t){if(!t.candidateId||t.candidateId.trim()==="")return{decision:"invalid_candidate",reason:"candidateId must be a non-empty string"};if(/^(dreamer|pi-art|scribe|philosopher)[-_]/.test(t.candidateId))return{decision:"invalid_candidate",reason:"candidateId_looks_like_taskId_not_candidateId"};if(t.candidateId.length>200)return{decision:"invalid_candidate",reason:"candidateId_too_long"};let e=QN[t.route];if(!e)return{decision:"not_internalizable",reason:`Route "${t.route}" has no channel mapping \u2014 not internalizable`};if(!tie.has(e))return{decision:"not_internalizable",reason:`Channel "${e}" for route "${t.route}" is MVP-disabled \u2014 not internalizable in current stage`};let n=e,r;return t.route==="rule-candidate"&&!ABt(t.recommendation)&&(r=e,n="prompt"),!t.ready&&r===void 0?{decision:"not_internalizable",reason:`Route "${t.route}" is not ready \u2014 missing required fields`}:t.route==="deferred"?{decision:"not_internalizable",reason:`Route "${t.route}" is deferred \u2014 no internalization action required`}:{decision:"seeded",taskId:`dreamer-${t.candidateId}-${n}`,taskKind:"dreamer",channel:n,...r!==void 0?{demotedFromChannel:r}:{}}}function xMe(t){let e=vMe(t);if(e.decision!=="seeded")return e;let n=[{artifactType:"candidate",ref:`candidate://${t.candidateId}`}];t.sourceArtifactId&&t.sourceArtifactId.trim()!==""&&n.push({artifactType:"diagnostician_output",ref:`artifact://${t.sourceArtifactId}`});let r=[];t.sourceTaskId&&t.sourceTaskId.trim()!==""&&r.push(t.sourceTaskId);let i=t.pipelineMode==="full_chain"?"full_chain":"standard",o=JSON.stringify({[f0]:{dependencyTaskIds:r,channel:e.channel,pipelineMode:i,timeoutMs:3e5,inputArtifactRefs:n,outputArtifactRefs:[],parentTaskId:void 0,correlationId:t.candidateId},candidateId:t.candidateId,...t.sourcePainId?.trim()?{sourcePainId:t.sourcePainId.trim()}:{},...t.sourceTaskId?.trim()?{sourceTaskId:t.sourceTaskId.trim()}:{},...t.sourceArtifactId?.trim()?{sourceArtifactId:t.sourceArtifactId.trim()}:{},...t.sourceRunId?.trim()?{sourceRunId:t.sourceRunId.trim()}:{}});return{taskId:e.taskId,taskKind:"dreamer",channel:e.channel,pipelineMode:i,...e.decision==="seeded"&&e.demotedFromChannel!==void 0?{demotedFromChannel:e.demotedFromChannel}:{},diagnosticJson:o,status:"pending",attemptCount:0,maxAttempts:3}}function nie(t,e){let{route:n,ready:r,sourcePainId:i,pipelineMode:o}=e;if([t.taskId?.trim(),t.artifactId?.trim(),t.sourceRunId?.trim()].every(c=>!c))return{decision:"invalid_candidate",reason:`Candidate ${t.candidateId} has no diagnostician lineage (taskId, artifactId, sourceRunId all empty/blank)`};let s;try{s=JSON.parse(t.sourceRecommendationJson)}catch{s=void 0}return xMe({candidateId:t.candidateId,recommendationKind:t.recommendationKind??"unknown",route:n,ready:r,sourcePainId:i,pipelineMode:o,recommendation:s,sourceTaskId:t.taskId?.trim()||void 0,sourceArtifactId:t.artifactId?.trim()||void 0,sourceRunId:t.sourceRunId?.trim()||void 0})}function uj(t,e,n=Date.now()){if(t!=="retry_wait"||!e)return!0;let r=new Date(e).getTime();return Number.isNaN(r)?!0:r<=n}function rie(t,e=Date.now()){return uj(t.status,t.leaseExpiresAt,e)}function iie(t){return t.status==="pending"||t.status==="retry_wait"}var wMe=3;function WN(t,e=wMe){return(t.rejectionCount??0)>=e}var yBt=1440*60*1e3;function oie(t){let{painId:e,taskId:n,candidateIds:r,ledgerEntryIds:i,runId:o,artifactId:a,autoIntakeEnabled:s}=t;if(r.length===0)return t.path==="fresh"?{status:"failed",painId:e,taskId:n,runId:o,candidateIds:r,ledgerEntryIds:i,admissionResults:t.admissionResults,message:"Diagnostician succeeded but produced no principle candidates"}:{status:"failed",painId:e,taskId:n,runId:o,candidateIds:r,ledgerEntryIds:i,message:"Task has no principle candidates \u2014 treating as failed"};if(t.path==="fresh"){let{admissionResults:u,seedFailureNote:l}=t,p=t.notInternalizable??[],f=p.length>0?`not_internalizable:${p.map(I=>`${I.candidateId}=${I.reason}`).join(",")}`:"",m=t.reuseReviewRequiredCandidateIds??[],h=m.length>0?`reuse_review_required:${m.join(",")} \u2014 suspected duplicates parked for Owner review; nextAction: pd candidate review --candidate-id <id> --decide reuse|create`:"",g=u.filter(I=>I.admission.decision==="admitted").length,_=u.length-g;if(s&&t.ledgerEligibleCandidateCount>0&&i.length===0)return m.length>0&&m.length>=t.ledgerEligibleCandidateCount?{status:"degraded",painId:e,taskId:n,runId:o,artifactId:a,candidateIds:r,ledgerEntryIds:i,admissionResults:u,notInternalizable:t.notInternalizable,message:h}:{status:"failed",painId:e,taskId:n,runId:o,artifactId:a,candidateIds:r,ledgerEntryIds:i,admissionResults:u,notInternalizable:t.notInternalizable,message:"Candidate intake did not produce a ledger entry"};if(_>0&&g===0)return{status:"degraded",painId:e,taskId:n,runId:o,artifactId:a,candidateIds:r,ledgerEntryIds:i,admissionResults:u,notInternalizable:t.notInternalizable,message:`all_candidates_gated:${u.map(I=>`${I.candidateId}=${I.admission.decision}`).join(",")}${l?`; ${l}`:""}${f?`; ${f}`:""}`};if(_>0&&g>0)return{status:"degraded",painId:e,taskId:n,runId:o,artifactId:a,candidateIds:r,ledgerEntryIds:i,admissionResults:u,notInternalizable:t.notInternalizable,message:`partial_admission:${g}_admitted_${_}_gated${l?`; ${l}`:""}${f?`; ${f}`:""}${h?`; ${h}`:""}`};let y=[f,l,h].filter(Boolean).join("; ");return{status:y?"degraded":"succeeded",painId:e,taskId:n,runId:o,artifactId:a,candidateIds:r,ledgerEntryIds:i,admissionResults:u,notInternalizable:t.notInternalizable,message:y||void 0}}let c=t.reuseReviewRequiredCandidateIds??[];return s&&t.ledgerEligibleCandidateCount>0&&i.length===0?c.length>0&&c.length>=t.ledgerEligibleCandidateCount?{status:"degraded",painId:e,taskId:n,runId:o,artifactId:a,candidateIds:r,ledgerEntryIds:i,message:`reuse_review_required:${c.join(",")} \u2014 suspected duplicates confirmed by read-only reuse review; nextAction: pd candidate review --candidate-id <id> --decide reuse|create`}:{status:"failed",painId:e,taskId:n,runId:o,artifactId:a,candidateIds:r,ledgerEntryIds:i,message:"Candidate intake did not produce a ledger entry \u2014 treating as failed"}:s&&c.length>0?{status:"degraded",painId:e,taskId:n,runId:o,artifactId:a,candidateIds:r,ledgerEntryIds:i,message:`Task already succeeded; reuse_review_required:${c.join(",")} \u2014 pending candidates await Owner review; nextAction: pd candidate review --candidate-id <id> --decide reuse|create`}:{status:"succeeded",painId:e,taskId:n,runId:o,artifactId:a,candidateIds:r,ledgerEntryIds:i,message:"Task already succeeded"}}var HN="v1";function wC(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function $N(t,e){return Object.hasOwn(t,e)&&typeof t[e]=="string"&&t[e].length>0}var aie=new Set(["cli","unknown"]);function jN(t){return aie.has(t)}function _Bt(t){if(!wC(t))return null;if(t.kind==="owner_manual"){let{channel:e}=t;return e==="openclaw_command"||e==="cli_explicit_session"||e==="external_cli_unbound"?{kind:"owner_manual",channel:e}:null}return t.kind==="automatic_hook"&&typeof t.source=="string"&&t.source.length>0?{kind:"automatic_hook",source:t.source}:null}function EBt(t){if(!wC(t))return{error:"correlation_invalid"};if(t.status==="unbound")return t.reason==="external_cli"||t.reason==="missing_host_session"?{value:{status:"unbound",reason:t.reason}}:{error:"correlation_invalid"};if(t.status!=="bound")return{error:"correlation_invalid"};if(t.hostKind==="openclaw"){if(!$N(t,"sessionId"))return{error:"correlation_invalid"};if(jN(t.sessionId))return{error:"session_sentinel_invalid"};let e={status:"bound",hostKind:"openclaw",sessionId:t.sessionId};return typeof t.traceId=="string"&&(e.traceId=t.traceId),{value:e}}if(t.hostKind==="codex"){if(!$N(t,"rootSessionId"))return{error:"codex_lineage_incomplete"};if(!$N(t,"rolloutIdentity"))return{error:"codex_lineage_incomplete"};if(!$N(t,"logicalObservationKey"))return{error:"codex_lineage_incomplete"};if(!$N(t,"hostTurnId"))return{error:"codex_lineage_incomplete"};let e={status:"bound",hostKind:"codex",rootSessionId:t.rootSessionId,rolloutIdentity:t.rolloutIdentity,logicalObservationKey:t.logicalObservationKey,hostTurnId:t.hostTurnId};return typeof t.traceId=="string"&&(e.traceId=t.traceId),{value:e}}return{error:"correlation_invalid"}}var IBt=["trajectory_unavailable","session_not_found","empty_trajectory","evidence_read_failed","evidence_invalid","not_applicable_unbound"];function vBt(t){return IBt.includes(t)}function GN(t,e){return t.kind!=="owner_manual"?null:t.channel==="external_cli_unbound"&&e.status==="bound"||t.channel==="cli_explicit_session"&&e.status==="unbound"?"origin_correlation_mismatch":null}function xBt(t){return wC(t)?t.status==="available"?Object.hasOwn(t,"entryCount")&&typeof t.entryCount=="number"&&Number.isInteger(t.entryCount)&&t.entryCount>=1?{status:"available",entryCount:t.entryCount}:null:t.status==="unavailable"&&vBt(t.reason)?{status:"unavailable",reason:t.reason}:null:null}function sie(t){if(!wC(t))return{ok:!1,reasonCode:"ingress_payload_invalid"};if(t.version!==HN)return{ok:!1,reasonCode:"ingress_payload_version_unsupported"};let e=_Bt(t.origin);if(e===null)return{ok:!1,reasonCode:"ingress_origin_invalid"};let n=EBt(t.correlation);if(n.error!==void 0)return{ok:!1,reasonCode:n.error};let r=xBt(t.evidenceClass);if(r===null)return{ok:!1,reasonCode:"ingress_evidence_class_invalid"};let i=GN(e,n.value);return i!==null?{ok:!1,reasonCode:i}:{ok:!0,payload:{version:HN,origin:e,correlation:n.value,evidenceClass:r}}}function bC(t,e){return t.kind==="automatic_hook"?"automatic_hook":e.status==="bound"?"host_context_bound":"owner_reported_no_host_trace"}function cie(t){let{payload:e,topLevelProvenance:n,topLevelSessionIdHint:r,topLevelEvidenceCount:i}=t,o=bC(e.origin,e.correlation);if((typeof n=="string"?ej(n):void 0)!==o)return"ingress_payload_mismatch:provenance";if(e.correlation.status==="unbound"&&r!=null&&r!=="")return"ingress_payload_mismatch:unbound_session_hint";if(e.correlation.status==="bound"&&e.correlation.hostKind==="openclaw"&&r!==e.correlation.sessionId)return"ingress_payload_mismatch:session";if(e.evidenceClass.status==="unavailable"){if(i!==0)return"ingress_payload_mismatch:unavailable_evidence_count"}else if(e.evidenceClass.entryCount!==i)return"ingress_payload_mismatch:evidence_count";return null}var wBt=new Set(["token","secret","password","authorization","apikey","accesstoken","refreshtoken"]),bBt=[/[A-Za-z0-9+/=]{40,}/g,/sk-[A-Za-z0-9_-]{20,}/g,/ghp_[A-Za-z0-9]{36,}/g,/gho_[A-Za-z0-9]{36,}/g,/xox[bpras]-[A-Za-z0-9-]{20,}/g,/eyJ[A-Za-z0-9_-]{20,}\./g],SBt=[/\[EMOTIONAL_DAMAGE_DETECTED(?::(?:mild|moderate|severe))?\]/gi,/\[EMPATHY_ROLLBACK_REQUEST\]/gi],bMe="<empathy",SMe="</empathy>";function kMe(t,e,n){if(e+n.length>t.length)return!1;for(let r=0;r<n.length;r++){let i=t.charCodeAt(e+r);if(i>=65&&i<=90&&(i+=32),i!==n.charCodeAt(r))return!1}return!0}function CBt(t,e,n){for(let r=n;r+e.length<=t.length;r++)if(kMe(t,r,e))return r;return-1}function kBt(t){let e="",n=0;for(;n<t.length;){let r=CBt(t,bMe,n);if(r<0)return e+=t.slice(n),e;e+=t.slice(n,r),n=r+bMe.length;let i=t.indexOf(">",n);if(i<0)return e+=t.slice(r),e;n=i+1,kMe(t,n,SMe)&&(n+=SMe.length)}return e}var TMe=/^(?:[A-Za-z]:[\\/]|\/|\\\\)/,TBt=/^[A-Za-z]:\\/,RBt=/(?:^|[\s"'=])([A-Za-z]:\\[^\s"'&|<>]+|[A-Za-z]:\/[^\s"'&|<>]+|\\\\[^\s"'&|<>]+|(?:\/[\w.-]+){2,}(?:\/[^\s"'&|<>]*)?)/gm;function CMe(t){let e=t.length;for(;e>0&&(t[e-1]==="/"||t[e-1]==="\\");)e--;return e===t.length?t:t.slice(0,e)}function uie(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function RMe(t){let e=t.replace(/([a-z])([A-Z])/g,"$1_$2").toLowerCase().split(/[^a-z0-9]+/).filter(Boolean);for(let n=0;n<e.length;n++)for(let r=n;r<e.length;r++){let i=e.slice(n,r+1).join("");if(wBt.has(i))return!0}return!1}function lie(t){let e=t.split(/[\\/]/);return e[e.length-1]||t}function die(t,e){if(!TMe.test(t))return t;if(e){let n=CMe(e),r=CMe(t);if((TBt.test(t)?(o,a)=>o.toLowerCase()===a.toLowerCase():(o,a)=>o===a)(r.slice(0,n.length),n))return r.slice(n.length).replace(/^[/\\]/,"")||lie(t)}return lie(t)}function OBt(t,e){return t.replace(RBt,(n,r)=>{let i=n.slice(0,n.length-r.length),o=die(r,e);return TMe.test(r)&&o===lie(r)?`${i}<path:${o}>`:`${i}${o}`})}function lj(t,e){let n=t;for(let r of SBt)n=n.replace(r,"");n=kBt(n);for(let r of bBt)n=n.replace(r,i=>`${i.length>50?i.slice(0,8):i.slice(0,4)}___REDACTED___${i.length}`);return n=OBt(n,e),n.trim()}function DBt(t){if(t.length<=2e3)return t;let e=Math.floor(2e3*.65),n=Math.floor(2e3*.3);return`${t.slice(0,e)}___TRUNCATED___${t.slice(t.length-n)}`}function Fu(t,e){let n=lj(t,e);return n.length>200?(n.slice(0,200)+"___TRUNCATED___").trim():n}function Vm(t,e=0,n){if(e>4)return"<max-depth>";if(t==null)return t;if(typeof t=="string")return Fu(t,n);if(typeof t=="number"||typeof t=="boolean")return t;if(Array.isArray(t)){let i=t.slice(0,20).map(o=>Vm(o,e+1,n));return t.length>20&&i.push(`<${t.length-20} more items>`),i}if(uie(t)){let r={},i=0;for(let[o,a]of Object.entries(t)){if(i>=50){r["<truncated>"]=`${Object.keys(t).length-i} more keys`;break}r[o]=RMe(o)?"<sensitive___REDACTED___field>":Vm(a,e+1,n),i++}return r}return"<unsupported-type>"}var PBt=["command","args"];function LBt(t,e,n){for(let r of PBt){if(!Object.hasOwn(e,r)||RMe(r))continue;let i=t[r];if(typeof i!="string")continue;let o=DBt(lj(i,n));typeof e[r]=="string"&&(e[r]=o)}return e}function qN(t,e){if(t==null)return{};if(typeof t=="string")return{"<string-input>":Fu(t.slice(0,200),e)};if(typeof t=="number"||typeof t=="boolean")return{};if(Array.isArray(t)){let n=Vm(t,0,e);return Array.isArray(n)?{"<array-input>":n.join(", ").slice(0,200)}:{"<array-input>":"<sanitization-error>"}}if(uie(t)){let n=Vm(t,0,e);return uie(n)?LBt(t,n,e):{}}return{}}var h0=8,av=200,NBt=2e3,OMe=3;function KN(t,e){return{...t,text:lj(t.text,e).slice(0,NBt)}}function ov(t){return`diagnosis_${t}`}function MBt(t){return t===void 0?"moderate":t>=70?"severe":t>=40?"moderate":"mild"}function BBt(t){if(typeof t!="string"||t.length===0)return 0;try{let e=JSON.parse(t);if(typeof e!="object"||e===null||Array.isArray(e))return 0;let{evidence:n}=e;return Array.isArray(n)?n.length:0}catch{return 0}}var FBt=new Set(["manual","pain","skill:pain"]);function mie(t){return FBt.has(t.source)&&(!t.sessionId||t.sessionId==="cli"||t.sessionId==="unknown")?"owner_reported_no_host_trace":t.sessionId&&t.sessionId!=="cli"&&t.sessionId!=="unknown"?"host_context_bound":"automatic_hook"}function pie(t){if(typeof t!="string"||t.length===0)return{provenance:null,evidenceCount:null,errorCode:"diagnostic_payload_invalid:missing"};let e;try{e=JSON.parse(t)}catch{return{provenance:null,evidenceCount:null,errorCode:"diagnostic_payload_invalid:unparseable"}}if(typeof e!="object"||e===null||Array.isArray(e))return{provenance:null,evidenceCount:null,errorCode:"diagnostic_payload_invalid:not_an_object"};if(!wC(e))return{provenance:null,evidenceCount:null,errorCode:"diagnostic_payload_invalid:not_an_object"};let n=e,r=n.correctionEvidence,i=typeof r=="object"&&r!==null&&!Array.isArray(r)&&typeof r.text=="string"&&r.text.length>0?r:void 0,o=BBt(t),s=Object.hasOwn(n,"provenance")?ej(n.provenance):void 0;if(Object.hasOwn(n,"painIngress")){if(s===void 0)return{provenance:null,evidenceCount:null,errorCode:"diagnostic_payload_invalid:provenance_missing"};let u=sie(n.painIngress);if(!u.ok)return{provenance:null,evidenceCount:null,errorCode:u.reasonCode};let l=cie({payload:u.payload,topLevelProvenance:n.provenance,topLevelSessionIdHint:Object.hasOwn(n,"sessionIdHint")?n.sessionIdHint:null,topLevelEvidenceCount:o});return l!==null?{provenance:null,evidenceCount:null,errorCode:l}:{provenance:bC(u.payload.origin,u.payload.correlation),evidenceCount:o,errorCode:null,...i!==void 0?{correctionEvidence:i}:{}}}if(s!==void 0)return{provenance:s,evidenceCount:o,errorCode:null,...i!==void 0?{correctionEvidence:i}:{}};let c={painId:typeof n.sourcePainId=="string"?n.sourcePainId:"",painType:"user_frustration",source:typeof n.source=="string"?n.source:"",reason:typeof n.reasonSummary=="string"?n.reasonSummary:"",sessionId:typeof n.sessionIdHint=="string"?n.sessionIdHint:void 0};return{provenance:mie(c),evidenceCount:o,errorCode:null,...i!==void 0?{correctionEvidence:i}:{}}}function UBt(t){switch(t){case"host_context_bound":return"Pain reported from an authenticated host session with a bound host context";case"owner_reported_no_host_trace":return"No authenticated host session provenance available for CLI-submitted pain; fullTrace unavailable";case"automatic_hook":return"Pain detected by automatic hook (after_tool_call)"}}function fie(t,e){let n=t.provenance??mie(t);return JSON.stringify({sourcePainId:t.painId,reasonSummary:t.reason,source:t.source,severity:MBt(t.score),sessionIdHint:t.sessionId??null,agentIdHint:t.agentId??null,provenance:n,provenanceReason:UBt(n),...t.hostKind?{hostKind:t.hostKind}:{},evidence:t.evidence??[],workspaceDir:e??null,...t.correctionEvidence?{correctionEvidence:KN(t.correctionEvidence,e)}:{},...t.painIngress?{painIngress:t.painIngress}:{}})}async function DMe(t,e){let{painId:n,taskId:r,diagnosticianOutput:i,artifactId:o}=e,a=nMe(i.rootCause);if(!a){t.eventEmitter?.emitTelemetry({eventType:"pain_diagnosis_persist_skipped",traceId:n,timestamp:new Date().toISOString(),payload:{reason:"unparseable_root_cause_prefix",nextAction:'Inspect the diagnostician output \u2014 rootCause must start with "People: "/"Design: "/"Assumption: "/"Tooling: ".',rootCausePreview:i.rootCause.slice(0,80)}});return}try{await t.stateManager.recordPainDiagnosis({painId:n,taskId:r,diagnosisId:i.diagnosisId,category:a,rootCause:i.rootCause,evidence:i.evidence,confidence:typeof i.confidence=="number"?i.confidence:null,artifactId:o})}catch(s){t.eventEmitter?.emitTelemetry({eventType:"pain_diagnosis_persist_failed",traceId:n,timestamp:new Date().toISOString(),payload:{reason:s instanceof Error?s.message:String(s),nextAction:"Inspect state.db pain_diagnoses and re-run the diagnosis if the attribution history is required.",taskId:r}})}}async function QBt(t,e){let n=s=>({ok:!1,reason:`candidate_round_unresolved:${e.candidateId}:${s}`}),r=typeof e.sourceRunId=="string"?e.sourceRunId:"";if(r.length===0)return n("missing_source_run_id");let i;try{i=await t.getRun(r)}catch{return n("source_run_lookup_failed")}if(i==null)return n("source_run_missing");if(i.taskId!==e.taskId)return n("source_run_task_mismatch");if(i.executionStatus!=="succeeded")return n("source_run_not_succeeded");let o=typeof e.artifactId=="string"?e.artifactId:"";if(o.length>0){let s;try{s=await t.getArtifact(o)}catch{return n("artifact_lookup_failed")}if(s&&(s.runId!==r||s.taskId!==e.taskId))return n("artifact_run_mismatch")}let a;if(typeof i.outputPayload=="string"&&i.outputPayload.length>0)try{let s=JSON.parse(i.outputPayload);it.Check(Jo,s)&&(a=s)}catch{}return a===void 0?n("owning_output_unparseable"):{ok:!0,output:a,sourceRunId:r}}var SC=class{stateManager;runner;intakeService;ledgerAdapter;owner;autoIntakeEnabled;diagnosisPersistenceEnabled;fullPipelinePromptSeeds;workspaceDir;eventEmitter;ownedResources;capabilityDisabled;constructor(e){this.stateManager=e.stateManager,this.runner=e.runner,this.intakeService=e.intakeService,this.ledgerAdapter=e.ledgerAdapter,this.owner=e.owner??"pain-signal-bridge",this.autoIntakeEnabled=e.autoIntakeEnabled??!0,this.diagnosisPersistenceEnabled=e.diagnosisPersistenceEnabled??!1,this.fullPipelinePromptSeeds=e.fullPipelinePromptSeeds??!1,this.workspaceDir=e.workspaceDir,this.eventEmitter=e.eventEmitter,this.ownedResources=e.ownedResources??[],this.capabilityDisabled=e.capabilityDisabled}disabledResult(e){return{status:"failed",painId:e.painId,taskId:e.taskId,candidateIds:[],ledgerEntryIds:[],errorCategory:"capability_missing",message:this.capabilityDisabled?.reason??"Diagnostician capability is disabled by Owner configuration",nextAction:this.capabilityDisabled?.nextAction}}async resumeSucceededDiagnosisPostProcessing(e){let n=await this.stateManager.getTask(e.taskId);if(n===null)return{status:"not_applicable",reason:"task_missing"};if(n.status!=="succeeded")return{status:"not_applicable",reason:`task_not_succeeded:${n.status}`};let r=await this.stateManager.getCandidatesByTaskId(e.taskId);if(r.length===0)return{status:"not_applicable",reason:"no_candidates"};let i=pie(n.diagnosticJson);if(i.errorCode!==null){let f=new Date().toISOString();for(let m of r)try{await this.stateManager.appendAdmissionEvaluation(m.candidateId,{evaluationId:`ae_blocked_${XI([m.candidateId,i.errorCode]).slice(0,16)}`,decision:"needs_evidence",reason:`diagnostic_material_unusable:${i.errorCode}`,nextAction:"repair or re-run the diagnosis via the supported CLI command; the candidate resumes automatically afterwards",evaluatedAt:f,policyVersion:DN,provenance:"automatic_hook",inputEvidenceCount:0,ownerStatementPresent:!1,recommendationKind:m.rawRecommendationKind,confidence:null,materialFingerprint:XI(["unusable",i.errorCode]),materialSummary:{inputEvidenceCount:0,outputEvidenceCount:0,ownerStatementPresent:!1}}),await this.stateManager.updateAdmissionProcessing(m.candidateId,{state:"exhausted",attempts:OMe,blockedReason:`diagnostic_material_unusable:${i.errorCode}`})}catch{}return{status:"blocked",reason:i.errorCode,nextAction:"the persisted diagnosis payload is unusable; repair or re-run the diagnosis via the supported CLI command (candidates recorded terminal manual_action_required states)"}}let o=await this.stateManager.getRunsByTask(e.taskId),a,s=f=>{if(!(typeof f!="string"||f.length===0))try{let m=JSON.parse(f);return it.Check(Jo,m)?m:void 0}catch{return}},c=await this.stateManager.getRunsByTask(`diag_router-${e.taskId}`);for(let f=c.length-1;f>=0&&a===void 0;f-=1)a=s(c[f]?.outputPayload);if(a===void 0){let f=o.at(-1);a=s(f?.outputPayload)}let u=[],l=[];for(let f of r){let m=await this.stateManager.getAdmissionDocument(f.candidateId);if(!m.ok){u.push({candidateId:f.candidateId,reason:`admission_document_unreadable:${m.reason}`});continue}let h=m.document?.processing?.state;if(h==="complete"||h==="awaiting_owner"||h==="exhausted"){u.push({candidateId:f.candidateId,reason:`processing_${h}`});continue}l.push(f)}return l.length===0?{status:"not_applicable",reason:"no_eligible_candidates",skipped:u,remainingCount:0}:{status:"resumed",result:await this.onDiagnosisComplete({taskId:e.taskId,diagnosticianOutput:a,painId:typeof n.inputRef=="string"&&n.inputRef.length>0?n.inputRef:`diagnosis-source:${e.taskId}`,provenance:i.provenance,inputEvidenceCount:i.evidenceCount,...i.correctionEvidence!==void 0?{correctionEvidence:i.correctionEvidence}:{}}),processedCandidateIds:l.map(f=>f.candidateId),skipped:u,remainingCount:0}}async dispose(){for(let e of this.ownedResources)try{await e.close()}catch{}await this.stateManager.close()}emitAdmissionEvent(e,n){this.eventEmitter&&this.eventEmitter.emitTelemetry({eventType:"candidate_admission_decision",traceId:e,timestamp:new Date().toISOString(),payload:{decision:n.decision,reason:n.reason,nextAction:n.nextAction}})}async submitPainSignal(e){let n=e.taskId??ov(e.painId),r=fie(e,this.workspaceDir);return await this.stateManager.createTask({taskId:n,taskKind:"diagnostician",inputRef:e.painId,status:"pending",attemptCount:0,maxAttempts:3,diagnosticJson:r}),{taskId:n}}async onPainDetected(e){let{painId:n}=e,r=e.taskId??ov(n),i=e.provenance??mie(e);if(this.capabilityDisabled!==void 0){let s=await this.stateManager.getTask(r);if(s===null)await this.stateManager.createTask({taskId:r,taskKind:"diagnostician",inputRef:n,status:"pending",attemptCount:0,maxAttempts:3,diagnosticJson:fie(e,this.workspaceDir)});else if(s.status==="succeeded")return this.buildExistingResult({painId:n,taskId:r});return this.disabledResult({painId:n,taskId:r})}let o=await this.stateManager.getTask(r);if(!o&&!ZH(e.correctionEvidence)&&Qre(e.evidence?.length??0,e.source))return{status:"skipped",painId:n,taskId:r,candidateIds:[],ledgerEntryIds:[],message:"short_circuited: input evidence empty; re-trigger after evidence collected"};if(o){let{status:s,leaseExpiresAt:c}=o,l=c&&Date.now()-new Date(c).getTime()>3e5;if(s==="succeeded")return this.buildExistingResult({painId:n,taskId:r});if(s==="leased"&&!l)return{status:"skipped",painId:n,taskId:r,candidateIds:[],ledgerEntryIds:[],message:"Task is already leased"};s==="leased"&&l||await this.stateManager.updateTask(r,{status:"pending",attemptCount:0,lastError:null,resultRef:null})}else{let s=fie(e,this.workspaceDir);await this.stateManager.createTask({taskId:r,taskKind:"diagnostician",inputRef:n,status:"pending",attemptCount:0,maxAttempts:3,diagnosticJson:s})}let a=await this.runner.run(r);return a.status!=="succeeded"?{status:a.status==="retried"?"retried":"failed",painId:n,taskId:r,runnerStatus:a.status,candidateIds:[],ledgerEntryIds:[],errorCategory:a.errorCategory,message:a.failureReason,...a.nextAction!==void 0?{nextAction:a.nextAction}:{}}:this.onDiagnosisComplete({taskId:r,diagnosticianOutput:a.output,painId:n,provenance:i,inputEvidenceCount:e.evidence?.length??0,...e.correctionEvidence!==void 0?{correctionEvidence:e.correctionEvidence}:{}})}async executePendingDiagnosis(e){let{taskId:n}=e;if(this.capabilityDisabled!==void 0){let s=await this.stateManager.getTask(n);if(s===null)return{status:"failed",painId:"",taskId:n,candidateIds:[],ledgerEntryIds:[],errorCategory:"input_invalid",message:"task_not_found"};let c=typeof s.inputRef=="string"&&s.inputRef.length>0?s.inputRef:n;return s.status==="succeeded"?this.buildExistingResult({painId:c,taskId:n}):this.disabledResult({painId:c,taskId:n})}let r=await this.stateManager.getTask(n);if(r===null)return{status:"failed",painId:"",taskId:n,candidateIds:[],ledgerEntryIds:[],errorCategory:"input_invalid",message:"task_not_found"};let i=typeof r.inputRef=="string"&&r.inputRef.length>0?r.inputRef:n;if(r.status==="succeeded")return this.buildExistingResult({painId:i,taskId:n});if(r.status==="leased")return{status:"skipped",painId:i,taskId:n,candidateIds:[],ledgerEntryIds:[],message:"task_already_leased"};if(r.status==="failed"||r.status==="needs_human_review")return{status:"skipped",painId:i,taskId:n,candidateIds:[],ledgerEntryIds:[],message:`task_${r.status}`};if(!uj(r.status,r.leaseExpiresAt))return{status:"skipped",painId:i,taskId:n,candidateIds:[],ledgerEntryIds:[],message:"retry_wait_pending"};let o=pie(r.diagnosticJson);if(o.errorCode!==null)return{status:"failed",painId:i,taskId:n,candidateIds:[],ledgerEntryIds:[],errorCategory:"input_invalid",message:o.errorCode};let a=await this.runner.run(n);return a.status!=="succeeded"?{status:a.status==="retried"?"retried":"failed",painId:i,taskId:n,runnerStatus:a.status,candidateIds:[],ledgerEntryIds:[],errorCategory:a.errorCategory,message:a.failureReason,...a.nextAction!==void 0?{nextAction:a.nextAction}:{}}:this.onDiagnosisComplete({taskId:n,diagnosticianOutput:a.output,painId:i,provenance:o.provenance,inputEvidenceCount:o.evidenceCount,...o.correctionEvidence!==void 0?{correctionEvidence:o.correctionEvidence}:{}})}safeUpdateAdmissionProcessing(e,n){try{this.stateManager.updateAdmissionProcessing(e,n).catch(()=>{})}catch{}}async recordPostProcessingFailure(e,n){try{let r=await this.stateManager.getAdmissionDocument(e);if(!r.ok)return;let o=(r.document?.processing?.attempts??0)+1,a=new Date().toISOString(),s=n.slice(0,300),c=o>=OMe?{state:"exhausted",attempts:o,lastAttemptAt:a,lastFailure:{reason:s,nextAction:"manual_action_required: post-processing retry budget exhausted; inspect state.db principle_candidates and telemetry, then use the supported recovery command",at:a},blockedReason:`post_processing_attempts_exhausted:${n.slice(0,120)}`}:{state:"in_progress",attempts:o,lastAttemptAt:a,lastFailure:{reason:s,nextAction:"the workspace worker continuation retries this candidate automatically",at:a},nextRetryAt:new Date(Date.now()+Math.min(6e4*2**o,15*6e4)).toISOString()};await this.stateManager.updateAdmissionProcessing(e,c)}catch{}}async onDiagnosisComplete(e){let{taskId:n,diagnosticianOutput:r,painId:i,provenance:o,inputEvidenceCount:a=0,correctionEvidence:s}=e,c=ZH(s),u=c&&s?tMe(s.text):void 0,l=await this.stateManager.getCandidatesByTaskId(n),p=[];this.diagnosisPersistenceEnabled&&r&&await DMe({stateManager:this.stateManager,eventEmitter:this.eventEmitter},{painId:i,taskId:n,diagnosticianOutput:r,artifactId:l[0]?.artifactId??null});let f=new Map,m=[];for(let K of l){let re=await QBt(this.stateManager,K);if(!re.ok){m.push({candidateId:K.candidateId,recommendationKind:K.recommendationKind,admission:{decision:"needs_evidence",reason:re.reason,nextAction:"re-run the diagnosis that produced this candidate or send it for manual review",evidenceStatus:o}});continue}f.set(K.candidateId,re);let[J]=tj([K],re.output,{provenance:o,inputEvidenceCount:a,...c?{ownerStatementPresent:c}:{}});J!==void 0&&m.push(J)}let h=new Set;if(l.length>0){let K=new Date().toISOString();for(let re=0;re<l.length;re++){let J=l[re],Ae=m[re];if(!J||!Ae)continue;let de=f.get(J.candidateId),Te=de?XI([JSON.stringify(de.output),o,String(a),u??"no-owner-statement",de.sourceRunId,J.candidateId]):XI(["candidate-round-unresolved",Ae.admission.reason,o,String(a),J.candidateId]),ve={evaluationId:`ae_${XI([J.candidateId,Te,DN]).slice(0,16)}`,decision:Ae.admission.decision,reason:Ae.admission.reason,nextAction:Ae.admission.nextAction,evaluatedAt:K,policyVersion:DN,provenance:o,inputEvidenceCount:a,ownerStatementPresent:c,recommendationKind:J.rawRecommendationKind,confidence:de?.output.confidence??null,materialFingerprint:Te,materialSummary:{inputEvidenceCount:a,outputEvidenceCount:de?.output.evidence.length??0,ownerStatementPresent:c,...u!==void 0?{statementFingerprint:u}:{}}};try{if(typeof this.stateManager.appendAdmissionEvaluation!="function")throw new Error("state_manager_admission_persistence_unavailable");let me=await this.stateManager.appendAdmissionEvaluation(J.candidateId,ve);me.status==="refused"&&(h.add(J.candidateId),this.eventEmitter?.emitTelemetry({eventType:"admission_persistence_failed",traceId:J.candidateId,timestamp:K,payload:{reason:me.reason,nextAction:"inspect state.db principle_candidates; the disposition was not saved and intake is blocked for this candidate this round"}}))}catch(me){h.add(J.candidateId),this.eventEmitter?.emitTelemetry({eventType:"admission_persistence_failed",traceId:J.candidateId,timestamp:K,payload:{reason:me instanceof Error?me.message:String(me),nextAction:"inspect state.db principle_candidates; the disposition was not saved and intake is blocked for this candidate this round"}})}}}let g=[],_=[],y=new Map,I=new Map,b=new Map,w=new Map;if(this.autoIntakeEnabled)for(let K=0;K<l.length;K++){let re=l[K],J=m[K];if(!re||!J)continue;if(J.admission.decision!=="admitted"){this.emitAdmissionEvent(re.candidateId,J.admission),this.safeUpdateAdmissionProcessing(re.candidateId,{state:"awaiting_owner",attempts:0,blockedReason:`${J.admission.decision}:${J.admission.reason}`});continue}if(h.has(re.candidateId))continue;let Ae=this.ledgerAdapter.existsForCandidate(re.candidateId)??null;Ae!==null&&typeof Ae.id=="string"&&(p.push(Ae.id),y.set(re.candidateId,Ae.id));let de;try{Ae!==null&&typeof Ae.id=="string"?de={outcome:"ledger_entry",written:!1,entry:Ae}:de=await this.intakeService.intake(re.candidateId)}catch(Te){this.eventEmitter?.emitTelemetry({eventType:"candidate_intake_failed",traceId:re.candidateId,timestamp:new Date().toISOString(),payload:{reason:Te instanceof Error?Te.message:String(Te)}}),this.recordPostProcessingFailure(re.candidateId,`intake_failed:${Te instanceof Error?Te.message:String(Te)}`).catch(()=>{});continue}if(de.outcome==="ledger_entry"&&(p.push(de.entry.id),y.set(re.candidateId,de.entry.id),de.reuseRecommendation!==void 0&&w.set(re.candidateId,de.reuseRecommendation)),de.outcome==="refused"&&de.reason==="reuse_pending_owner"){let Te=de.reuseRecommendation,ve=Te?.status==="recommended"?Te:void 0;this.eventEmitter?.emitTelemetry({eventType:"reuse_gate_triggered",traceId:re.candidateId,timestamp:new Date().toISOString(),payload:{candidateId:re.candidateId,...ve?.selectedPrincipleId!==void 0?{selectedPrincipleId:ve.selectedPrincipleId}:{},...ve?{confidence:ve.confidence,recommendation:ve.recommendation}:{}}}),b.set(re.candidateId,{selectedPrincipleId:ve?.selectedPrincipleId,confidence:ve?.confidence}),this.safeUpdateAdmissionProcessing(re.candidateId,{state:"awaiting_owner",attempts:0,blockedReason:"reuse_pending_owner"});continue}try{let Te=cj[re.recommendationKind??""];if(Te){let ve=QN[Te],Ye=nie(re,{route:Te,ready:!!ve,sourcePainId:i,pipelineMode:this.fullPipelinePromptSeeds?"full_chain":void 0});"decision"in Ye?Ye.decision==="not_internalizable"&&(_.push({candidateId:re.candidateId,reason:Ye.reason}),this.eventEmitter?.emitTelemetry({eventType:"candidate_not_internalizable",traceId:re.candidateId,timestamp:new Date().toISOString(),payload:{reason:Ye.reason,channel:ve??null,route:Te}})):await eie(Le=>this.stateManager.getTask(Le),re.candidateId)||(await this.stateManager.createTask({taskId:Ye.taskId,taskKind:Ye.taskKind,inputRef:"",status:Ye.status,attemptCount:Ye.attemptCount,maxAttempts:Ye.maxAttempts,diagnosticJson:Ye.diagnosticJson}),I.set(re.candidateId,Ye.taskId),this.eventEmitter?.emitTelemetry({eventType:"candidate_dreamer_task_seeded",traceId:re.candidateId,timestamp:new Date().toISOString(),payload:{taskId:Ye.taskId,channel:Ye.channel,...Ye.pipelineMode?{pipelineMode:Ye.pipelineMode}:{},...Ye.demotedFromChannel?{demotedFromChannel:Ye.demotedFromChannel}:{}}}))}}catch(Te){g.push(re.candidateId),this.eventEmitter?.emitTelemetry({eventType:"candidate_dreamer_task_seed_failed",traceId:re.candidateId,timestamp:new Date().toISOString(),payload:{error:String(Te)}}),this.recordPostProcessingFailure(re.candidateId,`seed_failed:${String(Te)}`).catch(()=>{})}re.status!=="consumed"&&await this.stateManager.updateCandidateStatus(re.candidateId,{status:"consumed"})}for(let K=0;K<l.length;K++){let re=l[K],J=m[K];!re||!J||J.admission.decision!=="admitted"||h.has(re.candidateId)||g.includes(re.candidateId)||b.has(re.candidateId)||this.safeUpdateAdmissionProcessing(re.candidateId,{state:"complete",attempts:0,completedAt:new Date().toISOString()})}let k=g.length>0?`dreamer_seed_failed:${g.join(",")}`:"",B=(await this.stateManager.getRunsByTask(n)).at(-1),N=l.at(0),T=l.map(K=>K.candidateId),M=l.map((K,re)=>{let J=m[re]?.admission,Ae=J?.decision??"needs_evidence",de={candidateId:K.candidateId,decision:Ae,reason:J?.reason??"diagnostician_output_unavailable",nextAction:J?.nextAction??"re_run_diagnosis_or_manual_review"},Te=y.get(K.candidateId);Te!==void 0&&(de.ledgerEntryId=Te);let ve=I.get(K.candidateId);if(ve!==void 0&&(de.seededTaskId=ve),Ae==="admitted"&&de.seededTaskId===void 0){let We=_.find(lt=>lt.candidateId===K.candidateId),Le=g.includes(K.candidateId);We!==void 0?(de.reason=We.reason,de.nextAction="Enable the mapped channel or archive this candidate."):Le&&(de.reason="dreamer_seed_failed",de.nextAction="Inspect state.db and telemetry; re-run intake.")}b.get(K.candidateId)!==void 0&&(de.reason="reuse_review_required",de.nextAction=`pd candidate review --candidate-id ${K.candidateId} --decide reuse|create --reason "..."`);let Ye=w.get(K.candidateId);return Ye!==void 0&&(de.reuseRecommendation=Ye.status==="unavailable"?{status:"unavailable",reason:Ye.reason.slice(0,200)}:{status:"recommended"}),de}),j=[];for(let K of l){let re=w.get(K.candidateId);re?.status==="unavailable"&&(j.push(`semantic reuse evaluation unavailable for candidate ${K.candidateId} (${re.reason.slice(0,200)}) \u2014 learning proceeded without duplicate protection (Rule 4); nextAction: pd candidate review --candidate-id ${K.candidateId} to resolve manually`),this.eventEmitter?.emitTelemetry({eventType:"reuse_evaluation_unavailable",traceId:K.candidateId,timestamp:new Date().toISOString(),payload:{candidateId:K.candidateId,reason:re.reason.slice(0,200)}}))}let $=M.filter(K=>K.decision==="admitted").map(K=>K.candidateId),te=[...I.values()],W=te.length>0?"internalization_seeded":p.length>0?"candidate_processing":"diagnosis_completed",we=oie({path:"fresh",painId:i,taskId:n,candidateIds:T,ledgerEntryIds:p,ledgerEligibleCandidateCount:l.filter((K,re)=>m[re]?.admission.decision==="admitted"&&Km(K.rawRecommendationKind)).length,reuseReviewRequiredCandidateIds:[...b.keys()],runId:B?.runId,artifactId:N?.artifactId,autoIntakeEnabled:this.autoIntakeEnabled,admissionResults:m,seedFailureNote:k,notInternalizable:_.length>0?_:void 0});return we.progress={furthestStage:W,generatedCandidateIds:T,admittedCandidateIds:$,ledgerEntryIds:p,seededTaskIds:te},we.candidateOutcomes=M,j.length>0&&(we.observabilityWarnings=j),we}async buildExistingResult(e){let n=await this.stateManager.getCandidatesByTaskId(e.taskId),i=(await this.stateManager.getRunsByTask(e.taskId)).at(-1),o=n.map(p=>p.candidateId),a=n.at(0),s=[],c=[],u=[];if(this.autoIntakeEnabled)for(let p of n){let f=this.ledgerAdapter.existsForCandidate(p.candidateId);if(f&&s.push(f.id),p.status!=="consumed"&&f&&await this.stateManager.updateCandidateStatus(p.candidateId,{status:"consumed"}),p.status==="pending"&&!f&&Km(p.rawRecommendationKind)&&this.intakeService?.reuseReviewEnabled)try{let m=await this.stateManager.getTask(e.taskId),h=pie(m?.diagnosticJson);if(h.errorCode!==null)continue;let g=await this.stateManager.getRun(p.sourceRunId);if(!g||g.taskId!==p.taskId||g.executionStatus!=="succeeded"||!g.outputPayload)continue;let _=JSON.parse(g.outputPayload);if(!it.Check(Jo,_)||!_.valid)continue;let[y]=tj([p],_,{provenance:h.provenance,inputEvidenceCount:h.evidenceCount});if(y?.admission.decision!=="admitted")continue;let I=await this.intakeService.reviewReuse(p.candidateId);I?.outcome==="refused"&&I.reason==="reuse_pending_owner"&&c.push(p.candidateId)}catch(m){u.push(`${p.candidateId}: ${m instanceof Error?m.message:String(m)}`)}}let l=oie({path:"existing",painId:e.painId,taskId:e.taskId,candidateIds:o,ledgerEntryIds:s,ledgerEligibleCandidateCount:n.filter(p=>Km(p.rawRecommendationKind)).length,reuseReviewRequiredCandidateIds:c,runId:i?.runId,artifactId:a?.artifactId,autoIntakeEnabled:this.autoIntakeEnabled});return u.length>0&&(l.status="failed",l.message=`Replay intake review failed: ${u.join("; ")}. nextAction: inspect the candidate artifacts and retry intake.`),c.length>0&&(l.candidateOutcomes=c.map(p=>({candidateId:p,decision:"needs_evidence",reason:"reuse_review_required",nextAction:`pd candidate review --candidate-id ${p} --decide reuse|create`}))),l}};import{EventEmitter as $Bt}from"events";an();Do();var WBt=d.Union([d.Literal("lease_acquired"),d.Literal("lease_released"),d.Literal("lease_renewed"),d.Literal("lease_expired"),d.Literal("task_retried"),d.Literal("task_failed"),d.Literal("task_succeeded"),d.Literal("run_completed"),d.Literal("degradation_triggered"),d.Literal("diag_router_invariant_override"),d.Literal("runtime_adapter_selected"),d.Literal("runtime_invocation_started"),d.Literal("runtime_invocation_succeeded"),d.Literal("runtime_invocation_failed"),d.Literal("output_repair_attempted"),d.Literal("output_extraction_failed"),d.Literal("output_schema_invalid"),d.Literal("output_repair_exhausted"),d.Literal("output_path_chosen"),d.Literal("output_path_fallback"),d.Literal("llm_max_tokens_downshift"),d.Literal("dreamer_task_leased"),d.Literal("dreamer_context_built"),d.Literal("dreamer_run_started"),d.Literal("dreamer_run_failed"),d.Literal("dreamer_output_invalid"),d.Literal("dreamer_output_validated"),d.Literal("dreamer_task_succeeded"),d.Literal("dreamer_task_retried"),d.Literal("dreamer_task_failed"),d.Literal("dreamer_candidate_generated"),d.Literal("dreamer_cancel_run_failed"),d.Literal("dreamer_output_extraction_failed"),d.Literal("dreamer_mark_succeeded_failed"),d.Literal("dreamer_update_output_failed"),d.Literal("dreamer_context_partial"),d.Literal("dreamer_mark_failed_error"),d.Literal("dreamer_mark_retry_error"),d.Literal("philosopher_task_leased"),d.Literal("philosopher_context_built"),d.Literal("philosopher_run_started"),d.Literal("philosopher_run_failed"),d.Literal("philosopher_output_invalid"),d.Literal("philosopher_output_validated"),d.Literal("philosopher_task_succeeded"),d.Literal("philosopher_task_retried"),d.Literal("philosopher_task_failed"),d.Literal("philosopher_principle_candidate_generated"),d.Literal("philosopher_cancel_run_failed"),d.Literal("philosopher_mark_succeeded_failed"),d.Literal("philosopher_update_output_failed"),d.Literal("philosopher_dependency_not_succeeded"),d.Literal("philosopher_lineage_resolve_failed"),d.Literal("philosopher_lineage_partial"),d.Literal("philosopher_artifact_write_failed"),d.Literal("philosopher_wrong_task_kind"),d.Literal("philosopher_output_extraction_failed"),d.Literal("philosopher_mark_failed_error"),d.Literal("philosopher_mark_retry_error"),d.Literal("artificer_task_leased"),d.Literal("artificer_context_built"),d.Literal("artificer_run_started"),d.Literal("artificer_run_failed"),d.Literal("artificer_output_invalid"),d.Literal("artificer_output_validated"),d.Literal("artificer_task_succeeded"),d.Literal("artificer_task_retried"),d.Literal("artificer_task_failed"),d.Literal("artificer_implementation_plan_generated"),d.Literal("artificer_cancel_run_failed"),d.Literal("artificer_mark_succeeded_failed"),d.Literal("artificer_update_output_failed"),d.Literal("artificer_dependency_not_succeeded"),d.Literal("artificer_lineage_resolve_failed"),d.Literal("artificer_lineage_partial"),d.Literal("artificer_artifact_write_failed"),d.Literal("artificer_wrong_task_kind"),d.Literal("artificer_output_extraction_failed"),d.Literal("artificer_mark_failed_error"),d.Literal("artificer_mark_retry_error"),d.Literal("artificer_evidence_readiness_checked"),d.Literal("artificer_blocked_on_owner_evidence"),d.Literal("artificer_intent_basis_checked"),d.Literal("artificer_blocked_on_intent_basis"),d.Literal("artificer_owner_evidence_attached"),d.Literal("artificer_owner_evidence_resumed"),d.Literal("evaluator_task_leased"),d.Literal("evaluator_context_built"),d.Literal("evaluator_run_started"),d.Literal("evaluator_run_failed"),d.Literal("evaluator_output_invalid"),d.Literal("evaluator_output_validated"),d.Literal("evaluator_task_succeeded"),d.Literal("evaluator_task_retried"),d.Literal("evaluator_task_failed"),d.Literal("evaluator_cancel_run_failed"),d.Literal("evaluator_mark_succeeded_failed"),d.Literal("evaluator_update_output_failed"),d.Literal("evaluator_dependency_not_succeeded"),d.Literal("evaluator_lineage_resolve_failed"),d.Literal("evaluator_lineage_partial"),d.Literal("evaluator_artifact_write_failed"),d.Literal("evaluator_wrong_task_kind"),d.Literal("evaluator_output_extraction_failed"),d.Literal("evaluator_mark_failed_error"),d.Literal("evaluator_mark_retry_error"),d.Literal("evaluator_decision_recorded"),d.Literal("scribe_task_leased"),d.Literal("scribe_context_built"),d.Literal("scribe_run_started"),d.Literal("scribe_run_failed"),d.Literal("scribe_output_invalid"),d.Literal("scribe_output_validated"),d.Literal("scribe_task_succeeded"),d.Literal("scribe_task_retried"),d.Literal("scribe_task_failed"),d.Literal("scribe_principle_draft_generated"),d.Literal("scribe_intent_contract_string_normalized"),d.Literal("scribe_cancel_run_failed"),d.Literal("scribe_mark_succeeded_failed"),d.Literal("scribe_update_output_failed"),d.Literal("scribe_prior_validator_errors_suppressed"),d.Literal("scribe_anchor_material_unavailable"),d.Literal("scribe_last_validator_errors_cleanup_conflict"),d.Literal("scribe_dependency_not_succeeded"),d.Literal("scribe_lineage_resolve_failed"),d.Literal("scribe_lineage_partial"),d.Literal("scribe_artifact_write_failed"),d.Literal("scribe_wrong_task_kind"),d.Literal("scribe_output_extraction_failed"),d.Literal("scribe_mark_failed_error"),d.Literal("scribe_mark_retry_error"),d.Literal("scribe_identity_stamp_failed"),d.Literal("scribe_identity_stamp_skipped"),d.Literal("scribe_identity_preflight_blocked"),d.Literal("evaluator_identity_stamp_success"),d.Literal("evaluator_identity_stamp_failed"),d.Literal("dreamer_identity_assertion_not_carried"),d.Literal("scribe_formation_context_failed"),d.Literal("scribe_formation_context_invalid"),d.Literal("scribe_formation_context_resolved"),d.Literal("scribe_formation_context_skipped"),d.Literal("scribe_formation_dreamer_artifact_missing"),d.Literal("dreamer_l2_turn"),d.Literal("dreamer_l2_complete"),d.Literal("dreamer_l2_fallback_to_l1"),d.Literal("artificer_l2_turn"),d.Literal("artificer_l2_complete"),d.Literal("artificer_repair_replay_evidence_resolved"),d.Literal("artificer_repair_replay_evidence_unavailable"),d.Literal("evaluator_adversarial_replay"),d.Literal("evaluator_adversarial_replay_skipped"),d.Literal("evaluator_artificer_owner_stamp_repair_required"),d.Literal("evaluator_prompt_code_artifact_ignored"),d.Literal("evaluator_rule_host_input_contract_skipped"),d.Literal("evaluator_host_alias_case_skipped"),d.Literal("evaluator_adversarial_replay_diagnostic_passed"),d.Literal("evaluator_adversarial_replay_diagnostic_failed"),d.Literal("evaluator_adversarial_replay_case_id_conflict"),d.Literal("evaluator_rule_assembled"),d.Literal("evaluator_rule_assembly_failed"),d.Literal("artificer_agent_draft_insert_failed"),d.Literal("artificer_agent_draft_inserted"),d.Literal("artificer_diag_llm_rate_limit_degraded"),d.Literal("artificer_lineage_echo_corrected"),d.Literal("artificer_no_dependencies"),d.Literal("artificer_no_scribe_artifact"),d.Literal("artificer_prior_validator_errors_suppressed"),d.Literal("artificer_scribe_dep_selected"),d.Literal("dreamer_agent_draft_insert_failed"),d.Literal("dreamer_agent_draft_inserted"),d.Literal("dreamer_artifact_write_failed"),d.Literal("dreamer_diag_llm_rate_limit_degraded"),d.Literal("dreamer_lineage_echo_corrected"),d.Literal("dreamer_lineage_partial"),d.Literal("dreamer_lineage_resolve_failed"),d.Literal("dreamer_wrong_task_kind"),d.Literal("philosopher_agent_draft_insert_failed"),d.Literal("philosopher_agent_draft_inserted"),d.Literal("philosopher_diag_llm_rate_limit_degraded"),d.Literal("philosopher_lineage_echo_corrected"),d.Literal("scribe_agent_draft_insert_failed"),d.Literal("scribe_agent_draft_inserted"),d.Literal("scribe_diag_llm_rate_limit_degraded"),d.Literal("scribe_lineage_echo_corrected"),d.Literal("evaluator_adversarial_replay_error"),d.Literal("evaluator_adversarial_result_persist_failed"),d.Literal("evaluator_agent_draft_insert_failed"),d.Literal("evaluator_agent_draft_inserted"),d.Literal("evaluator_artificer_dep_selected"),d.Literal("evaluator_attribution_scope_resolve_failed"),d.Literal("evaluator_completion_intent_finalize_terminal"),d.Literal("evaluator_completion_intent_read_failed"),d.Literal("evaluator_completion_intent_resumed"),d.Literal("evaluator_completion_intent_stale_epoch"),d.Literal("evaluator_completion_mark_applied_failed"),d.Literal("evaluator_completion_record_failed"),d.Literal("evaluator_diag_llm_rate_limit_degraded"),d.Literal("evaluator_formation_context_failed"),d.Literal("evaluator_formation_context_invalid"),d.Literal("evaluator_formation_context_resolved"),d.Literal("evaluator_formation_context_skipped"),d.Literal("evaluator_formation_dreamer_artifact_missing"),d.Literal("evaluator_governance_effect_out_of_scope_selected"),d.Literal("evaluator_governance_effect_principle_pain_mismatch_selected"),d.Literal("evaluator_intent_contract_absent_on_principle"),d.Literal("evaluator_lineage_echo_corrected"),d.Literal("evaluator_lineage_integrity_violation"),d.Literal("evaluator_no_artificer_artifact"),d.Literal("evaluator_no_dependencies"),d.Literal("evaluator_no_principle_bearer_found"),d.Literal("evaluator_owner_resolution_applying"),d.Literal("evaluator_owner_resolution_rejected_by_policy"),d.Literal("evaluator_pain_reason_summary_skipped"),d.Literal("evaluator_previous_evaluation_context_degraded"),d.Literal("evaluator_principle_bearer_ambiguous"),d.Literal("evaluator_prior_validator_errors_suppressed"),d.Literal("evaluator_repair_loop_idempotent_reuse"),d.Literal("evaluator_repair_loop_lineage_missing"),d.Literal("evaluator_repair_loop_mark_review_failed"),d.Literal("evaluator_repair_loop_max_iterations"),d.Literal("evaluator_repair_loop_seeder_missing"),d.Literal("evaluator_repair_loop_test_out_of_scope"),d.Literal("evaluator_repair_task_seed_failed"),d.Literal("evaluator_repair_task_seeded"),d.Literal("evaluator_rule_principle_id_resolve_failed"),d.Literal("evaluator_scribe_artifact_not_principle"),d.Literal("evaluator_scribe_artifact_unresolvable"),d.Literal("evaluator_source_validation_update_failed"),d.Literal("evaluator_source_validation_update_not_found"),d.Literal("evaluator_task_needs_human_review"),d.Literal("evaluator_v2_adversarial_cases_skipped"),d.Literal("diag_router_agent_draft_insert_failed"),d.Literal("diag_router_agent_draft_inserted"),d.Literal("diag_router_artifact_commit_failed"),d.Literal("diag_router_artifact_committed"),d.Literal("diag_router_artifact_write_failed"),d.Literal("diag_router_cancel_run_failed"),d.Literal("diag_router_candidate_registered"),d.Literal("diag_router_context_built"),d.Literal("diag_router_diag_llm_rate_limit_degraded"),d.Literal("diag_router_mark_failed_error"),d.Literal("diag_router_mark_retry_error"),d.Literal("diag_router_mark_succeeded_failed"),d.Literal("diag_router_output_extraction_failed"),d.Literal("diag_router_output_invalid"),d.Literal("diag_router_output_validated"),d.Literal("diag_router_router_completed"),d.Literal("diag_router_run_failed"),d.Literal("diag_router_run_started"),d.Literal("diag_router_task_failed"),d.Literal("diag_router_task_leased"),d.Literal("diag_router_task_retried"),d.Literal("diag_router_task_succeeded"),d.Literal("diag_router_update_output_failed"),d.Literal("diag_router_wrong_task_kind"),d.Literal("diag_distiller_agent_draft_insert_failed"),d.Literal("diag_distiller_agent_draft_inserted"),d.Literal("diag_distiller_artifact_write_failed"),d.Literal("diag_distiller_cancel_run_failed"),d.Literal("diag_distiller_context_built"),d.Literal("diag_distiller_diag_llm_rate_limit_degraded"),d.Literal("diag_distiller_distiller_completed"),d.Literal("diag_distiller_lineage_integrity_violation"),d.Literal("diag_distiller_lineage_partial"),d.Literal("diag_distiller_lineage_resolve_failed"),d.Literal("diag_distiller_mark_failed_error"),d.Literal("diag_distiller_mark_retry_error"),d.Literal("diag_distiller_mark_succeeded_failed"),d.Literal("diag_distiller_output_extraction_failed"),d.Literal("diag_distiller_output_invalid"),d.Literal("diag_distiller_output_validated"),d.Literal("diag_distiller_run_failed"),d.Literal("diag_distiller_run_started"),d.Literal("diag_distiller_task_failed"),d.Literal("diag_distiller_task_leased"),d.Literal("diag_distiller_task_retried"),d.Literal("diag_distiller_task_succeeded"),d.Literal("diag_distiller_update_output_failed"),d.Literal("diag_distiller_wrong_task_kind"),d.Literal("diag_rootcause_agent_draft_insert_failed"),d.Literal("diag_rootcause_agent_draft_inserted"),d.Literal("diag_rootcause_artifact_write_failed"),d.Literal("diag_rootcause_cancel_run_failed"),d.Literal("diag_rootcause_context_built"),d.Literal("diag_rootcause_diag_llm_rate_limit_degraded"),d.Literal("diag_rootcause_intent_doc_read_failed"),d.Literal("diag_rootcause_lineage_partial"),d.Literal("diag_rootcause_lineage_resolve_failed"),d.Literal("diag_rootcause_mark_failed_error"),d.Literal("diag_rootcause_mark_retry_error"),d.Literal("diag_rootcause_mark_succeeded_failed"),d.Literal("diag_rootcause_output_extraction_failed"),d.Literal("diag_rootcause_output_invalid"),d.Literal("diag_rootcause_output_validated"),d.Literal("diag_rootcause_rootcause_completed"),d.Literal("diag_rootcause_run_failed"),d.Literal("diag_rootcause_run_started"),d.Literal("diag_rootcause_task_failed"),d.Literal("diag_rootcause_task_leased"),d.Literal("diag_rootcause_task_retried"),d.Literal("diag_rootcause_task_succeeded"),d.Literal("diag_rootcause_update_output_failed"),d.Literal("diag_rootcause_wrong_task_kind"),d.Literal("rollout_activation_candidate_resolved"),d.Literal("rollout_activation_candidate_unresolved"),d.Literal("candidate_intake_failed"),d.Literal("admission_persistence_failed"),d.Literal("reuse_evaluation_recommended"),d.Literal("reuse_evaluation_unavailable"),d.Literal("reuse_gate_triggered"),d.Literal("rollout_completion_intent_finalize_terminal"),d.Literal("rollout_completion_intent_resumed"),d.Literal("rollout_completion_intent_stale_epoch"),d.Literal("rollout_completion_mark_applied_failed"),d.Literal("rollout_completion_record_failed"),d.Literal("rollout_dispatch_not_wired"),d.Literal("rollout_mark_human_review_failed"),d.Literal("rollout_owner_resolution_applying"),d.Literal("rollout_reviewer_artifact_write_failed"),d.Literal("rollout_reviewer_cancel_run_failed"),d.Literal("rollout_reviewer_context_built"),d.Literal("rollout_reviewer_dependency_not_succeeded"),d.Literal("rollout_reviewer_evaluator_dep_selected"),d.Literal("rollout_reviewer_lineage_echo_corrected"),d.Literal("rollout_reviewer_mark_failed_error"),d.Literal("rollout_reviewer_mark_retry_error"),d.Literal("rollout_reviewer_mark_succeeded_failed"),d.Literal("rollout_reviewer_no_dependencies"),d.Literal("rollout_reviewer_no_evaluator_artifact"),d.Literal("rollout_reviewer_no_scribe_artifact"),d.Literal("rollout_reviewer_scribe_dep_selected"),d.Literal("rollout_principle_validated"),d.Literal("rollout_principle_validation_update_failed"),d.Literal("rollout_principle_validation_update_not_found"),d.Literal("rollout_reviewer_output_invalid"),d.Literal("rollout_reviewer_output_validated"),d.Literal("rollout_reviewer_run_failed"),d.Literal("rollout_reviewer_run_started"),d.Literal("rollout_reviewer_task_failed"),d.Literal("rollout_reviewer_task_leased"),d.Literal("rollout_reviewer_task_needs_human_review"),d.Literal("rollout_reviewer_task_retried"),d.Literal("rollout_reviewer_task_succeeded"),d.Literal("rollout_reviewer_update_output_failed"),d.Literal("rollout_reviewer_wrong_task_kind"),d.Literal("rollout_revision_already_materialized"),d.Literal("rollout_revision_not_wired"),d.Literal("rollout_revision_record_failed"),d.Literal("rollout_revision_route_failed"),d.Literal("rollout_revision_routed"),d.Literal("admission_decision"),d.Literal("diagnosis_task_created"),d.Literal("evidence_only_recorded"),d.Literal("skipped_refused")]),PMe=d.Object({eventType:WBt,traceId:d.String({minLength:1}),timestamp:d.String({minLength:1}),sessionId:d.String(),agentId:d.Optional(d.String()),payload:d.Record(d.String(),d.Unknown())});function LMe(t){if(typeof t!="object"||t===null||Array.isArray(t))return{valid:!1,errors:["Input must be a non-null object"]};let e=t;if(typeof e.timestamp=="string"&&isNaN(Date.parse(e.timestamp)))return{valid:!1,errors:["timestamp must be a valid ISO 8601 date string"]};let n=[...it.Errors(PMe,t)];return n.length>0?{valid:!1,errors:n.map(r=>`${r.path?`${r.path}: `:""}${r.message}`)}:{valid:!0,errors:[],event:it.Cast(PMe,t)}}var CC=class extends $Bt{emitTelemetry(e){let n;try{let r=LMe(e);!r.valid||!r.event?n=void 0:n=r.event}catch(r){let i={eventType:"degradation_triggered",traceId:e?.traceId?`fallback-${e.traceId}`:`fallback-${Date.now()}`,timestamp:new Date().toISOString(),sessionId:e?.sessionId??"",payload:{component:"StoreEventEmitter",trigger:"invalid_event",fallback:"dropped",severity:"warning",errors:[String(r)],originalEventType:e?.eventType??"unknown",originalTraceId:e?.traceId??"unknown"}};return this.emit("telemetry",i),this.emit(i.eventType,i),!0}if(!n){let r={eventType:"degradation_triggered",traceId:e?.traceId?`fallback-${e.traceId}`:`fallback-${Date.now()}`,timestamp:new Date().toISOString(),sessionId:e?.sessionId??"",payload:{component:"StoreEventEmitter",trigger:"invalid_event",fallback:"dropped",severity:"warning"}};return this.emit("telemetry",r),this.emit(r.eventType,r),!0}return this.emit("telemetry",n),this.emit(n.eventType,n),!0}onTelemetry(e){this.on("telemetry",e)}onEventType(e,n){this.on(e,n)}},bi=new CC;Do();In();Do();In();function VN(t,e,n){if(typeof t!="string")throw new z("storage_unavailable",`Run ${n} has invalid schema: /${e}: expected string, got ${t===null?"null":typeof t}`);if(t.length===0)throw new z("storage_unavailable",`Run ${n} has invalid schema: /${e}: expected non-empty string`);return t}function HBt(t,e,n){if(typeof t!="number"||!Number.isInteger(t))throw new z("storage_unavailable",`Run ${n} has invalid schema: /${e}: expected integer, got ${t===null?"null":typeof t}`);if(t<0)throw new z("storage_unavailable",`Run ${n} has invalid schema: /${e}: expected non-negative integer, got ${t}`);return t}function zN(t,e,n){if(t!=null){if(typeof t!="string")throw new z("storage_unavailable",`Run ${n} has invalid schema: /${e}: expected string|null, got ${typeof t}`);return t}}var YN=class extends z{validRuns;degradedRuns;constructor(e,n,r){super("storage_unavailable",e),this.validRuns=n,this.degradedRuns=r,this.name="MalformedRunError"}},g0=class t{connection;constructor(e){this.connection=e}async createRun(e){if(!it.Check(Gm,e.runtimeKind))throw new z("input_invalid",`Invalid runtime kind: ${e.runtimeKind}`);let n=this.connection.getDb(),r=new Date().toISOString();return n.prepare(`
311
+ `):void 0}}function bH(t){let e=[];for(let n of t){let r=DLe(n.inputPayload),i=DLe(n.outputPayload),o=!1,a=!1,s=r?IH(r,"text")??kNt(r):void 0;s&&(e.push({at:n.startedAt??null,kind:"user_message",summary:s.length>200?s.slice(0,200)+"...[truncated]":s,rawPreview:s.length>500?s.slice(0,500)+"...[truncated]":void 0}),o=!0);let c=r?.toolCalls??i?.toolCalls;if(Array.isArray(c))for(let l of c){if(typeof l!="object"||l===null)continue;let p=l,f=typeof p.toolName=="string"?p.toolName:typeof p.name=="string"?p.name:"unknown",m=typeof p.status=="string"?p.status:void 0;e.push({at:n.startedAt??null,kind:"tool_call",summary:`${f}${m?` (${m})`:""}`,rawPreview:p.params?JSON.stringify(p.params).slice(0,500):void 0,metadata:{toolName:f,...m?{status:m}:{},...p.error?{error:typeof p.error=="string"?p.error:JSON.stringify(p.error)}:{}}}),o=!0,(p.result||p.error)&&(e.push({at:n.endedAt??n.startedAt??null,kind:"tool_result",summary:p.error?`Error from ${f}`:`Result from ${f}`,rawPreview:p.result?(typeof p.result=="string"?p.result:JSON.stringify(p.result)).slice(0,500):void 0,metadata:p.error?{toolName:f,error:typeof p.error=="string"?p.error:JSON.stringify(p.error)}:{toolName:f}}),a=!0)}else if(r){let l=IH(r,"toolName")??IH(r,"name");l&&(e.push({at:n.startedAt??null,kind:"tool_call",summary:`${l} (${n.executionStatus})`,rawPreview:r.params?JSON.stringify(r.params).slice(0,500):void 0,metadata:{toolName:l,status:n.executionStatus}}),o=!0)}let u=i?IH(i,"text")??TNt(i):void 0;if(u&&(e.push({at:n.endedAt??n.startedAt??null,kind:"assistant_message",summary:u.length>200?u.slice(0,200)+"...[truncated]":u,rawPreview:u.length>500?u.slice(0,500)+"...[truncated]":void 0}),a=!0),n.inputPayload&&!r&&n.inputPayload.trim().length>0){let l=n.inputPayload.trim();e.push({at:n.startedAt??null,kind:"unknown",summary:l.length>200?l.slice(0,200)+"...[truncated]":l,rawPreview:l.length>500?l.slice(0,500)+"...[truncated]":void 0}),o=!0}if(n.outputPayload&&!i&&n.outputPayload.trim().length>0){let l=n.outputPayload.trim();e.push({at:n.endedAt??n.startedAt??null,kind:"unknown",summary:l.length>200?l.slice(0,200)+"...[truncated]":l,rawPreview:l.length>500?l.slice(0,500)+"...[truncated]":void 0}),a=!0}if(r&&!o){let l=JSON.stringify(r).slice(0,500);e.push({at:n.startedAt??null,kind:"unknown",summary:l.length>200?l.slice(0,200)+"...[truncated]":l,rawPreview:l,metadata:{parseStatus:"unrecognized_json_shape"}})}if(i&&!a){let l=JSON.stringify(i).slice(0,500);e.push({at:n.endedAt??n.startedAt??null,kind:"unknown",summary:l.length>200?l.slice(0,200)+"...[truncated]":l,rawPreview:l,metadata:{parseStatus:"unrecognized_json_shape"}})}}return e}function SH(t,e){let n=[{kind:"task",id:t}];for(let r of e)n.push({kind:"run",id:r});return n}var CH=d.Object({ts:d.String({minLength:1}),role:d.Union([d.Literal("user"),d.Literal("assistant"),d.Literal("tool"),d.Literal("system")]),text:d.Optional(d.String()),toolName:d.Optional(d.String()),toolResultSummary:d.Optional(d.String()),eventType:d.Optional(d.String())}),FLe=d.Object({painId:d.Optional(d.String({minLength:1})),taskId:d.Optional(d.String({minLength:1})),runId:d.Optional(d.String({minLength:1})),sessionId:d.Optional(d.String({minLength:1})),timeRange:d.Optional(d.Object({start:d.String({minLength:1}),end:d.String({minLength:1})})),workspace:d.Optional(d.String({minLength:1})),executionStatus:d.Optional(d.String({minLength:1}))}),ULe=d.Object({trajectoryRef:d.String({minLength:1}),confidence:d.Number({minimum:0,maximum:1}),reasons:d.Array(d.String({minLength:1})),sourceTypes:d.Optional(d.Array(d.String({minLength:1})))}),tre=d.Object({query:FLe,candidates:d.Array(ULe)}),nre=d.Object({sourceRef:d.String({minLength:1}),entries:d.Array(CH),truncated:d.Boolean(),nextCursor:d.Optional(d.String({minLength:1}))}),ONt=d.Object({sourceRef:d.String({minLength:1}),note:d.String({minLength:1,maxLength:200})}),rre=d.Object({text:d.String({minLength:1}),sessionId:d.Optional(d.String()),turnIndex:d.Optional(d.Integer({minimum:0})),referencesAssistantTurnId:d.Optional(d.Integer({minimum:0})),occurredAt:d.Optional(d.String()),classification:d.Optional(d.Literal("owner_statement")),channel:d.Optional(d.Union([d.Literal("cli_owner_statement"),d.Literal("codex_explicit_prefix"),d.Literal("codex_explicit_agent"),d.Literal("workbuddy_explicit_prefix"),d.Literal("openclaw_manual_pain")]))}),ire=d.Object({reasonSummary:d.Optional(d.String()),source:d.Optional(d.String()),severity:d.Optional(d.String()),painId:d.Optional(d.String({minLength:1})),sessionIdHint:d.Optional(d.String({minLength:1})),provenance:d.Optional(d.Union([d.Literal("host_context_bound"),d.Literal("owner_reported_no_host_trace"),d.Literal("automatic_hook")])),hostKind:d.Optional(d.Union([d.Literal("openclaw"),d.Literal("codex"),d.Literal("workbuddy")])),provenanceReason:d.Optional(d.String()),traceAvailability:d.Optional(d.Union([d.Literal("available"),d.Literal("unavailable_with_reason"),d.Literal("ambiguous")])),traceUnavailableDetail:d.Optional(d.Object({reason:d.String(),nextAction:d.String()})),evidence:d.Optional(d.Array(ONt)),correctionEvidence:d.Optional(rre)}),QLe=d.Object({toolName:d.Optional(d.String()),status:d.Optional(d.String()),params:d.Optional(d.String()),resultSummary:d.Optional(d.String()),errorSummary:d.Optional(d.String()),startedAt:d.Optional(d.String()),completedAt:d.Optional(d.String())}),WLe=d.Object({painId:d.Optional(d.String({minLength:1})),severity:d.Optional(d.String()),source:d.Optional(d.String()),reasonSummary:d.Optional(d.String()),sessionIdHint:d.Optional(d.String())}),$Le=d.Object({painContext:WLe,scratchpad:d.Array(d.String()),toolCallHistory:d.Array(QLe)});var DNt=d.Object({contextId:d.String({minLength:1}),sourceRefs:d.Array(d.String({minLength:1})),targetAgent:d.Optional(d.String({minLength:1})),diagnosisTarget:d.Optional(ire),conversationWindow:d.Array(CH),artifactRefs:d.Optional(d.Array(d.String({minLength:1}))),ambiguityNotes:d.Optional(d.Array(d.String())),summary:d.String({minLength:1})}),ore=d.Object({contextId:d.String({minLength:1}),contextHash:d.String({minLength:1}),taskId:d.String({minLength:1}),workspaceDir:d.String({minLength:1}),sourceRefs:d.Array(d.String({minLength:1})),diagnosisTarget:ire,conversationWindow:d.Array(CH),ambiguityNotes:d.Optional(d.Array(d.String())),fullTrace:d.Optional(d.Union([$Le,BLe,d.Null()]))});var HLe=["pending","leased","succeeded","retry_wait","failed","needs_human_review"],jLe=d.Union([...HLe.map(t=>d.Literal(t))]);var kH=d.Object({taskId:d.String({minLength:1}),taskKind:d.String({minLength:1}),status:jLe,createdAt:d.String(),updatedAt:d.String(),leaseOwner:d.Optional(d.String()),leaseExpiresAt:d.Optional(d.String()),attemptCount:d.Integer({minimum:0}),maxAttempts:d.Integer({minimum:1}),lastError:d.Optional(d.Union([i0,d.Null()])),inputRef:d.Optional(d.String()),resultRef:d.Optional(d.String()),diagnosticJson:d.Optional(d.String())}),PNt=d.Intersect([kH,d.Object({taskKind:d.Literal("diagnostician"),sourcePainId:d.Optional(d.String()),workspaceDir:d.String(),severity:d.Optional(d.String()),source:d.Optional(d.String()),sessionIdHint:d.Optional(d.String()),agentIdHint:d.Optional(d.String()),reasonSummary:d.String(),provenance:d.Optional(d.Union([d.Literal("host_context_bound"),d.Literal("owner_reported_no_host_trace"),d.Literal("automatic_hook"),d.Literal("openclaw_context_bound")])),hostKind:d.Optional(d.Union([d.Literal("openclaw"),d.Literal("codex"),d.Literal("workbuddy")])),provenanceReason:d.Optional(d.String()),evidence:d.Optional(d.Array(d.Object({sourceRef:d.String({minLength:1}),note:d.String({minLength:1,maxLength:200})}))),correctionEvidence:d.Optional(rre)})]);an();an();Do();var LNt=d.Union([d.Literal("People"),d.Literal("Design"),d.Literal("Assumption"),d.Literal("Tooling")]),NNt=d.Object({why:d.Number({minimum:1,maximum:5}),statement:d.String({minLength:1}),evidenceRefs:d.Array(d.String({minLength:1}),{minItems:1})}),MNt=d.Object({sourceRef:d.String({minLength:1}),note:d.String({minLength:1})}),qLe=d.Union([d.Literal("none"),d.Literal("action_drift"),d.Literal("intent_suspect"),d.Literal("healthy_tension")]),KLe=d.Union([d.Literal("weak"),d.Literal("moderate"),d.Literal("strong")]),VLe=d.Union([d.Literal("why"),d.Literal("desired_outcome"),d.Literal("non_negotiables"),d.Literal("stop_escalation"),d.Literal("current_strategic_focus")]),zLe=d.Union([d.Literal("confirm_drift"),d.Literal("revise_intent"),d.Literal("observe"),d.Literal("dismiss"),d.Literal("promote_to_principle"),d.Literal("promote_to_rulehost")]);var hC=d.Object({source:qLe,evidenceStrength:KLe,relatedIntentFields:d.Array(VLe),evidence:d.Array(d.String(),{maxItems:3}),explanation:d.String({minLength:1}),suggestedOwnerAction:zLe,intentDocHash:d.Optional(d.String())},{additionalProperties:!1}),Hl=d.Object({valid:d.Boolean(),diagnosisId:d.String({minLength:1}),taskId:d.String({minLength:1,description:"Lineage \u2014 re-injected if stripped; ERR-008"}),summary:d.String({minLength:1}),causalChain:d.Array(NNt),rootCause:d.String({minLength:1,description:'MUST include category prefix: "People: ..." or "Design: ..." or "Assumption: ..." or "Tooling: ..."'}),rootCauseCategory:LNt,evidence:d.Array(MNt),confidence:d.Number({minimum:0,maximum:1}),ambiguityNotes:d.Optional(d.Array(d.String())),intentTension:d.Optional(hC)}),GLe=new Set(["People","Design","Assumption","Tooling"]),vN=class{async validate(e,n){let r=[],i=[];if(typeof e!="object"||e===null)return{valid:!1,errors:["Output is not an object"],errorCategory:"output_invalid"};let o=e;if(typeof o.taskId!="string"||o.taskId!==n){let a="diag_rootcause-";if(typeof o.taskId=="string"&&n.startsWith(a)&&o.taskId===n.slice(a.length)){let s=o.taskId;o.taskId=n,i.push(`taskId re-injected: LLM output parent ID "${s}", corrected to "${n}" (ERR-008)`)}else r.push(`taskId mismatch: expected ${n}, got ${String(o.taskId)}`)}if(o.valid!==!0&&r.push("output.valid must be true"),(typeof o.rootCauseCategory!="string"||!GLe.has(o.rootCauseCategory))&&r.push(`rootCauseCategory must be one of People|Design|Assumption|Tooling, got ${String(o.rootCauseCategory)}`),typeof o.rootCause=="string"&&typeof o.rootCauseCategory=="string"&&GLe.has(o.rootCauseCategory)){let a=`${o.rootCauseCategory}: `;o.rootCause.startsWith(a)||r.push(`rootCause must start with "${a}" (matching rootCauseCategory "${o.rootCauseCategory}"), got: "${o.rootCause.slice(0,40)}${o.rootCause.length>40?"...":""}"`)}if(Array.isArray(o.causalChain))for(let a=0;a<o.causalChain.length;a++){let s=o.causalChain[a];if(!s||typeof s!="object"){r.push(`causalChain[${a}] must be an object`);continue}(typeof s.why!="number"||s.why<1||s.why>5)&&r.push(`causalChain[${a}].why must be a number in [1, 5]`),(typeof s.statement!="string"||s.statement.trim()==="")&&r.push(`causalChain[${a}].statement must be a non-empty string`),Array.isArray(s.evidenceRefs)?s.evidenceRefs.length===0&&r.push(`causalChain[${a}].evidenceRefs must have at least 1 item`):r.push(`causalChain[${a}].evidenceRefs must be an array`)}if(Array.isArray(o.evidence))for(let a=0;a<o.evidence.length;a++){let s=o.evidence[a];if(!s||typeof s!="object"){r.push(`evidence[${a}] must be an object`);continue}(typeof s.sourceRef!="string"||s.sourceRef.trim()==="")&&r.push(`evidence[${a}].sourceRef must be a non-empty string`),(typeof s.note!="string"||s.note.trim()==="")&&r.push(`evidence[${a}].note must be a non-empty string`)}if(Object.hasOwn(o,"intentTension")){let a=o.intentTension;if(a===null||typeof a!="object")r.push("intentTension must be an object when present");else{let s=a;Object.hasOwn(s,"confidence")&&r.push("intentTension.confidence is forbidden (SPEC \xA716.3); use rootCause-level confidence instead")}}if(!it.Check(Hl,e)){let s=[...it.Errors(Hl,e)].map(c=>`${c.path}: ${c.message}`);r.push(...s)}return r.length>0?{valid:!1,errors:r,errorCategory:"output_invalid",warnings:i}:{valid:!0,errors:[],warnings:i}}};var YLe=d.Object({principleId:d.Optional(d.String({minLength:1})),title:d.Optional(d.String()),rationale:d.String({minLength:1})}),JLe=d.Object({sourceRef:d.String({minLength:1}),note:d.String({minLength:1})}),TH=d.Union([d.Literal("principle"),d.Literal("rule"),d.Literal("implementation"),d.Literal("prompt"),d.Literal("defer")]),RH=d.Object({kind:TH,description:d.String({minLength:1}),triggerPattern:d.Optional(d.String({description:'Required when kind is "rule". Regex or keyword pattern for interception.'})),action:d.Optional(d.String({description:'Required when kind is "rule". Action to take when pattern matches.'})),abstractedPrinciple:d.Optional(d.String({description:'Required when kind is "principle". Highly abstracted, reusable wisdom (\u2264200 chars).'}))}),Jo=d.Object({valid:d.Boolean(),diagnosisId:d.String({minLength:1}),summary:d.String({minLength:1}),rootCause:d.String({minLength:1,description:'MUST include category prefix: "Design: ..." or "People: ..." or "Assumption: ..." or "Tooling: ..."'}),violatedPrinciples:d.Array(YLe),evidence:d.Array(JLe),recommendations:d.Array(RH,{minItems:1}),confidence:d.Number({minimum:0,maximum:1,description:"A number between 0.0 and 1.0 (NOT a string, NOT a percentage)"}),ambiguityNotes:d.Optional(d.Array(d.String())),intentTension:d.Optional(hC)}),BNt=d.Object({agentId:d.String({minLength:1}),taskId:d.String({minLength:1}),context:d.Unknown(),outputSchemaRef:d.Literal("diagnostician-output-v1"),timeoutMs:d.Number({minimum:0})});an();var xN=["candidate","active","archived","deprecated","probation"],OH=d.Union([...xN.map(t=>d.Literal(t))]),DH=d.Union([d.Literal("P0"),d.Literal("P1"),d.Literal("P2")]),PH=d.Union([d.Literal("general"),d.Literal("domain"),d.Literal("scenario")]),LH=d.Union([d.Literal("manual_only"),d.Literal("deterministic"),d.Literal("weak_heuristic")]),NH=d.Union([d.Literal("proposed"),d.Literal("implemented"),d.Literal("enforced"),d.Literal("retired")]),MH=d.Union([d.Literal("hook"),d.Literal("gate"),d.Literal("skill"),d.Literal("lora"),d.Literal("test"),d.Literal("prompt")]),BH=d.Union([d.Literal("candidate"),d.Literal("active"),d.Literal("disabled"),d.Literal("archived")]),FH=d.Union([d.Literal("code"),d.Literal("skill"),d.Literal("lora"),d.Literal("test"),d.Literal("prompt")]),XLe=d.Union([d.Literal("pain-negative"),d.Literal("success-positive"),d.Literal("principle-anchor")]);an();var FNt=d.Object({kind:d.Union([d.Literal("owner"),d.Literal("ai_owner")]),id:d.String()}),UNt=d.Object({painId:d.String(),candidateId:d.String(),decision:d.Literal("reuse"),actor:FNt,reason:d.String(),decidedAt:d.String(),decisionId:d.Optional(d.String())}),UH=d.Object({id:d.String(),version:d.Number(),text:d.String(),coreAxiomId:d.Optional(d.String()),triggerPattern:d.String(),action:d.String(),status:OH,priority:DH,scope:PH,domain:d.Optional(d.String()),evaluability:LH,valueScore:d.Number(),adherenceRate:d.Number(),painPreventedCount:d.Number(),lastPainPreventedAt:d.Optional(d.String()),derivedFromPainIds:d.Array(d.String()),ruleIds:d.Array(d.String()),conflictsWithPrincipleIds:d.Array(d.String()),supersedesPrincipleId:d.Optional(d.String()),createdAt:d.String(),updatedAt:d.String(),deprecatedAt:d.Optional(d.String()),deprecatedReason:d.Optional(d.String()),compilationRetryCount:d.Optional(d.Number()),reuseEvidence:d.Optional(d.Array(UNt))}),QH=d.Object({id:d.String(),version:d.Number(),name:d.String(),description:d.String(),type:MH,triggerCondition:d.String(),enforcement:d.Union([d.Literal("block"),d.Literal("warn"),d.Literal("log")]),action:d.String(),principleId:d.String(),parentRuleId:d.Optional(d.String()),status:NH,coverageRate:d.Number(),falsePositiveRate:d.Number(),implementationPath:d.Optional(d.String()),testPath:d.Optional(d.String()),createdAt:d.String(),updatedAt:d.String()}),WH=d.Object({id:d.String(),ruleId:d.String(),type:FH,path:d.String(),version:d.String(),coversCondition:d.String(),coveragePercentage:d.Number(),lifecycleState:BH,previousActive:d.Optional(d.String()),disabledAt:d.Optional(d.String()),disabledBy:d.Optional(d.String()),disabledReason:d.Optional(d.String()),archivedAt:d.Optional(d.String()),createdAt:d.String(),updatedAt:d.String()});an();var ZLe=d.Object({principleId:d.String(),dependsOn:d.Array(d.String()),conflictedWith:d.Array(d.String()),supersedes:d.Array(d.String())});an();var $H=d.Object({principleId:d.String(),painPreventedCount:d.Number(),avgPainSeverityPrevented:d.Number(),lastPainPreventedAt:d.Optional(d.String()),totalOpportunities:d.Number(),adheredCount:d.Number(),violatedCount:d.Number(),implementationCost:d.Number(),benefitScore:d.Number(),calculatedAt:d.String()});an();var are=d.Union([d.Literal("principle_created"),d.Literal("principle_updated"),d.Literal("principle_promoted"),d.Literal("principle_deprecated"),d.Literal("rule_created"),d.Literal("rule_enforced"),d.Literal("rule_retired"),d.Literal("implementation_added"),d.Literal("value_metrics_updated")]),eNe=d.Object({ts:d.String(),type:are,data:d.Object({principleId:d.Optional(d.String()),ruleId:d.Optional(d.String()),implementationId:d.Optional(d.String()),reason:d.String(),metrics:d.Optional(d.Record(d.String(),d.Any()))})});an();var tNe=d.Object({principles:d.Record(d.String(),UH),rules:d.Record(d.String(),QH),implementations:d.Record(d.String(),WH),metrics:d.Record(d.String(),$H),lastUpdated:d.String()});an();var nNe=d.Object({ts:d.String(),tool:d.String(),path:d.String(),type:d.Union([d.Literal("memory"),d.Literal("plan"),d.Literal("other")]),contentLength:d.Number()}),rNe=d.Object({date:d.String(),persistenceCount:d.Number(),persistenceByFile:d.Record(d.String(),d.Number()),lastPersistenceTime:d.Optional(d.String()),totalCharsPersisted:d.Number(),groomingExecutedCount:d.Number(),lastGroomingTime:d.Optional(d.String())});function VI(t){return{date:t,persistenceCount:0,persistenceByFile:{},totalCharsPersisted:0,groomingExecutedCount:0}}an();Do();var sre=d.Union([d.Literal("tool_call"),d.Literal("pain_signal"),d.Literal("rule_promotion"),d.Literal("governance_action"),d.Literal("hook_execution"),d.Literal("gate_block"),d.Literal("gate_bypass"),d.Literal("evolution_task"),d.Literal("empathy_rollback"),d.Literal("error"),d.Literal("warn"),d.Literal("diagnosis_task"),d.Literal("heartbeat_diagnosis"),d.Literal("diagnostician_report"),d.Literal("principle_candidate"),d.Literal("rule_enforced"),d.Literal("rulehost_evaluated"),d.Literal("rulehost_blocked"),d.Literal("rulehost_requireApproval"),d.Literal("rulehost_auto_correct_proposed"),d.Literal("rulehost_auto_correct_applied"),d.Literal("runtime_v2_prompt_activations_injected"),d.Literal("rulehost_unhealthy"),d.Literal("rulehost_skipped"),d.Literal("trajectory_observability_failure")]),Vc=d.Union([d.Literal("success"),d.Literal("failure"),d.Literal("detected"),d.Literal("blocked"),d.Literal("bypassed"),d.Literal("approved"),d.Literal("enqueued"),d.Literal("completed"),d.Literal("promoted"),d.Literal("passed"),d.Literal("changed"),d.Literal("rolled_back"),d.Literal("written"),d.Literal("injected"),d.Literal("created"),d.Literal("matched"),d.Literal("evaluated"),d.Literal("requireApproval"),d.Literal("auto_correct")]),iNe=d.Object({ts:d.String(),date:d.String(),type:sre,category:Vc,sessionId:d.Optional(d.String()),workspaceDir:d.Optional(d.String()),data:d.Record(d.String(),d.Any())}),oNe=d.Object({toolName:d.String(),filePath:d.Optional(d.String()),error:d.Optional(d.String()),errorType:d.Optional(d.String()),gfi:d.Optional(d.Number()),consecutiveErrors:d.Optional(d.Number()),exitCode:d.Optional(d.Number()),gfiBefore:d.Optional(d.Number()),gfiAfter:d.Optional(d.Number()),runId:d.Optional(d.String()),toolCallId:d.Optional(d.String())}),aNe=d.Object({score:d.Number(),source:d.String(),eventId:d.Optional(d.String()),reason:d.Optional(d.String()),isRisky:d.Optional(d.Boolean()),origin:d.Optional(d.Union([d.Literal("assistant_self_report"),d.Literal("user_manual"),d.Literal("system_infer")])),severity:d.Optional(d.Union([d.Literal("mild"),d.Literal("moderate"),d.Literal("severe")])),confidence:d.Optional(d.Number()),detection_mode:d.Optional(d.Union([d.Literal("structured"),d.Literal("legacy_tag")])),deduped:d.Optional(d.Boolean()),trigger_text_excerpt:d.Optional(d.String()),raw_score:d.Optional(d.Number()),calibrated_score:d.Optional(d.Number())}),sNe=d.Object({fingerprint:d.String(),ruleId:d.String(),phrase:d.String(),sampleCount:d.Number(),avgSimilarity:d.Number()}),cre=d.Object({action:d.Union([d.Literal("deactivate"),d.Literal("promote"),d.Literal("global_pause")]),activationId:d.Optional(d.String({minLength:1})),subject:d.Optional(d.Literal("all_live_rulecode")),actor:d.Union([d.Literal("owner"),d.Literal("cli"),d.Literal("session")]),reasonCode:d.String({minLength:1,maxLength:200}),outcome:d.Literal("authorized")}),cNe=d.Object({hook:d.String(),sessionId:d.Optional(d.String()),durationMs:d.Optional(d.Number()),error:d.Optional(d.String())}),uNe=d.Object({toolName:d.String(),filePath:d.String(),reason:d.String(),blockSource:d.Optional(d.String())}),lNe=d.Object({toolName:d.String(),filePath:d.String(),bypassType:d.Union([d.Literal("stage4_architect"),d.Literal("whitelisted")])}),dNe=d.Object({taskId:d.String(),taskType:d.String(),reason:d.String()}),pNe=d.Object({eventId:d.String(),originalScore:d.Number(),originalSessionId:d.Optional(d.String()),reason:d.String(),triggeredBy:d.Union([d.Literal("user_command"),d.Literal("natural_language"),d.Literal("system")])}),fNe=d.Object({taskCount:d.Number(),taskIds:d.Array(d.String()),trigger:d.Union([d.Literal("heartbeat"),d.Literal("immediate")])}),mNe=d.Object({taskId:d.String(),painEventId:d.Optional(d.String()),sessionId:d.Optional(d.String())}),hNe=d.Object({taskId:d.String(),reportPath:d.String(),category:d.Union([d.Literal("success"),d.Literal("missing_json"),d.Literal("incomplete_fields")])}),gNe=d.Object({principleId:d.String(),taskId:d.String(),source:d.Union([d.Literal("diagnostician"),d.Literal("manual")])}),ANe=d.Object({ruleId:d.String(),principleId:d.String(),enforcement:d.Union([d.Literal("warn"),d.Literal("block"),d.Literal("requireApproval")]),toolName:d.String(),filePath:d.String()}),ure=d.Object({toolName:d.String(),filePath:d.String(),matched:d.Boolean(),decision:d.Union([d.Literal("allow"),d.Literal("block"),d.Literal("requireApproval"),d.Literal("auto_correct"),d.Literal("no_rules_armed"),d.Literal("evaluation_failed")]),ruleId:d.Optional(d.String()),activationId:d.Optional(d.String()),activationMode:d.Optional(d.Union([d.Literal("shadow"),d.Literal("live")]))});function lre(t){return it.Check(ure,t)}var yNe=d.Object({toolName:d.String(),filePath:d.String(),reason:d.String(),ruleId:d.Optional(d.String())}),_Ne=d.Object({toolName:d.String(),filePath:d.String(),reason:d.String(),ruleId:d.Optional(d.String())}),ENe=d.Object({toolName:d.String(),filePath:d.String(),ruleId:d.String(),principleId:d.Optional(d.String()),confidence:d.Number(),reason:d.String(),applicationMode:d.Union([d.Literal("shadow"),d.Literal("live")]),correctedFields:d.Array(d.String()),validationValid:d.Boolean()}),INe=d.Object({toolName:d.String(),filePath:d.String(),ruleId:d.String(),principleId:d.Optional(d.String()),confidence:d.Number(),reason:d.String(),correctedFields:d.Array(d.Object({field:d.String(),original:d.Unknown(),applied:d.Unknown()}))}),vNe=d.Object({sessionId:d.String(),workspaceDir:d.String(),principleIds:d.Array(d.String()),activationIds:d.Array(d.String()),artifactIds:d.Array(d.String()),injectedCount:d.Number(),skippedWarnings:d.Array(d.String()),injectedCharCount:d.Number(),budget:d.Number(),skipReason:d.Optional(d.String()),nextAction:d.Optional(d.String()),legacySelectedCount:d.Optional(d.Number()),legacyTotalChars:d.Optional(d.Number()),legacyTruncated:d.Optional(d.Boolean()),v2Truncated:d.Optional(d.Boolean()),crossBlockDuplicateIds:d.Optional(d.Array(d.String())),runId:d.Optional(d.String()),hostKind:d.Optional(d.Union([d.Literal("openclaw"),d.Literal("codex"),d.Literal("workbuddy")])),eventId:d.Optional(d.String()),selectionPolicy:d.Optional(d.Union([d.Literal("legacy_fifo_prefix_v1"),d.Literal("fair_rotation_v1")])),eligibleCount:d.Optional(d.Number()),rotationStartIndex:d.Optional(d.Number()),selectionRoundOrdinal:d.Optional(d.Number()),selectionRoundSource:d.Optional(d.Literal("session_user_turn_ordinal")),droppedActivationIds:d.Optional(d.Array(d.String(),{maxItems:16})),oversizedActivationIds:d.Optional(d.Array(d.String(),{maxItems:16})),budgetPolicyVersion:d.Optional(d.String()),budgetCapacitySource:d.Optional(d.Union([d.Literal("operator_declared"),d.Literal("host_effective_window"),d.Literal("pi_catalog_exact"),d.Literal("legacy_fallback")])),budgetCapacityStatus:d.Optional(d.Union([d.Literal("confirmed"),d.Literal("unknown")])),budgetContextWindowTokens:d.Optional(d.Number()),budgetFallbackReason:d.Optional(d.Union([d.Literal("host_capacity_absent"),d.Literal("host_capacity_source_untrusted"),d.Literal("host_capacity_invalid_value"),d.Literal("catalog_unavailable"),d.Literal("model_identity_absent"),d.Literal("catalog_no_exact_match"),d.Literal("catalog_no_match_for_model_id"),d.Literal("catalog_ambiguous_model_id"),d.Literal("catalog_provider_absent"),d.Literal("catalog_metadata_invalid")]))}),xNe=d.Object({activationId:d.String(),artifactId:d.String(),ruleId:d.String(),reason:d.String(),nextAction:d.String()}),wNe=d.Object({activationId:d.String(),artifactId:d.String(),ruleId:d.String(),mode:d.Optional(d.Union([d.Literal("shadow"),d.Literal("live")])),reason:d.String(),nextAction:d.String()}),bNe=d.Object({sessionId:d.Optional(d.String()),reason:d.String(),nextAction:d.String()}),dre=d.Object({total:d.Number(),success:d.Number(),failure:d.Number(),byTool:d.Record(d.String(),d.Object({success:d.Number(),failure:d.Number()}))}),pre=d.Object({total:d.Number(),byType:d.Record(d.String(),d.Number()),byTool:d.Record(d.String(),d.Number())}),fre=d.Object({totalEvents:d.Number(),dedupedCount:d.Number(),dedupeHitRate:d.Number(),totalPenaltyScore:d.Number(),rolledBackScore:d.Number(),rollbackCount:d.Number(),bySeverity:d.Object({mild:d.Number(),moderate:d.Number(),severe:d.Number()}),scoreBySeverity:d.Object({mild:d.Number(),moderate:d.Number(),severe:d.Number()}),byDetectionMode:d.Object({structured:d.Number(),legacy_tag:d.Number()}),byOrigin:d.Object({assistant_self_report:d.Number(),user_manual:d.Number(),system_infer:d.Number()}),confidenceDistribution:d.Object({high:d.Number(),medium:d.Number(),low:d.Number()}),dailyTrend:d.Array(d.Object({date:d.String(),count:d.Number(),score:d.Number()}))}),mre=d.Object({peak:d.Number(),samples:d.Number(),total:d.Number(),resetCount:d.Number(),hourlyDistribution:d.Array(d.Number())}),hre=d.Object({tasksEnqueued:d.Number(),tasksCompleted:d.Number(),rulesPromoted:d.Number(),diagnosisTasksWritten:d.Number(),heartbeatsInjected:d.Number(),diagnosticianReportsWritten:d.Number(),reportsMissingJson:d.Number(),reportsIncompleteFields:d.Number(),principleCandidatesCreated:d.Number(),rulesEnforced:d.Number(),rulehostEvaluated:d.Number(),rulehostBlocked:d.Number(),rulehostRequireApproval:d.Number(),rulehostAutoCorrectProposed:d.Number(),rulehostAutoCorrectApplied:d.Number()});var gre=d.Object({total:d.Number(),success:d.Number(),failure:d.Number(),byType:d.Record(d.String(),d.Object({total:d.Number(),success:d.Number(),failure:d.Number()})),errors:d.Number(),totalDurationMs:d.Number()}),SNe=d.Object({date:d.String(),createdAt:d.String(),updatedAt:d.String(),tools:d.Object({total:d.Number(),success:d.Number(),failure:d.Number()}),toolCalls:dre,errors:pre,empathy:fre,gfi:mre,evolution:hre,hooks:gre});function gC(t){let e=new Date().toISOString();return{date:t,createdAt:e,updatedAt:e,tools:{total:0,success:0,failure:0},toolCalls:{total:0,success:0,failure:0,byTool:{}},errors:{total:0,byType:{},byTool:{}},empathy:{totalEvents:0,dedupedCount:0,dedupeHitRate:0,totalPenaltyScore:0,rolledBackScore:0,rollbackCount:0,bySeverity:{mild:0,moderate:0,severe:0},scoreBySeverity:{mild:0,moderate:0,severe:0},byDetectionMode:{structured:0,legacy_tag:0},byOrigin:{assistant_self_report:0,user_manual:0,system_infer:0},confidenceDistribution:{high:0,medium:0,low:0},dailyTrend:[]},gfi:{peak:0,samples:0,total:0,resetCount:0,hourlyDistribution:new Array(24).fill(0)},evolution:{tasksEnqueued:0,tasksCompleted:0,rulesPromoted:0,diagnosisTasksWritten:0,heartbeatsInjected:0,diagnosticianReportsWritten:0,reportsMissingJson:0,reportsIncompleteFields:0,principleCandidatesCreated:0,rulesEnforced:0,rulehostEvaluated:0,rulehostBlocked:0,rulehostRequireApproval:0,rulehostAutoCorrectProposed:0,rulehostAutoCorrectApplied:0},hooks:{total:0,success:0,failure:0,byType:{},errors:0,totalDurationMs:0}}}an();var CNe=d.Union([d.Object({ts:d.String(),date:d.String(),type:d.Literal("tool_call"),category:Vc,sessionId:d.Optional(d.String()),workspaceDir:d.Optional(d.String()),data:d.Record(d.String(),d.Any())}),d.Object({ts:d.String(),date:d.String(),type:d.Literal("pain_signal"),category:Vc,sessionId:d.Optional(d.String()),workspaceDir:d.Optional(d.String()),data:d.Record(d.String(),d.Any())}),d.Object({ts:d.String(),date:d.String(),type:d.Literal("rule_promotion"),category:Vc,sessionId:d.Optional(d.String()),workspaceDir:d.Optional(d.String()),data:d.Record(d.String(),d.Any())}),d.Object({ts:d.String(),date:d.String(),type:d.Literal("governance_action"),category:Vc,sessionId:d.Optional(d.String()),workspaceDir:d.Optional(d.String()),data:cre}),d.Object({ts:d.String(),date:d.String(),type:d.Literal("hook_execution"),category:Vc,sessionId:d.Optional(d.String()),workspaceDir:d.Optional(d.String()),data:d.Record(d.String(),d.Any())}),d.Object({ts:d.String(),date:d.String(),type:d.Literal("gate_block"),category:Vc,sessionId:d.Optional(d.String()),workspaceDir:d.Optional(d.String()),data:d.Record(d.String(),d.Any())}),d.Object({ts:d.String(),date:d.String(),type:d.Literal("gate_bypass"),category:Vc,sessionId:d.Optional(d.String()),workspaceDir:d.Optional(d.String()),data:d.Record(d.String(),d.Any())}),d.Object({ts:d.String(),date:d.String(),type:d.Literal("evolution_task"),category:Vc,sessionId:d.Optional(d.String()),workspaceDir:d.Optional(d.String()),data:d.Record(d.String(),d.Any())}),d.Object({ts:d.String(),date:d.String(),type:d.Literal("empathy_rollback"),category:Vc,sessionId:d.Optional(d.String()),workspaceDir:d.Optional(d.String()),data:d.Record(d.String(),d.Any())}),d.Object({ts:d.String(),date:d.String(),type:d.Literal("error"),category:Vc,sessionId:d.Optional(d.String()),workspaceDir:d.Optional(d.String()),data:d.Record(d.String(),d.Any())}),d.Object({ts:d.String(),date:d.String(),type:d.Literal("warn"),category:Vc,sessionId:d.Optional(d.String()),workspaceDir:d.Optional(d.String()),data:d.Record(d.String(),d.Any())})]);an();var Are=d.Union([d.Literal("low"),d.Literal("medium"),d.Literal("high"),d.Literal("critical")]),kNe=d.Object({source:d.String({minLength:1}),score:d.Number({minimum:0,maximum:100}),timestamp:d.String({minLength:1}),reason:d.String({minLength:1}),sessionId:d.Optional(d.String()),agentId:d.Optional(d.String()),traceId:d.Optional(d.String()),triggerTextPreview:d.String(),version:d.Optional(d.String({default:"0.1.0"})),domain:d.String({default:"coding"}),severity:Are,context:d.Record(d.String(),d.Unknown())});var zI="_tree";an();var HH=d.Object({kind:d.Literal("every"),everyMs:d.Number({minimum:1e3})}),jH=d.Object({promptTemplate:d.String({minLength:1}),timeoutSeconds:d.Optional(d.Number({minimum:1})),lightContext:d.Optional(d.Boolean()),toolsAllow:d.Optional(d.Array(d.String({minLength:1})))}),GH=d.Object({mode:d.Union([d.Literal("none"),d.Literal("announce")]),channel:d.Optional(d.String({minLength:1})),to:d.Optional(d.String({minLength:1}))}),qH=d.Object({createdAtMs:d.Optional(d.Number({minimum:0})),lastSyncedAtMs:d.Optional(d.Number({minimum:0})),lastSyncedJobId:d.Optional(d.String({minLength:1})),lastSyncStatus:d.Optional(d.Union([d.Literal("ok"),d.Literal("error")])),lastSyncError:d.Optional(d.String({minLength:1})),consecutiveFailCount:d.Optional(d.Number({minimum:0})),lastFailedAtMs:d.Optional(d.Number({minimum:0})),autoDisabled:d.Optional(d.Boolean()),autoDisabledAt:d.Optional(d.Number({minimum:0})),autoDisabledReason:d.Optional(d.String({minLength:1})),lastTriggeredAtMs:d.Optional(d.Number({minimum:0})),lastTriggerStatus:d.Optional(d.Union([d.Literal("succeeded"),d.Literal("failed"),d.Literal("pending")]))}),yre=d.Object({id:d.String({minLength:1}),name:d.String({minLength:1}),description:d.String({minLength:1}),enabled:d.Boolean(),version:d.String({minLength:1}),schedule:HH,agentId:d.Optional(d.String({minLength:1})),execution:jH,delivery:GH,meta:d.Optional(qH)});an();var _re=d.Union([d.Literal("recorded-only"),d.Literal("evidence-only"),d.Literal("diagnosis-queued"),d.Literal("diagnosis-running"),d.Literal("diagnosis-succeeded"),d.Literal("diagnosis-failed"),d.Literal("diagnosis-retry-wait"),d.Literal("candidate-generated"),d.Literal("internalization-missing"),d.Literal("internalization-pending"),d.Literal("internalization-running"),d.Literal("internalization-failed"),d.Literal("internalization-succeeded"),d.Literal("owner-reviewable"),d.Literal("malformed"),d.Literal("degraded")]),Ere=d.Object({id:d.String(),sourceKind:d.String(),observedAt:d.String(),state:_re,summary:d.String(),admissionDecision:d.Optional(d.String()),linkedPainId:d.Optional(d.String()),linkedTaskId:d.Optional(d.String()),linkedTaskStatus:d.Optional(d.String()),linkedCandidateId:d.Optional(d.String()),linkedPrincipleId:d.Optional(d.String()),failureReason:d.Optional(d.String()),degradedReason:d.Optional(d.String()),nextAction:d.Optional(d.String()),candidateTitle:d.Optional(d.String()),candidateSummary:d.Optional(d.String()),rootCauseSummary:d.Optional(d.String()),confidence:d.Optional(d.Number()),recommendationKind:d.Optional(d.String()),internalizationTaskId:d.Optional(d.String()),dreamerTaskStatus:d.Optional(d.String()),canonicalPainId:d.Optional(d.String()),runtimeTaskId:d.Optional(d.String()),linkMode:d.Optional(d.Union([d.Literal("canonical"),d.Literal("legacy")])),intentTension:d.Optional(hC)}),TNe=d.Object({records:d.Array(Ere),generatedAt:d.String(),degradedReason:d.Optional(d.String()),nextAction:d.Optional(d.String()),note:d.Optional(d.String())});an();var aMt=d.Object({candidateId:d.String({minLength:1}),workspaceDir:d.String({minLength:1})}),sMt=d.Object({candidateId:d.String(),artifactId:d.String(),ledgerRef:d.String(),status:d.Literal("consumed")}),cMt=d.Object({id:d.String(),title:d.String(),text:d.String(),triggerPattern:d.Optional(d.String()),action:d.Optional(d.String()),status:d.Literal("probation"),evaluability:d.Literal("weak_heuristic"),sourceRef:d.String(),artifactRef:d.Optional(d.String()),taskRef:d.Optional(d.String()),createdAt:d.String()});function AC(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}var uMt=["title","text","triggerPattern","action","abstractedPrinciple"];function qm(t){if(!AC(t))return null;let e=!1;for(let n of uMt){let r=t[n];if(r!==void 0){if(typeof r!="string")return null;e=!0}}return e?t:null}var pa={CANDIDATE_NOT_FOUND:"candidate_not_found",CANDIDATE_ALREADY_CONSUMED:"candidate_already_consumed",ARTIFACT_NOT_FOUND:"artifact_not_found",LEDGER_WRITE_FAILED:"ledger_write_failed",INPUT_INVALID:"input_invalid",REUSE_CHECK_FAILED:"reuse_check_failed"},Qi=class extends Error{code;context;constructor(e,n,r){super(n),this.code=e,this.context=r,this.name="CandidateIntakeError"}};In();In();import{randomUUID as jMt}from"crypto";var RNe=new Set(["principle","rule","implementation","prompt","defer"]);function KH(t){return typeof t=="string"&&RNe.has(t)?t:"principle"}var lMt="principle";function Ire(t){return typeof t=="string"&&RNe.has(t)?t:null}function Km(t){return Ire(t)===lMt}function vre(t,e){let n=e.candidates.map(r=>({principleId:r.principleId,score:r.score,reasons:[r.similarityReason,...r.evidence.map(i=>`${i.field}: ${i.sharedTerms.slice(0,5).join("\u3001")}`)]}));return{candidateId:t,status:n.length>0?"pending":"no_candidates",candidates:n,eligibleCount:e.eligibleCount}}function xre(t){return t.status==="pending"}function ONe(t){if(t==null)return{ok:!1,reason:"decision_is_nullish"};if(typeof t!="object"||Array.isArray(t))return{ok:!1,reason:"decision_is_not_an_object"};let e=t,{decision:n}=e;if(n==="create")return{ok:!0,decision:{decision:"create"}};if(n!=="reuse")return{ok:!1,reason:`unknown_decision_value:${String(n)}`};let r=e.selectedPrincipleId;if(typeof r!="string"||r.length===0)return{ok:!1,reason:"reuse_without_principle_id"};let i=e.actor;if(typeof i!="object"||i===null||Array.isArray(i))return{ok:!1,reason:"reuse_actor_invalid"};let o=i;if(!(o.kind==="owner"||o.kind==="ai_owner")||typeof o.id!="string"||o.id.length===0)return{ok:!1,reason:"reuse_actor_invalid"};let{reason:a,decidedAt:s}=e;return typeof a!="string"||a.length===0?{ok:!1,reason:"reuse_reason_missing"}:typeof s!="string"||s.length===0||Number.isNaN(Date.parse(s))?{ok:!1,reason:"reuse_decidedAt_invalid"}:{ok:!0,decision:{decision:"reuse",selectedPrincipleId:r,actor:{kind:o.kind,id:o.id},reason:a,decidedAt:s}}}import{existsSync as FMt,readFileSync as UMt}from"fs";import*as vn from"fs";import*as jg from"path";import{randomUUID as EMt}from"node:crypto";Do();import{createHash as dMt}from"node:crypto";var wre=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,bre=/^sha256:[0-9a-f]{64}$/;function Gd(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function pc(t){return typeof t=="string"&&t.trim().length>0}var wN=class extends Error{constructor(e){super(e),this.name="RuleCandidateBindingCorruptionError"}};function DNe(t){let e=()=>{throw new wN("Malformed ruleCandidateBindings; preserve the ledger and repair from audited evidence.")};if(!Gd(t))return e();let n=Object.create(null),r=new Set,i=new Set;for(let[o,a]of Object.entries(t)){if(!pc(o)||!Gd(a)||a.candidateId!==o||!Array.isArray(a.revisions)||a.revisions.length===0)return e();let s=[];for(let[c,u]of a.revisions.entries()){if(!Gd(u)||u.revision!==c+1||!pc(u.decisionId)||!wre.test(u.decisionId)||r.has(u.decisionId)||!pc(u.requestId)||u.requestId.length>200||!["bind","revoke"].includes(String(u.action))||!pc(u.principleId)||!wre.test(u.principleId)||!pc(u.reason)||u.reason.length>2e3||!pc(u.decidedAt)||!Number.isFinite(Date.parse(u.decidedAt))||new Date(u.decidedAt).toISOString()!==u.decidedAt||!Gd(u.owner)||!pc(u.owner.actorId)||u.owner.source!=="authenticated_console"||typeof u.reviewedCandidateDigest!="string"||!bre.test(u.reviewedCandidateDigest)||typeof u.reviewedPrincipleDigest!="string"||!bre.test(u.reviewedPrincipleDigest))return e();let l=JSON.stringify([u.owner.actorId,u.requestId]);if(i.has(l))return e();let p=s.at(-1);if(u.action==="revoke"&&(!p||p.action!=="bind"||p.principleId!==u.principleId)||u.action==="bind"&&p?.action==="bind")return e();i.add(l),r.add(u.decisionId),s.push({...u,revision:c+1,decisionId:u.decisionId,requestId:u.requestId,action:u.action==="bind"?"bind":"revoke",principleId:u.principleId,reason:u.reason,decidedAt:u.decidedAt,owner:{...u.owner,actorId:u.owner.actorId,source:"authenticated_console"},reviewedCandidateDigest:u.reviewedCandidateDigest,reviewedPrincipleDigest:u.reviewedPrincipleDigest})}n[o]={...a,candidateId:o,revisions:s}}return n}function u0(t){let e=new Set,n=r=>{let i=typeof r;if(i==="boolean"||i==="string")return JSON.stringify(r);if(i==="number"){if(!Number.isFinite(r))throw new Error("Review snapshot is not finite JSON data.");return JSON.stringify(r)}if(i!=="object")throw new Error("Review snapshot is not finite JSON data.");if(!r)return JSON.stringify(r);if(e.has(r))throw new Error("Review snapshot is not finite JSON data.");e.add(r);let o;if(Array.isArray(r))o="["+r.map(n).join(",")+"]";else if(Gd(r)){let a=r;o="{"+Object.keys(a).sort().filter(s=>a[s]!==void 0).map(s=>JSON.stringify(s)+":"+n(a[s])).join(",")+"}"}else throw new Error("Review snapshot is not finite JSON data.");return e.delete(r),o};return"sha256:"+dMt("sha256").update(n(t)).digest("hex")}function bN(t,e,n){if(!Gd(t)||!Gd(t.candidate)||!Gd(t.task)||!Gd(t.run)||!Gd(t.artifact))return!1;let{candidate:r,task:i,run:o,artifact:a}=t,s=t.parentTask,c=i.taskKind==="diagnostician"?pc(i.inputRef):i.taskKind==="diag_router"&&Gd(s)&&pc(i.inputRef)&&s.taskId===i.inputRef&&s.taskKind==="diagnostician"&&s.status==="succeeded"&&pc(s.inputRef);if(!(r.candidateId===e&&r.rawRecommendationKind===n&&pc(r.taskId)&&r.taskId===i.taskId&&r.taskId===o.taskId&&r.taskId===a.taskId&&pc(r.sourceRunId)&&r.sourceRunId===o.runId&&r.sourceRunId===a.runId&&pc(r.artifactId)&&r.artifactId===a.artifactId&&c&&o.executionStatus==="succeeded"&&pc(r.sourceRecommendationJson)&&pc(a.contentJson)&&pc(o.outputPayload))||typeof r.sourceRecommendationJson!="string"||typeof a.contentJson!="string"||typeof o.outputPayload!="string")return!1;try{let l=JSON.parse(r.sourceRecommendationJson),p=JSON.parse(o.outputPayload),f=JSON.parse(a.contentJson);if(!it.Check(RH,l)||l.kind!==n||!it.Check(Jo,p)||!p.valid||!it.Check(Jo,f)||!f.valid)return!1;let m=u0(l);return p.recommendations.some(h=>u0(h)===m)&&f.recommendations.some(h=>u0(h)===m)}catch{return!1}}function YI(t,e){return!Gd(t)||e.status!=="resolved"?!1:t.candidateId===e.candidateId&&t.basis===e.basis&&t.principleId===e.principleId&&t.bindingRevision===e.bindingRevision&&t.decisionId===e.decisionId}function SN(t){return typeof t=="string"&&wre.test(t)}function Sre(t){return typeof t=="string"&&bre.test(t)}var pMt=["deterministic","weak_heuristic","manual_only"],fMt=["prompt_only","needs_training","in_training","deployed_pending_eval","internalized","regressed"];function Xo(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function yC(t){return Array.isArray(t)?t.filter(e=>typeof e=="string"):[]}function Cre(t,e){return typeof t!="number"||!Number.isFinite(t)?e.fallback:Math.max(e.min,Math.min(e.max,t))}function VH(t,e){return typeof t!="number"||!Number.isFinite(t)?e.fallback:Math.max(e.min,Math.min(e.max,Math.round(t)))}function Sf(t){return Array.from(new Set(t))}function mMt(t){if(!Xo(t))return{};let e={};for(let[n,r]of Object.entries(t))n===zI||!Xo(r)||r.principleId===n&&(e[n]={principleId:n,evaluability:pMt.includes(r.evaluability)?r.evaluability:"manual_only",applicableOpportunityCount:VH(r.applicableOpportunityCount,{min:0,max:1/0,fallback:0}),observedViolationCount:VH(r.observedViolationCount,{min:0,max:1/0,fallback:0}),complianceRate:Cre(r.complianceRate,{min:0,max:1,fallback:0}),violationTrend:Cre(r.violationTrend,{min:-1,max:1,fallback:0}),generatedSampleCount:VH(r.generatedSampleCount,{min:0,max:1/0,fallback:0}),approvedSampleCount:VH(r.approvedSampleCount,{min:0,max:1/0,fallback:0}),includedTrainRunIds:yC(r.includedTrainRunIds),deployedCheckpointIds:yC(r.deployedCheckpointIds),lastEvalScore:typeof r.lastEvalScore=="number"&&Number.isFinite(r.lastEvalScore)?Cre(r.lastEvalScore,{min:0,max:1,fallback:0}):void 0,internalizationStatus:fMt.includes(r.internalizationStatus)?r.internalizationStatus:"prompt_only"});return e}function hMt(t){if(!Xo(t))return{};let e={};for(let[n,r]of Object.entries(t))Xo(r)&&(e[n]={...r,id:n,ruleIds:yC(r.ruleIds),conflictsWithPrincipleIds:yC(r.conflictsWithPrincipleIds),derivedFromPainIds:yC(r.derivedFromPainIds)});return e}function gMt(t){if(!Xo(t))return{};let e={};for(let[n,r]of Object.entries(t))Xo(r)&&(e[n]={...r,id:n,principleId:typeof r.principleId=="string"?r.principleId:"",implementationIds:yC(r.implementationIds)});return e}function AMt(t){if(!Xo(t))return{};let e={};for(let[n,r]of Object.entries(t))!Xo(r)||typeof r.ruleId!="string"||(e[n]={...r,id:n,ruleId:r.ruleId});return e}function yMt(t){if(!Xo(t))return{};let e={};for(let[n,r]of Object.entries(t))Xo(r)&&(e[n]={...r,principleId:typeof r.principleId=="string"?r.principleId:n});return e}function _C(){return{principles:{},rules:{},implementations:{},metrics:{},lastUpdated:new Date(0).toISOString()}}function _Mt(t){return Xo(t)?{...t,...Object.hasOwn(t,"ruleCandidateBindings")?{ruleCandidateBindings:DNe(t.ruleCandidateBindings)}:{},principles:hMt(t.principles),rules:gMt(t.rules),implementations:AMt(t.implementations),metrics:yMt(t.metrics),lastUpdated:typeof t.lastUpdated=="string"?t.lastUpdated:new Date(0).toISOString()}:_C()}function PNe(t){if(!Xo(t))return{trainingStore:{},tree:_C()};let e=t.trainingStore??t,n=t[zI]??t.tree;return{trainingStore:mMt(e),tree:_Mt(n)}}function kre(t){return JSON.stringify({...t.trainingStore,[zI]:{...t.tree,lastUpdated:new Date().toISOString()}},null,2)}var IMt="principle_training_state.json",LNe=3,vMt=50;function MNe(t,e){let n=jg.dirname(t),r=vn.mkdtempSync(jg.join(n,".pd-write-")),i=jg.join(r,"tmp");try{vn.writeFileSync(i,e,{encoding:"utf8",mode:384});let o;for(let a=0;a<LNe;a++)try{vn.renameSync(i,t);return}catch(s){o=s;let{code:c}=s;if(c==="EPERM"||c==="EBUSY"||c==="EACCES"){if(a<LNe-1){let u=vMt*Math.pow(2,a),l=Date.now()+u;for(;Date.now()<l;)try{vn.accessSync(i)}catch{}}continue}break}throw o??new Error("atomicWriteFileSync: rename failed")}finally{try{vn.unlinkSync(i)}catch{}try{vn.rmdirSync(r)}catch{}}}function TN(t){return jg.join(t,IMt)}function JI(t){let e=TN(t);if(!vn.existsSync(e))return{ledger:{trainingStore:{},tree:_C()},availability:{status:"empty"}};try{let n=vn.readFileSync(e,"utf-8");if(!n||n.trim()==="")return{ledger:{trainingStore:{},tree:_C()},availability:{status:"empty"}};let r=JSON.parse(n);return{ledger:PNe(r),availability:{status:"ok"}}}catch(n){return{ledger:{trainingStore:{},tree:_C()},availability:{status:"unreadable",problem:n instanceof Error?n.message:String(n),...n instanceof wN?{corrupt:!0}:{}}}}}var zH=class extends Error{filePath;lockPath;constructor(e,n,r){super(e),this.name="LockAcquisitionError",this.filePath=n,this.lockPath=r}},BNe={maxRetries:50,baseRetryDelayMs:10,maxRetryDelayMs:500,lockStaleMs:1e4,lockSuffix:".lock"};function FNe(t){try{return process.kill(t,0),!0}catch{return!1}}function xMt(t){return typeof t=="object"&&t!==null&&Object.hasOwn(t,"code")}function NNe(t,e){try{let n=jg.dirname(t);vn.existsSync(n)||vn.mkdirSync(n,{recursive:!0});let r=vn.constants.O_WRONLY|vn.constants.O_CREAT|vn.constants.O_EXCL,i=vn.openSync(t,r,384);return vn.writeSync(i,String(e)),vn.fsyncSync(i),vn.closeSync(i),!0}catch(n){if(xMt(n)&&n.code==="EEXIST")return!1;throw n}}function CN(t){try{let e=vn.readFileSync(t,"utf8"),n=parseInt(e.trim(),10);return Number.isNaN(n)?null:n}catch{return null}}function wMt(t,e){try{CN(t)===e&&vn.unlinkSync(t)}catch{}}function bMt(t,e){try{let n=CN(t);if(n===null||!FNe(n))try{return vn.unlinkSync(t),!0}catch{return!1}return!1}catch{return!1}}function UNe(t,e,n){let r=Math.min(e*Math.pow(2,t),n),i=r*.2*Math.random();return Math.floor(r+i)}function SMt(t){if(t<=0)return;let e=new Int32Array(new SharedArrayBuffer(4));Atomics.wait(e,0,0,t)}function QNe(t,e,n){let r=t+e.lockSuffix;return NNe(r,n)&&CN(r)===n?{lockPath:r,pid:n,acquiredAt:Date.now()}:(bMt(r,e.lockStaleMs),NNe(r,n)&&CN(r)===n?{lockPath:r,pid:n,acquiredAt:Date.now()}:null)}function WNe(t,e){let n=t+e.lockSuffix,r=CN(n),i=r!==null?FNe(r)?`alive (PID ${r})`:`dead (PID ${r})`:"unknown";return new zH(`Failed to acquire lock for ${t}. Lock holder: ${i}.`,t,n)}function CMt(t,e={}){let n={...BNe,...e},{pid:r}=process;for(let i=0;i<n.maxRetries;i++){let o=QNe(t,n,r);if(o)return o;i<n.maxRetries-1&&SMt(UNe(i,n.baseRetryDelayMs,n.maxRetryDelayMs))}throw WNe(t,n)}async function kMt(t,e={}){let n={...BNe,...e},{pid:r}=process;for(let i=0;i<n.maxRetries;i++){let o=QNe(t,n,r);if(o)return o;i<n.maxRetries-1&&await new Promise(a=>setTimeout(a,UNe(i,n.baseRetryDelayMs,n.maxRetryDelayMs)))}throw WNe(t,n)}function $Ne(t){wMt(t.lockPath,t.pid)}function TMt(t,e,n){let r=CMt(t,n);try{return e()}finally{$Ne(r)}}async function RMt(t,e,n){let r=await kMt(t,n);try{return await e()}finally{$Ne(r)}}var kN=class extends Error{filePath;constructor(e,n){super(e),this.name="LedgerIntegrityError",this.filePath=n}};function Cf(t,e){let n=TN(t);return TMt(n,()=>{let r=JI(t);if(r.availability.status==="unreadable")throw new kN(`ledger_unavailable (refusing empty principles tree fallback): ${r.availability.problem}`,n);let i=r.ledger,o=e(i),a=jg.dirname(n);return vn.existsSync(a)||vn.mkdirSync(a,{recursive:!0}),MNe(n,kre(i)),o})}function Bn(t){return JI(t).ledger}function EC(t,e){return Cf(t,n=>(n.tree.principles[e.id]=e,n.tree.lastUpdated=new Date().toISOString(),e))}function Gg(t,e,n){return Cf(t,r=>{let i=r.tree.principles[e];if(!i)throw new Error(`Cannot update missing principle "${e}".`);let o={...i,...n,id:e,ruleIds:n.ruleIds?Sf(n.ruleIds):i.ruleIds,conflictsWithPrincipleIds:n.conflictsWithPrincipleIds?Sf(n.conflictsWithPrincipleIds):i.conflictsWithPrincipleIds,derivedFromPainIds:n.derivedFromPainIds?Sf(n.derivedFromPainIds):i.derivedFromPainIds};return r.tree.principles[e]=o,o})}var OMt=["painId","candidateId","decision","actor","reason","decidedAt","decisionId"];function Tre(t){let e=n=>{throw new Error(`appendReuseEvidence: malformed reuse evidence entry (${n}) \u2014 refusing to write (fail closed).`)};if(!Xo(t))return e(`expected an object, got ${typeof t}`);for(let n of Object.keys(t))OMt.includes(n)||e(`unknown field "${n}"`);if((typeof t.painId!="string"||t.painId.trim()==="")&&e("painId must be a non-empty string"),(typeof t.candidateId!="string"||t.candidateId.trim()==="")&&e("candidateId must be a non-empty string"),t.decision!=="reuse"&&e('decision must be exactly "reuse"'),!Xo(t.actor))return e("actor must be an object");t.actor.kind!=="owner"&&t.actor.kind!=="ai_owner"&&e('actor.kind must be "owner" or "ai_owner"'),(typeof t.actor.id!="string"||t.actor.id.trim()==="")&&e("actor.id must be a non-empty string"),(typeof t.reason!="string"||t.reason.trim()==="")&&e("reason must be a non-empty string"),(typeof t.decidedAt!="string"||t.decidedAt.trim()===""||Number.isNaN(Date.parse(t.decidedAt)))&&e("decidedAt must be a parseable date string"),t.decisionId!==void 0&&(typeof t.decisionId!="string"||t.decisionId.trim()==="")&&e("decisionId, when present, must be a non-empty string")}function HNe(t,e,n){Tre(n);let r=TN(t),i=vn.existsSync(r)?vn.statSync(r):null;return Cf(t,o=>{if(i!==null&&Object.keys(o.tree.principles).length===0)throw new kN(`Ledger file ${r} exists (${i.size} bytes) but parsed to an empty principles tree \u2014 the file is likely corrupt or truncated. Refusing to append reuse evidence, because the save below would replace the ledger with this write alone. Restore the ledger file first (fail closed).`,r);let a=o.tree.principles[e];if(!a)throw new Error(`Cannot append reuse evidence: principle "${e}" does not exist in the ledger.`);let s=a.reuseEvidence;if(s!==void 0&&!Array.isArray(s))throw new kN(`Principle "${e}" has a malformed reuseEvidence field (expected an array, got ${typeof s}). Refusing to append \u2014 fix or restore the ledger entry first (fail closed).`,r);let c=s??[];if(c.some(l=>Xo(l)&&l.candidateId===n.candidateId))return{principleId:e,reuseEvidence:c,appended:!1};let u=[...c,n];return a.reuseEvidence=u,{principleId:e,reuseEvidence:u,appended:!0}})}function RN(t,e,n){return Cf(t,r=>{let i={...n,principleId:e};return r.tree.metrics[e]=i,i})}function Rre(t){return TN(t)}function Ore(t,e){return Cf(t,n=>{let r=n.tree.principles[e.principleId];if(!r)throw new Error(`Cannot create rule "${e.id}" for missing principle "${e.principleId}".`);if(Object.hasOwn(n.tree.rules,e.id))throw new Error(`Cannot create rule "${e.id}": it already exists. Use updateRule instead.`);let i={...e,implementationIds:Sf(e.implementationIds)};return n.tree.rules[i.id]=i,r.ruleIds=Sf([...r.ruleIds,i.id]),i})}function Dre(t,e){return Cf(t,n=>{let r=n.tree.rules[e.ruleId];if(!r)throw new Error(`Cannot create implementation "${e.id}" for missing rule "${e.ruleId}".`);if(Object.hasOwn(n.tree.implementations,e.id))throw new Error(`Cannot create implementation "${e.id}": it already exists. Use updateImplementation instead.`);return n.tree.implementations[e.id]=e,r.implementationIds=Sf([...r.implementationIds,e.id]),e})}function Pre(t,e,n){return Cf(t,r=>{let i=r.tree.rules[e];if(!i)throw new Error(`Cannot update missing rule "${e}".`);let o=n.principleId??i.principleId,a=r.tree.principles[o];if(!a)throw new Error(`Cannot move rule "${e}" to missing principle "${o}".`);let s={...i,...n,id:e,principleId:o,implementationIds:n.implementationIds?Sf(n.implementationIds):i.implementationIds};if(i.principleId!==o){let c=r.tree.principles[i.principleId];c&&(c.ruleIds=c.ruleIds.filter(u=>u!==e)),a.ruleIds=Sf([...a.ruleIds,e])}return r.tree.rules[e]=s,s})}function Lre(t,e){return Cf(t,n=>{let r=n.tree.rules[e];if(!r)return;let i=n.tree.principles[r.principleId];i&&(i.ruleIds=i.ruleIds.filter(a=>a!==e));let o=Sf([...r.implementationIds,...Object.values(n.tree.implementations).filter(a=>a.ruleId===e).map(a=>a.id)]);for(let a of o)delete n.tree.implementations[a];return delete n.tree.rules[e],r})}function l0(t,e,n){return Cf(t,r=>{let i=r.tree.implementations[e];if(!i)throw new Error(`Cannot update missing implementation "${e}".`);let o=n.ruleId??i.ruleId,a=r.tree.rules[o];if(!a)throw new Error(`Cannot move implementation "${e}" to missing rule "${o}".`);let s={...i,...n,id:e,ruleId:o};if(i.ruleId!==o){let c=r.tree.rules[i.ruleId];c&&(c.implementationIds=c.implementationIds.filter(u=>u!==e)),a.implementationIds=Sf([...a.implementationIds,e])}return r.tree.implementations[e]=s,s})}function jNe(t,e){let n=Bn(t),r=n.tree.rules[e];return r?r.implementationIds.map(i=>n.tree.implementations[i]).filter(i=>i!==void 0):[]}function Nre(t,e){let n=Bn(t),r=n.tree.principles[e];if(r)return{principle:r,rules:r.ruleIds.map(i=>n.tree.rules[i]).filter(i=>i!==void 0).map(i=>({rule:i,implementations:i.implementationIds.map(o=>n.tree.implementations[o]).filter(o=>o!==void 0)}))}}var GNe={candidate:["active","archived"],active:["disabled","archived"],disabled:["active","archived"],archived:[]};function qNe(t,e){return GNe[t]?.includes(e)??!1}function YH(t){return GNe[t]??[]}function qd(t,e,n){return Cf(t,r=>{let i=r.tree.implementations[e];if(!i)throw new Error(`Implementation not found: ${e}`);let o=i.lifecycleState??"candidate";if(!qNe(o,n)){let s=YH(o);throw new Error(`Invalid lifecycle transition: ${o} -> ${n}. Allowed: ${s.length>0?s.join(", "):"none (terminal state)"}`)}let a={...i,lifecycleState:n,updatedAt:new Date().toISOString()};return r.tree.implementations[e]=a,a})}function Mre(t,e){return jNe(t,e).find(r=>r.lifecycleState==="active")??null}function JH(t,e){Cf(t,n=>{e(n.trainingStore)})}function Ms(t){return{ok:!1,reason:t,nextAction:"Reload the binding review; preserve existing evidence and resolve the reported conflict before retrying."}}async function KNe(t,e){if(!SN(t.id)||!["candidate","probation","active"].includes(t.status)||!Array.isArray(t.derivedFromPainIds)||t.derivedFromPainIds.length===0)return!1;for(let n of t.derivedFromPainIds){let r=await e.loadCandidateMaterial(n);if(!bN(r,n,"principle"))return!1}return!0}async function VNe(t,e,n){let{sources:r}=n,i=JI(t);if(i.availability.status==="unreadable")return Ms(i.availability.corrupt?"ledger_corrupt":"ledger_unavailable");let o=Object.hasOwn(i.ledger.tree.ruleCandidateBindings??{},e)?i.ledger.tree.ruleCandidateBindings?.[e]?.revisions.at(-1)??null:null;try{let a;try{a=await r.loadCandidateMaterial(e)}catch(l){if(o?.action!=="bind")throw l}if(o?.action==="bind"&&!bN(a,e,"rule"))return{ok:!0,candidateId:e,candidateMaterial:{candidate:null,task:null,run:null,artifact:null},reviewedCandidateDigest:o.reviewedCandidateDigest,currentRevision:o.revision,currentBinding:o,eligibleTargets:[]};if(!a)return Ms("candidate_missing");if(!bN(a,e,"rule"))return Ms("candidate_ineligible");if(o?.action==="bind")return{ok:!0,candidateId:e,candidateMaterial:a,reviewedCandidateDigest:o.reviewedCandidateDigest,currentRevision:o.revision,currentBinding:o,eligibleTargets:[]};let s=[],c=Math.max(1,Math.min(20,Number.isInteger(n.limit)?n.limit??20:20)),u=(n.search??"").trim().toLowerCase();for(let l of Object.values(i.ledger.tree.principles))if(!(u&&!l.id.toLowerCase().includes(u)&&!(typeof l.text=="string"&&l.text.toLowerCase().includes(u)))&&(await KNe(l,r)&&s.push({principle:l,reviewedPrincipleDigest:u0(l)}),s.length>=c))break;return{ok:!0,candidateId:e,candidateMaterial:a,reviewedCandidateDigest:u0(a),currentRevision:o?.revision??0,currentBinding:o,eligibleTargets:s}}catch{return Ms("review_source_unavailable")}}async function zNe(t,e,n){let r=TN(t);try{return await RMt(r,async()=>{let i=JI(t);if(i.availability.status==="unreadable")return Ms(i.availability.corrupt?"ledger_corrupt":"ledger_unavailable");if(!Xo(e)||typeof e.candidateId!="string"||!e.candidateId.trim()||["__proto__","constructor","prototype"].includes(e.candidateId)||!Xo(e.owner)||typeof e.owner.actorId!="string"||!e.owner.actorId.trim()||e.owner.source!=="authenticated_console"||!Xo(e.request))return Ms("invalid_request");let{request:o}=e,a=o.action==="bind"?["action","principleId","expectedRevision","expectedCandidateDigest","expectedPrincipleDigest","reason","requestId","resumeOnce"]:["action","expectedRevision","reason","requestId","resumeOnce"];if(Object.keys(o).some(I=>!a.includes(I))||!["bind","revoke"].includes(o.action)||!Number.isInteger(o.expectedRevision)||o.expectedRevision<0||typeof o.reason!="string"||!o.reason.trim()||o.reason.length>2e3||typeof o.requestId!="string"||!o.requestId.trim()||o.requestId.length>200||o.action==="bind"&&(o.resumeOnce!==!0||!SN(o.principleId)||!Sre(o.expectedCandidateDigest)||!Sre(o.expectedPrincipleDigest))||o.action==="revoke"&&o.resumeOnce!==!1)return Ms("invalid_request");let s=i.ledger.tree.ruleCandidateBindings??{},c=Object.hasOwn(s,e.candidateId)?s[e.candidateId]:void 0,u=c?.revisions.at(-1),l=(I,b)=>({ok:!0,status:b,binding:I,runtimeDeactivated:!1,inFlightOperationsMayComplete:!0});for(let I of Object.values(s))for(let b of I.revisions){if(b.owner.actorId!==e.owner.actorId||b.requestId!==o.requestId)continue;return I.candidateId===e.candidateId&&b.action===o.action&&b.reason===o.reason&&b.revision-1===o.expectedRevision&&(o.action!=="bind"||b.principleId===o.principleId&&b.reviewedCandidateDigest===o.expectedCandidateDigest&&b.reviewedPrincipleDigest===o.expectedPrincipleDigest)?l(b,b.action==="bind"?"already_bound":"already_revoked"):Ms("idempotency_conflict")}if((u?.revision??0)!==o.expectedRevision)return Ms("stale_revision");let p,f,m;if(o.action==="revoke"){if(!u)return Ms("binding_missing");if(u.action==="revoke")return l(u,"already_revoked");({principleId:p,reviewedCandidateDigest:f,reviewedPrincipleDigest:m}=u)}else{let I=await n.loadCandidateMaterial(e.candidateId);if(!I)return Ms("candidate_missing");if(!bN(I,e.candidateId,"rule"))return Ms("candidate_ineligible");let b=Object.hasOwn(i.ledger.tree.principles,o.principleId)?i.ledger.tree.principles[o.principleId]:void 0;if(!b)return Ms("target_missing");if(!await KNe(b,n))return Ms("target_ineligible");if(f=u0(I),m=u0(b),o.expectedCandidateDigest!==f||o.expectedPrincipleDigest!==m)return Ms("stale_digest");if(p=b.id,u?.action==="bind")return u.principleId===p?l(u,"already_bound"):Ms("binding_conflict")}let h={revision:(u?.revision??0)+1,decisionId:EMt(),requestId:o.requestId,action:o.action,principleId:p,reason:o.reason,decidedAt:new Date().toISOString(),owner:{actorId:e.owner.actorId,source:"authenticated_console"},reviewedCandidateDigest:f,reviewedPrincipleDigest:m},g={...c??{},candidateId:e.candidateId,revisions:[...c?.revisions??[],h]},_=Object.fromEntries([...Object.entries(s),[e.candidateId,g]]);i.ledger.tree.ruleCandidateBindings=_;let y=jg.dirname(r);return vn.existsSync(y)||vn.mkdirSync(y,{recursive:!0}),MNe(r,kre(i.ledger)),l(h,h.action==="bind"?"bound":"revoked")})}catch{return Ms("binding_write_unavailable")}}var DMt=[{from:"text",to:"text",weight:3},{from:"action",to:"action",weight:3},{from:"triggerPattern",to:"triggerPattern",weight:2},{from:"text",to:"action",weight:1},{from:"action",to:"text",weight:1}],PMt=new Set(["\u7684","\u4E86","\u662F","\u5728","\u548C","\u4E0E","\u6216","\u53CA","\u5BF9","\u4E3A","\u4EE5","\u7B49","\u4E2D","\u4E0A","\u4E0B","\u65F6","\u540E","\u524D","\u5C06","\u88AB","\u628A","\u5C31","\u90FD","\u4E5F","\u800C","\u4F46","\u5E76","\u4E0D","\u6709","\u65E0","\u4E00","\u4E2A","\u8FD9","\u90A3","\u5176","\u4E4B","\u6240","\u4F7F","\u7531","\u5982","\u82E5","\u5219","\u4E8E","\u4ECE","\u5230","\u5411","\u518D","\u66F4","\u6700","\u5F88","\u4F1A","\u80FD","\u5E94","\u987B","\u8981","\u53EF","\u4E2A","\u79CD","\u4E9B","\u4E4B","\u8005","\u6B64","\u8BE5","\u67D0"]),LMt=/[㐀-䶿一-鿿]/;function NMt(t){return LMt.test(t)}function IC(t){let e=t.normalize("NFKC").toLowerCase(),n=[],r="",i="",o=()=>{r.length>=2&&n.push(r),r=""},a=()=>{if(i.length===1)n.push(i);else for(let c=0;c+1<i.length;c++)n.push(i.slice(c,c+2));i=""};for(let c of e)NMt(c)?(o(),i+=c):/[a-z0-9]/.test(c)?(a(),r+=c):(o(),a());o(),a();let s=new Set(n);for(let c of PMt)s.delete(c);return[...s].sort()}function MMt(t,e){let n=[];for(let r of t)e.has(r)&&n.push(r);return n.sort()}function BMt(t,e,n=8){let r={text:new Set(IC(t.text)),triggerPattern:new Set(IC(t.triggerPattern)),action:new Set(IC(t.action))},i={text:new Set(IC(e.text)),triggerPattern:new Set(IC(e.triggerPattern)),action:new Set(IC(e.action))},o=[],a=0,s=0;for(let p of DMt){let f=r[p.from],m=i[p.to],h=Math.min(f.size,m.size);if(h===0)continue;s+=p.weight;let g=MMt(f,m);if(g.length===0)continue;let _=g.length/h;a+=p.weight*_;let y=p.from===p.to?p.from:`${p.from}~${p.to}`;o.push({field:y,sharedTerms:g.slice(0,n),coverage:_})}if(o.length===0||s===0)return null;let c=a/s,[u]=o.slice().sort((p,f)=>f.coverage-p.coverage||p.field.localeCompare(f.field)),l=u?`shares ${u.sharedTerms.slice(0,5).join("\u3001")} on ${u.field} (coverage ${(u.coverage*100).toFixed(0)}%)`:"no field overlap";return{principleId:e.id,principleText:e.text,score:c,evidence:o,similarityReason:l}}function YNe(t,e,n={}){let r=n.topK??3,i=n.minScore??.15,o=n.maxEvidenceTerms??8,a=[];for(let s of e){let c=BMt(t,s,o);c&&c.score>=i&&a.push(c)}return a.sort((s,c)=>c.score-s.score||s.principleId.localeCompare(c.principleId)),{candidates:a.slice(0,r),eligibleCount:e.length,consideredCount:a.length,candidateKindEligible:!0}}var QMt=new Set(["active","candidate","probation"]);function WMt(t){return typeof t!="string"||!xN.includes(t)?!1:QMt.has(t)}function $Mt(t){let e=Rre(t);if(!FMt(e))return;let n=UMt(e,"utf-8");n.trim()!==""&&JSON.parse(n)}function HMt(t){if(!AC(t))return null;let{id:e,text:n,triggerPattern:r,action:i,status:o}=t;return typeof e!="string"||e.length===0?null:{id:e,text:typeof n=="string"?n:"",triggerPattern:typeof r=="string"?r:"",action:typeof i=="string"?i:"",status:typeof o=="string"?o:""}}function Bre(t){$Mt(t);let e=Bn(t),n=Object.values(e.tree.principles),r=[];for(let i of n){let o=HMt(i);o&&WMt(o.status)&&r.push(o)}return r}function Fre(t,e,n={}){let{recommendationKind:r,...i}=n;return r!==void 0&&!Km(r)?{candidates:[],eligibleCount:0,consideredCount:0,candidateKindEligible:!1}:YNe(t,Bre(e),i)}function XH(t){if(!AC(t))return null;let e=t.description;return typeof e!="string"?null:{text:e}}function GMt(t){if(!AC(t))return null;if(Object.hasOwn(t,"recommendation")){let r=t.recommendation,i=qm(r);if(i)return i;let o=XH(r);if(o)return qm(o)}if(Object.hasOwn(t,"recommendations")){let r=t.recommendations;if(Array.isArray(r)&&r.length>0){let[i]=r,o=qm(i);if(o)return o;let a=XH(i);if(a)return qm(a)}}let e=qm(t);if(e)return e;let n=XH(t);return n?qm(n):null}function JNe(t,e){let{candidateId:n}=t,r=t.sourceRecommendationJson;if(r&&r.trim()!=="")try{let i=JSON.parse(r),o=qm(i);if(o)return{ok:!0,recommendation:o};let a=XH(i),s=a?qm(a):null;if(s)return{ok:!0,recommendation:s}}catch(i){let o=i instanceof Error?i.message:String(i);console.warn(`[CandidateIntakeService] sourceRecommendationJson parse failed for candidate ${n}: ${o}. Falling back to artifact.contentJson.`)}if(!e)return{ok:!1,error:new Qi(pa.INPUT_INVALID,`Cannot extract recommendation for candidate ${n}: no artifact content available`,{candidateId:n})};try{let i=JSON.parse(e.contentJson),o=GMt(i);return o?{ok:!0,recommendation:o}:{ok:!1,error:new Qi(pa.INPUT_INVALID,`Failed to parse artifact content for candidate ${n}: contentJson is not a valid recommendation object`,{candidateId:n})}}catch(i){return i instanceof Qi?{ok:!1,error:i}:{ok:!1,error:new Qi(pa.INPUT_INVALID,`Failed to parse artifact content for candidate ${n}: ${i instanceof Error?i.message:String(i)}`,{candidateId:n,cause:i})}}}var vC=class{#e;#t;#n;#r;#o;constructor(e){if(e.reuseDecision&&e.reuseRecommendation)throw new Qi(pa.REUSE_CHECK_FAILED,"reuseDecision and reuseRecommendation are mutually exclusive. nextAction: supply reuseRecommendation for automatic intake or reuseDecision for Owner decisions, never both.",{reason:"reuse_gate_misconfigured"});this.#e=e.stateManager,this.#t=e.ledgerAdapter,this.#n=e.reuseDecision,this.#r=e.reuseRecommendation,this.#o=e.reuseStateDir}async#i(e,n){let r=this.#r;if(!r)return{status:"unavailable",reason:"reuse recommendation hook is not configured"};try{return await r(e,n)}catch(i){return{status:"unavailable",reason:i instanceof Error?i.message:String(i)}}}async intake(e){return this.#s(e,!1)}get reuseReviewEnabled(){return this.#r!==void 0&&!this.#n}async reviewReuse(e){return this.reuseReviewEnabled?this.#s(e,!0):null}async#s(e,n){if(!e||typeof e!="string"||e.trim()==="")throw new Qi(pa.INPUT_INVALID,"candidateId must be a non-empty string",{candidateId:e});let r=this.#t.existsForCandidate(e);if(r)return{outcome:"ledger_entry",written:!1,entry:r};let i=this.#t.findReuseResolutionForCandidate(e);if(i)return{outcome:"refused",reason:"reuse_selected",candidateId:e,rawRecommendationKind:null,message:`Candidate ${e} was already resolved into existing Principle ${i.principleId} by a recorded reuse decision; the decision was NOT asked again and no new Principle was created (INV-R07 replay).`,selectedPrincipleId:i.principleId,reuseEvidence:i.evidence};let o=await this.#e.getCandidate(e);if(!o)throw new Qi(pa.CANDIDATE_NOT_FOUND,`Candidate ${e} not found`,{candidateId:e});if(!Km(o.rawRecommendationKind)){let m=Ire(o.rawRecommendationKind)===null?"unknown_kind":"non_principle_kind",h=typeof o.rawRecommendationKind=="string"?o.rawRecommendationKind:null;return{outcome:"refused",reason:m,candidateId:e,rawRecommendationKind:h,message:m==="non_principle_kind"?`Candidate ${e} has recommendation_kind '${h}' which does not target the Principle Ledger; ledger write refused (existing routing/defer handling preserved).`:`Candidate ${e} has an unrecognized recommendation_kind (${h===null?"absent":`'${h}'`}); Principle Ledger write refused fail-closed.`}}let a=await this.#e.getArtifact(o.artifactId);if(!a)throw new Qi(pa.ARTIFACT_NOT_FOUND,`Artifact ${o.artifactId} not found for candidate ${e}`,{candidateId:e,artifactId:o.artifactId});let s=JNe(o,a);if(!s.ok)throw s.error;let c=s.recommendation;if(this.#n&&!this.#o)throw new Qi(pa.REUSE_CHECK_FAILED,`Reuse gate is misconfigured: reuseDecision was provided without reuseStateDir; no Principle was created for candidate ${e}. nextAction: pass reuseStateDir, or remove reuseDecision to disable the gate.`,{candidateId:e,reason:"reuse_gate_misconfigured"});if(this.#r&&!this.#o)throw new Qi(pa.REUSE_CHECK_FAILED,`Reuse gate is misconfigured: reuseRecommendation was provided without reuseStateDir; no Principle was created for candidate ${e}. nextAction: pass reuseStateDir, or remove reuseRecommendation to disable the gate.`,{candidateId:e,reason:"reuse_gate_misconfigured"});let u="not_configured",l;if((this.#n||this.#r)&&this.#o){let f={text:c.text||o.description||"",triggerPattern:c.triggerPattern??"",action:c.action??""},m;try{m=vre(e,Fre(f,this.#o,{recommendationKind:o.rawRecommendationKind}))}catch(h){throw new Qi(pa.REUSE_CHECK_FAILED,`Reuse check could not be completed for candidate ${e}; no Principle was created. Cause: ${h instanceof Error?h.message:String(h)}`,{candidateId:e,cause:h})}if(xre(m)){if(this.#r&&!this.#n){let h=await this.#i(f,m);if(l=h,h.status==="recommended"){let{recommendation:g,selectedPrincipleId:_,confidence:y}=h;if(g==="reuse"&&_!==void 0&&m.candidates.some(I=>I.principleId===_))return{outcome:"refused",reason:"reuse_pending_owner",candidateId:e,rawRecommendationKind:typeof o.rawRecommendationKind=="string"?o.rawRecommendationKind:null,message:`Candidate ${e} is a suspected duplicate of existing Principle ${_} (semantic reuse recommendation, confidence ${y}). No Principle was created and no evidence was written; the candidate stays PENDING for the Owner. nextAction: pd candidate review --candidate-id ${e} --decide reuse|create --reason "..."`,reuseProposal:m,reuseRecommendation:h};g==="reuse"&&(l={status:"unavailable",reason:`reuse selection ${_===void 0?"(absent)":_} is not in the proposal (hallucinated id treated as unavailable per SPEC v0.3.3)`})}u="recommended_create"}else if(this.#n){let h;try{let g=this.#n(m),_=ONe(g);if(!_.ok)throw new Qi(pa.REUSE_CHECK_FAILED,`Reuse decision for candidate ${e} is not a valid reuse|create decision (${_.reason}); no Principle was created.`,{candidateId:e,reason:_.reason});({decision:h}=_)}catch(g){throw g instanceof Qi?g:new Qi(pa.REUSE_CHECK_FAILED,`Reuse decision for candidate ${e} failed (${g instanceof Error?g.message:String(g)}); no Principle was created.`,{candidateId:e,cause:g})}if(h.decision==="reuse"){if(!new Set(m.candidates.map(I=>I.principleId)).has(h.selectedPrincipleId))throw new Qi(pa.REUSE_CHECK_FAILED,`Reuse decision selected principle '${h.selectedPrincipleId}' which is not in the proposal for candidate ${e}; no Principle was created.`,{candidateId:e,selectedPrincipleId:h.selectedPrincipleId,reason:"selected_principle_not_in_proposal"});let _=await this.#a(e,o),y;try{let b=this.#t.appendReuseEvidence(h.selectedPrincipleId,{painId:_,candidateId:e,decision:"reuse",actor:h.actor,reason:h.reason,decidedAt:h.decidedAt}).reuseEvidence.find(w=>w.candidateId===e);if(!b)throw new Error(`appendReuseEvidence returned no evidence entry for candidate ${e} (adapter contract violation)`);y=b}catch(I){throw new Qi(pa.REUSE_CHECK_FAILED,`Reuse decision for candidate ${e} could not be recorded on principle '${h.selectedPrincipleId}'; no Principle was created and the decision is not durable. Cause: ${I instanceof Error?I.message:String(I)}`,{candidateId:e,selectedPrincipleId:h.selectedPrincipleId,cause:I})}return{outcome:"refused",reason:"reuse_selected",candidateId:e,rawRecommendationKind:typeof o.rawRecommendationKind=="string"?o.rawRecommendationKind:null,message:`Candidate ${e} was resolved to existing Principle ${h.selectedPrincipleId}; the reuse decision was recorded on that Principle's reuseEvidence and no new Principle was created. This candidate DOES target the Principle Ledger \u2014 review the reuse proposal, and do not re-run intake to force a new Principle.`,reuseProposal:m,selectedPrincipleId:h.selectedPrincipleId,reuseEvidence:y}}u="create_decided"}}else u="no_candidates"}if(n)return null;let p={id:jMt(),title:o.title,text:c.text||o.description||"",triggerPattern:c.triggerPattern,action:c.action,status:"probation",evaluability:"weak_heuristic",sourceRef:`candidate://${e}`,artifactRef:`artifact://${o.artifactId}`,taskRef:o.taskId?`task://${o.taskId}`:void 0,createdAt:new Date().toISOString()};try{return{outcome:"ledger_entry",written:!0,entry:this.#t.writeProbationEntry(p),reuseCheck:u,...l!==void 0?{reuseRecommendation:l}:{}}}catch(f){throw f instanceof Qi?f:new Qi(pa.LEDGER_WRITE_FAILED,`Failed to write ledger entry for candidate ${e}`,{candidateId:e,cause:f})}}async#a(e,n){let r=c=>{throw new Qi(pa.REUSE_CHECK_FAILED,`Reuse decision for candidate ${e} cannot be recorded: ${c} The evidence entry requires the Pain that re-validated the Principle. nextAction: ensure the candidate's diagnostician task has a persisted pain diagnosis (pain_diagnoses), then retry intake.`,{candidateId:e,reason:"reuse_pain_unresolvable"})};(typeof n.taskId!="string"||n.taskId==="")&&r("the candidate has no diagnostician task reference");let i;try{i=await this.#e.getDiagnosesByTaskId(n.taskId)}catch(c){throw new Qi(pa.REUSE_CHECK_FAILED,`Reuse decision for candidate ${e} cannot be recorded: the pain diagnosis lookup failed. Cause: ${c instanceof Error?c.message:String(c)}`,{candidateId:e,reason:"reuse_pain_unresolvable",cause:c})}if(i.length===0){let c=await this.#c(n);if(c!==null)try{i=await this.#e.getDiagnosesByTaskId(c)}catch(u){throw new Qi(pa.REUSE_CHECK_FAILED,`Reuse decision for candidate ${e} cannot be recorded: the pain diagnosis lookup for the top diagnostician task failed. Cause: ${u instanceof Error?u.message:String(u)}`,{candidateId:e,reason:"reuse_pain_unresolvable",cause:u})}}i.length===0&&r("no persisted pain diagnosis exists for its task");let a=[...i].sort((c,u)=>c.createdAt!==u.createdAt?c.createdAt<u.createdAt?-1:1:c.id<u.id?-1:c.id>u.id?1:0).at(-1),s=typeof a?.painId=="string"?a.painId:"";return s===""&&r("no usable pain id in the candidate's diagnosis history"),s}async#c(e){let n=await this.#e.getTask(e.taskId);if(!n||n.taskKind!=="diag_router")return null;let r=typeof n.inputRef=="string"?n.inputRef.trim():"";if(r==="")return null;let i=await this.#e.getTask(r);return!i||i.taskKind!=="diagnostician"?null:i.taskId}};import{createHash as q1n}from"node:crypto";Do();function Ure(t){return t==="owner_reported_no_host_trace"}function Qre(t,e){return t===0&&e!=="manual"&&e!=="pain"&&e!=="skill:pain"}function ZH(t){if(typeof t!="object"||t===null||Array.isArray(t))return!1;let e=t;return typeof e.text=="string"&&e.text.length>0&&e.classification==="owner_statement"}function ej(t){if(t==="host_context_bound"||t==="owner_reported_no_host_trace"||t==="automatic_hook")return t;if(t==="openclaw_context_bound")return"host_context_bound"}var Wre=.5;function XNe(t){return t.recommendationKind==="defer"?{decision:"deferred",reason:"recommendation_kind_defer_not_actionable",nextAction:"review_defer_disposition_manually",evidenceStatus:t.provenance??"unknown"}:t.inputEvidenceCount===0&&!Ure(t.provenance)&&t.ownerStatementPresent!==!0?{decision:"needs_evidence",reason:"input_evidence_empty",nextAction:"collect_evidence_before_diagnosis",evidenceStatus:t.provenance??"unknown"}:t.confidence<Wre?{decision:"needs_evidence",reason:`confidence_below_threshold:${t.confidence.toFixed(2)}<${Wre}`,nextAction:"provide_additional_evidence_or_manual_review",evidenceStatus:t.provenance??"unknown"}:t.evidenceCount===0?{decision:"needs_evidence",reason:"evidence_array_empty",nextAction:"provide_source_evidence_for_diagnosis",evidenceStatus:t.provenance??"unknown"}:{decision:"admitted",reason:"evidence_sufficient",nextAction:"none",evidenceStatus:t.provenance??"unknown"}}function tj(t,e,n={}){let{provenance:r,inputEvidenceCount:i=0,ownerStatementPresent:o}=n;return t.map(a=>{let s={recommendationKind:a.recommendationKind,confidence:e.confidence,evidenceCount:e.evidence.length,inputEvidenceCount:i,provenance:r,...o!==void 0?{ownerStatementPresent:o}:{}};return{candidateId:a.candidateId,recommendationKind:a.recommendationKind,admission:XNe(s)}})}import{createHash as ZNe}from"node:crypto";var ON=1,eMe=20,qMt=96e3,DN="admission-gate@cr-03";function PN(t){if(t==null)return{ok:!0,document:null};if(typeof t!="string"||t.length===0)return{ok:!0,document:null};let e;try{e=JSON.parse(t)}catch{return{ok:!1,document:null,reason:"admission_json_unparseable"}}if(typeof e!="object"||e===null||Array.isArray(e))return{ok:!1,document:null,reason:"admission_json_not_an_object"};let n=e;if(n.schemaVersion!==ON)return{ok:!1,document:null,reason:`admission_json_unsupported_schema_version:${String(n.schemaVersion)}`};if(!Array.isArray(n.evaluations)||n.evaluations.length>eMe)return{ok:!1,document:null,reason:"admission_json_evaluations_invalid"};for(let o of n.evaluations){if(typeof o!="object"||o===null)return{ok:!1,document:null,reason:"admission_json_evaluation_invalid"};let a=o;if(typeof a.evaluationId!="string"||a.decision!=="admitted"&&a.decision!=="needs_evidence"&&a.decision!=="deferred"||typeof a.reason!="string"||typeof a.nextAction!="string"||typeof a.evaluatedAt!="string"||typeof a.policyVersion!="string"||typeof a.materialFingerprint!="string")return{ok:!1,document:null,reason:"admission_json_evaluation_invalid"}}let r=n.currentEvaluationId;if(r!==null&&typeof r!="string")return{ok:!1,document:null,reason:"admission_json_current_evaluation_id_invalid"};let{processing:i}=n;return i!==void 0&&(typeof i!="object"||i===null||typeof i.state!="string")?{ok:!1,document:null,reason:"admission_json_processing_invalid"}:{ok:!0,document:{schemaVersion:ON,evaluations:n.evaluations,currentEvaluationId:r??null,...i!==void 0?{processing:i}:{}}}}function $re(t){let e=JSON.stringify(t);return e.length>qMt?{ok:!1,reason:"admission_json_size_exceeded"}:{ok:!0,json:e}}function XI(t){return ZNe("sha256").update(t.join("\0")).digest("hex")}function tMe(t){return ZNe("sha256").update(t).digest("hex")}function nj(t,e){if(t===null)return{status:"appended",document:{schemaVersion:ON,evaluations:[e],currentEvaluationId:e.evaluationId},evaluation:e};let n=t.evaluations.find(i=>i.materialFingerprint===e.materialFingerprint&&i.policyVersion===e.policyVersion);return n!==void 0?{status:"reused",document:{...t,currentEvaluationId:n.evaluationId},evaluation:n}:t.evaluations.length>=eMe?{status:"refused",reason:"admission_history_exceeded"}:{status:"appended",document:{...t,evaluations:[...t.evaluations,e],currentEvaluationId:e.evaluationId},evaluation:e}}function Hre(t,e){return t===null?{schemaVersion:ON,evaluations:[],currentEvaluationId:null,processing:e}:{...t,processing:e}}var KMt=new Set(["People","Design","Assumption","Tooling"]);function jre(t){return typeof t=="string"&&KMt.has(t)}function nMe(t){for(let e of["People","Design","Assumption","Tooling"])if(t.startsWith(`${e}: `))return e;return null}function rMe(t,e){return`${t}::${e}`}fa();_r();function IMe(t){return LN.map(e=>`dreamer-${t}-${e}`)}async function eie(t,e){for(let n of IMe(e)){let r=await t(n);if(r)return r}return null}function EMe(t){if(typeof t!="object"||t===null)return!1;let e=t,n=Reflect.get(e,"triggerPattern")??Reflect.get(e,"trigger_pattern"),r=Reflect.get(e,"action");return typeof n=="string"&&n.trim()!==""&&typeof r=="string"&&r.trim()!==""}function ABt(t){return EMe(t)?!0:typeof t!="object"||t===null?!1:EMe(Reflect.get(t,"recommendation"))}var tie=new Set(["prompt","code_tool_hook","defer_archive"]),cj={principle:"principle-ledger",rule:"rule-candidate",implementation:"implementation-candidate",prompt:"prompt-injection-candidate",defer:"deferred"},QN={"principle-ledger":"prompt","rule-candidate":"code_tool_hook","implementation-candidate":"skill","prompt-injection-candidate":"prompt"};function vMe(t){if(!t.candidateId||t.candidateId.trim()==="")return{decision:"invalid_candidate",reason:"candidateId must be a non-empty string"};if(/^(dreamer|pi-art|scribe|philosopher)[-_]/.test(t.candidateId))return{decision:"invalid_candidate",reason:"candidateId_looks_like_taskId_not_candidateId"};if(t.candidateId.length>200)return{decision:"invalid_candidate",reason:"candidateId_too_long"};let e=QN[t.route];if(!e)return{decision:"not_internalizable",reason:`Route "${t.route}" has no channel mapping \u2014 not internalizable`};if(!tie.has(e))return{decision:"not_internalizable",reason:`Channel "${e}" for route "${t.route}" is MVP-disabled \u2014 not internalizable in current stage`};let n=e,r;return t.route==="rule-candidate"&&!ABt(t.recommendation)&&(r=e,n="prompt"),!t.ready&&r===void 0?{decision:"not_internalizable",reason:`Route "${t.route}" is not ready \u2014 missing required fields`}:t.route==="deferred"?{decision:"not_internalizable",reason:`Route "${t.route}" is deferred \u2014 no internalization action required`}:{decision:"seeded",taskId:`dreamer-${t.candidateId}-${n}`,taskKind:"dreamer",channel:n,...r!==void 0?{demotedFromChannel:r}:{}}}function xMe(t){let e=vMe(t);if(e.decision!=="seeded")return e;let n=[{artifactType:"candidate",ref:`candidate://${t.candidateId}`}];t.sourceArtifactId&&t.sourceArtifactId.trim()!==""&&n.push({artifactType:"diagnostician_output",ref:`artifact://${t.sourceArtifactId}`});let r=[];t.sourceTaskId&&t.sourceTaskId.trim()!==""&&r.push(t.sourceTaskId);let i=t.pipelineMode==="full_chain"?"full_chain":"standard",o=JSON.stringify({[f0]:{dependencyTaskIds:r,channel:e.channel,pipelineMode:i,timeoutMs:3e5,inputArtifactRefs:n,outputArtifactRefs:[],parentTaskId:void 0,correlationId:t.candidateId},candidateId:t.candidateId,...t.sourcePainId?.trim()?{sourcePainId:t.sourcePainId.trim()}:{},...t.sourceTaskId?.trim()?{sourceTaskId:t.sourceTaskId.trim()}:{},...t.sourceArtifactId?.trim()?{sourceArtifactId:t.sourceArtifactId.trim()}:{},...t.sourceRunId?.trim()?{sourceRunId:t.sourceRunId.trim()}:{}});return{taskId:e.taskId,taskKind:"dreamer",channel:e.channel,pipelineMode:i,...e.decision==="seeded"&&e.demotedFromChannel!==void 0?{demotedFromChannel:e.demotedFromChannel}:{},diagnosticJson:o,status:"pending",attemptCount:0,maxAttempts:3}}function nie(t,e){let{route:n,ready:r,sourcePainId:i,pipelineMode:o}=e;if([t.taskId?.trim(),t.artifactId?.trim(),t.sourceRunId?.trim()].every(c=>!c))return{decision:"invalid_candidate",reason:`Candidate ${t.candidateId} has no diagnostician lineage (taskId, artifactId, sourceRunId all empty/blank)`};let s;try{s=JSON.parse(t.sourceRecommendationJson)}catch{s=void 0}return xMe({candidateId:t.candidateId,recommendationKind:t.recommendationKind??"unknown",route:n,ready:r,sourcePainId:i,pipelineMode:o,recommendation:s,sourceTaskId:t.taskId?.trim()||void 0,sourceArtifactId:t.artifactId?.trim()||void 0,sourceRunId:t.sourceRunId?.trim()||void 0})}function uj(t,e,n=Date.now()){if(t!=="retry_wait"||!e)return!0;let r=new Date(e).getTime();return Number.isNaN(r)?!0:r<=n}function rie(t,e=Date.now()){return uj(t.status,t.leaseExpiresAt,e)}function iie(t){return t.status==="pending"||t.status==="retry_wait"}var wMe=3;function WN(t,e=wMe){return(t.rejectionCount??0)>=e}var yBt=1440*60*1e3;function oie(t){let{painId:e,taskId:n,candidateIds:r,ledgerEntryIds:i,runId:o,artifactId:a,autoIntakeEnabled:s}=t;if(r.length===0)return t.path==="fresh"?{status:"failed",painId:e,taskId:n,runId:o,candidateIds:r,ledgerEntryIds:i,admissionResults:t.admissionResults,message:"Diagnostician succeeded but produced no principle candidates"}:{status:"failed",painId:e,taskId:n,runId:o,candidateIds:r,ledgerEntryIds:i,message:"Task has no principle candidates \u2014 treating as failed"};if(t.path==="fresh"){let{admissionResults:u,seedFailureNote:l}=t,p=t.notInternalizable??[],f=p.length>0?`not_internalizable:${p.map(I=>`${I.candidateId}=${I.reason}`).join(",")}`:"",m=t.reuseReviewRequiredCandidateIds??[],h=m.length>0?`reuse_review_required:${m.join(",")} \u2014 suspected duplicates parked for Owner review; nextAction: pd candidate review --candidate-id <id> --decide reuse|create`:"",g=u.filter(I=>I.admission.decision==="admitted").length,_=u.length-g;if(s&&t.ledgerEligibleCandidateCount>0&&i.length===0)return m.length>0&&m.length>=t.ledgerEligibleCandidateCount?{status:"degraded",painId:e,taskId:n,runId:o,artifactId:a,candidateIds:r,ledgerEntryIds:i,admissionResults:u,notInternalizable:t.notInternalizable,message:h}:{status:"failed",painId:e,taskId:n,runId:o,artifactId:a,candidateIds:r,ledgerEntryIds:i,admissionResults:u,notInternalizable:t.notInternalizable,message:"Candidate intake did not produce a ledger entry"};if(_>0&&g===0)return{status:"degraded",painId:e,taskId:n,runId:o,artifactId:a,candidateIds:r,ledgerEntryIds:i,admissionResults:u,notInternalizable:t.notInternalizable,message:`all_candidates_gated:${u.map(I=>`${I.candidateId}=${I.admission.decision}`).join(",")}${l?`; ${l}`:""}${f?`; ${f}`:""}`};if(_>0&&g>0)return{status:"degraded",painId:e,taskId:n,runId:o,artifactId:a,candidateIds:r,ledgerEntryIds:i,admissionResults:u,notInternalizable:t.notInternalizable,message:`partial_admission:${g}_admitted_${_}_gated${l?`; ${l}`:""}${f?`; ${f}`:""}${h?`; ${h}`:""}`};let y=[f,l,h].filter(Boolean).join("; ");return{status:y?"degraded":"succeeded",painId:e,taskId:n,runId:o,artifactId:a,candidateIds:r,ledgerEntryIds:i,admissionResults:u,notInternalizable:t.notInternalizable,message:y||void 0}}let c=t.reuseReviewRequiredCandidateIds??[];return s&&t.ledgerEligibleCandidateCount>0&&i.length===0?c.length>0&&c.length>=t.ledgerEligibleCandidateCount?{status:"degraded",painId:e,taskId:n,runId:o,artifactId:a,candidateIds:r,ledgerEntryIds:i,message:`reuse_review_required:${c.join(",")} \u2014 suspected duplicates confirmed by read-only reuse review; nextAction: pd candidate review --candidate-id <id> --decide reuse|create`}:{status:"failed",painId:e,taskId:n,runId:o,artifactId:a,candidateIds:r,ledgerEntryIds:i,message:"Candidate intake did not produce a ledger entry \u2014 treating as failed"}:s&&c.length>0?{status:"degraded",painId:e,taskId:n,runId:o,artifactId:a,candidateIds:r,ledgerEntryIds:i,message:`Task already succeeded; reuse_review_required:${c.join(",")} \u2014 pending candidates await Owner review; nextAction: pd candidate review --candidate-id <id> --decide reuse|create`}:{status:"succeeded",painId:e,taskId:n,runId:o,artifactId:a,candidateIds:r,ledgerEntryIds:i,message:"Task already succeeded"}}var HN="v1";function wC(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function $N(t,e){return Object.hasOwn(t,e)&&typeof t[e]=="string"&&t[e].length>0}var aie=new Set(["cli","unknown"]);function jN(t){return aie.has(t)}function _Bt(t){if(!wC(t))return null;if(t.kind==="owner_manual"){let{channel:e}=t;return e==="openclaw_command"||e==="cli_explicit_session"||e==="external_cli_unbound"?{kind:"owner_manual",channel:e}:null}return t.kind==="automatic_hook"&&typeof t.source=="string"&&t.source.length>0?{kind:"automatic_hook",source:t.source}:null}function EBt(t){if(!wC(t))return{error:"correlation_invalid"};if(t.status==="unbound")return t.reason==="external_cli"||t.reason==="missing_host_session"?{value:{status:"unbound",reason:t.reason}}:{error:"correlation_invalid"};if(t.status!=="bound")return{error:"correlation_invalid"};if(t.hostKind==="openclaw"){if(!$N(t,"sessionId"))return{error:"correlation_invalid"};if(jN(t.sessionId))return{error:"session_sentinel_invalid"};let e={status:"bound",hostKind:"openclaw",sessionId:t.sessionId};return typeof t.traceId=="string"&&(e.traceId=t.traceId),{value:e}}if(t.hostKind==="codex"){if(!$N(t,"rootSessionId"))return{error:"codex_lineage_incomplete"};if(!$N(t,"rolloutIdentity"))return{error:"codex_lineage_incomplete"};if(!$N(t,"logicalObservationKey"))return{error:"codex_lineage_incomplete"};if(!$N(t,"hostTurnId"))return{error:"codex_lineage_incomplete"};let e={status:"bound",hostKind:"codex",rootSessionId:t.rootSessionId,rolloutIdentity:t.rolloutIdentity,logicalObservationKey:t.logicalObservationKey,hostTurnId:t.hostTurnId};return typeof t.traceId=="string"&&(e.traceId=t.traceId),{value:e}}return{error:"correlation_invalid"}}var IBt=["trajectory_unavailable","session_not_found","empty_trajectory","evidence_read_failed","evidence_invalid","not_applicable_unbound"];function vBt(t){return IBt.includes(t)}function GN(t,e){return t.kind!=="owner_manual"?null:t.channel==="external_cli_unbound"&&e.status==="bound"||t.channel==="cli_explicit_session"&&e.status==="unbound"?"origin_correlation_mismatch":null}function xBt(t){return wC(t)?t.status==="available"?Object.hasOwn(t,"entryCount")&&typeof t.entryCount=="number"&&Number.isInteger(t.entryCount)&&t.entryCount>=1?{status:"available",entryCount:t.entryCount}:null:t.status==="unavailable"&&vBt(t.reason)?{status:"unavailable",reason:t.reason}:null:null}function sie(t){if(!wC(t))return{ok:!1,reasonCode:"ingress_payload_invalid"};if(t.version!==HN)return{ok:!1,reasonCode:"ingress_payload_version_unsupported"};let e=_Bt(t.origin);if(e===null)return{ok:!1,reasonCode:"ingress_origin_invalid"};let n=EBt(t.correlation);if(n.error!==void 0)return{ok:!1,reasonCode:n.error};let r=xBt(t.evidenceClass);if(r===null)return{ok:!1,reasonCode:"ingress_evidence_class_invalid"};let i=GN(e,n.value);return i!==null?{ok:!1,reasonCode:i}:{ok:!0,payload:{version:HN,origin:e,correlation:n.value,evidenceClass:r}}}function bC(t,e){return t.kind==="automatic_hook"?"automatic_hook":e.status==="bound"?"host_context_bound":"owner_reported_no_host_trace"}function cie(t){let{payload:e,topLevelProvenance:n,topLevelSessionIdHint:r,topLevelEvidenceCount:i}=t,o=bC(e.origin,e.correlation);if((typeof n=="string"?ej(n):void 0)!==o)return"ingress_payload_mismatch:provenance";if(e.correlation.status==="unbound"&&r!=null&&r!=="")return"ingress_payload_mismatch:unbound_session_hint";if(e.correlation.status==="bound"&&e.correlation.hostKind==="openclaw"&&r!==e.correlation.sessionId)return"ingress_payload_mismatch:session";if(e.evidenceClass.status==="unavailable"){if(i!==0)return"ingress_payload_mismatch:unavailable_evidence_count"}else if(e.evidenceClass.entryCount!==i)return"ingress_payload_mismatch:evidence_count";return null}var wBt=new Set(["token","secret","password","authorization","apikey","accesstoken","refreshtoken"]),bBt=[/[A-Za-z0-9+/=]{40,}/g,/sk-[A-Za-z0-9_-]{20,}/g,/ghp_[A-Za-z0-9]{36,}/g,/gho_[A-Za-z0-9]{36,}/g,/xox[bpras]-[A-Za-z0-9-]{20,}/g,/eyJ[A-Za-z0-9_-]{20,}\./g],SBt=[/\[EMOTIONAL_DAMAGE_DETECTED(?::(?:mild|moderate|severe))?\]/gi,/\[EMPATHY_ROLLBACK_REQUEST\]/gi],bMe="<empathy",SMe="</empathy>";function kMe(t,e,n){if(e+n.length>t.length)return!1;for(let r=0;r<n.length;r++){let i=t.charCodeAt(e+r);if(i>=65&&i<=90&&(i+=32),i!==n.charCodeAt(r))return!1}return!0}function CBt(t,e,n){for(let r=n;r+e.length<=t.length;r++)if(kMe(t,r,e))return r;return-1}function kBt(t){let e="",n=0;for(;n<t.length;){let r=CBt(t,bMe,n);if(r<0)return e+=t.slice(n),e;e+=t.slice(n,r),n=r+bMe.length;let i=t.indexOf(">",n);if(i<0)return e+=t.slice(r),e;n=i+1,kMe(t,n,SMe)&&(n+=SMe.length)}return e}var TMe=/^(?:[A-Za-z]:[\\/]|\/|\\\\)/,TBt=/^[A-Za-z]:\\/,RBt=/(?:^|[\s"'=])([A-Za-z]:\\[^\s"'&|<>]+|[A-Za-z]:\/[^\s"'&|<>]+|\\\\[^\s"'&|<>]+|(?:\/[\w.-]+){2,}(?:\/[^\s"'&|<>]*)?)/gm;function CMe(t){let e=t.length;for(;e>0&&(t[e-1]==="/"||t[e-1]==="\\");)e--;return e===t.length?t:t.slice(0,e)}function uie(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function RMe(t){let e=t.replace(/([a-z])([A-Z])/g,"$1_$2").toLowerCase().split(/[^a-z0-9]+/).filter(Boolean);for(let n=0;n<e.length;n++)for(let r=n;r<e.length;r++){let i=e.slice(n,r+1).join("");if(wBt.has(i))return!0}return!1}function lie(t){let e=t.split(/[\\/]/);return e[e.length-1]||t}function die(t,e){if(!TMe.test(t))return t;if(e){let n=CMe(e),r=CMe(t);if((TBt.test(t)?(o,a)=>o.toLowerCase()===a.toLowerCase():(o,a)=>o===a)(r.slice(0,n.length),n))return r.slice(n.length).replace(/^[/\\]/,"")||lie(t)}return lie(t)}function OBt(t,e){return t.replace(RBt,(n,r)=>{let i=n.slice(0,n.length-r.length),o=die(r,e);return TMe.test(r)&&o===lie(r)?`${i}<path:${o}>`:`${i}${o}`})}function lj(t,e){let n=t;for(let r of SBt)n=n.replace(r,"");n=kBt(n);for(let r of bBt)n=n.replace(r,i=>`${i.length>50?i.slice(0,8):i.slice(0,4)}___REDACTED___${i.length}`);return n=OBt(n,e),n.trim()}function DBt(t){if(t.length<=2e3)return t;let e=Math.floor(2e3*.65),n=Math.floor(2e3*.3);return`${t.slice(0,e)}___TRUNCATED___${t.slice(t.length-n)}`}function Fu(t,e){let n=lj(t,e);return n.length>200?(n.slice(0,200)+"___TRUNCATED___").trim():n}function Vm(t,e=0,n){if(e>4)return"<max-depth>";if(t==null)return t;if(typeof t=="string")return Fu(t,n);if(typeof t=="number"||typeof t=="boolean")return t;if(Array.isArray(t)){let i=t.slice(0,20).map(o=>Vm(o,e+1,n));return t.length>20&&i.push(`<${t.length-20} more items>`),i}if(uie(t)){let r={},i=0;for(let[o,a]of Object.entries(t)){if(i>=50){r["<truncated>"]=`${Object.keys(t).length-i} more keys`;break}r[o]=RMe(o)?"<sensitive___REDACTED___field>":Vm(a,e+1,n),i++}return r}return"<unsupported-type>"}var PBt=["command","args"];function LBt(t,e,n){for(let r of PBt){if(!Object.hasOwn(e,r)||RMe(r))continue;let i=t[r];if(typeof i!="string")continue;let o=DBt(lj(i,n));typeof e[r]=="string"&&(e[r]=o)}return e}function qN(t,e){if(t==null)return{};if(typeof t=="string")return{"<string-input>":Fu(t.slice(0,200),e)};if(typeof t=="number"||typeof t=="boolean")return{};if(Array.isArray(t)){let n=Vm(t,0,e);return Array.isArray(n)?{"<array-input>":n.join(", ").slice(0,200)}:{"<array-input>":"<sanitization-error>"}}if(uie(t)){let n=Vm(t,0,e);return uie(n)?LBt(t,n,e):{}}return{}}var h0=8,av=200,NBt=2e3,OMe=3;function KN(t,e){return{...t,text:lj(t.text,e).slice(0,NBt)}}function ov(t){return`diagnosis_${t}`}function MBt(t){return t===void 0?"moderate":t>=70?"severe":t>=40?"moderate":"mild"}function BBt(t){if(typeof t!="string"||t.length===0)return 0;try{let e=JSON.parse(t);if(typeof e!="object"||e===null||Array.isArray(e))return 0;let{evidence:n}=e;return Array.isArray(n)?n.length:0}catch{return 0}}var FBt=new Set(["manual","pain","skill:pain"]);function mie(t){return FBt.has(t.source)&&(!t.sessionId||t.sessionId==="cli"||t.sessionId==="unknown")?"owner_reported_no_host_trace":t.sessionId&&t.sessionId!=="cli"&&t.sessionId!=="unknown"?"host_context_bound":"automatic_hook"}function pie(t){if(typeof t!="string"||t.length===0)return{provenance:null,evidenceCount:null,errorCode:"diagnostic_payload_invalid:missing"};let e;try{e=JSON.parse(t)}catch{return{provenance:null,evidenceCount:null,errorCode:"diagnostic_payload_invalid:unparseable"}}if(typeof e!="object"||e===null||Array.isArray(e))return{provenance:null,evidenceCount:null,errorCode:"diagnostic_payload_invalid:not_an_object"};if(!wC(e))return{provenance:null,evidenceCount:null,errorCode:"diagnostic_payload_invalid:not_an_object"};let n=e,r=n.correctionEvidence,i=typeof r=="object"&&r!==null&&!Array.isArray(r)&&typeof r.text=="string"&&r.text.length>0?r:void 0,o=BBt(t),s=Object.hasOwn(n,"provenance")?ej(n.provenance):void 0;if(Object.hasOwn(n,"painIngress")){if(s===void 0)return{provenance:null,evidenceCount:null,errorCode:"diagnostic_payload_invalid:provenance_missing"};let u=sie(n.painIngress);if(!u.ok)return{provenance:null,evidenceCount:null,errorCode:u.reasonCode};let l=cie({payload:u.payload,topLevelProvenance:n.provenance,topLevelSessionIdHint:Object.hasOwn(n,"sessionIdHint")?n.sessionIdHint:null,topLevelEvidenceCount:o});return l!==null?{provenance:null,evidenceCount:null,errorCode:l}:{provenance:bC(u.payload.origin,u.payload.correlation),evidenceCount:o,errorCode:null,...i!==void 0?{correctionEvidence:i}:{}}}if(s!==void 0)return{provenance:s,evidenceCount:o,errorCode:null,...i!==void 0?{correctionEvidence:i}:{}};let c={painId:typeof n.sourcePainId=="string"?n.sourcePainId:"",painType:"user_frustration",source:typeof n.source=="string"?n.source:"",reason:typeof n.reasonSummary=="string"?n.reasonSummary:"",sessionId:typeof n.sessionIdHint=="string"?n.sessionIdHint:void 0};return{provenance:mie(c),evidenceCount:o,errorCode:null,...i!==void 0?{correctionEvidence:i}:{}}}function UBt(t){switch(t){case"host_context_bound":return"Pain reported from an authenticated host session with a bound host context";case"owner_reported_no_host_trace":return"No authenticated host session provenance available for CLI-submitted pain; fullTrace unavailable";case"automatic_hook":return"Pain detected by automatic hook (after_tool_call)"}}function fie(t,e){let n=t.provenance??mie(t);return JSON.stringify({sourcePainId:t.painId,reasonSummary:t.reason,source:t.source,severity:MBt(t.score),sessionIdHint:t.sessionId??null,agentIdHint:t.agentId??null,provenance:n,provenanceReason:UBt(n),...t.hostKind?{hostKind:t.hostKind}:{},evidence:t.evidence??[],workspaceDir:e??null,...t.correctionEvidence?{correctionEvidence:KN(t.correctionEvidence,e)}:{},...t.painIngress?{painIngress:t.painIngress}:{}})}async function DMe(t,e){let{painId:n,taskId:r,diagnosticianOutput:i,artifactId:o}=e,a=nMe(i.rootCause);if(!a){t.eventEmitter?.emitTelemetry({eventType:"pain_diagnosis_persist_skipped",traceId:n,timestamp:new Date().toISOString(),payload:{reason:"unparseable_root_cause_prefix",nextAction:'Inspect the diagnostician output \u2014 rootCause must start with "People: "/"Design: "/"Assumption: "/"Tooling: ".',rootCausePreview:i.rootCause.slice(0,80)}});return}try{await t.stateManager.recordPainDiagnosis({painId:n,taskId:r,diagnosisId:i.diagnosisId,category:a,rootCause:i.rootCause,evidence:i.evidence,confidence:typeof i.confidence=="number"?i.confidence:null,artifactId:o})}catch(s){t.eventEmitter?.emitTelemetry({eventType:"pain_diagnosis_persist_failed",traceId:n,timestamp:new Date().toISOString(),payload:{reason:s instanceof Error?s.message:String(s),nextAction:"Inspect state.db pain_diagnoses and re-run the diagnosis if the attribution history is required.",taskId:r}})}}async function QBt(t,e){let n=s=>({ok:!1,reason:`candidate_round_unresolved:${e.candidateId}:${s}`}),r=typeof e.sourceRunId=="string"?e.sourceRunId:"";if(r.length===0)return n("missing_source_run_id");let i;try{i=await t.getRun(r)}catch{return n("source_run_lookup_failed")}if(i==null)return n("source_run_missing");if(i.taskId!==e.taskId)return n("source_run_task_mismatch");if(i.executionStatus!=="succeeded")return n("source_run_not_succeeded");let o=typeof e.artifactId=="string"?e.artifactId:"";if(o.length>0){let s;try{s=await t.getArtifact(o)}catch{return n("artifact_lookup_failed")}if(s&&(s.runId!==r||s.taskId!==e.taskId))return n("artifact_run_mismatch")}let a;if(typeof i.outputPayload=="string"&&i.outputPayload.length>0)try{let s=JSON.parse(i.outputPayload);it.Check(Jo,s)&&(a=s)}catch{}return a===void 0?n("owning_output_unparseable"):{ok:!0,output:a,sourceRunId:r}}var SC=class{stateManager;runner;intakeService;ledgerAdapter;owner;autoIntakeEnabled;diagnosisPersistenceEnabled;fullPipelinePromptSeeds;workspaceDir;eventEmitter;ownedResources;capabilityDisabled;constructor(e){this.stateManager=e.stateManager,this.runner=e.runner,this.intakeService=e.intakeService,this.ledgerAdapter=e.ledgerAdapter,this.owner=e.owner??"pain-signal-bridge",this.autoIntakeEnabled=e.autoIntakeEnabled??!0,this.diagnosisPersistenceEnabled=e.diagnosisPersistenceEnabled??!1,this.fullPipelinePromptSeeds=e.fullPipelinePromptSeeds??!1,this.workspaceDir=e.workspaceDir,this.eventEmitter=e.eventEmitter,this.ownedResources=e.ownedResources??[],this.capabilityDisabled=e.capabilityDisabled}disabledResult(e){return{status:"failed",painId:e.painId,taskId:e.taskId,candidateIds:[],ledgerEntryIds:[],errorCategory:"capability_missing",message:this.capabilityDisabled?.reason??"Diagnostician capability is disabled by Owner configuration",nextAction:this.capabilityDisabled?.nextAction}}async resumeSucceededDiagnosisPostProcessing(e){let n=await this.stateManager.getTask(e.taskId);if(n===null)return{status:"not_applicable",reason:"task_missing"};if(n.status!=="succeeded")return{status:"not_applicable",reason:`task_not_succeeded:${n.status}`};let r=await this.stateManager.getCandidatesByTaskId(e.taskId);if(r.length===0)return{status:"not_applicable",reason:"no_candidates"};let i=pie(n.diagnosticJson);if(i.errorCode!==null){let f=new Date().toISOString();for(let m of r)try{await this.stateManager.appendAdmissionEvaluation(m.candidateId,{evaluationId:`ae_blocked_${XI([m.candidateId,i.errorCode]).slice(0,16)}`,decision:"needs_evidence",reason:`diagnostic_material_unusable:${i.errorCode}`,nextAction:"repair or re-run the diagnosis via the supported CLI command; the candidate resumes automatically afterwards",evaluatedAt:f,policyVersion:DN,provenance:"automatic_hook",inputEvidenceCount:0,ownerStatementPresent:!1,recommendationKind:m.rawRecommendationKind,confidence:null,materialFingerprint:XI(["unusable",i.errorCode]),materialSummary:{inputEvidenceCount:0,outputEvidenceCount:0,ownerStatementPresent:!1}}),await this.stateManager.updateAdmissionProcessing(m.candidateId,{state:"exhausted",attempts:OMe,blockedReason:`diagnostic_material_unusable:${i.errorCode}`})}catch{}return{status:"blocked",reason:i.errorCode,nextAction:"the persisted diagnosis payload is unusable; repair or re-run the diagnosis via the supported CLI command (candidates recorded terminal manual_action_required states)"}}let o=await this.stateManager.getRunsByTask(e.taskId),a,s=f=>{if(!(typeof f!="string"||f.length===0))try{let m=JSON.parse(f);return it.Check(Jo,m)?m:void 0}catch{return}},c=await this.stateManager.getRunsByTask(`diag_router-${e.taskId}`);for(let f=c.length-1;f>=0&&a===void 0;f-=1)a=s(c[f]?.outputPayload);if(a===void 0){let f=o.at(-1);a=s(f?.outputPayload)}let u=[],l=[];for(let f of r){let m=await this.stateManager.getAdmissionDocument(f.candidateId);if(!m.ok){u.push({candidateId:f.candidateId,reason:`admission_document_unreadable:${m.reason}`});continue}let h=m.document?.processing?.state;if(h==="complete"||h==="awaiting_owner"||h==="exhausted"){u.push({candidateId:f.candidateId,reason:`processing_${h}`});continue}l.push(f)}return l.length===0?{status:"not_applicable",reason:"no_eligible_candidates",skipped:u,remainingCount:0}:{status:"resumed",result:await this.onDiagnosisComplete({taskId:e.taskId,diagnosticianOutput:a,painId:typeof n.inputRef=="string"&&n.inputRef.length>0?n.inputRef:`diagnosis-source:${e.taskId}`,provenance:i.provenance,inputEvidenceCount:i.evidenceCount,...i.correctionEvidence!==void 0?{correctionEvidence:i.correctionEvidence}:{}}),processedCandidateIds:l.map(f=>f.candidateId),skipped:u,remainingCount:0}}async dispose(){for(let e of this.ownedResources)try{await e.close()}catch{}await this.stateManager.close()}emitAdmissionEvent(e,n){this.eventEmitter&&this.eventEmitter.emitTelemetry({eventType:"candidate_admission_decision",traceId:e,timestamp:new Date().toISOString(),payload:{decision:n.decision,reason:n.reason,nextAction:n.nextAction}})}async submitPainSignal(e){let n=e.taskId??ov(e.painId),r=fie(e,this.workspaceDir);return await this.stateManager.createTask({taskId:n,taskKind:"diagnostician",inputRef:e.painId,status:"pending",attemptCount:0,maxAttempts:3,diagnosticJson:r}),{taskId:n}}async onPainDetected(e){let{painId:n}=e,r=e.taskId??ov(n),i=e.provenance??mie(e);if(this.capabilityDisabled!==void 0){let s=await this.stateManager.getTask(r);if(s===null)await this.stateManager.createTask({taskId:r,taskKind:"diagnostician",inputRef:n,status:"pending",attemptCount:0,maxAttempts:3,diagnosticJson:fie(e,this.workspaceDir)});else if(s.status==="succeeded")return this.buildExistingResult({painId:n,taskId:r});return this.disabledResult({painId:n,taskId:r})}let o=await this.stateManager.getTask(r);if(!o&&!ZH(e.correctionEvidence)&&Qre(e.evidence?.length??0,e.source))return{status:"skipped",painId:n,taskId:r,candidateIds:[],ledgerEntryIds:[],message:"short_circuited: input evidence empty; re-trigger after evidence collected"};if(o){let{status:s,leaseExpiresAt:c}=o,l=c&&Date.now()-new Date(c).getTime()>3e5;if(s==="succeeded")return this.buildExistingResult({painId:n,taskId:r});if(s==="leased"&&!l)return{status:"skipped",painId:n,taskId:r,candidateIds:[],ledgerEntryIds:[],message:"Task is already leased"};s==="leased"&&l||await this.stateManager.updateTask(r,{status:"pending",attemptCount:0,lastError:null,resultRef:null})}else{let s=fie(e,this.workspaceDir);await this.stateManager.createTask({taskId:r,taskKind:"diagnostician",inputRef:n,status:"pending",attemptCount:0,maxAttempts:3,diagnosticJson:s})}let a=await this.runner.run(r);return a.status!=="succeeded"?{status:a.status==="retried"?"retried":"failed",painId:n,taskId:r,runnerStatus:a.status,candidateIds:[],ledgerEntryIds:[],errorCategory:a.errorCategory,message:a.failureReason,...a.nextAction!==void 0?{nextAction:a.nextAction}:{}}:this.onDiagnosisComplete({taskId:r,diagnosticianOutput:a.output,painId:n,provenance:i,inputEvidenceCount:e.evidence?.length??0,...e.correctionEvidence!==void 0?{correctionEvidence:e.correctionEvidence}:{}})}async executePendingDiagnosis(e){let{taskId:n}=e;if(this.capabilityDisabled!==void 0){let s=await this.stateManager.getTask(n);if(s===null)return{status:"failed",painId:"",taskId:n,candidateIds:[],ledgerEntryIds:[],errorCategory:"input_invalid",message:"task_not_found"};let c=typeof s.inputRef=="string"&&s.inputRef.length>0?s.inputRef:n;return s.status==="succeeded"?this.buildExistingResult({painId:c,taskId:n}):this.disabledResult({painId:c,taskId:n})}let r=await this.stateManager.getTask(n);if(r===null)return{status:"failed",painId:"",taskId:n,candidateIds:[],ledgerEntryIds:[],errorCategory:"input_invalid",message:"task_not_found"};let i=typeof r.inputRef=="string"&&r.inputRef.length>0?r.inputRef:n;if(r.status==="succeeded")return this.buildExistingResult({painId:i,taskId:n});if(r.status==="leased")return{status:"skipped",painId:i,taskId:n,candidateIds:[],ledgerEntryIds:[],message:"task_already_leased"};if(r.status==="failed"||r.status==="needs_human_review")return{status:"skipped",painId:i,taskId:n,candidateIds:[],ledgerEntryIds:[],message:`task_${r.status}`};if(!uj(r.status,r.leaseExpiresAt))return{status:"skipped",painId:i,taskId:n,candidateIds:[],ledgerEntryIds:[],message:"retry_wait_pending"};let o=pie(r.diagnosticJson);if(o.errorCode!==null)return{status:"failed",painId:i,taskId:n,candidateIds:[],ledgerEntryIds:[],errorCategory:"input_invalid",message:o.errorCode};let a=await this.runner.run(n);return a.status!=="succeeded"?{status:a.status==="retried"?"retried":"failed",painId:i,taskId:n,runnerStatus:a.status,candidateIds:[],ledgerEntryIds:[],errorCategory:a.errorCategory,message:a.failureReason,...a.nextAction!==void 0?{nextAction:a.nextAction}:{}}:this.onDiagnosisComplete({taskId:n,diagnosticianOutput:a.output,painId:i,provenance:o.provenance,inputEvidenceCount:o.evidenceCount,...o.correctionEvidence!==void 0?{correctionEvidence:o.correctionEvidence}:{}})}safeUpdateAdmissionProcessing(e,n){try{this.stateManager.updateAdmissionProcessing(e,n).catch(()=>{})}catch{}}async recordPostProcessingFailure(e,n){try{let r=await this.stateManager.getAdmissionDocument(e);if(!r.ok)return;let o=(r.document?.processing?.attempts??0)+1,a=new Date().toISOString(),s=n.slice(0,300),c=o>=OMe?{state:"exhausted",attempts:o,lastAttemptAt:a,lastFailure:{reason:s,nextAction:"manual_action_required: post-processing retry budget exhausted; inspect state.db principle_candidates and telemetry, then use the supported recovery command",at:a},blockedReason:`post_processing_attempts_exhausted:${n.slice(0,120)}`}:{state:"in_progress",attempts:o,lastAttemptAt:a,lastFailure:{reason:s,nextAction:"the workspace worker continuation retries this candidate automatically",at:a},nextRetryAt:new Date(Date.now()+Math.min(6e4*2**o,15*6e4)).toISOString()};await this.stateManager.updateAdmissionProcessing(e,c)}catch{}}async onDiagnosisComplete(e){let{taskId:n,diagnosticianOutput:r,painId:i,provenance:o,inputEvidenceCount:a=0,correctionEvidence:s}=e,c=ZH(s),u=c&&s?tMe(s.text):void 0,l=await this.stateManager.getCandidatesByTaskId(n),p=[];this.diagnosisPersistenceEnabled&&r&&await DMe({stateManager:this.stateManager,eventEmitter:this.eventEmitter},{painId:i,taskId:n,diagnosticianOutput:r,artifactId:l[0]?.artifactId??null});let f=new Map,m=[];for(let K of l){let re=await QBt(this.stateManager,K);if(!re.ok){m.push({candidateId:K.candidateId,recommendationKind:K.recommendationKind,admission:{decision:"needs_evidence",reason:re.reason,nextAction:"re-run the diagnosis that produced this candidate or send it for manual review",evidenceStatus:o}});continue}f.set(K.candidateId,re);let[J]=tj([K],re.output,{provenance:o,inputEvidenceCount:a,...c?{ownerStatementPresent:c}:{}});J!==void 0&&m.push(J)}let h=new Set;if(l.length>0){let K=new Date().toISOString();for(let re=0;re<l.length;re++){let J=l[re],Ae=m[re];if(!J||!Ae)continue;let de=f.get(J.candidateId),Te=de?XI([JSON.stringify(de.output),o,String(a),u??"no-owner-statement",de.sourceRunId,J.candidateId]):XI(["candidate-round-unresolved",Ae.admission.reason,o,String(a),J.candidateId]),ve={evaluationId:`ae_${XI([J.candidateId,Te,DN]).slice(0,16)}`,decision:Ae.admission.decision,reason:Ae.admission.reason,nextAction:Ae.admission.nextAction,evaluatedAt:K,policyVersion:DN,provenance:o,inputEvidenceCount:a,ownerStatementPresent:c,recommendationKind:J.rawRecommendationKind,confidence:de?.output.confidence??null,materialFingerprint:Te,materialSummary:{inputEvidenceCount:a,outputEvidenceCount:de?.output.evidence.length??0,ownerStatementPresent:c,...u!==void 0?{statementFingerprint:u}:{}}};try{if(typeof this.stateManager.appendAdmissionEvaluation!="function")throw new Error("state_manager_admission_persistence_unavailable");let me=await this.stateManager.appendAdmissionEvaluation(J.candidateId,ve);me.status==="refused"&&(h.add(J.candidateId),this.eventEmitter?.emitTelemetry({eventType:"admission_persistence_failed",traceId:J.candidateId,timestamp:K,payload:{reason:me.reason,nextAction:"inspect state.db principle_candidates; the disposition was not saved and intake is blocked for this candidate this round"}}))}catch(me){h.add(J.candidateId),this.eventEmitter?.emitTelemetry({eventType:"admission_persistence_failed",traceId:J.candidateId,timestamp:K,payload:{reason:me instanceof Error?me.message:String(me),nextAction:"inspect state.db principle_candidates; the disposition was not saved and intake is blocked for this candidate this round"}})}}}let g=[],_=[],y=new Map,I=new Map,b=new Map,w=new Map;if(this.autoIntakeEnabled)for(let K=0;K<l.length;K++){let re=l[K],J=m[K];if(!re||!J)continue;if(J.admission.decision!=="admitted"){this.emitAdmissionEvent(re.candidateId,J.admission),this.safeUpdateAdmissionProcessing(re.candidateId,{state:"awaiting_owner",attempts:0,blockedReason:`${J.admission.decision}:${J.admission.reason}`});continue}if(h.has(re.candidateId))continue;let Ae=this.ledgerAdapter.existsForCandidate(re.candidateId)??null;Ae!==null&&typeof Ae.id=="string"&&(p.push(Ae.id),y.set(re.candidateId,Ae.id));let de;try{Ae!==null&&typeof Ae.id=="string"?de={outcome:"ledger_entry",written:!1,entry:Ae}:de=await this.intakeService.intake(re.candidateId)}catch(Te){this.eventEmitter?.emitTelemetry({eventType:"candidate_intake_failed",traceId:re.candidateId,timestamp:new Date().toISOString(),payload:{reason:Te instanceof Error?Te.message:String(Te)}}),this.recordPostProcessingFailure(re.candidateId,`intake_failed:${Te instanceof Error?Te.message:String(Te)}`).catch(()=>{});continue}if(de.outcome==="ledger_entry"&&(p.push(de.entry.id),y.set(re.candidateId,de.entry.id),de.reuseRecommendation!==void 0&&w.set(re.candidateId,de.reuseRecommendation)),de.outcome==="refused"&&de.reason==="reuse_pending_owner"){let Te=de.reuseRecommendation,ve=Te?.status==="recommended"?Te:void 0;this.eventEmitter?.emitTelemetry({eventType:"reuse_gate_triggered",traceId:re.candidateId,timestamp:new Date().toISOString(),payload:{candidateId:re.candidateId,...ve?.selectedPrincipleId!==void 0?{selectedPrincipleId:ve.selectedPrincipleId}:{},...ve?{confidence:ve.confidence,recommendation:ve.recommendation}:{}}}),b.set(re.candidateId,{selectedPrincipleId:ve?.selectedPrincipleId,confidence:ve?.confidence}),this.safeUpdateAdmissionProcessing(re.candidateId,{state:"awaiting_owner",attempts:0,blockedReason:"reuse_pending_owner"});continue}try{let Te=cj[re.recommendationKind??""];if(Te){let ve=QN[Te],Ye=nie(re,{route:Te,ready:!!ve,sourcePainId:i,pipelineMode:this.fullPipelinePromptSeeds?"full_chain":void 0});"decision"in Ye?Ye.decision==="not_internalizable"&&(_.push({candidateId:re.candidateId,reason:Ye.reason}),this.eventEmitter?.emitTelemetry({eventType:"candidate_not_internalizable",traceId:re.candidateId,timestamp:new Date().toISOString(),payload:{reason:Ye.reason,channel:ve??null,route:Te}})):await eie(Le=>this.stateManager.getTask(Le),re.candidateId)||(await this.stateManager.createTask({taskId:Ye.taskId,taskKind:Ye.taskKind,inputRef:"",status:Ye.status,attemptCount:Ye.attemptCount,maxAttempts:Ye.maxAttempts,diagnosticJson:Ye.diagnosticJson}),I.set(re.candidateId,Ye.taskId),this.eventEmitter?.emitTelemetry({eventType:"candidate_dreamer_task_seeded",traceId:re.candidateId,timestamp:new Date().toISOString(),payload:{taskId:Ye.taskId,channel:Ye.channel,...Ye.pipelineMode?{pipelineMode:Ye.pipelineMode}:{},...Ye.demotedFromChannel?{demotedFromChannel:Ye.demotedFromChannel}:{}}}))}}catch(Te){g.push(re.candidateId),this.eventEmitter?.emitTelemetry({eventType:"candidate_dreamer_task_seed_failed",traceId:re.candidateId,timestamp:new Date().toISOString(),payload:{error:String(Te)}}),this.recordPostProcessingFailure(re.candidateId,`seed_failed:${String(Te)}`).catch(()=>{})}re.status!=="consumed"&&await this.stateManager.updateCandidateStatus(re.candidateId,{status:"consumed"})}for(let K=0;K<l.length;K++){let re=l[K],J=m[K];!re||!J||J.admission.decision!=="admitted"||h.has(re.candidateId)||g.includes(re.candidateId)||b.has(re.candidateId)||this.safeUpdateAdmissionProcessing(re.candidateId,{state:"complete",attempts:0,completedAt:new Date().toISOString()})}let k=g.length>0?`dreamer_seed_failed:${g.join(",")}`:"",B=(await this.stateManager.getRunsByTask(n)).at(-1),N=l.at(0),T=l.map(K=>K.candidateId),M=l.map((K,re)=>{let J=m[re]?.admission,Ae=J?.decision??"needs_evidence",de={candidateId:K.candidateId,decision:Ae,reason:J?.reason??"diagnostician_output_unavailable",nextAction:J?.nextAction??"re_run_diagnosis_or_manual_review"},Te=y.get(K.candidateId);Te!==void 0&&(de.ledgerEntryId=Te);let ve=I.get(K.candidateId);if(ve!==void 0&&(de.seededTaskId=ve),Ae==="admitted"&&de.seededTaskId===void 0){let We=_.find(lt=>lt.candidateId===K.candidateId),Le=g.includes(K.candidateId);We!==void 0?(de.reason=We.reason,de.nextAction="Enable the mapped channel or archive this candidate."):Le&&(de.reason="dreamer_seed_failed",de.nextAction="Inspect state.db and telemetry; re-run intake.")}b.get(K.candidateId)!==void 0&&(de.reason="reuse_review_required",de.nextAction=`pd candidate review --candidate-id ${K.candidateId} --decide reuse|create --reason "..."`);let Ye=w.get(K.candidateId);return Ye!==void 0&&(de.reuseRecommendation=Ye.status==="unavailable"?{status:"unavailable",reason:Ye.reason.slice(0,200)}:{status:"recommended"}),de}),j=[];for(let K of l){let re=w.get(K.candidateId);re?.status==="unavailable"&&(j.push(`semantic reuse evaluation unavailable for candidate ${K.candidateId} (${re.reason.slice(0,200)}) \u2014 learning proceeded without duplicate protection (Rule 4); nextAction: pd candidate review --candidate-id ${K.candidateId} to resolve manually`),this.eventEmitter?.emitTelemetry({eventType:"reuse_evaluation_unavailable",traceId:K.candidateId,timestamp:new Date().toISOString(),payload:{candidateId:K.candidateId,reason:re.reason.slice(0,200)}}))}let $=M.filter(K=>K.decision==="admitted").map(K=>K.candidateId),te=[...I.values()],W=te.length>0?"internalization_seeded":p.length>0?"candidate_processing":"diagnosis_completed",we=oie({path:"fresh",painId:i,taskId:n,candidateIds:T,ledgerEntryIds:p,ledgerEligibleCandidateCount:l.filter((K,re)=>m[re]?.admission.decision==="admitted"&&Km(K.rawRecommendationKind)).length,reuseReviewRequiredCandidateIds:[...b.keys()],runId:B?.runId,artifactId:N?.artifactId,autoIntakeEnabled:this.autoIntakeEnabled,admissionResults:m,seedFailureNote:k,notInternalizable:_.length>0?_:void 0});return we.progress={furthestStage:W,generatedCandidateIds:T,admittedCandidateIds:$,ledgerEntryIds:p,seededTaskIds:te},we.candidateOutcomes=M,j.length>0&&(we.observabilityWarnings=j),we}async buildExistingResult(e){let n=await this.stateManager.getCandidatesByTaskId(e.taskId),i=(await this.stateManager.getRunsByTask(e.taskId)).at(-1),o=n.map(p=>p.candidateId),a=n.at(0),s=[],c=[],u=[];if(this.autoIntakeEnabled)for(let p of n){let f=this.ledgerAdapter.existsForCandidate(p.candidateId);if(f&&s.push(f.id),p.status!=="consumed"&&f&&await this.stateManager.updateCandidateStatus(p.candidateId,{status:"consumed"}),p.status==="pending"&&!f&&Km(p.rawRecommendationKind)&&this.intakeService?.reuseReviewEnabled)try{let m=await this.stateManager.getTask(e.taskId),h=pie(m?.diagnosticJson);if(h.errorCode!==null)continue;let g=await this.stateManager.getRun(p.sourceRunId);if(!g||g.taskId!==p.taskId||g.executionStatus!=="succeeded"||!g.outputPayload)continue;let _=JSON.parse(g.outputPayload);if(!it.Check(Jo,_)||!_.valid)continue;let[y]=tj([p],_,{provenance:h.provenance,inputEvidenceCount:h.evidenceCount});if(y?.admission.decision!=="admitted")continue;let I=await this.intakeService.reviewReuse(p.candidateId);I?.outcome==="refused"&&I.reason==="reuse_pending_owner"&&c.push(p.candidateId)}catch(m){u.push(`${p.candidateId}: ${m instanceof Error?m.message:String(m)}`)}}let l=oie({path:"existing",painId:e.painId,taskId:e.taskId,candidateIds:o,ledgerEntryIds:s,ledgerEligibleCandidateCount:n.filter(p=>Km(p.rawRecommendationKind)).length,reuseReviewRequiredCandidateIds:c,runId:i?.runId,artifactId:a?.artifactId,autoIntakeEnabled:this.autoIntakeEnabled});return u.length>0&&(l.status="failed",l.message=`Replay intake review failed: ${u.join("; ")}. nextAction: inspect the candidate artifacts and retry intake.`),c.length>0&&(l.candidateOutcomes=c.map(p=>({candidateId:p,decision:"needs_evidence",reason:"reuse_review_required",nextAction:`pd candidate review --candidate-id ${p} --decide reuse|create`}))),l}};import{EventEmitter as $Bt}from"events";an();Do();var WBt=d.Union([d.Literal("lease_acquired"),d.Literal("lease_released"),d.Literal("lease_renewed"),d.Literal("lease_expired"),d.Literal("task_retried"),d.Literal("task_failed"),d.Literal("task_succeeded"),d.Literal("run_completed"),d.Literal("degradation_triggered"),d.Literal("diag_router_invariant_override"),d.Literal("runtime_adapter_selected"),d.Literal("runtime_invocation_started"),d.Literal("runtime_invocation_succeeded"),d.Literal("runtime_invocation_failed"),d.Literal("output_repair_attempted"),d.Literal("output_extraction_failed"),d.Literal("output_schema_invalid"),d.Literal("output_repair_exhausted"),d.Literal("output_path_chosen"),d.Literal("output_path_fallback"),d.Literal("llm_max_tokens_downshift"),d.Literal("dreamer_task_leased"),d.Literal("dreamer_context_built"),d.Literal("dreamer_run_started"),d.Literal("dreamer_run_failed"),d.Literal("dreamer_output_invalid"),d.Literal("dreamer_output_validated"),d.Literal("dreamer_task_succeeded"),d.Literal("dreamer_task_retried"),d.Literal("dreamer_task_failed"),d.Literal("dreamer_candidate_generated"),d.Literal("dreamer_cancel_run_failed"),d.Literal("dreamer_output_extraction_failed"),d.Literal("dreamer_mark_succeeded_failed"),d.Literal("dreamer_update_output_failed"),d.Literal("dreamer_context_partial"),d.Literal("dreamer_mark_failed_error"),d.Literal("dreamer_mark_retry_error"),d.Literal("philosopher_task_leased"),d.Literal("philosopher_context_built"),d.Literal("philosopher_run_started"),d.Literal("philosopher_run_failed"),d.Literal("philosopher_output_invalid"),d.Literal("philosopher_output_validated"),d.Literal("philosopher_task_succeeded"),d.Literal("philosopher_task_retried"),d.Literal("philosopher_task_failed"),d.Literal("philosopher_principle_candidate_generated"),d.Literal("philosopher_cancel_run_failed"),d.Literal("philosopher_mark_succeeded_failed"),d.Literal("philosopher_update_output_failed"),d.Literal("philosopher_dependency_not_succeeded"),d.Literal("philosopher_lineage_resolve_failed"),d.Literal("philosopher_lineage_partial"),d.Literal("philosopher_artifact_write_failed"),d.Literal("philosopher_wrong_task_kind"),d.Literal("philosopher_output_extraction_failed"),d.Literal("philosopher_mark_failed_error"),d.Literal("philosopher_mark_retry_error"),d.Literal("artificer_task_leased"),d.Literal("artificer_context_built"),d.Literal("artificer_run_started"),d.Literal("artificer_run_failed"),d.Literal("artificer_output_invalid"),d.Literal("artificer_output_validated"),d.Literal("artificer_task_succeeded"),d.Literal("artificer_task_retried"),d.Literal("artificer_task_failed"),d.Literal("artificer_implementation_plan_generated"),d.Literal("artificer_cancel_run_failed"),d.Literal("artificer_mark_succeeded_failed"),d.Literal("artificer_update_output_failed"),d.Literal("artificer_dependency_not_succeeded"),d.Literal("artificer_lineage_resolve_failed"),d.Literal("artificer_lineage_partial"),d.Literal("artificer_artifact_write_failed"),d.Literal("artificer_wrong_task_kind"),d.Literal("artificer_output_extraction_failed"),d.Literal("artificer_mark_failed_error"),d.Literal("artificer_mark_retry_error"),d.Literal("artificer_evidence_readiness_checked"),d.Literal("artificer_blocked_on_owner_evidence"),d.Literal("artificer_intent_basis_checked"),d.Literal("artificer_blocked_on_intent_basis"),d.Literal("artificer_owner_evidence_attached"),d.Literal("artificer_owner_evidence_resumed"),d.Literal("evaluator_task_leased"),d.Literal("evaluator_context_built"),d.Literal("evaluator_run_started"),d.Literal("evaluator_run_failed"),d.Literal("evaluator_output_invalid"),d.Literal("evaluator_output_validated"),d.Literal("evaluator_task_succeeded"),d.Literal("evaluator_task_retried"),d.Literal("evaluator_task_failed"),d.Literal("evaluator_cancel_run_failed"),d.Literal("evaluator_mark_succeeded_failed"),d.Literal("evaluator_update_output_failed"),d.Literal("evaluator_dependency_not_succeeded"),d.Literal("evaluator_lineage_resolve_failed"),d.Literal("evaluator_lineage_partial"),d.Literal("evaluator_artifact_write_failed"),d.Literal("evaluator_wrong_task_kind"),d.Literal("evaluator_output_extraction_failed"),d.Literal("evaluator_mark_failed_error"),d.Literal("evaluator_mark_retry_error"),d.Literal("evaluator_decision_recorded"),d.Literal("scribe_task_leased"),d.Literal("scribe_context_built"),d.Literal("scribe_run_started"),d.Literal("scribe_run_failed"),d.Literal("scribe_output_invalid"),d.Literal("scribe_output_validated"),d.Literal("scribe_task_succeeded"),d.Literal("scribe_task_retried"),d.Literal("scribe_task_failed"),d.Literal("scribe_principle_draft_generated"),d.Literal("scribe_intent_contract_string_normalized"),d.Literal("scribe_cancel_run_failed"),d.Literal("scribe_mark_succeeded_failed"),d.Literal("scribe_update_output_failed"),d.Literal("scribe_prior_validator_errors_suppressed"),d.Literal("scribe_anchor_material_unavailable"),d.Literal("scribe_last_validator_errors_cleanup_conflict"),d.Literal("scribe_dependency_not_succeeded"),d.Literal("scribe_lineage_resolve_failed"),d.Literal("scribe_lineage_partial"),d.Literal("scribe_artifact_write_failed"),d.Literal("scribe_wrong_task_kind"),d.Literal("scribe_output_extraction_failed"),d.Literal("scribe_mark_failed_error"),d.Literal("scribe_mark_retry_error"),d.Literal("scribe_identity_stamp_failed"),d.Literal("scribe_identity_stamp_skipped"),d.Literal("scribe_identity_preflight_blocked"),d.Literal("evaluator_identity_stamp_success"),d.Literal("evaluator_identity_stamp_failed"),d.Literal("dreamer_identity_assertion_not_carried"),d.Literal("scribe_formation_context_failed"),d.Literal("scribe_formation_context_invalid"),d.Literal("scribe_formation_context_resolved"),d.Literal("scribe_formation_context_skipped"),d.Literal("scribe_formation_dreamer_artifact_missing"),d.Literal("dreamer_l2_turn"),d.Literal("dreamer_l2_complete"),d.Literal("dreamer_l2_fallback_to_l1"),d.Literal("artificer_l2_turn"),d.Literal("artificer_l2_complete"),d.Literal("artificer_repair_replay_evidence_resolved"),d.Literal("artificer_repair_replay_evidence_unavailable"),d.Literal("evaluator_adversarial_replay"),d.Literal("evaluator_adversarial_replay_skipped"),d.Literal("evaluator_artificer_owner_stamp_repair_required"),d.Literal("evaluator_prompt_code_artifact_ignored"),d.Literal("evaluator_rule_host_input_contract_skipped"),d.Literal("evaluator_host_alias_case_skipped"),d.Literal("evaluator_adversarial_replay_diagnostic_passed"),d.Literal("evaluator_adversarial_replay_diagnostic_failed"),d.Literal("evaluator_adversarial_replay_case_id_conflict"),d.Literal("evaluator_rule_assembled"),d.Literal("evaluator_rule_assembly_failed"),d.Literal("artificer_agent_draft_insert_failed"),d.Literal("artificer_agent_draft_inserted"),d.Literal("artificer_diag_llm_rate_limit_degraded"),d.Literal("artificer_lineage_echo_corrected"),d.Literal("artificer_no_dependencies"),d.Literal("artificer_no_scribe_artifact"),d.Literal("artificer_prior_validator_errors_suppressed"),d.Literal("artificer_scribe_dep_selected"),d.Literal("dreamer_agent_draft_insert_failed"),d.Literal("dreamer_agent_draft_inserted"),d.Literal("dreamer_artifact_write_failed"),d.Literal("dreamer_diag_llm_rate_limit_degraded"),d.Literal("dreamer_lineage_echo_corrected"),d.Literal("dreamer_lineage_partial"),d.Literal("dreamer_lineage_resolve_failed"),d.Literal("dreamer_wrong_task_kind"),d.Literal("philosopher_agent_draft_insert_failed"),d.Literal("philosopher_agent_draft_inserted"),d.Literal("philosopher_diag_llm_rate_limit_degraded"),d.Literal("philosopher_lineage_echo_corrected"),d.Literal("scribe_agent_draft_insert_failed"),d.Literal("scribe_agent_draft_inserted"),d.Literal("scribe_diag_llm_rate_limit_degraded"),d.Literal("scribe_lineage_echo_corrected"),d.Literal("evaluator_adversarial_replay_error"),d.Literal("evaluator_adversarial_result_persist_failed"),d.Literal("evaluator_agent_draft_insert_failed"),d.Literal("evaluator_agent_draft_inserted"),d.Literal("evaluator_artificer_dep_selected"),d.Literal("evaluator_attribution_scope_resolve_failed"),d.Literal("evaluator_completion_intent_finalize_terminal"),d.Literal("evaluator_completion_intent_read_failed"),d.Literal("evaluator_completion_intent_resumed"),d.Literal("evaluator_completion_intent_stale_epoch"),d.Literal("evaluator_completion_mark_applied_failed"),d.Literal("evaluator_completion_record_failed"),d.Literal("evaluator_diag_llm_rate_limit_degraded"),d.Literal("evaluator_formation_context_failed"),d.Literal("evaluator_formation_context_invalid"),d.Literal("evaluator_formation_context_resolved"),d.Literal("evaluator_formation_context_skipped"),d.Literal("evaluator_formation_dreamer_artifact_missing"),d.Literal("evaluator_governance_effect_out_of_scope_selected"),d.Literal("evaluator_governance_effect_principle_pain_mismatch_selected"),d.Literal("evaluator_intent_contract_absent_on_principle"),d.Literal("evaluator_lineage_echo_corrected"),d.Literal("evaluator_lineage_integrity_violation"),d.Literal("evaluator_no_artificer_artifact"),d.Literal("evaluator_no_dependencies"),d.Literal("evaluator_no_principle_bearer_found"),d.Literal("evaluator_owner_resolution_applying"),d.Literal("evaluator_owner_resolution_rejected_by_policy"),d.Literal("evaluator_pain_reason_summary_skipped"),d.Literal("evaluator_previous_evaluation_context_degraded"),d.Literal("evaluator_principle_bearer_ambiguous"),d.Literal("evaluator_prior_validator_errors_suppressed"),d.Literal("evaluator_repair_loop_idempotent_reuse"),d.Literal("evaluator_repair_loop_lineage_missing"),d.Literal("evaluator_repair_loop_mark_review_failed"),d.Literal("evaluator_repair_loop_max_iterations"),d.Literal("evaluator_repair_loop_seeder_missing"),d.Literal("evaluator_repair_loop_test_out_of_scope"),d.Literal("evaluator_repair_task_seed_failed"),d.Literal("evaluator_repair_task_seeded"),d.Literal("evaluator_rule_principle_id_resolve_failed"),d.Literal("evaluator_scribe_artifact_not_principle"),d.Literal("evaluator_scribe_artifact_unresolvable"),d.Literal("evaluator_source_validation_update_failed"),d.Literal("evaluator_source_validation_update_not_found"),d.Literal("evaluator_task_needs_human_review"),d.Literal("evaluator_v2_adversarial_cases_skipped"),d.Literal("diag_router_agent_draft_insert_failed"),d.Literal("diag_router_agent_draft_inserted"),d.Literal("diag_router_artifact_commit_failed"),d.Literal("diag_router_artifact_committed"),d.Literal("diag_router_artifact_write_failed"),d.Literal("diag_router_cancel_run_failed"),d.Literal("diag_router_candidate_registered"),d.Literal("diag_router_context_built"),d.Literal("diag_router_diag_llm_rate_limit_degraded"),d.Literal("diag_router_mark_failed_error"),d.Literal("diag_router_mark_retry_error"),d.Literal("diag_router_mark_succeeded_failed"),d.Literal("diag_router_output_extraction_failed"),d.Literal("diag_router_output_invalid"),d.Literal("diag_router_output_validated"),d.Literal("diag_router_router_completed"),d.Literal("diag_router_run_failed"),d.Literal("diag_router_run_started"),d.Literal("diag_router_task_failed"),d.Literal("diag_router_task_leased"),d.Literal("diag_router_task_retried"),d.Literal("diag_router_task_succeeded"),d.Literal("diag_router_update_output_failed"),d.Literal("diag_router_wrong_task_kind"),d.Literal("diag_distiller_agent_draft_insert_failed"),d.Literal("diag_distiller_agent_draft_inserted"),d.Literal("diag_distiller_artifact_write_failed"),d.Literal("diag_distiller_cancel_run_failed"),d.Literal("diag_distiller_context_built"),d.Literal("diag_distiller_diag_llm_rate_limit_degraded"),d.Literal("diag_distiller_distiller_completed"),d.Literal("diag_distiller_lineage_integrity_violation"),d.Literal("diag_distiller_lineage_partial"),d.Literal("diag_distiller_lineage_resolve_failed"),d.Literal("diag_distiller_mark_failed_error"),d.Literal("diag_distiller_mark_retry_error"),d.Literal("diag_distiller_mark_succeeded_failed"),d.Literal("diag_distiller_output_extraction_failed"),d.Literal("diag_distiller_output_invalid"),d.Literal("diag_distiller_output_validated"),d.Literal("diag_distiller_run_failed"),d.Literal("diag_distiller_run_started"),d.Literal("diag_distiller_task_failed"),d.Literal("diag_distiller_task_leased"),d.Literal("diag_distiller_task_retried"),d.Literal("diag_distiller_task_succeeded"),d.Literal("diag_distiller_update_output_failed"),d.Literal("diag_distiller_wrong_task_kind"),d.Literal("diag_rootcause_agent_draft_insert_failed"),d.Literal("diag_rootcause_agent_draft_inserted"),d.Literal("diag_rootcause_artifact_write_failed"),d.Literal("diag_rootcause_cancel_run_failed"),d.Literal("diag_rootcause_context_built"),d.Literal("diag_rootcause_diag_llm_rate_limit_degraded"),d.Literal("diag_rootcause_intent_doc_read_failed"),d.Literal("diag_rootcause_lineage_partial"),d.Literal("diag_rootcause_lineage_resolve_failed"),d.Literal("diag_rootcause_mark_failed_error"),d.Literal("diag_rootcause_mark_retry_error"),d.Literal("diag_rootcause_mark_succeeded_failed"),d.Literal("diag_rootcause_output_extraction_failed"),d.Literal("diag_rootcause_output_invalid"),d.Literal("diag_rootcause_output_validated"),d.Literal("diag_rootcause_rootcause_completed"),d.Literal("diag_rootcause_run_failed"),d.Literal("diag_rootcause_run_started"),d.Literal("diag_rootcause_task_failed"),d.Literal("diag_rootcause_task_leased"),d.Literal("diag_rootcause_task_retried"),d.Literal("diag_rootcause_task_succeeded"),d.Literal("diag_rootcause_update_output_failed"),d.Literal("diag_rootcause_wrong_task_kind"),d.Literal("rollout_activation_candidate_resolved"),d.Literal("rollout_activation_candidate_unresolved"),d.Literal("candidate_intake_failed"),d.Literal("admission_persistence_failed"),d.Literal("reuse_evaluation_recommended"),d.Literal("reuse_evaluation_unavailable"),d.Literal("reuse_gate_triggered"),d.Literal("rollout_completion_intent_finalize_terminal"),d.Literal("rollout_completion_intent_resumed"),d.Literal("rollout_completion_intent_stale_epoch"),d.Literal("rollout_completion_mark_applied_failed"),d.Literal("rollout_completion_record_failed"),d.Literal("rollout_dispatch_not_wired"),d.Literal("rollout_mark_human_review_failed"),d.Literal("rollout_owner_resolution_applying"),d.Literal("rollout_reviewer_artifact_write_failed"),d.Literal("rollout_reviewer_cancel_run_failed"),d.Literal("rollout_reviewer_context_built"),d.Literal("rollout_reviewer_dependency_not_succeeded"),d.Literal("rollout_reviewer_evaluator_dep_selected"),d.Literal("rollout_reviewer_lineage_echo_corrected"),d.Literal("rollout_reviewer_mark_failed_error"),d.Literal("rollout_reviewer_mark_retry_error"),d.Literal("rollout_reviewer_mark_succeeded_failed"),d.Literal("rollout_reviewer_no_dependencies"),d.Literal("rollout_reviewer_no_evaluator_artifact"),d.Literal("rollout_reviewer_no_scribe_artifact"),d.Literal("rollout_reviewer_scribe_dep_selected"),d.Literal("rollout_principle_validated"),d.Literal("rollout_principle_validation_update_failed"),d.Literal("rollout_principle_validation_update_not_found"),d.Literal("rollout_reviewer_output_invalid"),d.Literal("rollout_reviewer_output_validated"),d.Literal("rollout_reviewer_run_failed"),d.Literal("rollout_reviewer_run_started"),d.Literal("rollout_reviewer_task_failed"),d.Literal("rollout_reviewer_task_leased"),d.Literal("rollout_reviewer_task_needs_human_review"),d.Literal("rollout_reviewer_task_retried"),d.Literal("rollout_reviewer_task_succeeded"),d.Literal("rollout_reviewer_update_output_failed"),d.Literal("rollout_reviewer_wrong_task_kind"),d.Literal("rollout_revision_already_materialized"),d.Literal("rollout_revision_not_wired"),d.Literal("rollout_revision_record_failed"),d.Literal("rollout_revision_route_failed"),d.Literal("rollout_revision_routed"),d.Literal("admission_decision"),d.Literal("diagnosis_task_created"),d.Literal("evidence_only_recorded"),d.Literal("skipped_refused")]),PMe=d.Object({eventType:WBt,traceId:d.String({minLength:1}),timestamp:d.String({minLength:1}),sessionId:d.String(),agentId:d.Optional(d.String()),payload:d.Record(d.String(),d.Unknown())});function LMe(t){if(typeof t!="object"||t===null||Array.isArray(t))return{valid:!1,errors:["Input must be a non-null object"]};let e=t;if(typeof e.timestamp=="string"&&isNaN(Date.parse(e.timestamp)))return{valid:!1,errors:["timestamp must be a valid ISO 8601 date string"]};let n=[...it.Errors(PMe,t)];return n.length>0?{valid:!1,errors:n.map(r=>`${r.path?`${r.path}: `:""}${r.message}`)}:{valid:!0,errors:[],event:it.Cast(PMe,t)}}var CC=class extends $Bt{emitTelemetry(e){let n;try{let r=LMe(e);!r.valid||!r.event?n=void 0:n=r.event}catch(r){let i={eventType:"degradation_triggered",traceId:e?.traceId?`fallback-${e.traceId}`:`fallback-${Date.now()}`,timestamp:new Date().toISOString(),sessionId:e?.sessionId??"",payload:{component:"StoreEventEmitter",trigger:"invalid_event",fallback:"dropped",severity:"warning",errors:[String(r)],originalEventType:e?.eventType??"unknown",originalTraceId:e?.traceId??"unknown"}};return this.emit("telemetry",i),this.emit(i.eventType,i),!0}if(!n){let r={eventType:"degradation_triggered",traceId:e?.traceId?`fallback-${e.traceId}`:`fallback-${Date.now()}`,timestamp:new Date().toISOString(),sessionId:e?.sessionId??"",payload:{component:"StoreEventEmitter",trigger:"invalid_event",fallback:"dropped",severity:"warning"}};return this.emit("telemetry",r),this.emit(r.eventType,r),!0}return this.emit("telemetry",n),this.emit(n.eventType,n),!0}onTelemetry(e){this.on("telemetry",e)}onEventType(e,n){this.on(e,n)}},bi=new CC;Do();In();Do();In();function VN(t,e,n){if(typeof t!="string")throw new z("storage_unavailable",`Run ${n} has invalid schema: /${e}: expected string, got ${t===null?"null":typeof t}`);if(t.length===0)throw new z("storage_unavailable",`Run ${n} has invalid schema: /${e}: expected non-empty string`);return t}function HBt(t,e,n){if(typeof t!="number"||!Number.isInteger(t))throw new z("storage_unavailable",`Run ${n} has invalid schema: /${e}: expected integer, got ${t===null?"null":typeof t}`);if(t<0)throw new z("storage_unavailable",`Run ${n} has invalid schema: /${e}: expected non-negative integer, got ${t}`);return t}function zN(t,e,n){if(t!=null){if(typeof t!="string")throw new z("storage_unavailable",`Run ${n} has invalid schema: /${e}: expected string|null, got ${typeof t}`);return t}}var YN=class extends z{validRuns;degradedRuns;constructor(e,n,r){super("storage_unavailable",e),this.validRuns=n,this.degradedRuns=r,this.name="MalformedRunError"}},g0=class t{connection;constructor(e){this.connection=e}async createRun(e){if(!it.Check(Gm,e.runtimeKind))throw new z("input_invalid",`Invalid runtime kind: ${e.runtimeKind}`);let n=this.connection.getDb(),r=new Date().toISOString();return n.prepare(`
312
312
  INSERT INTO runs (run_id, task_id, runtime_kind, execution_status, started_at, ended_at, reason, output_ref, attempt_number, created_at, updated_at, input_payload, output_payload, error_category)
313
313
  VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
314
314
  `).run(e.runId,e.taskId,e.runtimeKind,e.executionStatus,e.startedAt,e.endedAt??null,e.reason??null,e.outputRef??null,e.attemptNumber,r,r,e.inputPayload??null,e.outputPayload??null,e.errorCategory??null),await this.getRun(e.runId)}async getRun(e){let r=this.connection.getDb().prepare("SELECT * FROM runs WHERE run_id = ?").get(e);if(!r)return null;try{return t.rowToRecord(r)}catch(i){let o=i instanceof Error?i.message:String(i);throw new YN(`Run ${e} has invalid schema`,[],[{runId:e,error:o,rawRow:r}])}}async updateRun(e,n){let r=this.connection.getDb(),i=new Date().toISOString(),o=["updated_at = ?"],a=[i];if(n.endedAt!==void 0&&(o.push("ended_at = ?"),a.push(n.endedAt??null)),n.reason!==void 0&&(o.push("reason = ?"),a.push(n.reason??null)),n.outputPayload!==void 0&&(o.push("output_payload = ?"),a.push(n.outputPayload??null)),n.errorCategory!==void 0&&(o.push("error_category = ?"),a.push(n.errorCategory??null)),n.outputRef!==void 0&&(o.push("output_ref = ?"),a.push(n.outputRef??null)),n.executionStatus!==void 0&&(o.push("execution_status = ?"),a.push(n.executionStatus)),a.push(e),r.prepare(`UPDATE runs SET ${o.join(", ")} WHERE run_id = ?`).run(...a).changes===0)throw new z("storage_unavailable",`Run not found: ${e}`);return await this.getRun(e)}async listRunsByTask(e){let{runs:n,degradedRuns:r}=await this.listValidRunsByTaskTolerant(e);if(r.length>0)throw new YN(`Task ${e} has ${r.length} malformed run(s)`,n,r);return n}async listValidRunsByTaskTolerant(e){let r=this.connection.getDb().prepare("SELECT * FROM runs WHERE task_id = ? ORDER BY started_at ASC").all(e),i=[],o=[];for(let a of r)try{let s=t.rowToRecord(a);i.push(s)}catch(s){let c=a.run_id?String(a.run_id):"unknown",u=s instanceof Error?s.message:String(s);o.push({runId:c,error:u,rawRow:a})}return{runs:i,degradedRuns:o}}async deleteRun(e){return this.connection.getDb().prepare("DELETE FROM runs WHERE run_id = ?").run(e).changes>0}static rowToRecord(e){let n=typeof e.run_id=="string"&&e.run_id.length>0?e.run_id:"<missing run_id>",r={runId:VN(e.run_id,"run_id",n),taskId:VN(e.task_id,"task_id",n),runtimeKind:e.runtime_kind,executionStatus:e.execution_status,startedAt:VN(e.started_at,"started_at",n),attemptNumber:HBt(e.attempt_number,"attempt_number",n),createdAt:VN(e.created_at,"created_at",n),updatedAt:VN(e.updated_at,"updated_at",n),endedAt:zN(e.ended_at,"ended_at",n),reason:zN(e.reason,"reason",n),outputRef:zN(e.output_ref,"output_ref",n),inputPayload:zN(e.input_payload,"input_payload",n),outputPayload:zN(e.output_payload,"output_payload",n),errorCategory:e.error_category??void 0};if(!it.Check(EH,r)){let o=[...it.Errors(EH,r)].map(a=>`${a.path}: ${a.message}`).join(", ");throw new z("storage_unavailable",`Run ${n} has invalid schema: ${o}`)}return r}};_r();function hie(t,e){if(typeof t!="string"||t.length===0)throw new z("storage_unavailable",`Invalid task row: /${e}: expected non-empty string, got ${t===null?"null":typeof t}`);return t}function gie(t,e,n){if(t==null)return null;if(typeof t!="string")throw new z("storage_unavailable",`Task ${n} has invalid schema: /${e}: expected string|null, got ${typeof t}`);return t}var JN=class t{connection;constructor(e){this.connection=e}async createTask(e){let n=this.connection.getDb(),r=new Date().toISOString();return n.prepare(`