create-principles-disciple 1.134.6 → 1.134.7
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.
- package/console/dist/server/routes/update.js +27 -15
- package/console/dist/server/utils/gateway.d.ts +4 -0
- package/console/dist/server/utils/gateway.js +24 -4
- package/console/dist/ui/pages/settings/UpdatePage.js +5 -3
- package/console/dist/ui/utils/validators.d.ts +2 -0
- package/console/dist/ui/utils/validators.js +3 -0
- package/console/dist/web/assets/app.js +11 -5
- package/core/dist/runtime-v2/__tests__/resolve-runtime-config-from-pd-config.test.js +107 -1
- package/core/dist/runtime-v2/__tests__/resolve-runtime-config-from-pd-config.test.js.map +1 -1
- package/core/dist/runtime-v2/index.d.ts +1 -1
- package/core/dist/runtime-v2/index.d.ts.map +1 -1
- package/core/dist/runtime-v2/index.js +1 -1
- package/core/dist/runtime-v2/index.js.map +1 -1
- package/core/dist/runtime-v2/internalization/__tests__/candidate-lineage.pri717.test.d.ts +26 -0
- package/core/dist/runtime-v2/internalization/__tests__/candidate-lineage.pri717.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/internalization/__tests__/candidate-lineage.pri717.test.js +420 -0
- package/core/dist/runtime-v2/internalization/__tests__/candidate-lineage.pri717.test.js.map +1 -0
- package/core/dist/runtime-v2/internalization/__tests__/candidate-lineage.property.test.js +6 -1
- package/core/dist/runtime-v2/internalization/__tests__/candidate-lineage.property.test.js.map +1 -1
- package/core/dist/runtime-v2/internalization/candidate-lineage.d.ts +50 -1
- package/core/dist/runtime-v2/internalization/candidate-lineage.d.ts.map +1 -1
- package/core/dist/runtime-v2/internalization/candidate-lineage.js +204 -77
- package/core/dist/runtime-v2/internalization/candidate-lineage.js.map +1 -1
- package/core/dist/runtime-v2/pain-signal-runtime-factory.d.ts +41 -1
- package/core/dist/runtime-v2/pain-signal-runtime-factory.d.ts.map +1 -1
- package/core/dist/runtime-v2/pain-signal-runtime-factory.js +59 -9
- package/core/dist/runtime-v2/pain-signal-runtime-factory.js.map +1 -1
- package/core/package.json +1 -1
- package/host-runtime/dist/internalization-consumer-cycle.js +71 -23
- package/host-runtime/package.json +1 -1
- package/package.json +1 -1
- package/pd-cli/dist/commands/runtime-internalization-run-once.d.ts.map +1 -1
- package/pd-cli/dist/commands/runtime-internalization-run-once.js +23 -7
- package/pd-cli/dist/commands/runtime-internalization-run-once.js.map +1 -1
- package/pd-cli/dist/services/__tests__/runtime-adapter-resolver.test.js +4 -1
- package/pd-cli/dist/services/__tests__/runtime-adapter-resolver.test.js.map +1 -1
- package/pd-cli/dist/services/resolve-runtime-from-pd-config.d.ts +28 -2
- package/pd-cli/dist/services/resolve-runtime-from-pd-config.d.ts.map +1 -1
- package/pd-cli/dist/services/resolve-runtime-from-pd-config.js +19 -6
- package/pd-cli/dist/services/resolve-runtime-from-pd-config.js.map +1 -1
- package/pd-cli/dist/services/rulehost-readiness.js +1 -1
- package/pd-cli/dist/services/rulehost-readiness.js.map +1 -1
- package/pd-cli/dist/services/runtime-adapter-resolver.d.ts +14 -1
- package/pd-cli/dist/services/runtime-adapter-resolver.d.ts.map +1 -1
- package/pd-cli/dist/services/runtime-adapter-resolver.js +4 -1
- package/pd-cli/dist/services/runtime-adapter-resolver.js.map +1 -1
- package/pd-cli/package.json +1 -1
- package/plugin/dist/bundle.js +515 -515
- package/plugin/dist/governance-audit.js +1 -1
- package/plugin/dist/rulehost-evidence.js +1 -1
- package/release-manager/package.json +1 -1
|
@@ -483,7 +483,7 @@ ${n.comment}`:n.comment}this.doc.range[2]=n.offset;break}default:this.errors.pus
|
|
|
483
483
|
`);var lS=Object.create(null);lS.principle="principle-ledger";lS.rule="rule-candidate";lS.implementation="implementation-candidate";lS.prompt="prompt-injection-candidate";lS.defer="deferred";qo();qo();qo();Mi();var Jy={evaluatorRepairBudgetExhausted:"evaluator_repair_budget_exhausted",rolloutRevisionBudgetExhausted:"rollout_revision_budget_exhausted",rolloutActivationCandidateUnresolved:"rollout_activation_candidate_unresolved",evaluatorTestOutOfScope:"evaluator_test_out_of_scope",evaluatorRepairSeedFailed:"evaluator_repair_seed_failed",rolloutDispatchNotWired:"rollout_dispatch_not_wired",rolloutDispatchRefused:"rollout_dispatch_refused",rolloutRevisionTargetUnresolved:"rollout_revision_target_unresolved",rolloutRevisionRoutingNotWired:"rollout_revision_routing_not_wired",rolloutRevisionReopenFailed:"rollout_revision_reopen_failed",rolloutRevisionIterationMissing:"rollout_revision_iteration_missing",workspaceDirtyStall:"workspace_dirty_stall"},Hzt=new Set([Jy.evaluatorRepairBudgetExhausted,Jy.rolloutRevisionBudgetExhausted,Jy.rolloutActivationCandidateUnresolved,Jy.evaluatorTestOutOfScope]),ZXr=new Set([Jy.rolloutActivationCandidateUnresolved]);Mi();Mi();Mi();qo();var Xzt={canonicalDiagnosis:{workspaceDir:"/workspace/dogfood",painEvents:[{id:1,source:"manual",reason:"Before declaring a user journey complete verify full observable product surface",text:"Manual record: surface validation missing",created_at:"2026-06-13T10:00:00.000Z",score:90}],tasks:[{task_id:"diagnosis_manual_1",task_kind:"diagnostician",status:"succeeded",created_at:"2026-06-13T10:01:00.000Z",input_ref:"pain_1",diagnostic_json:JSON.stringify({rootCause:"Verifier checks static patterns but misses real runtime load."})}],candidates:[],dreamerTasks:[],ledgerPrinciples:[],trajectoryDbAvailable:!0,stateDbAvailable:!0},subRunDiagnosis:{workspaceDir:"/workspace/dogfood",painEvents:[{id:"2",source:"manual",reason:"Verify config file updates before committing",text:"Manual record: verify config changes",created_at:"2026-06-13T10:02:00.000Z",score:80}],tasks:[{task_id:"diag_router-diagnosis_manual_2",task_kind:"diagnostician",status:"succeeded",created_at:"2026-06-13T10:03:00.000Z",input_ref:"pain_2",diagnostic_json:JSON.stringify({rootCause:"No pre-commit hook runs pd config verification."})}],candidates:[{candidate_id:"cand-subrun-2",task_id:"diag_router-diagnosis_manual_2",title:"Verify config changes before commit",description:"Verify all config files conform to parser constraints prior to commit.",confidence:.95,recommendation_kind:"principle"}],dreamerTasks:[],ledgerPrinciples:[],trajectoryDbAvailable:!0,stateDbAvailable:!0},asyncPendingWithoutConsumer:{workspaceDir:"/workspace/dogfood",painEvents:[{id:3,source:"manual",reason:"Agent does not pause to clarify when command fails",created_at:"2026-06-13T10:04:00.000Z",score:75}],tasks:[{task_id:"diagnosis_manual_3",task_kind:"diagnostician",status:"pending",created_at:"2026-06-13T10:05:00.000Z",input_ref:"pain_3"}],candidates:[],dreamerTasks:[],ledgerPrinciples:[],trajectoryDbAvailable:!0,stateDbAvailable:!0},candidateGeneratedNoDreamer:{workspaceDir:"/workspace/dogfood",painEvents:[{id:4,source:"manual",reason:"Auto-consumer should lease tasks correctly",created_at:"2026-06-13T10:06:00.000Z",score:70}],tasks:[{task_id:"diagnosis_manual_4",task_kind:"diagnostician",status:"succeeded",created_at:"2026-06-13T10:07:00.000Z",input_ref:"pain_4"}],candidates:[{candidate_id:"cand-4",task_id:"diagnosis_manual_4",title:"Lease tasks correctly in auto-consumer",description:"Prevent ready dreamer tasks from staying pending.",confidence:.85,recommendation_kind:"principle"}],dreamerTasks:[],ledgerPrinciples:[],trajectoryDbAvailable:!0,stateDbAvailable:!0},dreamerPending:{workspaceDir:"/workspace/dogfood",painEvents:[{id:5,source:"manual",reason:"Dreamer pending task scenario",created_at:"2026-06-13T10:08:00.000Z",score:85}],tasks:[{task_id:"diagnosis_manual_5",task_kind:"diagnostician",status:"succeeded",created_at:"2026-06-13T10:09:00.000Z",input_ref:"pain_5"}],candidates:[{candidate_id:"cand-5",task_id:"diagnosis_manual_5",title:"Dreamer pending title",description:"Dreamer pending description",confidence:.9}],dreamerTasks:[{task_id:"dreamer-cand-5-prompt",task_kind:"dreamer",status:"pending"}],ledgerPrinciples:[],trajectoryDbAvailable:!0,stateDbAvailable:!0},dreamerRunning:{workspaceDir:"/workspace/dogfood",painEvents:[{id:6,source:"manual",reason:"Dreamer running task scenario",created_at:"2026-06-13T10:10:00.000Z",score:85}],tasks:[{task_id:"diagnosis_manual_6",task_kind:"diagnostician",status:"succeeded",created_at:"2026-06-13T10:11:00.000Z",input_ref:"pain_6"}],candidates:[{candidate_id:"cand-6",task_id:"diagnosis_manual_6",title:"Dreamer running title",description:"Dreamer running description",confidence:.9}],dreamerTasks:[{task_id:"dreamer-cand-6-prompt",task_kind:"dreamer",status:"running"}],ledgerPrinciples:[],trajectoryDbAvailable:!0,stateDbAvailable:!0},dreamerFailed:{workspaceDir:"/workspace/dogfood",painEvents:[{id:7,source:"manual",reason:"Dreamer failed task scenario",created_at:"2026-06-13T10:12:00.000Z",score:85}],tasks:[{task_id:"diagnosis_manual_7",task_kind:"diagnostician",status:"succeeded",created_at:"2026-06-13T10:13:00.000Z",input_ref:"pain_7"}],candidates:[{candidate_id:"cand-7",task_id:"diagnosis_manual_7",title:"Dreamer failed title",description:"Dreamer failed description",confidence:.9}],dreamerTasks:[{task_id:"dreamer-cand-7-prompt",task_kind:"dreamer",status:"failed"}],ledgerPrinciples:[],trajectoryDbAvailable:!0,stateDbAvailable:!0},dreamerSucceeded:{workspaceDir:"/workspace/dogfood",painEvents:[{id:8,source:"manual",reason:"Dreamer succeeded task scenario",created_at:"2026-06-13T10:14:00.000Z",score:85}],tasks:[{task_id:"diagnosis_manual_8",task_kind:"diagnostician",status:"succeeded",created_at:"2026-06-13T10:15:00.000Z",input_ref:"pain_8"}],candidates:[{candidate_id:"cand-8",task_id:"diagnosis_manual_8",title:"Dreamer succeeded title",description:"Dreamer succeeded description",confidence:.9}],dreamerTasks:[{task_id:"dreamer-cand-8-prompt",task_kind:"dreamer",status:"succeeded"}],ledgerPrinciples:[{id:"principle-8",derivedFromPainIds:["pain_8"],status:"candidate",text:"Dreamer succeeded principle text"}],trajectoryDbAvailable:!0,stateDbAvailable:!0},malformedLedgerDegradedJson:{workspaceDir:"/workspace/dogfood",painEvents:[{id:9,source:"manual",reason:"Malformed data handling",created_at:"2026-06-13T10:16:00.000Z",score:80}],tasks:[{task_id:"diagnosis_manual_9",task_kind:"diagnostician",status:"succeeded",created_at:"2026-06-13T10:17:00.000Z",input_ref:"pain_9",diagnostic_json:"{invalid-json}"}],candidates:[],dreamerTasks:[],ledgerPrinciples:[],trajectoryDbAvailable:!0,stateDbAvailable:!0},workspaceMismatchWarning:{workspaceDir:"/workspace/dogfood",painEvents:[{id:10,source:"hook",reason:"Workspace mismatch event",created_at:"2026-06-13T10:18:00.000Z",score:60}],tasks:[{task_id:"diagnosis_other_999",task_kind:"diagnostician",status:"succeeded",created_at:"2026-06-13T10:00:00.000Z",input_ref:"pain_999"}],candidates:[],dreamerTasks:[],ledgerPrinciples:[],trajectoryDbAvailable:!0,stateDbAvailable:!0},autoConsumerSuccess:{workspaceDir:"/workspace/dogfood",painEvents:[{id:11,source:"manual",reason:"Auto-consumer leasing and successor creation success",created_at:"2026-06-13T10:20:00.000Z",score:95}],tasks:[{task_id:"diagnosis_manual_11",task_kind:"diagnostician",status:"succeeded",created_at:"2026-06-13T10:21:00.000Z",input_ref:"pain_11"}],candidates:[{candidate_id:"cand-11",task_id:"diagnosis_manual_11",title:"Auto-consumer successor task",description:"Verifies that successor philosopher task is created after dreamer success.",confidence:.9}],dreamerTasks:[{task_id:"dreamer-cand-11-prompt",task_kind:"dreamer",status:"succeeded"}],ledgerPrinciples:[{id:"principle-11",derivedFromPainIds:["pain_11"],status:"active"}],trajectoryDbAvailable:!0,stateDbAvailable:!0},autoConsumerFailure:{workspaceDir:"/workspace/dogfood",painEvents:[{id:12,source:"manual",reason:"Auto-consumer failure persistence check",created_at:"2026-06-13T10:22:00.000Z",score:95}],tasks:[{task_id:"diagnosis_manual_12",task_kind:"diagnostician",status:"succeeded",created_at:"2026-06-13T10:23:00.000Z",input_ref:"pain_12"}],candidates:[{candidate_id:"cand-12",task_id:"diagnosis_manual_12",title:"Auto-consumer failure details",description:"Dreamer failed task description",confidence:.9}],dreamerTasks:[{task_id:"dreamer-cand-12-prompt",task_kind:"dreamer",status:"failed"}],ledgerPrinciples:[],trajectoryDbAvailable:!0,stateDbAvailable:!0}};Mi();var g5e={manifestId:"dreamer.v1",schemaVersion:$I,runnerKind:"dreamer",tier0:["pain.summary.headline","diagnosis.summary.headline"],tier1:["pain.summary.category","pain.summary.severity","pain.summary.rootSymptom","diagnosis.summary.rootCause","diagnosis.summary.affectedComponents"],tier2:[],budgetTokens:1500,priority:["diagnosis.summary.rootCause","pain.summary.rootSymptom","pain.summary.category","pain.summary.severity","diagnosis.summary.affectedComponents","pain.summary.headline","diagnosis.summary.headline"]},A5e={manifestId:"scribe.v1",schemaVersion:$I,runnerKind:"scribe",tier0:["philosopher.summary.headline","philosopher.predecessorSummary.headline"],tier1:["philosopher.summary.thesis","philosopher.summary.principleTitle","philosopher.summary.principleScope","philosopher.predecessorSummary.badDecision","philosopher.predecessorSummary.betterDecision","philosopher.predecessorSummary.rationale","philosopher.predecessorSummary.riskLevel","philosopher.predecessorSummary.strategicPerspective"],tier2:[],budgetTokens:1800,priority:["philosopher.summary.principleTitle","philosopher.summary.thesis","philosopher.predecessorSummary.betterDecision","philosopher.predecessorSummary.riskLevel","philosopher.predecessorSummary.rationale","philosopher.summary.principleScope","philosopher.predecessorSummary.badDecision","philosopher.predecessorSummary.strategicPerspective","philosopher.summary.headline","philosopher.predecessorSummary.headline"]},y5e={manifestId:"artificer.v1",schemaVersion:$I,runnerKind:"artificer",tier0:["scribe.summary.headline","scribe.predecessorSummary.headline"],tier1:["scribe.summary.principleText","scribe.summary.scope","scribe.summary.exceptions","scribe.summary.intentOwner","scribe.summary.intentForbidden","scribe.summary.intentValidation"],tier2:["dreamer.raw.candidates.0.betterDecision","dreamer.raw.candidates.0.rationale","dreamer.raw.candidates.0.riskLevel"],budgetTokens:2e3,priority:["scribe.summary.principleText","scribe.summary.intentOwner","dreamer.raw.candidates.0.betterDecision","scribe.summary.scope","scribe.summary.intentForbidden","dreamer.raw.candidates.0.rationale","dreamer.raw.candidates.0.riskLevel","scribe.summary.exceptions","scribe.summary.intentValidation","scribe.summary.headline","scribe.predecessorSummary.headline"]},I5e={manifestId:"artificer.repair.v1",schemaVersion:$I,runnerKind:"artificer",tier0:["scribe.summary.principleText","replay.summary.passed","replay.summary.failedCaseCount"],tier1:["repair.summary.requiredChanges","repair.summary.concerns","replay.summary.failureTypes","scribe.summary.intentOwner","scribe.summary.intentForbidden","scribe.summary.intentValidation"],tier2:["replay.raw.traceFailures","replay.raw.systemFailures","replay.raw.globalViolations"],budgetTokens:2400,priority:["scribe.summary.principleText","scribe.summary.intentOwner","replay.raw.traceFailures","repair.summary.requiredChanges","scribe.summary.intentForbidden","replay.raw.systemFailures","replay.raw.globalViolations","repair.summary.concerns","scribe.summary.intentValidation","replay.summary.passed","replay.summary.failedCaseCount","replay.summary.failureTypes"]},YF={manifestId:"evaluator.stage1.v1",schemaVersion:$I,runnerKind:"evaluator",tier0:["artificer.summary.headline","artificer.predecessorSummary.headline"],tier1:["scribe.summary.principleText","scribe.summary.scope","scribe.summary.intentOwner","scribe.summary.intentForbidden","scribe.summary.intentValidation","artificer.summary.changedFiles","artificer.summary.apiSurface","artificer.summary.risks","dreamer.summary.badDecision","dreamer.summary.betterDecision","dreamer.summary.rationale","dreamer.summary.riskLevel","diagnostician.summary.rootSymptom","diagnostician.summary.category"],tier2:[],budgetTokens:3e3,priority:["scribe.summary.principleText","scribe.summary.intentOwner","dreamer.summary.betterDecision","diagnostician.summary.rootSymptom","artificer.summary.apiSurface","dreamer.summary.riskLevel","dreamer.summary.rationale","scribe.summary.scope","scribe.summary.intentForbidden","artificer.summary.risks","diagnostician.summary.category","scribe.summary.intentValidation","artificer.summary.changedFiles","dreamer.summary.badDecision","artificer.summary.headline","artificer.predecessorSummary.headline"]},E5e={...YF,manifestId:"evaluator.stage2.v1",tier2:["diagnostician.raw.evidence","dreamer.raw.candidates"],budgetTokens:4500,priority:[...YF.priority,"dreamer.raw.candidates","diagnostician.raw.evidence"]},Zzt=[g5e,A5e,y5e,I5e,YF,E5e],y9r=Array.from(new Set(Zzt.map(e=>e.runnerKind)));qo();Mi();qo();Mi();qo();Mi();qo();Mi();Mi();qo();Mi();qo();qo();Mi();qo();Mi();Mi();import $ti from"better-sqlite3";import Kti from"better-sqlite3";import tni from"better-sqlite3";var Tc;(function(e){e[e.Seed=1]="Seed",e[e.Sprout=2]="Sprout",e[e.Sapling=3]="Sapling",e[e.Tree=4]="Tree",e[e.Forest=5]="Forest"})(Tc||(Tc={}));var s8t=[{tier:Tc.Seed,name:"Seed",requiredPoints:0,permissions:{maxLinesPerWrite:150,maxFilesPerTask:3,allowRiskPath:!1,allowSubagentSpawn:!0}},{tier:Tc.Sprout,name:"Sprout",requiredPoints:50,permissions:{maxLinesPerWrite:300,maxFilesPerTask:5,allowRiskPath:!1,allowSubagentSpawn:!0}},{tier:Tc.Sapling,name:"Sapling",requiredPoints:200,permissions:{maxLinesPerWrite:500,maxFilesPerTask:10,allowRiskPath:!0,allowSubagentSpawn:!0}},{tier:Tc.Tree,name:"Tree",requiredPoints:500,permissions:{maxLinesPerWrite:1e3,maxFilesPerTask:20,allowRiskPath:!0,allowSubagentSpawn:!0}},{tier:Tc.Forest,name:"Forest",requiredPoints:1e3,permissions:{maxLinesPerWrite:Number.MAX_SAFE_INTEGER,maxFilesPerTask:Number.MAX_SAFE_INTEGER,allowRiskPath:!0,allowSubagentSpawn:!0}}];var a8t={doubleRewardCooldownMs:3600*1e3,maxRecentEvents:50,difficultyPenalty:{tier4Trivial:.1,tier4Normal:.5,tier5Trivial:.1,tier5Normal:.5}};var Xy=c.Union([c.Literal(Tc.Seed),c.Literal(Tc.Sprout),c.Literal(Tc.Sapling),c.Literal(Tc.Tree),c.Literal(Tc.Forest)]),s9=c.Object({maxLinesPerWrite:c.Number(),maxFilesPerTask:c.Number(),allowRiskPath:c.Boolean(),allowSubagentSpawn:c.Boolean()}),c8t=c.Object({tier:Xy,name:c.String(),requiredPoints:c.Number(),permissions:s9}),b5e=c.Union([c.Literal("trivial"),c.Literal("normal"),c.Literal("hard")]),u8t=c.Object({basePoints:c.Number(),description:c.String()}),C5e=c.Union([c.Literal("success"),c.Literal("failure")]),T5e=c.Object({id:c.String(),timestamp:c.String(),type:C5e,taskHash:c.String(),taskDifficulty:b5e,toolName:c.Optional(c.String()),filePath:c.Optional(c.String()),reason:c.Optional(c.String()),pointsAwarded:c.Number(),isDoubleReward:c.Boolean(),sessionId:c.Optional(c.String())}),k5e=c.Object({totalSuccesses:c.Number(),totalFailures:c.Number(),consecutiveSuccesses:c.Number(),consecutiveFailures:c.Number(),doubleRewardsEarned:c.Number(),tierPromotions:c.Number(),pointsByDifficulty:c.Object({trivial:c.Number(),normal:c.Number(),hard:c.Number()})}),S5e=c.Tuple([c.String(),c.String()]),R5e=c.Object({version:c.Literal("2.0"),agentId:c.String(),totalPoints:c.Number(),availablePoints:c.Number(),currentTier:Xy,lastDoubleRewardTime:c.Optional(c.String()),recentFailureHashes:c.Array(S5e),stats:k5e,recentEvents:c.Array(T5e),lastUpdated:c.String()}),l8t=c.Object({scorecard:R5e,archivedStats:c.Object({totalEventsProcessed:c.Number(),pointsFromTrivial:c.Number(),pointsFromNormal:c.Number(),pointsFromHard:c.Number()})}),d8t=c.Object({doubleRewardCooldownMs:c.Number(),maxRecentEvents:c.Number(),difficultyPenalty:c.Object({tier4Trivial:c.Number(),tier4Normal:c.Number(),tier5Trivial:c.Number(),tier5Normal:c.Number()})}),p8t=c.Object({totalEventsProcessed:c.Number(),pointsFromTrivial:c.Number(),pointsFromNormal:c.Number(),pointsFromHard:c.Number()}),f8t=c.Object({allowed:c.Boolean(),reason:c.Optional(c.String()),currentTier:c.Optional(Xy),requiredTier:c.Optional(Xy)}),m8t=c.Object({toolName:c.String(),filePath:c.Optional(c.String()),content:c.Optional(c.String()),lineCount:c.Optional(c.Number()),isRiskPath:c.Optional(c.Boolean())}),h8t=c.Object({previousTier:Xy,newTier:Xy,totalPoints:c.Number(),timestamp:c.String(),newPermissions:s9}),XF=c.Union([c.Literal("candidate"),c.Literal("probation"),c.Literal("active"),c.Literal("deprecated"),c.Literal("archived")]),a9=c.Union([c.Literal("deterministic"),c.Literal("weak_heuristic"),c.Literal("manual_only")]);var c9=c.Object({applicabilityTags:c.Array(c.String()),positiveSignals:c.Array(c.String()),negativeSignals:c.Array(c.String()),toolSequenceHints:c.Array(c.Array(c.String())),confidence:c.Union([c.Literal("high"),c.Literal("medium"),c.Literal("low")])}),D5e=c.Object({name:c.String(),type:c.Union([c.Literal("hook"),c.Literal("gate"),c.Literal("skill"),c.Literal("test"),c.Literal("prompt")]),triggerCondition:c.String(),enforcement:c.Union([c.Literal("block"),c.Literal("warn"),c.Literal("log")]),action:c.String(),implementationHint:c.Optional(c.String())}),B5e=c.Object({painPreventedCount:c.Number(),lastPainPreventedAt:c.Optional(c.String()),calculatedAt:c.String()}),g8t=c.Object({id:c.String(),version:c.Number(),text:c.String(),source:c.Object({painId:c.String(),painType:c.Union([c.Literal("tool_failure"),c.Literal("dispatch_error"),c.Literal("subagent_error"),c.Literal("user_frustration")]),timestamp:c.String()}),trigger:c.String(),action:c.String(),guardrails:c.Optional(c.Array(c.String())),contextTags:c.Array(c.String()),validation:c.Object({successCount:c.Number(),conflictCount:c.Number()}),status:XF,feedbackScore:c.Number(),usageCount:c.Number(),createdAt:c.String(),activatedAt:c.Optional(c.String()),deprecatedAt:c.Optional(c.String()),evaluability:a9,detectorMetadata:c.Optional(c9),abstractedPrinciple:c.Optional(c.String()),coreAxiomId:c.Optional(c.String()),priority:c.Optional(c.Union([c.Literal("P0"),c.Literal("P1"),c.Literal("P2")])),scope:c.Optional(c.Union([c.Literal("general"),c.Literal("domain")])),domain:c.Optional(c.String()),suggestedRules:c.Optional(c.Array(D5e)),valueMetrics:c.Optional(B5e)}),A8t=c.Union([c.Literal("pain_detected"),c.Literal("candidate_created"),c.Literal("principle_promoted"),c.Literal("principle_deprecated"),c.Literal("principle_rolled_back"),c.Literal("circuit_breaker_opened"),c.Literal("legacy_import")]),o9=c.Object({painId:c.String(),painType:c.Union([c.Literal("tool_failure"),c.Literal("dispatch_error"),c.Literal("subagent_error"),c.Literal("user_frustration")]),source:c.String(),reason:c.String(),score:c.Optional(c.Number()),sessionId:c.Optional(c.String()),agentId:c.Optional(c.String()),taskId:c.Optional(c.String()),traceId:c.Optional(c.String()),provenance:c.Optional(c.Union([c.Literal("host_context_bound"),c.Literal("owner_reported_no_host_trace"),c.Literal("automatic_hook"),c.Literal("openclaw_context_bound")])),hostKind:c.Optional(c.Union([c.Literal("openclaw"),c.Literal("codex")]))}),O5e=c.Object({painId:c.String(),principleId:c.String(),trigger:c.String(),action:c.String(),status:c.Literal("candidate"),painType:c.Optional(c.Union([c.Literal("tool_failure"),c.Literal("dispatch_error"),c.Literal("subagent_error"),c.Literal("user_frustration")])),evaluability:c.Optional(a9),detectorMetadata:c.Optional(c9),abstractedPrinciple:c.Optional(c.String()),coreAxiomId:c.Optional(c.String())}),N5e=c.Object({principleId:c.String(),from:XF,to:XF,reason:c.String(),successCount:c.Optional(c.Number())}),M5e=c.Object({principleId:c.String(),reason:c.String(),triggeredBy:c.Union([c.Literal("auto"),c.Literal("manual")])}),L5e=c.Object({principleId:c.String(),reason:c.String(),triggeredBy:c.Union([c.Literal("user_command"),c.Literal("auto_conflict")]),blacklistPattern:c.Optional(c.String()),relatedPainId:c.Optional(c.String())}),P5e=c.Object({taskId:c.String(),painId:c.String(),failCount:c.Number(),reason:c.String(),requireHuman:c.Boolean(),nextRetryAt:c.Optional(c.String())}),Q5e=c.Object({sourceFile:c.String(),content:c.String(),contentHash:c.Optional(c.String())}),y8t=c.Union([c.Object({ts:c.String(),type:c.Literal("pain_detected"),data:o9}),c.Object({ts:c.String(),type:c.Literal("pain_recorded"),data:o9}),c.Object({ts:c.String(),type:c.Literal("candidate_created"),data:O5e}),c.Object({ts:c.String(),type:c.Literal("principle_promoted"),data:N5e}),c.Object({ts:c.String(),type:c.Literal("principle_deprecated"),data:M5e}),c.Object({ts:c.String(),type:c.Literal("principle_rolled_back"),data:L5e}),c.Object({ts:c.String(),type:c.Literal("circuit_breaker_opened"),data:P5e}),c.Object({ts:c.String(),type:c.Literal("legacy_import"),data:Q5e})]);var F5e=c.Object({term:c.String(),weight:c.Number(),source:c.Union([c.Literal("seed"),c.Literal("llm"),c.Literal("user")]),addedAt:c.String(),hitCount:c.Optional(c.Number({minimum:0})),truePositiveCount:c.Optional(c.Number({minimum:0})),falsePositiveCount:c.Optional(c.Number({minimum:0})),lastHitAt:c.Optional(c.String())}),I8t=c.Object({keywords:c.Array(F5e),version:c.Integer({minimum:0}),lastOptimizedAt:c.String()}),E8t=c.Object({matched:c.Boolean(),matchedTerms:c.Array(c.String()),score:c.Number({minimum:0,maximum:1}),confidence:c.Number({minimum:0,maximum:1})});var V8t={on_change:"smoke",on_risk_change:"unit",commands:{}},eHe={enabled:!0,spiral_boost:20,min_threshold:15,max_threshold:70,backlog_trigger:6,hard_failure_trigger:1,low_recent_success_boost:15,high_recent_pain_boost:10},K8t={soft_capture_threshold:30,adaptive:{...eHe}},Y8t={enabled:!0,heartbeat_stale_hours:72},z8t={enabled:!0,max_file_size_bytes:10*1024*1024,fuzzy_match_enabled:!0,fuzzy_match_threshold:.8,skip_large_file_action:"warn"};var J8t={audit_level:"medium",risk_paths:[],evolution_mode:"realtime",tests:{...V8t},pain:{soft_capture_threshold:K8t.soft_capture_threshold,adaptive:{...eHe}},lifecycle:{...Y8t},edit_verification:{...z8t},custom_guards:[]};import*as Nx from"fs";var cHe=3,X7t=50;function uHe(e,t){let n=e+".tmp";Nx.writeFileSync(n,t,"utf8");let r;for(let i=0;i<cHe;i++)try{Nx.renameSync(n,e);return}catch(o){r=o;let s=o.code;if(s==="EPERM"||s==="EBUSY"||s==="EACCES"){if(i<cHe-1){let a=X7t*Math.pow(2,i),u=Date.now()+a,l=!1;for(;Date.now()<u;)if(!l&&Date.now()>=u-10){try{j("fs").accessSync?.(n)}catch{}l=!0}}continue}break}try{Nx.unlinkSync(n)}catch{}throw r}var lHe=7,ZF=class{logsDir;statsFile;logger;statsCache=new Map;eventBuffer=[];maxBufferSize=20;flushIntervalMs=3e4;flushTimer;currentEventsFile;currentDate;constructor(t,n){let r=zR(t);this.logsDir=pS.join(r,"logs"),os.existsSync(this.logsDir)||os.mkdirSync(this.logsDir,{recursive:!0}),this.statsFile=pS.join(this.logsDir,"daily-stats.json"),this.logger=n,this.loadStats(),this.startFlushTimer()}getEventsFile(t){return pS.join(this.logsDir,`events_${t}.jsonl`)}getTodayStr(){return new Date().toISOString().split("T")[0]??""}ensureEventsFile(){let t=this.getTodayStr();return(this.currentDate!==t||!this.currentEventsFile)&&(this.currentDate=t,this.currentEventsFile=this.getEventsFile(t),this.cleanupOldEventFiles(t)),this.currentEventsFile}cleanupOldEventFiles(t){if(!(lHe<=0))try{let n=Date.now()-lHe*24*60*60*1e3,r=os.readdirSync(this.logsDir);for(let i of r){if(!i.startsWith("events_")||!i.endsWith(".jsonl"))continue;let o=pS.join(this.logsDir,i);os.statSync(o).mtimeMs<n&&os.unlinkSync(o)}}catch(n){this.logger?.debug?.(`[PD] Event file cleanup failed (non-blocking): ${String(n)}`)}}recordToolCall(t,n){let r=n.error||n.exitCode!==void 0&&n.exitCode!==0?"failure":"success";this.record("tool_call",r,t,n)}recordPainSignal(t,n){this.record("pain_signal","detected",t,n)}recordRulePromotion(t){this.record("rule_promotion","promoted",void 0,t)}recordGovernanceAction(t,n){this.record("governance_action","approved",void 0,t),n?.flushImmediately&&this.flushEvents()}recordHookExecution(t,n){let r=t.error?"failure":"success";this.record("hook_execution",r,void 0,t),n?.flushImmediately&&this.flushEvents()}recordGateBlock(t,n){this.record("gate_block","blocked",t,n)}recordGateBypass(t,n){this.record("gate_bypass","bypassed",t,n)}recordEvolutionTask(t){this.record("evolution_task","enqueued",void 0,t)}recordEvolutionTaskCompleted(t){this.record("evolution_task","completed",void 0,t)}recordEmpathyRollback(t,n){this.record("empathy_rollback","rolled_back",t,n)}recordError(t,n,r){this.record("error","failure",t,{message:n,...r})}recordWarn(t,n,r){this.record("warn","failure",t,{message:n,...r})}recordDiagnosisTask(t){this.record("diagnosis_task","written",void 0,t)}recordHeartbeatDiagnosis(t){this.record("heartbeat_diagnosis","injected",void 0,t)}recordDiagnosticianReport(t){let n={success:"completed",missing_json:"failure",incomplete_fields:"failure"};this.record("diagnostician_report",n[t.category],void 0,t)}recordPrincipleCandidate(t){this.record("principle_candidate","created",void 0,t)}recordRuleEnforced(t){this.record("rule_enforced","matched",void 0,t)}recordRuleHostEvaluated(t){this.record("rulehost_evaluated","evaluated",void 0,t)}recordRuleHostBlocked(t){this.record("rulehost_blocked","blocked",void 0,t)}recordRuleHostRequireApproval(t){this.record("rulehost_requireApproval","requireApproval",void 0,t)}recordRuleHostAutoCorrectProposed(t){this.record("rulehost_auto_correct_proposed","auto_correct",void 0,t)}recordRuleHostAutoCorrectApplied(t){this.record("rulehost_auto_correct_applied","auto_correct",void 0,t)}recordRuntimeV2ActivationsInjected(t){this.record("runtime_v2_prompt_activations_injected","injected",t.sessionId,t)}recordRuleHostUnhealthy(t){this.record("rulehost_unhealthy","failure",void 0,t)}recordRuleHostSkipped(t){this.record("rulehost_skipped","failure",void 0,t)}recordTrajectoryObservabilityFailure(t){this.record("trajectory_observability_failure","failure",t.sessionId,t)}redactEventData(t,n){try{if(!new Set(["tool_call","rulehost_evaluated","rulehost_blocked","rulehost_requireApproval","rulehost_auto_correct_proposed","rulehost_auto_correct_applied","rulehost_skipped","trajectory_observability_failure","rule_enforced","hook_execution","gate_block","gate_bypass"]).has(t))return n;let i={};for(let[o,s]of Object.entries(n))if(typeof s=="string")i[o]=Yf(s);else if(Array.isArray(s))i[o]=s.map(a=>{if(typeof a=="string")return Yf(a);if(typeof a=="object"&&a!==null){let u={};for(let[l,d]of Object.entries(a))u[l]=typeof d=="string"?Yf(d):d;return u}return a});else if(typeof s=="object"&&s!==null){let a={};for(let[u,l]of Object.entries(s))typeof l=="string"?a[u]=Yf(l):a[u]=l;i[o]=a}else i[o]=s;return i}catch(r){return{redactionFailure:!0,redactionStatus:"failed","redaction.status":"failed",redactionReason:(r instanceof Error?r.message.slice(0,200):String(r).slice(0,200))||"unknown error",redactionDataDropped:!0,originalType:t,originalSessionId:n.sessionId??null}}}record(t,n,r,i){let o=new Date,s=this.formatDate(o),a=this.redactEventData(t,i),u={ts:o.toISOString(),date:s,type:t,category:n,sessionId:r,data:a};this.eventBuffer.push(u),this.updateStats(u),this.eventBuffer.length>=this.maxBufferSize&&this.flushEvents()}formatDate(t){return t.toISOString().split("T")[0]??""}loadStats(){if(os.existsSync(this.statsFile))try{let t=JSON.parse(os.readFileSync(this.statsFile,"utf-8"));for(let n in t)this.statsCache.set(n,t[n])}catch(t){this.logger&&this.logger.error(`[PD] Failed to load daily-stats.json: ${String(t)}`)}}updateStats(t){let n=this.statsCache.get(t.date);if(n||(n=FI(t.date),this.statsCache.set(t.date,n)),t.type==="tool_call"){n.tools.total++,t.category==="success"?n.tools.success++:n.tools.failure++;let r=t.data,i=r.gfiAfter??r.gfi;i!==void 0&&(n.gfi.samples++,n.gfi.total+=i,n.gfi.peak=Math.max(n.gfi.peak,i))}else if(t.type==="pain_signal"){let r=t.data;if(r.source==="user_empathy"){if(r.deduped)n.empathy.dedupedCount++;else{n.empathy.totalEvents++,n.empathy.totalPenaltyScore+=r.score||0,r.severity&&(n.empathy.bySeverity[r.severity]++,n.empathy.scoreBySeverity[r.severity]+=r.score||0),r.detection_mode&&n.empathy.byDetectionMode[r.detection_mode]++,r.origin&&n.empathy.byOrigin[r.origin]++;let o=r.confidence??1;o>=.8?n.empathy.confidenceDistribution.high++:o>=.5?n.empathy.confidenceDistribution.medium++:n.empathy.confidenceDistribution.low++}let i=n.empathy.totalEvents+n.empathy.dedupedCount;n.empathy.dedupeHitRate=i>0?n.empathy.dedupedCount/i:0}}else if(t.type==="hook_execution"){let r=t.data;if(n.hooks.total++,t.category==="success"?n.hooks.success++:n.hooks.failure++,r.hook){n.hooks.byType[r.hook]||(n.hooks.byType[r.hook]={total:0,success:0,failure:0});let i=n.hooks.byType[r.hook];i&&(i.total++,t.category==="success"?i.success++:i.failure++)}}else if(t.type==="empathy_rollback"){let r=t.data;n.empathy.rollbackCount++,n.empathy.rolledBackScore+=r.originalScore||0}else if(t.type==="rule_promotion")n.evolution.rulesPromoted++;else if(t.type==="evolution_task")t.category==="completed"?n.evolution.tasksCompleted++:t.category==="enqueued"&&n.evolution.tasksEnqueued++;else if(t.type==="diagnosis_task")n.evolution.diagnosisTasksWritten++;else if(t.type==="heartbeat_diagnosis")n.evolution.heartbeatsInjected++;else if(t.type==="diagnostician_report"){let r=t.data;if(Object.prototype.hasOwnProperty.call(r,"category")){let i=r.category;typeof i=="string"&&(i==="success"||i==="missing_json"||i==="incomplete_fields")&&n.evolution.diagnosticianReportsWritten++,typeof i=="string"&&i==="missing_json"&&n.evolution.reportsMissingJson++,typeof i=="string"&&i==="incomplete_fields"&&n.evolution.reportsIncompleteFields++}else Object.prototype.hasOwnProperty.call(r,"success")&&n.evolution.diagnosticianReportsWritten++}else t.type==="principle_candidate"?n.evolution.principleCandidatesCreated++:t.type==="rule_enforced"?n.evolution.rulesEnforced++:t.type==="rulehost_evaluated"?n.evolution.rulehostEvaluated++:t.type==="rulehost_blocked"?n.evolution.rulehostBlocked++:t.type==="rulehost_requireApproval"?n.evolution.rulehostRequireApproval++:t.type==="rulehost_auto_correct_proposed"?n.evolution.rulehostAutoCorrectProposed++:t.type==="rulehost_auto_correct_applied"&&n.evolution.rulehostAutoCorrectApplied++}startFlushTimer(){this.flushTimer=setInterval(()=>this.flush(),this.flushIntervalMs),this.flushTimer.unref()}flush(){this.flushEvents(),this.flushStats()}getBufferedEvents(){return this.eventBuffer.map(t=>({...t,data:{...t.data}}))}getEventDedupKey(t){let n=typeof t.data?.eventId=="string"?String(t.data.eventId):null;if(n)return`${t.type}:${t.sessionId??"none"}:${n}`;let r=t.data??{};return[t.ts??"no-ts",t.type??"no-type",t.category??"no-category",t.sessionId??"no-session",typeof r.source=="string"?r.source:"no-source",typeof r.toolName=="string"?r.toolName:"no-tool",typeof r.reason=="string"?r.reason:"no-reason"].join("::")}readPersistedEvents(){let t=this.ensureEventsFile();if(!os.existsSync(t))return[];try{return os.readFileSync(t,"utf-8").trim().split(`
|
|
484
484
|
`).filter(r=>r.trim().length>0).map(r=>{try{return JSON.parse(r)}catch(i){return this.logger?.warn?.(`[PD] Corrupted event line skipped: ${String(i).slice(0,100)}`),null}}).filter(r=>r!==null)}catch(n){return this.logger&&this.logger.error(`[PD] Failed to read events file: ${String(n)}`),[]}}getMergedEvents(){let t=new Map;for(let n of[...this.readPersistedEvents(),...this.getBufferedEvents()])t.set(this.getEventDedupKey(n),n);return[...t.values()].sort((n,r)=>n.ts.localeCompare(r.ts))}flushEvents(){if(this.eventBuffer.length===0)return;let t=this.ensureEventsFile(),n=this.eventBuffer.map(r=>JSON.stringify(r)).join(`
|
|
485
485
|
`)+`
|
|
486
|
-
`;try{os.appendFileSync(t,n,"utf-8"),this.eventBuffer=[]}catch(r){this.logger&&this.logger.error(`[PD] Failed to flush events: ${String(r)}`)}}flushStats(){if(this.statsCache.size===0)return;let t={};this.statsCache.forEach((n,r)=>{t[r]=n});try{uHe(this.statsFile,JSON.stringify(t,null,2))}catch(n){this.logger&&this.logger.error(`[PD] Failed to flush daily-stats.json: ${String(n)}`)}}getDailyStats(t){let n=this.statsCache.get(t);return n||(n=FI(t),this.statsCache.set(t,n)),n}getEmpathyStats(t,n){let r=new Date,i=this.formatDate(r),o={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:[]};if(t==="session"&&n)this.aggregateSessionEmpathy(n,o);else if(t==="week")for(let a=0;a<7;a++){let u=new Date(r);u.setDate(u.getDate()-a);let l=this.formatDate(u),d=this.getDailyStats(l);o.totalEvents+=d.empathy.totalEvents,o.dedupedCount+=d.empathy.dedupedCount,o.totalPenaltyScore+=d.empathy.totalPenaltyScore,o.rolledBackScore+=d.empathy.rolledBackScore,o.rollbackCount+=d.empathy.rollbackCount;for(let p of["mild","moderate","severe"])o.bySeverity[p]+=d.empathy.bySeverity[p],o.scoreBySeverity[p]+=d.empathy.scoreBySeverity[p];o.byDetectionMode.structured+=d.empathy.byDetectionMode.structured,o.byDetectionMode.legacy_tag+=d.empathy.byDetectionMode.legacy_tag;for(let p of["assistant_self_report","user_manual","system_infer"])o.byOrigin[p]+=d.empathy.byOrigin[p];o.confidenceDistribution.high+=d.empathy.confidenceDistribution.high,o.confidenceDistribution.medium+=d.empathy.confidenceDistribution.medium,o.confidenceDistribution.low+=d.empathy.confidenceDistribution.low,(d.empathy.totalEvents>0||d.empathy.dedupedCount>0)&&o.dailyTrend.push({date:l,count:d.empathy.totalEvents,score:d.empathy.totalPenaltyScore})}else{let a=this.getDailyStats(i);Object.assign(o,a.empathy),(a.empathy.totalEvents>0||a.empathy.dedupedCount>0)&&(o.dailyTrend=[{date:i,count:a.empathy.totalEvents,score:a.empathy.totalPenaltyScore}])}let s=o.totalEvents+o.dedupedCount;return o.dedupeHitRate=s>0?o.dedupedCount/s:0,o}aggregateSessionEmpathy(t,n){for(let r of this.getMergedEvents())if(r.sessionId===t&&r.type==="pain_signal"){let i=r.data;if(i.source==="user_empathy")if(i.deduped)n.dedupedCount++;else{n.totalEvents++,n.totalPenaltyScore+=i.score||0,i.severity&&(n.bySeverity[i.severity]++,n.scoreBySeverity[i.severity]+=i.score||0),i.detection_mode&&n.byDetectionMode[i.detection_mode]++,i.origin&&n.byOrigin[i.origin]++;let o=i.confidence??1;o>=.8?n.confidenceDistribution.high++:o>=.5?n.confidenceDistribution.medium++:n.confidenceDistribution.low++}}else if(r.sessionId===t&&r.type==="empathy_rollback"){let i=r.data;n.rollbackCount++,n.rolledBackScore+=i.originalScore||0}}rollbackEmpathyEvent(t,n,r,i){let o=this.getMergedEvents(),s=null;for(let u of o)if(u.type==="pain_signal"){let l=u.data;if(l.eventId===t&&l.source==="user_empathy"){s={entry:u,data:l};break}}if(!s||s.data.deduped)return 0;let a=s.data.score||0;return this.recordEmpathyRollback(n,{eventId:t,originalScore:a,originalSessionId:s.entry.sessionId,reason:r,triggeredBy:i}),a}getLastEmpathyEventId(t){let n=this.getMergedEvents();for(let r=n.length-1;r>=0;r--){let i=n[r];if(i&&i.sessionId===t&&i.type==="pain_signal"){let o=i.data;if(o.source==="user_empathy"&&!o.deduped)return o.eventId||null}}return null}findLatestPainSignal(t){let n=this.getMergedEvents();for(let r=n.length-1;r>=0;r--){let i=n[r];if(i&&i.sessionId===t&&i.type==="pain_signal")return i.data}return null}dispose(){this.flushTimer&&(clearInterval(this.flushTimer),this.flushTimer=void 0),this.flush()}};var Z7t=(e,t)=>{let n=new ZF(e);try{n.recordGovernanceAction(t,{flushImmediately:!0})}finally{n.dispose()}};async function
|
|
486
|
+
`;try{os.appendFileSync(t,n,"utf-8"),this.eventBuffer=[]}catch(r){this.logger&&this.logger.error(`[PD] Failed to flush events: ${String(r)}`)}}flushStats(){if(this.statsCache.size===0)return;let t={};this.statsCache.forEach((n,r)=>{t[r]=n});try{uHe(this.statsFile,JSON.stringify(t,null,2))}catch(n){this.logger&&this.logger.error(`[PD] Failed to flush daily-stats.json: ${String(n)}`)}}getDailyStats(t){let n=this.statsCache.get(t);return n||(n=FI(t),this.statsCache.set(t,n)),n}getEmpathyStats(t,n){let r=new Date,i=this.formatDate(r),o={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:[]};if(t==="session"&&n)this.aggregateSessionEmpathy(n,o);else if(t==="week")for(let a=0;a<7;a++){let u=new Date(r);u.setDate(u.getDate()-a);let l=this.formatDate(u),d=this.getDailyStats(l);o.totalEvents+=d.empathy.totalEvents,o.dedupedCount+=d.empathy.dedupedCount,o.totalPenaltyScore+=d.empathy.totalPenaltyScore,o.rolledBackScore+=d.empathy.rolledBackScore,o.rollbackCount+=d.empathy.rollbackCount;for(let p of["mild","moderate","severe"])o.bySeverity[p]+=d.empathy.bySeverity[p],o.scoreBySeverity[p]+=d.empathy.scoreBySeverity[p];o.byDetectionMode.structured+=d.empathy.byDetectionMode.structured,o.byDetectionMode.legacy_tag+=d.empathy.byDetectionMode.legacy_tag;for(let p of["assistant_self_report","user_manual","system_infer"])o.byOrigin[p]+=d.empathy.byOrigin[p];o.confidenceDistribution.high+=d.empathy.confidenceDistribution.high,o.confidenceDistribution.medium+=d.empathy.confidenceDistribution.medium,o.confidenceDistribution.low+=d.empathy.confidenceDistribution.low,(d.empathy.totalEvents>0||d.empathy.dedupedCount>0)&&o.dailyTrend.push({date:l,count:d.empathy.totalEvents,score:d.empathy.totalPenaltyScore})}else{let a=this.getDailyStats(i);Object.assign(o,a.empathy),(a.empathy.totalEvents>0||a.empathy.dedupedCount>0)&&(o.dailyTrend=[{date:i,count:a.empathy.totalEvents,score:a.empathy.totalPenaltyScore}])}let s=o.totalEvents+o.dedupedCount;return o.dedupeHitRate=s>0?o.dedupedCount/s:0,o}aggregateSessionEmpathy(t,n){for(let r of this.getMergedEvents())if(r.sessionId===t&&r.type==="pain_signal"){let i=r.data;if(i.source==="user_empathy")if(i.deduped)n.dedupedCount++;else{n.totalEvents++,n.totalPenaltyScore+=i.score||0,i.severity&&(n.bySeverity[i.severity]++,n.scoreBySeverity[i.severity]+=i.score||0),i.detection_mode&&n.byDetectionMode[i.detection_mode]++,i.origin&&n.byOrigin[i.origin]++;let o=i.confidence??1;o>=.8?n.confidenceDistribution.high++:o>=.5?n.confidenceDistribution.medium++:n.confidenceDistribution.low++}}else if(r.sessionId===t&&r.type==="empathy_rollback"){let i=r.data;n.rollbackCount++,n.rolledBackScore+=i.originalScore||0}}rollbackEmpathyEvent(t,n,r,i){let o=this.getMergedEvents(),s=null;for(let u of o)if(u.type==="pain_signal"){let l=u.data;if(l.eventId===t&&l.source==="user_empathy"){s={entry:u,data:l};break}}if(!s||s.data.deduped)return 0;let a=s.data.score||0;return this.recordEmpathyRollback(n,{eventId:t,originalScore:a,originalSessionId:s.entry.sessionId,reason:r,triggeredBy:i}),a}getLastEmpathyEventId(t){let n=this.getMergedEvents();for(let r=n.length-1;r>=0;r--){let i=n[r];if(i&&i.sessionId===t&&i.type==="pain_signal"){let o=i.data;if(o.source==="user_empathy"&&!o.deduped)return o.eventId||null}}return null}findLatestPainSignal(t){let n=this.getMergedEvents();for(let r=n.length-1;r>=0;r--){let i=n[r];if(i&&i.sessionId===t&&i.type==="pain_signal")return i.data}return null}dispose(){this.flushTimer&&(clearInterval(this.flushTimer),this.flushTimer=void 0),this.flush()}};var Z7t=(e,t)=>{let n=new ZF(e);try{n.recordGovernanceAction(t,{flushImmediately:!0})}finally{n.dispose()}};async function pfi(e,t,n,r=Z7t){return r(e,t),n()}export{pfi as authorizeGovernanceAction,Z7t as writeGovernanceAction};
|
|
487
487
|
/*! Bundled license information:
|
|
488
488
|
|
|
489
489
|
web-streams-polyfill/dist/ponyfill.es2018.js:
|
|
@@ -931,7 +931,7 @@ ${n.comment}`:n.comment}this.doc.range[2]=n.offset;break}default:this.errors.pus
|
|
|
931
931
|
SELECT blob_ref FROM assistant_turns WHERE blob_ref IS NOT NULL
|
|
932
932
|
UNION
|
|
933
933
|
SELECT blob_ref FROM user_turns WHERE blob_ref IS NOT NULL
|
|
934
|
-
`).all();for(let s of n)s.blob_ref&&t.add(String(s.blob_ref));let r=Date.now(),i=0,o=0;for(let s of Vi.readdirSync(this.blobDir)){if(t.has(s))continue;let a=Tu.join(this.blobDir,s),u;try{u=Vi.statSync(a)}catch{continue}u.isFile()&&(this.orphanBlobGraceMs>0&&r-u.mtimeMs<this.orphanBlobGraceMs||(o+=u.size,i+=1,Vi.rmSync(a,{force:!0})))}return{removedFiles:i,reclaimedBytes:o}}withWrite(t){return VHe(this.dbPath,t,{lockSuffix:".trajectory.lock",lockStaleMs:3e4})}},Ek=class{static instances=new Map;static get(t,n={}){let r=Tu.resolve(t),i=this.instances.get(r);if(i)return i;let o=new hU({workspaceDir:r,...n});return this.instances.set(r,o),o}static dispose(t){let n=Tu.resolve(t),r=this.instances.get(n);r&&(r.dispose(),this.instances.delete(n))}static clear(){for(let t of this.instances.values())t.dispose();this.instances.clear()}static use(t,n,r={}){let i=Tu.resolve(t),o=this.instances.get(i);if(o)return n(o);let s=new hU({workspaceDir:i,...r});try{return n(s)}finally{s.dispose()}}};var ZHe=["read","read_file","read_many_files","image_read","search_file_content","grep","grep_search","list_directory","ls","glob","lsp_hover","lsp_goto_definition","lsp_find_references","web_fetch","web_search","ref_search_documentation","ref_read_url","resolve-library-id","get-library-docs","memory_recall","save_memory","todo_read","todo_write","ask_user","ask_user_question","pd-status","report"],Uw=["write","write_file","edit","edit_file","replace","apply_patch","insert","patch"],_k=["bash","run_shell_command","exec","execute","shell","cmd"],p9t=["delete_file","move_file",..._k],gU=["sessions_spawn"],f9t=[...Uw],m9t=[...Uw,"delete_file","move_file",..._k,...gU],h9t=[...ZHe],
|
|
934
|
+
`).all();for(let s of n)s.blob_ref&&t.add(String(s.blob_ref));let r=Date.now(),i=0,o=0;for(let s of Vi.readdirSync(this.blobDir)){if(t.has(s))continue;let a=Tu.join(this.blobDir,s),u;try{u=Vi.statSync(a)}catch{continue}u.isFile()&&(this.orphanBlobGraceMs>0&&r-u.mtimeMs<this.orphanBlobGraceMs||(o+=u.size,i+=1,Vi.rmSync(a,{force:!0})))}return{removedFiles:i,reclaimedBytes:o}}withWrite(t){return VHe(this.dbPath,t,{lockSuffix:".trajectory.lock",lockStaleMs:3e4})}},Ek=class{static instances=new Map;static get(t,n={}){let r=Tu.resolve(t),i=this.instances.get(r);if(i)return i;let o=new hU({workspaceDir:r,...n});return this.instances.set(r,o),o}static dispose(t){let n=Tu.resolve(t),r=this.instances.get(n);r&&(r.dispose(),this.instances.delete(n))}static clear(){for(let t of this.instances.values())t.dispose();this.instances.clear()}static use(t,n,r={}){let i=Tu.resolve(t),o=this.instances.get(i);if(o)return n(o);let s=new hU({workspaceDir:i,...r});try{return n(s)}finally{s.dispose()}}};var ZHe=["read","read_file","read_many_files","image_read","search_file_content","grep","grep_search","list_directory","ls","glob","lsp_hover","lsp_goto_definition","lsp_find_references","web_fetch","web_search","ref_search_documentation","ref_read_url","resolve-library-id","get-library-docs","memory_recall","save_memory","todo_read","todo_write","ask_user","ask_user_question","pd-status","report"],Uw=["write","write_file","edit","edit_file","replace","apply_patch","insert","patch"],_k=["bash","run_shell_command","exec","execute","shell","cmd"],p9t=["delete_file","move_file",..._k],gU=["sessions_spawn"],f9t=[...Uw],m9t=[...Uw,"delete_file","move_file",..._k,...gU],h9t=[...ZHe],Hmi=new Set(ZHe),jmi=new Set(Uw),Vmi=new Set(p9t),Kmi=new Set(_k),Ymi=new Set(gU),Jmi=new Set(f9t),zmi=new Set(m9t),Xmi=new Set(h9t),Zmi=new Set([...Uw,"delete_file","move_file"]);function AU(e,t){return e.map(n=>({rawToolName:n,canonicalKind:t}))}var g9t=["delete_file","move_file"],A9t=Object.freeze([...AU(_k,"execute"),...AU(Uw,"write"),...AU(g9t,"write"),...AU(gU,"agent")]),L9=x9(A9t);if(!L9.ok)throw new Error(`[PD] OpenClaw tool semantic declaration is invalid: ${L9.errors.join("; ")}`);var e3e=L9.registry;var y9t=new Set(["success","failure","blocked"]);function I9t(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function E9t(e){return typeof e=="string"&&y9t.has(e)}function t3e(e,t,n){let r=[];for(let i of e){let o=i.toolName;if(typeof o!="string"||o.length===0)return xk(`row id=${i.id}: tool_name must be a non-empty string`);let s=i.outcome;if(!E9t(s))return xk(`row id=${i.id}: outcome "${i.outcome}" is not a valid RuleToolOutcome`);let a=i.paramsJson;if(typeof a!="string")return xk(`row id=${i.id}: params_json must be a string`);let u;try{u=JSON.parse(a)}catch{return xk(`row id=${i.id}: params_json is not valid JSON`)}if(!I9t(u))return xk(`row id=${i.id}: params_json must parse to a non-array object`);let l=e3e.resolve(o),d=V1(u,{isBashTool:l==="execute",isWriteTool:l==="write",toolName:o}),p=j1(d,n);r.push({sequenceId:i.id,toolName:o,canonicalKind:l,normalizedPath:p===""?null:p,paramsSummary:u,outcome:s})}return{status:"available",truncated:t,calls:r}}function xk(e){return{status:"unavailable",unavailableReason:e,truncated:!1,calls:[]}}var _9t=3,x9t=5,w9t=100,r3e=new Set(["__proto__","constructor","prototype"]);function b9t(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function v9t(e){for(let t of Object.keys(e))if(r3e.has(t))return!1;return!0}var M9=class{db;constructor(t){this.db=Ek.get(t.workspaceDir)}assemble(t){let n=this.db.getPainEventByCanonicalId(t.sourcePainId);if(!n)throw new Error(`[BehaviorExamplePackAssembler] pain event not found for canonical_pain_id="${t.sourcePainId}" (ERR-069 fail loud)`);C9t(t);let r=n3e(this.db.getRuleHostEvidenceRow(t.sourceNegativeToolCallId),t.sourceNegativeToolCallId),i=t.positiveToolCallIds.map(p=>n3e(this.db.getRuleHostEvidenceRow(p),p));for(let p of[r,...i])if(p.sessionId!==n.sessionId)throw new Error(`[BehaviorExamplePackAssembler] selected tool call ${p.id} session mismatch; all examples must belong to pain session ${n.sessionId}`);let o=[],s={projectDir:t.projectDir,redactionNotes:o},a=this.buildSelectedCase(r,"negative","block",s),u=i.map(p=>this.buildSelectedCase(p,"positive","allow",s)),l={sourceNegativeCase:a,ownerDesiredOutcome:t.ownerDesiredOutcome,positiveCounterexamples:u,evidenceRefs:[`pain:${n.id}`,`tool_call:${r.id}`,...i.map(p=>`tool_call:${p.id}`)].slice(0,x9t),redactionNotes:o},d=uU(l);if(!d.valid)throw new Error(`[BehaviorExamplePackAssembler] assembled pack failed validateBehaviorExamplePack: ${d.errors.join("; ")} (ERR-069 fail loud)`);return l}buildSelectedCase(t,n,r,i){let{projectDir:o,redactionNotes:s}=i,a=T9t(t,n,r,o),u=S9t(a.params,o);s.push(...u.notes);let l=this.db.getRuleHostContextRowsBefore(t.sessionId,t.id,w9t),d=t3e(l.rows,l.truncated,o),p=K1(t.toolName,u.redacted,o),m={version:2,history:d,facts:mD(d,p.normalizedPath||null,null)};return{...a,params:u.redacted,ruleContext:m}}};function C9t(e){if(!Number.isSafeInteger(e.sourceNegativeToolCallId)||e.sourceNegativeToolCallId<=0)throw new Error("[BehaviorExamplePackAssembler] sourceNegativeToolCallId must be a positive integer");if(!Array.isArray(e.positiveToolCallIds)||e.positiveToolCallIds.length===0||e.positiveToolCallIds.length>_9t)throw new Error("[BehaviorExamplePackAssembler] positiveToolCallIds must contain 1 to at most 3 IDs");let t=[e.sourceNegativeToolCallId,...e.positiveToolCallIds];if(t.some(n=>!Number.isSafeInteger(n)||n<=0)||new Set(t).size!==t.length)throw new Error("[BehaviorExamplePackAssembler] selected tool call IDs must be unique positive integers")}function n3e(e,t){if(!e)throw new Error(`[BehaviorExamplePackAssembler] selected tool call id=${t} not found`);return e}function T9t(e,t,n,r){if(typeof e.toolName!="string"||e.toolName.length===0)throw new Error(`[BehaviorExamplePackAssembler] row id=${e.id}: toolName must be a non-empty string (rc-9 fail loud)`);if(typeof e.paramsJson!="string")throw new Error(`[BehaviorExamplePackAssembler] row id=${e.id}: paramsJson must be a string (rc-9 fail loud)`);let i;try{i=JSON.parse(e.paramsJson)}catch{throw new Error(`[BehaviorExamplePackAssembler] row id=${e.id}: paramsJson is not valid JSON (rc-9 fail loud)`)}if(!b9t(i))throw new Error(`[BehaviorExamplePackAssembler] row id=${e.id}: paramsJson must parse to a non-array object (rc-9 fail loud)`);if(!v9t(i))throw new Error(`[BehaviorExamplePackAssembler] row id=${e.id}: paramsJson must not carry prototype-pollution keys (ERR-076, rc-9 fail loud)`);return{caseId:`case-${t}-${e.id}`,kind:t,toolName:e.toolName,params:i,expectedDecision:n}}function S9t(e,t){let n=[],r={};for(let i of Object.keys(e)){if(r3e.has(i))continue;let o=e[i];if(typeof o!="string"){r[i]=o;continue}if(k9t(o)&&!o.startsWith(t)){r[i]="<redacted:absolute-path>",n.push(`redacted absolute path in field "${i}" (outside project tree)`);continue}if(D9t(o)){r[i]="<redacted:secret>",n.push(`redacted possible secret in field "${i}"`);continue}r[i]=o}return{redacted:r,notes:n}}function k9t(e){return e.startsWith("/")||/^[A-Za-z]:[\\/]/.test(e)}var R9t=[/AKIA[0-9A-Z]{16}/,/[A-Za-z0-9+/]{40,}/];function D9t(e){if(e.length<20)return!1;for(let t of R9t)if(t.test(e))return!0;return!1}export{M9 as BehaviorExamplePackAssembler,Ek as RuleHostEvidenceRegistry};
|
|
935
935
|
/*! Bundled license information:
|
|
936
936
|
|
|
937
937
|
web-streams-polyfill/dist/ponyfill.es2018.js:
|