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
|
@@ -78,8 +78,12 @@ export class WorkflowStore {
|
|
|
78
78
|
this.db.exec('ALTER TABLE subagent_workflows ADD COLUMN duration_ms INTEGER');
|
|
79
79
|
console.info(`[PD:WorkflowStore] Schema migration v${fromVersion} → v${toVersion}: added duration_ms column`);
|
|
80
80
|
}
|
|
81
|
-
catch {
|
|
82
|
-
void 0
|
|
81
|
+
catch (err) {
|
|
82
|
+
// rc-9: surface failure reason instead of silent void 0
|
|
83
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
84
|
+
if (!message.includes('duplicate column name')) {
|
|
85
|
+
console.info(`[PD:WorkflowStore] Schema migration v${fromVersion} → v${toVersion} failed: ${message}`);
|
|
86
|
+
}
|
|
83
87
|
}
|
|
84
88
|
}
|
|
85
89
|
}
|
|
@@ -207,3 +211,88 @@ export class WorkflowStore {
|
|
|
207
211
|
return rows.map(r => r.duration_ms);
|
|
208
212
|
}
|
|
209
213
|
}
|
|
214
|
+
/**
|
|
215
|
+
* Initialize subagent_workflows.db schema at the given workspace directory.
|
|
216
|
+
*
|
|
217
|
+
* Opens the DB in write mode, applies the full schema (tables + indexes + migrations),
|
|
218
|
+
* then closes the DB. Used by `pd runtime init` for unified DB initialization.
|
|
219
|
+
*
|
|
220
|
+
* Idempotent: safe to call on an existing DB; all CREATE statements use IF NOT EXISTS.
|
|
221
|
+
*
|
|
222
|
+
* @returns list of created/verified table names and any warnings
|
|
223
|
+
*/
|
|
224
|
+
export function initWorkflowSchema(workspaceDir) {
|
|
225
|
+
const resolvedDir = path.resolve(workspaceDir);
|
|
226
|
+
const stateDir = path.join(resolvedDir, '.state');
|
|
227
|
+
const dbPath = path.join(stateDir, 'subagent_workflows.db');
|
|
228
|
+
const warnings = [];
|
|
229
|
+
const tables = ['schema_version', 'subagent_workflows', 'subagent_workflow_events'];
|
|
230
|
+
fs.mkdirSync(stateDir, { recursive: true });
|
|
231
|
+
const db = new Database(dbPath);
|
|
232
|
+
try {
|
|
233
|
+
db.pragma('journal_mode = WAL');
|
|
234
|
+
db.pragma('foreign_keys = ON');
|
|
235
|
+
db.pragma('synchronous = NORMAL');
|
|
236
|
+
db.pragma(`busy_timeout = ${DEFAULT_BUSY_TIMEOUT_MS}`);
|
|
237
|
+
db.exec(`
|
|
238
|
+
CREATE TABLE IF NOT EXISTS schema_version (
|
|
239
|
+
version INTEGER NOT NULL
|
|
240
|
+
);
|
|
241
|
+
CREATE TABLE IF NOT EXISTS subagent_workflows (
|
|
242
|
+
workflow_id TEXT PRIMARY KEY,
|
|
243
|
+
workflow_type TEXT NOT NULL,
|
|
244
|
+
transport TEXT NOT NULL,
|
|
245
|
+
parent_session_id TEXT NOT NULL,
|
|
246
|
+
child_session_key TEXT NOT NULL,
|
|
247
|
+
run_id TEXT,
|
|
248
|
+
state TEXT NOT NULL DEFAULT 'pending',
|
|
249
|
+
cleanup_state TEXT NOT NULL DEFAULT 'none',
|
|
250
|
+
created_at INTEGER NOT NULL,
|
|
251
|
+
updated_at INTEGER NOT NULL,
|
|
252
|
+
last_observed_at INTEGER,
|
|
253
|
+
duration_ms INTEGER,
|
|
254
|
+
metadata_json TEXT NOT NULL DEFAULT '{}'
|
|
255
|
+
);
|
|
256
|
+
CREATE TABLE IF NOT EXISTS subagent_workflow_events (
|
|
257
|
+
workflow_id TEXT NOT NULL,
|
|
258
|
+
event_type TEXT NOT NULL,
|
|
259
|
+
from_state TEXT,
|
|
260
|
+
to_state TEXT NOT NULL,
|
|
261
|
+
reason TEXT NOT NULL,
|
|
262
|
+
payload_json TEXT NOT NULL DEFAULT '{}',
|
|
263
|
+
created_at INTEGER NOT NULL,
|
|
264
|
+
FOREIGN KEY (workflow_id) REFERENCES subagent_workflows(workflow_id) ON DELETE CASCADE
|
|
265
|
+
);
|
|
266
|
+
CREATE INDEX IF NOT EXISTS idx_workflows_parent_session ON subagent_workflows(parent_session_id);
|
|
267
|
+
CREATE INDEX IF NOT EXISTS idx_workflows_child_session ON subagent_workflows(child_session_key);
|
|
268
|
+
CREATE INDEX IF NOT EXISTS idx_workflows_state ON subagent_workflows(state);
|
|
269
|
+
CREATE INDEX IF NOT EXISTS idx_workflows_type ON subagent_workflows(workflow_type);
|
|
270
|
+
CREATE INDEX IF NOT EXISTS idx_events_workflow ON subagent_workflow_events(workflow_id);
|
|
271
|
+
`);
|
|
272
|
+
// Run migrations to bring schema up to SCHEMA_VERSION
|
|
273
|
+
const row = db.prepare('SELECT version FROM schema_version LIMIT 1').get();
|
|
274
|
+
const currentVersion = row?.version ?? 0;
|
|
275
|
+
if (currentVersion === 0) {
|
|
276
|
+
db.prepare('INSERT INTO schema_version (version) VALUES (?)').run(SCHEMA_VERSION);
|
|
277
|
+
}
|
|
278
|
+
else if (currentVersion < SCHEMA_VERSION) {
|
|
279
|
+
// Inline migration logic (mirrors WorkflowStore.runMigrations)
|
|
280
|
+
if (currentVersion < 2 && SCHEMA_VERSION >= 2) {
|
|
281
|
+
try {
|
|
282
|
+
db.exec('ALTER TABLE subagent_workflows ADD COLUMN duration_ms INTEGER');
|
|
283
|
+
}
|
|
284
|
+
catch (err) {
|
|
285
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
286
|
+
if (!message.includes('duplicate column name')) {
|
|
287
|
+
warnings.push(`migration v${currentVersion}→v${SCHEMA_VERSION} duration_ms failed: ${message}`);
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
db.prepare('UPDATE schema_version SET version = ?').run(SCHEMA_VERSION);
|
|
292
|
+
}
|
|
293
|
+
return { tables, warnings };
|
|
294
|
+
}
|
|
295
|
+
finally {
|
|
296
|
+
db.close();
|
|
297
|
+
}
|
|
298
|
+
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export type { EventType, EventCategory, EventLogEntry, ToolCallEventData, PainSignalEventData,
|
|
1
|
+
export type { EventType, EventCategory, EventLogEntry, ToolCallEventData, PainSignalEventData, RulePromotionEventData, HookExecutionEventData, GateBlockEventData, GateBypassEventData, PlanApprovalEventData, EvolutionTaskEventData, EmpathyRollbackEventData, HeartbeatDiagnosisEventData, DiagnosisTaskEventData, DiagnosticianReportEventData, PrincipleCandidateEventData, RuleEnforcedEventData, RuleHostEvaluatedEventData, RuleHostBlockedEventData, RuleHostRequireApprovalEventData, RuleHostAutoCorrectProposedEventData, RuleHostAutoCorrectAppliedEventData, RuntimeV2PromptActivationsInjectedEventData, RuleHostUnhealthyEventData, ToolCallStats, ErrorStats, EmpathyEventStats, GfiStats, EvolutionStats as EventEvolutionStats, HookStats, DailyStats, } from '@principles/core/runtime-v2';
|
|
2
2
|
export { createEmptyDailyStats, } from '@principles/core/runtime-v2';
|
package/plugin/package.json
CHANGED
|
@@ -3,9 +3,13 @@
|
|
|
3
3
|
"version": "1.74.1",
|
|
4
4
|
"description": "Native OpenClaw plugin for Principles Disciple",
|
|
5
5
|
"type": "module",
|
|
6
|
-
"main": "./dist/
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
7
8
|
"exports": {
|
|
8
|
-
".":
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"default": "./dist/index.js"
|
|
12
|
+
}
|
|
9
13
|
},
|
|
10
14
|
"repository": {
|
|
11
15
|
"type": "git",
|
|
@@ -47,7 +51,6 @@
|
|
|
47
51
|
"lint": "eslint \"src/**/*.ts\"",
|
|
48
52
|
"bootstrap-rules": "node scripts/bootstrap-rules.mjs",
|
|
49
53
|
"compile-principles": "node scripts/compile-principles.mjs",
|
|
50
|
-
"validate-live-path": "tsx scripts/validate-live-path.ts",
|
|
51
54
|
"sync-plugin": "node scripts/sync-plugin.mjs"
|
|
52
55
|
},
|
|
53
56
|
"devDependencies": {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* PD Pipeline — End-to-End Acceptance Test
|
|
5
5
|
*
|
|
6
|
-
* Verifies that all components of the
|
|
6
|
+
* Verifies that all components of the PD reflection pipeline
|
|
7
7
|
* work correctly in a real environment (not unit tests).
|
|
8
8
|
*
|
|
9
9
|
* Usage:
|
|
@@ -71,7 +71,7 @@ function main() {
|
|
|
71
71
|
process.exit(1);
|
|
72
72
|
}
|
|
73
73
|
|
|
74
|
-
console.log('\n🧪
|
|
74
|
+
console.log('\n🧪 PD Pipeline Acceptance Test');
|
|
75
75
|
console.log('═'.repeat(55));
|
|
76
76
|
console.log(`Workspace: ${workspaceDir}`);
|
|
77
77
|
console.log(`Database: ${dbPath}\n`);
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import * as fs from 'fs';
|
|
2
|
-
import * as path from 'path';
|
|
3
|
-
import { stableContentHash } from './evolution-reducer.js';
|
|
4
|
-
import { SystemLogger } from './system-logger.js';
|
|
5
|
-
function appendEvent(streamPath, event) {
|
|
6
|
-
fs.appendFileSync(streamPath, `${JSON.stringify(event)}\n`, 'utf8');
|
|
7
|
-
}
|
|
8
|
-
function loadImportedHashes(streamPath, workspaceDir) {
|
|
9
|
-
if (!fs.existsSync(streamPath))
|
|
10
|
-
return new Set();
|
|
11
|
-
const raw = fs.readFileSync(streamPath, 'utf8').trim();
|
|
12
|
-
if (!raw)
|
|
13
|
-
return new Set();
|
|
14
|
-
const hashes = new Set();
|
|
15
|
-
for (const line of raw.split('\n')) {
|
|
16
|
-
try {
|
|
17
|
-
const event = JSON.parse(line);
|
|
18
|
-
if (event.type !== 'legacy_import')
|
|
19
|
-
continue;
|
|
20
|
-
const hash = event.data.contentHash;
|
|
21
|
-
if (typeof hash === 'string')
|
|
22
|
-
hashes.add(hash);
|
|
23
|
-
}
|
|
24
|
-
catch (e) {
|
|
25
|
-
SystemLogger.log(workspaceDir, 'MIGRATION_WARN', `skip malformed line: ${String(e)}`);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
return hashes;
|
|
29
|
-
}
|
|
30
|
-
export function migrateLegacyEvolutionData(workspaceDir) {
|
|
31
|
-
const streamPath = path.join(workspaceDir, 'memory', 'evolution.jsonl');
|
|
32
|
-
fs.mkdirSync(path.dirname(streamPath), { recursive: true });
|
|
33
|
-
const candidates = [
|
|
34
|
-
path.join(workspaceDir, 'memory', 'ISSUE_LOG.md'),
|
|
35
|
-
path.join(workspaceDir, 'memory', 'DECISIONS.md'),
|
|
36
|
-
path.join(workspaceDir, '.principles', 'PRINCIPLES.md'),
|
|
37
|
-
];
|
|
38
|
-
const existingHashes = loadImportedHashes(streamPath, workspaceDir);
|
|
39
|
-
let importedEvents = 0;
|
|
40
|
-
for (const sourceFile of candidates) {
|
|
41
|
-
if (!fs.existsSync(sourceFile)) {
|
|
42
|
-
continue;
|
|
43
|
-
}
|
|
44
|
-
const content = fs.readFileSync(sourceFile, 'utf8').trim();
|
|
45
|
-
if (!content) {
|
|
46
|
-
continue;
|
|
47
|
-
}
|
|
48
|
-
const contentHash = stableContentHash(`${sourceFile}:${content}`);
|
|
49
|
-
if (existingHashes.has(contentHash)) {
|
|
50
|
-
continue;
|
|
51
|
-
}
|
|
52
|
-
appendEvent(streamPath, {
|
|
53
|
-
ts: new Date().toISOString(),
|
|
54
|
-
type: 'legacy_import',
|
|
55
|
-
data: {
|
|
56
|
-
sourceFile: path.relative(workspaceDir, sourceFile),
|
|
57
|
-
content,
|
|
58
|
-
contentHash,
|
|
59
|
-
},
|
|
60
|
-
});
|
|
61
|
-
importedEvents += 1;
|
|
62
|
-
existingHashes.add(contentHash);
|
|
63
|
-
}
|
|
64
|
-
return { importedEvents, streamPath };
|
|
65
|
-
}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import type { LedgerAdapter, LedgerPrincipleEntry } from '@principles/core/runtime-v2';
|
|
2
|
-
/**
|
|
3
|
-
* PrincipleTreeLedgerAdapter — bridges 11-field LedgerPrincipleEntry to 18+ field LedgerPrinciple.
|
|
4
|
-
*
|
|
5
|
-
* This adapter maintains an in-memory idempotency map. Create once and reuse
|
|
6
|
-
* across calls within the same process lifetime. Do not create a new instance
|
|
7
|
-
* per intake call.
|
|
8
|
-
*/
|
|
9
|
-
export declare class PrincipleTreeLedgerAdapter implements LedgerAdapter {
|
|
10
|
-
#private;
|
|
11
|
-
constructor(opts: {
|
|
12
|
-
stateDir: string;
|
|
13
|
-
});
|
|
14
|
-
/**
|
|
15
|
-
* Write a probation entry to the ledger.
|
|
16
|
-
*
|
|
17
|
-
* Idempotency: if the same candidateId was already written, returns the
|
|
18
|
-
* existing entry without writing again.
|
|
19
|
-
*
|
|
20
|
-
* @throws CandidateIntakeError with code LEDGER_WRITE_FAILED on write failure.
|
|
21
|
-
*/
|
|
22
|
-
writeProbationEntry(entry: LedgerPrincipleEntry): LedgerPrincipleEntry;
|
|
23
|
-
/**
|
|
24
|
-
* Check if a ledger entry already exists for a given candidate.
|
|
25
|
-
*
|
|
26
|
-
* Queries both the in-memory Map (fast path for same-process repeat calls)
|
|
27
|
-
* and the ledger file (for cross-process idempotency across CLI invocations).
|
|
28
|
-
*
|
|
29
|
-
* @returns The existing LedgerPrincipleEntry if found, null otherwise.
|
|
30
|
-
*/
|
|
31
|
-
existsForCandidate(candidateId: string): LedgerPrincipleEntry | null;
|
|
32
|
-
}
|
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
import { CandidateIntakeError, INTAKE_ERROR_CODES } from '@principles/core/runtime-v2';
|
|
2
|
-
import { addPrincipleToLedger, loadLedger } from './principle-tree-ledger.js';
|
|
3
|
-
const VALID_EVALUABILITIES = ['deterministic', 'weak_heuristic', 'manual_only'];
|
|
4
|
-
/**
|
|
5
|
-
* PrincipleTreeLedgerAdapter — bridges 11-field LedgerPrincipleEntry to 18+ field LedgerPrinciple.
|
|
6
|
-
*
|
|
7
|
-
* This adapter maintains an in-memory idempotency map. Create once and reuse
|
|
8
|
-
* across calls within the same process lifetime. Do not create a new instance
|
|
9
|
-
* per intake call.
|
|
10
|
-
*/
|
|
11
|
-
export class PrincipleTreeLedgerAdapter {
|
|
12
|
-
#stateDir;
|
|
13
|
-
#entryMap = new Map();
|
|
14
|
-
constructor(opts) {
|
|
15
|
-
this.#stateDir = opts.stateDir;
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Write a probation entry to the ledger.
|
|
19
|
-
*
|
|
20
|
-
* Idempotency: if the same candidateId was already written, returns the
|
|
21
|
-
* existing entry without writing again.
|
|
22
|
-
*
|
|
23
|
-
* @throws CandidateIntakeError with code LEDGER_WRITE_FAILED on write failure.
|
|
24
|
-
*/
|
|
25
|
-
writeProbationEntry(entry) {
|
|
26
|
-
const candidateId = this.#extractCandidateId(entry.sourceRef);
|
|
27
|
-
const existing = this.#entryMap.get(candidateId);
|
|
28
|
-
if (existing)
|
|
29
|
-
return existing;
|
|
30
|
-
const ledgerPrinciple = this.#expandToLedgerPrinciple(entry, candidateId);
|
|
31
|
-
try {
|
|
32
|
-
addPrincipleToLedger(this.#stateDir, ledgerPrinciple);
|
|
33
|
-
}
|
|
34
|
-
catch (err) {
|
|
35
|
-
throw new CandidateIntakeError(INTAKE_ERROR_CODES.LEDGER_WRITE_FAILED, `Failed to write principle ${entry.id} to ledger: ${String(err)}`, { cause: err });
|
|
36
|
-
}
|
|
37
|
-
this.#entryMap.set(candidateId, entry);
|
|
38
|
-
return entry;
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Check if a ledger entry already exists for a given candidate.
|
|
42
|
-
*
|
|
43
|
-
* Queries both the in-memory Map (fast path for same-process repeat calls)
|
|
44
|
-
* and the ledger file (for cross-process idempotency across CLI invocations).
|
|
45
|
-
*
|
|
46
|
-
* @returns The existing LedgerPrincipleEntry if found, null otherwise.
|
|
47
|
-
*/
|
|
48
|
-
existsForCandidate(candidateId) {
|
|
49
|
-
// Fast path: check in-memory Map (covers same-process repeat calls)
|
|
50
|
-
const cached = this.#entryMap.get(candidateId);
|
|
51
|
-
if (cached)
|
|
52
|
-
return cached;
|
|
53
|
-
// Cross-process path: check ledger file by derivedFromPainIds
|
|
54
|
-
const ledger = loadLedger(this.#stateDir);
|
|
55
|
-
const found = Object.values(ledger.tree.principles).find((p) => p.derivedFromPainIds.includes(candidateId));
|
|
56
|
-
if (!found)
|
|
57
|
-
return null;
|
|
58
|
-
// Reconstruct LedgerPrincipleEntry from LedgerPrinciple fields
|
|
59
|
-
// Note: sourceRef, artifactRef, taskRef are not stored in LedgerPrinciple,
|
|
60
|
-
// so we cannot fully reconstruct the original LedgerPrincipleEntry.
|
|
61
|
-
// Return minimal entry sufficient for idempotency signaling.
|
|
62
|
-
return {
|
|
63
|
-
id: found.id,
|
|
64
|
-
title: '',
|
|
65
|
-
status: 'probation',
|
|
66
|
-
sourceRef: `candidate://${candidateId}`,
|
|
67
|
-
artifactRef: '',
|
|
68
|
-
taskRef: '',
|
|
69
|
-
text: found.text,
|
|
70
|
-
triggerPattern: found.triggerPattern,
|
|
71
|
-
action: found.action,
|
|
72
|
-
evaluability: 'weak_heuristic',
|
|
73
|
-
createdAt: found.createdAt,
|
|
74
|
-
};
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* Extract candidateId from sourceRef by stripping the 'candidate://' prefix.
|
|
78
|
-
*
|
|
79
|
-
* @internal
|
|
80
|
-
*/
|
|
81
|
-
#extractCandidateId(sourceRef) {
|
|
82
|
-
if (sourceRef.startsWith('candidate://')) {
|
|
83
|
-
return sourceRef.slice('candidate://'.length);
|
|
84
|
-
}
|
|
85
|
-
return sourceRef;
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Expand an 11-field LedgerPrincipleEntry to an 18+ field LedgerPrinciple.
|
|
89
|
-
*
|
|
90
|
-
* Applies the field expansion table from CONTEXT.md:
|
|
91
|
-
* - status: 'probation' → 'candidate'
|
|
92
|
-
* - triggerPattern/action: pass through (empty string if absent)
|
|
93
|
-
* - All defaults applied per CONTEXT.md expansion table
|
|
94
|
-
* - sourceRef/artifactRef/taskRef are NOT written to LedgerPrinciple (not stored)
|
|
95
|
-
* - title is NOT written to LedgerPrinciple — intentionally excluded; title
|
|
96
|
-
* is available in LedgerPrincipleEntry but LedgerPrinciple has no title field
|
|
97
|
-
*
|
|
98
|
-
* @internal
|
|
99
|
-
*/
|
|
100
|
-
#expandToLedgerPrinciple(entry, candidateId) {
|
|
101
|
-
if (!VALID_EVALUABILITIES.includes(entry.evaluability)) {
|
|
102
|
-
throw new CandidateIntakeError(INTAKE_ERROR_CODES.INPUT_INVALID, `Invalid evaluability value: ${entry.evaluability}. Must be one of: ${VALID_EVALUABILITIES.join(', ')}`);
|
|
103
|
-
}
|
|
104
|
-
const result = {
|
|
105
|
-
id: entry.id,
|
|
106
|
-
version: 1,
|
|
107
|
-
text: entry.text,
|
|
108
|
-
triggerPattern: entry.triggerPattern ?? '',
|
|
109
|
-
action: entry.action ?? '',
|
|
110
|
-
status: 'candidate',
|
|
111
|
-
evaluability: entry.evaluability,
|
|
112
|
-
priority: 'P1',
|
|
113
|
-
scope: 'general',
|
|
114
|
-
valueScore: 0,
|
|
115
|
-
adherenceRate: 0,
|
|
116
|
-
painPreventedCount: 0,
|
|
117
|
-
derivedFromPainIds: [candidateId],
|
|
118
|
-
ruleIds: [],
|
|
119
|
-
conflictsWithPrincipleIds: [],
|
|
120
|
-
createdAt: entry.createdAt,
|
|
121
|
-
updatedAt: entry.createdAt,
|
|
122
|
-
};
|
|
123
|
-
return result;
|
|
124
|
-
}
|
|
125
|
-
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
export type RiskLevel = 'LOW' | 'MEDIUM' | 'HIGH' | 'CRITICAL';
|
|
2
|
-
export interface FileModification {
|
|
3
|
-
toolName: string;
|
|
4
|
-
params: Record<string, unknown>;
|
|
5
|
-
}
|
|
6
|
-
export declare function estimateLineChanges(modification: FileModification): number;
|
|
7
|
-
export declare function assessRiskLevel(filePath: string, modification: FileModification, riskPaths: string[]): RiskLevel;
|
|
8
|
-
/**
|
|
9
|
-
* Get the total line count of a target file.
|
|
10
|
-
* @param absoluteFilePath - Absolute path to the file
|
|
11
|
-
* @returns File line count, or null if file doesn't exist or can't be read
|
|
12
|
-
*/
|
|
13
|
-
export declare function getTargetFileLineCount(absoluteFilePath: string): number | null;
|
|
14
|
-
/**
|
|
15
|
-
* Calculate the effective line limit based on percentage of target file.
|
|
16
|
-
* @param targetLineCount - Total lines in target file
|
|
17
|
-
* @param percentage - Allowed percentage (0-100)
|
|
18
|
-
* @param minLines - Absolute minimum threshold
|
|
19
|
-
* @param maxLines - Optional upper bound to prevent misconfiguration
|
|
20
|
-
* @returns Maximum allowed lines (at least minLines, at most maxLines if provided)
|
|
21
|
-
*/
|
|
22
|
-
export declare function calculatePercentageThreshold(targetLineCount: number, percentage: number, minLines: number, maxLines?: number): number;
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
/* global NodeJS */
|
|
2
|
-
import * as fs from 'fs';
|
|
3
|
-
import { isRisky } from '../utils/io.js';
|
|
4
|
-
export function estimateLineChanges(modification) {
|
|
5
|
-
const { toolName, params } = modification;
|
|
6
|
-
if (toolName === 'write_file' || toolName === 'write') {
|
|
7
|
-
const content = params.content || '';
|
|
8
|
-
return content.split('\n').length;
|
|
9
|
-
}
|
|
10
|
-
if (toolName === 'replace' || toolName === 'edit') {
|
|
11
|
-
const newContent = params.new_string || params.newText || '';
|
|
12
|
-
return newContent.split('\n').length;
|
|
13
|
-
}
|
|
14
|
-
if (toolName === 'apply_patch' || toolName === 'patch') {
|
|
15
|
-
const patch = params.patch || '';
|
|
16
|
-
// Rough estimate for patch files
|
|
17
|
-
return patch.split('\n').filter((l) => l.startsWith('+') || l.startsWith('-')).length;
|
|
18
|
-
}
|
|
19
|
-
if (toolName === 'delete_file') {
|
|
20
|
-
// Deleting a file is considered a significant change, but we don't know the size.
|
|
21
|
-
// We'll treat it as a medium-to-large size change.
|
|
22
|
-
return 50;
|
|
23
|
-
}
|
|
24
|
-
return 0;
|
|
25
|
-
}
|
|
26
|
-
export function assessRiskLevel(filePath, modification, riskPaths) {
|
|
27
|
-
const isRiskPath = isRisky(filePath, riskPaths);
|
|
28
|
-
const estimatedLines = estimateLineChanges(modification);
|
|
29
|
-
if (isRiskPath) {
|
|
30
|
-
if (estimatedLines > 100)
|
|
31
|
-
return 'CRITICAL';
|
|
32
|
-
return 'HIGH';
|
|
33
|
-
}
|
|
34
|
-
else {
|
|
35
|
-
if (estimatedLines > 100)
|
|
36
|
-
return 'HIGH';
|
|
37
|
-
if (estimatedLines > 10)
|
|
38
|
-
return 'MEDIUM';
|
|
39
|
-
return 'LOW';
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Get the total line count of a target file.
|
|
44
|
-
* @param absoluteFilePath - Absolute path to the file
|
|
45
|
-
* @returns File line count, or null if file doesn't exist or can't be read
|
|
46
|
-
*/
|
|
47
|
-
export function getTargetFileLineCount(absoluteFilePath) {
|
|
48
|
-
try {
|
|
49
|
-
if (!fs.existsSync(absoluteFilePath)) {
|
|
50
|
-
return null; // File genuinely doesn't exist
|
|
51
|
-
}
|
|
52
|
-
const stats = fs.statSync(absoluteFilePath);
|
|
53
|
-
if (!stats.isFile()) {
|
|
54
|
-
return null; // Not a regular file (directory, device, etc.)
|
|
55
|
-
}
|
|
56
|
-
const content = fs.readFileSync(absoluteFilePath, 'utf-8');
|
|
57
|
-
return content.split('\n').length;
|
|
58
|
-
}
|
|
59
|
-
catch (e) {
|
|
60
|
-
// Log error before falling back to null - this is intentional for security gates
|
|
61
|
-
const error = e instanceof Error ? e : new Error(String(e));
|
|
62
|
-
const errorCode = e.code;
|
|
63
|
-
console.error(`[PD:RISK_CALC] Failed to read file for line count: ${absoluteFilePath}`, {
|
|
64
|
-
code: errorCode,
|
|
65
|
-
message: error.message,
|
|
66
|
-
});
|
|
67
|
-
return null;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Calculate the effective line limit based on percentage of target file.
|
|
72
|
-
* @param targetLineCount - Total lines in target file
|
|
73
|
-
* @param percentage - Allowed percentage (0-100)
|
|
74
|
-
* @param minLines - Absolute minimum threshold
|
|
75
|
-
* @param maxLines - Optional upper bound to prevent misconfiguration
|
|
76
|
-
* @returns Maximum allowed lines (at least minLines, at most maxLines if provided)
|
|
77
|
-
*/
|
|
78
|
-
export function calculatePercentageThreshold(targetLineCount, percentage, minLines, maxLines) {
|
|
79
|
-
// Clamp percentage to valid range [0, 100]
|
|
80
|
-
const clampedPercentage = Math.max(0, Math.min(100, percentage));
|
|
81
|
-
const calculated = Math.round(targetLineCount * (clampedPercentage / 100));
|
|
82
|
-
let effectiveLimit = Math.max(calculated, minLines);
|
|
83
|
-
// Apply optional upper bound
|
|
84
|
-
if (maxLines !== undefined && maxLines > 0) {
|
|
85
|
-
effectiveLimit = Math.min(effectiveLimit, maxLines);
|
|
86
|
-
}
|
|
87
|
-
return effectiveLimit;
|
|
88
|
-
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Rule Host Helpers — Re-exported from @principles/core (PRI-42)
|
|
3
|
-
*
|
|
4
|
-
* Canonical definitions moved to:
|
|
5
|
-
* packages/principles-core/src/runtime-v2/internalization/rule-host-helpers.ts
|
|
6
|
-
*/
|
|
7
|
-
export type { RuleHostHelpers } from '@principles/core/runtime-v2';
|
|
8
|
-
export { createRuleHostHelpers } from '@principles/core/runtime-v2';
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Rule Host Types — Re-exported from @principles/core (PRI-42)
|
|
3
|
-
*
|
|
4
|
-
* Canonical definitions moved to:
|
|
5
|
-
* packages/principles-core/src/runtime-v2/internalization/rule-host-contracts.ts
|
|
6
|
-
*/
|
|
7
|
-
export type { RuleHostInput, RuleHostDecision, RuleHostMeta, RuleHostResult, LoadedImplementation, } from '@principles/core/runtime-v2';
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Shared type definitions for database operations.
|
|
3
|
-
* Kept separate to avoid circular dependencies between schema-definitions and migration-runner.
|
|
4
|
-
*/
|
|
5
|
-
/** Minimal interface for better-sqlite3 Database instances. */
|
|
6
|
-
export interface Db {
|
|
7
|
-
exec(_sql: string): unknown;
|
|
8
|
-
get<T = unknown>(_sql: string, ..._params: unknown[]): T | undefined;
|
|
9
|
-
run(_sql: string, ..._params: unknown[]): unknown;
|
|
10
|
-
close(): void;
|
|
11
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Schema Management — Unified database schema definitions and migrations.
|
|
3
|
-
*
|
|
4
|
-
* Usage:
|
|
5
|
-
* // In a database class constructor:
|
|
6
|
-
* import { ensureDatabaseSchema } from './schema';
|
|
7
|
-
* ensureDatabaseSchema(db, 'trajectory.db');
|
|
8
|
-
*
|
|
9
|
-
* CLI:
|
|
10
|
-
* node scripts/db-migrate.mjs status
|
|
11
|
-
* node scripts/db-migrate.mjs run
|
|
12
|
-
*/
|
|
13
|
-
export { MigrationRunner, ensureDatabaseSchema } from './migration-runner.js';
|
|
14
|
-
export { SCHEMAS, getCatalog, DB_TYPES } from './schema-definitions.js';
|
|
15
|
-
export { ALL_MIGRATIONS } from './migrations/index.js';
|
|
16
|
-
export type { Db } from './db-types.js';
|
|
17
|
-
export type { Migration, DbType, TableDefinition, ViewDefinition, FtsDefinition, SchemaCatalog, } from './migration-runner.js';
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Schema Management — Unified database schema definitions and migrations.
|
|
3
|
-
*
|
|
4
|
-
* Usage:
|
|
5
|
-
* // In a database class constructor:
|
|
6
|
-
* import { ensureDatabaseSchema } from './schema';
|
|
7
|
-
* ensureDatabaseSchema(db, 'trajectory.db');
|
|
8
|
-
*
|
|
9
|
-
* CLI:
|
|
10
|
-
* node scripts/db-migrate.mjs status
|
|
11
|
-
* node scripts/db-migrate.mjs run
|
|
12
|
-
*/
|
|
13
|
-
export { MigrationRunner, ensureDatabaseSchema } from './migration-runner.js';
|
|
14
|
-
export { SCHEMAS, getCatalog, DB_TYPES } from './schema-definitions.js';
|
|
15
|
-
export { ALL_MIGRATIONS } from './migrations/index.js';
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Migration Runner — Executes and tracks schema migrations.
|
|
3
|
-
*
|
|
4
|
-
* Each migration is versioned. The runner reads the current version from
|
|
5
|
-
* the `schema_version` table and only executes migrations with higher IDs.
|
|
6
|
-
*
|
|
7
|
-
* Usage:
|
|
8
|
-
* const runner = new MigrationRunner(db);
|
|
9
|
-
* runner.run(allMigrations.filter(m => m.db === 'trajectory.db'));
|
|
10
|
-
*/
|
|
11
|
-
import type { Migration } from './schema-definitions.js';
|
|
12
|
-
import { type DbType } from './schema-definitions.js';
|
|
13
|
-
import type { Db } from './db-types.js';
|
|
14
|
-
export declare class MigrationRunner {
|
|
15
|
-
private readonly db;
|
|
16
|
-
constructor(db: Db);
|
|
17
|
-
/**
|
|
18
|
-
* Run all pending migrations for a given database type.
|
|
19
|
-
* @returns Array of migration names that were applied
|
|
20
|
-
*/
|
|
21
|
-
runMigrations(migrations: Migration[], _dbType: DbType): string[];
|
|
22
|
-
/**
|
|
23
|
-
* Apply all schema definitions (tables, indexes, views, FTS) for a database.
|
|
24
|
-
* This is a convenience method that creates everything from the schema catalog.
|
|
25
|
-
* Used for initial setup when no migrations exist yet.
|
|
26
|
-
*/
|
|
27
|
-
applySchemaCatalog(dbType: DbType): void;
|
|
28
|
-
/**
|
|
29
|
-
* Get the current migration version.
|
|
30
|
-
* Returns '000' if no version is set (fresh database).
|
|
31
|
-
*/
|
|
32
|
-
getCurrentVersion(): string;
|
|
33
|
-
/**
|
|
34
|
-
* Get all available migration info for a database type.
|
|
35
|
-
*/
|
|
36
|
-
getMigrationInfo(migrations: Migration[], dbType: DbType): {
|
|
37
|
-
id: string;
|
|
38
|
-
name: string;
|
|
39
|
-
applied: boolean;
|
|
40
|
-
}[];
|
|
41
|
-
/**
|
|
42
|
-
* Rollback the latest migration (if down migration is defined).
|
|
43
|
-
*/
|
|
44
|
-
rollback(migrations: Migration[], dbType: DbType): string | null;
|
|
45
|
-
private ensureVersionTable;
|
|
46
|
-
private setVersion;
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Factory: create a MigrationRunner and apply schema catalog for a given database.
|
|
50
|
-
* This is the main entry point for database classes.
|
|
51
|
-
*/
|
|
52
|
-
export declare function ensureDatabaseSchema(db: Db, dbType: DbType): void;
|
|
53
|
-
export type { Migration, DbType, TableDefinition, ViewDefinition, FtsDefinition, SchemaCatalog } from './schema-definitions.js';
|