project-tiny-context-harness 0.8.17 → 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.
Files changed (488) hide show
  1. package/README.md +93 -30
  2. package/assets/README.md +158 -44
  3. package/assets/README.zh-CN.md +88 -29
  4. package/assets/agents/AGENTS_CORE.md +2 -2
  5. package/assets/context_templates/context.toml +6 -1
  6. package/assets/runtime/windows-job-supervisor/formal_process_supervisor_native_helpers.cs +301 -0
  7. package/assets/runtime/windows-job-supervisor/formal_process_supervisor_native_run.cs +197 -0
  8. package/assets/runtime/windows-job-supervisor/formal_process_supervisor_native_types.cs +215 -0
  9. package/assets/runtime/windows-job-supervisor/windows_job_process_supervisor.ps1 +117 -0
  10. package/assets/skills/design-resource-authoring/SKILL.md +6 -3
  11. package/assets/skills/design-resource-authoring/references/authority-delta-assessment.md +52 -0
  12. package/assets/skills/design-resource-authoring/references/downstream-handoff.md +5 -1
  13. package/assets/skills/design-system-authoring/SKILL.md +23 -17
  14. package/assets/skills/design-system-authoring/references/authority-adoption.md +19 -9
  15. package/assets/skills/design-system-authoring/references/open-design-design-system-provider.md +4 -0
  16. package/assets/skills/long-task-workflow/SKILL.md +6 -6
  17. package/assets/skills/long-task-workflow/references/authority-lifecycle.md +10 -4
  18. package/assets/skills/long-task-workflow/references/contract-authoring.md +5 -5
  19. package/assets/skills/long-task-workflow/references/evidence-design.md +14 -3
  20. package/assets/skills/long-task-workflow/references/source-authoring.md +11 -8
  21. package/assets/tools/context_rules.json +53 -0
  22. package/assets/tools/validate_context.py +302 -77
  23. package/dist/cli.js +2 -1
  24. package/dist/commands/context-create.d.ts +1 -0
  25. package/dist/commands/context-create.js +90 -0
  26. package/dist/commands/context-inspect.d.ts +1 -0
  27. package/dist/commands/context-inspect.js +98 -0
  28. package/dist/commands/context-move.d.ts +1 -0
  29. package/dist/commands/context-move.js +78 -0
  30. package/dist/commands/context-register.d.ts +1 -0
  31. package/dist/commands/context-register.js +110 -0
  32. package/dist/commands/context-transaction.d.ts +1 -0
  33. package/dist/commands/context-transaction.js +84 -0
  34. package/dist/commands/context.d.ts +1 -0
  35. package/dist/commands/context.js +36 -0
  36. package/dist/commands/design-authority-delta.d.ts +1 -0
  37. package/dist/commands/design-authority-delta.js +53 -0
  38. package/dist/commands/design-authority.d.ts +1 -0
  39. package/dist/commands/design-authority.js +104 -0
  40. package/dist/commands/design-resource.js +8 -1
  41. package/dist/commands/doctor.d.ts +1 -1
  42. package/dist/commands/doctor.js +61 -3
  43. package/dist/commands/index.js +19 -2
  44. package/dist/commands/long-task-authoring.js +20 -2
  45. package/dist/commands/long-task-workdir.d.ts +2 -0
  46. package/dist/commands/long-task-workdir.js +23 -0
  47. package/dist/commands/long-task.js +75 -6
  48. package/dist/commands/route.d.ts +15 -0
  49. package/dist/commands/route.js +142 -0
  50. package/dist/index.d.ts +3 -13
  51. package/dist/index.js +3 -12
  52. package/dist/lib/cli-exit.d.ts +14 -0
  53. package/dist/lib/cli-exit.js +19 -0
  54. package/dist/lib/context-catalog/catalog-default-footprint.d.ts +3 -0
  55. package/dist/lib/context-catalog/catalog-default-footprint.js +53 -0
  56. package/dist/lib/context-catalog/catalog-diagnostics.d.ts +9 -0
  57. package/dist/lib/context-catalog/catalog-diagnostics.js +34 -0
  58. package/dist/lib/context-catalog/catalog-discovery.d.ts +7 -0
  59. package/dist/lib/context-catalog/catalog-discovery.js +81 -0
  60. package/dist/lib/context-catalog/catalog-load.d.ts +8 -0
  61. package/dist/lib/context-catalog/catalog-load.js +187 -0
  62. package/dist/lib/context-catalog/catalog-path-validation.d.ts +7 -0
  63. package/dist/lib/context-catalog/catalog-path-validation.js +62 -0
  64. package/dist/lib/context-catalog/catalog-paths.d.ts +11 -0
  65. package/dist/lib/context-catalog/catalog-paths.js +41 -0
  66. package/dist/lib/context-catalog/catalog-portable-contract.d.ts +15 -0
  67. package/dist/lib/context-catalog/catalog-portable-contract.js +68 -0
  68. package/dist/lib/context-catalog/catalog-staged-path-safety.d.ts +1 -0
  69. package/dist/lib/context-catalog/catalog-staged-path-safety.js +36 -0
  70. package/dist/lib/context-catalog/catalog-types.d.ts +40 -0
  71. package/dist/lib/context-catalog/catalog-types.js +1 -0
  72. package/dist/lib/context-catalog/catalog-validation.d.ts +9 -0
  73. package/dist/lib/context-catalog/catalog-validation.js +148 -0
  74. package/dist/lib/context-create/context-create-path.d.ts +2 -0
  75. package/dist/lib/context-create/context-create-path.js +30 -0
  76. package/dist/lib/context-create/context-create-template.d.ts +2 -0
  77. package/dist/lib/context-create/context-create-template.js +95 -0
  78. package/dist/lib/context-create/context-create-types.d.ts +28 -0
  79. package/dist/lib/context-create/context-create-types.js +1 -0
  80. package/dist/lib/context-create/context-create-write.d.ts +1 -0
  81. package/dist/lib/context-create/context-create-write.js +85 -0
  82. package/dist/lib/context-create/context-create.d.ts +2 -0
  83. package/dist/lib/context-create/context-create.js +84 -0
  84. package/dist/lib/context-default-footprint.d.ts +2 -3
  85. package/dist/lib/context-default-footprint.js +49 -57
  86. package/dist/lib/context-doctor/context-doctor-types.d.ts +16 -0
  87. package/dist/lib/context-doctor/context-doctor-types.js +15 -0
  88. package/dist/lib/context-doctor/context-doctor.d.ts +2 -0
  89. package/dist/lib/context-doctor/context-doctor.js +130 -0
  90. package/dist/lib/context-graph-snapshot.d.ts +5 -0
  91. package/dist/lib/context-graph-snapshot.js +46 -25
  92. package/dist/lib/context-inspect/context-inspect-projection.d.ts +9 -0
  93. package/dist/lib/context-inspect/context-inspect-projection.js +49 -0
  94. package/dist/lib/context-inspect/context-inspect-render.d.ts +2 -0
  95. package/dist/lib/context-inspect/context-inspect-render.js +29 -0
  96. package/dist/lib/context-inspect/context-inspect-types.d.ts +43 -0
  97. package/dist/lib/context-inspect/context-inspect-types.js +1 -0
  98. package/dist/lib/context-inspect/context-inspect.d.ts +2 -0
  99. package/dist/lib/context-inspect/context-inspect.js +104 -0
  100. package/dist/lib/context-manifest-schema.d.ts +1 -1
  101. package/dist/lib/context-manifest-schema.js +4 -20
  102. package/dist/lib/context-markdown/context-markdown-analysis.d.ts +15 -0
  103. package/dist/lib/context-markdown/context-markdown-analysis.js +245 -0
  104. package/dist/lib/context-markdown/context-markdown-extract.d.ts +7 -0
  105. package/dist/lib/context-markdown/context-markdown-extract.js +114 -0
  106. package/dist/lib/context-markdown/context-markdown-types.d.ts +57 -0
  107. package/dist/lib/context-markdown/context-markdown-types.js +1 -0
  108. package/dist/lib/context-move/context-move-input.d.ts +8 -0
  109. package/dist/lib/context-move/context-move-input.js +17 -0
  110. package/dist/lib/context-move/context-move-literal-scan.d.ts +20 -0
  111. package/dist/lib/context-move/context-move-literal-scan.js +213 -0
  112. package/dist/lib/context-move/context-move-live-validation.d.ts +3 -0
  113. package/dist/lib/context-move/context-move-live-validation.js +56 -0
  114. package/dist/lib/context-move/context-move-markdown-plan.d.ts +22 -0
  115. package/dist/lib/context-move/context-move-markdown-plan.js +39 -0
  116. package/dist/lib/context-move/context-move-projection.d.ts +3 -0
  117. package/dist/lib/context-move/context-move-projection.js +11 -0
  118. package/dist/lib/context-move/context-move-reference-validation.d.ts +11 -0
  119. package/dist/lib/context-move/context-move-reference-validation.js +64 -0
  120. package/dist/lib/context-move/context-move-render.d.ts +2 -0
  121. package/dist/lib/context-move/context-move-render.js +24 -0
  122. package/dist/lib/context-move/context-move-support.d.ts +10 -0
  123. package/dist/lib/context-move/context-move-support.js +88 -0
  124. package/dist/lib/context-move/context-move-transaction-plan.d.ts +24 -0
  125. package/dist/lib/context-move/context-move-transaction-plan.js +108 -0
  126. package/dist/lib/context-move/context-move-types.d.ts +74 -0
  127. package/dist/lib/context-move/context-move-types.js +1 -0
  128. package/dist/lib/context-move/context-move.d.ts +8 -0
  129. package/dist/lib/context-move/context-move.js +180 -0
  130. package/dist/lib/context-mutation/manifest-lossless-patch.d.ts +28 -0
  131. package/dist/lib/context-mutation/manifest-lossless-patch.js +208 -0
  132. package/dist/lib/context-mutation/markdown-link-patch.d.ts +34 -0
  133. package/dist/lib/context-mutation/markdown-link-patch.js +143 -0
  134. package/dist/lib/context-mutation/markdown-link-spans.d.ts +10 -0
  135. package/dist/lib/context-mutation/markdown-link-spans.js +179 -0
  136. package/dist/lib/context-mutation/mutation-cas.d.ts +13 -0
  137. package/dist/lib/context-mutation/mutation-cas.js +365 -0
  138. package/dist/lib/context-mutation/mutation-command-support.d.ts +12 -0
  139. package/dist/lib/context-mutation/mutation-command-support.js +57 -0
  140. package/dist/lib/context-mutation/mutation-commit.d.ts +12 -0
  141. package/dist/lib/context-mutation/mutation-commit.js +89 -0
  142. package/dist/lib/context-mutation/mutation-directories.d.ts +5 -0
  143. package/dist/lib/context-mutation/mutation-directories.js +56 -0
  144. package/dist/lib/context-mutation/mutation-file-state.d.ts +14 -0
  145. package/dist/lib/context-mutation/mutation-file-state.js +137 -0
  146. package/dist/lib/context-mutation/mutation-journal-file-validation.d.ts +1 -0
  147. package/dist/lib/context-mutation/mutation-journal-file-validation.js +106 -0
  148. package/dist/lib/context-mutation/mutation-journal-io.d.ts +5 -0
  149. package/dist/lib/context-mutation/mutation-journal-io.js +55 -0
  150. package/dist/lib/context-mutation/mutation-journal-storage.d.ts +18 -0
  151. package/dist/lib/context-mutation/mutation-journal-storage.js +283 -0
  152. package/dist/lib/context-mutation/mutation-journal-validation-support.d.ts +16 -0
  153. package/dist/lib/context-mutation/mutation-journal-validation-support.js +140 -0
  154. package/dist/lib/context-mutation/mutation-journal-validation.d.ts +3 -0
  155. package/dist/lib/context-mutation/mutation-journal-validation.js +177 -0
  156. package/dist/lib/context-mutation/mutation-journal.d.ts +8 -0
  157. package/dist/lib/context-mutation/mutation-journal.js +111 -0
  158. package/dist/lib/context-mutation/mutation-live-validation.d.ts +3 -0
  159. package/dist/lib/context-mutation/mutation-live-validation.js +51 -0
  160. package/dist/lib/context-mutation/mutation-long-task-guard.d.ts +6 -0
  161. package/dist/lib/context-mutation/mutation-long-task-guard.js +57 -0
  162. package/dist/lib/context-mutation/mutation-recovery.d.ts +4 -0
  163. package/dist/lib/context-mutation/mutation-recovery.js +189 -0
  164. package/dist/lib/context-mutation/mutation-staged-fs.d.ts +5 -0
  165. package/dist/lib/context-mutation/mutation-staged-fs.js +56 -0
  166. package/dist/lib/context-mutation/mutation-types.d.ts +103 -0
  167. package/dist/lib/context-mutation/mutation-types.js +1 -0
  168. package/dist/lib/context-register/context-register-input.d.ts +11 -0
  169. package/dist/lib/context-register/context-register-input.js +43 -0
  170. package/dist/lib/context-register/context-register-render.d.ts +2 -0
  171. package/dist/lib/context-register/context-register-render.js +21 -0
  172. package/dist/lib/context-register/context-register-support.d.ts +6 -0
  173. package/dist/lib/context-register/context-register-support.js +46 -0
  174. package/dist/lib/context-register/context-register-types.d.ts +46 -0
  175. package/dist/lib/context-register/context-register-types.js +1 -0
  176. package/dist/lib/context-register/context-register.d.ts +8 -0
  177. package/dist/lib/context-register/context-register.js +155 -0
  178. package/dist/lib/context-router/context-route-budget.d.ts +15 -0
  179. package/dist/lib/context-router/context-route-budget.js +14 -0
  180. package/dist/lib/context-router/context-route-candidates.d.ts +15 -0
  181. package/dist/lib/context-router/context-route-candidates.js +112 -0
  182. package/dist/lib/context-router/context-route-order.d.ts +6 -0
  183. package/dist/lib/context-router/context-route-order.js +53 -0
  184. package/dist/lib/context-router/context-route-paths.d.ts +16 -0
  185. package/dist/lib/context-router/context-route-paths.js +109 -0
  186. package/dist/lib/context-router/context-route-render.d.ts +2 -0
  187. package/dist/lib/context-router/context-route-render.js +32 -0
  188. package/dist/lib/context-router/context-route-scan.d.ts +18 -0
  189. package/dist/lib/context-router/context-route-scan.js +156 -0
  190. package/dist/lib/context-router/context-route-selection.d.ts +16 -0
  191. package/dist/lib/context-router/context-route-selection.js +72 -0
  192. package/dist/lib/context-router/context-route-terms.d.ts +13 -0
  193. package/dist/lib/context-router/context-route-terms.js +202 -0
  194. package/dist/lib/context-router/context-route-types.d.ts +101 -0
  195. package/dist/lib/context-router/context-route-types.js +1 -0
  196. package/dist/lib/context-router/context-route.d.ts +2 -0
  197. package/dist/lib/context-router/context-route.js +127 -0
  198. package/dist/lib/context-units-migration.d.ts +13 -0
  199. package/dist/lib/context-units-migration.js +217 -0
  200. package/dist/lib/design-authority-binding.d.ts +7 -0
  201. package/dist/lib/design-authority-binding.js +96 -0
  202. package/dist/lib/design-authority-closure.d.ts +3 -0
  203. package/dist/lib/design-authority-closure.js +201 -0
  204. package/dist/lib/design-authority-delta-codec-primitives.d.ts +10 -0
  205. package/dist/lib/design-authority-delta-codec-primitives.js +58 -0
  206. package/dist/lib/design-authority-delta-codec.d.ts +2 -0
  207. package/dist/lib/design-authority-delta-codec.js +193 -0
  208. package/dist/lib/design-authority-delta-types.d.ts +65 -0
  209. package/dist/lib/design-authority-delta-types.js +6 -0
  210. package/dist/lib/design-authority-delta-validation.d.ts +2 -0
  211. package/dist/lib/design-authority-delta-validation.js +16 -0
  212. package/dist/lib/design-authority-digest.d.ts +8 -0
  213. package/dist/lib/design-authority-digest.js +36 -0
  214. package/dist/lib/design-authority-files.d.ts +9 -0
  215. package/dist/lib/design-authority-files.js +62 -0
  216. package/dist/lib/design-authority-format.d.ts +2 -0
  217. package/dist/lib/design-authority-format.js +93 -0
  218. package/dist/lib/design-authority-links.d.ts +10 -0
  219. package/dist/lib/design-authority-links.js +137 -0
  220. package/dist/lib/design-authority-manifest.d.ts +4 -0
  221. package/dist/lib/design-authority-manifest.js +144 -0
  222. package/dist/lib/design-authority-tokens.d.ts +9 -0
  223. package/dist/lib/design-authority-tokens.js +45 -0
  224. package/dist/lib/design-authority-types.d.ts +80 -0
  225. package/dist/lib/design-authority-types.js +23 -0
  226. package/dist/lib/design-md-tool-adapter.d.ts +9 -0
  227. package/dist/lib/design-md-tool-adapter.js +152 -0
  228. package/dist/lib/design-md-tool-normalization.d.ts +7 -0
  229. package/dist/lib/design-md-tool-normalization.js +78 -0
  230. package/dist/lib/design-md-tool-types.d.ts +99 -0
  231. package/dist/lib/design-md-tool-types.js +8 -0
  232. package/dist/lib/design-resource-handoff-input-types.d.ts +1 -1
  233. package/dist/lib/design-resource-handoff-manifest-projection.js +3 -0
  234. package/dist/lib/design-resource-handoff-shape.js +14 -2
  235. package/dist/lib/design-resource-handoff-types.d.ts +3 -0
  236. package/dist/lib/design-resource-handoff-validation.js +16 -4
  237. package/dist/lib/design-resource-implementation-feasibility-validation-support.js +1 -1
  238. package/dist/lib/design-resource-recovery-current.js +22 -0
  239. package/dist/lib/design-resource-recovery-shape.js +64 -7
  240. package/dist/lib/design-resource-recovery-types.d.ts +4 -1
  241. package/dist/lib/design-resource-symbolic-fact-shape.js +7 -1
  242. package/dist/lib/design-resource-symbolic-fact-types.d.ts +3 -0
  243. package/dist/lib/design-resource-symbolic-fact-validation.js +15 -3
  244. package/dist/lib/doctor.d.ts +2 -1
  245. package/dist/lib/doctor.js +29 -1
  246. package/dist/lib/fs.js +1 -1
  247. package/dist/lib/long-task-acceptance-reachability-claims.d.ts +2 -0
  248. package/dist/lib/long-task-acceptance-reachability-claims.js +279 -0
  249. package/dist/lib/long-task-acceptance-reachability-design.d.ts +2 -0
  250. package/dist/lib/long-task-acceptance-reachability-design.js +96 -0
  251. package/dist/lib/long-task-acceptance-reachability-external.d.ts +9 -0
  252. package/dist/lib/long-task-acceptance-reachability-external.js +123 -0
  253. package/dist/lib/long-task-acceptance-reachability-helpers.d.ts +64 -0
  254. package/dist/lib/long-task-acceptance-reachability-helpers.js +473 -0
  255. package/dist/lib/long-task-acceptance-reachability-semantic.d.ts +2 -0
  256. package/dist/lib/long-task-acceptance-reachability-semantic.js +122 -0
  257. package/dist/lib/long-task-acceptance-reachability-types.d.ts +91 -0
  258. package/dist/lib/long-task-acceptance-reachability-types.js +1 -0
  259. package/dist/lib/long-task-acceptance-reachability.d.ts +4 -0
  260. package/dist/lib/long-task-acceptance-reachability.js +115 -0
  261. package/dist/lib/long-task-activation-validation.d.ts +6 -0
  262. package/dist/lib/long-task-activation-validation.js +72 -69
  263. package/dist/lib/long-task-active-authority-lock-context.d.ts +4 -0
  264. package/dist/lib/long-task-active-authority-lock-context.js +29 -0
  265. package/dist/lib/long-task-applicability-identity.d.ts +25 -0
  266. package/dist/lib/long-task-applicability-identity.js +60 -0
  267. package/dist/lib/long-task-authoring-preflight-diagnostics.js +8 -0
  268. package/dist/lib/long-task-authoring-preflight-types.d.ts +2 -0
  269. package/dist/lib/long-task-authoring-preflight-types.js +9 -0
  270. package/dist/lib/long-task-authoring-preflight.js +18 -2
  271. package/dist/lib/long-task-authority-material-diff.js +4 -0
  272. package/dist/lib/long-task-authority-materials.js +19 -0
  273. package/dist/lib/long-task-authority-policy.d.ts +3 -0
  274. package/dist/lib/long-task-authority-policy.js +3 -0
  275. package/dist/lib/long-task-authority-revision-details.js +2 -1
  276. package/dist/lib/long-task-authority-types.d.ts +2 -0
  277. package/dist/lib/long-task-authority.js +2 -0
  278. package/dist/lib/long-task-check-shape.js +6 -1
  279. package/dist/lib/long-task-claim-definitions.js +1 -3
  280. package/dist/lib/long-task-claim-semantic-proof-floor.d.ts +3 -0
  281. package/dist/lib/long-task-claim-semantic-proof-floor.js +78 -0
  282. package/dist/lib/long-task-claims.d.ts +0 -18
  283. package/dist/lib/long-task-claims.js +15 -14
  284. package/dist/lib/long-task-command-process.js +3 -0
  285. package/dist/lib/long-task-compact-authoring.js +3 -0
  286. package/dist/lib/long-task-compact-projections.js +10 -0
  287. package/dist/lib/long-task-complete-delivery-evidence-types.d.ts +38 -0
  288. package/dist/lib/long-task-complete-delivery-evidence-types.js +1 -0
  289. package/dist/lib/long-task-completion-types.d.ts +109 -0
  290. package/dist/lib/long-task-completion-types.js +1 -0
  291. package/dist/lib/long-task-conformance-policy.d.ts +2 -1
  292. package/dist/lib/long-task-conformance-policy.js +11 -4
  293. package/dist/lib/long-task-context-authority-topology.js +6 -4
  294. package/dist/lib/long-task-contract-types.d.ts +52 -1
  295. package/dist/lib/long-task-counterfactual-sandbox.d.ts +7 -1
  296. package/dist/lib/long-task-counterfactual-sandbox.js +86 -6
  297. package/dist/lib/long-task-delivery-compiler-preflight.d.ts +24 -0
  298. package/dist/lib/long-task-delivery-compiler-preflight.js +32 -0
  299. package/dist/lib/long-task-delivery-compiler.d.ts +1 -0
  300. package/dist/lib/long-task-delivery-compiler.js +59 -44
  301. package/dist/lib/long-task-delivery-parser.d.ts +3 -0
  302. package/dist/lib/long-task-delivery-parser.js +26 -8
  303. package/dist/lib/long-task-delivery-types.d.ts +2 -0
  304. package/dist/lib/long-task-delivery-types.js +2 -0
  305. package/dist/lib/long-task-delivery-validation.d.ts +6 -1
  306. package/dist/lib/long-task-delivery-validation.js +19 -4
  307. package/dist/lib/long-task-design-feasibility-binding.d.ts +1 -0
  308. package/dist/lib/long-task-design-feasibility-binding.js +3 -3
  309. package/dist/lib/long-task-design-feasibility-source-closure.js +11 -2
  310. package/dist/lib/long-task-design-obligation.d.ts +50 -0
  311. package/dist/lib/long-task-design-obligation.js +99 -0
  312. package/dist/lib/long-task-design-resource-handoff.d.ts +3 -1
  313. package/dist/lib/long-task-design-resource-handoff.js +36 -12
  314. package/dist/lib/long-task-design-resource-method-binding.js +12 -0
  315. package/dist/lib/long-task-effective-external-takeover.d.ts +15 -0
  316. package/dist/lib/long-task-effective-external-takeover.js +109 -0
  317. package/dist/lib/long-task-effective-external-ui-takeover.d.ts +5 -0
  318. package/dist/lib/long-task-effective-external-ui-takeover.js +117 -0
  319. package/dist/lib/long-task-evidence-capability-codec.js +91 -0
  320. package/dist/lib/long-task-evidence-capability-runtime.js +62 -14
  321. package/dist/lib/long-task-evidence-capability-types.d.ts +3 -2
  322. package/dist/lib/long-task-evidence-v2.d.ts +6 -1
  323. package/dist/lib/long-task-evidence-v2.js +253 -170
  324. package/dist/lib/long-task-execution-observation.d.ts +7 -0
  325. package/dist/lib/long-task-execution-observation.js +21 -4
  326. package/dist/lib/long-task-expected-authority.d.ts +4 -0
  327. package/dist/lib/long-task-expected-authority.js +126 -0
  328. package/dist/lib/long-task-external-confirmation-artifacts.d.ts +9 -0
  329. package/dist/lib/long-task-external-confirmation-artifacts.js +138 -0
  330. package/dist/lib/long-task-external-confirmation-attestation.d.ts +20 -0
  331. package/dist/lib/long-task-external-confirmation-attestation.js +115 -0
  332. package/dist/lib/long-task-external-confirmation-challenge.d.ts +23 -0
  333. package/dist/lib/long-task-external-confirmation-challenge.js +164 -0
  334. package/dist/lib/long-task-external-confirmation-context.d.ts +14 -0
  335. package/dist/lib/long-task-external-confirmation-context.js +53 -0
  336. package/dist/lib/long-task-external-confirmation-evaluation.d.ts +11 -0
  337. package/dist/lib/long-task-external-confirmation-evaluation.js +454 -0
  338. package/dist/lib/long-task-external-confirmation-expected.d.ts +8 -0
  339. package/dist/lib/long-task-external-confirmation-expected.js +200 -0
  340. package/dist/lib/long-task-external-confirmation-identity.d.ts +10 -0
  341. package/dist/lib/long-task-external-confirmation-identity.js +77 -0
  342. package/dist/lib/long-task-external-confirmation-plan.d.ts +25 -0
  343. package/dist/lib/long-task-external-confirmation-plan.js +148 -0
  344. package/dist/lib/long-task-external-confirmation-preparation.d.ts +4 -0
  345. package/dist/lib/long-task-external-confirmation-preparation.js +100 -0
  346. package/dist/lib/long-task-external-confirmation-shape.d.ts +8 -0
  347. package/dist/lib/long-task-external-confirmation-shape.js +387 -0
  348. package/dist/lib/long-task-external-confirmation-state.d.ts +10 -0
  349. package/dist/lib/long-task-external-confirmation-state.js +109 -0
  350. package/dist/lib/long-task-external-confirmation-types.d.ts +195 -0
  351. package/dist/lib/long-task-external-confirmation-types.js +1 -0
  352. package/dist/lib/long-task-final-integrity.d.ts +2 -0
  353. package/dist/lib/long-task-final-integrity.js +21 -10
  354. package/dist/lib/long-task-final-v2.d.ts +7 -2
  355. package/dist/lib/long-task-final-v2.js +179 -55
  356. package/dist/lib/long-task-finalization-identity.d.ts +27 -0
  357. package/dist/lib/long-task-finalization-identity.js +58 -0
  358. package/dist/lib/long-task-finding-context.d.ts +1 -1
  359. package/dist/lib/long-task-finding-context.js +139 -13
  360. package/dist/lib/long-task-freshness.d.ts +27 -0
  361. package/dist/lib/long-task-freshness.js +128 -5
  362. package/dist/lib/long-task-git.js +3 -3
  363. package/dist/lib/long-task-material-input-closure.d.ts +3 -0
  364. package/dist/lib/long-task-material-input-closure.js +92 -0
  365. package/dist/lib/long-task-obligation-authority-resolution.d.ts +12 -0
  366. package/dist/lib/long-task-obligation-authority-resolution.js +57 -0
  367. package/dist/lib/long-task-obligation-semantic-identity.d.ts +16 -0
  368. package/dist/lib/long-task-obligation-semantic-identity.js +116 -0
  369. package/dist/lib/long-task-observation-authority.d.ts +11 -0
  370. package/dist/lib/long-task-observation-authority.js +137 -6
  371. package/dist/lib/long-task-process-table.d.ts +2 -5
  372. package/dist/lib/long-task-process-table.js +21 -53
  373. package/dist/lib/long-task-process-tree.d.ts +0 -1
  374. package/dist/lib/long-task-process-tree.js +24 -54
  375. package/dist/lib/long-task-proof-adequacy.d.ts +12 -0
  376. package/dist/lib/long-task-proof-adequacy.js +57 -0
  377. package/dist/lib/long-task-proof-capability-floor.d.ts +6 -0
  378. package/dist/lib/long-task-proof-capability-floor.js +137 -0
  379. package/dist/lib/long-task-repair-frontier-checks.d.ts +8 -0
  380. package/dist/lib/long-task-repair-frontier-checks.js +93 -0
  381. package/dist/lib/long-task-repair-frontier-groups.d.ts +2 -0
  382. package/dist/lib/long-task-repair-frontier-groups.js +64 -0
  383. package/dist/lib/long-task-repair-frontier-utils.d.ts +6 -0
  384. package/dist/lib/long-task-repair-frontier-utils.js +27 -0
  385. package/dist/lib/long-task-repair-frontier.d.ts +14 -0
  386. package/dist/lib/long-task-repair-frontier.js +132 -0
  387. package/dist/lib/long-task-risk.d.ts +3 -2
  388. package/dist/lib/long-task-risk.js +73 -24
  389. package/dist/lib/long-task-root-shape.js +148 -8
  390. package/dist/lib/long-task-runner-freeze.d.ts +2 -1
  391. package/dist/lib/long-task-runner-freeze.js +23 -8
  392. package/dist/lib/long-task-runtime-types.d.ts +34 -40
  393. package/dist/lib/long-task-semantic-assurance-policy.js +2 -11
  394. package/dist/lib/long-task-semantic-contract-types.d.ts +2 -1
  395. package/dist/lib/long-task-semantic-drift-migration.js +48 -2
  396. package/dist/lib/long-task-semantic-fact-binding-types.d.ts +20 -0
  397. package/dist/lib/long-task-semantic-fact-closure.d.ts +5 -1
  398. package/dist/lib/long-task-semantic-fact-closure.js +33 -5
  399. package/dist/lib/long-task-semantic-fact-contract-closure.js +176 -1
  400. package/dist/lib/long-task-semantic-fact-contract-proofs.js +18 -1
  401. package/dist/lib/long-task-semantic-fact-input-closure.d.ts +16 -2
  402. package/dist/lib/long-task-semantic-fact-input-closure.js +138 -15
  403. package/dist/lib/long-task-semantic-fact-provenance-closure.js +1 -1
  404. package/dist/lib/long-task-semantic-fact-shape.d.ts +2 -1
  405. package/dist/lib/long-task-semantic-fact-shape.js +35 -1
  406. package/dist/lib/long-task-semantic-proof-adequacy.d.ts +2 -0
  407. package/dist/lib/long-task-semantic-proof-adequacy.js +19 -0
  408. package/dist/lib/long-task-semantic-proof-profile.d.ts +5 -0
  409. package/dist/lib/long-task-semantic-proof-profile.js +187 -0
  410. package/dist/lib/long-task-shape-primitives.d.ts +1 -1
  411. package/dist/lib/long-task-shape-primitives.js +5 -0
  412. package/dist/lib/long-task-source-anchors.d.ts +10 -0
  413. package/dist/lib/long-task-source-anchors.js +102 -0
  414. package/dist/lib/long-task-source-authority-types.d.ts +46 -0
  415. package/dist/lib/long-task-source-claim-validation.js +36 -0
  416. package/dist/lib/long-task-source-conservation-facts.d.ts +8 -0
  417. package/dist/lib/long-task-source-conservation-facts.js +57 -0
  418. package/dist/lib/long-task-source-conservation-types.d.ts +34 -0
  419. package/dist/lib/long-task-source-conservation-types.js +1 -0
  420. package/dist/lib/long-task-source-conservation.d.ts +7 -0
  421. package/dist/lib/long-task-source-conservation.js +110 -0
  422. package/dist/lib/long-task-source-fragments.d.ts +6 -0
  423. package/dist/lib/long-task-source-fragments.js +219 -0
  424. package/dist/lib/long-task-source-projection-resolution.d.ts +5 -0
  425. package/dist/lib/long-task-source-projection-resolution.js +57 -0
  426. package/dist/lib/long-task-source-projection-validation.d.ts +17 -0
  427. package/dist/lib/long-task-source-projection-validation.js +154 -0
  428. package/dist/lib/long-task-source-shape.js +14 -6
  429. package/dist/lib/long-task-source-supersession.d.ts +5 -0
  430. package/dist/lib/long-task-source-supersession.js +138 -0
  431. package/dist/lib/long-task-stage-policy.d.ts +7 -2
  432. package/dist/lib/long-task-stage-policy.js +67 -23
  433. package/dist/lib/long-task-state.d.ts +18 -4
  434. package/dist/lib/long-task-state.js +319 -33
  435. package/dist/lib/long-task-static-observation-freeze.js +4 -3
  436. package/dist/lib/long-task-status-projection.d.ts +3 -1
  437. package/dist/lib/long-task-status-projection.js +44 -13
  438. package/dist/lib/long-task-status-v2.d.ts +10 -6
  439. package/dist/lib/long-task-status-v2.js +70 -58
  440. package/dist/lib/long-task-target-policy.d.ts +8 -3
  441. package/dist/lib/long-task-target-policy.js +40 -9
  442. package/dist/lib/long-task-terminal-finalization.d.ts +12 -0
  443. package/dist/lib/long-task-terminal-finalization.js +190 -0
  444. package/dist/lib/long-task-ui-design-policy.js +15 -4
  445. package/dist/lib/long-task-verifier-counterfactuals.d.ts +11 -0
  446. package/dist/lib/long-task-verifier-counterfactuals.js +96 -0
  447. package/dist/lib/long-task-verifier-execution.d.ts +9 -0
  448. package/dist/lib/long-task-verifier-execution.js +67 -0
  449. package/dist/lib/long-task-verifier-identity.js +16 -5
  450. package/dist/lib/long-task-verifier-v2.js +52 -65
  451. package/dist/lib/long-task-windows-job-supervisor-helper.d.ts +1 -0
  452. package/dist/lib/long-task-windows-job-supervisor-helper.js +104 -0
  453. package/dist/lib/long-task-windows-job-supervisor-protocol.d.ts +28 -0
  454. package/dist/lib/long-task-windows-job-supervisor-protocol.js +124 -0
  455. package/dist/lib/long-task-windows-job-supervisor-result.d.ts +11 -0
  456. package/dist/lib/long-task-windows-job-supervisor-result.js +152 -0
  457. package/dist/lib/long-task-windows-job-supervisor.d.ts +2 -0
  458. package/dist/lib/long-task-windows-job-supervisor.js +126 -0
  459. package/dist/lib/long-task-workspace-scope.d.ts +1 -0
  460. package/dist/lib/long-task-workspace-scope.js +4 -1
  461. package/dist/lib/long-task-workspace.d.ts +1 -0
  462. package/dist/lib/long-task-workspace.js +10 -0
  463. package/dist/lib/migrations.js +43 -2
  464. package/dist/lib/repository-path-safety.d.ts +1 -0
  465. package/dist/lib/repository-path-safety.js +3 -3
  466. package/dist/lib/semantic-fact-input-shape.d.ts +7 -2
  467. package/dist/lib/semantic-fact-input-shape.js +25 -1
  468. package/dist/lib/semantic-fact-inventory-types.d.ts +8 -2
  469. package/dist/lib/semantic-fact-policy-census.d.ts +1 -1
  470. package/dist/lib/semantic-fact-policy-census.js +5 -2
  471. package/dist/lib/semantic-fact-policy.d.ts +1 -1
  472. package/dist/lib/semantic-fact-policy.js +2 -2
  473. package/dist/lib/semantic-fact-proof-shape.d.ts +1 -1
  474. package/dist/lib/semantic-fact-property-shape.d.ts +1 -1
  475. package/dist/lib/validators.d.ts +3 -0
  476. package/dist/lib/validators.js +45 -157
  477. package/dist/public-api-core.d.ts +12 -0
  478. package/dist/public-api-core.js +12 -0
  479. package/dist/public-api-long-task.d.ts +10 -0
  480. package/dist/public-api-long-task.js +10 -0
  481. package/dist/public-types.d.ts +5 -1
  482. package/dist/schemas/design-authority-delta-assessment-v1.schema.json +191 -0
  483. package/dist/schemas/long-task-delivery-v2/long-task-delivery-v2.schema.json +166 -2
  484. package/dist/schemas/long-task-external-confirmation-record-v1.schema.json +155 -0
  485. package/dist/schemas/long-task-external-confirmation-record-v2.schema.json +209 -0
  486. package/migrations/README.md +99 -0
  487. package/package.json +7 -5
  488. package/source-mappings.yaml +18 -0
