project-tiny-context-harness 0.8.16 → 0.11.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/README.md +119 -41
- package/assets/README.md +184 -55
- package/assets/README.zh-CN.md +114 -40
- package/assets/agents/AGENTS_CORE.md +2 -2
- package/assets/context_templates/context.toml +6 -1
- package/assets/context_templates/screen-contract.md +16 -0
- package/assets/runtime/windows-job-supervisor/formal_process_supervisor_native_helpers.cs +301 -0
- package/assets/runtime/windows-job-supervisor/formal_process_supervisor_native_run.cs +197 -0
- package/assets/runtime/windows-job-supervisor/formal_process_supervisor_native_types.cs +215 -0
- package/assets/runtime/windows-job-supervisor/windows_job_process_supervisor.ps1 +117 -0
- package/assets/skills/context_development_engineer/SKILL.md +16 -30
- package/assets/skills/context_development_engineer/references/engineering-design-reasoning.md +93 -0
- package/assets/skills/context_surface_contract/SKILL.md +13 -2
- package/assets/skills/context_uiux_design/SKILL.md +7 -3
- package/assets/skills/context_uiux_design/references/task-uiux-analysis.md +82 -0
- package/assets/skills/design-resource-authoring/SKILL.md +18 -9
- package/assets/skills/design-resource-authoring/references/authority-delta-assessment.md +52 -0
- package/assets/skills/design-resource-authoring/references/downstream-handoff.md +22 -6
- package/assets/skills/design-resource-authoring/references/formal-selected-web-app-handoff.md +26 -8
- package/assets/skills/design-resource-authoring/references/implementation-feasibility.md +111 -0
- package/assets/skills/design-resource-authoring/references/open-design-provider.md +45 -7
- package/assets/skills/design-resource-authoring/references/recovery-and-writeback.md +7 -1
- package/assets/skills/design-resource-authoring/references/resource-selection.md +115 -3
- package/assets/skills/design-system-authoring/SKILL.md +23 -17
- package/assets/skills/design-system-authoring/references/authority-adoption.md +19 -9
- package/assets/skills/design-system-authoring/references/open-design-design-system-provider.md +4 -0
- package/assets/skills/long-task-workflow/SKILL.md +6 -6
- package/assets/skills/long-task-workflow/references/authority-lifecycle.md +10 -4
- package/assets/skills/long-task-workflow/references/contract-authoring.md +5 -5
- package/assets/skills/long-task-workflow/references/evidence-design.md +14 -3
- package/assets/skills/long-task-workflow/references/source-authoring.md +11 -8
- package/assets/tools/context_rules.json +53 -0
- package/assets/tools/validate_context.py +302 -77
- package/dist/cli.js +2 -1
- package/dist/commands/context-create.d.ts +1 -0
- package/dist/commands/context-create.js +90 -0
- package/dist/commands/context-inspect.d.ts +1 -0
- package/dist/commands/context-inspect.js +98 -0
- package/dist/commands/context-move.d.ts +1 -0
- package/dist/commands/context-move.js +78 -0
- package/dist/commands/context-register.d.ts +1 -0
- package/dist/commands/context-register.js +110 -0
- package/dist/commands/context-transaction.d.ts +1 -0
- package/dist/commands/context-transaction.js +84 -0
- package/dist/commands/context.d.ts +1 -0
- package/dist/commands/context.js +36 -0
- package/dist/commands/design-authority-delta.d.ts +1 -0
- package/dist/commands/design-authority-delta.js +53 -0
- package/dist/commands/design-authority.d.ts +1 -0
- package/dist/commands/design-authority.js +104 -0
- package/dist/commands/design-resource.js +17 -3
- package/dist/commands/doctor.d.ts +1 -1
- package/dist/commands/doctor.js +61 -3
- package/dist/commands/index.js +19 -2
- package/dist/commands/long-task-authoring.js +20 -2
- package/dist/commands/long-task-workdir.d.ts +2 -0
- package/dist/commands/long-task-workdir.js +23 -0
- package/dist/commands/long-task.js +75 -6
- package/dist/commands/route.d.ts +15 -0
- package/dist/commands/route.js +142 -0
- package/dist/index.d.ts +3 -13
- package/dist/index.js +3 -12
- package/dist/lib/cli-exit.d.ts +14 -0
- package/dist/lib/cli-exit.js +19 -0
- package/dist/lib/context-catalog/catalog-default-footprint.d.ts +3 -0
- package/dist/lib/context-catalog/catalog-default-footprint.js +53 -0
- package/dist/lib/context-catalog/catalog-diagnostics.d.ts +9 -0
- package/dist/lib/context-catalog/catalog-diagnostics.js +34 -0
- package/dist/lib/context-catalog/catalog-discovery.d.ts +7 -0
- package/dist/lib/context-catalog/catalog-discovery.js +81 -0
- package/dist/lib/context-catalog/catalog-load.d.ts +8 -0
- package/dist/lib/context-catalog/catalog-load.js +187 -0
- package/dist/lib/context-catalog/catalog-path-validation.d.ts +7 -0
- package/dist/lib/context-catalog/catalog-path-validation.js +62 -0
- package/dist/lib/context-catalog/catalog-paths.d.ts +11 -0
- package/dist/lib/context-catalog/catalog-paths.js +41 -0
- package/dist/lib/context-catalog/catalog-portable-contract.d.ts +15 -0
- package/dist/lib/context-catalog/catalog-portable-contract.js +68 -0
- package/dist/lib/context-catalog/catalog-staged-path-safety.d.ts +1 -0
- package/dist/lib/context-catalog/catalog-staged-path-safety.js +36 -0
- package/dist/lib/context-catalog/catalog-types.d.ts +40 -0
- package/dist/lib/context-catalog/catalog-types.js +1 -0
- package/dist/lib/context-catalog/catalog-validation.d.ts +9 -0
- package/dist/lib/context-catalog/catalog-validation.js +148 -0
- package/dist/lib/context-create/context-create-path.d.ts +2 -0
- package/dist/lib/context-create/context-create-path.js +30 -0
- package/dist/lib/context-create/context-create-template.d.ts +2 -0
- package/dist/lib/context-create/context-create-template.js +95 -0
- package/dist/lib/context-create/context-create-types.d.ts +28 -0
- package/dist/lib/context-create/context-create-types.js +1 -0
- package/dist/lib/context-create/context-create-write.d.ts +1 -0
- package/dist/lib/context-create/context-create-write.js +85 -0
- package/dist/lib/context-create/context-create.d.ts +2 -0
- package/dist/lib/context-create/context-create.js +84 -0
- package/dist/lib/context-default-footprint.d.ts +2 -3
- package/dist/lib/context-default-footprint.js +49 -57
- package/dist/lib/context-doctor/context-doctor-types.d.ts +16 -0
- package/dist/lib/context-doctor/context-doctor-types.js +15 -0
- package/dist/lib/context-doctor/context-doctor.d.ts +2 -0
- package/dist/lib/context-doctor/context-doctor.js +130 -0
- package/dist/lib/context-graph-snapshot.d.ts +5 -0
- package/dist/lib/context-graph-snapshot.js +46 -25
- package/dist/lib/context-inspect/context-inspect-projection.d.ts +9 -0
- package/dist/lib/context-inspect/context-inspect-projection.js +49 -0
- package/dist/lib/context-inspect/context-inspect-render.d.ts +2 -0
- package/dist/lib/context-inspect/context-inspect-render.js +29 -0
- package/dist/lib/context-inspect/context-inspect-types.d.ts +43 -0
- package/dist/lib/context-inspect/context-inspect-types.js +1 -0
- package/dist/lib/context-inspect/context-inspect.d.ts +2 -0
- package/dist/lib/context-inspect/context-inspect.js +104 -0
- package/dist/lib/context-manifest-schema.d.ts +1 -1
- package/dist/lib/context-manifest-schema.js +4 -20
- package/dist/lib/context-markdown/context-markdown-analysis.d.ts +15 -0
- package/dist/lib/context-markdown/context-markdown-analysis.js +245 -0
- package/dist/lib/context-markdown/context-markdown-extract.d.ts +7 -0
- package/dist/lib/context-markdown/context-markdown-extract.js +114 -0
- package/dist/lib/context-markdown/context-markdown-types.d.ts +57 -0
- package/dist/lib/context-markdown/context-markdown-types.js +1 -0
- package/dist/lib/context-move/context-move-input.d.ts +8 -0
- package/dist/lib/context-move/context-move-input.js +17 -0
- package/dist/lib/context-move/context-move-literal-scan.d.ts +20 -0
- package/dist/lib/context-move/context-move-literal-scan.js +213 -0
- package/dist/lib/context-move/context-move-live-validation.d.ts +3 -0
- package/dist/lib/context-move/context-move-live-validation.js +56 -0
- package/dist/lib/context-move/context-move-markdown-plan.d.ts +22 -0
- package/dist/lib/context-move/context-move-markdown-plan.js +39 -0
- package/dist/lib/context-move/context-move-projection.d.ts +3 -0
- package/dist/lib/context-move/context-move-projection.js +11 -0
- package/dist/lib/context-move/context-move-reference-validation.d.ts +11 -0
- package/dist/lib/context-move/context-move-reference-validation.js +64 -0
- package/dist/lib/context-move/context-move-render.d.ts +2 -0
- package/dist/lib/context-move/context-move-render.js +24 -0
- package/dist/lib/context-move/context-move-support.d.ts +10 -0
- package/dist/lib/context-move/context-move-support.js +88 -0
- package/dist/lib/context-move/context-move-transaction-plan.d.ts +24 -0
- package/dist/lib/context-move/context-move-transaction-plan.js +108 -0
- package/dist/lib/context-move/context-move-types.d.ts +74 -0
- package/dist/lib/context-move/context-move-types.js +1 -0
- package/dist/lib/context-move/context-move.d.ts +8 -0
- package/dist/lib/context-move/context-move.js +180 -0
- package/dist/lib/context-mutation/manifest-lossless-patch.d.ts +28 -0
- package/dist/lib/context-mutation/manifest-lossless-patch.js +208 -0
- package/dist/lib/context-mutation/markdown-link-patch.d.ts +34 -0
- package/dist/lib/context-mutation/markdown-link-patch.js +143 -0
- package/dist/lib/context-mutation/markdown-link-spans.d.ts +10 -0
- package/dist/lib/context-mutation/markdown-link-spans.js +179 -0
- package/dist/lib/context-mutation/mutation-cas.d.ts +13 -0
- package/dist/lib/context-mutation/mutation-cas.js +365 -0
- package/dist/lib/context-mutation/mutation-command-support.d.ts +12 -0
- package/dist/lib/context-mutation/mutation-command-support.js +57 -0
- package/dist/lib/context-mutation/mutation-commit.d.ts +12 -0
- package/dist/lib/context-mutation/mutation-commit.js +89 -0
- package/dist/lib/context-mutation/mutation-directories.d.ts +5 -0
- package/dist/lib/context-mutation/mutation-directories.js +56 -0
- package/dist/lib/context-mutation/mutation-file-state.d.ts +14 -0
- package/dist/lib/context-mutation/mutation-file-state.js +137 -0
- package/dist/lib/context-mutation/mutation-journal-file-validation.d.ts +1 -0
- package/dist/lib/context-mutation/mutation-journal-file-validation.js +106 -0
- package/dist/lib/context-mutation/mutation-journal-io.d.ts +5 -0
- package/dist/lib/context-mutation/mutation-journal-io.js +55 -0
- package/dist/lib/context-mutation/mutation-journal-storage.d.ts +18 -0
- package/dist/lib/context-mutation/mutation-journal-storage.js +283 -0
- package/dist/lib/context-mutation/mutation-journal-validation-support.d.ts +16 -0
- package/dist/lib/context-mutation/mutation-journal-validation-support.js +140 -0
- package/dist/lib/context-mutation/mutation-journal-validation.d.ts +3 -0
- package/dist/lib/context-mutation/mutation-journal-validation.js +177 -0
- package/dist/lib/context-mutation/mutation-journal.d.ts +8 -0
- package/dist/lib/context-mutation/mutation-journal.js +111 -0
- package/dist/lib/context-mutation/mutation-live-validation.d.ts +3 -0
- package/dist/lib/context-mutation/mutation-live-validation.js +51 -0
- package/dist/lib/context-mutation/mutation-long-task-guard.d.ts +6 -0
- package/dist/lib/context-mutation/mutation-long-task-guard.js +57 -0
- package/dist/lib/context-mutation/mutation-recovery.d.ts +4 -0
- package/dist/lib/context-mutation/mutation-recovery.js +189 -0
- package/dist/lib/context-mutation/mutation-staged-fs.d.ts +5 -0
- package/dist/lib/context-mutation/mutation-staged-fs.js +56 -0
- package/dist/lib/context-mutation/mutation-types.d.ts +103 -0
- package/dist/lib/context-mutation/mutation-types.js +1 -0
- package/dist/lib/context-register/context-register-input.d.ts +11 -0
- package/dist/lib/context-register/context-register-input.js +43 -0
- package/dist/lib/context-register/context-register-render.d.ts +2 -0
- package/dist/lib/context-register/context-register-render.js +21 -0
- package/dist/lib/context-register/context-register-support.d.ts +6 -0
- package/dist/lib/context-register/context-register-support.js +46 -0
- package/dist/lib/context-register/context-register-types.d.ts +46 -0
- package/dist/lib/context-register/context-register-types.js +1 -0
- package/dist/lib/context-register/context-register.d.ts +8 -0
- package/dist/lib/context-register/context-register.js +155 -0
- package/dist/lib/context-router/context-route-budget.d.ts +15 -0
- package/dist/lib/context-router/context-route-budget.js +14 -0
- package/dist/lib/context-router/context-route-candidates.d.ts +15 -0
- package/dist/lib/context-router/context-route-candidates.js +112 -0
- package/dist/lib/context-router/context-route-order.d.ts +6 -0
- package/dist/lib/context-router/context-route-order.js +53 -0
- package/dist/lib/context-router/context-route-paths.d.ts +16 -0
- package/dist/lib/context-router/context-route-paths.js +109 -0
- package/dist/lib/context-router/context-route-render.d.ts +2 -0
- package/dist/lib/context-router/context-route-render.js +32 -0
- package/dist/lib/context-router/context-route-scan.d.ts +18 -0
- package/dist/lib/context-router/context-route-scan.js +156 -0
- package/dist/lib/context-router/context-route-selection.d.ts +16 -0
- package/dist/lib/context-router/context-route-selection.js +72 -0
- package/dist/lib/context-router/context-route-terms.d.ts +13 -0
- package/dist/lib/context-router/context-route-terms.js +202 -0
- package/dist/lib/context-router/context-route-types.d.ts +101 -0
- package/dist/lib/context-router/context-route-types.js +1 -0
- package/dist/lib/context-router/context-route.d.ts +2 -0
- package/dist/lib/context-router/context-route.js +127 -0
- package/dist/lib/context-units-migration.d.ts +13 -0
- package/dist/lib/context-units-migration.js +217 -0
- package/dist/lib/design-authority-binding.d.ts +7 -0
- package/dist/lib/design-authority-binding.js +96 -0
- package/dist/lib/design-authority-closure.d.ts +3 -0
- package/dist/lib/design-authority-closure.js +201 -0
- package/dist/lib/design-authority-delta-codec-primitives.d.ts +10 -0
- package/dist/lib/design-authority-delta-codec-primitives.js +58 -0
- package/dist/lib/design-authority-delta-codec.d.ts +2 -0
- package/dist/lib/design-authority-delta-codec.js +193 -0
- package/dist/lib/design-authority-delta-types.d.ts +65 -0
- package/dist/lib/design-authority-delta-types.js +6 -0
- package/dist/lib/design-authority-delta-validation.d.ts +2 -0
- package/dist/lib/design-authority-delta-validation.js +16 -0
- package/dist/lib/design-authority-digest.d.ts +8 -0
- package/dist/lib/design-authority-digest.js +36 -0
- package/dist/lib/design-authority-files.d.ts +9 -0
- package/dist/lib/design-authority-files.js +62 -0
- package/dist/lib/design-authority-format.d.ts +2 -0
- package/dist/lib/design-authority-format.js +93 -0
- package/dist/lib/design-authority-links.d.ts +10 -0
- package/dist/lib/design-authority-links.js +137 -0
- package/dist/lib/design-authority-manifest.d.ts +4 -0
- package/dist/lib/design-authority-manifest.js +144 -0
- package/dist/lib/design-authority-tokens.d.ts +9 -0
- package/dist/lib/design-authority-tokens.js +45 -0
- package/dist/lib/design-authority-types.d.ts +80 -0
- package/dist/lib/design-authority-types.js +23 -0
- package/dist/lib/design-md-tool-adapter.d.ts +9 -0
- package/dist/lib/design-md-tool-adapter.js +152 -0
- package/dist/lib/design-md-tool-normalization.d.ts +7 -0
- package/dist/lib/design-md-tool-normalization.js +78 -0
- package/dist/lib/design-md-tool-types.d.ts +99 -0
- package/dist/lib/design-md-tool-types.js +8 -0
- package/dist/lib/design-resource-handoff-bundle.js +5 -0
- package/dist/lib/design-resource-handoff-input-types.d.ts +1 -1
- package/dist/lib/design-resource-handoff-manifest-projection.js +4 -0
- package/dist/lib/design-resource-handoff-set-integrity.js +1 -0
- package/dist/lib/design-resource-handoff-shape.js +18 -2
- package/dist/lib/design-resource-handoff-types.d.ts +8 -0
- package/dist/lib/design-resource-handoff-validation.js +24 -0
- package/dist/lib/design-resource-implementation-feasibility-model.d.ts +35 -0
- package/dist/lib/design-resource-implementation-feasibility-model.js +62 -0
- package/dist/lib/design-resource-implementation-feasibility-shape-sections.d.ts +43 -0
- package/dist/lib/design-resource-implementation-feasibility-shape-sections.js +142 -0
- package/dist/lib/design-resource-implementation-feasibility-shape.d.ts +4 -0
- package/dist/lib/design-resource-implementation-feasibility-shape.js +154 -0
- package/dist/lib/design-resource-implementation-feasibility-source-decision-projection.d.ts +24 -0
- package/dist/lib/design-resource-implementation-feasibility-source-decision-projection.js +106 -0
- package/dist/lib/design-resource-implementation-feasibility-source-decision.d.ts +21 -0
- package/dist/lib/design-resource-implementation-feasibility-source-decision.js +75 -0
- package/dist/lib/design-resource-implementation-feasibility-types.d.ts +135 -0
- package/dist/lib/design-resource-implementation-feasibility-types.js +37 -0
- package/dist/lib/design-resource-implementation-feasibility-validation-cells.d.ts +5 -0
- package/dist/lib/design-resource-implementation-feasibility-validation-cells.js +125 -0
- package/dist/lib/design-resource-implementation-feasibility-validation-document.d.ts +4 -0
- package/dist/lib/design-resource-implementation-feasibility-validation-document.js +167 -0
- package/dist/lib/design-resource-implementation-feasibility-validation-facts.d.ts +3 -0
- package/dist/lib/design-resource-implementation-feasibility-validation-facts.js +76 -0
- package/dist/lib/design-resource-implementation-feasibility-validation-realizations.d.ts +8 -0
- package/dist/lib/design-resource-implementation-feasibility-validation-realizations.js +76 -0
- package/dist/lib/design-resource-implementation-feasibility-validation-support.d.ts +10 -0
- package/dist/lib/design-resource-implementation-feasibility-validation-support.js +75 -0
- package/dist/lib/design-resource-implementation-feasibility-validation.d.ts +3 -0
- package/dist/lib/design-resource-implementation-feasibility-validation.js +138 -0
- package/dist/lib/design-resource-recovery-current.js +22 -0
- package/dist/lib/design-resource-recovery-shape.js +64 -7
- package/dist/lib/design-resource-recovery-types.d.ts +4 -1
- package/dist/lib/design-resource-symbolic-fact-shape.js +9 -1
- package/dist/lib/design-resource-symbolic-fact-types.d.ts +8 -0
- package/dist/lib/design-resource-symbolic-fact-validation.js +25 -0
- package/dist/lib/doctor.d.ts +2 -1
- package/dist/lib/doctor.js +29 -1
- package/dist/lib/fs.js +1 -1
- package/dist/lib/long-task-acceptance-reachability-claims.d.ts +2 -0
- package/dist/lib/long-task-acceptance-reachability-claims.js +279 -0
- package/dist/lib/long-task-acceptance-reachability-design.d.ts +2 -0
- package/dist/lib/long-task-acceptance-reachability-design.js +96 -0
- package/dist/lib/long-task-acceptance-reachability-external.d.ts +9 -0
- package/dist/lib/long-task-acceptance-reachability-external.js +123 -0
- package/dist/lib/long-task-acceptance-reachability-helpers.d.ts +64 -0
- package/dist/lib/long-task-acceptance-reachability-helpers.js +473 -0
- package/dist/lib/long-task-acceptance-reachability-semantic.d.ts +2 -0
- package/dist/lib/long-task-acceptance-reachability-semantic.js +122 -0
- package/dist/lib/long-task-acceptance-reachability-types.d.ts +91 -0
- package/dist/lib/long-task-acceptance-reachability-types.js +1 -0
- package/dist/lib/long-task-acceptance-reachability.d.ts +4 -0
- package/dist/lib/long-task-acceptance-reachability.js +115 -0
- package/dist/lib/long-task-activation-validation.d.ts +6 -0
- package/dist/lib/long-task-activation-validation.js +96 -23
- package/dist/lib/long-task-active-authority-lock-context.d.ts +4 -0
- package/dist/lib/long-task-active-authority-lock-context.js +29 -0
- package/dist/lib/long-task-applicability-identity.d.ts +25 -0
- package/dist/lib/long-task-applicability-identity.js +60 -0
- package/dist/lib/long-task-authoring-preflight-diagnostics.js +8 -0
- package/dist/lib/long-task-authoring-preflight-types.d.ts +2 -0
- package/dist/lib/long-task-authoring-preflight-types.js +9 -0
- package/dist/lib/long-task-authoring-preflight.js +18 -2
- package/dist/lib/long-task-authority-material-diff.js +4 -0
- package/dist/lib/long-task-authority-materials.js +19 -0
- package/dist/lib/long-task-authority-policy.d.ts +3 -0
- package/dist/lib/long-task-authority-policy.js +3 -0
- package/dist/lib/long-task-authority-revision-details.js +2 -1
- package/dist/lib/long-task-authority-types.d.ts +2 -0
- package/dist/lib/long-task-authority.js +2 -0
- package/dist/lib/long-task-check-runner.js +3 -296
- package/dist/lib/long-task-check-shape.js +6 -1
- package/dist/lib/long-task-claim-definitions.js +1 -3
- package/dist/lib/long-task-claim-semantic-proof-floor.d.ts +3 -0
- package/dist/lib/long-task-claim-semantic-proof-floor.js +78 -0
- package/dist/lib/long-task-claims.d.ts +0 -18
- package/dist/lib/long-task-claims.js +15 -14
- package/dist/lib/long-task-command-process.d.ts +9 -0
- package/dist/lib/long-task-command-process.js +178 -0
- package/dist/lib/long-task-compact-authoring.js +3 -0
- package/dist/lib/long-task-compact-projections.js +10 -0
- package/dist/lib/long-task-complete-delivery-evidence-types.d.ts +38 -0
- package/dist/lib/long-task-complete-delivery-evidence-types.js +1 -0
- package/dist/lib/long-task-completion-types.d.ts +109 -0
- package/dist/lib/long-task-completion-types.js +1 -0
- package/dist/lib/long-task-conformance-policy.d.ts +2 -1
- package/dist/lib/long-task-conformance-policy.js +11 -4
- package/dist/lib/long-task-context-authority-topology.js +6 -4
- package/dist/lib/long-task-contract-types.d.ts +52 -1
- package/dist/lib/long-task-counterfactual-sandbox.d.ts +7 -1
- package/dist/lib/long-task-counterfactual-sandbox.js +86 -6
- package/dist/lib/long-task-delivery-compiler-preflight.d.ts +24 -0
- package/dist/lib/long-task-delivery-compiler-preflight.js +32 -0
- package/dist/lib/long-task-delivery-compiler.d.ts +1 -0
- package/dist/lib/long-task-delivery-compiler.js +59 -44
- package/dist/lib/long-task-delivery-parser.d.ts +3 -0
- package/dist/lib/long-task-delivery-parser.js +26 -8
- package/dist/lib/long-task-delivery-types.d.ts +2 -0
- package/dist/lib/long-task-delivery-types.js +2 -0
- package/dist/lib/long-task-delivery-validation.d.ts +11 -3
- package/dist/lib/long-task-delivery-validation.js +23 -8
- package/dist/lib/long-task-design-feasibility-binding-owners.d.ts +6 -0
- package/dist/lib/long-task-design-feasibility-binding-owners.js +52 -0
- package/dist/lib/long-task-design-feasibility-binding.d.ts +14 -0
- package/dist/lib/long-task-design-feasibility-binding.js +114 -0
- package/dist/lib/long-task-design-feasibility-source-closure.d.ts +11 -0
- package/dist/lib/long-task-design-feasibility-source-closure.js +87 -0
- package/dist/lib/long-task-design-obligation.d.ts +50 -0
- package/dist/lib/long-task-design-obligation.js +99 -0
- package/dist/lib/long-task-design-resource-handoff.d.ts +5 -3
- package/dist/lib/long-task-design-resource-handoff.js +64 -4
- package/dist/lib/long-task-design-resource-method-binding.js +20 -2
- package/dist/lib/long-task-effective-external-takeover.d.ts +15 -0
- package/dist/lib/long-task-effective-external-takeover.js +109 -0
- package/dist/lib/long-task-effective-external-ui-takeover.d.ts +5 -0
- package/dist/lib/long-task-effective-external-ui-takeover.js +117 -0
- package/dist/lib/long-task-evidence-capability-codec.js +91 -0
- package/dist/lib/long-task-evidence-capability-runtime.js +62 -14
- package/dist/lib/long-task-evidence-capability-types.d.ts +3 -2
- package/dist/lib/long-task-evidence-v2.d.ts +6 -1
- package/dist/lib/long-task-evidence-v2.js +253 -170
- package/dist/lib/long-task-execution-observation.d.ts +7 -0
- package/dist/lib/long-task-execution-observation.js +21 -4
- package/dist/lib/long-task-expected-authority.d.ts +4 -0
- package/dist/lib/long-task-expected-authority.js +126 -0
- package/dist/lib/long-task-external-confirmation-artifacts.d.ts +9 -0
- package/dist/lib/long-task-external-confirmation-artifacts.js +138 -0
- package/dist/lib/long-task-external-confirmation-attestation.d.ts +20 -0
- package/dist/lib/long-task-external-confirmation-attestation.js +115 -0
- package/dist/lib/long-task-external-confirmation-challenge.d.ts +23 -0
- package/dist/lib/long-task-external-confirmation-challenge.js +164 -0
- package/dist/lib/long-task-external-confirmation-context.d.ts +14 -0
- package/dist/lib/long-task-external-confirmation-context.js +53 -0
- package/dist/lib/long-task-external-confirmation-evaluation.d.ts +11 -0
- package/dist/lib/long-task-external-confirmation-evaluation.js +454 -0
- package/dist/lib/long-task-external-confirmation-expected.d.ts +8 -0
- package/dist/lib/long-task-external-confirmation-expected.js +200 -0
- package/dist/lib/long-task-external-confirmation-identity.d.ts +10 -0
- package/dist/lib/long-task-external-confirmation-identity.js +77 -0
- package/dist/lib/long-task-external-confirmation-plan.d.ts +25 -0
- package/dist/lib/long-task-external-confirmation-plan.js +148 -0
- package/dist/lib/long-task-external-confirmation-preparation.d.ts +4 -0
- package/dist/lib/long-task-external-confirmation-preparation.js +100 -0
- package/dist/lib/long-task-external-confirmation-shape.d.ts +8 -0
- package/dist/lib/long-task-external-confirmation-shape.js +387 -0
- package/dist/lib/long-task-external-confirmation-state.d.ts +10 -0
- package/dist/lib/long-task-external-confirmation-state.js +109 -0
- package/dist/lib/long-task-external-confirmation-types.d.ts +195 -0
- package/dist/lib/long-task-external-confirmation-types.js +1 -0
- package/dist/lib/long-task-final-integrity.d.ts +2 -0
- package/dist/lib/long-task-final-integrity.js +21 -10
- package/dist/lib/long-task-final-v2.d.ts +7 -2
- package/dist/lib/long-task-final-v2.js +179 -55
- package/dist/lib/long-task-finalization-identity.d.ts +27 -0
- package/dist/lib/long-task-finalization-identity.js +58 -0
- package/dist/lib/long-task-finding-context.d.ts +1 -1
- package/dist/lib/long-task-finding-context.js +139 -13
- package/dist/lib/long-task-freshness.d.ts +27 -0
- package/dist/lib/long-task-freshness.js +129 -6
- package/dist/lib/long-task-git.js +3 -3
- package/dist/lib/long-task-material-input-closure.d.ts +3 -0
- package/dist/lib/long-task-material-input-closure.js +92 -0
- package/dist/lib/long-task-obligation-authority-resolution.d.ts +12 -0
- package/dist/lib/long-task-obligation-authority-resolution.js +57 -0
- package/dist/lib/long-task-obligation-semantic-identity.d.ts +16 -0
- package/dist/lib/long-task-obligation-semantic-identity.js +116 -0
- package/dist/lib/long-task-observation-authority.d.ts +11 -0
- package/dist/lib/long-task-observation-authority.js +137 -6
- package/dist/lib/long-task-process-table.d.ts +9 -0
- package/dist/lib/long-task-process-table.js +87 -0
- package/dist/lib/long-task-process-tree.d.ts +8 -0
- package/dist/lib/long-task-process-tree.js +108 -0
- package/dist/lib/long-task-proof-adequacy.d.ts +12 -0
- package/dist/lib/long-task-proof-adequacy.js +57 -0
- package/dist/lib/long-task-proof-capability-floor.d.ts +6 -0
- package/dist/lib/long-task-proof-capability-floor.js +137 -0
- package/dist/lib/long-task-protected-files.d.ts +1 -1
- package/dist/lib/long-task-protected-files.js +1 -1
- package/dist/lib/long-task-repair-frontier-checks.d.ts +8 -0
- package/dist/lib/long-task-repair-frontier-checks.js +93 -0
- package/dist/lib/long-task-repair-frontier-groups.d.ts +2 -0
- package/dist/lib/long-task-repair-frontier-groups.js +64 -0
- package/dist/lib/long-task-repair-frontier-utils.d.ts +6 -0
- package/dist/lib/long-task-repair-frontier-utils.js +27 -0
- package/dist/lib/long-task-repair-frontier.d.ts +14 -0
- package/dist/lib/long-task-repair-frontier.js +132 -0
- package/dist/lib/long-task-risk.d.ts +3 -2
- package/dist/lib/long-task-risk.js +73 -24
- package/dist/lib/long-task-root-shape.js +148 -8
- package/dist/lib/long-task-runner-freeze.d.ts +2 -1
- package/dist/lib/long-task-runner-freeze.js +23 -8
- package/dist/lib/long-task-runtime-types.d.ts +34 -40
- package/dist/lib/long-task-semantic-assurance-policy.js +2 -11
- package/dist/lib/long-task-semantic-contract-types.d.ts +2 -1
- package/dist/lib/long-task-semantic-drift-migration.js +48 -2
- package/dist/lib/long-task-semantic-fact-binding-types.d.ts +20 -0
- package/dist/lib/long-task-semantic-fact-closure.d.ts +5 -1
- package/dist/lib/long-task-semantic-fact-closure.js +33 -5
- package/dist/lib/long-task-semantic-fact-contract-closure.js +176 -1
- package/dist/lib/long-task-semantic-fact-contract-proofs.js +18 -1
- package/dist/lib/long-task-semantic-fact-input-closure.d.ts +16 -2
- package/dist/lib/long-task-semantic-fact-input-closure.js +138 -15
- package/dist/lib/long-task-semantic-fact-provenance-closure.js +1 -1
- package/dist/lib/long-task-semantic-fact-shape.d.ts +2 -1
- package/dist/lib/long-task-semantic-fact-shape.js +35 -1
- package/dist/lib/long-task-semantic-proof-adequacy.d.ts +2 -0
- package/dist/lib/long-task-semantic-proof-adequacy.js +19 -0
- package/dist/lib/long-task-semantic-proof-profile.d.ts +5 -0
- package/dist/lib/long-task-semantic-proof-profile.js +187 -0
- package/dist/lib/long-task-shape-primitives.d.ts +1 -1
- package/dist/lib/long-task-shape-primitives.js +5 -0
- package/dist/lib/long-task-source-anchors.d.ts +10 -0
- package/dist/lib/long-task-source-anchors.js +102 -0
- package/dist/lib/long-task-source-authority-types.d.ts +46 -0
- package/dist/lib/long-task-source-claim-validation.js +36 -0
- package/dist/lib/long-task-source-conservation-facts.d.ts +8 -0
- package/dist/lib/long-task-source-conservation-facts.js +57 -0
- package/dist/lib/long-task-source-conservation-types.d.ts +34 -0
- package/dist/lib/long-task-source-conservation-types.js +1 -0
- package/dist/lib/long-task-source-conservation.d.ts +7 -0
- package/dist/lib/long-task-source-conservation.js +110 -0
- package/dist/lib/long-task-source-fragments.d.ts +6 -0
- package/dist/lib/long-task-source-fragments.js +219 -0
- package/dist/lib/long-task-source-projection-resolution.d.ts +5 -0
- package/dist/lib/long-task-source-projection-resolution.js +57 -0
- package/dist/lib/long-task-source-projection-validation.d.ts +17 -0
- package/dist/lib/long-task-source-projection-validation.js +154 -0
- package/dist/lib/long-task-source-shape.js +14 -6
- package/dist/lib/long-task-source-supersession.d.ts +5 -0
- package/dist/lib/long-task-source-supersession.js +138 -0
- package/dist/lib/long-task-stage-policy.d.ts +7 -2
- package/dist/lib/long-task-stage-policy.js +67 -23
- package/dist/lib/long-task-state.d.ts +18 -4
- package/dist/lib/long-task-state.js +319 -33
- package/dist/lib/long-task-static-observation-freeze.js +4 -3
- package/dist/lib/long-task-status-projection.d.ts +3 -1
- package/dist/lib/long-task-status-projection.js +44 -13
- package/dist/lib/long-task-status-v2.d.ts +10 -6
- package/dist/lib/long-task-status-v2.js +70 -58
- package/dist/lib/long-task-target-policy.d.ts +8 -3
- package/dist/lib/long-task-target-policy.js +40 -9
- package/dist/lib/long-task-terminal-finalization.d.ts +12 -0
- package/dist/lib/long-task-terminal-finalization.js +190 -0
- package/dist/lib/long-task-ui-design-policy.js +15 -4
- package/dist/lib/long-task-ui-surface-policy.d.ts +2 -1
- package/dist/lib/long-task-ui-surface-policy.js +7 -4
- package/dist/lib/long-task-ui-surface-validation.d.ts +3 -1
- package/dist/lib/long-task-ui-surface-validation.js +2 -2
- package/dist/lib/long-task-verifier-counterfactuals.d.ts +11 -0
- package/dist/lib/long-task-verifier-counterfactuals.js +96 -0
- package/dist/lib/long-task-verifier-execution.d.ts +9 -0
- package/dist/lib/long-task-verifier-execution.js +67 -0
- package/dist/lib/long-task-verifier-identity.js +16 -5
- package/dist/lib/long-task-verifier-v2.js +52 -65
- package/dist/lib/long-task-windows-job-supervisor-helper.d.ts +1 -0
- package/dist/lib/long-task-windows-job-supervisor-helper.js +104 -0
- package/dist/lib/long-task-windows-job-supervisor-protocol.d.ts +28 -0
- package/dist/lib/long-task-windows-job-supervisor-protocol.js +124 -0
- package/dist/lib/long-task-windows-job-supervisor-result.d.ts +11 -0
- package/dist/lib/long-task-windows-job-supervisor-result.js +152 -0
- package/dist/lib/long-task-windows-job-supervisor.d.ts +2 -0
- package/dist/lib/long-task-windows-job-supervisor.js +126 -0
- package/dist/lib/long-task-workspace-scope.d.ts +1 -0
- package/dist/lib/long-task-workspace-scope.js +4 -1
- package/dist/lib/long-task-workspace.d.ts +1 -0
- package/dist/lib/long-task-workspace.js +10 -0
- package/dist/lib/migrations.js +43 -2
- package/dist/lib/repository-path-safety.d.ts +3 -0
- package/dist/lib/repository-path-safety.js +39 -3
- package/dist/lib/semantic-fact-input-shape.d.ts +7 -2
- package/dist/lib/semantic-fact-input-shape.js +25 -1
- package/dist/lib/semantic-fact-inventory-types.d.ts +8 -2
- package/dist/lib/semantic-fact-policy-census.d.ts +1 -1
- package/dist/lib/semantic-fact-policy-census.js +5 -2
- package/dist/lib/semantic-fact-policy.d.ts +1 -1
- package/dist/lib/semantic-fact-policy.js +2 -2
- package/dist/lib/semantic-fact-proof-shape.d.ts +1 -1
- package/dist/lib/semantic-fact-property-shape.d.ts +1 -1
- package/dist/lib/validators.d.ts +3 -0
- package/dist/lib/validators.js +45 -157
- package/dist/public-api-core.d.ts +12 -0
- package/dist/public-api-core.js +12 -0
- package/dist/public-api-long-task.d.ts +10 -0
- package/dist/public-api-long-task.js +10 -0
- package/dist/public-types.d.ts +6 -1
- package/dist/schemas/design-authority-delta-assessment-v1.schema.json +191 -0
- package/dist/schemas/long-task-delivery-v2/long-task-delivery-v2.schema.json +166 -2
- package/dist/schemas/long-task-external-confirmation-record-v1.schema.json +155 -0
- package/dist/schemas/long-task-external-confirmation-record-v2.schema.json +209 -0
- package/migrations/README.md +99 -0
- package/package.json +7 -5
- package/source-mappings.yaml +18 -0
|
@@ -2,15 +2,6 @@ import { assertAllClaimsCovered, assertAllGlobalClaimsCovered, generateClaims, g
|
|
|
2
2
|
import { fail } from "./long-task-delivery-shape.js";
|
|
3
3
|
import { validateClaimAssertionOperator, validateGlobalAssertionOperator, } from "./long-task-claim-proof-policy.js";
|
|
4
4
|
import { matchesRepoPattern } from "./long-task-paths.js";
|
|
5
|
-
export function outcomeResultExternallyBlocked(contract, outcomeKey) {
|
|
6
|
-
const resultClaim = `${outcomeKey}.result`;
|
|
7
|
-
return contract.global.acceptance.external_confirmations.some((confirmation) => confirmation.blocks_target &&
|
|
8
|
-
confirmation.impact_claims.includes(resultClaim));
|
|
9
|
-
}
|
|
10
|
-
export function allOutcomeResultsExternallyBlocked(contract) {
|
|
11
|
-
return (contract.outcomes.length > 0 &&
|
|
12
|
-
contract.outcomes.every((outcome) => outcomeResultExternallyBlocked(contract, outcome.key)));
|
|
13
|
-
}
|
|
14
5
|
export function compileProductClaimCoverage(contract, options = {}) {
|
|
15
6
|
const byGlobal = generateGlobalClaims(contract.global);
|
|
16
7
|
const byOutcome = Object.fromEntries(contract.outcomes.map((outcome) => [outcome.key, generateClaims(outcome)]));
|
|
@@ -326,13 +317,9 @@ function addBlockingExternalConfirmationProofs(contract, claim, proofs) {
|
|
|
326
317
|
confirmation.impact_claims.includes(claim.id));
|
|
327
318
|
if (!confirmations.length)
|
|
328
319
|
return;
|
|
329
|
-
const proofSurfaces = "required_proof_surfaces" in claim &&
|
|
330
|
-
claim.required_proof_surfaces.length > 0
|
|
331
|
-
? claim.required_proof_surfaces
|
|
332
|
-
: ["runtime_behavior"];
|
|
333
320
|
for (const confirmation of confirmations)
|
|
334
321
|
for (const applicabilityRef of claim.applicability_refs)
|
|
335
|
-
for (const proofSurface of
|
|
322
|
+
for (const proofSurface of externalClaimProofSurfaces(confirmation, claim, applicabilityRef))
|
|
336
323
|
addProof(proofs, claim.local_key, {
|
|
337
324
|
check_key: `EXTERNAL.${confirmation.key}`,
|
|
338
325
|
assertion_key: null,
|
|
@@ -341,6 +328,20 @@ function addBlockingExternalConfirmationProofs(contract, claim, proofs) {
|
|
|
341
328
|
applicability_ref: applicabilityRef,
|
|
342
329
|
});
|
|
343
330
|
}
|
|
331
|
+
function externalClaimProofSurfaces(confirmation, claim, applicabilityRef) {
|
|
332
|
+
const declared = [
|
|
333
|
+
...new Set((confirmation.obligations ?? [])
|
|
334
|
+
.filter((obligation) => obligation.claim_ref === claim.id &&
|
|
335
|
+
obligation.applicability_ref === applicabilityRef)
|
|
336
|
+
.map((obligation) => obligation.proof_surface)),
|
|
337
|
+
];
|
|
338
|
+
if (declared.length)
|
|
339
|
+
return declared;
|
|
340
|
+
return "required_proof_surfaces" in claim &&
|
|
341
|
+
claim.required_proof_surfaces.length
|
|
342
|
+
? claim.required_proof_surfaces
|
|
343
|
+
: ["runtime_behavior"];
|
|
344
|
+
}
|
|
344
345
|
function sameSet(left, right) {
|
|
345
346
|
return (left.length === right.length &&
|
|
346
347
|
new Set(left).size === left.length &&
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export interface SpawnedCommandExecution {
|
|
2
|
+
exit_code: number;
|
|
3
|
+
stdout: Buffer;
|
|
4
|
+
stderr: Buffer;
|
|
5
|
+
pid: number;
|
|
6
|
+
started_at: string;
|
|
7
|
+
completed_at: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function spawnCommandOnce(executable: string, argv: string[], cwd: string, timeoutMs: number, environment: NodeJS.ProcessEnv, containProcessTree: boolean): Promise<SpawnedCommandExecution>;
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import { spawn } from "node:child_process";
|
|
2
|
+
import { createProcessTreeObserver, } from "./long-task-process-tree.js";
|
|
3
|
+
import { spawnWindowsJobCommandOnce } from "./long-task-windows-job-supervisor.js";
|
|
4
|
+
const OUTPUT_LIMIT = 2 * 1024 * 1024;
|
|
5
|
+
const PROCESS_TREE_GRACE_MS = 1_000;
|
|
6
|
+
export function spawnCommandOnce(executable, argv, cwd, timeoutMs, environment, containProcessTree) {
|
|
7
|
+
if (containProcessTree && process.platform === "win32")
|
|
8
|
+
return spawnWindowsJobCommandOnce(executable, argv, cwd, timeoutMs, environment, OUTPUT_LIMIT);
|
|
9
|
+
return new Promise((resolve, reject) => {
|
|
10
|
+
const child = spawn(executable, argv, {
|
|
11
|
+
cwd,
|
|
12
|
+
shell: false,
|
|
13
|
+
windowsHide: true,
|
|
14
|
+
env: environment,
|
|
15
|
+
detached: containProcessTree && process.platform !== "win32",
|
|
16
|
+
});
|
|
17
|
+
const pid = child.pid ?? -1;
|
|
18
|
+
const processTree = containProcessTree && pid > 0 ? createProcessTreeObserver(pid) : null;
|
|
19
|
+
const state = {
|
|
20
|
+
child,
|
|
21
|
+
pid,
|
|
22
|
+
processTree,
|
|
23
|
+
treeMonitor: Promise.resolve(),
|
|
24
|
+
treeMonitorError: null,
|
|
25
|
+
stdout: [],
|
|
26
|
+
stderr: [],
|
|
27
|
+
size: 0,
|
|
28
|
+
settled: false,
|
|
29
|
+
terminationReason: null,
|
|
30
|
+
terminationTask: null,
|
|
31
|
+
timer: null,
|
|
32
|
+
forceTimer: null,
|
|
33
|
+
abandonTimer: null,
|
|
34
|
+
startedAt: new Date().toISOString(),
|
|
35
|
+
resolve,
|
|
36
|
+
reject,
|
|
37
|
+
};
|
|
38
|
+
if (processTree)
|
|
39
|
+
state.treeMonitor = processTree.wait().catch((error) => {
|
|
40
|
+
state.treeMonitorError = error;
|
|
41
|
+
});
|
|
42
|
+
child.stdout.on("data", captureOutput(state, state.stdout));
|
|
43
|
+
child.stderr.on("data", captureOutput(state, state.stderr));
|
|
44
|
+
child.on("error", (error) => handleSpawnError(state, error));
|
|
45
|
+
child.on("close", (code) => void handleClose(state, code));
|
|
46
|
+
state.timer = setTimeout(() => terminateExecution(state, "command_timeout"), timeoutMs);
|
|
47
|
+
if (pid < 0)
|
|
48
|
+
terminateExecution(state, "command_spawn_pid_unavailable");
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
function captureOutput(state, target) {
|
|
52
|
+
return (chunk) => {
|
|
53
|
+
state.size += chunk.length;
|
|
54
|
+
if (state.size > OUTPUT_LIMIT) {
|
|
55
|
+
terminateExecution(state, "command_output_limit_exceeded");
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
target.push(Buffer.from(chunk));
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
function handleSpawnError(state, error) {
|
|
62
|
+
if (state.settled)
|
|
63
|
+
return;
|
|
64
|
+
state.settled = true;
|
|
65
|
+
state.processTree?.stop();
|
|
66
|
+
clearExecutionTimers(state);
|
|
67
|
+
const spawnError = new Error(`command_spawn_error:${message(error)}`);
|
|
68
|
+
if (!state.processTree) {
|
|
69
|
+
state.reject(spawnError);
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
void state.processTree
|
|
73
|
+
.terminate(true)
|
|
74
|
+
.catch(() => undefined)
|
|
75
|
+
.finally(() => state.reject(spawnError));
|
|
76
|
+
}
|
|
77
|
+
async function handleClose(state, code) {
|
|
78
|
+
state.processTree?.stop();
|
|
79
|
+
clearExecutionTimers(state);
|
|
80
|
+
if (state.settled)
|
|
81
|
+
return;
|
|
82
|
+
state.settled = true;
|
|
83
|
+
if (state.terminationReason) {
|
|
84
|
+
await finishBoundedTermination(state);
|
|
85
|
+
state.reject(state.terminationReason);
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
if (!(await assertTreeClosure(state)))
|
|
89
|
+
return;
|
|
90
|
+
state.resolve({
|
|
91
|
+
exit_code: code ?? -1,
|
|
92
|
+
stdout: Buffer.concat(state.stdout),
|
|
93
|
+
stderr: Buffer.concat(state.stderr),
|
|
94
|
+
pid: state.pid,
|
|
95
|
+
started_at: state.startedAt,
|
|
96
|
+
completed_at: new Date().toISOString(),
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
async function finishBoundedTermination(state) {
|
|
100
|
+
try {
|
|
101
|
+
await state.terminationTask;
|
|
102
|
+
await state.treeMonitor;
|
|
103
|
+
if (state.processTree)
|
|
104
|
+
await state.processTree.forceQuiescence();
|
|
105
|
+
}
|
|
106
|
+
catch {
|
|
107
|
+
// Preserve the original bounded termination reason after the hard cleanup.
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
async function assertTreeClosure(state) {
|
|
111
|
+
if (!state.processTree)
|
|
112
|
+
return true;
|
|
113
|
+
try {
|
|
114
|
+
await state.treeMonitor;
|
|
115
|
+
if (state.treeMonitorError)
|
|
116
|
+
throw state.treeMonitorError;
|
|
117
|
+
await state.processTree.assertQuiescent();
|
|
118
|
+
return true;
|
|
119
|
+
}
|
|
120
|
+
catch (error) {
|
|
121
|
+
await state.processTree.terminate(true).catch(() => undefined);
|
|
122
|
+
state.reject(error);
|
|
123
|
+
return false;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
function terminateExecution(state, reason) {
|
|
127
|
+
if (state.settled || state.terminationReason)
|
|
128
|
+
return;
|
|
129
|
+
state.terminationReason = new Error(reason);
|
|
130
|
+
state.processTree?.stop();
|
|
131
|
+
startGracefulTermination(state);
|
|
132
|
+
state.forceTimer = setTimeout(() => startForcedTermination(state), PROCESS_TREE_GRACE_MS);
|
|
133
|
+
state.forceTimer.unref();
|
|
134
|
+
state.abandonTimer = setTimeout(() => abandonExecution(state), PROCESS_TREE_GRACE_MS * 2);
|
|
135
|
+
state.abandonTimer.unref();
|
|
136
|
+
}
|
|
137
|
+
function startGracefulTermination(state) {
|
|
138
|
+
if (state.processTree)
|
|
139
|
+
state.terminationTask = state.processTree
|
|
140
|
+
.terminate(false)
|
|
141
|
+
.catch((error) => {
|
|
142
|
+
state.treeMonitorError ??= error;
|
|
143
|
+
});
|
|
144
|
+
else {
|
|
145
|
+
state.child.kill();
|
|
146
|
+
state.terminationTask = Promise.resolve();
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
function startForcedTermination(state) {
|
|
150
|
+
if (state.processTree)
|
|
151
|
+
state.terminationTask = state.processTree.terminate(true).catch((error) => {
|
|
152
|
+
state.treeMonitorError ??= error;
|
|
153
|
+
});
|
|
154
|
+
else
|
|
155
|
+
state.child.kill("SIGKILL");
|
|
156
|
+
}
|
|
157
|
+
function abandonExecution(state) {
|
|
158
|
+
if (state.settled)
|
|
159
|
+
return;
|
|
160
|
+
state.settled = true;
|
|
161
|
+
state.child.stdout.destroy();
|
|
162
|
+
state.child.stderr.destroy();
|
|
163
|
+
const cleanup = state.processTree
|
|
164
|
+
? state.processTree.forceQuiescence().catch(() => undefined)
|
|
165
|
+
: Promise.resolve();
|
|
166
|
+
void cleanup.finally(() => state.reject(state.terminationReason));
|
|
167
|
+
}
|
|
168
|
+
function clearExecutionTimers(state) {
|
|
169
|
+
if (state.timer)
|
|
170
|
+
clearTimeout(state.timer);
|
|
171
|
+
if (state.forceTimer)
|
|
172
|
+
clearTimeout(state.forceTimer);
|
|
173
|
+
if (state.abandonTimer)
|
|
174
|
+
clearTimeout(state.abandonTimer);
|
|
175
|
+
}
|
|
176
|
+
function message(error) {
|
|
177
|
+
return error instanceof Error ? error.message : String(error);
|
|
178
|
+
}
|
|
@@ -56,6 +56,9 @@ export function createLongTaskCompactContract(contractInput, factRevisions, obli
|
|
|
56
56
|
fact_revision_digest: revision,
|
|
57
57
|
claim_ref: binding.claim_ref,
|
|
58
58
|
applicability_ref: binding.applicability_ref,
|
|
59
|
+
...(binding.required_polarity
|
|
60
|
+
? { required_polarity: binding.required_polarity }
|
|
61
|
+
: {}),
|
|
59
62
|
});
|
|
60
63
|
}
|
|
61
64
|
for (const binding of outcome.semantic_fact_bindings.proofs) {
|
|
@@ -82,6 +82,11 @@ export function materializeLongTaskCompactFactBindings(facts, obligations, factB
|
|
|
82
82
|
fact_revision_digest: compactSha256(fact.fact_revision_digest, `${label}.fact_revision_digest`),
|
|
83
83
|
claim_ref: compactStableRef(fact.claim_ref, `${label}.claim_ref`),
|
|
84
84
|
applicability_ref: compactStableRef(fact.applicability_ref, `${label}.applicability_ref`),
|
|
85
|
+
...(Object.hasOwn(fact, "required_polarity")
|
|
86
|
+
? {
|
|
87
|
+
required_polarity: compactPolarity(fact.required_polarity, `${label}.required_polarity`),
|
|
88
|
+
}
|
|
89
|
+
: {}),
|
|
85
90
|
});
|
|
86
91
|
}
|
|
87
92
|
for (const [index, obligation] of obligations.entries()) {
|
|
@@ -107,6 +112,11 @@ export function materializeLongTaskCompactFactBindings(facts, obligations, factB
|
|
|
107
112
|
});
|
|
108
113
|
}
|
|
109
114
|
}
|
|
115
|
+
function compactPolarity(value, label) {
|
|
116
|
+
if (value !== "positive" && value !== "negative")
|
|
117
|
+
compactFail(label, "must be positive or negative");
|
|
118
|
+
return value;
|
|
119
|
+
}
|
|
110
120
|
export function materializeLongTaskCompactAssertions(assertions, claims, facts, outcomes) {
|
|
111
121
|
for (const [index, projection] of assertions.entries()) {
|
|
112
122
|
const label = `compact_semantic_carrier.assertion_projections.rows[${index}]`;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { EvidenceCapabilityV2 } from "./long-task-semantic-contract-types.js";
|
|
2
|
+
interface CompleteDeliveryEvidenceBaseV2 {
|
|
3
|
+
assertion_key: string;
|
|
4
|
+
capability: EvidenceCapabilityV2;
|
|
5
|
+
}
|
|
6
|
+
export interface ActualProvenanceEvidenceV2 extends CompleteDeliveryEvidenceBaseV2 {
|
|
7
|
+
capability: "actual_provenance";
|
|
8
|
+
source_kind: "product_runtime" | "observer_runtime" | "durable_store";
|
|
9
|
+
source_ref: string;
|
|
10
|
+
actual_sha256: string;
|
|
11
|
+
}
|
|
12
|
+
export interface DistinctIdentityEvidenceV2 extends CompleteDeliveryEvidenceBaseV2 {
|
|
13
|
+
capability: "distinct_identity";
|
|
14
|
+
identities: Array<{
|
|
15
|
+
identity_ref: string;
|
|
16
|
+
data_state_sha256: string;
|
|
17
|
+
}>;
|
|
18
|
+
}
|
|
19
|
+
export interface DataStateEvidenceV2 extends CompleteDeliveryEvidenceBaseV2 {
|
|
20
|
+
capability: "data_state";
|
|
21
|
+
state_ref: string;
|
|
22
|
+
state_sha256: string;
|
|
23
|
+
read_session_id: string;
|
|
24
|
+
}
|
|
25
|
+
export interface PopulationCoverageEvidenceV2 extends CompleteDeliveryEvidenceBaseV2 {
|
|
26
|
+
capability: "population_coverage";
|
|
27
|
+
universe_sha256: string;
|
|
28
|
+
observed_sha256: string;
|
|
29
|
+
excluded_sha256: string;
|
|
30
|
+
set_equality: true;
|
|
31
|
+
}
|
|
32
|
+
export interface RecoveryEvidenceV2 extends CompleteDeliveryEvidenceBaseV2 {
|
|
33
|
+
capability: "recovery";
|
|
34
|
+
failure_session_id: string;
|
|
35
|
+
recovery_session_id: string;
|
|
36
|
+
recovered_state_sha256: string;
|
|
37
|
+
}
|
|
38
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import type { DeliveryContractV2 } from "./long-task-contract-types.js";
|
|
2
|
+
import type { VerifierIdentityV2 } from "./long-task-authority-types.js";
|
|
3
|
+
import type { CheckExecutionResultV2, LongTaskFindingV2 } from "./long-task-runtime-types.js";
|
|
4
|
+
import type { ExternalConfirmationEvaluationV1 } from "./long-task-external-confirmation-types.js";
|
|
5
|
+
export interface TargetedVerificationResultV2 {
|
|
6
|
+
schema_version: "long-task-targeted-progress-v2";
|
|
7
|
+
compiled_identity: string;
|
|
8
|
+
snapshot_sha256: string;
|
|
9
|
+
acceptance_authorized: false;
|
|
10
|
+
selected_outcome: string | null;
|
|
11
|
+
selected_check: string | null;
|
|
12
|
+
updated_progress_records: string[];
|
|
13
|
+
check_results: CheckExecutionResultV2[];
|
|
14
|
+
findings: LongTaskFindingV2[];
|
|
15
|
+
repair_frontier?: RepairFrontierV1;
|
|
16
|
+
completed_at: string;
|
|
17
|
+
}
|
|
18
|
+
export interface RepairFrontierCheckV1 {
|
|
19
|
+
check_ref: string;
|
|
20
|
+
outcome_key: string | null;
|
|
21
|
+
check_key: string;
|
|
22
|
+
raw_execution_identity: string;
|
|
23
|
+
obligation_refs: string[];
|
|
24
|
+
reasons: string[];
|
|
25
|
+
}
|
|
26
|
+
export interface RepairFrontierGroupV1 {
|
|
27
|
+
root_cause_key: string;
|
|
28
|
+
finding_codes: string[];
|
|
29
|
+
source_fragment_refs: string[];
|
|
30
|
+
affected_fact_refs: string[];
|
|
31
|
+
affected_proof_obligation_refs: string[];
|
|
32
|
+
affected_claim_refs: string[];
|
|
33
|
+
expected_authority_refs: string[];
|
|
34
|
+
actual_evidence_refs: string[];
|
|
35
|
+
suggested_implementation_owners: string[];
|
|
36
|
+
suggested_owner_paths: string[];
|
|
37
|
+
verification_owners: string[];
|
|
38
|
+
invalidation_reasons: string[];
|
|
39
|
+
rerun_obligation_refs: string[];
|
|
40
|
+
minimum_diagnostic_reverify: string[];
|
|
41
|
+
still_valid_diagnostic_evidence: string[];
|
|
42
|
+
}
|
|
43
|
+
export interface RepairFrontierSessionV1 {
|
|
44
|
+
raw_execution_identity: string;
|
|
45
|
+
check_refs: string[];
|
|
46
|
+
obligation_refs: string[];
|
|
47
|
+
}
|
|
48
|
+
export interface RepairFrontierV1 {
|
|
49
|
+
schema_version: "long-task-repair-frontier-v1";
|
|
50
|
+
authority_scope: "derived_diagnostic_only";
|
|
51
|
+
acceptance_authorized: false;
|
|
52
|
+
persisted: false;
|
|
53
|
+
compiled_identity: string;
|
|
54
|
+
authority_revision: number;
|
|
55
|
+
candidate_snapshot_sha256: string;
|
|
56
|
+
changed_paths: string[];
|
|
57
|
+
summary: {
|
|
58
|
+
finding_groups: number;
|
|
59
|
+
affected_facts: number;
|
|
60
|
+
affected_proof_obligations: number;
|
|
61
|
+
minimum_checks: number;
|
|
62
|
+
still_valid_progress_records: number;
|
|
63
|
+
};
|
|
64
|
+
groups: RepairFrontierGroupV1[];
|
|
65
|
+
minimum_diagnostic_reverify: RepairFrontierCheckV1[];
|
|
66
|
+
rerun_sessions: RepairFrontierSessionV1[];
|
|
67
|
+
still_valid_diagnostic_evidence: string[];
|
|
68
|
+
forbidden_authority_changes_without_revision: {
|
|
69
|
+
fields: string[];
|
|
70
|
+
protected_paths: string[];
|
|
71
|
+
};
|
|
72
|
+
final_gate_requirement: "complete_one_snapshot_rerun_still_required";
|
|
73
|
+
generated_at: string;
|
|
74
|
+
}
|
|
75
|
+
export type OutcomeStatusV2 = "unverified" | "progress_passing" | "progress_failing" | "progress_stale" | "blocked_external";
|
|
76
|
+
export type StageStatusV2 = "locked" | "ready" | "unverified" | "progress_passing" | "progress_failing" | "progress_stale" | "blocked_external";
|
|
77
|
+
export interface FinalReceiptV2 {
|
|
78
|
+
schema_version: "long-task-final-receipt-v2" | "long-task-final-receipt-v3";
|
|
79
|
+
receipt_sha256: string;
|
|
80
|
+
authority_scope: "audit_only";
|
|
81
|
+
reusable_for_acceptance: false;
|
|
82
|
+
workflow_status: "machine_accepted" | "delivery_accepted" | "machine_accepted_external_pending" | "needs_work" | "blocked_external";
|
|
83
|
+
target_profile: DeliveryContractV2["task"]["target_profile"];
|
|
84
|
+
target_state: DeliveryContractV2["task"]["target_profile"]["required_state"] | "not_accepted" | "blocked_external";
|
|
85
|
+
stage_results: Record<string, "passed" | "failed" | "blocked_external" | "blocked_dependency">;
|
|
86
|
+
compiled_identity: string;
|
|
87
|
+
contract_sha256: string;
|
|
88
|
+
snapshot_sha256: string;
|
|
89
|
+
git_head: string;
|
|
90
|
+
git_tree: string;
|
|
91
|
+
source_hashes: Record<string, string>;
|
|
92
|
+
context_hashes: Record<string, string>;
|
|
93
|
+
verifier_identity: VerifierIdentityV2;
|
|
94
|
+
check_results: CheckExecutionResultV2[];
|
|
95
|
+
outcome_results: Record<string, "passed" | "failed" | "blocked_external">;
|
|
96
|
+
external_confirmations: DeliveryContractV2["global"]["acceptance"]["external_confirmations"];
|
|
97
|
+
external_confirmation_results?: ExternalConfirmationEvaluationV1[];
|
|
98
|
+
findings: LongTaskFindingV2[];
|
|
99
|
+
snapshot_preparation_ms: number;
|
|
100
|
+
started_at: string;
|
|
101
|
+
completed_at: string;
|
|
102
|
+
/** Present on newly finalized v3 Receipts; historical Receipts remain audit-only. */
|
|
103
|
+
finalization_identity_sha256?: string;
|
|
104
|
+
}
|
|
105
|
+
export type FinalReceiptV3 = Omit<FinalReceiptV2, "schema_version"> & {
|
|
106
|
+
schema_version: "long-task-final-receipt-v3";
|
|
107
|
+
external_confirmation_results: ExternalConfirmationEvaluationV1[];
|
|
108
|
+
finalization_identity_sha256: string;
|
|
109
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { CompiledCheckV2, DeliveryContractV2, EffectiveRiskLevel } from "./long-task-delivery-types.js";
|
|
2
|
+
import type { AcceptanceReachabilityV1 } from "./long-task-acceptance-reachability-types.js";
|
|
2
3
|
type Reporter = (message: string) => void;
|
|
3
4
|
export declare function semanticConformanceRequired(contract: DeliveryContractV2, _effectiveRisk?: EffectiveRiskLevel): boolean;
|
|
4
|
-
export declare function validateSemanticConformance(contract: DeliveryContractV2, effectiveRisk: EffectiveRiskLevel, compiledChecks: CompiledCheckV2[], report?: Reporter): void;
|
|
5
|
+
export declare function validateSemanticConformance(contract: DeliveryContractV2, effectiveRisk: EffectiveRiskLevel, compiledChecks: CompiledCheckV2[], report?: Reporter, reachability?: AcceptanceReachabilityV1 | null): void;
|
|
5
6
|
export {};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { machineAuthorizedAssertionExists } from "./long-task-acceptance-reachability-helpers.js";
|
|
2
|
+
import { allOutcomeResultsFullyEffectivelyExternallyBlocked } from "./long-task-effective-external-takeover.js";
|
|
2
3
|
export function semanticConformanceRequired(contract, _effectiveRisk) {
|
|
3
4
|
const productFamilies = new Set(contract.task.execution_targets
|
|
4
5
|
.filter((target) => contract.task.target_profile.required_target_refs.includes(target.key))
|
|
@@ -6,18 +7,24 @@ export function semanticConformanceRequired(contract, _effectiveRisk) {
|
|
|
6
7
|
return (contract.risk.facts.weak_observability.length > 0 &&
|
|
7
8
|
(productFamilies.size > 1 || contract.stages.length > 1));
|
|
8
9
|
}
|
|
9
|
-
export function validateSemanticConformance(contract, effectiveRisk, compiledChecks, report) {
|
|
10
|
+
export function validateSemanticConformance(contract, effectiveRisk, compiledChecks, report, reachability) {
|
|
10
11
|
const declared = contract.global.acceptance.checks.filter((check) => check.journey_roles.includes("conformance"));
|
|
11
12
|
if (semanticConformanceRequired(contract, effectiveRisk) &&
|
|
12
13
|
!declared.length &&
|
|
13
|
-
!
|
|
14
|
+
!allOutcomeResultsFullyEffectivelyExternallyBlocked(contract, reachability)) {
|
|
14
15
|
issue(report, "semantic_conformance_check_required", contract.task.id);
|
|
15
16
|
return;
|
|
16
17
|
}
|
|
17
18
|
for (const check of declared) {
|
|
18
19
|
if (check.runner.effect !== "read_only")
|
|
19
20
|
issue(report, "conformance_check_must_be_read_only", check.key);
|
|
20
|
-
if (!
|
|
21
|
+
if (!machineAuthorizedAssertionExists(compiledChecks, {
|
|
22
|
+
authority_scope: "ordinary_claim",
|
|
23
|
+
outcome_key: null,
|
|
24
|
+
check_key: check.key,
|
|
25
|
+
check_journey_role: "conformance",
|
|
26
|
+
required_evidence_capability: "target_runtime",
|
|
27
|
+
}))
|
|
21
28
|
issue(report, "conformance_target_runtime_evidence_required", check.key);
|
|
22
29
|
const compiled = compiledChecks.find((candidate) => candidate.outcome_key === null && candidate.key === check.key);
|
|
23
30
|
if (!compiled)
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { compareUtf8Paths, normalizeContextPath, } from "./context-catalog/catalog-paths.js";
|
|
1
2
|
import { canonicalJson, sha256Hex } from "./strict-codec.js";
|
|
2
3
|
/**
|
|
3
4
|
* Hashes only manifest structure that can change the currently selected
|
|
@@ -11,13 +12,14 @@ export function contextAuthorityTopologyHash(manifest, selectedFiles) {
|
|
|
11
12
|
.filter((area) => selected.has(normalizeRepoPath(area.context)))
|
|
12
13
|
.map(({ line: _line, default: _default, forbidden_runtime_dependencies, kind, ...area }) => ({
|
|
13
14
|
...area,
|
|
15
|
+
id: area.id.normalize("NFC"),
|
|
14
16
|
...(kind === undefined ? {} : { kind }),
|
|
15
17
|
context: normalizeRepoPath(area.context),
|
|
16
18
|
forbidden_runtime_dependencies: [
|
|
17
19
|
...forbidden_runtime_dependencies,
|
|
18
20
|
].sort(),
|
|
19
21
|
}))
|
|
20
|
-
.sort((left, right) => left.id
|
|
22
|
+
.sort((left, right) => compareUtf8Paths(left.id, right.id)),
|
|
21
23
|
contexts: manifest.contexts
|
|
22
24
|
.filter((context) => selected.has(normalizeRepoPath(context.path)))
|
|
23
25
|
.map(({ line: _line, read_when: _readWhen, read_policy: _readPolicy, triggers: _triggers, default_children, ...context }) => ({
|
|
@@ -26,12 +28,12 @@ export function contextAuthorityTopologyHash(manifest, selectedFiles) {
|
|
|
26
28
|
default_children: [...default_children]
|
|
27
29
|
.map(normalizeRepoPath)
|
|
28
30
|
.filter((child) => selected.has(child))
|
|
29
|
-
.sort(),
|
|
31
|
+
.sort(compareUtf8Paths),
|
|
30
32
|
}))
|
|
31
|
-
.sort((left, right) => left.path
|
|
33
|
+
.sort((left, right) => compareUtf8Paths(left.path, right.path)),
|
|
32
34
|
};
|
|
33
35
|
return sha256Hex(canonicalJson(topology));
|
|
34
36
|
}
|
|
35
37
|
function normalizeRepoPath(value) {
|
|
36
|
-
return value
|
|
38
|
+
return normalizeContextPath(value);
|
|
37
39
|
}
|
|
@@ -3,7 +3,7 @@ import type { CounterfactualControlV2, GlobalCounterfactualControlV2 } from "./l
|
|
|
3
3
|
import type { DeliveryControlFieldNameV2 } from "./long-task-control-types.js";
|
|
4
4
|
import type { ApplicableKeyedStatementV2, CheckExecutionTargetV2, ClaimApplicabilityV2, DeliveryJourneyRoleV2, DeliveryScenarioV2, DeliveryStageV2, EvidenceCapabilityV2, ExecutionTargetV2, ExternalConfirmationKindV2, KeyedStatementV2, TargetProfileV2 } from "./long-task-semantic-contract-types.js";
|
|
5
5
|
import type { DeliverySurfaceBindingV2 } from "./long-task-ui-surface-types.js";
|
|
6
|
-
import type { SemanticFactManifestRefV2, SemanticFactOutcomeBindingsV2 } from "./semantic-fact-types.js";
|
|
6
|
+
import type { SemanticFactGlobalBindingsV2, SemanticFactManifestRefV2, SemanticFactOutcomeBindingsV2 } from "./semantic-fact-types.js";
|
|
7
7
|
export type SourceClaimDispositionV2 = {
|
|
8
8
|
type: "claim";
|
|
9
9
|
refs: string[];
|
|
@@ -26,16 +26,42 @@ export type SourceClaimDispositionV2 = {
|
|
|
26
26
|
type: "decision_required";
|
|
27
27
|
reason: string;
|
|
28
28
|
};
|
|
29
|
+
export type ExternalJudgmentBasisKindV2 = "subjective_preference" | "expert_assessment" | "authorization";
|
|
30
|
+
export interface SourceClaimJudgmentBasisV2 {
|
|
31
|
+
kind: ExternalJudgmentBasisKindV2;
|
|
32
|
+
claim_ref: string;
|
|
33
|
+
applicability_refs: string[];
|
|
34
|
+
}
|
|
29
35
|
export interface SourceClaimV2 {
|
|
30
36
|
key: string;
|
|
31
37
|
source_ref: string;
|
|
32
38
|
statement: string;
|
|
33
39
|
disposition: SourceClaimDispositionV2;
|
|
40
|
+
judgment_basis?: SourceClaimJudgmentBasisV2;
|
|
34
41
|
}
|
|
35
42
|
export interface KeyedPathV2 {
|
|
36
43
|
key: string;
|
|
37
44
|
path: string;
|
|
38
45
|
}
|
|
46
|
+
export type ExternalConfirmationIdentityAssuranceV2 = {
|
|
47
|
+
scheme: "ed25519";
|
|
48
|
+
key_id: string;
|
|
49
|
+
public_key_ref: string;
|
|
50
|
+
} | {
|
|
51
|
+
scheme: "declared_only";
|
|
52
|
+
};
|
|
53
|
+
export type CompiledExternalConfirmationIdentityAssuranceV2 = {
|
|
54
|
+
scheme: "ed25519";
|
|
55
|
+
key_id: string;
|
|
56
|
+
public_key_ref: string;
|
|
57
|
+
public_key_sha256: string;
|
|
58
|
+
} | {
|
|
59
|
+
scheme: "declared_only";
|
|
60
|
+
};
|
|
61
|
+
export interface ExternalConfirmationJudgmentBasisV2 {
|
|
62
|
+
kind: ExternalJudgmentBasisKindV2;
|
|
63
|
+
source_ref: string;
|
|
64
|
+
}
|
|
39
65
|
export interface ExternalConfirmationV2 {
|
|
40
66
|
key: string;
|
|
41
67
|
description: string;
|
|
@@ -43,6 +69,29 @@ export interface ExternalConfirmationV2 {
|
|
|
43
69
|
kind: ExternalConfirmationKindV2;
|
|
44
70
|
impact_claims: string[];
|
|
45
71
|
blocks_target: boolean;
|
|
72
|
+
actor?: {
|
|
73
|
+
id: string;
|
|
74
|
+
role: string;
|
|
75
|
+
authority_kind: "human" | "expert" | "external_system";
|
|
76
|
+
identity_assurance?: ExternalConfirmationIdentityAssuranceV2;
|
|
77
|
+
};
|
|
78
|
+
target_ref?: string;
|
|
79
|
+
environment_identity?: string;
|
|
80
|
+
scenario?: DeliveryScenarioV2;
|
|
81
|
+
evidence_requirements?: KeyedStatementV2[];
|
|
82
|
+
obligations?: Array<{
|
|
83
|
+
key: string;
|
|
84
|
+
claim_ref: string;
|
|
85
|
+
applicability_ref: string;
|
|
86
|
+
fact_ref: string | null;
|
|
87
|
+
proof_ref: string | null;
|
|
88
|
+
method: string;
|
|
89
|
+
proof_surface: ProofSurface;
|
|
90
|
+
evidence_capabilities: EvidenceCapabilityV2[];
|
|
91
|
+
expected_authority_ref: string;
|
|
92
|
+
result_kind: "actual" | "judgment";
|
|
93
|
+
judgment_basis?: ExternalConfirmationJudgmentBasisV2;
|
|
94
|
+
}>;
|
|
46
95
|
}
|
|
47
96
|
export type ProofSurface = "ui_browser" | "runtime_behavior" | "api_contract" | "data_state" | "security_boundary" | "population_coverage" | "implementation_structure";
|
|
48
97
|
export type RunnerType = "package_script" | "project_binary" | "node_oracle" | "playwright_test";
|
|
@@ -56,6 +105,7 @@ interface DeliveryAssertionBaseV2 {
|
|
|
56
105
|
applicability_ref?: string;
|
|
57
106
|
observation: string;
|
|
58
107
|
evidence_capabilities: EvidenceCapabilityV2[];
|
|
108
|
+
expected_authority_ref?: string;
|
|
59
109
|
}
|
|
60
110
|
export type DeliveryAssertionV2 = (DeliveryAssertionBaseV2 & {
|
|
61
111
|
operator: PresenceOrUnaryAssertionOperator;
|
|
@@ -247,6 +297,7 @@ export interface DeliveryContractV2 {
|
|
|
247
297
|
};
|
|
248
298
|
global: {
|
|
249
299
|
applicability: ClaimApplicabilityV2[];
|
|
300
|
+
semantic_fact_bindings?: SemanticFactGlobalBindingsV2;
|
|
250
301
|
product: {
|
|
251
302
|
non_goals: ApplicableKeyedStatementV2[];
|
|
252
303
|
};
|
|
@@ -1,13 +1,19 @@
|
|
|
1
1
|
import type { CompiledCheckV2, CounterfactualControlV2, GlobalCounterfactualControlV2, WorkspaceManifestV2 } from "./long-task-delivery-types.js";
|
|
2
2
|
export interface CounterfactualSandboxV2 {
|
|
3
3
|
root: string;
|
|
4
|
+
mutation_source_root: string;
|
|
4
5
|
dispose(): Promise<void>;
|
|
5
6
|
}
|
|
7
|
+
export interface CounterfactualProcessExecutionRootV2 {
|
|
8
|
+
root: string;
|
|
9
|
+
mutation_source_root: string;
|
|
10
|
+
}
|
|
6
11
|
type RemoveTree = (target: string, options: {
|
|
7
12
|
recursive: true;
|
|
8
13
|
force: true;
|
|
9
14
|
}) => Promise<void>;
|
|
10
15
|
type Wait = (milliseconds: number) => Promise<void>;
|
|
11
|
-
export declare function createCounterfactualSandbox(snapshotRoot: string, check: CompiledCheckV2, control: CounterfactualControlV2 | GlobalCounterfactualControlV2, bindingCarrierPaths: string[], manifest?: WorkspaceManifestV2, protectedAuthorityPaths?: readonly string[]): Promise<CounterfactualSandboxV2>;
|
|
16
|
+
export declare function createCounterfactualSandbox(snapshotRoot: string, check: CompiledCheckV2, control: CounterfactualControlV2 | GlobalCounterfactualControlV2, bindingCarrierPaths: string[], manifest?: WorkspaceManifestV2, protectedAuthorityPaths?: readonly string[], executionUniverse?: readonly CompiledCheckV2[]): Promise<CounterfactualSandboxV2>;
|
|
17
|
+
export declare function counterfactualSandboxProcessExecution(sandbox: CounterfactualSandboxV2): CounterfactualProcessExecutionRootV2 | null;
|
|
12
18
|
export declare function removeCounterfactualSandboxRoot(root: string, removeTree?: RemoveTree, wait?: Wait): Promise<void>;
|
|
13
19
|
export {};
|