create-principles-disciple 1.94.0 → 1.96.0
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/config/WorkspaceConfigStore.js +2 -1
- package/console/dist/server/config/pd-config-store.d.ts +33 -0
- package/console/dist/server/config/pd-config-store.js +196 -0
- package/console/dist/server/index.js +19 -4
- package/console/dist/server/models/EvidenceChainConsoleModel.d.ts +0 -2
- package/console/dist/server/models/EvidenceChainConsoleModel.js +36 -2
- package/console/dist/server/models/HealthCheckModel.js +5 -3
- package/console/dist/server/models/IntentDecisionModel.d.ts +66 -0
- package/console/dist/server/models/IntentDecisionModel.js +207 -0
- package/console/dist/server/models/IntentPageModel.d.ts +52 -0
- package/console/dist/server/models/IntentPageModel.js +292 -0
- package/console/dist/server/models/PrinciplesConsoleModel.d.ts +2 -0
- package/console/dist/server/models/PrinciplesConsoleModel.js +37 -1
- package/console/dist/server/models/WorkspaceService.d.ts +0 -28
- package/console/dist/server/models/WorkspaceService.js +0 -115
- package/console/dist/server/routes/config.js +55 -1
- package/console/dist/server/routes/intent-decisions.d.ts +33 -0
- package/console/dist/server/routes/intent-decisions.js +499 -0
- package/console/dist/server/routes/intent.d.ts +7 -0
- package/console/dist/server/routes/intent.js +223 -0
- package/console/dist/server/routes/principles.js +67 -1
- package/console/dist/server/routes/update.d.ts +0 -1
- package/console/dist/server/routes/update.js +14 -11
- package/console/dist/types.d.ts +1 -0
- package/console/dist/ui/App.js +2 -60
- package/console/dist/ui/api.d.ts +58 -18
- package/console/dist/ui/api.js +78 -6
- package/console/dist/ui/components/layout/app-sidebar.js +13 -12
- package/console/dist/ui/components/ui/badge.d.ts +1 -1
- package/console/dist/ui/components/ui/button.d.ts +1 -1
- package/console/dist/ui/components/ui/shiny-text.d.ts +28 -0
- package/console/dist/ui/components/ui/shiny-text.js +46 -0
- package/console/dist/ui/i18n/en.json +306 -3
- package/console/dist/ui/i18n/zh-CN.json +306 -3
- package/console/dist/ui/pages/activation/ActivationPage.js +2 -1
- package/console/dist/ui/pages/control-center/AgentCard.d.ts +31 -0
- package/console/dist/ui/pages/control-center/AgentCard.js +156 -0
- package/console/dist/ui/pages/control-center/AgentGroup.d.ts +26 -0
- package/console/dist/ui/pages/control-center/AgentGroup.js +38 -0
- package/console/dist/ui/pages/control-center/ControlCenterPage.js +103 -41
- package/console/dist/ui/pages/control-center/EmpathyObserverCostHint.d.ts +28 -0
- package/console/dist/ui/pages/control-center/EmpathyObserverCostHint.js +38 -0
- package/console/dist/ui/pages/control-center/WorkflowDiagram.d.ts +17 -0
- package/console/dist/ui/pages/control-center/WorkflowDiagram.js +55 -0
- package/console/dist/ui/pages/debt/DebtPage.js +219 -2
- package/console/dist/ui/pages/focus/FocusPage.js +2 -1
- package/console/dist/ui/pages/intent/IntentOnboarding.d.ts +67 -0
- package/console/dist/ui/pages/intent/IntentOnboarding.js +289 -0
- package/console/dist/ui/pages/intent/IntentPage.d.ts +1 -0
- package/console/dist/ui/pages/intent/IntentPage.js +258 -0
- package/console/dist/ui/pages/pain/PainPage.js +234 -4
- package/console/dist/ui/pages/pain/pain-card-helpers.d.ts +75 -0
- package/console/dist/ui/pages/pain/pain-card-helpers.js +78 -0
- package/console/dist/ui/pages/principles/PrinciplesPage.js +2 -1
- package/console/dist/ui/utils/agent-metadata.d.ts +58 -0
- package/console/dist/ui/utils/agent-metadata.js +275 -0
- package/console/dist/ui/utils/control-center-helpers.d.ts +19 -0
- package/console/dist/ui/utils/control-center-helpers.js +37 -0
- package/console/dist/ui/utils/validators.d.ts +200 -0
- package/console/dist/ui/utils/validators.js +563 -0
- package/console/dist/web/assets/app.css +498 -3
- package/console/dist/web/assets/app.js +5063 -1418
- package/console/package.json +3 -0
- package/core/dist/principle-tree-ledger.d.ts +55 -4
- package/core/dist/principle-tree-ledger.d.ts.map +1 -1
- package/core/dist/principle-tree-ledger.js +472 -13
- package/core/dist/principle-tree-ledger.js.map +1 -1
- package/core/dist/prompt-builder/__tests__/prompt-builder-core.test.js +58 -0
- package/core/dist/prompt-builder/__tests__/prompt-builder-core.test.js.map +1 -1
- package/core/dist/prompt-builder/empathy-keyword-matching.d.ts.map +1 -1
- package/core/dist/prompt-builder/empathy-keyword-matching.js +9 -6
- package/core/dist/prompt-builder/empathy-keyword-matching.js.map +1 -1
- package/core/dist/prompt-builder/size-guard.d.ts +1 -0
- package/core/dist/prompt-builder/size-guard.d.ts.map +1 -1
- package/core/dist/prompt-builder/size-guard.js +21 -0
- package/core/dist/prompt-builder/size-guard.js.map +1 -1
- package/core/dist/prompt-builder/types.d.ts +2 -0
- package/core/dist/prompt-builder/types.d.ts.map +1 -1
- package/core/dist/runtime-v2/__tests__/architecture-regression.test.js +143 -65
- package/core/dist/runtime-v2/__tests__/architecture-regression.test.js.map +1 -1
- package/core/dist/runtime-v2/__tests__/evaluator-runner-vslice-v2.test.js +85 -7
- package/core/dist/runtime-v2/__tests__/evaluator-runner-vslice-v2.test.js.map +1 -1
- package/core/dist/runtime-v2/__tests__/evidence-chain-intent-tension.test.d.ts +2 -0
- package/core/dist/runtime-v2/__tests__/evidence-chain-intent-tension.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/__tests__/evidence-chain-intent-tension.test.js +284 -0
- package/core/dist/runtime-v2/__tests__/evidence-chain-intent-tension.test.js.map +1 -0
- package/core/dist/runtime-v2/__tests__/golden-trace-replay-validator.test.js +70 -0
- package/core/dist/runtime-v2/__tests__/golden-trace-replay-validator.test.js.map +1 -1
- package/core/dist/runtime-v2/__tests__/golden-trace.test.js +136 -1
- package/core/dist/runtime-v2/__tests__/golden-trace.test.js.map +1 -1
- package/core/dist/runtime-v2/__tests__/pain-signal-bridge-result-shaping.test.js +105 -0
- package/core/dist/runtime-v2/__tests__/pain-signal-bridge-result-shaping.test.js.map +1 -1
- package/core/dist/runtime-v2/__tests__/pain-signal-observability.test.js +7 -5
- package/core/dist/runtime-v2/__tests__/pain-signal-observability.test.js.map +1 -1
- package/core/dist/runtime-v2/__tests__/pi-artifact-store.test.js +11 -0
- package/core/dist/runtime-v2/__tests__/pi-artifact-store.test.js.map +1 -1
- package/core/dist/runtime-v2/__tests__/proven-channel-baseline.test.js +15 -2
- package/core/dist/runtime-v2/__tests__/proven-channel-baseline.test.js.map +1 -1
- package/core/dist/runtime-v2/__tests__/schema-float-precision.test.d.ts +2 -0
- package/core/dist/runtime-v2/__tests__/schema-float-precision.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/__tests__/schema-float-precision.test.js +290 -0
- package/core/dist/runtime-v2/__tests__/schema-float-precision.test.js.map +1 -0
- package/core/dist/runtime-v2/__tests__/schema-orphan-detection.test.d.ts +2 -0
- package/core/dist/runtime-v2/__tests__/schema-orphan-detection.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/__tests__/schema-orphan-detection.test.js +158 -0
- package/core/dist/runtime-v2/__tests__/schema-orphan-detection.test.js.map +1 -0
- package/core/dist/runtime-v2/__tests__/v2-adversarial-cases.test.d.ts +2 -0
- package/core/dist/runtime-v2/__tests__/v2-adversarial-cases.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/__tests__/v2-adversarial-cases.test.js +211 -0
- package/core/dist/runtime-v2/__tests__/v2-adversarial-cases.test.js.map +1 -0
- package/core/dist/runtime-v2/activation/__tests__/approval-store-extended.test.js +15 -1
- package/core/dist/runtime-v2/activation/__tests__/approval-store-extended.test.js.map +1 -1
- package/core/dist/runtime-v2/activation/__tests__/sqlite-activation-state-store-fk.test.d.ts +2 -0
- package/core/dist/runtime-v2/activation/__tests__/sqlite-activation-state-store-fk.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/activation/__tests__/sqlite-activation-state-store-fk.test.js +62 -0
- package/core/dist/runtime-v2/activation/__tests__/sqlite-activation-state-store-fk.test.js.map +1 -0
- package/core/dist/runtime-v2/activation/__tests__/sqlite-activation-state-store.test.js +12 -2
- package/core/dist/runtime-v2/activation/__tests__/sqlite-activation-state-store.test.js.map +1 -1
- package/core/dist/runtime-v2/activation/__tests__/sqlite-approval-store-fk.test.d.ts +2 -0
- package/core/dist/runtime-v2/activation/__tests__/sqlite-approval-store-fk.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/activation/__tests__/sqlite-approval-store-fk.test.js +56 -0
- package/core/dist/runtime-v2/activation/__tests__/sqlite-approval-store-fk.test.js.map +1 -0
- package/core/dist/runtime-v2/activation/__tests__/sqlite-approval-store.test.js +8 -0
- package/core/dist/runtime-v2/activation/__tests__/sqlite-approval-store.test.js.map +1 -1
- package/core/dist/runtime-v2/activation/__tests__/story-a-acceptance.test.js +20 -0
- package/core/dist/runtime-v2/activation/__tests__/story-a-acceptance.test.js.map +1 -1
- package/core/dist/runtime-v2/activation/sqlite-activation-state-store.d.ts.map +1 -1
- package/core/dist/runtime-v2/activation/sqlite-activation-state-store.js +6 -0
- package/core/dist/runtime-v2/activation/sqlite-activation-state-store.js.map +1 -1
- package/core/dist/runtime-v2/activation/sqlite-approval-store.d.ts.map +1 -1
- package/core/dist/runtime-v2/activation/sqlite-approval-store.js +86 -32
- package/core/dist/runtime-v2/activation/sqlite-approval-store.js.map +1 -1
- package/core/dist/runtime-v2/activation/writers/__tests__/rule-host-writer.test.js +158 -1
- package/core/dist/runtime-v2/activation/writers/__tests__/rule-host-writer.test.js.map +1 -1
- package/core/dist/runtime-v2/activation/writers/rule-host-writer.d.ts +11 -0
- package/core/dist/runtime-v2/activation/writers/rule-host-writer.d.ts.map +1 -1
- package/core/dist/runtime-v2/activation/writers/rule-host-writer.js +55 -11
- package/core/dist/runtime-v2/activation/writers/rule-host-writer.js.map +1 -1
- package/core/dist/runtime-v2/diagnostician/__tests__/diag-rootcause-output.test.js +134 -15
- package/core/dist/runtime-v2/diagnostician/__tests__/diag-rootcause-output.test.js.map +1 -1
- package/core/dist/runtime-v2/diagnostician/__tests__/intent-tension-schema.test.d.ts +18 -0
- package/core/dist/runtime-v2/diagnostician/__tests__/intent-tension-schema.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/diagnostician/__tests__/intent-tension-schema.test.js +251 -0
- package/core/dist/runtime-v2/diagnostician/__tests__/intent-tension-schema.test.js.map +1 -0
- package/core/dist/runtime-v2/diagnostician/__tests__/rootcause-prompt-builder.test.js +73 -0
- package/core/dist/runtime-v2/diagnostician/__tests__/rootcause-prompt-builder.test.js.map +1 -1
- package/core/dist/runtime-v2/diagnostician/diag-rootcause-output.d.ts +98 -0
- package/core/dist/runtime-v2/diagnostician/diag-rootcause-output.d.ts.map +1 -1
- package/core/dist/runtime-v2/diagnostician/diag-rootcause-output.js +131 -0
- package/core/dist/runtime-v2/diagnostician/diag-rootcause-output.js.map +1 -1
- package/core/dist/runtime-v2/diagnostician/rootcause-prompt-builder.d.ts +8 -0
- package/core/dist/runtime-v2/diagnostician/rootcause-prompt-builder.d.ts.map +1 -1
- package/core/dist/runtime-v2/diagnostician/rootcause-prompt-builder.js +66 -3
- package/core/dist/runtime-v2/diagnostician/rootcause-prompt-builder.js.map +1 -1
- package/core/dist/runtime-v2/diagnostician-output.d.ts +23 -0
- package/core/dist/runtime-v2/diagnostician-output.d.ts.map +1 -1
- package/core/dist/runtime-v2/diagnostician-output.js +16 -0
- package/core/dist/runtime-v2/diagnostician-output.js.map +1 -1
- package/core/dist/runtime-v2/diagnostician-prompt-builder.d.ts +32 -0
- package/core/dist/runtime-v2/diagnostician-prompt-builder.d.ts.map +1 -1
- package/core/dist/runtime-v2/diagnostician-prompt-builder.js.map +1 -1
- package/core/dist/runtime-v2/evidence-triage/source-descriptors.d.ts +1 -1
- package/core/dist/runtime-v2/evidence-triage/source-descriptors.js +1 -1
- package/core/dist/runtime-v2/feature-flags/__tests__/feature-flag-contract.test.js +23 -0
- package/core/dist/runtime-v2/feature-flags/__tests__/feature-flag-contract.test.js.map +1 -1
- package/core/dist/runtime-v2/feature-flags/__tests__/intent-engineering-flag.test.d.ts +2 -0
- package/core/dist/runtime-v2/feature-flags/__tests__/intent-engineering-flag.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/feature-flags/__tests__/intent-engineering-flag.test.js +30 -0
- package/core/dist/runtime-v2/feature-flags/__tests__/intent-engineering-flag.test.js.map +1 -0
- package/core/dist/runtime-v2/feature-flags/__tests__/rulecode-context-v2-flag.test.d.ts +2 -0
- package/core/dist/runtime-v2/feature-flags/__tests__/rulecode-context-v2-flag.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/feature-flags/__tests__/rulecode-context-v2-flag.test.js +74 -0
- package/core/dist/runtime-v2/feature-flags/__tests__/rulecode-context-v2-flag.test.js.map +1 -0
- package/core/dist/runtime-v2/feature-flags/__tests__/surface-guard-policy.test.d.ts +2 -0
- package/core/dist/runtime-v2/feature-flags/__tests__/surface-guard-policy.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/feature-flags/__tests__/surface-guard-policy.test.js +246 -0
- package/core/dist/runtime-v2/feature-flags/__tests__/surface-guard-policy.test.js.map +1 -0
- package/core/dist/runtime-v2/feature-flags/feature-flag-contract.d.ts.map +1 -1
- package/core/dist/runtime-v2/feature-flags/feature-flag-contract.js +9 -0
- package/core/dist/runtime-v2/feature-flags/feature-flag-contract.js.map +1 -1
- package/core/dist/runtime-v2/feature-flags/index.d.ts +2 -0
- package/core/dist/runtime-v2/feature-flags/index.d.ts.map +1 -1
- package/core/dist/runtime-v2/feature-flags/index.js +2 -0
- package/core/dist/runtime-v2/feature-flags/index.js.map +1 -1
- package/core/dist/runtime-v2/feature-flags/plugin-surface-registry.d.ts.map +1 -1
- package/core/dist/runtime-v2/feature-flags/plugin-surface-registry.js +0 -9
- package/core/dist/runtime-v2/feature-flags/plugin-surface-registry.js.map +1 -1
- package/{plugin/dist/core/surface-guard.d.ts → core/dist/runtime-v2/feature-flags/surface-guard-policy.d.ts} +15 -5
- package/core/dist/runtime-v2/feature-flags/surface-guard-policy.d.ts.map +1 -0
- package/{plugin/dist/core/surface-guard.js → core/dist/runtime-v2/feature-flags/surface-guard-policy.js} +14 -2
- package/core/dist/runtime-v2/feature-flags/surface-guard-policy.js.map +1 -0
- package/core/dist/runtime-v2/golden-trace-replay-validator.js +1 -1
- package/core/dist/runtime-v2/golden-trace-replay-validator.js.map +1 -1
- package/core/dist/runtime-v2/golden-trace.d.ts +19 -3
- package/core/dist/runtime-v2/golden-trace.d.ts.map +1 -1
- package/core/dist/runtime-v2/golden-trace.js +2 -0
- package/core/dist/runtime-v2/golden-trace.js.map +1 -1
- package/core/dist/runtime-v2/index.d.ts +21 -4
- package/core/dist/runtime-v2/index.d.ts.map +1 -1
- package/core/dist/runtime-v2/index.js +21 -3
- package/core/dist/runtime-v2/index.js.map +1 -1
- package/core/dist/runtime-v2/intent/__tests__/intent-decision-record.test.d.ts +2 -0
- package/core/dist/runtime-v2/intent/__tests__/intent-decision-record.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/intent/__tests__/intent-decision-record.test.js +185 -0
- package/core/dist/runtime-v2/intent/__tests__/intent-decision-record.test.js.map +1 -0
- package/core/dist/runtime-v2/intent/__tests__/intent-doc-version.test.d.ts +2 -0
- package/core/dist/runtime-v2/intent/__tests__/intent-doc-version.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/intent/__tests__/intent-doc-version.test.js +88 -0
- package/core/dist/runtime-v2/intent/__tests__/intent-doc-version.test.js.map +1 -0
- package/core/dist/runtime-v2/intent/__tests__/intent-doc.test.d.ts +2 -0
- package/core/dist/runtime-v2/intent/__tests__/intent-doc.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/intent/__tests__/intent-doc.test.js +181 -0
- package/core/dist/runtime-v2/intent/__tests__/intent-doc.test.js.map +1 -0
- package/core/dist/runtime-v2/intent/__tests__/intent-friction-block.test.d.ts +2 -0
- package/core/dist/runtime-v2/intent/__tests__/intent-friction-block.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/intent/__tests__/intent-friction-block.test.js +168 -0
- package/core/dist/runtime-v2/intent/__tests__/intent-friction-block.test.js.map +1 -0
- package/core/dist/runtime-v2/intent/__tests__/intent-patch-proposal.test.d.ts +2 -0
- package/core/dist/runtime-v2/intent/__tests__/intent-patch-proposal.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/intent/__tests__/intent-patch-proposal.test.js +121 -0
- package/core/dist/runtime-v2/intent/__tests__/intent-patch-proposal.test.js.map +1 -0
- package/core/dist/runtime-v2/intent/index.d.ts +8 -0
- package/core/dist/runtime-v2/intent/index.d.ts.map +1 -0
- package/core/dist/runtime-v2/intent/index.js +8 -0
- package/core/dist/runtime-v2/intent/index.js.map +1 -0
- package/core/dist/runtime-v2/intent/intent-browser.d.ts +23 -0
- package/core/dist/runtime-v2/intent/intent-browser.d.ts.map +1 -0
- package/core/dist/runtime-v2/intent/intent-browser.js +21 -0
- package/core/dist/runtime-v2/intent/intent-browser.js.map +1 -0
- package/core/dist/runtime-v2/intent/intent-decision-record.d.ts +125 -0
- package/core/dist/runtime-v2/intent/intent-decision-record.d.ts.map +1 -0
- package/core/dist/runtime-v2/intent/intent-decision-record.js +21 -0
- package/core/dist/runtime-v2/intent/intent-decision-record.js.map +1 -0
- package/core/dist/runtime-v2/intent/intent-doc-reader-port.d.ts +95 -0
- package/core/dist/runtime-v2/intent/intent-doc-reader-port.d.ts.map +1 -0
- package/core/dist/runtime-v2/intent/intent-doc-reader-port.js +43 -0
- package/core/dist/runtime-v2/intent/intent-doc-reader-port.js.map +1 -0
- package/core/dist/runtime-v2/intent/intent-doc-version.d.ts +28 -0
- package/core/dist/runtime-v2/intent/intent-doc-version.d.ts.map +1 -0
- package/core/dist/runtime-v2/intent/intent-doc-version.js +21 -0
- package/core/dist/runtime-v2/intent/intent-doc-version.js.map +1 -0
- package/core/dist/runtime-v2/intent/intent-doc.d.ts +35 -0
- package/core/dist/runtime-v2/intent/intent-doc.d.ts.map +1 -0
- package/core/dist/runtime-v2/intent/intent-doc.js +158 -0
- package/core/dist/runtime-v2/intent/intent-doc.js.map +1 -0
- package/core/dist/runtime-v2/intent/intent-friction-block.d.ts +63 -0
- package/core/dist/runtime-v2/intent/intent-friction-block.d.ts.map +1 -0
- package/core/dist/runtime-v2/intent/intent-friction-block.js +129 -0
- package/core/dist/runtime-v2/intent/intent-friction-block.js.map +1 -0
- package/core/dist/runtime-v2/intent/intent-hash.d.ts +2 -0
- package/core/dist/runtime-v2/intent/intent-hash.d.ts.map +1 -0
- package/core/dist/runtime-v2/intent/intent-hash.js +10 -0
- package/core/dist/runtime-v2/intent/intent-hash.js.map +1 -0
- package/core/dist/runtime-v2/intent/intent-patch-proposal.d.ts +42 -0
- package/core/dist/runtime-v2/intent/intent-patch-proposal.d.ts.map +1 -0
- package/core/dist/runtime-v2/intent/intent-patch-proposal.js +81 -0
- package/core/dist/runtime-v2/intent/intent-patch-proposal.js.map +1 -0
- package/core/dist/runtime-v2/internalization/__tests__/__fixtures__/intent-tension-cases.d.ts +54 -0
- package/core/dist/runtime-v2/internalization/__tests__/__fixtures__/intent-tension-cases.d.ts.map +1 -0
- package/core/dist/runtime-v2/internalization/__tests__/__fixtures__/intent-tension-cases.js +219 -0
- package/core/dist/runtime-v2/internalization/__tests__/__fixtures__/intent-tension-cases.js.map +1 -0
- package/core/dist/runtime-v2/internalization/__tests__/artificer-prompt-builder.test.js +41 -1
- package/core/dist/runtime-v2/internalization/__tests__/artificer-prompt-builder.test.js.map +1 -1
- package/core/dist/runtime-v2/internalization/__tests__/artificer-rule-output.test.js +130 -2
- package/core/dist/runtime-v2/internalization/__tests__/artificer-rule-output.test.js.map +1 -1
- package/core/dist/runtime-v2/internalization/__tests__/behavior-example-pack.test.d.ts +2 -0
- package/core/dist/runtime-v2/internalization/__tests__/behavior-example-pack.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/internalization/__tests__/behavior-example-pack.test.js +228 -0
- package/core/dist/runtime-v2/internalization/__tests__/behavior-example-pack.test.js.map +1 -0
- package/core/dist/runtime-v2/internalization/__tests__/diag-chain-e2e.test.js +41 -11
- package/core/dist/runtime-v2/internalization/__tests__/diag-chain-e2e.test.js.map +1 -1
- package/core/dist/runtime-v2/internalization/__tests__/diag-rootcause-intent-tension.test.d.ts +2 -0
- package/core/dist/runtime-v2/internalization/__tests__/diag-rootcause-intent-tension.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/internalization/__tests__/diag-rootcause-intent-tension.test.js +360 -0
- package/core/dist/runtime-v2/internalization/__tests__/diag-rootcause-intent-tension.test.js.map +1 -0
- package/core/dist/runtime-v2/internalization/__tests__/diag-router-intent-tension.test.d.ts +2 -0
- package/core/dist/runtime-v2/internalization/__tests__/diag-router-intent-tension.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/internalization/__tests__/diag-router-intent-tension.test.js +333 -0
- package/core/dist/runtime-v2/internalization/__tests__/diag-router-intent-tension.test.js.map +1 -0
- package/core/dist/runtime-v2/internalization/__tests__/intent-tension-cases.test.d.ts +2 -0
- package/core/dist/runtime-v2/internalization/__tests__/intent-tension-cases.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/internalization/__tests__/intent-tension-cases.test.js +113 -0
- package/core/dist/runtime-v2/internalization/__tests__/intent-tension-cases.test.js.map +1 -0
- package/core/dist/runtime-v2/internalization/__tests__/refiner-sandbox-wrapper.test.js +135 -0
- package/core/dist/runtime-v2/internalization/__tests__/refiner-sandbox-wrapper.test.js.map +1 -1
- package/core/dist/runtime-v2/internalization/__tests__/rule-context-v2.test.d.ts +2 -0
- package/core/dist/runtime-v2/internalization/__tests__/rule-context-v2.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/internalization/__tests__/rule-context-v2.test.js +449 -0
- package/core/dist/runtime-v2/internalization/__tests__/rule-context-v2.test.js.map +1 -0
- package/core/dist/runtime-v2/internalization/adversarial-case.d.ts.map +1 -1
- package/core/dist/runtime-v2/internalization/adversarial-case.js +24 -0
- package/core/dist/runtime-v2/internalization/adversarial-case.js.map +1 -1
- package/core/dist/runtime-v2/internalization/artificer-output.d.ts +10 -0
- package/core/dist/runtime-v2/internalization/artificer-output.d.ts.map +1 -1
- package/core/dist/runtime-v2/internalization/artificer-output.js +45 -0
- package/core/dist/runtime-v2/internalization/artificer-output.js.map +1 -1
- package/core/dist/runtime-v2/internalization/artificer-prompt-builder.d.ts +2 -2
- package/core/dist/runtime-v2/internalization/artificer-prompt-builder.d.ts.map +1 -1
- package/core/dist/runtime-v2/internalization/artificer-prompt-builder.js +7 -2
- package/core/dist/runtime-v2/internalization/artificer-prompt-builder.js.map +1 -1
- package/core/dist/runtime-v2/internalization/behavior-example-pack.d.ts +66 -0
- package/core/dist/runtime-v2/internalization/behavior-example-pack.d.ts.map +1 -0
- package/core/dist/runtime-v2/internalization/behavior-example-pack.js +183 -0
- package/core/dist/runtime-v2/internalization/behavior-example-pack.js.map +1 -0
- package/core/dist/runtime-v2/internalization/diag-rootcause-runner.d.ts +13 -0
- package/core/dist/runtime-v2/internalization/diag-rootcause-runner.d.ts.map +1 -1
- package/core/dist/runtime-v2/internalization/diag-rootcause-runner.js +42 -0
- package/core/dist/runtime-v2/internalization/diag-rootcause-runner.js.map +1 -1
- package/core/dist/runtime-v2/internalization/diag-router-runner.d.ts.map +1 -1
- package/core/dist/runtime-v2/internalization/diag-router-runner.js +27 -0
- package/core/dist/runtime-v2/internalization/diag-router-runner.js.map +1 -1
- package/core/dist/runtime-v2/internalization/evaluator-output.d.ts +8 -0
- package/core/dist/runtime-v2/internalization/evaluator-output.d.ts.map +1 -1
- package/core/dist/runtime-v2/internalization/evaluator-output.js +10 -0
- package/core/dist/runtime-v2/internalization/evaluator-output.js.map +1 -1
- package/core/dist/runtime-v2/internalization/evaluator-runner.d.ts +17 -0
- package/core/dist/runtime-v2/internalization/evaluator-runner.d.ts.map +1 -1
- package/core/dist/runtime-v2/internalization/evaluator-runner.js +118 -24
- package/core/dist/runtime-v2/internalization/evaluator-runner.js.map +1 -1
- package/core/dist/runtime-v2/internalization/refiner-sandbox-wrapper.d.ts.map +1 -1
- package/core/dist/runtime-v2/internalization/refiner-sandbox-wrapper.js +1 -1
- package/core/dist/runtime-v2/internalization/refiner-sandbox-wrapper.js.map +1 -1
- package/core/dist/runtime-v2/internalization/rule-context-v2.d.ts +61 -0
- package/core/dist/runtime-v2/internalization/rule-context-v2.d.ts.map +1 -0
- package/core/dist/runtime-v2/internalization/rule-context-v2.js +301 -0
- package/core/dist/runtime-v2/internalization/rule-context-v2.js.map +1 -0
- package/core/dist/runtime-v2/internalization/rule-host-contracts.d.ts +9 -0
- package/core/dist/runtime-v2/internalization/rule-host-contracts.d.ts.map +1 -1
- package/core/dist/runtime-v2/internalization/v2-adversarial-cases.d.ts +55 -0
- package/core/dist/runtime-v2/internalization/v2-adversarial-cases.d.ts.map +1 -0
- package/core/dist/runtime-v2/internalization/v2-adversarial-cases.js +131 -0
- package/core/dist/runtime-v2/internalization/v2-adversarial-cases.js.map +1 -0
- package/core/dist/runtime-v2/pain-signal-observability.d.ts.map +1 -1
- package/core/dist/runtime-v2/pain-signal-observability.js +280 -56
- package/core/dist/runtime-v2/pain-signal-observability.js.map +1 -1
- package/core/dist/runtime-v2/pain-signal-runtime-factory.d.ts +12 -0
- package/core/dist/runtime-v2/pain-signal-runtime-factory.d.ts.map +1 -1
- package/core/dist/runtime-v2/pain-signal-runtime-factory.js +1 -1
- package/core/dist/runtime-v2/pain-signal-runtime-factory.js.map +1 -1
- package/core/dist/runtime-v2/pain-to-principle-service.d.ts +6 -0
- package/core/dist/runtime-v2/pain-to-principle-service.d.ts.map +1 -1
- package/core/dist/runtime-v2/pain-to-principle-service.js +2 -0
- package/core/dist/runtime-v2/pain-to-principle-service.js.map +1 -1
- package/core/dist/runtime-v2/principle-tree/ledger-codec.js.map +1 -1
- package/core/dist/runtime-v2/proven-channel-baseline.js +1 -1
- package/core/dist/runtime-v2/proven-channel-baseline.js.map +1 -1
- package/core/dist/runtime-v2/risk/__tests__/risk-calculator-policy.test.d.ts +2 -0
- package/core/dist/runtime-v2/risk/__tests__/risk-calculator-policy.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/risk/__tests__/risk-calculator-policy.test.js +95 -0
- package/core/dist/runtime-v2/risk/__tests__/risk-calculator-policy.test.js.map +1 -0
- package/core/dist/runtime-v2/risk/index.d.ts +7 -0
- package/core/dist/runtime-v2/risk/index.d.ts.map +1 -0
- package/core/dist/runtime-v2/risk/index.js +6 -0
- package/core/dist/runtime-v2/risk/index.js.map +1 -0
- package/core/dist/runtime-v2/risk/risk-calculator-policy.d.ts +18 -0
- package/core/dist/runtime-v2/risk/risk-calculator-policy.d.ts.map +1 -0
- package/core/dist/runtime-v2/risk/risk-calculator-policy.js +47 -0
- package/core/dist/runtime-v2/risk/risk-calculator-policy.js.map +1 -0
- package/core/dist/runtime-v2/store/artifact/__tests__/sqlite-pi-artifact-store-fk.test.d.ts +2 -0
- package/core/dist/runtime-v2/store/artifact/__tests__/sqlite-pi-artifact-store-fk.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/store/artifact/__tests__/sqlite-pi-artifact-store-fk.test.js +55 -0
- package/core/dist/runtime-v2/store/artifact/__tests__/sqlite-pi-artifact-store-fk.test.js.map +1 -0
- package/core/dist/runtime-v2/store/artifact/sqlite-pi-artifact-store.d.ts.map +1 -1
- package/core/dist/runtime-v2/store/artifact/sqlite-pi-artifact-store.js +6 -0
- package/core/dist/runtime-v2/store/artifact/sqlite-pi-artifact-store.js.map +1 -1
- package/core/dist/runtime-v2/store/intent/__tests__/sqlite-intent-decision-store.test.d.ts +2 -0
- package/core/dist/runtime-v2/store/intent/__tests__/sqlite-intent-decision-store.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/store/intent/__tests__/sqlite-intent-decision-store.test.js +272 -0
- package/core/dist/runtime-v2/store/intent/__tests__/sqlite-intent-decision-store.test.js.map +1 -0
- package/core/dist/runtime-v2/store/intent/__tests__/sqlite-intent-doc-version-store.test.d.ts +2 -0
- package/core/dist/runtime-v2/store/intent/__tests__/sqlite-intent-doc-version-store.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/store/intent/__tests__/sqlite-intent-doc-version-store.test.js +83 -0
- package/core/dist/runtime-v2/store/intent/__tests__/sqlite-intent-doc-version-store.test.js.map +1 -0
- package/core/dist/runtime-v2/store/intent/index.d.ts +7 -0
- package/core/dist/runtime-v2/store/intent/index.d.ts.map +1 -0
- package/core/dist/runtime-v2/store/intent/index.js +6 -0
- package/core/dist/runtime-v2/store/intent/index.js.map +1 -0
- package/core/dist/runtime-v2/store/intent/sqlite-intent-decision-store.d.ts +51 -0
- package/core/dist/runtime-v2/store/intent/sqlite-intent-decision-store.d.ts.map +1 -0
- package/core/dist/runtime-v2/store/intent/sqlite-intent-decision-store.js +306 -0
- package/core/dist/runtime-v2/store/intent/sqlite-intent-decision-store.js.map +1 -0
- package/core/dist/runtime-v2/store/intent/sqlite-intent-doc-version-store.d.ts +28 -0
- package/core/dist/runtime-v2/store/intent/sqlite-intent-doc-version-store.d.ts.map +1 -0
- package/core/dist/runtime-v2/store/intent/sqlite-intent-doc-version-store.js +88 -0
- package/core/dist/runtime-v2/store/intent/sqlite-intent-doc-version-store.js.map +1 -0
- package/core/dist/runtime-v2/store/sqlite-connection-pragma.test.js +14 -3
- package/core/dist/runtime-v2/store/sqlite-connection-pragma.test.js.map +1 -1
- package/core/dist/runtime-v2/store/sqlite-connection-schema-version.test.d.ts +2 -0
- package/core/dist/runtime-v2/store/sqlite-connection-schema-version.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/store/sqlite-connection-schema-version.test.js +72 -0
- package/core/dist/runtime-v2/store/sqlite-connection-schema-version.test.js.map +1 -0
- package/core/dist/runtime-v2/store/sqlite-connection.d.ts +27 -0
- package/core/dist/runtime-v2/store/sqlite-connection.d.ts.map +1 -1
- package/core/dist/runtime-v2/store/sqlite-connection.js +138 -12
- package/core/dist/runtime-v2/store/sqlite-connection.js.map +1 -1
- package/core/dist/runtime-v2/thinking-models/__tests__/thinking-models-policy.test.d.ts +2 -0
- package/core/dist/runtime-v2/thinking-models/__tests__/thinking-models-policy.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/thinking-models/__tests__/thinking-models-policy.test.js +149 -0
- package/core/dist/runtime-v2/thinking-models/__tests__/thinking-models-policy.test.js.map +1 -0
- package/core/dist/runtime-v2/thinking-models/index.d.ts +3 -0
- package/core/dist/runtime-v2/thinking-models/index.d.ts.map +1 -0
- package/core/dist/runtime-v2/thinking-models/index.js +3 -0
- package/core/dist/runtime-v2/thinking-models/index.js.map +1 -0
- package/core/dist/runtime-v2/thinking-models/thinking-models-policy.d.ts +73 -0
- package/core/dist/runtime-v2/thinking-models/thinking-models-policy.d.ts.map +1 -0
- package/core/dist/runtime-v2/thinking-models/thinking-models-policy.js +227 -0
- package/core/dist/runtime-v2/thinking-models/thinking-models-policy.js.map +1 -0
- package/core/dist/runtime-v2/tools/__tests__/artificer-l2-tool-contract.test.js +40 -1
- package/core/dist/runtime-v2/tools/__tests__/artificer-l2-tool-contract.test.js.map +1 -1
- package/core/dist/runtime-v2/tools/artificer-l2-tool-contract.d.ts.map +1 -1
- package/core/dist/runtime-v2/tools/artificer-l2-tool-contract.js +28 -1
- package/core/dist/runtime-v2/tools/artificer-l2-tool-contract.js.map +1 -1
- package/core/dist/runtime-v2/tools/artificer-output-typebox.d.ts +3 -0
- package/core/dist/runtime-v2/tools/artificer-output-typebox.d.ts.map +1 -1
- package/core/dist/runtime-v2/tools/artificer-output-typebox.js +3 -0
- package/core/dist/runtime-v2/tools/artificer-output-typebox.js.map +1 -1
- package/core/dist/runtime-v2/types/event-payload.d.ts +1 -20
- package/core/dist/runtime-v2/types/event-payload.d.ts.map +1 -1
- package/core/dist/runtime-v2/types/event-payload.js +0 -12
- package/core/dist/runtime-v2/types/event-payload.js.map +1 -1
- package/core/dist/runtime-v2/types/event-types.d.ts +5 -34
- package/core/dist/runtime-v2/types/event-types.d.ts.map +1 -1
- package/core/dist/runtime-v2/types/event-types.js +0 -19
- package/core/dist/runtime-v2/types/event-types.js.map +1 -1
- package/core/dist/runtime-v2/types/evidence-chain-contract.d.ts +63 -0
- package/core/dist/runtime-v2/types/evidence-chain-contract.d.ts.map +1 -1
- package/core/dist/runtime-v2/types/evidence-chain-contract.js +234 -9
- package/core/dist/runtime-v2/types/evidence-chain-contract.js.map +1 -1
- package/core/dist/runtime-v2/types/index.d.ts +5 -5
- package/core/dist/runtime-v2/types/index.d.ts.map +1 -1
- package/core/dist/runtime-v2/types/index.js +5 -3
- package/core/dist/runtime-v2/types/index.js.map +1 -1
- package/core/dist/runtime-v2/types/ledger-store.d.ts +30 -30
- package/core/dist/runtime-v2/types/ledger-store.d.ts.map +1 -1
- package/core/dist/runtime-v2/types/ledger-store.js +10 -5
- package/core/dist/runtime-v2/types/ledger-store.js.map +1 -1
- package/core/dist/workflow-funnel-loader.d.ts +2 -2
- package/core/dist/workflow-funnel-loader.d.ts.map +1 -1
- package/core/package.json +4 -0
- package/dist/installer.d.ts.map +1 -1
- package/dist/installer.js +16 -0
- package/dist/installer.js.map +1 -1
- package/package.json +1 -1
- package/pd-cli/dist/commands/__tests__/intent-flag-wiring.test.d.ts +9 -0
- package/pd-cli/dist/commands/__tests__/intent-flag-wiring.test.d.ts.map +1 -0
- package/pd-cli/dist/commands/__tests__/intent-flag-wiring.test.js +237 -0
- package/pd-cli/dist/commands/__tests__/intent-flag-wiring.test.js.map +1 -0
- package/pd-cli/dist/commands/intent.d.ts +76 -0
- package/pd-cli/dist/commands/intent.d.ts.map +1 -0
- package/pd-cli/dist/commands/intent.js +411 -0
- package/pd-cli/dist/commands/intent.js.map +1 -0
- package/pd-cli/dist/commands/runtime-init.d.ts +43 -0
- package/pd-cli/dist/commands/runtime-init.d.ts.map +1 -0
- package/pd-cli/dist/commands/runtime-init.js +264 -0
- package/pd-cli/dist/commands/runtime-init.js.map +1 -0
- package/pd-cli/dist/index.js +25 -0
- package/pd-cli/dist/index.js.map +1 -1
- package/pd-cli/dist/services/demo-story-a-runner.d.ts.map +1 -1
- package/pd-cli/dist/services/demo-story-a-runner.js +6 -0
- package/pd-cli/dist/services/demo-story-a-runner.js.map +1 -1
- package/pd-cli/package.json +1 -0
- package/plugin/dist/commands/pain.js +2 -0
- package/plugin/dist/core/behavior-example-pack-assembler.d.ts +43 -0
- package/plugin/dist/core/behavior-example-pack-assembler.js +247 -0
- package/plugin/dist/core/control-ui-db.d.ts +11 -0
- package/plugin/dist/core/control-ui-db.js +40 -16
- package/plugin/dist/core/event-log.js +0 -5
- package/plugin/dist/core/intent-doc-reader-adapter.d.ts +36 -0
- package/plugin/dist/core/intent-doc-reader-adapter.js +76 -0
- package/plugin/dist/core/intent-doc-reader.d.ts +89 -0
- package/plugin/dist/core/intent-doc-reader.js +210 -0
- package/plugin/dist/core/principle-tree-ledger.d.ts +27 -79
- package/plugin/dist/core/principle-tree-ledger.js +39 -524
- package/plugin/dist/core/reflection/reflection-context.d.ts +2 -2
- package/plugin/dist/core/rule-context-assembler.d.ts +45 -0
- package/plugin/dist/core/rule-context-assembler.js +148 -0
- package/plugin/dist/core/thinking-models.d.ts +12 -57
- package/plugin/dist/core/thinking-models.js +18 -224
- package/plugin/dist/core/trajectory-types.d.ts +18 -0
- package/plugin/dist/core/trajectory.d.ts +50 -2
- package/plugin/dist/core/trajectory.js +435 -254
- package/plugin/dist/core/workspace-context.d.ts +2 -3
- package/plugin/dist/hooks/gate.js +59 -2
- package/plugin/dist/hooks/pain.js +5 -0
- package/plugin/dist/hooks/prompt-helpers.d.ts +19 -1
- package/plugin/dist/hooks/prompt-helpers.js +39 -2
- package/plugin/dist/hooks/prompt-types.d.ts +8 -0
- package/plugin/dist/hooks/prompt.js +81 -21
- package/plugin/dist/index.d.ts +3 -1
- package/plugin/dist/index.js +10 -6
- package/plugin/dist/service/runtime-summary-service.js +1 -1
- package/plugin/dist/service/subagent-workflow/workflow-store.d.ts +14 -0
- package/plugin/dist/service/subagent-workflow/workflow-store.js +91 -2
- package/plugin/dist/types/event-types.d.ts +1 -1
- package/plugin/package.json +6 -3
- package/plugin/scripts/acceptance-test.mjs +3 -3
- package/plugin/dist/core/evolution-migration.d.ts +0 -5
- package/plugin/dist/core/evolution-migration.js +0 -65
- package/plugin/dist/core/principle-tree-ledger-adapter.d.ts +0 -32
- package/plugin/dist/core/principle-tree-ledger-adapter.js +0 -125
- package/plugin/dist/core/risk-calculator.d.ts +0 -22
- package/plugin/dist/core/risk-calculator.js +0 -88
- package/plugin/dist/core/rule-host-helpers.d.ts +0 -8
- package/plugin/dist/core/rule-host-helpers.js +0 -7
- package/plugin/dist/core/rule-host-types.d.ts +0 -7
- package/plugin/dist/core/rule-host-types.js +0 -7
- package/plugin/dist/core/schema/db-types.d.ts +0 -11
- package/plugin/dist/core/schema/db-types.js +0 -5
- package/plugin/dist/core/schema/index.d.ts +0 -17
- package/plugin/dist/core/schema/index.js +0 -15
- package/plugin/dist/core/schema/migration-runner.d.ts +0 -53
- package/plugin/dist/core/schema/migration-runner.js +0 -170
- package/plugin/dist/core/schema/migrations/001-init-trajectory.d.ts +0 -6
- package/plugin/dist/core/schema/migrations/001-init-trajectory.js +0 -190
- package/plugin/dist/core/schema/migrations/002-init-central.d.ts +0 -5
- package/plugin/dist/core/schema/migrations/002-init-central.js +0 -108
- package/plugin/dist/core/schema/migrations/003-init-workflow.d.ts +0 -5
- package/plugin/dist/core/schema/migrations/003-init-workflow.js +0 -50
- package/plugin/dist/core/schema/migrations/004-add-thinking-and-gfi.d.ts +0 -8
- package/plugin/dist/core/schema/migrations/004-add-thinking-and-gfi.js +0 -66
- package/plugin/dist/core/schema/migrations/index.d.ts +0 -16
- package/plugin/dist/core/schema/migrations/index.js +0 -27
- package/plugin/dist/core/schema/schema-definitions.d.ts +0 -46
- package/plugin/dist/core/schema/schema-definitions.js +0 -599
- package/plugin/dist/service/central-database.d.ts +0 -138
- package/plugin/dist/service/central-database.js +0 -731
- package/plugin/dist/service/central-sync-service.d.ts +0 -8
- package/plugin/dist/service/central-sync-service.js +0 -71
- package/plugin/scripts/db-migrate.mjs +0 -170
- package/plugin/scripts/validate-live-path.ts +0 -462
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PRI-482 Phase 3 — Production RuleContext v2 assembler
|
|
3
|
+
*
|
|
4
|
+
* Converts raw TrajectoryDatabase rows into a validated RuleHistoryWindow,
|
|
5
|
+
* and provides buildProductionRuleContext for gate integration.
|
|
6
|
+
*
|
|
7
|
+
* ERR prevention:
|
|
8
|
+
* - ERR-001: every row field is validated as unknown. No `as` bypass on
|
|
9
|
+
* parsed params_json or outcome.
|
|
10
|
+
* - ERR-024: buildProductionRuleContext fail-soft — query failure returns
|
|
11
|
+
* unavailable, never throws.
|
|
12
|
+
* - ERR-025: callers use recordToolCall → getRuleHostContextRows → this
|
|
13
|
+
* assembler, covering the full production chain.
|
|
14
|
+
*
|
|
15
|
+
* Spec: docs/superpowers/specs/2026-06-27-rulecode-context-vision-design.md §5.
|
|
16
|
+
*/
|
|
17
|
+
import { canonicalizeToolKind, computeBehaviorFacts, extractFilePathFromParams, normalizePathPure, UNAVAILABLE_RULE_CONTEXT, } from '@principles/core/runtime-v2';
|
|
18
|
+
// ── internal constants ─────────────────────────────────────────────────────
|
|
19
|
+
const VALID_OUTCOMES = new Set([
|
|
20
|
+
'success',
|
|
21
|
+
'failure',
|
|
22
|
+
'blocked',
|
|
23
|
+
]);
|
|
24
|
+
const DEFAULT_HISTORY_LIMIT = 20;
|
|
25
|
+
// ── type guards (rc-2: no `as` bypass) ─────────────────────────────────────
|
|
26
|
+
function isPlainObject(value) {
|
|
27
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
28
|
+
}
|
|
29
|
+
function isRuleToolOutcome(value) {
|
|
30
|
+
return typeof value === 'string' && VALID_OUTCOMES.has(value);
|
|
31
|
+
}
|
|
32
|
+
// ── assembleHistoryFromRows ────────────────────────────────────────────────
|
|
33
|
+
/**
|
|
34
|
+
* Convert raw DB rows into a validated RuleHistoryWindow.
|
|
35
|
+
*
|
|
36
|
+
* If ANY row is malformed (bad params_json, invalid outcome, empty tool_name),
|
|
37
|
+
* the entire window is marked unavailable (fail loud, spec §5.2).
|
|
38
|
+
*
|
|
39
|
+
* ERR-001: row fields are validated as unknown. params_json is JSON.parsed
|
|
40
|
+
* then structurally checked (must be a non-array object). No `as` bypass.
|
|
41
|
+
*/
|
|
42
|
+
export function assembleHistoryFromRows(rows, truncated, projectDir) {
|
|
43
|
+
const records = [];
|
|
44
|
+
for (const row of rows) {
|
|
45
|
+
// ── validate tool_name (ERR-001: unknown) ──
|
|
46
|
+
const toolName = row.toolName;
|
|
47
|
+
if (typeof toolName !== 'string' || toolName.length === 0) {
|
|
48
|
+
return unavailable(`row id=${row.id}: tool_name must be a non-empty string`);
|
|
49
|
+
}
|
|
50
|
+
// ── validate outcome (ERR-001: unknown, enum check) ──
|
|
51
|
+
const outcome = row.outcome;
|
|
52
|
+
if (!isRuleToolOutcome(outcome)) {
|
|
53
|
+
return unavailable(`row id=${row.id}: outcome "${row.outcome}" is not a valid RuleToolOutcome`);
|
|
54
|
+
}
|
|
55
|
+
// ── validate & parse params_json (ERR-001: unknown) ──
|
|
56
|
+
const paramsJsonStr = row.paramsJson;
|
|
57
|
+
if (typeof paramsJsonStr !== 'string') {
|
|
58
|
+
return unavailable(`row id=${row.id}: params_json must be a string`);
|
|
59
|
+
}
|
|
60
|
+
let parsedParams;
|
|
61
|
+
try {
|
|
62
|
+
parsedParams = JSON.parse(paramsJsonStr);
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
return unavailable(`row id=${row.id}: params_json is not valid JSON`);
|
|
66
|
+
}
|
|
67
|
+
// Must be a non-array object (spec §5.2)
|
|
68
|
+
if (!isPlainObject(parsedParams)) {
|
|
69
|
+
return unavailable(`row id=${row.id}: params_json must parse to a non-array object`);
|
|
70
|
+
}
|
|
71
|
+
// ── build RuleToolCallRecord ──
|
|
72
|
+
const canonicalKind = canonicalizeToolKind(toolName);
|
|
73
|
+
// Extract normalized path using the same pure logic as buildRuleHostAction
|
|
74
|
+
// (avoids production/replay drift, spec §4.4)
|
|
75
|
+
const rawPath = extractFilePathFromParams(parsedParams, {
|
|
76
|
+
isBashTool: canonicalKind === 'execute',
|
|
77
|
+
isWriteTool: canonicalKind === 'write',
|
|
78
|
+
toolName,
|
|
79
|
+
});
|
|
80
|
+
const normalizedPath = normalizePathPure(rawPath, projectDir);
|
|
81
|
+
records.push({
|
|
82
|
+
sequenceId: row.id,
|
|
83
|
+
toolName,
|
|
84
|
+
canonicalKind,
|
|
85
|
+
normalizedPath: normalizedPath === '' ? null : normalizedPath,
|
|
86
|
+
paramsSummary: parsedParams,
|
|
87
|
+
outcome,
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
return {
|
|
91
|
+
status: 'available',
|
|
92
|
+
truncated,
|
|
93
|
+
calls: records,
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
// ── buildProductionRuleContext ─────────────────────────────────────────────
|
|
97
|
+
/**
|
|
98
|
+
* Build a RuleContextV2 from the production data source (TrajectoryDatabase).
|
|
99
|
+
*
|
|
100
|
+
* ERR-024: if the query or assembly fails, returns an unavailable context
|
|
101
|
+
* (fail-soft). Never throws.
|
|
102
|
+
*
|
|
103
|
+
* sameActionBlockCount is always null in this version (spec §5.4:
|
|
104
|
+
* session-tracker.blockedAttempts is a session total, not per-action).
|
|
105
|
+
*/
|
|
106
|
+
export function buildProductionRuleContext(sessionId, targetPath, source, projectDir, limit = DEFAULT_HISTORY_LIMIT) {
|
|
107
|
+
// Guard: no session → no context
|
|
108
|
+
if (!sessionId || typeof sessionId !== 'string' || sessionId.length === 0) {
|
|
109
|
+
return UNAVAILABLE_RULE_CONTEXT;
|
|
110
|
+
}
|
|
111
|
+
try {
|
|
112
|
+
const result = source.getRuleHostContextRows(sessionId, limit);
|
|
113
|
+
const history = assembleHistoryFromRows(result.rows, result.truncated, projectDir);
|
|
114
|
+
// sameActionBlockCount = null (spec §5.4 — no reliable per-action source)
|
|
115
|
+
const facts = computeBehaviorFacts(history, targetPath, null);
|
|
116
|
+
return {
|
|
117
|
+
version: 2,
|
|
118
|
+
history,
|
|
119
|
+
facts,
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
catch {
|
|
123
|
+
// ERR-024: fail-soft — never let a DB error propagate to the rule host
|
|
124
|
+
return unavailableContext('query or assembly failed');
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
// ── internal helpers ───────────────────────────────────────────────────────
|
|
128
|
+
function unavailable(reason) {
|
|
129
|
+
return {
|
|
130
|
+
status: 'unavailable',
|
|
131
|
+
unavailableReason: reason,
|
|
132
|
+
truncated: false,
|
|
133
|
+
calls: [],
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
function unavailableContext(reason) {
|
|
137
|
+
return {
|
|
138
|
+
version: 2,
|
|
139
|
+
history: unavailable(reason),
|
|
140
|
+
facts: {
|
|
141
|
+
priorReadOfTarget: 'unknown',
|
|
142
|
+
readCount: null,
|
|
143
|
+
writeCount: null,
|
|
144
|
+
uniqueWritePathCount: null,
|
|
145
|
+
sameActionBlockCount: null,
|
|
146
|
+
},
|
|
147
|
+
};
|
|
148
|
+
}
|
|
@@ -1,49 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Thinking Models —
|
|
2
|
+
* Thinking Models — Plugin I/O Adapter (Stage 3 slim)
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* Pure logic (BUILTIN_PATTERNS, BUILTIN_PATTERN_MAP, getFallbackName,
|
|
5
|
+
* getFallbackDescription, deriveThinkingScenarios, types) lives in
|
|
6
|
+
* @principles/core/runtime-v2/thinking-models.
|
|
7
7
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
8
|
+
* This file owns only the I/O boundary: reading THINKING_OS.md from a
|
|
9
|
+
* workspace dir and merging it with the builtin patterns. It re-exports
|
|
10
|
+
* the pure functions and types so existing relative imports
|
|
11
|
+
* (../core/thinking-models.js) continue to resolve.
|
|
12
12
|
*/
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
antiPattern?: string;
|
|
18
|
-
patterns: RegExp[];
|
|
19
|
-
baselineScenarios: string[];
|
|
20
|
-
}
|
|
21
|
-
export interface ThinkingModelMatch {
|
|
22
|
-
modelId: string;
|
|
23
|
-
matchedPattern: string;
|
|
24
|
-
}
|
|
25
|
-
export interface ThinkingScenarioContext {
|
|
26
|
-
recentToolCalls?: {
|
|
27
|
-
toolName: string;
|
|
28
|
-
outcome: 'success' | 'failure' | 'blocked';
|
|
29
|
-
errorType?: string | null;
|
|
30
|
-
}[];
|
|
31
|
-
recentPainEvents?: {
|
|
32
|
-
source: string;
|
|
33
|
-
score: number;
|
|
34
|
-
}[];
|
|
35
|
-
recentGateBlocks?: {
|
|
36
|
-
toolName: string;
|
|
37
|
-
reason: string;
|
|
38
|
-
}[];
|
|
39
|
-
recentUserCorrections?: {
|
|
40
|
-
correctionCue?: string | null;
|
|
41
|
-
}[];
|
|
42
|
-
recentPrincipleEvents?: {
|
|
43
|
-
eventType: string;
|
|
44
|
-
principleId?: string | null;
|
|
45
|
-
}[];
|
|
46
|
-
}
|
|
13
|
+
import { type ThinkingModelDefinition, type ThinkingModelMatch } from '@principles/core/runtime-v2';
|
|
14
|
+
export { BUILTIN_PATTERN_MAP, getFallbackName, getFallbackDescription, } from '@principles/core/runtime-v2';
|
|
15
|
+
export { deriveThinkingScenarios } from '@principles/core/runtime-v2';
|
|
16
|
+
export type { ThinkingModelDefinition, ThinkingModelMatch, ThinkingScenarioContext, } from '@principles/core/runtime-v2';
|
|
47
17
|
/**
|
|
48
18
|
* Load thinking model definitions dynamically from THINKING_OS.md.
|
|
49
19
|
* Falls back to built-in definitions if parsing fails.
|
|
@@ -51,20 +21,5 @@ export interface ThinkingScenarioContext {
|
|
|
51
21
|
* @param workspaceDir Optional. If provided, loads from that workspace's THINKING_OS.md.
|
|
52
22
|
*/
|
|
53
23
|
export declare function listThinkingModels(workspaceDir?: string): ThinkingModelDefinition[];
|
|
54
|
-
/**
|
|
55
|
-
* Clear the cached model definitions.
|
|
56
|
-
* Call this when THINKING_OS.md changes.
|
|
57
|
-
*/
|
|
58
|
-
export declare function clearThinkingModelCache(): void;
|
|
59
24
|
export declare function getThinkingModel(modelId: string, workspaceDir?: string): ThinkingModelDefinition | undefined;
|
|
60
25
|
export declare function detectThinkingModelMatches(text: string, workspaceDir?: string): ThinkingModelMatch[];
|
|
61
|
-
/**
|
|
62
|
-
* Get all model definitions for display purposes (no patterns).
|
|
63
|
-
*/
|
|
64
|
-
export declare function getThinkingModelDefinitions(workspaceDir?: string): {
|
|
65
|
-
modelId: string;
|
|
66
|
-
name: string;
|
|
67
|
-
description: string;
|
|
68
|
-
antiPattern?: string;
|
|
69
|
-
}[];
|
|
70
|
-
export declare function deriveThinkingScenarios(modelId: string, context: ThinkingScenarioContext): string[];
|
|
@@ -1,163 +1,20 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Thinking Models —
|
|
2
|
+
* Thinking Models — Plugin I/O Adapter (Stage 3 slim)
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* Pure logic (BUILTIN_PATTERNS, BUILTIN_PATTERN_MAP, getFallbackName,
|
|
5
|
+
* getFallbackDescription, deriveThinkingScenarios, types) lives in
|
|
6
|
+
* @principles/core/runtime-v2/thinking-models.
|
|
7
7
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
8
|
+
* This file owns only the I/O boundary: reading THINKING_OS.md from a
|
|
9
|
+
* workspace dir and merging it with the builtin patterns. It re-exports
|
|
10
|
+
* the pure functions and types so existing relative imports
|
|
11
|
+
* (../core/thinking-models.js) continue to resolve.
|
|
12
12
|
*/
|
|
13
13
|
import { loadThinkingOsFromWorkspace, generateDetectionPatterns } from './thinking-os-parser.js';
|
|
14
|
-
import {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
patterns: [
|
|
19
|
-
// Thinking process language (AI reasoning output)
|
|
20
|
-
/let me (first )?(understand|map|outline|survey|review the (structure|architecture|dependencies))/i,
|
|
21
|
-
/before (changing|editing|touching) anything/i,
|
|
22
|
-
/让我先(梳理|理解|看看|盘点).*(结构|架构|依赖|全貌)/i,
|
|
23
|
-
/在执行任何.*/i,
|
|
24
|
-
// Decision directive language (nocturnal artifact betterDecision)
|
|
25
|
-
/review (the |)(docs|architecture|structure|requirements|constraints|dependencies|authorization)/i,
|
|
26
|
-
/read (the |)(docs|architecture|requirements|constraints|logs?|error|stack)/i,
|
|
27
|
-
/check (the |)(docs|architecture|source|authorization|requirements|error)/i,
|
|
28
|
-
/understand (the |)(structure|architecture|requirements|constraints|full (context|picture))/i,
|
|
29
|
-
/first (to|and|,) (verify|check|review|read|understand|confirm|diagnose)/i,
|
|
30
|
-
/(verify|check|review|read|confirm) .+ first/i,
|
|
31
|
-
],
|
|
32
|
-
baselineScenarios: ['exploration', 'discovery'],
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
id: 'T-02',
|
|
36
|
-
patterns: [
|
|
37
|
-
// Thinking process language
|
|
38
|
-
/(type|test|contract|schema|interface) (constraint|requirement|check|validation)/i,
|
|
39
|
-
/(必须|需要).*(遵守|符合|满足).*(类型|测试|契约|接口|规范)/i,
|
|
40
|
-
// Decision directive language
|
|
41
|
-
/(trust|follow|respect|adhere to|meet) (the |)(constraint|requirement|contract|interface|specification|schema|type)/i,
|
|
42
|
-
/(check|verify|validate|ensure) (the |)(constraint|requirement|contract|interface|specification|type|schema)/i,
|
|
43
|
-
],
|
|
44
|
-
baselineScenarios: ['constraint-check', 'contract-verification'],
|
|
45
|
-
},
|
|
46
|
-
{
|
|
47
|
-
id: 'T-03',
|
|
48
|
-
patterns: [
|
|
49
|
-
// Thinking process language
|
|
50
|
-
/based on (the |this )?(evidence|logs?|output|error|stack trace|test result)/i,
|
|
51
|
-
/let me (check|verify|confirm|read|look at) (the |)(actual|source|code|file|log)/i,
|
|
52
|
-
/根据(日志|证据|输出|报错|堆栈|测试结果)/i,
|
|
53
|
-
// Decision directive language (evidence-based decision)
|
|
54
|
-
/(verify|check|confirm) (the |)(error|error code|error message|actual|evidence|logs?|output|stack)/i,
|
|
55
|
-
/(error|failure) (logs?|output|stack trace|message|code) (before|then)/i,
|
|
56
|
-
/(look at|read) (the |)(error|logs?|output|stack|actual|evidence|file|code)/i,
|
|
57
|
-
],
|
|
58
|
-
baselineScenarios: ['evidence-gathering', 'verification'],
|
|
59
|
-
},
|
|
60
|
-
{
|
|
61
|
-
id: 'T-04',
|
|
62
|
-
patterns: [
|
|
63
|
-
// Thinking process language
|
|
64
|
-
/this (is|would be) (irreversible|destructive|permanent|not easily undone)/i,
|
|
65
|
-
/(reversible|can be undone|safely roll back)/i,
|
|
66
|
-
/(不可逆|破坏性|无法回滚|可以回滚|安全撤销)/i,
|
|
67
|
-
// Decision directive language
|
|
68
|
-
/(irreversible|destructive|permanent|high impact) (action|change|operation)/i,
|
|
69
|
-
/(must be|need to be|should be) (reviewed|confirmed|verified|checked) (first|before)/i,
|
|
70
|
-
/(get|obtain|ask for) (confirmation|authorization|approval|permission) (first|before)/i,
|
|
71
|
-
],
|
|
72
|
-
baselineScenarios: ['risk-management', 'reversibility'],
|
|
73
|
-
},
|
|
74
|
-
{
|
|
75
|
-
id: 'T-05',
|
|
76
|
-
patterns: [
|
|
77
|
-
// Thinking process language
|
|
78
|
-
/we (must|should) (not|never|avoid|prevent|ensure we don't)/i,
|
|
79
|
-
/(critical|important) (not to|that we don't|to avoid)/i,
|
|
80
|
-
/(绝不能|必须避免|不可|禁止|确保不会)/i,
|
|
81
|
-
// Decision directive language
|
|
82
|
-
/(must|should|need to) (not |never |avoid )?(check|verify|review|read|confirm|ask)/i,
|
|
83
|
-
/(safety|safe) (check|gate|checklist|guard)/i,
|
|
84
|
-
],
|
|
85
|
-
baselineScenarios: ['guardrails', 'safety-rails'],
|
|
86
|
-
},
|
|
87
|
-
{
|
|
88
|
-
id: 'T-06',
|
|
89
|
-
patterns: [
|
|
90
|
-
// Thinking process language
|
|
91
|
-
/(simpl(er|est|ify)|minimal|straightforward|lean) (approach|solution|fix|implementation)/i,
|
|
92
|
-
/(simple is better|keep it simple|no need to over)/i,
|
|
93
|
-
/(最简|更简单|精简|没必要过度设计)/i,
|
|
94
|
-
// Decision directive language
|
|
95
|
-
/(minimal|smallest|narrowest) (change|modification|impact|approach)/i,
|
|
96
|
-
/(only|just) (change|modify|touch|edit|affect) (the |what)/i,
|
|
97
|
-
],
|
|
98
|
-
baselineScenarios: ['simplification', 'pragmatism'],
|
|
99
|
-
},
|
|
100
|
-
{
|
|
101
|
-
id: 'T-07',
|
|
102
|
-
patterns: [
|
|
103
|
-
// Thinking process language
|
|
104
|
-
/(minimal|smallest|narrowest|least) (change|diff|modification|impact)/i,
|
|
105
|
-
/only (change|modify|touch|edit) (the |what)/i,
|
|
106
|
-
/(最小改动|最小变更|只改|只动必要部分)/i,
|
|
107
|
-
// Decision directive language
|
|
108
|
-
/(limit|narrow) (the |)(change|impact|scope|blast radius)/i,
|
|
109
|
-
],
|
|
110
|
-
baselineScenarios: ['minimal-diff', 'blast-radius-control'],
|
|
111
|
-
},
|
|
112
|
-
{
|
|
113
|
-
id: 'T-08',
|
|
114
|
-
patterns: [
|
|
115
|
-
// Thinking process language
|
|
116
|
-
/this (error|failure|issue) (tells us|indicates|signals|suggests|means)/i,
|
|
117
|
-
/let me (stop|pause|step back|reconsider|rethink)/i,
|
|
118
|
-
/这个(错误|失败|问题).*(说明|意味着|提示)/i,
|
|
119
|
-
/让我(停下|暂停|退一步|重新考虑|重新审视)/i,
|
|
120
|
-
// Decision directive language
|
|
121
|
-
/(diagnose|analyze|investigate) (the |)(root |)(cause|reason|error|failure) (first|before)/i,
|
|
122
|
-
/(understand|diagnose|analyze) (the |)(error|failure|issue|problem) (first|before)/i,
|
|
123
|
-
],
|
|
124
|
-
baselineScenarios: ['reflection', 'pain-response'],
|
|
125
|
-
},
|
|
126
|
-
{
|
|
127
|
-
id: 'T-09',
|
|
128
|
-
patterns: [
|
|
129
|
-
// Thinking process language
|
|
130
|
-
/(break|split|decompose|divide) (this |the task |it )?(into|down)/i,
|
|
131
|
-
/(step 1|first,? (we|i|let's)|phase 1)/i,
|
|
132
|
-
/(拆分|分解|分步|分阶段|第一步)/i,
|
|
133
|
-
// Decision directive language
|
|
134
|
-
/(break|split|decompose|divide) (the |)(task|problem|action) (into|into steps)/i,
|
|
135
|
-
],
|
|
136
|
-
baselineScenarios: ['decomposition', 'phased-execution'],
|
|
137
|
-
},
|
|
138
|
-
{
|
|
139
|
-
id: 'T-10',
|
|
140
|
-
patterns: [
|
|
141
|
-
// Thinking process language
|
|
142
|
-
/let me (write|save|record|note down|document)/i,
|
|
143
|
-
/memory.*scratchpad|write.*plan\.md|write.*memory|memory.*persist/i,
|
|
144
|
-
/(让我.*写入|写入.*memory|记录.*scratchpad)/i,
|
|
145
|
-
// Decision directive language
|
|
146
|
-
/(write|save|record|note) (the |)(conclusion|decision|plan|next step) (to|in) (file|plan\.md|scratchpad)/i,
|
|
147
|
-
],
|
|
148
|
-
baselineScenarios: ['memory-persistence', 'state-externalization'],
|
|
149
|
-
},
|
|
150
|
-
];
|
|
151
|
-
const BUILTIN_PATTERN_MAP = new Map(BUILTIN_PATTERNS.map((p) => [p.id, p]));
|
|
152
|
-
// Fallback name/description lookup — delegates to Core Principle Registry
|
|
153
|
-
function getFallbackName(id) {
|
|
154
|
-
const entry = CORE_PRINCIPLES.find(p => p.id === id);
|
|
155
|
-
return entry?.name ?? id;
|
|
156
|
-
}
|
|
157
|
-
function getFallbackDescription(id) {
|
|
158
|
-
const entry = CORE_PRINCIPLES.find(p => p.id === id);
|
|
159
|
-
return entry?.statement ?? '';
|
|
160
|
-
}
|
|
14
|
+
import { BUILTIN_PATTERN_MAP, getFallbackName, getFallbackDescription, } from '@principles/core/runtime-v2';
|
|
15
|
+
// Re-export pure logic + types so existing imports from this module keep working.
|
|
16
|
+
export { BUILTIN_PATTERN_MAP, getFallbackName, getFallbackDescription, } from '@principles/core/runtime-v2';
|
|
17
|
+
export { deriveThinkingScenarios } from '@principles/core/runtime-v2';
|
|
161
18
|
// ---------------------------------------------------------------------------
|
|
162
19
|
// Runtime model definitions — merged from THINKING_OS.md + builtin patterns
|
|
163
20
|
// ---------------------------------------------------------------------------
|
|
@@ -200,27 +57,19 @@ export function listThinkingModels(workspaceDir) {
|
|
|
200
57
|
}
|
|
201
58
|
}
|
|
202
59
|
// Fallback: built-in definitions
|
|
203
|
-
for (const
|
|
60
|
+
for (const [id, builtin] of BUILTIN_PATTERN_MAP) {
|
|
204
61
|
models.push({
|
|
205
|
-
id
|
|
206
|
-
name: getFallbackName(
|
|
207
|
-
description: getFallbackDescription(
|
|
208
|
-
patterns:
|
|
209
|
-
baselineScenarios:
|
|
62
|
+
id,
|
|
63
|
+
name: getFallbackName(id),
|
|
64
|
+
description: getFallbackDescription(id),
|
|
65
|
+
patterns: builtin.patterns,
|
|
66
|
+
baselineScenarios: builtin.baselineScenarios,
|
|
210
67
|
});
|
|
211
68
|
}
|
|
212
69
|
_cachedDefinitions = models;
|
|
213
70
|
_cachedWorkspace = cacheKey;
|
|
214
71
|
return models.slice();
|
|
215
72
|
}
|
|
216
|
-
/**
|
|
217
|
-
* Clear the cached model definitions.
|
|
218
|
-
* Call this when THINKING_OS.md changes.
|
|
219
|
-
*/
|
|
220
|
-
export function clearThinkingModelCache() {
|
|
221
|
-
_cachedDefinitions = null;
|
|
222
|
-
_cachedWorkspace = null;
|
|
223
|
-
}
|
|
224
73
|
export function getThinkingModel(modelId, workspaceDir) {
|
|
225
74
|
const models = listThinkingModels(workspaceDir);
|
|
226
75
|
return models.find(m => m.id === modelId);
|
|
@@ -243,58 +92,3 @@ export function detectThinkingModelMatches(text, workspaceDir) {
|
|
|
243
92
|
}
|
|
244
93
|
return matches;
|
|
245
94
|
}
|
|
246
|
-
/**
|
|
247
|
-
* Get all model definitions for display purposes (no patterns).
|
|
248
|
-
*/
|
|
249
|
-
export function getThinkingModelDefinitions(workspaceDir) {
|
|
250
|
-
return listThinkingModels(workspaceDir).map(m => ({
|
|
251
|
-
modelId: m.id,
|
|
252
|
-
name: m.id + ': ' + m.name,
|
|
253
|
-
description: m.description,
|
|
254
|
-
antiPattern: m.antiPattern,
|
|
255
|
-
}));
|
|
256
|
-
}
|
|
257
|
-
export function deriveThinkingScenarios(modelId, context) {
|
|
258
|
-
const scenarios = new Set(getThinkingModel(modelId)?.baselineScenarios ?? []);
|
|
259
|
-
if ((context.recentToolCalls ?? []).some((call) => call.outcome === 'failure')) {
|
|
260
|
-
scenarios.add('after-tool-failure');
|
|
261
|
-
}
|
|
262
|
-
// after-recovery: success that follows a failure (not just any success)
|
|
263
|
-
const calls = context.recentToolCalls ?? [];
|
|
264
|
-
const hasFailure = calls.some((call) => call.outcome === 'failure');
|
|
265
|
-
const hasSuccess = calls.some((call) => call.outcome === 'success');
|
|
266
|
-
if (hasFailure && hasSuccess) {
|
|
267
|
-
scenarios.add('after-recovery');
|
|
268
|
-
}
|
|
269
|
-
if ((context.recentToolCalls ?? []).some((call) => call.outcome === 'blocked')) {
|
|
270
|
-
scenarios.add('blocked-execution');
|
|
271
|
-
}
|
|
272
|
-
if ((context.recentToolCalls ?? []).some((call) => Boolean(call.errorType))) {
|
|
273
|
-
scenarios.add('incident-response');
|
|
274
|
-
}
|
|
275
|
-
if ((context.recentPainEvents ?? []).length > 0) {
|
|
276
|
-
scenarios.add('user-friction');
|
|
277
|
-
}
|
|
278
|
-
if ((context.recentGateBlocks ?? []).length > 0) {
|
|
279
|
-
scenarios.add('gate-block');
|
|
280
|
-
}
|
|
281
|
-
if ((context.recentUserCorrections ?? []).length > 0) {
|
|
282
|
-
scenarios.add('user-correction');
|
|
283
|
-
}
|
|
284
|
-
if ((context.recentPrincipleEvents ?? []).length > 0) {
|
|
285
|
-
scenarios.add('principle-feedback');
|
|
286
|
-
}
|
|
287
|
-
if (modelId === 'T-03') {
|
|
288
|
-
scenarios.add('root-cause-analysis');
|
|
289
|
-
}
|
|
290
|
-
if (modelId === 'T-04' || modelId === 'T-05') {
|
|
291
|
-
scenarios.add('risk-review');
|
|
292
|
-
}
|
|
293
|
-
if (modelId === 'T-08') {
|
|
294
|
-
scenarios.add('reflection-loop');
|
|
295
|
-
}
|
|
296
|
-
if (modelId === 'T-09') {
|
|
297
|
-
scenarios.add('task-planning');
|
|
298
|
-
}
|
|
299
|
-
return Array.from(scenarios);
|
|
300
|
-
}
|
|
@@ -222,4 +222,22 @@ export interface TrajectoryDatabaseOptions {
|
|
|
222
222
|
busyTimeoutMs?: number;
|
|
223
223
|
orphanBlobGraceDays?: number;
|
|
224
224
|
}
|
|
225
|
+
/**
|
|
226
|
+
* Raw row from tool_calls for RuleContext v2 history assembly.
|
|
227
|
+
* Fields are raw strings from SQLite — the assembler validates them as unknown.
|
|
228
|
+
*/
|
|
229
|
+
export interface RuleHostContextRow {
|
|
230
|
+
readonly id: number;
|
|
231
|
+
readonly toolName: string;
|
|
232
|
+
readonly outcome: string;
|
|
233
|
+
readonly paramsJson: string;
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Result of getRuleHostContextRows: FIFO-ordered rows + truncated flag.
|
|
237
|
+
* truncated=true when more than `limit` rows existed (limit+1 read trick).
|
|
238
|
+
*/
|
|
239
|
+
export interface RuleHostContextResult {
|
|
240
|
+
readonly rows: readonly RuleHostContextRow[];
|
|
241
|
+
readonly truncated: boolean;
|
|
242
|
+
}
|
|
225
243
|
export type { DailyMetricRow };
|
|
@@ -1,5 +1,21 @@
|
|
|
1
|
-
import type { CorrectionSampleReviewStatus, CorrectionExportMode, TrajectoryDataStats, TrajectoryAssistantTurnInput, TrajectoryUserTurnInput, TrajectoryToolCallInput, TrajectoryPainEventInput, TrajectoryGateBlockInput, TrajectoryTrustChangeInput, TrajectoryPrincipleEventInput, TrajectoryTaskOutcomeInput, TrajectorySessionInput, EvolutionTaskInput, EvolutionEventInput, EvolutionTaskRecord, EvolutionEventRecord, EvolutionTaskFilters, AssistantTurnRecord, CorrectionSampleRecord, TrajectoryExportResult, TrajectoryDatabaseOptions } from './trajectory-types.js';
|
|
2
|
-
export type { CorrectionSampleReviewStatus, CorrectionExportMode, TrajectoryDataStats, TrajectoryAssistantTurnInput, TrajectoryUserTurnInput, TrajectoryToolCallInput, TrajectoryPainEventInput, TrajectoryGateBlockInput, DailyMetricRow, TrajectoryTrustChangeInput, TrajectoryPrincipleEventInput, TrajectoryTaskOutcomeInput, TrajectorySessionInput, TaskKind, TaskPriority, EvolutionTaskInput, EvolutionEventInput, EvolutionTaskRecord, EvolutionEventRecord, EvolutionTaskFilters, AssistantTurnRecord, CorrectionSampleRecord, TrajectoryExportResult, TrajectoryDatabaseOptions, } from './trajectory-types.js';
|
|
1
|
+
import type { CorrectionSampleReviewStatus, CorrectionExportMode, TrajectoryDataStats, TrajectoryAssistantTurnInput, TrajectoryUserTurnInput, TrajectoryToolCallInput, TrajectoryPainEventInput, TrajectoryGateBlockInput, TrajectoryTrustChangeInput, TrajectoryPrincipleEventInput, TrajectoryTaskOutcomeInput, TrajectorySessionInput, EvolutionTaskInput, EvolutionEventInput, EvolutionTaskRecord, EvolutionEventRecord, EvolutionTaskFilters, AssistantTurnRecord, CorrectionSampleRecord, TrajectoryExportResult, TrajectoryDatabaseOptions, RuleHostContextResult } from './trajectory-types.js';
|
|
2
|
+
export type { CorrectionSampleReviewStatus, CorrectionExportMode, TrajectoryDataStats, TrajectoryAssistantTurnInput, TrajectoryUserTurnInput, TrajectoryToolCallInput, TrajectoryPainEventInput, TrajectoryGateBlockInput, DailyMetricRow, TrajectoryTrustChangeInput, TrajectoryPrincipleEventInput, TrajectoryTaskOutcomeInput, TrajectorySessionInput, TaskKind, TaskPriority, EvolutionTaskInput, EvolutionEventInput, EvolutionTaskRecord, EvolutionEventRecord, EvolutionTaskFilters, AssistantTurnRecord, CorrectionSampleRecord, TrajectoryExportResult, TrajectoryDatabaseOptions, RuleHostContextRow, RuleHostContextResult, } from './trajectory-types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Initialize trajectory.db schema at the given workspace directory.
|
|
5
|
+
*
|
|
6
|
+
* Opens trajectory.db in write mode, applies the full schema (tables + indexes + views +
|
|
7
|
+
* migrations), then closes the DB. Does NOT run importLegacyArtifacts() or
|
|
8
|
+
* pruneUnreferencedBlobs() — those are runtime side-effects of TrajectoryDatabase
|
|
9
|
+
* construction and are not needed for pure initialization.
|
|
10
|
+
*
|
|
11
|
+
* Idempotent: safe to call on an existing DB; all CREATE statements use IF NOT EXISTS.
|
|
12
|
+
*
|
|
13
|
+
* @returns list of created/verified table names and any warnings
|
|
14
|
+
*/
|
|
15
|
+
export declare function initTrajectorySchema(workspaceDir: string): {
|
|
16
|
+
tables: string[];
|
|
17
|
+
warnings: string[];
|
|
18
|
+
};
|
|
3
19
|
export declare class TrajectoryDatabase {
|
|
4
20
|
private readonly workspaceDir;
|
|
5
21
|
private readonly stateDir;
|
|
@@ -105,6 +121,15 @@ export declare class TrajectoryDatabase {
|
|
|
105
121
|
resultPreview: string | null;
|
|
106
122
|
createdAt: string;
|
|
107
123
|
}[];
|
|
124
|
+
/**
|
|
125
|
+
* PRI-482 Phase 3: Query tool_calls for RuleContext v2 history assembly.
|
|
126
|
+
*
|
|
127
|
+
* Reads limit+1 rows (DESC by id) to compute truncated, then reverses to FIFO.
|
|
128
|
+
* Returns raw rows — the assembler (rule-context-assembler.ts) validates them.
|
|
129
|
+
*
|
|
130
|
+
* Spec: §5.1, §5.2. ERR-026: reuses production schema (no hand-written DDL).
|
|
131
|
+
*/
|
|
132
|
+
getRuleHostContextRows(sessionId: string, limit?: number): RuleHostContextResult;
|
|
108
133
|
/**
|
|
109
134
|
* List pain events for a session.
|
|
110
135
|
*
|
|
@@ -121,6 +146,29 @@ export declare class TrajectoryDatabase {
|
|
|
121
146
|
confidence: number | null;
|
|
122
147
|
createdAt: string;
|
|
123
148
|
}[];
|
|
149
|
+
/**
|
|
150
|
+
* PRI-484 Phase 5 — Look up a single pain event by canonical_pain_id.
|
|
151
|
+
*
|
|
152
|
+
* Used by BehaviorExamplePackAssembler to anchor a pain lineage without
|
|
153
|
+
* already knowing the session_id. Returns null when not found.
|
|
154
|
+
*
|
|
155
|
+
* ERR-001 (rc-1, rc-2): row fields validated as unknown — no `as` bypass.
|
|
156
|
+
* Uses a type-guard predicate to narrow the DB row structurally.
|
|
157
|
+
*/
|
|
158
|
+
getPainEventByCanonicalId(canonicalPainId: string): {
|
|
159
|
+
id: number;
|
|
160
|
+
sessionId: string;
|
|
161
|
+
source: string;
|
|
162
|
+
score: number;
|
|
163
|
+
reason: string | null;
|
|
164
|
+
severity: string | null;
|
|
165
|
+
origin: string | null;
|
|
166
|
+
confidence: number | null;
|
|
167
|
+
text: string | null;
|
|
168
|
+
canonicalPainId: string;
|
|
169
|
+
runtimeTaskId: string | null;
|
|
170
|
+
createdAt: string;
|
|
171
|
+
} | null;
|
|
124
172
|
/**
|
|
125
173
|
* List user turns for a session.
|
|
126
174
|
* Returns sanitized/reduced fields for nocturnal use — NO raw text.
|