@@ -0,0 +1,57 @@
1
+ import { generateClaims, generateGlobalClaims, } from "./long-task-claim-definitions.js";
2
+ import { assertionCapabilityFloor } from "./long-task-proof-capability-floor.js";
3
+ import { claimSemanticCapabilityFloor } from "./long-task-claim-semantic-proof-floor.js";
4
+ import { resolveExpectedAuthority } from "./long-task-expected-authority.js";
5
+ import { validateSemanticFactProofFloors } from "./long-task-semantic-proof-adequacy.js";
6
+ export { externalClaimCapabilityFloor } from "./long-task-proof-capability-floor.js";
7
+ export function proofAdequacyCheckKey(outcomeKey, checkKey) {
8
+ return `${outcomeKey ?? "GLOBAL"}:${checkKey}`;
9
+ }
10
+ export function validateLongTaskProofAdequacy(contract, manifest, expectationsByCheck) {
11
+ validateSemanticFactProofFloors(manifest);
12
+ const result = {};
13
+ const globalClaims = new Map(generateGlobalClaims(contract.global).map((claim) => [
14
+ claim.local_key,
15
+ claim,
16
+ ]));
17
+ for (const check of contract.global.acceptance.checks)
18
+ result[proofAdequacyCheckKey(null, check.key)] = validateCheck(contract, null, check, globalClaims, manifest, expectationsByCheck.get(check.key) ?? []);
19
+ for (const outcome of contract.outcomes) {
20
+ const claims = new Map(generateClaims(outcome).map((claim) => [claim.local_key, claim]));
21
+ for (const check of outcome.acceptance.checks)
22
+ result[proofAdequacyCheckKey(outcome.key, check.key)] = validateCheck(contract, outcome.key, check, claims, manifest, expectationsByCheck.get(check.key) ?? []);
23
+ }
24
+ return result;
25
+ }
26
+ function validateCheck(contract, outcomeKey, check, claims, manifest, expectations) {
27
+ const assertions = [
28
+ ...check.positive_assertions,
29
+ ...check.negative_assertions,
30
+ ];
31
+ const claimBearing = assertions.filter((assertion) => assertion.claims.length);
32
+ const expectedAuthorityRefs = {};
33
+ const requiredCapabilities = {};
34
+ for (const assertion of claimBearing) {
35
+ const claimRef = assertion.claims[0];
36
+ const claim = claims.get(claimRef);
37
+ if (!claim)
38
+ fail("proof_adequacy_claim_unknown", `${outcomeKey ?? "GLOBAL"}:${check.key}:${assertion.key}:${claimRef}`);
39
+ expectedAuthorityRefs[assertion.key] = resolveExpectedAuthority(contract, outcomeKey, assertion, manifest, expectations);
40
+ const required = assertionCapabilityFloor(contract, outcomeKey, check, assertion, claim, expectations, claimSemanticCapabilityFloor(contract, manifest, outcomeKey, claimRef, assertion.applicability_ref ?? null, "kind" in claim ? claim.kind : undefined, "required_proof_surfaces" in claim ? claim.required_proof_surfaces : []));
41
+ requiredCapabilities[assertion.key] = [...required].sort();
42
+ const missing = [...required].filter((capability) => !assertion.evidence_capabilities.includes(capability));
43
+ if (missing.length)
44
+ fail("proof_adequacy_capability_missing", `${outcomeKey ?? "GLOBAL"}:${check.key}:${assertion.key}:${missing.sort().join(",")}`);
45
+ if (required.has("population_coverage") &&
46
+ assertion.operator !== "set_equals")
47
+ fail("population_coverage_set_equality_required", `${outcomeKey ?? "GLOBAL"}:${check.key}:${assertion.key}`);
48
+ }
49
+ return {
50
+ completion_role: claimBearing.length ? "semantic" : "diagnostic",
51
+ expected_authority_refs: expectedAuthorityRefs,
52
+ required_evidence_capabilities: requiredCapabilities,
53
+ };
54
+ }
55
+ function fail(code, detail) {
56
+ throw new Error(`delivery_contract_invalid:${code}:${detail}`);
57
+ }
@@ -0,0 +1,6 @@
1
+ import type { DeliveryAssertionV2, DeliveryCheckV2, DeliveryContractV2, EvidenceCapabilityV2, ProductClaimV2, SemanticFactExpectationV2 } from "./long-task-delivery-types.js";
2
+ export declare function assertionCapabilityFloor(contract: DeliveryContractV2, outcomeKey: string | null, check: DeliveryCheckV2, assertion: DeliveryAssertionV2, claim: ProductClaimV2 | {
3
+ kind?: string;
4
+ local_key: string;
5
+ }, expectations: SemanticFactExpectationV2[], semanticClaimFloor?: ReadonlySet<EvidenceCapabilityV2>): Set<EvidenceCapabilityV2>;
6
+ export declare function externalClaimCapabilityFloor(contract: DeliveryContractV2, outcomeKey: string | null, localClaim: string, proofSurface: DeliveryCheckV2["proof_surface"], applicabilityRef: string | null, checkKey?: string | null): Set<EvidenceCapabilityV2>;
@@ -0,0 +1,137 @@
1
+ import { controlFieldFacts } from "./long-task-control-fields.js";
2
+ const CONTROL_EXISTS_FIELDS = new Set([
3
+ "surface",
4
+ "region",
5
+ "location",
6
+ "control_type",
7
+ "label_content",
8
+ "visibility",
9
+ ]);
10
+ const CONTROL_STATE_FIELDS = new Set([
11
+ "availability",
12
+ "default_value",
13
+ "loading",
14
+ "empty",
15
+ "failure",
16
+ "permission",
17
+ "feedback",
18
+ "accessibility",
19
+ ]);
20
+ const CONTROL_PRODUCT_EFFECT_FIELDS = new Set([
21
+ "user_task",
22
+ "trigger",
23
+ "input",
24
+ "validation",
25
+ "interaction",
26
+ "navigation_result",
27
+ "success",
28
+ "recovery",
29
+ ]);
30
+ export function assertionCapabilityFloor(contract, outcomeKey, check, assertion, claim, expectations, semanticClaimFloor = new Set()) {
31
+ const result = externalClaimCapabilityFloor(contract, outcomeKey, assertion.claims[0], check.proof_surface, assertion.applicability_ref ?? null, check.key);
32
+ if (assertion.operator === "exists")
33
+ result.add("presence");
34
+ if ("kind" in claim && claim.kind === "result")
35
+ result.add("target_runtime");
36
+ addControlCapabilityFloor(result, contract, outcomeKey, claim);
37
+ addProofSurfaceFloor(result, check.proof_surface);
38
+ if (check.journey_roles.includes("recovery")) {
39
+ result.add("failure_injection");
40
+ result.add("recovery");
41
+ }
42
+ const outcome = outcomeKey
43
+ ? contract.outcomes.find((item) => item.key === outcomeKey)
44
+ : null;
45
+ if (outcome?.acceptance.population?.check_key === check.key &&
46
+ outcome.acceptance.population.claims.includes(assertion.claims[0]))
47
+ result.add("population_coverage");
48
+ if (assertion.evidence_capabilities.includes("visual_render") ||
49
+ assertion.evidence_capabilities.includes("design_conformance")) {
50
+ result.add("visual_render");
51
+ result.add("design_conformance");
52
+ }
53
+ const semantic = expectations.find((item) => item.assertion_ref === assertion.key);
54
+ if (semantic)
55
+ for (const capability of semanticFactCapabilityFloor(semantic, contract))
56
+ result.add(capability);
57
+ for (const capability of semanticClaimFloor)
58
+ result.add(capability);
59
+ return result;
60
+ }
61
+ export function externalClaimCapabilityFloor(contract, outcomeKey, localClaim, proofSurface, applicabilityRef, checkKey = null) {
62
+ const result = new Set();
63
+ if (localClaim === "result")
64
+ result.add("target_runtime");
65
+ addExternalControlCapabilityFloor(result, contract, outcomeKey, localClaim);
66
+ addProofSurfaceFloor(result, proofSurface);
67
+ const profile = applicabilityRef
68
+ ? (outcomeKey
69
+ ? contract.outcomes.find((item) => item.key === outcomeKey)
70
+ ?.applicability
71
+ : contract.global.applicability)?.find((item) => item.key === applicabilityRef)
72
+ : null;
73
+ if (profile?.journey_role === "recovery") {
74
+ result.add("failure_injection");
75
+ result.add("recovery");
76
+ }
77
+ const outcome = outcomeKey
78
+ ? contract.outcomes.find((item) => item.key === outcomeKey)
79
+ : null;
80
+ if (outcome?.acceptance.population &&
81
+ (!checkKey || outcome.acceptance.population.check_key === checkKey) &&
82
+ outcome.acceptance.population.claims.includes(localClaim))
83
+ result.add("population_coverage");
84
+ return result;
85
+ }
86
+ function addControlCapabilityFloor(result, contract, outcomeKey, claim) {
87
+ if (!("kind" in claim) || claim.kind !== "control" || !outcomeKey)
88
+ return;
89
+ addSpecifiedControlFloor(result, contract, outcomeKey, claim.local_key);
90
+ }
91
+ function addExternalControlCapabilityFloor(result, contract, outcomeKey, localClaim) {
92
+ if (!localClaim.startsWith("control.") || !outcomeKey)
93
+ return;
94
+ addSpecifiedControlFloor(result, contract, outcomeKey, localClaim);
95
+ }
96
+ function addSpecifiedControlFloor(result, contract, outcomeKey, localClaim) {
97
+ const field = localClaim.split(".").at(-1);
98
+ if (!controlClaimSpecified(contract, outcomeKey, localClaim))
99
+ return;
100
+ if (CONTROL_EXISTS_FIELDS.has(field))
101
+ result.add("presence");
102
+ if (CONTROL_STATE_FIELDS.has(field)) {
103
+ result.add("interaction_trace");
104
+ result.add("state_delta");
105
+ }
106
+ if (field === "permission") {
107
+ result.add("input_variation");
108
+ result.add("distinct_identity");
109
+ result.add("data_state");
110
+ result.add("target_runtime");
111
+ }
112
+ if (CONTROL_PRODUCT_EFFECT_FIELDS.has(field)) {
113
+ result.add("interaction_trace");
114
+ result.add("input_variation");
115
+ result.add("state_delta");
116
+ }
117
+ }
118
+ function addProofSurfaceFloor(result, proofSurface) {
119
+ if (proofSurface === "implementation_structure")
120
+ result.add("presence");
121
+ if (proofSurface === "data_state")
122
+ result.add("data_state");
123
+ if (proofSurface === "population_coverage")
124
+ result.add("population_coverage");
125
+ }
126
+ function semanticFactCapabilityFloor(expectation, contract) {
127
+ const outcome = contract.outcomes.find((item) => item.key === expectation.outcome_ref);
128
+ const binding = outcome?.semantic_fact_bindings.proofs.find((item) => item.proof_ref === expectation.proof_ref);
129
+ return new Set(binding?.evidence_capabilities ?? []);
130
+ }
131
+ function controlClaimSpecified(contract, outcomeKey, localClaim) {
132
+ const outcome = contract.outcomes.find((item) => item.key === outcomeKey);
133
+ const [, controlKey, field] = localClaim.split(".");
134
+ const control = outcome.product.controls.find((item) => item.key === controlKey);
135
+ return Boolean(control &&
136
+ controlFieldFacts(control).some((item) => item.claim_field === field && item.state === "specified"));
137
+ }
@@ -0,0 +1,8 @@
1
+ import type { CompiledCheckV2, CompiledDeliveryContractV2, ProgressRecordV2, RepairFrontierCheckV1, RepairFrontierSessionV1, WorkspaceManifestV2 } from "./long-task-delivery-types.js";
2
+ export declare function checkDependencyPatterns(compiled: CompiledDeliveryContractV2, check: CompiledCheckV2): string[];
3
+ export declare function checkDependencyPatternsForBinding(check: CompiledCheckV2, bindingRef: string): string[];
4
+ export declare function freshDiagnosticEvidence(compiled: CompiledDeliveryContractV2, manifest: WorkspaceManifestV2, progress: Record<string, ProgressRecordV2>, selectedCheckRefs: Set<string>): Map<string, string>;
5
+ export declare function rerunSessions(checks: RepairFrontierCheckV1[]): RepairFrontierSessionV1[];
6
+ export declare function authorityPaths(compiled: CompiledDeliveryContractV2): string[];
7
+ export declare function allChecks(compiled: CompiledDeliveryContractV2): CompiledCheckV2[];
8
+ export declare function checkObligationRefs(check: CompiledCheckV2): string[];
@@ -0,0 +1,93 @@
1
+ import { progressRecordFresh } from "./long-task-progress.js";
2
+ import { checkRef, unique } from "./long-task-repair-frontier-utils.js";
3
+ export function checkDependencyPatterns(compiled, check) {
4
+ const outcome = check.outcome_key
5
+ ? compiled.outcomes.find((item) => item.key === check.outcome_key)
6
+ : null;
7
+ const direct = [
8
+ ...check.input_paths,
9
+ ...check.verification_inputs,
10
+ ...check.expected_output_paths,
11
+ ...Object.keys(check.runner.frozen_files),
12
+ ...check.observation_authorities.flatMap((authority) => authority.carrier_refs.flatMap((carrier) => carrier.carrier_paths)),
13
+ ];
14
+ if (outcome)
15
+ direct.push(...outcome.product.owner.path_globs, ...outcome.technical.expected_change_paths, ...outcome.technical.allowed_support_paths, ...outcome.technical.bindings.flatMap((binding) => binding.kind === "file" || binding.kind === "path_glob"
16
+ ? [binding.target, ...binding.carrier_paths]
17
+ : binding.carrier_paths));
18
+ else
19
+ for (const control of compiled.global.acceptance.counterfactual_controls) {
20
+ if (control.check_key !== check.key)
21
+ continue;
22
+ direct.push(...bindingPatterns(compiled, control.binding_ref));
23
+ }
24
+ return unique(direct);
25
+ }
26
+ export function checkDependencyPatternsForBinding(check, bindingRef) {
27
+ return unique(check.observation_authorities
28
+ .flatMap((authority) => authority.carrier_refs)
29
+ .filter((carrier) => carrier.binding_ref === bindingRef)
30
+ .flatMap((carrier) => carrier.carrier_paths));
31
+ }
32
+ export function freshDiagnosticEvidence(compiled, manifest, progress, selectedCheckRefs) {
33
+ const result = new Map();
34
+ for (const check of allChecks(compiled)) {
35
+ const record = progress[check.internal_id];
36
+ if (!record ||
37
+ selectedCheckRefs.has(checkRef(check)) ||
38
+ !progressRecordFresh(record, compiled, manifest, check))
39
+ continue;
40
+ result.set(checkRef(check), `progress:${checkRef(check)}:${record.result}:${record.completed_at}`);
41
+ }
42
+ return result;
43
+ }
44
+ export function rerunSessions(checks) {
45
+ const groups = new Map();
46
+ for (const check of checks) {
47
+ const group = groups.get(check.raw_execution_identity);
48
+ if (group)
49
+ group.push(check);
50
+ else
51
+ groups.set(check.raw_execution_identity, [check]);
52
+ }
53
+ return [...groups.entries()]
54
+ .sort(([left], [right]) => left.localeCompare(right))
55
+ .map(([identity, rows]) => ({
56
+ raw_execution_identity: identity,
57
+ check_refs: unique(rows.map((row) => row.check_ref)),
58
+ obligation_refs: unique(rows.flatMap((row) => row.obligation_refs)),
59
+ }));
60
+ }
61
+ export function authorityPaths(compiled) {
62
+ return unique([
63
+ compiled.contract_file,
64
+ ...Object.keys(compiled.contract_files),
65
+ ...Object.keys(compiled.source_hashes),
66
+ ...compiled.context_snapshot.files,
67
+ ...compiled.task.source_paths,
68
+ compiled.semantic_fact_manifest.source_path,
69
+ ]);
70
+ }
71
+ export function allChecks(compiled) {
72
+ return [
73
+ ...compiled.global.acceptance.checks,
74
+ ...compiled.outcomes.flatMap((outcome) => outcome.acceptance.checks),
75
+ ];
76
+ }
77
+ export function checkObligationRefs(check) {
78
+ return unique([
79
+ ...check.semantic_fact_expectations.map((expectation) => expectation.proof_ref),
80
+ ...check.observation_authorities.map((authority) => authority.obligation_ref),
81
+ ]);
82
+ }
83
+ function bindingPatterns(compiled, bindingRef) {
84
+ const [outcomeKey, bindingKey] = bindingRef.split(".");
85
+ const binding = compiled.outcomes
86
+ .find((outcome) => outcome.key === outcomeKey)
87
+ ?.technical.bindings.find((candidate) => candidate.key === bindingKey);
88
+ if (!binding)
89
+ return [];
90
+ return binding.kind === "file" || binding.kind === "path_glob"
91
+ ? [binding.target, ...binding.carrier_paths]
92
+ : binding.carrier_paths;
93
+ }
@@ -0,0 +1,2 @@
1
+ import type { LongTaskFindingV2, RepairFrontierCheckV1, RepairFrontierGroupV1 } from "./long-task-delivery-types.js";
2
+ export declare function groupRepairFindings(findings: LongTaskFindingV2[], checks: RepairFrontierCheckV1[], stillValidByCheck: Map<string, string>): RepairFrontierGroupV1[];
@@ -0,0 +1,64 @@
1
+ import { intersects, normalizedClaimRefs, rootCauseKey, unique, } from "./long-task-repair-frontier-utils.js";
2
+ export function groupRepairFindings(findings, checks, stillValidByCheck) {
3
+ const grouped = new Map();
4
+ for (const finding of findings) {
5
+ const root = rootCauseKey(finding);
6
+ const group = grouped.get(root);
7
+ if (group)
8
+ group.push(finding);
9
+ else
10
+ grouped.set(root, [finding]);
11
+ }
12
+ return [...grouped.entries()]
13
+ .sort(([left], [right]) => left.localeCompare(right))
14
+ .map(([root, rows]) => repairFrontierGroup(root, rows, checks, stillValidByCheck));
15
+ }
16
+ function repairFrontierGroup(root, rows, checks, stillValidByCheck) {
17
+ const matchingChecks = checks.filter((check) => rows.some((row) => findingMatchesCheck(row, check)));
18
+ return {
19
+ root_cause_key: root,
20
+ finding_codes: unique(rows.map((row) => row.code)),
21
+ source_fragment_refs: unique(rows.flatMap((row) => row.source_fragment_refs ?? [])),
22
+ affected_fact_refs: unique(rows.flatMap((row) => row.fact_refs ?? [])),
23
+ affected_proof_obligation_refs: unique(rows.flatMap((row) => row.proof_obligation_refs ?? [])),
24
+ affected_claim_refs: unique(rows.flatMap((row) => normalizedClaimRefs(row))),
25
+ expected_authority_refs: unique(rows.flatMap((row) => row.expected_authority_refs ?? [])),
26
+ actual_evidence_refs: unique(rows.flatMap((row) => row.actual_evidence_refs ?? [])),
27
+ suggested_implementation_owners: unique(rows.flatMap((row) => row.implementation_owner ? [row.implementation_owner.label] : [])),
28
+ suggested_owner_paths: unique(rows.flatMap((row) => row.implementation_owner?.path_globs ?? row.owner_paths ?? [])),
29
+ verification_owners: unique(rows.flatMap((row) => verificationOwnerRefs(row))),
30
+ invalidation_reasons: unique(rows.flatMap((row) => row.invalidation_reasons ?? [row.code])),
31
+ rerun_obligation_refs: unique(rows.flatMap((row) => row.rerun_obligation_refs ?? [])),
32
+ minimum_diagnostic_reverify: matchingChecks.map((check) => check.check_ref),
33
+ still_valid_diagnostic_evidence: groupStillValidEvidence(rows, stillValidByCheck),
34
+ };
35
+ }
36
+ function findingMatchesCheck(finding, check) {
37
+ return ((finding.check_key !== null &&
38
+ finding.check_key === check.check_key &&
39
+ (finding.outcome_key ?? null) === check.outcome_key) ||
40
+ intersects(finding.rerun_obligation_refs ?? [], check.obligation_refs));
41
+ }
42
+ function groupStillValidEvidence(rows, stillValidByCheck) {
43
+ const outcomeKeys = new Set(rows
44
+ .map((row) => row.outcome_key ?? row.owning_outcome_key)
45
+ .filter((value) => Boolean(value)));
46
+ return unique([...stillValidByCheck.entries()]
47
+ .filter(([ref]) => {
48
+ const outcome = ref.startsWith("GLOBAL.")
49
+ ? null
50
+ : ref.slice(0, ref.indexOf("."));
51
+ return outcome === null
52
+ ? outcomeKeys.size === 0
53
+ : outcomeKeys.has(outcome);
54
+ })
55
+ .map(([, evidence]) => evidence));
56
+ }
57
+ function verificationOwnerRefs(finding) {
58
+ const owner = finding.verification_owner;
59
+ if (owner?.kind === "machine_check")
60
+ return [`${owner.outcome_key ?? "GLOBAL"}.${owner.check_key}`];
61
+ if (owner?.kind === "external_confirmation")
62
+ return [`EXTERNAL.${owner.confirmation_ref}:${owner.owner}`];
63
+ return [];
64
+ }
@@ -0,0 +1,6 @@
1
+ import type { CompiledCheckV2, LongTaskFindingV2 } from "./long-task-delivery-types.js";
2
+ export declare function normalizedClaimRefs(finding: LongTaskFindingV2): string[];
3
+ export declare function checkRef(check: Pick<CompiledCheckV2, "outcome_key" | "key">): string;
4
+ export declare function rootCauseKey(finding: LongTaskFindingV2): string;
5
+ export declare function intersects(left: string[], right: string[]): boolean;
6
+ export declare function unique(values: string[]): string[];
@@ -0,0 +1,27 @@
1
+ export function normalizedClaimRefs(finding) {
2
+ return unique((finding.claim_keys ?? []).map((claim) => finding.outcome_key && !claim.startsWith(`${finding.outcome_key}.`)
3
+ ? `${finding.outcome_key}.${claim}`
4
+ : claim));
5
+ }
6
+ export function checkRef(check) {
7
+ return `${check.outcome_key ?? "GLOBAL"}.${check.key}`;
8
+ }
9
+ export function rootCauseKey(finding) {
10
+ const scope = finding.outcome_key ?? finding.owning_outcome_key ?? "GLOBAL";
11
+ if (finding.check_key)
12
+ return `${scope}.${finding.check_key}`;
13
+ if (finding.binding_ref)
14
+ return `${scope}.binding:${finding.binding_ref}`;
15
+ if (finding.proof_obligation_refs?.length)
16
+ return `${scope}.proof:${finding.proof_obligation_refs[0]}`;
17
+ if (finding.fact_refs?.length)
18
+ return `${scope}.fact:${finding.fact_refs[0]}`;
19
+ return `${scope}.finding:${finding.code}`;
20
+ }
21
+ export function intersects(left, right) {
22
+ const rightSet = new Set(right);
23
+ return left.some((value) => rightSet.has(value));
24
+ }
25
+ export function unique(values) {
26
+ return [...new Set(values.filter(Boolean))].sort();
27
+ }
@@ -0,0 +1,14 @@
1
+ import type { CompiledDeliveryContractV2, LongTaskFindingV2, ProgressRecordV2, RepairFrontierV1, WorkspaceManifestV2 } from "./long-task-delivery-types.js";
2
+ export interface RepairFrontierInputV1 {
3
+ compiled: CompiledDeliveryContractV2;
4
+ manifest: WorkspaceManifestV2;
5
+ progress: Record<string, ProgressRecordV2>;
6
+ findings: LongTaskFindingV2[];
7
+ generated_at?: string;
8
+ }
9
+ /**
10
+ * Builds a disposable diagnostic projection over the current candidate.
11
+ * The projection deliberately has no persistence or acceptance path: Final
12
+ * Gate must still rerun every declared Check on one snapshot.
13
+ */
14
+ export declare function deriveRepairFrontier(input: RepairFrontierInputV1): RepairFrontierV1;
@@ -0,0 +1,132 @@
1
+ import { enrichFinding } from "./long-task-finding-context.js";
2
+ import { matchesRepoPattern } from "./long-task-paths.js";
3
+ import { progressRecordFresh } from "./long-task-progress.js";
4
+ import { allChecks, authorityPaths, checkDependencyPatterns, checkDependencyPatternsForBinding, checkObligationRefs, freshDiagnosticEvidence, rerunSessions, } from "./long-task-repair-frontier-checks.js";
5
+ import { groupRepairFindings } from "./long-task-repair-frontier-groups.js";
6
+ import { checkRef, normalizedClaimRefs, unique, } from "./long-task-repair-frontier-utils.js";
7
+ import { changedWorkspacePaths } from "./long-task-workspace-manifest.js";
8
+ /**
9
+ * Builds a disposable diagnostic projection over the current candidate.
10
+ * The projection deliberately has no persistence or acceptance path: Final
11
+ * Gate must still rerun every declared Check on one snapshot.
12
+ */
13
+ export function deriveRepairFrontier(input) {
14
+ const findings = input.findings.map((finding) => enrichFinding(input.compiled, finding));
15
+ const checks = allChecks(input.compiled);
16
+ const changedPaths = changedWorkspacePaths(input.compiled.initial_task_base.workspace_manifest, input.manifest);
17
+ const reasonsByCheck = new Map();
18
+ for (const finding of findings)
19
+ for (const check of checks)
20
+ for (const reason of findingCheckReasons(finding, check))
21
+ addCheckReason(reasonsByCheck, check.internal_id, reason);
22
+ for (const check of checks) {
23
+ const changedInputs = changedPaths.filter((changedPath) => checkDependencyPatterns(input.compiled, check).some((pattern) => matchesRepoPattern(changedPath, pattern)));
24
+ for (const changedPath of changedInputs)
25
+ addCheckReason(reasonsByCheck, check.internal_id, `changed_input:${changedPath}`);
26
+ const record = input.progress[check.internal_id];
27
+ if (record &&
28
+ !progressRecordFresh(record, input.compiled, input.manifest, check))
29
+ addCheckReason(reasonsByCheck, check.internal_id, `stale_progress:${checkRef(check)}`);
30
+ }
31
+ const selectedChecks = selectedRepairChecks(checks, reasonsByCheck);
32
+ const selectedCheckRefs = new Set(selectedChecks.map((check) => check.check_ref));
33
+ const stillValidByCheck = freshDiagnosticEvidence(input.compiled, input.manifest, input.progress, selectedCheckRefs);
34
+ const groups = groupRepairFindings(findings, selectedChecks, stillValidByCheck);
35
+ const stillValidEvidence = unique([...stillValidByCheck.values()]);
36
+ return {
37
+ schema_version: "long-task-repair-frontier-v1",
38
+ authority_scope: "derived_diagnostic_only",
39
+ acceptance_authorized: false,
40
+ persisted: false,
41
+ compiled_identity: input.compiled.compiled_identity,
42
+ authority_revision: input.compiled.authority_revision,
43
+ candidate_snapshot_sha256: input.manifest.snapshot_sha256,
44
+ changed_paths: changedPaths,
45
+ summary: {
46
+ finding_groups: groups.length,
47
+ affected_facts: unique(groups.flatMap((group) => group.affected_fact_refs)).length,
48
+ affected_proof_obligations: unique(groups.flatMap((group) => group.affected_proof_obligation_refs)).length,
49
+ minimum_checks: selectedChecks.length,
50
+ still_valid_progress_records: stillValidEvidence.length,
51
+ },
52
+ groups,
53
+ minimum_diagnostic_reverify: selectedChecks,
54
+ rerun_sessions: rerunSessions(selectedChecks),
55
+ still_valid_diagnostic_evidence: stillValidEvidence,
56
+ forbidden_authority_changes_without_revision: {
57
+ fields: [
58
+ "Source",
59
+ "Expected",
60
+ "Claim",
61
+ "proof_method_or_capability",
62
+ "external_confirmation_scope_or_owner",
63
+ "comparator_tolerance_or_mask",
64
+ "applicability",
65
+ ],
66
+ protected_paths: authorityPaths(input.compiled),
67
+ },
68
+ final_gate_requirement: "complete_one_snapshot_rerun_still_required",
69
+ generated_at: input.generated_at ?? new Date().toISOString(),
70
+ };
71
+ }
72
+ function selectedRepairChecks(checks, reasonsByCheck) {
73
+ return checks
74
+ .filter((check) => reasonsByCheck.has(check.internal_id))
75
+ .map((check) => ({
76
+ check_ref: checkRef(check),
77
+ outcome_key: check.outcome_key,
78
+ check_key: check.key,
79
+ raw_execution_identity: check.raw_execution_identity,
80
+ obligation_refs: checkObligationRefs(check),
81
+ reasons: [...reasonsByCheck.get(check.internal_id)].sort(),
82
+ }))
83
+ .sort((left, right) => left.check_ref.localeCompare(right.check_ref));
84
+ }
85
+ function findingCheckReasons(finding, check) {
86
+ const reasons = [];
87
+ if (finding.check_key !== null &&
88
+ finding.check_key === check.key &&
89
+ (finding.outcome_key ?? null) === check.outcome_key)
90
+ reasons.push(`finding:${finding.code}`);
91
+ const facts = new Set(finding.fact_refs ?? []);
92
+ const proofs = new Set(finding.proof_obligation_refs ?? []);
93
+ const claims = new Set(normalizedClaimRefs(finding));
94
+ const reruns = new Set(finding.rerun_obligation_refs ?? []);
95
+ for (const expectation of check.semantic_fact_expectations)
96
+ reasons.push(...semanticExpectationReasons(expectation, facts, proofs, claims, reruns));
97
+ for (const authority of check.observation_authorities)
98
+ reasons.push(...observationAuthorityReasons(authority, facts, proofs, claims, reruns));
99
+ if (finding.binding_ref &&
100
+ checkDependencyPatternsForBinding(check, finding.binding_ref).length)
101
+ reasons.push(`affected_binding:${finding.binding_ref}`);
102
+ return unique(reasons);
103
+ }
104
+ function semanticExpectationReasons(expectation, facts, proofs, claims, reruns) {
105
+ const reasons = [];
106
+ if (facts.has(expectation.fact_ref))
107
+ reasons.push(`affected_fact:${expectation.fact_ref}`);
108
+ if (proofs.has(expectation.proof_ref) || reruns.has(expectation.proof_ref))
109
+ reasons.push(`affected_proof:${expectation.proof_ref}`);
110
+ if (claims.has(expectation.claim_ref))
111
+ reasons.push(`affected_claim:${expectation.claim_ref}`);
112
+ return reasons;
113
+ }
114
+ function observationAuthorityReasons(authority, facts, proofs, claims, reruns) {
115
+ const reasons = [];
116
+ if (authority.fact_ref && facts.has(authority.fact_ref))
117
+ reasons.push(`affected_fact:${authority.fact_ref}`);
118
+ if (proofs.has(authority.obligation_ref) ||
119
+ reruns.has(authority.obligation_ref))
120
+ reasons.push(`affected_proof:${authority.obligation_ref}`);
121
+ for (const claim of authority.claim_refs)
122
+ if (claims.has(claim))
123
+ reasons.push(`affected_claim:${claim}`);
124
+ return reasons;
125
+ }
126
+ function addCheckReason(target, internalId, reason) {
127
+ const reasons = target.get(internalId);
128
+ if (reasons)
129
+ reasons.add(reason);
130
+ else
131
+ target.set(internalId, new Set([reason]));
132
+ }
@@ -1,4 +1,5 @@
1
- import type { DeliveryContractV2, EffectiveRiskLevel, RiskFactName } from "./long-task-delivery-types.js";
1
+ import type { DeliveryContractV2, CompiledOutcomeV2, EffectiveRiskLevel, RiskFactName } from "./long-task-delivery-types.js";
2
+ import type { AcceptanceReachabilityV1 } from "./long-task-acceptance-reachability-types.js";
2
3
  export interface RiskDecisionV2 {
3
4
  effective_level: EffectiveRiskLevel;
4
5
  minimum_level: EffectiveRiskLevel;
@@ -6,4 +7,4 @@ export interface RiskDecisionV2 {
6
7
  reasons_by_outcome: Record<string, RiskFactName[]>;
7
8
  }
8
9
  export declare function classifyLongTaskRisk(contract: DeliveryContractV2): RiskDecisionV2;
9
- export declare function validateRiskProof(contract: DeliveryContractV2, decision: RiskDecisionV2): void;
10
+ export declare function validateRiskProof(contract: DeliveryContractV2, decision: RiskDecisionV2, reachability?: AcceptanceReachabilityV1 | null, compiledOutcomes?: readonly CompiledOutcomeV2[]): void;