create-principles-disciple 1.121.8 → 1.121.10
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/README.md +13 -1
- package/console/dist/server/config/pd-config-store.d.ts +1 -3
- package/console/dist/server/config/pd-config-store.js +4 -4
- package/console/dist/server/feedback/channels.d.ts +2 -8
- package/console/dist/server/feedback/channels.js +0 -11
- package/console/dist/server/index.js +34 -5
- package/console/dist/server/models/ActivationsConsoleModel.d.ts +28 -1
- package/console/dist/server/models/ActivationsConsoleModel.js +72 -30
- package/console/dist/server/models/GovernanceExperienceCollector.d.ts +28 -0
- package/console/dist/server/models/GovernanceExperienceCollector.js +305 -0
- package/console/dist/server/models/GovernanceProjectionCollector.d.ts +60 -2
- package/console/dist/server/models/GovernanceProjectionCollector.js +323 -285
- package/console/dist/server/models/PrincipleClassifier.d.ts +1 -1
- package/console/dist/server/models/PrincipleClassifier.js +7 -4
- package/console/dist/server/models/PrinciplesConsoleModel.d.ts +2 -1
- package/console/dist/server/models/ReceiptsConsoleModel.d.ts +5 -0
- package/console/dist/server/models/ReceiptsConsoleModel.js +140 -13
- package/console/dist/server/routes/activations.js +1 -1
- package/console/dist/server/routes/failed-tasks.js +28 -11
- package/console/dist/server/routes/governance.d.ts +26 -0
- package/console/dist/server/routes/governance.js +51 -0
- package/console/dist/server/routes/owner-identity.d.ts +31 -0
- package/console/dist/server/routes/owner-identity.js +76 -0
- package/console/dist/server/routes/update-history.d.ts +5 -0
- package/console/dist/server/routes/update-history.js +50 -4
- package/console/dist/server/routes/update.js +263 -41
- package/console/dist/server/utils/update-links.d.ts +38 -0
- package/console/dist/server/utils/update-links.js +71 -0
- package/console/dist/shared/feedback-channel-ids.d.ts +13 -0
- package/console/dist/shared/feedback-channel-ids.js +12 -0
- package/console/dist/shared/feedback-contract.d.ts +46 -0
- package/console/dist/shared/feedback-contract.js +45 -0
- package/console/dist/ui/App.js +1 -1
- package/console/dist/ui/api.d.ts +22 -3
- package/console/dist/ui/api.js +63 -3
- package/console/dist/ui/components/receipts/ReceiptCoverageDisclosure.d.ts +6 -0
- package/console/dist/ui/components/receipts/ReceiptCoverageDisclosure.js +66 -0
- package/console/dist/ui/i18n/en.json +198 -2
- package/console/dist/ui/i18n/zh-CN.json +196 -0
- package/console/dist/ui/pages/activation/ActivationPage.js +14 -2
- package/console/dist/ui/pages/failed-tasks/FailedTasksPage.js +25 -5
- package/console/dist/ui/pages/focus/FocusPage.d.ts +28 -1
- package/console/dist/ui/pages/focus/FocusPage.js +128 -15
- package/console/dist/ui/pages/principles/PrincipleDetailPage.d.ts +30 -0
- package/console/dist/ui/pages/principles/PrincipleDetailPage.js +49 -6
- package/console/dist/ui/pages/settings/SettingsPage.js +67 -2
- package/console/dist/ui/pages/settings/UpdatePage.js +7 -7
- package/console/dist/ui/utils/enum-labels.js +0 -1
- package/console/dist/ui/utils/validators.d.ts +53 -21
- package/console/dist/ui/utils/validators.js +248 -21
- package/console/dist/web/assets/app.css +6 -0
- package/console/dist/web/assets/app.js +2721 -1664
- package/console/package.json +3 -1
- package/core/dist/host/host-adapter.d.ts +1 -1
- package/core/dist/host/host-adapter.d.ts.map +1 -1
- package/core/dist/host/host-adapter.js +1 -0
- package/core/dist/host/host-adapter.js.map +1 -1
- package/core/dist/runtime-v2/__tests__/architecture-regression.test.js +12 -2
- package/core/dist/runtime-v2/__tests__/architecture-regression.test.js.map +1 -1
- package/core/dist/runtime-v2/__tests__/attack-e2e-pipeline-smoke.test.js +1 -1
- package/core/dist/runtime-v2/__tests__/attack-e2e-pipeline-smoke.test.js.map +1 -1
- package/core/dist/runtime-v2/__tests__/governance-experience.test.d.ts +2 -0
- package/core/dist/runtime-v2/__tests__/governance-experience.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/__tests__/governance-experience.test.js +300 -0
- package/core/dist/runtime-v2/__tests__/governance-experience.test.js.map +1 -0
- package/core/dist/runtime-v2/__tests__/owner-identity.test.d.ts +2 -0
- package/core/dist/runtime-v2/__tests__/owner-identity.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/__tests__/owner-identity.test.js +147 -0
- package/core/dist/runtime-v2/__tests__/owner-identity.test.js.map +1 -0
- package/core/dist/runtime-v2/__tests__/product-telemetry-contract.test.d.ts +18 -0
- package/core/dist/runtime-v2/__tests__/product-telemetry-contract.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/__tests__/product-telemetry-contract.test.js +303 -0
- package/core/dist/runtime-v2/__tests__/product-telemetry-contract.test.js.map +1 -0
- package/core/dist/runtime-v2/__tests__/recovery-actions-log.test.js +40 -0
- package/core/dist/runtime-v2/__tests__/recovery-actions-log.test.js.map +1 -1
- package/core/dist/runtime-v2/__tests__/status-contract.test.d.ts +2 -0
- package/core/dist/runtime-v2/__tests__/status-contract.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/__tests__/status-contract.test.js +107 -0
- package/core/dist/runtime-v2/__tests__/status-contract.test.js.map +1 -0
- package/core/dist/runtime-v2/activation/__tests__/promotion-evidence-snapshot.test.d.ts +2 -0
- package/core/dist/runtime-v2/activation/__tests__/promotion-evidence-snapshot.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/activation/__tests__/promotion-evidence-snapshot.test.js +104 -0
- package/core/dist/runtime-v2/activation/__tests__/promotion-evidence-snapshot.test.js.map +1 -0
- package/core/dist/runtime-v2/activation/__tests__/promotion-readiness-evaluator.test.js +19 -0
- package/core/dist/runtime-v2/activation/__tests__/promotion-readiness-evaluator.test.js.map +1 -1
- package/core/dist/runtime-v2/activation/__tests__/rulecode-owner-decision-service.test.js +20 -0
- package/core/dist/runtime-v2/activation/__tests__/rulecode-owner-decision-service.test.js.map +1 -1
- package/core/dist/runtime-v2/activation/__tests__/sqlite-activation-safety-store.test.js +40 -0
- package/core/dist/runtime-v2/activation/__tests__/sqlite-activation-safety-store.test.js.map +1 -1
- package/core/dist/runtime-v2/activation/index.d.ts +2 -0
- package/core/dist/runtime-v2/activation/index.d.ts.map +1 -1
- package/core/dist/runtime-v2/activation/index.js +1 -0
- package/core/dist/runtime-v2/activation/index.js.map +1 -1
- package/core/dist/runtime-v2/activation/promotion-evidence-snapshot.d.ts +30 -0
- package/core/dist/runtime-v2/activation/promotion-evidence-snapshot.d.ts.map +1 -0
- package/core/dist/runtime-v2/activation/promotion-evidence-snapshot.js +87 -0
- package/core/dist/runtime-v2/activation/promotion-evidence-snapshot.js.map +1 -0
- package/core/dist/runtime-v2/activation/promotion-readiness-evaluator.d.ts.map +1 -1
- package/core/dist/runtime-v2/activation/promotion-readiness-evaluator.js +3 -0
- package/core/dist/runtime-v2/activation/promotion-readiness-evaluator.js.map +1 -1
- package/core/dist/runtime-v2/activation/promotion-readiness-reader.d.ts +1 -1
- package/core/dist/runtime-v2/activation/promotion-readiness-reader.d.ts.map +1 -1
- package/core/dist/runtime-v2/activation/promotion-readiness-reader.js +2 -2
- package/core/dist/runtime-v2/activation/promotion-readiness-reader.js.map +1 -1
- package/core/dist/runtime-v2/activation/rulecode-owner-decision-service.d.ts.map +1 -1
- package/core/dist/runtime-v2/activation/rulecode-owner-decision-service.js +18 -9
- package/core/dist/runtime-v2/activation/rulecode-owner-decision-service.js.map +1 -1
- package/core/dist/runtime-v2/adapter/__tests__/chaos-json-repair.test.js +1 -1
- package/core/dist/runtime-v2/adapter/__tests__/chaos-json-repair.test.js.map +1 -1
- package/core/dist/runtime-v2/adapter/__tests__/json-extractor.test.js +91 -1
- package/core/dist/runtime-v2/adapter/__tests__/json-extractor.test.js.map +1 -1
- package/core/dist/runtime-v2/adapter/__tests__/pi-ai-runtime-adapter.test.js +59 -12
- package/core/dist/runtime-v2/adapter/__tests__/pi-ai-runtime-adapter.test.js.map +1 -1
- package/core/dist/runtime-v2/adapter/__tests__/runtime-config-contract.test.js +10 -9
- package/core/dist/runtime-v2/adapter/__tests__/runtime-config-contract.test.js.map +1 -1
- package/core/dist/runtime-v2/adapter/__tests__/structured-output-repair.test.js +42 -1
- package/core/dist/runtime-v2/adapter/__tests__/structured-output-repair.test.js.map +1 -1
- package/core/dist/runtime-v2/adapter/json-extractor.d.ts +25 -0
- package/core/dist/runtime-v2/adapter/json-extractor.d.ts.map +1 -1
- package/core/dist/runtime-v2/adapter/json-extractor.js +126 -0
- package/core/dist/runtime-v2/adapter/json-extractor.js.map +1 -1
- package/core/dist/runtime-v2/adapter/l2-agent-loop-adapter.d.ts +9 -4
- package/core/dist/runtime-v2/adapter/l2-agent-loop-adapter.d.ts.map +1 -1
- package/core/dist/runtime-v2/adapter/l2-agent-loop-adapter.js +9 -4
- package/core/dist/runtime-v2/adapter/l2-agent-loop-adapter.js.map +1 -1
- package/core/dist/runtime-v2/adapter/output-repair-contract.d.ts +5 -1
- package/core/dist/runtime-v2/adapter/output-repair-contract.d.ts.map +1 -1
- package/core/dist/runtime-v2/adapter/output-repair-contract.js +4 -1
- package/core/dist/runtime-v2/adapter/output-repair-contract.js.map +1 -1
- package/core/dist/runtime-v2/adapter/pi-ai-catalog.d.ts +7 -0
- package/core/dist/runtime-v2/adapter/pi-ai-catalog.d.ts.map +1 -0
- package/core/dist/runtime-v2/adapter/pi-ai-catalog.js +19 -0
- package/core/dist/runtime-v2/adapter/pi-ai-catalog.js.map +1 -0
- package/core/dist/runtime-v2/adapter/pi-ai-runtime-adapter.d.ts +13 -15
- package/core/dist/runtime-v2/adapter/pi-ai-runtime-adapter.d.ts.map +1 -1
- package/core/dist/runtime-v2/adapter/pi-ai-runtime-adapter.js +104 -37
- package/core/dist/runtime-v2/adapter/pi-ai-runtime-adapter.js.map +1 -1
- package/core/dist/runtime-v2/adapter/structured-output-repair.d.ts +16 -1
- package/core/dist/runtime-v2/adapter/structured-output-repair.d.ts.map +1 -1
- package/core/dist/runtime-v2/adapter/structured-output-repair.js +38 -6
- package/core/dist/runtime-v2/adapter/structured-output-repair.js.map +1 -1
- package/core/dist/runtime-v2/adapter/tools/diagnostician-tool.d.ts +1 -1
- package/core/dist/runtime-v2/adapter/tools/diagnostician-tool.d.ts.map +1 -1
- package/core/dist/runtime-v2/config/__tests__/pd-config-agent-binding.test.js +8 -9
- package/core/dist/runtime-v2/config/__tests__/pd-config-agent-binding.test.js.map +1 -1
- package/core/dist/runtime-v2/config/__tests__/pd-config-contract.test.js +27 -3
- package/core/dist/runtime-v2/config/__tests__/pd-config-contract.test.js.map +1 -1
- package/core/dist/runtime-v2/config/__tests__/pd-config-principles.test.d.ts +11 -0
- package/core/dist/runtime-v2/config/__tests__/pd-config-principles.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/config/__tests__/pd-config-principles.test.js +93 -0
- package/core/dist/runtime-v2/config/__tests__/pd-config-principles.test.js.map +1 -0
- package/core/dist/runtime-v2/config/__tests__/pd-config-workspace.test.js +41 -0
- package/core/dist/runtime-v2/config/__tests__/pd-config-workspace.test.js.map +1 -1
- package/core/dist/runtime-v2/config/index.d.ts +2 -2
- package/core/dist/runtime-v2/config/index.d.ts.map +1 -1
- package/core/dist/runtime-v2/config/index.js +2 -0
- package/core/dist/runtime-v2/config/index.js.map +1 -1
- package/core/dist/runtime-v2/config/pd-config-agent-binding.d.ts.map +1 -1
- package/core/dist/runtime-v2/config/pd-config-agent-binding.js +4 -13
- package/core/dist/runtime-v2/config/pd-config-agent-binding.js.map +1 -1
- package/core/dist/runtime-v2/config/pd-config-effective.d.ts.map +1 -1
- package/core/dist/runtime-v2/config/pd-config-effective.js +14 -7
- package/core/dist/runtime-v2/config/pd-config-effective.js.map +1 -1
- package/core/dist/runtime-v2/config/pd-config-feature-flags.d.ts.map +1 -1
- package/core/dist/runtime-v2/config/pd-config-feature-flags.js +5 -12
- package/core/dist/runtime-v2/config/pd-config-feature-flags.js.map +1 -1
- package/core/dist/runtime-v2/config/pd-config-types.d.ts +8 -0
- package/core/dist/runtime-v2/config/pd-config-types.d.ts.map +1 -1
- package/core/dist/runtime-v2/config/pd-config-types.js +2 -0
- package/core/dist/runtime-v2/config/pd-config-types.js.map +1 -1
- package/core/dist/runtime-v2/config/pd-config-validate.d.ts.map +1 -1
- package/core/dist/runtime-v2/config/pd-config-validate.js +48 -3
- package/core/dist/runtime-v2/config/pd-config-validate.js.map +1 -1
- package/core/dist/runtime-v2/core-principles/__tests__/core-axiom-block.test.js +36 -8
- package/core/dist/runtime-v2/core-principles/__tests__/core-axiom-block.test.js.map +1 -1
- package/core/dist/runtime-v2/core-principles/__tests__/core-principle-registry.test.js +36 -12
- package/core/dist/runtime-v2/core-principles/__tests__/core-principle-registry.test.js.map +1 -1
- package/core/dist/runtime-v2/core-principles/core-axiom-block.d.ts +22 -8
- package/core/dist/runtime-v2/core-principles/core-axiom-block.d.ts.map +1 -1
- package/core/dist/runtime-v2/core-principles/core-axiom-block.js +28 -13
- package/core/dist/runtime-v2/core-principles/core-axiom-block.js.map +1 -1
- package/core/dist/runtime-v2/core-principles/core-principle-registry.d.ts +29 -4
- package/core/dist/runtime-v2/core-principles/core-principle-registry.d.ts.map +1 -1
- package/core/dist/runtime-v2/core-principles/core-principle-registry.js +68 -33
- package/core/dist/runtime-v2/core-principles/core-principle-registry.js.map +1 -1
- package/core/dist/runtime-v2/core-principles/index.d.ts +3 -3
- package/core/dist/runtime-v2/core-principles/index.d.ts.map +1 -1
- package/core/dist/runtime-v2/core-principles/index.js +1 -1
- package/core/dist/runtime-v2/core-principles/index.js.map +1 -1
- package/core/dist/runtime-v2/evolution/evolution-types.d.ts +2 -1
- package/core/dist/runtime-v2/evolution/evolution-types.d.ts.map +1 -1
- package/core/dist/runtime-v2/evolution/evolution-types.js.map +1 -1
- package/core/dist/runtime-v2/feature-flags/__tests__/anonymous-product-telemetry-flag.test.d.ts +2 -0
- package/core/dist/runtime-v2/feature-flags/__tests__/anonymous-product-telemetry-flag.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/feature-flags/__tests__/anonymous-product-telemetry-flag.test.js +48 -0
- package/core/dist/runtime-v2/feature-flags/__tests__/anonymous-product-telemetry-flag.test.js.map +1 -0
- package/core/dist/runtime-v2/feature-flags/__tests__/codex-conversation-ingestion-flag.test.d.ts +2 -0
- package/core/dist/runtime-v2/feature-flags/__tests__/codex-conversation-ingestion-flag.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/feature-flags/__tests__/codex-conversation-ingestion-flag.test.js +46 -0
- package/core/dist/runtime-v2/feature-flags/__tests__/codex-conversation-ingestion-flag.test.js.map +1 -0
- package/core/dist/runtime-v2/feature-flags/__tests__/feature-flag-contract.test.js +86 -31
- package/core/dist/runtime-v2/feature-flags/__tests__/feature-flag-contract.test.js.map +1 -1
- package/core/dist/runtime-v2/feature-flags/__tests__/feature-flag-lifecycle.test.d.ts +2 -0
- package/core/dist/runtime-v2/feature-flags/__tests__/feature-flag-lifecycle.test.d.ts.map +1 -0
- package/core/dist/runtime-v2/feature-flags/__tests__/feature-flag-lifecycle.test.js +83 -0
- package/core/dist/runtime-v2/feature-flags/__tests__/feature-flag-lifecycle.test.js.map +1 -0
- package/core/dist/runtime-v2/feature-flags/feature-flag-contract.d.ts +19 -1
- 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 +128 -10
- package/core/dist/runtime-v2/feature-flags/feature-flag-contract.js.map +1 -1
- package/core/dist/runtime-v2/feature-flags/feature-flag-lifecycle.d.ts +37 -0
- package/core/dist/runtime-v2/feature-flags/feature-flag-lifecycle.d.ts.map +1 -0
- package/core/dist/runtime-v2/feature-flags/feature-flag-lifecycle.js +304 -0
- package/core/dist/runtime-v2/feature-flags/feature-flag-lifecycle.js.map +1 -0
- package/core/dist/runtime-v2/feature-flags/index.d.ts +4 -2
- package/core/dist/runtime-v2/feature-flags/index.d.ts.map +1 -1
- package/core/dist/runtime-v2/feature-flags/index.js +3 -1
- package/core/dist/runtime-v2/feature-flags/index.js.map +1 -1
- package/core/dist/runtime-v2/governance-experience-contract.d.ts +468 -0
- package/core/dist/runtime-v2/governance-experience-contract.d.ts.map +1 -0
- package/core/dist/runtime-v2/governance-experience-contract.js +208 -0
- package/core/dist/runtime-v2/governance-experience-contract.js.map +1 -0
- package/core/dist/runtime-v2/governance-experience.d.ts +11 -0
- package/core/dist/runtime-v2/governance-experience.d.ts.map +1 -0
- package/core/dist/runtime-v2/governance-experience.js +276 -0
- package/core/dist/runtime-v2/governance-experience.js.map +1 -0
- package/core/dist/runtime-v2/index.d.ts +20 -8
- package/core/dist/runtime-v2/index.d.ts.map +1 -1
- package/core/dist/runtime-v2/index.js +20 -6
- package/core/dist/runtime-v2/index.js.map +1 -1
- package/core/dist/runtime-v2/internalization/__tests__/artificer-output-retry-flag.test.js +29 -10
- package/core/dist/runtime-v2/internalization/__tests__/artificer-output-retry-flag.test.js.map +1 -1
- package/core/dist/runtime-v2/owner-identity.d.ts +69 -0
- package/core/dist/runtime-v2/owner-identity.d.ts.map +1 -0
- package/core/dist/runtime-v2/owner-identity.js +179 -0
- package/core/dist/runtime-v2/owner-identity.js.map +1 -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 +2 -3
- package/core/dist/runtime-v2/pain-signal-runtime-factory.js.map +1 -1
- package/core/dist/runtime-v2/product-telemetry/daily-identity.d.ts +70 -0
- package/core/dist/runtime-v2/product-telemetry/daily-identity.d.ts.map +1 -0
- package/core/dist/runtime-v2/product-telemetry/daily-identity.js +89 -0
- package/core/dist/runtime-v2/product-telemetry/daily-identity.js.map +1 -0
- package/core/dist/runtime-v2/product-telemetry/snapshot-contract.d.ts +110 -0
- package/core/dist/runtime-v2/product-telemetry/snapshot-contract.d.ts.map +1 -0
- package/core/dist/runtime-v2/product-telemetry/snapshot-contract.js +250 -0
- package/core/dist/runtime-v2/product-telemetry/snapshot-contract.js.map +1 -0
- package/core/dist/runtime-v2/pruning-read-model.d.ts +2 -1
- package/core/dist/runtime-v2/pruning-read-model.d.ts.map +1 -1
- package/core/dist/runtime-v2/pruning-read-model.js.map +1 -1
- package/core/dist/runtime-v2/receipt-coverage.d.ts +63 -0
- package/core/dist/runtime-v2/receipt-coverage.d.ts.map +1 -0
- package/core/dist/runtime-v2/receipt-coverage.js +19 -0
- package/core/dist/runtime-v2/receipt-coverage.js.map +1 -0
- package/core/dist/runtime-v2/recovery-actions-log.d.ts +7 -0
- package/core/dist/runtime-v2/recovery-actions-log.d.ts.map +1 -1
- package/core/dist/runtime-v2/recovery-actions-log.js +6 -0
- package/core/dist/runtime-v2/recovery-actions-log.js.map +1 -1
- package/core/dist/runtime-v2/runtime-protocol.js +1 -1
- package/core/dist/runtime-v2/runtime-protocol.js.map +1 -1
- package/core/dist/runtime-v2/store/task/__tests__/sqlite-task-store.failed-tasks.test.js +17 -1
- package/core/dist/runtime-v2/store/task/__tests__/sqlite-task-store.failed-tasks.test.js.map +1 -1
- package/core/dist/runtime-v2/store/task/sqlite-task-store.d.ts.map +1 -1
- package/core/dist/runtime-v2/store/task/sqlite-task-store.js +10 -0
- package/core/dist/runtime-v2/store/task/sqlite-task-store.js.map +1 -1
- package/core/dist/runtime-v2/store/task/task-types.d.ts +2 -0
- package/core/dist/runtime-v2/store/task/task-types.d.ts.map +1 -1
- package/core/dist/runtime-v2/task-status.d.ts +9 -5
- package/core/dist/runtime-v2/task-status.d.ts.map +1 -1
- package/core/dist/runtime-v2/task-status.js +15 -7
- package/core/dist/runtime-v2/task-status.js.map +1 -1
- package/core/dist/runtime-v2/types/event-types.d.ts +4 -0
- package/core/dist/runtime-v2/types/event-types.d.ts.map +1 -1
- package/core/dist/runtime-v2/types/event-types.js.map +1 -1
- package/core/dist/runtime-v2/types/index.d.ts +1 -1
- package/core/dist/runtime-v2/types/index.d.ts.map +1 -1
- package/core/dist/runtime-v2/types/index.js +1 -1
- package/core/dist/runtime-v2/types/index.js.map +1 -1
- package/core/dist/runtime-v2/types/principle-enums.d.ts +3 -2
- package/core/dist/runtime-v2/types/principle-enums.d.ts.map +1 -1
- package/core/dist/runtime-v2/types/principle-enums.js +11 -5
- package/core/dist/runtime-v2/types/principle-enums.js.map +1 -1
- package/core/dist/runtime-v2/types/principle-schema.d.ts +1 -1
- package/core/dist/runtime-v2/types/principle-tree-store.d.ts +1 -1
- package/core/dist/runtime-v2/utils/cli-process-runner.d.ts.map +1 -1
- package/core/dist/runtime-v2/utils/cli-process-runner.js +3 -2
- package/core/dist/runtime-v2/utils/cli-process-runner.js.map +1 -1
- package/core/package.json +1 -2
- package/dist/i18n.d.ts.map +1 -1
- package/dist/i18n.js +4 -2
- package/dist/i18n.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +47 -11
- package/dist/index.js.map +1 -1
- package/dist/installer.d.ts +31 -5
- package/dist/installer.d.ts.map +1 -1
- package/dist/installer.js +472 -161
- package/dist/installer.js.map +1 -1
- package/dist/installers/codex-host-installer.d.ts.map +1 -1
- package/dist/installers/codex-host-installer.js +4 -0
- package/dist/installers/codex-host-installer.js.map +1 -1
- package/dist/mvp-config.d.ts +10 -0
- package/dist/mvp-config.d.ts.map +1 -1
- package/dist/mvp-config.js +30 -3
- package/dist/mvp-config.js.map +1 -1
- package/dist/uninstaller.d.ts +9 -1
- package/dist/uninstaller.d.ts.map +1 -1
- package/dist/uninstaller.js +103 -23
- package/dist/uninstaller.js.map +1 -1
- package/dist/update/atomic-file.d.ts +35 -0
- package/dist/update/atomic-file.d.ts.map +1 -0
- package/dist/update/atomic-file.js +120 -0
- package/dist/update/atomic-file.js.map +1 -0
- package/dist/update/bootstrap-protocol.d.ts +55 -0
- package/dist/update/bootstrap-protocol.d.ts.map +1 -0
- package/dist/update/bootstrap-protocol.js +132 -0
- package/dist/update/bootstrap-protocol.js.map +1 -0
- package/dist/update/channel-metadata.d.ts +28 -0
- package/dist/update/channel-metadata.d.ts.map +1 -0
- package/dist/update/channel-metadata.js +90 -0
- package/dist/update/channel-metadata.js.map +1 -0
- package/dist/update/channel-promotion.d.ts +39 -0
- package/dist/update/channel-promotion.d.ts.map +1 -0
- package/dist/update/channel-promotion.js +55 -0
- package/dist/update/channel-promotion.js.map +1 -0
- package/dist/update/data-compatibility.d.ts +35 -0
- package/dist/update/data-compatibility.d.ts.map +1 -0
- package/dist/update/data-compatibility.js +45 -0
- package/dist/update/data-compatibility.js.map +1 -0
- package/dist/update/install-layout.d.ts +59 -0
- package/dist/update/install-layout.d.ts.map +1 -0
- package/dist/update/install-layout.js +127 -0
- package/dist/update/install-layout.js.map +1 -0
- package/dist/update/legacy-migration.d.ts +56 -0
- package/dist/update/legacy-migration.d.ts.map +1 -0
- package/dist/update/legacy-migration.js +254 -0
- package/dist/update/legacy-migration.js.map +1 -0
- package/dist/update/product-identity.d.ts +50 -0
- package/dist/update/product-identity.d.ts.map +1 -0
- package/dist/update/product-identity.js +63 -0
- package/dist/update/product-identity.js.map +1 -0
- package/dist/update/release-asset-manifest.d.ts +31 -0
- package/dist/update/release-asset-manifest.d.ts.map +1 -0
- package/dist/update/release-asset-manifest.js +161 -0
- package/dist/update/release-asset-manifest.js.map +1 -0
- package/dist/update/release-identity.d.ts +33 -0
- package/dist/update/release-identity.d.ts.map +1 -0
- package/dist/update/release-identity.js +108 -0
- package/dist/update/release-identity.js.map +1 -0
- package/dist/update/release-manager.d.ts +96 -0
- package/dist/update/release-manager.d.ts.map +1 -0
- package/dist/update/release-manager.js +253 -0
- package/dist/update/release-manager.js.map +1 -0
- package/dist/update/release-metadata.d.ts +57 -0
- package/dist/update/release-metadata.d.ts.map +1 -0
- package/dist/update/release-metadata.js +200 -0
- package/dist/update/release-metadata.js.map +1 -0
- package/dist/update/release-policy.d.ts +51 -0
- package/dist/update/release-policy.d.ts.map +1 -0
- package/dist/update/release-policy.js +103 -0
- package/dist/update/release-policy.js.map +1 -0
- package/dist/update/rollback-policy.d.ts +56 -0
- package/dist/update/rollback-policy.d.ts.map +1 -0
- package/dist/update/rollback-policy.js +61 -0
- package/dist/update/rollback-policy.js.map +1 -0
- package/dist/update/transaction-journal.d.ts +121 -0
- package/dist/update/transaction-journal.d.ts.map +1 -0
- package/dist/update/transaction-journal.js +333 -0
- package/dist/update/transaction-journal.js.map +1 -0
- package/dist/update/trust-metadata.d.ts +55 -0
- package/dist/update/trust-metadata.d.ts.map +1 -0
- package/dist/update/trust-metadata.js +170 -0
- package/dist/update/trust-metadata.js.map +1 -0
- package/dist/update/update-history.d.ts +46 -0
- package/dist/update/update-history.d.ts.map +1 -0
- package/dist/update/update-history.js +123 -0
- package/dist/update/update-history.js.map +1 -0
- package/dist/utils/env.d.ts +7 -0
- package/dist/utils/env.d.ts.map +1 -1
- package/dist/utils/env.js +134 -44
- package/dist/utils/env.js.map +1 -1
- package/host-runtime/dist/governance-observation-store.d.ts +172 -0
- package/host-runtime/dist/governance-observation-store.js +649 -0
- package/host-runtime/dist/index.d.ts +6 -0
- package/host-runtime/dist/index.js +8 -0
- package/host-runtime/dist/product-telemetry/consent-store.d.ts +107 -0
- package/host-runtime/dist/product-telemetry/consent-store.js +329 -0
- package/host-runtime/dist/product-telemetry/eligibility.d.ts +53 -0
- package/host-runtime/dist/product-telemetry/eligibility.js +69 -0
- package/host-runtime/dist/product-telemetry/exporter.d.ts +46 -0
- package/host-runtime/dist/product-telemetry/exporter.js +71 -0
- package/host-runtime/dist/product-telemetry/milestone-readers.d.ts +61 -0
- package/host-runtime/dist/product-telemetry/milestone-readers.js +234 -0
- package/host-runtime/dist/product-telemetry/service.d.ts +142 -0
- package/host-runtime/dist/product-telemetry/service.js +532 -0
- package/host-runtime/dist/product-telemetry/workspace-scope.d.ts +38 -0
- package/host-runtime/dist/product-telemetry/workspace-scope.js +64 -0
- package/host-runtime/package.json +5 -0
- package/install-layout/dist/index.d.ts +48 -0
- package/install-layout/dist/index.js +81 -0
- package/install-layout/dist/index.test.d.ts +1 -0
- package/install-layout/dist/index.test.js +34 -0
- package/install-layout/package.json +29 -0
- package/package.json +16 -6
- package/pd-cli/dist/commands/__tests__/telemetry-flag-wiring.test.d.ts +9 -0
- package/pd-cli/dist/commands/__tests__/telemetry-flag-wiring.test.d.ts.map +1 -0
- package/pd-cli/dist/commands/__tests__/telemetry-flag-wiring.test.js +76 -0
- package/pd-cli/dist/commands/__tests__/telemetry-flag-wiring.test.js.map +1 -0
- package/pd-cli/dist/commands/__tests__/version.test.d.ts +2 -0
- package/pd-cli/dist/commands/__tests__/version.test.d.ts.map +1 -0
- package/pd-cli/dist/commands/__tests__/version.test.js +134 -0
- package/pd-cli/dist/commands/__tests__/version.test.js.map +1 -0
- package/pd-cli/dist/commands/console.d.ts.map +1 -1
- package/pd-cli/dist/commands/console.js +29 -10
- package/pd-cli/dist/commands/console.js.map +1 -1
- package/pd-cli/dist/commands/pain-record.d.ts.map +1 -1
- package/pd-cli/dist/commands/pain-record.js +6 -15
- package/pd-cli/dist/commands/pain-record.js.map +1 -1
- package/pd-cli/dist/commands/runtime-activation.d.ts +29 -0
- package/pd-cli/dist/commands/runtime-activation.d.ts.map +1 -1
- package/pd-cli/dist/commands/runtime-activation.js +70 -31
- package/pd-cli/dist/commands/runtime-activation.js.map +1 -1
- package/pd-cli/dist/commands/runtime-internalization-enqueue-successors.d.ts.map +1 -1
- package/pd-cli/dist/commands/runtime-internalization-enqueue-successors.js +2 -2
- package/pd-cli/dist/commands/runtime-internalization-enqueue-successors.js.map +1 -1
- package/pd-cli/dist/commands/telemetry.d.ts +82 -0
- package/pd-cli/dist/commands/telemetry.d.ts.map +1 -0
- package/pd-cli/dist/commands/telemetry.js +268 -0
- package/pd-cli/dist/commands/telemetry.js.map +1 -0
- package/pd-cli/dist/commands/version.d.ts +11 -0
- package/pd-cli/dist/commands/version.d.ts.map +1 -0
- package/pd-cli/dist/commands/version.js +48 -0
- package/pd-cli/dist/commands/version.js.map +1 -0
- package/pd-cli/dist/index.js +35 -2
- package/pd-cli/dist/index.js.map +1 -1
- package/pd-cli/dist/services/version-report.d.ts +44 -0
- package/pd-cli/dist/services/version-report.d.ts.map +1 -0
- package/pd-cli/dist/services/version-report.js +152 -0
- package/pd-cli/dist/services/version-report.js.map +1 -0
- package/pd-cli/package.json +1 -0
- package/plugin/dist/bundle.js +868 -936
- package/plugin/dist/core/init.d.ts +2 -1
- package/plugin/dist/core/principle-application-ledger.d.ts +10 -0
- package/plugin/dist/core/product-telemetry-trigger.d.ts +14 -0
- package/plugin/dist/core/thinking-os-parser.d.ts +5 -2
- package/plugin/dist/governance-audit.js +386 -0
- package/plugin/dist/hooks/gate-block-helper.d.ts +25 -1
- package/plugin/dist/hooks/gate.d.ts +22 -0
- package/plugin/dist/rulehost-evidence.js +832 -0
- package/plugin/dist/templates/langs/en/principles/THINKING_OS.md +53 -45
- package/plugin/dist/templates/langs/en/skills/pd-mentor/SKILL.md +1 -1
- package/plugin/dist/templates/langs/zh/principles/THINKING_OS.md +62 -46
- package/plugin/dist/templates/langs/zh/skills/pd-mentor/SKILL.md +1 -1
- package/plugin/dist/templates/workspace/.principles/THINKING_OS.md +66 -38
- package/plugin/openclaw.plugin.json +1 -1
- package/plugin/package.json +1 -1
- package/plugin/templates/langs/en/principles/THINKING_OS.md +53 -45
- package/plugin/templates/langs/en/skills/pd-mentor/SKILL.md +1 -1
- package/plugin/templates/langs/zh/principles/THINKING_OS.md +62 -46
- package/plugin/templates/langs/zh/skills/pd-mentor/SKILL.md +1 -1
- package/plugin/templates/workspace/.principles/THINKING_OS.md +66 -38
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Product telemetry snapshot contract — Anonymous Product Telemetry v1
|
|
3
|
+
* (PRI-598, SPEC §23-§34; review remediation: tri-state milestone facts).
|
|
4
|
+
*
|
|
5
|
+
* Pure contract: schema, strict validator, and snapshot builder. No I/O.
|
|
6
|
+
* Durable-fact readers live in host-runtime (I/O boundary); this module only
|
|
7
|
+
* validates and assembles what they provide.
|
|
8
|
+
*
|
|
9
|
+
* Privacy invariants enforced here:
|
|
10
|
+
* - Exact-key strictness: unknown top-level or nested fields are validation
|
|
11
|
+
* errors (mirrored by the collector, which must reject them with 400).
|
|
12
|
+
* - Only boolean-or-null milestones — no counts, no content, no paths.
|
|
13
|
+
* - A privacy guard makes schema scope creep (fields whose names carry
|
|
14
|
+
* prohibited concepts) fail tests, not just review.
|
|
15
|
+
*
|
|
16
|
+
* Tri-state semantics (measurement honesty — "Unknown ≠ false"):
|
|
17
|
+
* - `true` = source evaluable AND evidence observed;
|
|
18
|
+
* - `false` = source evaluable AND no evidence observed;
|
|
19
|
+
* - `null` = source not currently evaluable (missing/unreadable/degraded).
|
|
20
|
+
* A null milestone is excluded from the dashboard denominator — it must
|
|
21
|
+
* never be summed, counted as 0, or interpreted as "not observed".
|
|
22
|
+
*/
|
|
23
|
+
import { Type } from '@sinclair/typebox';
|
|
24
|
+
import { isValidBucketDate, isValidDailyTelemetryId } from './daily-identity.js';
|
|
25
|
+
export const PRODUCT_TELEMETRY_SNAPSHOT_SCHEMA_VERSION = '1';
|
|
26
|
+
export const PRODUCT_TELEMETRY_CONSENT_VERSION = '1';
|
|
27
|
+
/** Coarse host kind derived from the install manifest, not the triggering process. */
|
|
28
|
+
export const PRODUCT_TELEMETRY_HOST_KINDS = ['openclaw', 'codex', 'other'];
|
|
29
|
+
/** Bounded PD version (npm version string, e.g. "1.218.0"). */
|
|
30
|
+
export const PRODUCT_TELEMETRY_PD_VERSION_MAX_LENGTH = 32;
|
|
31
|
+
const TelemetryFactSchema = Type.Union([Type.Boolean(), Type.Null()]);
|
|
32
|
+
export const ProductTelemetrySnapshotV1Schema = Type.Object({
|
|
33
|
+
schemaVersion: Type.Literal(PRODUCT_TELEMETRY_SNAPSHOT_SCHEMA_VERSION),
|
|
34
|
+
dailyTelemetryId: Type.String(),
|
|
35
|
+
bucketDate: Type.String(),
|
|
36
|
+
pdVersion: Type.String({ maxLength: PRODUCT_TELEMETRY_PD_VERSION_MAX_LENGTH }),
|
|
37
|
+
hostKind: Type.Union([Type.Literal('openclaw'), Type.Literal('codex'), Type.Literal('other')]),
|
|
38
|
+
milestones: Type.Object({
|
|
39
|
+
initialized: TelemetryFactSchema,
|
|
40
|
+
painObserved: TelemetryFactSchema,
|
|
41
|
+
principleObserved: TelemetryFactSchema,
|
|
42
|
+
activationObserved: TelemetryFactSchema,
|
|
43
|
+
presenceReceiptObserved: TelemetryFactSchema,
|
|
44
|
+
effectReceiptObserved: TelemetryFactSchema,
|
|
45
|
+
}),
|
|
46
|
+
reliability: Type.Object({
|
|
47
|
+
initializationFailed: TelemetryFactSchema,
|
|
48
|
+
}),
|
|
49
|
+
consentVersion: Type.String(),
|
|
50
|
+
});
|
|
51
|
+
/** The 8 top-level fields, in wire order. The collector allowlist must equal this set. */
|
|
52
|
+
export const PRODUCT_TELEMETRY_TOP_LEVEL_FIELDS = [
|
|
53
|
+
'schemaVersion',
|
|
54
|
+
'dailyTelemetryId',
|
|
55
|
+
'bucketDate',
|
|
56
|
+
'pdVersion',
|
|
57
|
+
'hostKind',
|
|
58
|
+
'milestones',
|
|
59
|
+
'reliability',
|
|
60
|
+
'consentVersion',
|
|
61
|
+
];
|
|
62
|
+
/**
|
|
63
|
+
* Field-name concepts that must never appear in the telemetry schema.
|
|
64
|
+
* Guard (SPEC §64): makes privacy regression technically difficult — adding
|
|
65
|
+
* a field whose name matches one of these tokens fails the privacy guard
|
|
66
|
+
* test unless explicitly allowlisted here with a justification.
|
|
67
|
+
*/
|
|
68
|
+
export const PROHIBITED_TELEMETRY_FIELD_TOKENS = [
|
|
69
|
+
'content',
|
|
70
|
+
'prompt',
|
|
71
|
+
'message',
|
|
72
|
+
'path',
|
|
73
|
+
'file',
|
|
74
|
+
'repo',
|
|
75
|
+
'email',
|
|
76
|
+
'username',
|
|
77
|
+
'hostname',
|
|
78
|
+
'stack',
|
|
79
|
+
'arguments',
|
|
80
|
+
'payload',
|
|
81
|
+
'toolinput',
|
|
82
|
+
'tooloutput',
|
|
83
|
+
];
|
|
84
|
+
/**
|
|
85
|
+
* Collect all field names of the schema contract (recursively) and assert
|
|
86
|
+
* none matches a prohibited token. Throws with the offending names.
|
|
87
|
+
*/
|
|
88
|
+
export function assertTelemetrySchemaPrivacy(fieldNames) {
|
|
89
|
+
const offenders = fieldNames.filter((name) => {
|
|
90
|
+
const lower = name.toLowerCase();
|
|
91
|
+
return PROHIBITED_TELEMETRY_FIELD_TOKENS.some((token) => lower.includes(token));
|
|
92
|
+
});
|
|
93
|
+
if (offenders.length > 0) {
|
|
94
|
+
throw new Error(`Telemetry schema privacy guard violated: fields ${offenders.join(', ')} match prohibited concepts. ` +
|
|
95
|
+
'Every exported field must be content-free; extend the schema only with an explicit privacy review.');
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
function isPlainObject(value) {
|
|
99
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
100
|
+
}
|
|
101
|
+
/** `true` / `false` / `null` (null = source unavailable — never "observed false"). */
|
|
102
|
+
function isTelemetryFact(value) {
|
|
103
|
+
return value === null || typeof value === 'boolean';
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Strict validation of an untrusted parsed snapshot (EP-01: unknown until
|
|
107
|
+
* proven). Rejects unknown keys at both levels, wrong types, malformed
|
|
108
|
+
* dates/IDs, overlong versions, and non-allowlisted host kinds.
|
|
109
|
+
*/
|
|
110
|
+
export function validateProductTelemetrySnapshot(raw) {
|
|
111
|
+
const errors = [];
|
|
112
|
+
if (!isPlainObject(raw)) {
|
|
113
|
+
return { ok: false, errors: ['snapshot must be a JSON object'] };
|
|
114
|
+
}
|
|
115
|
+
for (const key of Object.keys(raw)) {
|
|
116
|
+
if (!PRODUCT_TELEMETRY_TOP_LEVEL_FIELDS.includes(key)) {
|
|
117
|
+
errors.push(`unknown top-level field '${key}'`);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
if (errors.length > 0) {
|
|
121
|
+
// Unknown-field rejections are final; do not interpret anything else.
|
|
122
|
+
return { ok: false, errors };
|
|
123
|
+
}
|
|
124
|
+
if (!Object.hasOwn(raw, 'schemaVersion') || raw.schemaVersion !== PRODUCT_TELEMETRY_SNAPSHOT_SCHEMA_VERSION) {
|
|
125
|
+
errors.push(`schemaVersion must be '${PRODUCT_TELEMETRY_SNAPSHOT_SCHEMA_VERSION}'`);
|
|
126
|
+
}
|
|
127
|
+
if (!Object.hasOwn(raw, 'consentVersion') || typeof raw.consentVersion !== 'string' || raw.consentVersion.length === 0 || raw.consentVersion.length > 8) {
|
|
128
|
+
errors.push('consentVersion must be a short non-empty string');
|
|
129
|
+
}
|
|
130
|
+
if (!isValidDailyTelemetryId(raw.dailyTelemetryId)) {
|
|
131
|
+
errors.push('dailyTelemetryId must be 32 lowercase hex chars');
|
|
132
|
+
}
|
|
133
|
+
if (!isValidBucketDate(raw.bucketDate)) {
|
|
134
|
+
errors.push('bucketDate must be a valid YYYY-MM-DD UTC date');
|
|
135
|
+
}
|
|
136
|
+
if (typeof raw.pdVersion !== 'string' || raw.pdVersion.length === 0 || raw.pdVersion.length > PRODUCT_TELEMETRY_PD_VERSION_MAX_LENGTH) {
|
|
137
|
+
errors.push(`pdVersion must be a non-empty string of at most ${PRODUCT_TELEMETRY_PD_VERSION_MAX_LENGTH} chars`);
|
|
138
|
+
}
|
|
139
|
+
if (!PRODUCT_TELEMETRY_HOST_KINDS.includes(raw.hostKind)) {
|
|
140
|
+
errors.push(`hostKind must be one of: ${PRODUCT_TELEMETRY_HOST_KINDS.join(', ')}`);
|
|
141
|
+
}
|
|
142
|
+
const MILESTONE_KEYS = [
|
|
143
|
+
'initialized',
|
|
144
|
+
'painObserved',
|
|
145
|
+
'principleObserved',
|
|
146
|
+
'activationObserved',
|
|
147
|
+
'presenceReceiptObserved',
|
|
148
|
+
'effectReceiptObserved',
|
|
149
|
+
];
|
|
150
|
+
const { milestones } = raw;
|
|
151
|
+
if (!isPlainObject(milestones)) {
|
|
152
|
+
errors.push('milestones must be an object');
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
for (const key of Object.keys(milestones)) {
|
|
156
|
+
if (!MILESTONE_KEYS.includes(key)) {
|
|
157
|
+
errors.push(`unknown milestones field '${key}'`);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
for (const key of MILESTONE_KEYS) {
|
|
161
|
+
if (!Object.hasOwn(milestones, key) || !isTelemetryFact(milestones[key])) {
|
|
162
|
+
errors.push(`milestones.${key} must be a boolean or null`);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
const { reliability } = raw;
|
|
167
|
+
if (!isPlainObject(reliability)) {
|
|
168
|
+
errors.push('reliability must be an object');
|
|
169
|
+
}
|
|
170
|
+
else {
|
|
171
|
+
for (const key of Object.keys(reliability)) {
|
|
172
|
+
if (key !== 'initializationFailed') {
|
|
173
|
+
errors.push(`unknown reliability field '${key}'`);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
if (!Object.hasOwn(reliability, 'initializationFailed') || !isTelemetryFact(reliability.initializationFailed)) {
|
|
177
|
+
errors.push('reliability.initializationFailed must be a boolean or null');
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
if (errors.length > 0) {
|
|
181
|
+
return { ok: false, errors };
|
|
182
|
+
}
|
|
183
|
+
// Post-validation reconstruction from guard-narrowed fields — no `as` on
|
|
184
|
+
// the untrusted object (rc-2). Every ternary's dead branch is unreachable
|
|
185
|
+
// after the checks above; they exist only for type-safe construction.
|
|
186
|
+
const hostKind = PRODUCT_TELEMETRY_HOST_KINDS.find((kind) => kind === raw.hostKind);
|
|
187
|
+
const milestonesInput = isPlainObject(raw.milestones) ? raw.milestones : undefined;
|
|
188
|
+
const reliabilityInput = isPlainObject(raw.reliability) ? raw.reliability : undefined;
|
|
189
|
+
if (hostKind === undefined || milestonesInput === undefined || reliabilityInput === undefined) {
|
|
190
|
+
return { ok: false, errors: ['schema fields failed post-validation narrowing'] };
|
|
191
|
+
}
|
|
192
|
+
// Guard-narrowed copy that PRESERVES null facts (an `=== true` collapse here
|
|
193
|
+
// would silently turn "unavailable" into "observed false").
|
|
194
|
+
const fact = (value) => (value === null ? null : value === true);
|
|
195
|
+
return {
|
|
196
|
+
ok: true,
|
|
197
|
+
value: {
|
|
198
|
+
schemaVersion: PRODUCT_TELEMETRY_SNAPSHOT_SCHEMA_VERSION,
|
|
199
|
+
dailyTelemetryId: typeof raw.dailyTelemetryId === 'string' ? raw.dailyTelemetryId : '',
|
|
200
|
+
bucketDate: typeof raw.bucketDate === 'string' ? raw.bucketDate : '',
|
|
201
|
+
pdVersion: typeof raw.pdVersion === 'string' ? raw.pdVersion : '',
|
|
202
|
+
hostKind,
|
|
203
|
+
milestones: {
|
|
204
|
+
initialized: fact(milestonesInput.initialized),
|
|
205
|
+
painObserved: fact(milestonesInput.painObserved),
|
|
206
|
+
principleObserved: fact(milestonesInput.principleObserved),
|
|
207
|
+
activationObserved: fact(milestonesInput.activationObserved),
|
|
208
|
+
presenceReceiptObserved: fact(milestonesInput.presenceReceiptObserved),
|
|
209
|
+
effectReceiptObserved: fact(milestonesInput.effectReceiptObserved),
|
|
210
|
+
},
|
|
211
|
+
reliability: {
|
|
212
|
+
initializationFailed: fact(reliabilityInput.initializationFailed),
|
|
213
|
+
},
|
|
214
|
+
consentVersion: typeof raw.consentVersion === 'string' ? raw.consentVersion : '',
|
|
215
|
+
},
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Assemble and validate one daily snapshot. Inputs are validated with the
|
|
220
|
+
* same strict validator the collector applies, so a snapshot that leaves
|
|
221
|
+
* this function is wire-valid by construction (fail loud on programmer
|
|
222
|
+
* error rather than letting an invalid payload reach the network).
|
|
223
|
+
*/
|
|
224
|
+
export function buildProductTelemetrySnapshot(input) {
|
|
225
|
+
const candidate = {
|
|
226
|
+
schemaVersion: PRODUCT_TELEMETRY_SNAPSHOT_SCHEMA_VERSION,
|
|
227
|
+
dailyTelemetryId: input.dailyTelemetryId,
|
|
228
|
+
bucketDate: input.bucketDate,
|
|
229
|
+
pdVersion: input.pdVersion,
|
|
230
|
+
hostKind: input.hostKind,
|
|
231
|
+
milestones: {
|
|
232
|
+
initialized: input.milestones.initialized,
|
|
233
|
+
painObserved: input.milestones.painObserved,
|
|
234
|
+
principleObserved: input.milestones.principleObserved,
|
|
235
|
+
activationObserved: input.milestones.activationObserved,
|
|
236
|
+
presenceReceiptObserved: input.milestones.presenceReceiptObserved,
|
|
237
|
+
effectReceiptObserved: input.milestones.effectReceiptObserved,
|
|
238
|
+
},
|
|
239
|
+
reliability: {
|
|
240
|
+
initializationFailed: input.reliability.initializationFailed,
|
|
241
|
+
},
|
|
242
|
+
consentVersion: PRODUCT_TELEMETRY_CONSENT_VERSION,
|
|
243
|
+
};
|
|
244
|
+
const validated = validateProductTelemetrySnapshot(candidate);
|
|
245
|
+
if (!validated.ok) {
|
|
246
|
+
throw new Error(`Invalid product telemetry snapshot (programmer error): ${validated.errors.join('; ')}`);
|
|
247
|
+
}
|
|
248
|
+
return validated.value;
|
|
249
|
+
}
|
|
250
|
+
//# sourceMappingURL=snapshot-contract.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshot-contract.js","sourceRoot":"","sources":["../../../src/runtime-v2/product-telemetry/snapshot-contract.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
import type { PrincipleStatus } from './types/principle-enums.js';
|
|
2
|
+
export type { PrincipleStatus };
|
|
2
3
|
export type PruningRiskLevel = 'none' | 'watch' | 'review';
|
|
3
4
|
export interface PrinciplePruningSignal {
|
|
4
5
|
principleId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pruning-read-model.d.ts","sourceRoot":"","sources":["../../src/runtime-v2/pruning-read-model.ts"],"names":[],"mappings":"AAuBA,
|
|
1
|
+
{"version":3,"file":"pruning-read-model.d.ts","sourceRoot":"","sources":["../../src/runtime-v2/pruning-read-model.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAElE,YAAY,EAAE,eAAe,EAAE,CAAC;AAChC,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE3D,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,eAAe,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,gBAAgB,EAAE,MAAM,CAAC;IACzB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,2BAA2B,EAAE,MAAM,CAAC;IACpC,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,sBAAsB,EAAE,CAAC;IACrC,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,uBAAuB;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,mEAAmE;IACnE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oEAAoE;IACpE,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAwED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAS;IAC5C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAS;IAC7C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAE/B,YAAY,IAAI,EAAE,uBAAuB,EAMxC;IAED;;;;;;;;OAQG;IACH,mBAAmB,IAAI,sBAAsB,EAAE,CAwF9C;IAED;;;OAGG;IACH,gBAAgB,IAAI,oBAAoB,CA2BvC;IAED,0BAA0B,IAAI,qBAAqB,CAmDlD;CACF;AAED,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,MAAM,EAChB,oBAAoB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,GAC7C,sBAAsB,EAAE,CA0B1B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pruning-read-model.js","sourceRoot":"","sources":["../../src/runtime-v2/pruning-read-model.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"pruning-read-model.js","sourceRoot":"","sources":["../../src/runtime-v2/pruning-read-model.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Receipt evidence coverage disclosure contract — PRI-590..594.
|
|
3
|
+
*
|
|
4
|
+
* Pure metadata contract for the read-side disclosure of the existing
|
|
5
|
+
* principle receipt ledger (principle_applications). No new fact source:
|
|
6
|
+
* every runtime field is derived from existing state at request time
|
|
7
|
+
* (observedFrom, asOf) or is a static policy constant shared with the
|
|
8
|
+
* ledger writer (retentionPolicyDays).
|
|
9
|
+
*
|
|
10
|
+
* Owner-facing meaning (SPEC §8): counts are OBSERVED evidence within the
|
|
11
|
+
* currently retained window — never a claim of complete history.
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Rolling retention enforced by the plugin ledger writer
|
|
15
|
+
* (principle-application-ledger.ts sweepRetention). Single source of
|
|
16
|
+
* truth — import this instead of re-declaring the number.
|
|
17
|
+
*/
|
|
18
|
+
export declare const RECEIPT_RETENTION_POLICY_DAYS = 90;
|
|
19
|
+
/**
|
|
20
|
+
* Whether the receipt fact source (state.db principle_applications) can be
|
|
21
|
+
* read right now.
|
|
22
|
+
*
|
|
23
|
+
* - available — source exists and is readable
|
|
24
|
+
* - disabled — collection turned off via principle_receipt_ledger flag
|
|
25
|
+
* - unavailable — source cannot be read (state.db missing / table missing /
|
|
26
|
+
* state error)
|
|
27
|
+
*
|
|
28
|
+
* Precedence mirrors the reader's existing precheck: unavailable outranks
|
|
29
|
+
* disabled, so observable legacy behavior is unchanged.
|
|
30
|
+
*/
|
|
31
|
+
export type ReceiptSourceStatus = 'available' | 'disabled' | 'unavailable';
|
|
32
|
+
/**
|
|
33
|
+
* Trustworthiness of the ledger data, assessed only when the source is
|
|
34
|
+
* available. When sourceStatus is disabled/unavailable no assessment is
|
|
35
|
+
* performed and the field stays 'valid'.
|
|
36
|
+
*
|
|
37
|
+
* CONSUMER RULE: never read validationStatus alone. When sourceStatus is not
|
|
38
|
+
* 'available', validationStatus carries no meaning ("valid" there means
|
|
39
|
+
* "not assessed", NOT "data verified") — gate every consumer on sourceStatus
|
|
40
|
+
* first.
|
|
41
|
+
*
|
|
42
|
+
* - valid — data structure normal
|
|
43
|
+
* - partial — some rows were dropped from presentation (kind/created_at
|
|
44
|
+
* anomalies); counts remain accurate for known levels.
|
|
45
|
+
* Endpoint scope note: BOTH endpoints flag unknown-kind rows
|
|
46
|
+
* (counts via invalid_kind_count, detail via timeline drop) so a
|
|
47
|
+
* dirty table yields the same verdict on either surface.
|
|
48
|
+
* - malformed— level space or aggregates broken; counts are untrustworthy
|
|
49
|
+
* ("receipt data requires recovery")
|
|
50
|
+
*/
|
|
51
|
+
export type ReceiptValidationStatus = 'valid' | 'partial' | 'malformed';
|
|
52
|
+
export interface ReceiptEvidenceCoverage {
|
|
53
|
+
sourceStatus: ReceiptSourceStatus;
|
|
54
|
+
validationStatus: ReceiptValidationStatus;
|
|
55
|
+
/** Earliest retained evidence in the queried scope; null = nothing retained (true zero). NOT a claim of full history. Per-principle on the detail endpoint, table-wide on the counts endpoint (the retention sweep is table-wide). */
|
|
56
|
+
observedFrom: string | null;
|
|
57
|
+
/** ISO timestamp captured when the response carrying this coverage was assembled — effectively the read time (millisecond precision). */
|
|
58
|
+
asOf: string;
|
|
59
|
+
retentionPolicyDays: number;
|
|
60
|
+
reasonCode?: string;
|
|
61
|
+
nextActionCode?: string;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=receipt-coverage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"receipt-coverage.d.ts","sourceRoot":"","sources":["../../src/runtime-v2/receipt-coverage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,KAAK,CAAC;AAEhD;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,mBAAmB,GAAG,WAAW,GAAG,UAAU,GAAG,aAAa,CAAC;AAE3E;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,MAAM,uBAAuB,GAAG,OAAO,GAAG,SAAS,GAAG,WAAW,CAAC;AAExE,MAAM,WAAW,uBAAuB;IACtC,YAAY,EAAE,mBAAmB,CAAC;IAClC,gBAAgB,EAAE,uBAAuB,CAAC;IAC1C,sOAAsO;IACtO,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,yIAAyI;IACzI,IAAI,EAAE,MAAM,CAAC;IACb,mBAAmB,EAAE,MAAM,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Receipt evidence coverage disclosure contract — PRI-590..594.
|
|
3
|
+
*
|
|
4
|
+
* Pure metadata contract for the read-side disclosure of the existing
|
|
5
|
+
* principle receipt ledger (principle_applications). No new fact source:
|
|
6
|
+
* every runtime field is derived from existing state at request time
|
|
7
|
+
* (observedFrom, asOf) or is a static policy constant shared with the
|
|
8
|
+
* ledger writer (retentionPolicyDays).
|
|
9
|
+
*
|
|
10
|
+
* Owner-facing meaning (SPEC §8): counts are OBSERVED evidence within the
|
|
11
|
+
* currently retained window — never a claim of complete history.
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Rolling retention enforced by the plugin ledger writer
|
|
15
|
+
* (principle-application-ledger.ts sweepRetention). Single source of
|
|
16
|
+
* truth — import this instead of re-declaring the number.
|
|
17
|
+
*/
|
|
18
|
+
export const RECEIPT_RETENTION_POLICY_DAYS = 90;
|
|
19
|
+
//# sourceMappingURL=receipt-coverage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"receipt-coverage.js","sourceRoot":"","sources":["../../src/runtime-v2/receipt-coverage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,CAAC"}
|
|
@@ -15,6 +15,12 @@ export interface RecoveryActionRecord {
|
|
|
15
15
|
operator: string | null;
|
|
16
16
|
/** Optional owner-supplied reason (bounded free text) */
|
|
17
17
|
reason: string | null;
|
|
18
|
+
/**
|
|
19
|
+
* True when the recovery bypassed an exhausted attempt budget
|
|
20
|
+
* (recoverFailedTask force path). Absent on records written before this
|
|
21
|
+
* field existed and on non-forced recoveries.
|
|
22
|
+
*/
|
|
23
|
+
forceApplied?: boolean;
|
|
18
24
|
createdAt: string;
|
|
19
25
|
result: RecoveryActionResult;
|
|
20
26
|
}
|
|
@@ -24,6 +30,7 @@ export interface AppendRecoveryActionInput {
|
|
|
24
30
|
result: RecoveryActionResult;
|
|
25
31
|
operator?: string;
|
|
26
32
|
reason?: string | null;
|
|
33
|
+
forceApplied?: boolean;
|
|
27
34
|
}
|
|
28
35
|
/**
|
|
29
36
|
* Append a recovery action record to the audit log.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recovery-actions-log.d.ts","sourceRoot":"","sources":["../../src/runtime-v2/recovery-actions-log.ts"],"names":[],"mappings":"AAqBA,MAAM,MAAM,kBAAkB,GAAG,SAAS,CAAC;AAE3C,MAAM,MAAM,oBAAoB;AAC9B,kEAAkE;AAChE,WAAW;AACb,6DAA6D;GAC3D,UAAU,CAAC;AAEf,MAAM,WAAW,oBAAoB;IACnC,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,kBAAkB,CAAC;IAC3B,gFAAgF;IAChF,cAAc,EAAE,MAAM,CAAC;IACvB,mEAAmE;IACnE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,yDAAyD;IACzD,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,oBAAoB,CAAC;CAC9B;AAED,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,oBAAoB,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAiCD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,yBAAyB,GAC/B,oBAAoB,
|
|
1
|
+
{"version":3,"file":"recovery-actions-log.d.ts","sourceRoot":"","sources":["../../src/runtime-v2/recovery-actions-log.ts"],"names":[],"mappings":"AAqBA,MAAM,MAAM,kBAAkB,GAAG,SAAS,CAAC;AAE3C,MAAM,MAAM,oBAAoB;AAC9B,kEAAkE;AAChE,WAAW;AACb,6DAA6D;GAC3D,UAAU,CAAC;AAEf,MAAM,WAAW,oBAAoB;IACnC,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,kBAAkB,CAAC;IAC3B,gFAAgF;IAChF,cAAc,EAAE,MAAM,CAAC;IACvB,mEAAmE;IACnE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,yDAAyD;IACzD,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,oBAAoB,CAAC;CAC9B;AAED,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,oBAAoB,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAiCD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,yBAAyB,GAC/B,oBAAoB,CAuBtB;AAoBD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,MAAM,EACpB,MAAM,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3B,oBAAoB,EAAE,CA8BxB"}
|
|
@@ -57,6 +57,9 @@ export function appendRecoveryAction(workspaceDir, input) {
|
|
|
57
57
|
previousStatus: input.previousStatus,
|
|
58
58
|
operator: input.operator ?? null,
|
|
59
59
|
reason: normalizeReason(input.reason ?? null),
|
|
60
|
+
// Omitted (not false) so records of ordinary recoveries stay identical to
|
|
61
|
+
// the pre-force field set — old readers and line diffs don't see noise.
|
|
62
|
+
...(input.forceApplied === true ? { forceApplied: true } : {}),
|
|
60
63
|
createdAt: new Date().toISOString(),
|
|
61
64
|
result: input.result,
|
|
62
65
|
};
|
|
@@ -74,6 +77,9 @@ function isRecoveryActionRecord(value) {
|
|
|
74
77
|
Object.hasOwn(rec, 'previousStatus') && typeof rec.previousStatus === 'string' &&
|
|
75
78
|
Object.hasOwn(rec, 'operator') && (rec.operator === null || typeof rec.operator === 'string') &&
|
|
76
79
|
Object.hasOwn(rec, 'reason') && (rec.reason === null || typeof rec.reason === 'string') &&
|
|
80
|
+
// forceApplied is optional (legacy records predate it): absent is fine,
|
|
81
|
+
// present-but-non-boolean means the line is malformed (rc-3).
|
|
82
|
+
(!Object.hasOwn(rec, 'forceApplied') || typeof rec.forceApplied === 'boolean') &&
|
|
77
83
|
Object.hasOwn(rec, 'createdAt') && typeof rec.createdAt === 'string' &&
|
|
78
84
|
Object.hasOwn(rec, 'result') && typeof rec.result === 'string' && VALID_RESULTS.has(rec.result));
|
|
79
85
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recovery-actions-log.js","sourceRoot":"","sources":["../../src/runtime-v2/recovery-actions-log.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"recovery-actions-log.js","sourceRoot":"","sources":["../../src/runtime-v2/recovery-actions-log.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,7 +19,7 @@ export const RuntimeKindSchema = Type.Union([
|
|
|
19
19
|
Type.Literal('gemini-cli'),
|
|
20
20
|
Type.Literal('local-worker'),
|
|
21
21
|
Type.Literal('test-double'),
|
|
22
|
-
Type.Literal('pi-ai'), // M9: direct LLM completion via @
|
|
22
|
+
Type.Literal('pi-ai'), // M9: direct LLM completion via @earendil-works/pi-ai
|
|
23
23
|
Type.Literal('pi-ai-l2'), // PRI-419: multi-turn agent loop via pi-agent-core (L2)
|
|
24
24
|
]);
|
|
25
25
|
// ── Runtime Capabilities ──
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-protocol.js","sourceRoot":"","sources":["../../src/runtime-v2/runtime-protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,IAAI,EAAe,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,qBAAqB;AAErB,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC;IAC1C,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;IACxB,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;IAC5B,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,mDAAmD;IACrF,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;IAC1B,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;IACzB,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;IAC1B,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;IAC5B,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;IAC3B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"runtime-protocol.js","sourceRoot":"","sources":["../../src/runtime-v2/runtime-protocol.ts"],"names":[],"mappings":"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"}
|
|
@@ -296,12 +296,13 @@ describe('SqliteTaskStore failed-task observability', () => {
|
|
|
296
296
|
});
|
|
297
297
|
// ── listFailedTasks: field correctness ─────────────────────────────────────
|
|
298
298
|
describe('listFailedTasks — field correctness', () => {
|
|
299
|
-
it('returns correct lastError (PDErrorCategory) and
|
|
299
|
+
it('returns correct lastError (PDErrorCategory), attemptCount and maxAttempts', async () => {
|
|
300
300
|
await store.createTask(makeTaskInput({
|
|
301
301
|
taskId: 't-fields',
|
|
302
302
|
status: 'failed',
|
|
303
303
|
lastError: 'capability_missing',
|
|
304
304
|
attemptCount: 3,
|
|
305
|
+
maxAttempts: 3,
|
|
305
306
|
}));
|
|
306
307
|
const results = await store.listFailedTasks();
|
|
307
308
|
const found = results.find((r) => r.taskId === 't-fields');
|
|
@@ -310,6 +311,9 @@ describe('SqliteTaskStore failed-task observability', () => {
|
|
|
310
311
|
return;
|
|
311
312
|
expect(found.lastError).toBe('capability_missing');
|
|
312
313
|
expect(found.attemptCount).toBe(3);
|
|
314
|
+
// maxAttempts must round-trip so consumers can detect exhaustion
|
|
315
|
+
// (attemptCount >= maxAttempts) without a per-row detail fetch
|
|
316
|
+
expect(found.maxAttempts).toBe(3);
|
|
313
317
|
expect(found.taskKind).toBe('diagnostician');
|
|
314
318
|
expect(found.createdAt).toBeTruthy();
|
|
315
319
|
});
|
|
@@ -322,6 +326,18 @@ describe('SqliteTaskStore failed-task observability', () => {
|
|
|
322
326
|
return;
|
|
323
327
|
expect(found.lastError).toBeNull();
|
|
324
328
|
});
|
|
329
|
+
it('throws storage_unavailable for a corrupted max_attempts column (rc-3 fail loud)', async () => {
|
|
330
|
+
await store.createTask(makeTaskInput({ taskId: 't-corrupt-max', status: 'failed', attemptCount: 1, maxAttempts: 3 }));
|
|
331
|
+
// Corrupt the row below the TaskRecordSchema bound (minimum: 1) the way
|
|
332
|
+
// only an external write/damaged DB could — the store's own createTask
|
|
333
|
+
// validates. prepare/run avoids raw SQL string concatenation.
|
|
334
|
+
connection.getDb()
|
|
335
|
+
.prepare('UPDATE tasks SET max_attempts = 0 WHERE task_id = ?')
|
|
336
|
+
.run('t-corrupt-max');
|
|
337
|
+
// Exhaustion detection (attemptCount >= maxAttempts) must never run on
|
|
338
|
+
// a budget that violates the schema — fail loud instead.
|
|
339
|
+
await expect(store.listFailedTasks()).rejects.toThrow(/invalid max_attempts/);
|
|
340
|
+
});
|
|
325
341
|
});
|
|
326
342
|
// ── getFailedTaskDetail ────────────────────────────────────────────────────
|
|
327
343
|
describe('getFailedTaskDetail', () => {
|