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
|
@@ -31,7 +31,7 @@ export declare function parseSemanticFactProofObligations(value: unknown, label:
|
|
|
31
31
|
method: string;
|
|
32
32
|
authority: "external_confirmation" | "machine";
|
|
33
33
|
proof_surface: "api_contract" | "data_state" | "implementation_structure" | "population_coverage" | "runtime_behavior" | "security_boundary" | "ui_browser";
|
|
34
|
-
evidence_capabilities: ("boundary_invocation" | "cross_surface_consistency" | "design_conformance" | "design_method" | "design_symbolic_certificate" | "durable_readback" | "external_side_effect" | "failure_injection" | "input_variation" | "interaction_trace" | "presence" | "semantic_fact" | "state_delta" | "target_runtime" | "visual_render")[];
|
|
34
|
+
evidence_capabilities: ("actual_provenance" | "boundary_invocation" | "cross_surface_consistency" | "data_state" | "design_conformance" | "design_method" | "design_symbolic_certificate" | "distinct_identity" | "durable_readback" | "external_side_effect" | "failure_injection" | "input_variation" | "interaction_trace" | "population_coverage" | "presence" | "recovery" | "semantic_fact" | "state_delta" | "target_runtime" | "visual_render")[];
|
|
35
35
|
comparison: {
|
|
36
36
|
comparator: string;
|
|
37
37
|
mode: "exact" | "tolerance";
|
|
@@ -5,7 +5,7 @@ export declare function parseSemanticFactPropertyDispositions(value: unknown, la
|
|
|
5
5
|
standard: boolean;
|
|
6
6
|
value_kind: "boolean" | "custom" | "decision_table" | "digest" | "duration" | "enum" | "formula" | "number" | "object" | "ordered_list" | "range" | "rate" | "ratio" | "relation" | "schema" | "set" | "string" | "timestamp" | "trace";
|
|
7
7
|
required_methods: string[];
|
|
8
|
-
required_evidence_capabilities: ("boundary_invocation" | "cross_surface_consistency" | "design_conformance" | "design_method" | "design_symbolic_certificate" | "durable_readback" | "external_side_effect" | "failure_injection" | "input_variation" | "interaction_trace" | "presence" | "semantic_fact" | "state_delta" | "target_runtime" | "visual_render")[];
|
|
8
|
+
required_evidence_capabilities: ("actual_provenance" | "boundary_invocation" | "cross_surface_consistency" | "data_state" | "design_conformance" | "design_method" | "design_symbolic_certificate" | "distinct_identity" | "durable_readback" | "external_side_effect" | "failure_injection" | "input_variation" | "interaction_trace" | "population_coverage" | "presence" | "recovery" | "semantic_fact" | "state_delta" | "target_runtime" | "visual_render")[];
|
|
9
9
|
applicable_unit_refs: string[];
|
|
10
10
|
not_applicable_unit_refs: string[];
|
|
11
11
|
decision_required_unit_refs: string[];
|
package/dist/lib/validators.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ContextRole } from "./context-manifest-schema.js";
|
|
1
2
|
export interface ValidatorReport {
|
|
2
3
|
info: string[];
|
|
3
4
|
warnings?: string[];
|
|
@@ -5,3 +6,5 @@ export interface ValidatorReport {
|
|
|
5
6
|
errors: string[];
|
|
6
7
|
}
|
|
7
8
|
export declare function runValidator(projectRoot: string, gate: string, args?: string[]): Promise<ValidatorReport>;
|
|
9
|
+
export declare function validateContextContentForRole(projectRoot: string, file: string, content: string, role: ContextRole): string[];
|
|
10
|
+
export declare function validateContextRegistrationContent(projectRoot: string, file: string, content: string, role: ContextRole, readPolicy: string): string[];
|
package/dist/lib/validators.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
2
|
import { existsSync } from "node:fs";
|
|
3
|
-
import { realpath } from "node:fs/promises";
|
|
4
3
|
import { readConfig } from "./config.js";
|
|
5
|
-
import {
|
|
4
|
+
import { CONTEXT_READ_POLICY_SET, normalizeContextRole, } from "./context-catalog/catalog-portable-contract.js";
|
|
5
|
+
import { catalogErrors, catalogWarnings, } from "./context-catalog/catalog-diagnostics.js";
|
|
6
|
+
import { loadContextCatalog } from "./context-catalog/catalog-load.js";
|
|
7
|
+
import { compareUtf8Paths, isPathWithin, normalizeContextPath, } from "./context-catalog/catalog-paths.js";
|
|
6
8
|
import { harnessPath, harnessRoot } from "./harness-root.js";
|
|
7
9
|
import { listFiles, pathExists, readText } from "./fs.js";
|
|
8
10
|
import { runModularityCheck } from "./modularity.js";
|
|
@@ -34,39 +36,6 @@ const ARCHITECTURE_REQUIRED_SECTIONS = sectionSpecs([
|
|
|
34
36
|
"Verification Implications",
|
|
35
37
|
"Open Risks",
|
|
36
38
|
]);
|
|
37
|
-
const ROLE_ALIASES = {
|
|
38
|
-
global: "global",
|
|
39
|
-
architecture: "architecture",
|
|
40
|
-
area: "area",
|
|
41
|
-
domain: "domain",
|
|
42
|
-
subdomain: "subdomain",
|
|
43
|
-
foundation: "foundation",
|
|
44
|
-
archive: "archive",
|
|
45
|
-
contract: "contract",
|
|
46
|
-
verification: "verification",
|
|
47
|
-
deployment: "deployment",
|
|
48
|
-
"implementation-index": "implementation-index",
|
|
49
|
-
implementation_index: "implementation-index",
|
|
50
|
-
"decision-rationale": "decision-rationale",
|
|
51
|
-
decision_rationale: "decision-rationale",
|
|
52
|
-
};
|
|
53
|
-
const VALID_READ_POLICIES = new Set([
|
|
54
|
-
"default",
|
|
55
|
-
"always",
|
|
56
|
-
"optional",
|
|
57
|
-
"on-demand",
|
|
58
|
-
"never-default",
|
|
59
|
-
]);
|
|
60
|
-
const EXPORT_ARTIFACT_NAME_PATTERNS = [
|
|
61
|
-
/full-project-context/i,
|
|
62
|
-
/当前项目context/i,
|
|
63
|
-
/当前项目代码实现(?:context)?/i,
|
|
64
|
-
/code-level-implementation/i,
|
|
65
|
-
/project-overview/i,
|
|
66
|
-
/context-bundle/i,
|
|
67
|
-
/context-summary/i,
|
|
68
|
-
/context-export/i,
|
|
69
|
-
];
|
|
70
39
|
const FAKE_VERIFICATION_PATTERNS = [
|
|
71
40
|
/\btests?\s+(?:pass(?:ed|es)?|green)\b/i,
|
|
72
41
|
/\bverified\b/i,
|
|
@@ -143,8 +112,11 @@ async function validateContext(projectRoot) {
|
|
|
143
112
|
const projectContextRoot = path.join(projectRoot, "project_context");
|
|
144
113
|
const configPath = path.join(projectRoot, harnessPath(root, "config.yaml"));
|
|
145
114
|
const manifestPath = path.join(projectRoot, "project_context", "context.toml");
|
|
146
|
-
|
|
147
|
-
|
|
115
|
+
let manifestRoles = new Map();
|
|
116
|
+
let manifestReadPolicies = new Map();
|
|
117
|
+
let manifestCatalogLoaded = false;
|
|
118
|
+
let catalogContextFiles;
|
|
119
|
+
let catalogFilesByPath = new Map();
|
|
148
120
|
let schemaVersion = "4";
|
|
149
121
|
if (!(await pathExists(configPath))) {
|
|
150
122
|
errors.push(`${harnessPath(root, "config.yaml")} is missing`);
|
|
@@ -180,21 +152,28 @@ async function validateContext(projectRoot) {
|
|
|
180
152
|
validateContextFile(projectRoot, "project_context/architecture.md", architecture, "architecture", errors);
|
|
181
153
|
}
|
|
182
154
|
if (await pathExists(manifestPath)) {
|
|
183
|
-
const
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
155
|
+
const catalog = await loadContextCatalog(projectRoot);
|
|
156
|
+
manifestCatalogLoaded = true;
|
|
157
|
+
catalogContextFiles = catalog.context_files
|
|
158
|
+
.map((entry) => entry.absolute_path)
|
|
159
|
+
.filter((file) => file !== globalPath && file !== architecturePath);
|
|
160
|
+
catalogFilesByPath = new Map(catalog.context_files.map((entry) => [entry.path, entry.absolute_path]));
|
|
161
|
+
errors.push(...catalogErrors(catalog.diagnostics));
|
|
162
|
+
warnings.push(...catalogWarnings(catalog.diagnostics));
|
|
163
|
+
manifestRoles = catalog.roles_by_path;
|
|
164
|
+
manifestReadPolicies = catalog.read_policies_by_path;
|
|
165
|
+
if (catalog.manifest) {
|
|
166
|
+
const manifest = catalog.manifest;
|
|
188
167
|
info.push(`loaded project_context/context.toml with ${manifest.areas.length} area(s) and ${manifest.contexts.length} context node(s)`);
|
|
189
168
|
}
|
|
190
169
|
}
|
|
191
170
|
else if (schemaRequiresContextManifest(schemaVersion)) {
|
|
192
171
|
errors.push("project_context/context.toml is missing; run ty-context upgrade to create the Schema v4 Context graph manifest");
|
|
193
172
|
}
|
|
194
|
-
const contextFiles = (
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
173
|
+
const contextFiles = (catalogContextFiles ??
|
|
174
|
+
(await listFiles(projectContextRoot))
|
|
175
|
+
.filter((file) => file.endsWith(".md"))
|
|
176
|
+
.filter((file) => file !== globalPath && file !== architecturePath)).sort((left, right) => compareUtf8Paths(repoRelative(projectRoot, left), repoRelative(projectRoot, right)));
|
|
198
177
|
const validatedContextFiles = new Map();
|
|
199
178
|
for (const file of contextFiles) {
|
|
200
179
|
const relative = repoRelative(projectRoot, file);
|
|
@@ -202,7 +181,7 @@ async function validateContext(projectRoot) {
|
|
|
202
181
|
const frontMatter = parseFrontMatter(content);
|
|
203
182
|
const frontMatterRole = frontMatterContextRole(frontMatter, relative, errors);
|
|
204
183
|
if (frontMatter.read_policy &&
|
|
205
|
-
!
|
|
184
|
+
!CONTEXT_READ_POLICY_SET.has(frontMatter.read_policy)) {
|
|
206
185
|
errors.push(`${relative} has unsupported read_policy: ${frontMatter.read_policy}`);
|
|
207
186
|
}
|
|
208
187
|
const manifestRole = manifestRoles.get(relative);
|
|
@@ -215,7 +194,7 @@ async function validateContext(projectRoot) {
|
|
|
215
194
|
manifestReadPolicy !== frontMatter.read_policy) {
|
|
216
195
|
errors.push(`${relative} front matter read_policy ${frontMatter.read_policy} does not match manifest read_policy ${manifestReadPolicy}`);
|
|
217
196
|
}
|
|
218
|
-
if (!manifestRole) {
|
|
197
|
+
if (!manifestRole && !manifestCatalogLoaded) {
|
|
219
198
|
warnings.push(`${relative} is an unregistered Context Markdown file; add it to project_context/context.toml or move it out of project_context/**`);
|
|
220
199
|
}
|
|
221
200
|
const role = manifestRole ?? frontMatterRole;
|
|
@@ -227,8 +206,8 @@ async function validateContext(projectRoot) {
|
|
|
227
206
|
}
|
|
228
207
|
for (const [relative, role] of manifestRoles.entries()) {
|
|
229
208
|
if (!validatedContextFiles.has(relative)) {
|
|
230
|
-
const absolute =
|
|
231
|
-
if (await pathExists(absolute)) {
|
|
209
|
+
const absolute = catalogFilesByPath.get(relative);
|
|
210
|
+
if (absolute && (await pathExists(absolute))) {
|
|
232
211
|
validateContextFile(projectRoot, relative, await readText(absolute), role, errors);
|
|
233
212
|
validatedContextFiles.set(relative, role);
|
|
234
213
|
}
|
|
@@ -245,101 +224,20 @@ function validateContextFile(projectRoot, file, content, role, errors) {
|
|
|
245
224
|
assertMinimumRecoverability(file, content, errors);
|
|
246
225
|
assertRoleRecoverability(projectRoot, file, content, role, errors);
|
|
247
226
|
}
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
const areaIds = new Set();
|
|
253
|
-
const registeredPaths = new Set();
|
|
254
|
-
const defaultAreas = manifest.areas.filter((area) => area.default);
|
|
255
|
-
if (manifest.areas.length > 0 && defaultAreas.length !== 1) {
|
|
256
|
-
errors.push(`project_context/context.toml must mark exactly one [[areas]] entry with default = true; found ${defaultAreas.length}`);
|
|
257
|
-
}
|
|
258
|
-
for (const area of manifest.areas) {
|
|
259
|
-
if (areaIds.has(area.id)) {
|
|
260
|
-
errors.push(`project_context/context.toml has duplicate area id: ${area.id}`);
|
|
261
|
-
}
|
|
262
|
-
areaIds.add(area.id);
|
|
263
|
-
await validateManifestPath(projectRoot, area.root, projectRoot, `area ${area.id} root`, false, errors);
|
|
264
|
-
const relative = normalizeContextPath(area.context);
|
|
265
|
-
if (registeredPaths.has(relative)) {
|
|
266
|
-
errors.push(`project_context/context.toml has duplicate Context path: ${relative}`);
|
|
267
|
-
}
|
|
268
|
-
registeredPaths.add(relative);
|
|
269
|
-
await addManifestRole(projectRoot, manifestRoles, manifestReadPolicies, area.context, "area", undefined, `area ${area.id}`, errors);
|
|
270
|
-
}
|
|
271
|
-
for (const context of manifest.contexts) {
|
|
272
|
-
const relative = normalizeContextPath(context.path);
|
|
273
|
-
if (registeredPaths.has(relative)) {
|
|
274
|
-
errors.push(`project_context/context.toml has duplicate Context path: ${relative}`);
|
|
275
|
-
}
|
|
276
|
-
registeredPaths.add(relative);
|
|
277
|
-
if (context.read_policy && !VALID_READ_POLICIES.has(context.read_policy)) {
|
|
278
|
-
errors.push(`project_context/context.toml line ${context.line} has unsupported read_policy: ${context.read_policy}`);
|
|
279
|
-
}
|
|
280
|
-
const role = normalizeRole(context.role);
|
|
281
|
-
if (!role) {
|
|
282
|
-
errors.push(`project_context/context.toml line ${context.line} has unsupported context role: ${context.role}`);
|
|
283
|
-
continue;
|
|
284
|
-
}
|
|
285
|
-
await addManifestRole(projectRoot, manifestRoles, manifestReadPolicies, context.path, role, context.read_policy, `context ${context.path}`, errors);
|
|
286
|
-
}
|
|
287
|
-
for (const context of manifest.contexts) {
|
|
288
|
-
for (const child of context.default_children) {
|
|
289
|
-
const normalizedChild = normalizeContextPath(child);
|
|
290
|
-
if (!registeredPaths.has(normalizedChild)) {
|
|
291
|
-
errors.push(`project_context/context.toml line ${context.line} default_children references unregistered Context path: ${child}`);
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
}
|
|
296
|
-
async function addManifestRole(projectRoot, roles, readPolicies, rawPath, role, readPolicy, source, errors) {
|
|
297
|
-
const relative = normalizeContextPath(rawPath);
|
|
298
|
-
if (looksLikeExportArtifact(relative)) {
|
|
299
|
-
errors.push(`project_context/context.toml ${source} must not reference temporary export artifact ${rawPath}; export artifacts belong in tmp/ty-context/context-exports/** and must not be registered as Context graph nodes or implementation-index`);
|
|
300
|
-
return;
|
|
301
|
-
}
|
|
302
|
-
if (!relative.startsWith("project_context/") || !relative.endsWith(".md")) {
|
|
303
|
-
errors.push(`project_context/context.toml ${source} must reference a markdown file under project_context/: ${rawPath}`);
|
|
304
|
-
return;
|
|
305
|
-
}
|
|
306
|
-
if (!(await validateManifestPath(projectRoot, rawPath, path.join(projectRoot, "project_context"), source, true, errors))) {
|
|
307
|
-
return;
|
|
308
|
-
}
|
|
309
|
-
roles.set(relative, role);
|
|
310
|
-
if (readPolicy) {
|
|
311
|
-
readPolicies.set(relative, readPolicy);
|
|
312
|
-
}
|
|
313
|
-
}
|
|
314
|
-
async function validateManifestPath(projectRoot, rawPath, allowedRoot, source, allowFile, errors) {
|
|
315
|
-
if (path.isAbsolute(rawPath) ||
|
|
316
|
-
rawPath.replace(/\\/g, "/").split("/").includes("..")) {
|
|
317
|
-
errors.push(`project_context/context.toml ${source} path must be relative and must not contain '..': ${rawPath}`);
|
|
318
|
-
return false;
|
|
319
|
-
}
|
|
320
|
-
const target = path.resolve(projectRoot, rawPath);
|
|
321
|
-
if (!isWithin(allowedRoot, target)) {
|
|
322
|
-
errors.push(`project_context/context.toml ${source} escapes its allowed root: ${rawPath}`);
|
|
323
|
-
return false;
|
|
324
|
-
}
|
|
325
|
-
if (!(await pathExists(target))) {
|
|
326
|
-
errors.push(`project_context/context.toml references missing ${allowFile ? "context file" : "area root"}: ${normalizeContextPath(rawPath)}`);
|
|
327
|
-
return false;
|
|
328
|
-
}
|
|
329
|
-
const realAllowedRoot = await realpath(allowedRoot);
|
|
330
|
-
const realTarget = await realpath(target);
|
|
331
|
-
if (!isWithin(realAllowedRoot, realTarget)) {
|
|
332
|
-
errors.push(`project_context/context.toml ${source} resolves through a symbolic link outside its allowed root: ${rawPath}`);
|
|
333
|
-
return false;
|
|
334
|
-
}
|
|
335
|
-
return true;
|
|
227
|
+
export function validateContextContentForRole(projectRoot, file, content, role) {
|
|
228
|
+
const errors = [];
|
|
229
|
+
validateContextFile(projectRoot, file, content, role, errors);
|
|
230
|
+
return errors;
|
|
336
231
|
}
|
|
337
|
-
function
|
|
338
|
-
const
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
232
|
+
export function validateContextRegistrationContent(projectRoot, file, content, role, readPolicy) {
|
|
233
|
+
const errors = validateContextContentForRole(projectRoot, file, content, role);
|
|
234
|
+
const frontMatter = parseFrontMatter(content);
|
|
235
|
+
const frontMatterRole = frontMatterContextRole(frontMatter, file, errors);
|
|
236
|
+
if (frontMatterRole && frontMatterRole !== role)
|
|
237
|
+
errors.push(`${file} front matter context_role ${frontMatterRole} does not match requested manifest role ${role}`);
|
|
238
|
+
if (frontMatter.read_policy && frontMatter.read_policy !== readPolicy)
|
|
239
|
+
errors.push(`${file} front matter read_policy ${frontMatter.read_policy} does not match requested manifest read_policy ${readPolicy}`);
|
|
240
|
+
return errors;
|
|
343
241
|
}
|
|
344
242
|
function assertSections(file, content, sections, errors) {
|
|
345
243
|
for (const section of sections) {
|
|
@@ -404,7 +302,7 @@ function assertRoleRecoverability(projectRoot, file, content, role, errors) {
|
|
|
404
302
|
return false;
|
|
405
303
|
}
|
|
406
304
|
const target = path.resolve(projectRoot, clean);
|
|
407
|
-
return
|
|
305
|
+
return isPathWithin(projectRoot, target) && existsSync(target);
|
|
408
306
|
});
|
|
409
307
|
if (!hasRepositoryPath) {
|
|
410
308
|
errors.push(`${file} implementation-index Context must contain at least one existing repository path`);
|
|
@@ -467,7 +365,7 @@ function escapeRegExp(value) {
|
|
|
467
365
|
return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
468
366
|
}
|
|
469
367
|
function repoRelative(root, file) {
|
|
470
|
-
return path.relative(root, file)
|
|
368
|
+
return normalizeContextPath(path.relative(root, file));
|
|
471
369
|
}
|
|
472
370
|
function schemaRequiresContextManifest(schemaVersion) {
|
|
473
371
|
const major = Number.parseInt(schemaVersion, 10);
|
|
@@ -478,7 +376,7 @@ function frontMatterContextRole(frontMatter, file, errors) {
|
|
|
478
376
|
if (!role) {
|
|
479
377
|
return undefined;
|
|
480
378
|
}
|
|
481
|
-
const normalized =
|
|
379
|
+
const normalized = normalizeContextRole(role);
|
|
482
380
|
if (!normalized) {
|
|
483
381
|
errors.push(`${file} has unsupported context_role: ${role}`);
|
|
484
382
|
}
|
|
@@ -502,16 +400,6 @@ function parseFrontMatter(content) {
|
|
|
502
400
|
}
|
|
503
401
|
return {};
|
|
504
402
|
}
|
|
505
|
-
function normalizeRole(value) {
|
|
506
|
-
return ROLE_ALIASES[value.trim().toLowerCase()];
|
|
507
|
-
}
|
|
508
|
-
function normalizeContextPath(value) {
|
|
509
|
-
return value.replace(/\\/g, "/").replace(/^\.\//, "");
|
|
510
|
-
}
|
|
511
|
-
function looksLikeExportArtifact(value) {
|
|
512
|
-
const normalized = value.replace(/\\/g, "/");
|
|
513
|
-
return EXPORT_ARTIFACT_NAME_PATTERNS.some((pattern) => pattern.test(normalized));
|
|
514
|
-
}
|
|
515
403
|
function stripQuotes(value) {
|
|
516
404
|
if ((value.startsWith('"') && value.endsWith('"')) ||
|
|
517
405
|
(value.startsWith("'") && value.endsWith("'"))) {
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export { commands } from "./commands/index.js";
|
|
2
|
+
export { compileDeliveryContract, type CompileDeliveryOptionsV2, } from "./lib/long-task-delivery-compiler.js";
|
|
3
|
+
export { DELIVERY_CONTRACT_FILE, parseDeliveryContract, parseDeliveryContractBundle, } from "./lib/long-task-delivery-parser.js";
|
|
4
|
+
export { evaluateContractBoundary } from "./lib/long-task-boundary-check.js";
|
|
5
|
+
export { publishDesignResourceHandoffBundle } from "./lib/design-resource-handoff-bundle.js";
|
|
6
|
+
export { preflightDesignResourceHandoff } from "./lib/design-resource-handoff-validation.js";
|
|
7
|
+
export { inspectDesignAuthorityClosure, loadCurrentDesignAuthorityClosure, } from "./lib/design-authority-closure.js";
|
|
8
|
+
export { projectDesignAuthorityTokens, projectDesignAuthorityTokensFromEntry, } from "./lib/design-authority-tokens.js";
|
|
9
|
+
export { parseDesignAuthorityDeltaAssessment } from "./lib/design-authority-delta-codec.js";
|
|
10
|
+
export { validateDesignAuthorityDeltaAssessmentCurrent } from "./lib/design-authority-delta-validation.js";
|
|
11
|
+
export { symbolicDenotation } from "./lib/symbolic-denotation-public.js";
|
|
12
|
+
export { classifyLongTaskRisk, validateRiskProof, } from "./lib/long-task-risk.js";
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export { commands } from "./commands/index.js";
|
|
2
|
+
export { compileDeliveryContract, } from "./lib/long-task-delivery-compiler.js";
|
|
3
|
+
export { DELIVERY_CONTRACT_FILE, parseDeliveryContract, parseDeliveryContractBundle, } from "./lib/long-task-delivery-parser.js";
|
|
4
|
+
export { evaluateContractBoundary } from "./lib/long-task-boundary-check.js";
|
|
5
|
+
export { publishDesignResourceHandoffBundle } from "./lib/design-resource-handoff-bundle.js";
|
|
6
|
+
export { preflightDesignResourceHandoff } from "./lib/design-resource-handoff-validation.js";
|
|
7
|
+
export { inspectDesignAuthorityClosure, loadCurrentDesignAuthorityClosure, } from "./lib/design-authority-closure.js";
|
|
8
|
+
export { projectDesignAuthorityTokens, projectDesignAuthorityTokensFromEntry, } from "./lib/design-authority-tokens.js";
|
|
9
|
+
export { parseDesignAuthorityDeltaAssessment } from "./lib/design-authority-delta-codec.js";
|
|
10
|
+
export { validateDesignAuthorityDeltaAssessmentCurrent } from "./lib/design-authority-delta-validation.js";
|
|
11
|
+
export { symbolicDenotation } from "./lib/symbolic-denotation-public.js";
|
|
12
|
+
export { classifyLongTaskRisk, validateRiskProof, } from "./lib/long-task-risk.js";
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export { verifyDeliveryContract } from "./lib/long-task-verifier-v2.js";
|
|
2
|
+
export { runDeliveryFinalGate } from "./lib/long-task-final-v2.js";
|
|
3
|
+
export { captureFinalizationIdentity, finalizationIdentityDigest, type FinalizationIdentityV1, } from "./lib/long-task-finalization-identity.js";
|
|
4
|
+
export { finalizeDeliveryGateCas } from "./lib/long-task-terminal-finalization.js";
|
|
5
|
+
export { externalConfirmationStatus, prepareExternalConfirmations, revokeExternalConfirmation, rotateExternalConfirmation, submitExternalConfirmation, } from "./lib/long-task-external-confirmation-plan.js";
|
|
6
|
+
export { externalConfirmationRecordHash, externalConfirmationRecordV2Hash, externalConfirmationV2SignablePayload, parseExternalConfirmationRecord, parseExternalConfirmationRecordV1, parseExternalConfirmationRecordV2, signExternalConfirmationRecordV1, } from "./lib/long-task-external-confirmation-shape.js";
|
|
7
|
+
export { verifyExternalConfirmationAttestation } from "./lib/long-task-external-confirmation-attestation.js";
|
|
8
|
+
export { deriveRepairFrontier } from "./lib/long-task-repair-frontier.js";
|
|
9
|
+
export { closeDeliveryTask, type DeliveryStatusV2, doctorDeliveryTask, readDeliveryStatus, resumeDeliveryTask, stopCheckDeliveryTask, } from "./lib/long-task-status-v2.js";
|
|
10
|
+
export { readActiveLongTaskBinding, readCompiledDeliveryContract, readFinalReceipt, } from "./lib/long-task-state.js";
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export { verifyDeliveryContract } from "./lib/long-task-verifier-v2.js";
|
|
2
|
+
export { runDeliveryFinalGate } from "./lib/long-task-final-v2.js";
|
|
3
|
+
export { captureFinalizationIdentity, finalizationIdentityDigest, } from "./lib/long-task-finalization-identity.js";
|
|
4
|
+
export { finalizeDeliveryGateCas } from "./lib/long-task-terminal-finalization.js";
|
|
5
|
+
export { externalConfirmationStatus, prepareExternalConfirmations, revokeExternalConfirmation, rotateExternalConfirmation, submitExternalConfirmation, } from "./lib/long-task-external-confirmation-plan.js";
|
|
6
|
+
export { externalConfirmationRecordHash, externalConfirmationRecordV2Hash, externalConfirmationV2SignablePayload, parseExternalConfirmationRecord, parseExternalConfirmationRecordV1, parseExternalConfirmationRecordV2, signExternalConfirmationRecordV1, } from "./lib/long-task-external-confirmation-shape.js";
|
|
7
|
+
export { verifyExternalConfirmationAttestation } from "./lib/long-task-external-confirmation-attestation.js";
|
|
8
|
+
export { deriveRepairFrontier } from "./lib/long-task-repair-frontier.js";
|
|
9
|
+
export { closeDeliveryTask, doctorDeliveryTask, readDeliveryStatus, resumeDeliveryTask, stopCheckDeliveryTask, } from "./lib/long-task-status-v2.js";
|
|
10
|
+
export { readActiveLongTaskBinding, readCompiledDeliveryContract, readFinalReceipt, } from "./lib/long-task-state.js";
|
package/dist/public-types.d.ts
CHANGED
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
export type { HarnessConfig, HarnessProfile, ManagedFile, SourceMapping, } from "./lib/types.js";
|
|
2
|
-
export type { CheckExecutionResultV2, CompiledDeliveryContractV2, DeliveryAssertionV2, DeliveryCheckV2, DeliveryContractV2, DeliveryOutcomeV2, EffectiveRiskLevel, ExternalConfirmationV2, FinalReceiptV2, LongTaskFindingV2, LongTaskRiskFacts, ProofSurface, ProgressRecordV2, RequestedRiskLevel, RunnerType, SourceClaimV2, TargetedVerificationResultV2, } from "./lib/long-task-delivery-types.js";
|
|
2
|
+
export type { CheckExecutionResultV2, CompiledDeliveryContractV2, DeliveryAssertionV2, DeliveryCheckV2, DeliveryContractV2, DeliveryOutcomeV2, EffectiveRiskLevel, ExternalConfirmationV2, ExternalConfirmationActorV1, ExternalConfirmationCandidateV1, ExternalConfirmationEvaluationV1, ExternalConfirmationExpectedV1, ExternalConfirmationFulfillmentStateV1, ExternalConfirmationObligationResultV1, ExternalConfirmationPreparationConfirmationV1, ExternalConfirmationPreparationObligationV1, ExternalConfirmationPreparationSessionV1, ExternalConfirmationPreparationV1, ExternalConfirmationRecordV1, ExternalConfirmationResultV1, ExternalConfirmationSessionV1, FinalReceiptV2, FinalReceiptV3, LongTaskFindingV2, LongTaskRiskFacts, ProofSurface, ProgressRecordV2, RepairFrontierCheckV1, RepairFrontierGroupV1, RepairFrontierSessionV1, RepairFrontierV1, RequestedRiskLevel, RelevantExternalInputIdentityV1, RunnerType, SourceClaimV2, TargetedVerificationResultV2, } from "./lib/long-task-delivery-types.js";
|
|
3
|
+
export type { AcceptanceObligationReachabilityV1, AcceptanceReachabilityStatusV1, AcceptanceReachabilityV1, EffectiveExternalObligationV1, } from "./lib/long-task-acceptance-reachability.js";
|
|
4
|
+
export type { RepairFrontierInputV1 } from "./lib/long-task-repair-frontier.js";
|
|
3
5
|
export type { BoundaryCheckDecisionV2, BoundaryCheckInputV2, } from "./lib/long-task-boundary-check.js";
|
|
4
6
|
export type { DesignResourceHandoffBundleOptions, DesignResourceHandoffBundleResult, } from "./lib/design-resource-handoff-bundle.js";
|
|
5
7
|
export type { DesignResourceHandoffPreflightV1, DesignResourceHandoffV1, } from "./lib/design-resource-handoff-types.js";
|
|
8
|
+
export type { DesignResourceImplementationFeasibilityIdentityV1, DesignResourceImplementationFeasibilityV1, DesignResourceTechnicalFeasibilityInputV1, } from "./lib/design-resource-implementation-feasibility-types.js";
|
|
6
9
|
export type { DesignResourceHandoffPreflightV2, DesignResourceHandoffV2, DesignResourceObservableRuleManifestV2, DesignResourceSymbolicFactRuleV2, DesignResourceSymbolicNoninterferenceCertificateV2, DesignResourceSymbolicNoninterferenceArtifactV2, DesignResourceSymbolicNoninterferenceDerivedResultV2, DesignResourceSymbolicNoninterferenceFailureWitnessV1, DesignResourceSymbolicNoninterferenceInputBindingV2, DesignResourceSymbolicNoninterferenceProofV2, DesignResourceSymbolicProofObligationV2, } from "./lib/design-resource-symbolic-fact-types.js";
|
|
10
|
+
export type { DesignAuthorityClosureMember, DesignAuthorityClosureSnapshot, DesignAuthorityDiagnostic, DesignAuthorityGeneratedFile, DesignAuthorityIdentityV1, DesignAuthorityInspection, DesignAuthorityKind, DesignAuthorityManifestFile, DesignAuthorityManifestV1, } from "./lib/design-authority-types.js";
|
|
11
|
+
export type { DesignAuthorityConsistentAssessmentV1, DesignAuthorityCrossTaskVarianceV1, DesignAuthorityDeltaAssessmentKind, DesignAuthorityDeltaAssessmentV1, DesignAuthorityDeltaCandidateV1, DesignAuthorityDeltaChangeV1, DesignAuthorityDeltaChangesV1, DesignAuthorityDeltaEvidenceV1, DesignAuthorityDeltaValidationV1, DesignAuthorityTaskOnlyVarianceV1, } from "./lib/design-authority-delta-types.js";
|
|
7
12
|
export type { DesignResourceSymbolicSourceIrCertificateScopeV1, DesignResourceSymbolicSourceIrRegionV1, DesignResourceSymbolicSourceIrV1, } from "./lib/design-resource-symbolic-source-ir-types.js";
|
|
8
13
|
export type { CompiledSymbolicDenotationV1, SymbolicDenotationAxisDomain, SymbolicDenotationComplexityLimits, SymbolicDenotationPredicate, SymbolicExtensionalPointV1, SymbolicPointDenotationV1, } from "./lib/symbolic-denotation-types.js";
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://tiny-context.dev/schemas/design-authority-delta-assessment-v1.schema.json",
|
|
4
|
+
"title": "Design Authority Delta Assessment V1",
|
|
5
|
+
"oneOf": [
|
|
6
|
+
{ "$ref": "#/$defs/consistent" },
|
|
7
|
+
{ "$ref": "#/$defs/taskOnly" },
|
|
8
|
+
{ "$ref": "#/$defs/crossTask" },
|
|
9
|
+
{ "$ref": "#/$defs/candidate" }
|
|
10
|
+
],
|
|
11
|
+
"$defs": {
|
|
12
|
+
"identity": {
|
|
13
|
+
"type": "object",
|
|
14
|
+
"additionalProperties": false,
|
|
15
|
+
"required": ["format_version", "entry_path", "manifest_path", "closure_digest", "revision"],
|
|
16
|
+
"properties": {
|
|
17
|
+
"format_version": { "const": 1 },
|
|
18
|
+
"entry_path": { "const": "DESIGN.md" },
|
|
19
|
+
"manifest_path": {
|
|
20
|
+
"oneOf": [
|
|
21
|
+
{ "type": "null" },
|
|
22
|
+
{ "const": "design_system/authority.manifest.json" }
|
|
23
|
+
]
|
|
24
|
+
},
|
|
25
|
+
"closure_digest": { "type": "string", "pattern": "^sha256:[0-9a-f]{64}$" },
|
|
26
|
+
"revision": {
|
|
27
|
+
"oneOf": [
|
|
28
|
+
{ "type": "null" },
|
|
29
|
+
{ "type": "string", "minLength": 1 }
|
|
30
|
+
]
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"base": {
|
|
35
|
+
"type": "object",
|
|
36
|
+
"required": ["schema_version", "assessment", "based_on"],
|
|
37
|
+
"properties": {
|
|
38
|
+
"schema_version": { "const": "design-authority-delta-assessment-v1" },
|
|
39
|
+
"assessment": {
|
|
40
|
+
"enum": [
|
|
41
|
+
"consistent_with_current_authority",
|
|
42
|
+
"task_local_variance",
|
|
43
|
+
"authority_delta_candidate"
|
|
44
|
+
]
|
|
45
|
+
},
|
|
46
|
+
"based_on": { "$ref": "#/$defs/identity" }
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
"stringSet": {
|
|
50
|
+
"type": "array",
|
|
51
|
+
"items": { "type": "string", "minLength": 1 },
|
|
52
|
+
"uniqueItems": true
|
|
53
|
+
},
|
|
54
|
+
"sourceRefSet": {
|
|
55
|
+
"type": "array",
|
|
56
|
+
"items": {
|
|
57
|
+
"type": "string",
|
|
58
|
+
"minLength": 1,
|
|
59
|
+
"pattern": "^[^\\\\#]+(?:#[^#]+)?$"
|
|
60
|
+
},
|
|
61
|
+
"uniqueItems": true
|
|
62
|
+
},
|
|
63
|
+
"change": {
|
|
64
|
+
"type": "object",
|
|
65
|
+
"additionalProperties": false,
|
|
66
|
+
"required": ["key", "proposal", "rationale"],
|
|
67
|
+
"properties": {
|
|
68
|
+
"key": { "type": "string", "minLength": 1 },
|
|
69
|
+
"proposal": { "type": "string", "minLength": 1 },
|
|
70
|
+
"rationale": { "type": "string", "minLength": 1 }
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
"changes": {
|
|
74
|
+
"type": "object",
|
|
75
|
+
"additionalProperties": false,
|
|
76
|
+
"required": ["tokens", "components", "patterns", "motion", "platforms"],
|
|
77
|
+
"properties": {
|
|
78
|
+
"tokens": { "type": "array", "items": { "$ref": "#/$defs/change" } },
|
|
79
|
+
"components": { "type": "array", "items": { "$ref": "#/$defs/change" } },
|
|
80
|
+
"patterns": { "type": "array", "items": { "$ref": "#/$defs/change" } },
|
|
81
|
+
"motion": { "type": "array", "items": { "$ref": "#/$defs/change" } },
|
|
82
|
+
"platforms": { "type": "array", "items": { "$ref": "#/$defs/change" } }
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
"consistent": {
|
|
86
|
+
"allOf": [
|
|
87
|
+
{ "$ref": "#/$defs/base" },
|
|
88
|
+
{
|
|
89
|
+
"type": "object",
|
|
90
|
+
"additionalProperties": false,
|
|
91
|
+
"required": ["schema_version", "assessment", "based_on", "evidence", "observed_variances"],
|
|
92
|
+
"properties": {
|
|
93
|
+
"schema_version": { "const": "design-authority-delta-assessment-v1" },
|
|
94
|
+
"assessment": { "const": "consistent_with_current_authority" },
|
|
95
|
+
"based_on": { "$ref": "#/$defs/identity" },
|
|
96
|
+
"evidence": {
|
|
97
|
+
"type": "object",
|
|
98
|
+
"additionalProperties": false,
|
|
99
|
+
"required": ["tokens", "components", "rules"],
|
|
100
|
+
"properties": {
|
|
101
|
+
"tokens": { "$ref": "#/$defs/stringSet" },
|
|
102
|
+
"components": { "$ref": "#/$defs/stringSet" },
|
|
103
|
+
"rules": { "$ref": "#/$defs/sourceRefSet" }
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
"observed_variances": { "type": "array", "maxItems": 0 }
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
]
|
|
110
|
+
},
|
|
111
|
+
"varianceBase": {
|
|
112
|
+
"type": "object",
|
|
113
|
+
"required": ["schema_version", "assessment", "based_on", "scope", "reason", "affected_rules", "durability"],
|
|
114
|
+
"properties": {
|
|
115
|
+
"schema_version": { "const": "design-authority-delta-assessment-v1" },
|
|
116
|
+
"assessment": { "const": "task_local_variance" },
|
|
117
|
+
"based_on": { "$ref": "#/$defs/identity" },
|
|
118
|
+
"scope": { "allOf": [{ "$ref": "#/$defs/stringSet" }, { "minItems": 1 }] },
|
|
119
|
+
"reason": { "type": "string", "minLength": 1 },
|
|
120
|
+
"affected_rules": { "allOf": [{ "$ref": "#/$defs/sourceRefSet" }, { "minItems": 1 }] },
|
|
121
|
+
"durability": { "enum": ["task_only", "cross_task_candidate"] }
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
"taskOnly": {
|
|
125
|
+
"allOf": [
|
|
126
|
+
{ "$ref": "#/$defs/varianceBase" },
|
|
127
|
+
{
|
|
128
|
+
"type": "object",
|
|
129
|
+
"additionalProperties": false,
|
|
130
|
+
"required": ["schema_version", "assessment", "based_on", "scope", "reason", "affected_rules", "durability", "precedent"],
|
|
131
|
+
"properties": {
|
|
132
|
+
"schema_version": { "const": "design-authority-delta-assessment-v1" },
|
|
133
|
+
"assessment": { "const": "task_local_variance" },
|
|
134
|
+
"based_on": { "$ref": "#/$defs/identity" },
|
|
135
|
+
"scope": { "$ref": "#/$defs/stringSet" },
|
|
136
|
+
"reason": { "type": "string", "minLength": 1 },
|
|
137
|
+
"affected_rules": { "$ref": "#/$defs/sourceRefSet" },
|
|
138
|
+
"durability": { "const": "task_only" },
|
|
139
|
+
"precedent": { "const": "forbidden" }
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
]
|
|
143
|
+
},
|
|
144
|
+
"crossTask": {
|
|
145
|
+
"allOf": [
|
|
146
|
+
{ "$ref": "#/$defs/varianceBase" },
|
|
147
|
+
{
|
|
148
|
+
"type": "object",
|
|
149
|
+
"additionalProperties": false,
|
|
150
|
+
"required": ["schema_version", "assessment", "based_on", "scope", "reason", "affected_rules", "durability", "required_owner"],
|
|
151
|
+
"properties": {
|
|
152
|
+
"schema_version": { "const": "design-authority-delta-assessment-v1" },
|
|
153
|
+
"assessment": { "const": "task_local_variance" },
|
|
154
|
+
"based_on": { "$ref": "#/$defs/identity" },
|
|
155
|
+
"scope": { "$ref": "#/$defs/stringSet" },
|
|
156
|
+
"reason": { "type": "string", "minLength": 1 },
|
|
157
|
+
"affected_rules": { "$ref": "#/$defs/sourceRefSet" },
|
|
158
|
+
"durability": { "const": "cross_task_candidate" },
|
|
159
|
+
"required_owner": {
|
|
160
|
+
"type": "object",
|
|
161
|
+
"additionalProperties": false,
|
|
162
|
+
"required": ["type", "path"],
|
|
163
|
+
"properties": {
|
|
164
|
+
"type": { "const": "screen_contract" },
|
|
165
|
+
"path": { "type": "string", "pattern": "^project_context/.+\\.md$" }
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
]
|
|
171
|
+
},
|
|
172
|
+
"candidate": {
|
|
173
|
+
"allOf": [
|
|
174
|
+
{ "$ref": "#/$defs/base" },
|
|
175
|
+
{
|
|
176
|
+
"type": "object",
|
|
177
|
+
"additionalProperties": false,
|
|
178
|
+
"required": ["schema_version", "assessment", "based_on", "proposed_changes", "supporting_resources", "representative_scenarios"],
|
|
179
|
+
"properties": {
|
|
180
|
+
"schema_version": { "const": "design-authority-delta-assessment-v1" },
|
|
181
|
+
"assessment": { "const": "authority_delta_candidate" },
|
|
182
|
+
"based_on": { "$ref": "#/$defs/identity" },
|
|
183
|
+
"proposed_changes": { "$ref": "#/$defs/changes" },
|
|
184
|
+
"supporting_resources": { "$ref": "#/$defs/sourceRefSet" },
|
|
185
|
+
"representative_scenarios": { "allOf": [{ "$ref": "#/$defs/stringSet" }, { "minItems": 1 }] }
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
]
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}
|