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.
Files changed (535) hide show
  1. package/README.md +119 -41
  2. package/assets/README.md +184 -55
  3. package/assets/README.zh-CN.md +114 -40
  4. package/assets/agents/AGENTS_CORE.md +2 -2
  5. package/assets/context_templates/context.toml +6 -1
  6. package/assets/context_templates/screen-contract.md +16 -0
  7. package/assets/runtime/windows-job-supervisor/formal_process_supervisor_native_helpers.cs +301 -0
  8. package/assets/runtime/windows-job-supervisor/formal_process_supervisor_native_run.cs +197 -0
  9. package/assets/runtime/windows-job-supervisor/formal_process_supervisor_native_types.cs +215 -0
  10. package/assets/runtime/windows-job-supervisor/windows_job_process_supervisor.ps1 +117 -0
  11. package/assets/skills/context_development_engineer/SKILL.md +16 -30
  12. package/assets/skills/context_development_engineer/references/engineering-design-reasoning.md +93 -0
  13. package/assets/skills/context_surface_contract/SKILL.md +13 -2
  14. package/assets/skills/context_uiux_design/SKILL.md +7 -3
  15. package/assets/skills/context_uiux_design/references/task-uiux-analysis.md +82 -0
  16. package/assets/skills/design-resource-authoring/SKILL.md +18 -9
  17. package/assets/skills/design-resource-authoring/references/authority-delta-assessment.md +52 -0
  18. package/assets/skills/design-resource-authoring/references/downstream-handoff.md +22 -6
  19. package/assets/skills/design-resource-authoring/references/formal-selected-web-app-handoff.md +26 -8
  20. package/assets/skills/design-resource-authoring/references/implementation-feasibility.md +111 -0
  21. package/assets/skills/design-resource-authoring/references/open-design-provider.md +45 -7
  22. package/assets/skills/design-resource-authoring/references/recovery-and-writeback.md +7 -1
  23. package/assets/skills/design-resource-authoring/references/resource-selection.md +115 -3
  24. package/assets/skills/design-system-authoring/SKILL.md +23 -17
  25. package/assets/skills/design-system-authoring/references/authority-adoption.md +19 -9
  26. package/assets/skills/design-system-authoring/references/open-design-design-system-provider.md +4 -0
  27. package/assets/skills/long-task-workflow/SKILL.md +6 -6
  28. package/assets/skills/long-task-workflow/references/authority-lifecycle.md +10 -4
  29. package/assets/skills/long-task-workflow/references/contract-authoring.md +5 -5
  30. package/assets/skills/long-task-workflow/references/evidence-design.md +14 -3
  31. package/assets/skills/long-task-workflow/references/source-authoring.md +11 -8
  32. package/assets/tools/context_rules.json +53 -0
  33. package/assets/tools/validate_context.py +302 -77
  34. package/dist/cli.js +2 -1
  35. package/dist/commands/context-create.d.ts +1 -0
  36. package/dist/commands/context-create.js +90 -0
  37. package/dist/commands/context-inspect.d.ts +1 -0
  38. package/dist/commands/context-inspect.js +98 -0
  39. package/dist/commands/context-move.d.ts +1 -0
  40. package/dist/commands/context-move.js +78 -0
  41. package/dist/commands/context-register.d.ts +1 -0
  42. package/dist/commands/context-register.js +110 -0
  43. package/dist/commands/context-transaction.d.ts +1 -0
  44. package/dist/commands/context-transaction.js +84 -0
  45. package/dist/commands/context.d.ts +1 -0
  46. package/dist/commands/context.js +36 -0
  47. package/dist/commands/design-authority-delta.d.ts +1 -0
  48. package/dist/commands/design-authority-delta.js +53 -0
  49. package/dist/commands/design-authority.d.ts +1 -0
  50. package/dist/commands/design-authority.js +104 -0
  51. package/dist/commands/design-resource.js +17 -3
  52. package/dist/commands/doctor.d.ts +1 -1
  53. package/dist/commands/doctor.js +61 -3
  54. package/dist/commands/index.js +19 -2
  55. package/dist/commands/long-task-authoring.js +20 -2
  56. package/dist/commands/long-task-workdir.d.ts +2 -0
  57. package/dist/commands/long-task-workdir.js +23 -0
  58. package/dist/commands/long-task.js +75 -6
  59. package/dist/commands/route.d.ts +15 -0
  60. package/dist/commands/route.js +142 -0
  61. package/dist/index.d.ts +3 -13
  62. package/dist/index.js +3 -12
  63. package/dist/lib/cli-exit.d.ts +14 -0
  64. package/dist/lib/cli-exit.js +19 -0
  65. package/dist/lib/context-catalog/catalog-default-footprint.d.ts +3 -0
  66. package/dist/lib/context-catalog/catalog-default-footprint.js +53 -0
  67. package/dist/lib/context-catalog/catalog-diagnostics.d.ts +9 -0
  68. package/dist/lib/context-catalog/catalog-diagnostics.js +34 -0
  69. package/dist/lib/context-catalog/catalog-discovery.d.ts +7 -0
  70. package/dist/lib/context-catalog/catalog-discovery.js +81 -0
  71. package/dist/lib/context-catalog/catalog-load.d.ts +8 -0
  72. package/dist/lib/context-catalog/catalog-load.js +187 -0
  73. package/dist/lib/context-catalog/catalog-path-validation.d.ts +7 -0
  74. package/dist/lib/context-catalog/catalog-path-validation.js +62 -0
  75. package/dist/lib/context-catalog/catalog-paths.d.ts +11 -0
  76. package/dist/lib/context-catalog/catalog-paths.js +41 -0
  77. package/dist/lib/context-catalog/catalog-portable-contract.d.ts +15 -0
  78. package/dist/lib/context-catalog/catalog-portable-contract.js +68 -0
  79. package/dist/lib/context-catalog/catalog-staged-path-safety.d.ts +1 -0
  80. package/dist/lib/context-catalog/catalog-staged-path-safety.js +36 -0
  81. package/dist/lib/context-catalog/catalog-types.d.ts +40 -0
  82. package/dist/lib/context-catalog/catalog-types.js +1 -0
  83. package/dist/lib/context-catalog/catalog-validation.d.ts +9 -0
  84. package/dist/lib/context-catalog/catalog-validation.js +148 -0
  85. package/dist/lib/context-create/context-create-path.d.ts +2 -0
  86. package/dist/lib/context-create/context-create-path.js +30 -0
  87. package/dist/lib/context-create/context-create-template.d.ts +2 -0
  88. package/dist/lib/context-create/context-create-template.js +95 -0
  89. package/dist/lib/context-create/context-create-types.d.ts +28 -0
  90. package/dist/lib/context-create/context-create-types.js +1 -0
  91. package/dist/lib/context-create/context-create-write.d.ts +1 -0
  92. package/dist/lib/context-create/context-create-write.js +85 -0
  93. package/dist/lib/context-create/context-create.d.ts +2 -0
  94. package/dist/lib/context-create/context-create.js +84 -0
  95. package/dist/lib/context-default-footprint.d.ts +2 -3
  96. package/dist/lib/context-default-footprint.js +49 -57
  97. package/dist/lib/context-doctor/context-doctor-types.d.ts +16 -0
  98. package/dist/lib/context-doctor/context-doctor-types.js +15 -0
  99. package/dist/lib/context-doctor/context-doctor.d.ts +2 -0
  100. package/dist/lib/context-doctor/context-doctor.js +130 -0
  101. package/dist/lib/context-graph-snapshot.d.ts +5 -0
  102. package/dist/lib/context-graph-snapshot.js +46 -25
  103. package/dist/lib/context-inspect/context-inspect-projection.d.ts +9 -0
  104. package/dist/lib/context-inspect/context-inspect-projection.js +49 -0
  105. package/dist/lib/context-inspect/context-inspect-render.d.ts +2 -0
  106. package/dist/lib/context-inspect/context-inspect-render.js +29 -0
  107. package/dist/lib/context-inspect/context-inspect-types.d.ts +43 -0
  108. package/dist/lib/context-inspect/context-inspect-types.js +1 -0
  109. package/dist/lib/context-inspect/context-inspect.d.ts +2 -0
  110. package/dist/lib/context-inspect/context-inspect.js +104 -0
  111. package/dist/lib/context-manifest-schema.d.ts +1 -1
  112. package/dist/lib/context-manifest-schema.js +4 -20
  113. package/dist/lib/context-markdown/context-markdown-analysis.d.ts +15 -0
  114. package/dist/lib/context-markdown/context-markdown-analysis.js +245 -0
  115. package/dist/lib/context-markdown/context-markdown-extract.d.ts +7 -0
  116. package/dist/lib/context-markdown/context-markdown-extract.js +114 -0
  117. package/dist/lib/context-markdown/context-markdown-types.d.ts +57 -0
  118. package/dist/lib/context-markdown/context-markdown-types.js +1 -0
  119. package/dist/lib/context-move/context-move-input.d.ts +8 -0
  120. package/dist/lib/context-move/context-move-input.js +17 -0
  121. package/dist/lib/context-move/context-move-literal-scan.d.ts +20 -0
  122. package/dist/lib/context-move/context-move-literal-scan.js +213 -0
  123. package/dist/lib/context-move/context-move-live-validation.d.ts +3 -0
  124. package/dist/lib/context-move/context-move-live-validation.js +56 -0
  125. package/dist/lib/context-move/context-move-markdown-plan.d.ts +22 -0
  126. package/dist/lib/context-move/context-move-markdown-plan.js +39 -0
  127. package/dist/lib/context-move/context-move-projection.d.ts +3 -0
  128. package/dist/lib/context-move/context-move-projection.js +11 -0
  129. package/dist/lib/context-move/context-move-reference-validation.d.ts +11 -0
  130. package/dist/lib/context-move/context-move-reference-validation.js +64 -0
  131. package/dist/lib/context-move/context-move-render.d.ts +2 -0
  132. package/dist/lib/context-move/context-move-render.js +24 -0
  133. package/dist/lib/context-move/context-move-support.d.ts +10 -0
  134. package/dist/lib/context-move/context-move-support.js +88 -0
  135. package/dist/lib/context-move/context-move-transaction-plan.d.ts +24 -0
  136. package/dist/lib/context-move/context-move-transaction-plan.js +108 -0
  137. package/dist/lib/context-move/context-move-types.d.ts +74 -0
  138. package/dist/lib/context-move/context-move-types.js +1 -0
  139. package/dist/lib/context-move/context-move.d.ts +8 -0
  140. package/dist/lib/context-move/context-move.js +180 -0
  141. package/dist/lib/context-mutation/manifest-lossless-patch.d.ts +28 -0
  142. package/dist/lib/context-mutation/manifest-lossless-patch.js +208 -0
  143. package/dist/lib/context-mutation/markdown-link-patch.d.ts +34 -0
  144. package/dist/lib/context-mutation/markdown-link-patch.js +143 -0
  145. package/dist/lib/context-mutation/markdown-link-spans.d.ts +10 -0
  146. package/dist/lib/context-mutation/markdown-link-spans.js +179 -0
  147. package/dist/lib/context-mutation/mutation-cas.d.ts +13 -0
  148. package/dist/lib/context-mutation/mutation-cas.js +365 -0
  149. package/dist/lib/context-mutation/mutation-command-support.d.ts +12 -0
  150. package/dist/lib/context-mutation/mutation-command-support.js +57 -0
  151. package/dist/lib/context-mutation/mutation-commit.d.ts +12 -0
  152. package/dist/lib/context-mutation/mutation-commit.js +89 -0
  153. package/dist/lib/context-mutation/mutation-directories.d.ts +5 -0
  154. package/dist/lib/context-mutation/mutation-directories.js +56 -0
  155. package/dist/lib/context-mutation/mutation-file-state.d.ts +14 -0
  156. package/dist/lib/context-mutation/mutation-file-state.js +137 -0
  157. package/dist/lib/context-mutation/mutation-journal-file-validation.d.ts +1 -0
  158. package/dist/lib/context-mutation/mutation-journal-file-validation.js +106 -0
  159. package/dist/lib/context-mutation/mutation-journal-io.d.ts +5 -0
  160. package/dist/lib/context-mutation/mutation-journal-io.js +55 -0
  161. package/dist/lib/context-mutation/mutation-journal-storage.d.ts +18 -0
  162. package/dist/lib/context-mutation/mutation-journal-storage.js +283 -0
  163. package/dist/lib/context-mutation/mutation-journal-validation-support.d.ts +16 -0
  164. package/dist/lib/context-mutation/mutation-journal-validation-support.js +140 -0
  165. package/dist/lib/context-mutation/mutation-journal-validation.d.ts +3 -0
  166. package/dist/lib/context-mutation/mutation-journal-validation.js +177 -0
  167. package/dist/lib/context-mutation/mutation-journal.d.ts +8 -0
  168. package/dist/lib/context-mutation/mutation-journal.js +111 -0
  169. package/dist/lib/context-mutation/mutation-live-validation.d.ts +3 -0
  170. package/dist/lib/context-mutation/mutation-live-validation.js +51 -0
  171. package/dist/lib/context-mutation/mutation-long-task-guard.d.ts +6 -0
  172. package/dist/lib/context-mutation/mutation-long-task-guard.js +57 -0
  173. package/dist/lib/context-mutation/mutation-recovery.d.ts +4 -0
  174. package/dist/lib/context-mutation/mutation-recovery.js +189 -0
  175. package/dist/lib/context-mutation/mutation-staged-fs.d.ts +5 -0
  176. package/dist/lib/context-mutation/mutation-staged-fs.js +56 -0
  177. package/dist/lib/context-mutation/mutation-types.d.ts +103 -0
  178. package/dist/lib/context-mutation/mutation-types.js +1 -0
  179. package/dist/lib/context-register/context-register-input.d.ts +11 -0
  180. package/dist/lib/context-register/context-register-input.js +43 -0
  181. package/dist/lib/context-register/context-register-render.d.ts +2 -0
  182. package/dist/lib/context-register/context-register-render.js +21 -0
  183. package/dist/lib/context-register/context-register-support.d.ts +6 -0
  184. package/dist/lib/context-register/context-register-support.js +46 -0
  185. package/dist/lib/context-register/context-register-types.d.ts +46 -0
  186. package/dist/lib/context-register/context-register-types.js +1 -0
  187. package/dist/lib/context-register/context-register.d.ts +8 -0
  188. package/dist/lib/context-register/context-register.js +155 -0
  189. package/dist/lib/context-router/context-route-budget.d.ts +15 -0
  190. package/dist/lib/context-router/context-route-budget.js +14 -0
  191. package/dist/lib/context-router/context-route-candidates.d.ts +15 -0
  192. package/dist/lib/context-router/context-route-candidates.js +112 -0
  193. package/dist/lib/context-router/context-route-order.d.ts +6 -0
  194. package/dist/lib/context-router/context-route-order.js +53 -0
  195. package/dist/lib/context-router/context-route-paths.d.ts +16 -0
  196. package/dist/lib/context-router/context-route-paths.js +109 -0
  197. package/dist/lib/context-router/context-route-render.d.ts +2 -0
  198. package/dist/lib/context-router/context-route-render.js +32 -0
  199. package/dist/lib/context-router/context-route-scan.d.ts +18 -0
  200. package/dist/lib/context-router/context-route-scan.js +156 -0
  201. package/dist/lib/context-router/context-route-selection.d.ts +16 -0
  202. package/dist/lib/context-router/context-route-selection.js +72 -0
  203. package/dist/lib/context-router/context-route-terms.d.ts +13 -0
  204. package/dist/lib/context-router/context-route-terms.js +202 -0
  205. package/dist/lib/context-router/context-route-types.d.ts +101 -0
  206. package/dist/lib/context-router/context-route-types.js +1 -0
  207. package/dist/lib/context-router/context-route.d.ts +2 -0
  208. package/dist/lib/context-router/context-route.js +127 -0
  209. package/dist/lib/context-units-migration.d.ts +13 -0
  210. package/dist/lib/context-units-migration.js +217 -0
  211. package/dist/lib/design-authority-binding.d.ts +7 -0
  212. package/dist/lib/design-authority-binding.js +96 -0
  213. package/dist/lib/design-authority-closure.d.ts +3 -0
  214. package/dist/lib/design-authority-closure.js +201 -0
  215. package/dist/lib/design-authority-delta-codec-primitives.d.ts +10 -0
  216. package/dist/lib/design-authority-delta-codec-primitives.js +58 -0
  217. package/dist/lib/design-authority-delta-codec.d.ts +2 -0
  218. package/dist/lib/design-authority-delta-codec.js +193 -0
  219. package/dist/lib/design-authority-delta-types.d.ts +65 -0
  220. package/dist/lib/design-authority-delta-types.js +6 -0
  221. package/dist/lib/design-authority-delta-validation.d.ts +2 -0
  222. package/dist/lib/design-authority-delta-validation.js +16 -0
  223. package/dist/lib/design-authority-digest.d.ts +8 -0
  224. package/dist/lib/design-authority-digest.js +36 -0
  225. package/dist/lib/design-authority-files.d.ts +9 -0
  226. package/dist/lib/design-authority-files.js +62 -0
  227. package/dist/lib/design-authority-format.d.ts +2 -0
  228. package/dist/lib/design-authority-format.js +93 -0
  229. package/dist/lib/design-authority-links.d.ts +10 -0
  230. package/dist/lib/design-authority-links.js +137 -0
  231. package/dist/lib/design-authority-manifest.d.ts +4 -0
  232. package/dist/lib/design-authority-manifest.js +144 -0
  233. package/dist/lib/design-authority-tokens.d.ts +9 -0
  234. package/dist/lib/design-authority-tokens.js +45 -0
  235. package/dist/lib/design-authority-types.d.ts +80 -0
  236. package/dist/lib/design-authority-types.js +23 -0
  237. package/dist/lib/design-md-tool-adapter.d.ts +9 -0
  238. package/dist/lib/design-md-tool-adapter.js +152 -0
  239. package/dist/lib/design-md-tool-normalization.d.ts +7 -0
  240. package/dist/lib/design-md-tool-normalization.js +78 -0
  241. package/dist/lib/design-md-tool-types.d.ts +99 -0
  242. package/dist/lib/design-md-tool-types.js +8 -0
  243. package/dist/lib/design-resource-handoff-bundle.js +5 -0
  244. package/dist/lib/design-resource-handoff-input-types.d.ts +1 -1
  245. package/dist/lib/design-resource-handoff-manifest-projection.js +4 -0
  246. package/dist/lib/design-resource-handoff-set-integrity.js +1 -0
  247. package/dist/lib/design-resource-handoff-shape.js +18 -2
  248. package/dist/lib/design-resource-handoff-types.d.ts +8 -0
  249. package/dist/lib/design-resource-handoff-validation.js +24 -0
  250. package/dist/lib/design-resource-implementation-feasibility-model.d.ts +35 -0
  251. package/dist/lib/design-resource-implementation-feasibility-model.js +62 -0
  252. package/dist/lib/design-resource-implementation-feasibility-shape-sections.d.ts +43 -0
  253. package/dist/lib/design-resource-implementation-feasibility-shape-sections.js +142 -0
  254. package/dist/lib/design-resource-implementation-feasibility-shape.d.ts +4 -0
  255. package/dist/lib/design-resource-implementation-feasibility-shape.js +154 -0
  256. package/dist/lib/design-resource-implementation-feasibility-source-decision-projection.d.ts +24 -0
  257. package/dist/lib/design-resource-implementation-feasibility-source-decision-projection.js +106 -0
  258. package/dist/lib/design-resource-implementation-feasibility-source-decision.d.ts +21 -0
  259. package/dist/lib/design-resource-implementation-feasibility-source-decision.js +75 -0
  260. package/dist/lib/design-resource-implementation-feasibility-types.d.ts +135 -0
  261. package/dist/lib/design-resource-implementation-feasibility-types.js +37 -0
  262. package/dist/lib/design-resource-implementation-feasibility-validation-cells.d.ts +5 -0
  263. package/dist/lib/design-resource-implementation-feasibility-validation-cells.js +125 -0
  264. package/dist/lib/design-resource-implementation-feasibility-validation-document.d.ts +4 -0
  265. package/dist/lib/design-resource-implementation-feasibility-validation-document.js +167 -0
  266. package/dist/lib/design-resource-implementation-feasibility-validation-facts.d.ts +3 -0
  267. package/dist/lib/design-resource-implementation-feasibility-validation-facts.js +76 -0
  268. package/dist/lib/design-resource-implementation-feasibility-validation-realizations.d.ts +8 -0
  269. package/dist/lib/design-resource-implementation-feasibility-validation-realizations.js +76 -0
  270. package/dist/lib/design-resource-implementation-feasibility-validation-support.d.ts +10 -0
  271. package/dist/lib/design-resource-implementation-feasibility-validation-support.js +75 -0
  272. package/dist/lib/design-resource-implementation-feasibility-validation.d.ts +3 -0
  273. package/dist/lib/design-resource-implementation-feasibility-validation.js +138 -0
  274. package/dist/lib/design-resource-recovery-current.js +22 -0
  275. package/dist/lib/design-resource-recovery-shape.js +64 -7
  276. package/dist/lib/design-resource-recovery-types.d.ts +4 -1
  277. package/dist/lib/design-resource-symbolic-fact-shape.js +9 -1
  278. package/dist/lib/design-resource-symbolic-fact-types.d.ts +8 -0
  279. package/dist/lib/design-resource-symbolic-fact-validation.js +25 -0
  280. package/dist/lib/doctor.d.ts +2 -1
  281. package/dist/lib/doctor.js +29 -1
  282. package/dist/lib/fs.js +1 -1
  283. package/dist/lib/long-task-acceptance-reachability-claims.d.ts +2 -0
  284. package/dist/lib/long-task-acceptance-reachability-claims.js +279 -0
  285. package/dist/lib/long-task-acceptance-reachability-design.d.ts +2 -0
  286. package/dist/lib/long-task-acceptance-reachability-design.js +96 -0
  287. package/dist/lib/long-task-acceptance-reachability-external.d.ts +9 -0
  288. package/dist/lib/long-task-acceptance-reachability-external.js +123 -0
  289. package/dist/lib/long-task-acceptance-reachability-helpers.d.ts +64 -0
  290. package/dist/lib/long-task-acceptance-reachability-helpers.js +473 -0
  291. package/dist/lib/long-task-acceptance-reachability-semantic.d.ts +2 -0
  292. package/dist/lib/long-task-acceptance-reachability-semantic.js +122 -0
  293. package/dist/lib/long-task-acceptance-reachability-types.d.ts +91 -0
  294. package/dist/lib/long-task-acceptance-reachability-types.js +1 -0
  295. package/dist/lib/long-task-acceptance-reachability.d.ts +4 -0
  296. package/dist/lib/long-task-acceptance-reachability.js +115 -0
  297. package/dist/lib/long-task-activation-validation.d.ts +6 -0
  298. package/dist/lib/long-task-activation-validation.js +96 -23
  299. package/dist/lib/long-task-active-authority-lock-context.d.ts +4 -0
  300. package/dist/lib/long-task-active-authority-lock-context.js +29 -0
  301. package/dist/lib/long-task-applicability-identity.d.ts +25 -0
  302. package/dist/lib/long-task-applicability-identity.js +60 -0
  303. package/dist/lib/long-task-authoring-preflight-diagnostics.js +8 -0
  304. package/dist/lib/long-task-authoring-preflight-types.d.ts +2 -0
  305. package/dist/lib/long-task-authoring-preflight-types.js +9 -0
  306. package/dist/lib/long-task-authoring-preflight.js +18 -2
  307. package/dist/lib/long-task-authority-material-diff.js +4 -0
  308. package/dist/lib/long-task-authority-materials.js +19 -0
  309. package/dist/lib/long-task-authority-policy.d.ts +3 -0
  310. package/dist/lib/long-task-authority-policy.js +3 -0
  311. package/dist/lib/long-task-authority-revision-details.js +2 -1
  312. package/dist/lib/long-task-authority-types.d.ts +2 -0
  313. package/dist/lib/long-task-authority.js +2 -0
  314. package/dist/lib/long-task-check-runner.js +3 -296
  315. package/dist/lib/long-task-check-shape.js +6 -1
  316. package/dist/lib/long-task-claim-definitions.js +1 -3
  317. package/dist/lib/long-task-claim-semantic-proof-floor.d.ts +3 -0
  318. package/dist/lib/long-task-claim-semantic-proof-floor.js +78 -0
  319. package/dist/lib/long-task-claims.d.ts +0 -18
  320. package/dist/lib/long-task-claims.js +15 -14
  321. package/dist/lib/long-task-command-process.d.ts +9 -0
  322. package/dist/lib/long-task-command-process.js +178 -0
  323. package/dist/lib/long-task-compact-authoring.js +3 -0
  324. package/dist/lib/long-task-compact-projections.js +10 -0
  325. package/dist/lib/long-task-complete-delivery-evidence-types.d.ts +38 -0
  326. package/dist/lib/long-task-complete-delivery-evidence-types.js +1 -0
  327. package/dist/lib/long-task-completion-types.d.ts +109 -0
  328. package/dist/lib/long-task-completion-types.js +1 -0
  329. package/dist/lib/long-task-conformance-policy.d.ts +2 -1
  330. package/dist/lib/long-task-conformance-policy.js +11 -4
  331. package/dist/lib/long-task-context-authority-topology.js +6 -4
  332. package/dist/lib/long-task-contract-types.d.ts +52 -1
  333. package/dist/lib/long-task-counterfactual-sandbox.d.ts +7 -1
  334. package/dist/lib/long-task-counterfactual-sandbox.js +86 -6
  335. package/dist/lib/long-task-delivery-compiler-preflight.d.ts +24 -0
  336. package/dist/lib/long-task-delivery-compiler-preflight.js +32 -0
  337. package/dist/lib/long-task-delivery-compiler.d.ts +1 -0
  338. package/dist/lib/long-task-delivery-compiler.js +59 -44
  339. package/dist/lib/long-task-delivery-parser.d.ts +3 -0
  340. package/dist/lib/long-task-delivery-parser.js +26 -8
  341. package/dist/lib/long-task-delivery-types.d.ts +2 -0
  342. package/dist/lib/long-task-delivery-types.js +2 -0
  343. package/dist/lib/long-task-delivery-validation.d.ts +11 -3
  344. package/dist/lib/long-task-delivery-validation.js +23 -8
  345. package/dist/lib/long-task-design-feasibility-binding-owners.d.ts +6 -0
  346. package/dist/lib/long-task-design-feasibility-binding-owners.js +52 -0
  347. package/dist/lib/long-task-design-feasibility-binding.d.ts +14 -0
  348. package/dist/lib/long-task-design-feasibility-binding.js +114 -0
  349. package/dist/lib/long-task-design-feasibility-source-closure.d.ts +11 -0
  350. package/dist/lib/long-task-design-feasibility-source-closure.js +87 -0
  351. package/dist/lib/long-task-design-obligation.d.ts +50 -0
  352. package/dist/lib/long-task-design-obligation.js +99 -0
  353. package/dist/lib/long-task-design-resource-handoff.d.ts +5 -3
  354. package/dist/lib/long-task-design-resource-handoff.js +64 -4
  355. package/dist/lib/long-task-design-resource-method-binding.js +20 -2
  356. package/dist/lib/long-task-effective-external-takeover.d.ts +15 -0
  357. package/dist/lib/long-task-effective-external-takeover.js +109 -0
  358. package/dist/lib/long-task-effective-external-ui-takeover.d.ts +5 -0
  359. package/dist/lib/long-task-effective-external-ui-takeover.js +117 -0
  360. package/dist/lib/long-task-evidence-capability-codec.js +91 -0
  361. package/dist/lib/long-task-evidence-capability-runtime.js +62 -14
  362. package/dist/lib/long-task-evidence-capability-types.d.ts +3 -2
  363. package/dist/lib/long-task-evidence-v2.d.ts +6 -1
  364. package/dist/lib/long-task-evidence-v2.js +253 -170
  365. package/dist/lib/long-task-execution-observation.d.ts +7 -0
  366. package/dist/lib/long-task-execution-observation.js +21 -4
  367. package/dist/lib/long-task-expected-authority.d.ts +4 -0
  368. package/dist/lib/long-task-expected-authority.js +126 -0
  369. package/dist/lib/long-task-external-confirmation-artifacts.d.ts +9 -0
  370. package/dist/lib/long-task-external-confirmation-artifacts.js +138 -0
  371. package/dist/lib/long-task-external-confirmation-attestation.d.ts +20 -0
  372. package/dist/lib/long-task-external-confirmation-attestation.js +115 -0
  373. package/dist/lib/long-task-external-confirmation-challenge.d.ts +23 -0
  374. package/dist/lib/long-task-external-confirmation-challenge.js +164 -0
  375. package/dist/lib/long-task-external-confirmation-context.d.ts +14 -0
  376. package/dist/lib/long-task-external-confirmation-context.js +53 -0
  377. package/dist/lib/long-task-external-confirmation-evaluation.d.ts +11 -0
  378. package/dist/lib/long-task-external-confirmation-evaluation.js +454 -0
  379. package/dist/lib/long-task-external-confirmation-expected.d.ts +8 -0
  380. package/dist/lib/long-task-external-confirmation-expected.js +200 -0
  381. package/dist/lib/long-task-external-confirmation-identity.d.ts +10 -0
  382. package/dist/lib/long-task-external-confirmation-identity.js +77 -0
  383. package/dist/lib/long-task-external-confirmation-plan.d.ts +25 -0
  384. package/dist/lib/long-task-external-confirmation-plan.js +148 -0
  385. package/dist/lib/long-task-external-confirmation-preparation.d.ts +4 -0
  386. package/dist/lib/long-task-external-confirmation-preparation.js +100 -0
  387. package/dist/lib/long-task-external-confirmation-shape.d.ts +8 -0
  388. package/dist/lib/long-task-external-confirmation-shape.js +387 -0
  389. package/dist/lib/long-task-external-confirmation-state.d.ts +10 -0
  390. package/dist/lib/long-task-external-confirmation-state.js +109 -0
  391. package/dist/lib/long-task-external-confirmation-types.d.ts +195 -0
  392. package/dist/lib/long-task-external-confirmation-types.js +1 -0
  393. package/dist/lib/long-task-final-integrity.d.ts +2 -0
  394. package/dist/lib/long-task-final-integrity.js +21 -10
  395. package/dist/lib/long-task-final-v2.d.ts +7 -2
  396. package/dist/lib/long-task-final-v2.js +179 -55
  397. package/dist/lib/long-task-finalization-identity.d.ts +27 -0
  398. package/dist/lib/long-task-finalization-identity.js +58 -0
  399. package/dist/lib/long-task-finding-context.d.ts +1 -1
  400. package/dist/lib/long-task-finding-context.js +139 -13
  401. package/dist/lib/long-task-freshness.d.ts +27 -0
  402. package/dist/lib/long-task-freshness.js +129 -6
  403. package/dist/lib/long-task-git.js +3 -3
  404. package/dist/lib/long-task-material-input-closure.d.ts +3 -0
  405. package/dist/lib/long-task-material-input-closure.js +92 -0
  406. package/dist/lib/long-task-obligation-authority-resolution.d.ts +12 -0
  407. package/dist/lib/long-task-obligation-authority-resolution.js +57 -0
  408. package/dist/lib/long-task-obligation-semantic-identity.d.ts +16 -0
  409. package/dist/lib/long-task-obligation-semantic-identity.js +116 -0
  410. package/dist/lib/long-task-observation-authority.d.ts +11 -0
  411. package/dist/lib/long-task-observation-authority.js +137 -6
  412. package/dist/lib/long-task-process-table.d.ts +9 -0
  413. package/dist/lib/long-task-process-table.js +87 -0
  414. package/dist/lib/long-task-process-tree.d.ts +8 -0
  415. package/dist/lib/long-task-process-tree.js +108 -0
  416. package/dist/lib/long-task-proof-adequacy.d.ts +12 -0
  417. package/dist/lib/long-task-proof-adequacy.js +57 -0
  418. package/dist/lib/long-task-proof-capability-floor.d.ts +6 -0
  419. package/dist/lib/long-task-proof-capability-floor.js +137 -0
  420. package/dist/lib/long-task-protected-files.d.ts +1 -1
  421. package/dist/lib/long-task-protected-files.js +1 -1
  422. package/dist/lib/long-task-repair-frontier-checks.d.ts +8 -0
  423. package/dist/lib/long-task-repair-frontier-checks.js +93 -0
  424. package/dist/lib/long-task-repair-frontier-groups.d.ts +2 -0
  425. package/dist/lib/long-task-repair-frontier-groups.js +64 -0
  426. package/dist/lib/long-task-repair-frontier-utils.d.ts +6 -0
  427. package/dist/lib/long-task-repair-frontier-utils.js +27 -0
  428. package/dist/lib/long-task-repair-frontier.d.ts +14 -0
  429. package/dist/lib/long-task-repair-frontier.js +132 -0
  430. package/dist/lib/long-task-risk.d.ts +3 -2
  431. package/dist/lib/long-task-risk.js +73 -24
  432. package/dist/lib/long-task-root-shape.js +148 -8
  433. package/dist/lib/long-task-runner-freeze.d.ts +2 -1
  434. package/dist/lib/long-task-runner-freeze.js +23 -8
  435. package/dist/lib/long-task-runtime-types.d.ts +34 -40
  436. package/dist/lib/long-task-semantic-assurance-policy.js +2 -11
  437. package/dist/lib/long-task-semantic-contract-types.d.ts +2 -1
  438. package/dist/lib/long-task-semantic-drift-migration.js +48 -2
  439. package/dist/lib/long-task-semantic-fact-binding-types.d.ts +20 -0
  440. package/dist/lib/long-task-semantic-fact-closure.d.ts +5 -1
  441. package/dist/lib/long-task-semantic-fact-closure.js +33 -5
  442. package/dist/lib/long-task-semantic-fact-contract-closure.js +176 -1
  443. package/dist/lib/long-task-semantic-fact-contract-proofs.js +18 -1
  444. package/dist/lib/long-task-semantic-fact-input-closure.d.ts +16 -2
  445. package/dist/lib/long-task-semantic-fact-input-closure.js +138 -15
  446. package/dist/lib/long-task-semantic-fact-provenance-closure.js +1 -1
  447. package/dist/lib/long-task-semantic-fact-shape.d.ts +2 -1
  448. package/dist/lib/long-task-semantic-fact-shape.js +35 -1
  449. package/dist/lib/long-task-semantic-proof-adequacy.d.ts +2 -0
  450. package/dist/lib/long-task-semantic-proof-adequacy.js +19 -0
  451. package/dist/lib/long-task-semantic-proof-profile.d.ts +5 -0
  452. package/dist/lib/long-task-semantic-proof-profile.js +187 -0
  453. package/dist/lib/long-task-shape-primitives.d.ts +1 -1
  454. package/dist/lib/long-task-shape-primitives.js +5 -0
  455. package/dist/lib/long-task-source-anchors.d.ts +10 -0
  456. package/dist/lib/long-task-source-anchors.js +102 -0
  457. package/dist/lib/long-task-source-authority-types.d.ts +46 -0
  458. package/dist/lib/long-task-source-claim-validation.js +36 -0
  459. package/dist/lib/long-task-source-conservation-facts.d.ts +8 -0
  460. package/dist/lib/long-task-source-conservation-facts.js +57 -0
  461. package/dist/lib/long-task-source-conservation-types.d.ts +34 -0
  462. package/dist/lib/long-task-source-conservation-types.js +1 -0
  463. package/dist/lib/long-task-source-conservation.d.ts +7 -0
  464. package/dist/lib/long-task-source-conservation.js +110 -0
  465. package/dist/lib/long-task-source-fragments.d.ts +6 -0
  466. package/dist/lib/long-task-source-fragments.js +219 -0
  467. package/dist/lib/long-task-source-projection-resolution.d.ts +5 -0
  468. package/dist/lib/long-task-source-projection-resolution.js +57 -0
  469. package/dist/lib/long-task-source-projection-validation.d.ts +17 -0
  470. package/dist/lib/long-task-source-projection-validation.js +154 -0
  471. package/dist/lib/long-task-source-shape.js +14 -6
  472. package/dist/lib/long-task-source-supersession.d.ts +5 -0
  473. package/dist/lib/long-task-source-supersession.js +138 -0
  474. package/dist/lib/long-task-stage-policy.d.ts +7 -2
  475. package/dist/lib/long-task-stage-policy.js +67 -23
  476. package/dist/lib/long-task-state.d.ts +18 -4
  477. package/dist/lib/long-task-state.js +319 -33
  478. package/dist/lib/long-task-static-observation-freeze.js +4 -3
  479. package/dist/lib/long-task-status-projection.d.ts +3 -1
  480. package/dist/lib/long-task-status-projection.js +44 -13
  481. package/dist/lib/long-task-status-v2.d.ts +10 -6
  482. package/dist/lib/long-task-status-v2.js +70 -58
  483. package/dist/lib/long-task-target-policy.d.ts +8 -3
  484. package/dist/lib/long-task-target-policy.js +40 -9
  485. package/dist/lib/long-task-terminal-finalization.d.ts +12 -0
  486. package/dist/lib/long-task-terminal-finalization.js +190 -0
  487. package/dist/lib/long-task-ui-design-policy.js +15 -4
  488. package/dist/lib/long-task-ui-surface-policy.d.ts +2 -1
  489. package/dist/lib/long-task-ui-surface-policy.js +7 -4
  490. package/dist/lib/long-task-ui-surface-validation.d.ts +3 -1
  491. package/dist/lib/long-task-ui-surface-validation.js +2 -2
  492. package/dist/lib/long-task-verifier-counterfactuals.d.ts +11 -0
  493. package/dist/lib/long-task-verifier-counterfactuals.js +96 -0
  494. package/dist/lib/long-task-verifier-execution.d.ts +9 -0
  495. package/dist/lib/long-task-verifier-execution.js +67 -0
  496. package/dist/lib/long-task-verifier-identity.js +16 -5
  497. package/dist/lib/long-task-verifier-v2.js +52 -65
  498. package/dist/lib/long-task-windows-job-supervisor-helper.d.ts +1 -0
  499. package/dist/lib/long-task-windows-job-supervisor-helper.js +104 -0
  500. package/dist/lib/long-task-windows-job-supervisor-protocol.d.ts +28 -0
  501. package/dist/lib/long-task-windows-job-supervisor-protocol.js +124 -0
  502. package/dist/lib/long-task-windows-job-supervisor-result.d.ts +11 -0
  503. package/dist/lib/long-task-windows-job-supervisor-result.js +152 -0
  504. package/dist/lib/long-task-windows-job-supervisor.d.ts +2 -0
  505. package/dist/lib/long-task-windows-job-supervisor.js +126 -0
  506. package/dist/lib/long-task-workspace-scope.d.ts +1 -0
  507. package/dist/lib/long-task-workspace-scope.js +4 -1
  508. package/dist/lib/long-task-workspace.d.ts +1 -0
  509. package/dist/lib/long-task-workspace.js +10 -0
  510. package/dist/lib/migrations.js +43 -2
  511. package/dist/lib/repository-path-safety.d.ts +3 -0
  512. package/dist/lib/repository-path-safety.js +39 -3
  513. package/dist/lib/semantic-fact-input-shape.d.ts +7 -2
  514. package/dist/lib/semantic-fact-input-shape.js +25 -1
  515. package/dist/lib/semantic-fact-inventory-types.d.ts +8 -2
  516. package/dist/lib/semantic-fact-policy-census.d.ts +1 -1
  517. package/dist/lib/semantic-fact-policy-census.js +5 -2
  518. package/dist/lib/semantic-fact-policy.d.ts +1 -1
  519. package/dist/lib/semantic-fact-policy.js +2 -2
  520. package/dist/lib/semantic-fact-proof-shape.d.ts +1 -1
  521. package/dist/lib/semantic-fact-property-shape.d.ts +1 -1
  522. package/dist/lib/validators.d.ts +3 -0
  523. package/dist/lib/validators.js +45 -157
  524. package/dist/public-api-core.d.ts +12 -0
  525. package/dist/public-api-core.js +12 -0
  526. package/dist/public-api-long-task.d.ts +10 -0
  527. package/dist/public-api-long-task.js +10 -0
  528. package/dist/public-types.d.ts +6 -1
  529. package/dist/schemas/design-authority-delta-assessment-v1.schema.json +191 -0
  530. package/dist/schemas/long-task-delivery-v2/long-task-delivery-v2.schema.json +166 -2
  531. package/dist/schemas/long-task-external-confirmation-record-v1.schema.json +155 -0
  532. package/dist/schemas/long-task-external-confirmation-record-v2.schema.json +209 -0
  533. package/migrations/README.md +99 -0
  534. package/package.json +7 -5
  535. package/source-mappings.yaml +18 -0
@@ -0,0 +1,195 @@
1
+ import type { EffectiveExternalObligationV1 } from "./long-task-acceptance-reachability-types.js";
2
+ import type { CompiledExternalConfirmationIdentityAssuranceV2, ExternalConfirmationV2 } from "./long-task-contract-types.js";
3
+ import type { KeyedStatementV2 } from "./long-task-semantic-contract-types.js";
4
+ import type { DesignResourceLocatedDigestV1 } from "./design-resource-fact-manifest-types.js";
5
+ import type { SemanticFactLocatedValueV1 } from "./semantic-fact-types.js";
6
+ type ExternalConfirmationLocatedValueV1 = SemanticFactLocatedValueV1 | DesignResourceLocatedDigestV1 | {
7
+ kind: "compiled_assertion";
8
+ ref: string;
9
+ sha256: string;
10
+ value: unknown;
11
+ } | {
12
+ kind: "compiled_assertion_comparison" | "design_strict_comparison";
13
+ ref: string;
14
+ sha256: string;
15
+ };
16
+ export interface ExternalConfirmationCandidateV1 {
17
+ git_head: string;
18
+ git_tree: string;
19
+ snapshot_sha256: string;
20
+ }
21
+ export interface ExternalConfirmationActorV1 {
22
+ id: string;
23
+ role: string;
24
+ authority_kind: "human" | "expert" | "external_system";
25
+ }
26
+ export interface ExternalConfirmationSessionV1 {
27
+ id: string;
28
+ target_ref: string;
29
+ environment_identity: string;
30
+ started_at: string;
31
+ completed_at: string;
32
+ }
33
+ export interface ExternalConfirmationResultV1 {
34
+ obligation_ref: string;
35
+ fact_ref: string | null;
36
+ claim_ref: string;
37
+ applicability_ref: string;
38
+ actual?: unknown;
39
+ verdict: "passed" | "failed" | "unable";
40
+ evidence_refs: string[];
41
+ rationale?: string;
42
+ }
43
+ export interface ExternalConfirmationRecordV1 {
44
+ schema_version: "long-task-external-confirmation-record-v1";
45
+ confirmation_ref: string;
46
+ compiled_identity: string;
47
+ authority_revision: number;
48
+ candidate: ExternalConfirmationCandidateV1;
49
+ actor: ExternalConfirmationActorV1;
50
+ session: ExternalConfirmationSessionV1;
51
+ results: ExternalConfirmationResultV1[];
52
+ artifact_hashes: Record<string, string>;
53
+ relevant_input_identity: string;
54
+ record_sha256: string;
55
+ }
56
+ export interface ExternalConfirmationResultV2 {
57
+ obligation_ref: string;
58
+ fact_ref: string | null;
59
+ claim_ref: string;
60
+ applicability_ref: string;
61
+ result_kind: "actual" | "judgment";
62
+ actual?: unknown;
63
+ verdict: "passed" | "failed" | "unable";
64
+ evidence_refs: string[];
65
+ rationale?: string;
66
+ }
67
+ export interface ExternalConfirmationArtifactSnapshotV2 {
68
+ sha256: string;
69
+ size_bytes: number;
70
+ media_type: string | null;
71
+ store_ref: string;
72
+ }
73
+ export interface ExternalConfirmationRecordV2 {
74
+ schema_version: "long-task-external-confirmation-record-v2";
75
+ confirmation_ref: string;
76
+ compiled_identity: string;
77
+ authority_revision: number;
78
+ candidate: ExternalConfirmationCandidateV1;
79
+ challenge: string;
80
+ actor: ExternalConfirmationActorV1;
81
+ session: ExternalConfirmationSessionV1;
82
+ results: ExternalConfirmationResultV2[];
83
+ artifact_snapshots: Record<string, ExternalConfirmationArtifactSnapshotV2>;
84
+ relevant_input_identity: string;
85
+ attestation: {
86
+ scheme: "ed25519";
87
+ key_id: string;
88
+ signature_base64: string;
89
+ };
90
+ record_sha256: string;
91
+ }
92
+ export type ExternalConfirmationRecord = ExternalConfirmationRecordV1 | ExternalConfirmationRecordV2;
93
+ export type ExternalConfirmationFulfillmentStateV1 = "pending" | "fulfilled" | "failed" | "unable" | "invalid" | "stale" | "legacy_unattested";
94
+ export interface ExternalConfirmationObligationResultV1 {
95
+ obligation_ref: string;
96
+ fact_ref: string | null;
97
+ claim_ref: string;
98
+ applicability_ref: string;
99
+ outcome_key: string | null;
100
+ verdict: "passed" | "failed" | "unable";
101
+ result_kind: "actual" | "judgment";
102
+ completion_role: "blocking" | "advisory";
103
+ acceptance_effect: "required" | "none";
104
+ comparator_recomputed: boolean;
105
+ evidence_refs: string[];
106
+ }
107
+ export interface ExternalConfirmationEvaluationV1 {
108
+ confirmation_ref: string;
109
+ owner: string;
110
+ blocks_target: boolean;
111
+ state: ExternalConfirmationFulfillmentStateV1;
112
+ record_sha256: string | null;
113
+ session_id: string | null;
114
+ relevant_input_identity: string;
115
+ carried_forward_from_candidate: boolean;
116
+ actor_identity_assurance: "ed25519_verified" | "declared_only" | "legacy_unattested" | "invalid";
117
+ identity_assurance: CompiledExternalConfirmationIdentityAssuranceV2 | null;
118
+ signature_verified: boolean;
119
+ challenge_current: boolean;
120
+ artifact_snapshot_integrity: boolean;
121
+ record_schema_version: ExternalConfirmationRecord["schema_version"] | null;
122
+ obligation_results: ExternalConfirmationObligationResultV1[];
123
+ effective_blocking_obligation_refs: string[];
124
+ effective_advisory_obligation_refs: string[];
125
+ blocking_issues: string[];
126
+ advisory_state: ExternalConfirmationFulfillmentStateV1 | null;
127
+ advisory_issues: string[];
128
+ issues: string[];
129
+ }
130
+ export interface ExternalConfirmationExpectedV1 {
131
+ authority_ref: string;
132
+ kind: "semantic_fact" | "design_fact" | "contract_claim" | "contract_claim_actual";
133
+ statement: string | null;
134
+ located_value: ExternalConfirmationLocatedValueV1 | null;
135
+ comparison: {
136
+ comparator: string;
137
+ mode: "exact" | "tolerance";
138
+ parameters: ExternalConfirmationLocatedValueV1;
139
+ tolerance: ExternalConfirmationLocatedValueV1 | null;
140
+ mask: ExternalConfirmationLocatedValueV1 | null;
141
+ } | null;
142
+ }
143
+ export interface ExternalConfirmationPreparationObligationV1 extends EffectiveExternalObligationV1 {
144
+ result_kind: "actual" | "judgment";
145
+ expected: ExternalConfirmationExpectedV1;
146
+ }
147
+ export interface ExternalConfirmationPreparationConfirmationV1 {
148
+ confirmation_ref: string;
149
+ description: string;
150
+ owner: string;
151
+ actor: ExternalConfirmationActorV1;
152
+ identity_assurance: CompiledExternalConfirmationIdentityAssuranceV2;
153
+ target_ref: string;
154
+ environment_identity: string;
155
+ scenario: NonNullable<ExternalConfirmationV2["scenario"]>;
156
+ evidence_requirements: KeyedStatementV2[];
157
+ session_group: string;
158
+ relevant_input_identity: string;
159
+ relevant_input_mode: "bounded_paths" | "whole_candidate";
160
+ relevant_input_paths: string[];
161
+ challenge: string;
162
+ signable_canonical_digest: string;
163
+ obligations: ExternalConfirmationPreparationObligationV1[];
164
+ }
165
+ export interface ExternalConfirmationPreparationSessionV1 {
166
+ session_group: string;
167
+ suggested_session_id: string;
168
+ actor: ExternalConfirmationActorV1;
169
+ identity_assurance: CompiledExternalConfirmationIdentityAssuranceV2;
170
+ target_ref: string;
171
+ environment_identity: string;
172
+ scenario: NonNullable<ExternalConfirmationV2["scenario"]>;
173
+ evidence_requirements: KeyedStatementV2[];
174
+ confirmation_refs: string[];
175
+ obligations: ExternalConfirmationPreparationObligationV1[];
176
+ }
177
+ export interface ExternalConfirmationPreparationV1 {
178
+ schema_version: "long-task-external-confirmation-preparation-v2";
179
+ acceptance_effect: "none";
180
+ notice: "Preparation output does not establish acceptance.";
181
+ task_id: string;
182
+ compiled_identity: string;
183
+ authority_revision: number;
184
+ candidate: ExternalConfirmationCandidateV1;
185
+ actor_identity_boundary: "detached_ed25519_required_for_blocking_fulfillment";
186
+ confirmations: ExternalConfirmationPreparationConfirmationV1[];
187
+ sessions: ExternalConfirmationPreparationSessionV1[];
188
+ generated_at: string;
189
+ }
190
+ export interface RelevantExternalInputIdentityV1 {
191
+ mode: "bounded_paths" | "whole_candidate";
192
+ identity: string;
193
+ paths: string[];
194
+ }
195
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -4,6 +4,8 @@ import { currentGitState } from "./long-task-workspace.js";
4
4
  export interface FinalGateProtectedInputIdentity {
5
5
  compiled_identity: string;
6
6
  raw_contract_sha256: string;
7
+ protected_authority_inputs_identity: string;
8
+ external_confirmation_records: Record<string, string>;
7
9
  }
8
10
  export declare function captureFinalGateProtectedInputIdentity(repository: string, compiled: CompiledDeliveryContractV2): Promise<FinalGateProtectedInputIdentity>;
9
11
  export declare function finalGateIntegrityFindings(input: {
@@ -1,29 +1,36 @@
1
- import { readFile } from "node:fs/promises";
2
- import path from "node:path";
3
1
  import { compileDeliveryContract } from "./long-task-delivery-compiler.js";
4
- import { assertProtectedRepositoryFile } from "./long-task-protected-files.js";
2
+ import { captureStoredExternalConfirmationRecordIdentities } from "./long-task-external-confirmation-state.js";
3
+ import { captureProtectedAuthorityInputsIdentity } from "./long-task-freshness.js";
5
4
  import { activeAuthorityIdentityMatches, assertMatchingActiveBinding, loadActiveLongTaskAuthority, } from "./long-task-state.js";
6
5
  import { captureWorkspaceFingerprint, currentGitState, } from "./long-task-workspace.js";
7
- import { sha256Hex } from "./strict-codec.js";
8
6
  export async function captureFinalGateProtectedInputIdentity(repository, compiled) {
9
- const file = await assertProtectedRepositoryFile(repository, path.join(repository, ...compiled.contract_file.split("/")), "final_gate_delivery_contract");
7
+ const protectedAuthorityInputs = await captureProtectedAuthorityInputsIdentity(compiled);
10
8
  return {
11
9
  compiled_identity: compiled.compiled_identity,
12
- raw_contract_sha256: sha256Hex(await readFile(file)),
10
+ raw_contract_sha256: protectedAuthorityInputs.snapshot.raw_contract_sha256,
11
+ protected_authority_inputs_identity: protectedAuthorityInputs.identity,
12
+ external_confirmation_records: await captureStoredExternalConfirmationRecordIdentities(repository, compiled.workdir, compiled.global.acceptance.external_confirmations.map((row) => row.key)),
13
13
  };
14
14
  }
15
15
  export async function finalGateIntegrityFindings(input) {
16
16
  const findings = [];
17
+ // Fingerprint capture runs git write-tree. Finish it before currentGitState
18
+ // may refresh the same repository index, and finish both before the protected
19
+ // recompile may capture another workspace manifest.
17
20
  const after = await captureWorkspaceFingerprint(input.repository);
18
21
  const gitAfter = await currentGitState(input.repository);
22
+ const [authorityChanged, protectedFindings] = await Promise.all([
23
+ activeAuthorityChanged(input),
24
+ protectedInputFindings(input),
25
+ ]);
19
26
  if (after.identity !== input.workspace_identity_before ||
20
27
  gitAfter.head !== input.candidate.head ||
21
28
  gitAfter.tree !== input.candidate.tree ||
22
29
  gitAfter.dirty.length)
23
30
  findings.push(workspaceChangedFinding());
24
- if (await activeAuthorityChanged(input))
31
+ if (authorityChanged)
25
32
  findings.push(activeAuthorityChangedFinding());
26
- findings.push(...(await protectedInputFindings(input)));
33
+ findings.push(...protectedFindings);
27
34
  return findings;
28
35
  }
29
36
  async function activeAuthorityChanged(input) {
@@ -50,7 +57,11 @@ async function protectedInputFindings(input) {
50
57
  return after.compiled_identity !==
51
58
  input.protected_inputs_before.compiled_identity ||
52
59
  after.raw_contract_sha256 !==
53
- input.protected_inputs_before.raw_contract_sha256
60
+ input.protected_inputs_before.raw_contract_sha256 ||
61
+ after.protected_authority_inputs_identity !==
62
+ input.protected_inputs_before.protected_authority_inputs_identity ||
63
+ JSON.stringify(after.external_confirmation_records) !==
64
+ JSON.stringify(input.protected_inputs_before.external_confirmation_records)
54
65
  ? [
55
66
  protectedInputsChangedFinding({
56
67
  before: input.protected_inputs_before,
@@ -91,7 +102,7 @@ function protectedInputsChangedFinding(actual) {
91
102
  code: "protected_inputs_changed_during_final_gate",
92
103
  outcome_key: null,
93
104
  check_key: null,
94
- message: "Protected Contract, Source, controlling Context, verifier/runner, verification-input or workdir input identity changed while Final Gate was running.",
105
+ message: "Protected Contract, Source, controlling Context, verifier/runner, verification-input, workdir input or External Confirmation record identity changed while Final Gate was running.",
95
106
  actual,
96
107
  next_action: "Stop concurrent protected-input mutation, review any required Authority Revision, and rerun the complete Final Gate.",
97
108
  };
@@ -1,2 +1,7 @@
1
- import type { FinalReceiptV2 } from "./long-task-delivery-types.js";
2
- export declare function runDeliveryFinalGate(workdirInput: string): Promise<FinalReceiptV2>;
1
+ import { compileDeliveryContract } from "./long-task-delivery-compiler.js";
2
+ import type { FinalReceiptV3, LongTaskFindingV2 } from "./long-task-delivery-types.js";
3
+ import type { ExternalConfirmationEvaluationV1 } from "./long-task-external-confirmation-types.js";
4
+ export declare function runDeliveryFinalGate(workdirInput: string, options?: {
5
+ close_on_accept?: boolean;
6
+ }): Promise<FinalReceiptV3>;
7
+ export declare function externalConfirmationFindings(compiled: Awaited<ReturnType<typeof compileDeliveryContract>>, evaluations: ExternalConfirmationEvaluationV1[]): LongTaskFindingV2[];
@@ -1,11 +1,15 @@
1
1
  import { compileDeliveryContract } from "./long-task-delivery-compiler.js";
2
- import { outcomeResultExternallyBlocked } from "./long-task-claims.js";
2
+ import { evaluateExternalConfirmations } from "./long-task-external-confirmation-plan.js";
3
+ import { allEffectiveExternalRows, blockingExternalRows, } from "./long-task-external-confirmation-identity.js";
4
+ import { enrichFinding } from "./long-task-finding-context.js";
3
5
  import { captureFinalGateProtectedInputIdentity, finalGateIntegrityFindings, } from "./long-task-final-integrity.js";
4
- import { assertMatchingActiveBinding, loadActiveLongTaskAuthority, writeFinalReceipt, } from "./long-task-state.js";
6
+ import { captureFinalizationIdentity } from "./long-task-finalization-identity.js";
7
+ import { assertMatchingActiveBinding, loadActiveLongTaskAuthority, } from "./long-task-state.js";
8
+ import { finalizeDeliveryGateCas } from "./long-task-terminal-finalization.js";
5
9
  import { assertVerifierAuthorityCurrent, deliveryCompileFreshness, } from "./long-task-freshness.js";
6
10
  import { allCompiledChecks, runDeliveryChecks, } from "./long-task-verifier-v2.js";
7
11
  import { captureWorkspaceFingerprint, createWorkspaceSnapshot, currentGitState, repositoryRoot, } from "./long-task-workspace.js";
8
- export async function runDeliveryFinalGate(workdirInput) {
12
+ export async function runDeliveryFinalGate(workdirInput, options = {}) {
9
13
  const startedAt = new Date().toISOString();
10
14
  const repository = await repositoryRoot(process.cwd());
11
15
  const active = (await loadActiveLongTaskAuthority(repository, { migrate_legacy: true })).authority;
@@ -20,12 +24,14 @@ export async function runDeliveryFinalGate(workdirInput) {
20
24
  compiled_identity: active.active_authority_identity,
21
25
  worktree_identity: active.worktree_identity,
22
26
  };
23
- const candidate = await currentGitState(repository);
27
+ const acceptedCompiled = active.authority_snapshot;
28
+ const [candidate, , staleAuthorityInputs] = await Promise.all([
29
+ currentGitState(repository),
30
+ assertMatchingActiveBinding(acceptedCompiled),
31
+ deliveryCompileFreshness(acceptedCompiled),
32
+ ]);
24
33
  if (candidate.dirty.length)
25
34
  throw new Error(`final_gate_requires_clean_candidate_commit:${candidate.dirty.join(",")}`);
26
- const acceptedCompiled = active.authority_snapshot;
27
- await assertMatchingActiveBinding(acceptedCompiled);
28
- const staleAuthorityInputs = await deliveryCompileFreshness(acceptedCompiled);
29
35
  if (staleAuthorityInputs.length)
30
36
  throw new Error(`final_gate_protected_input_stale:${staleAuthorityInputs.join(",")}`);
31
37
  const compiled = await compileDeliveryContract(active.workdir, repository, {
@@ -34,12 +40,30 @@ export async function runDeliveryFinalGate(workdirInput) {
34
40
  authority_revision: active.authority_revision,
35
41
  require_completion_gate: true,
36
42
  });
37
- await assertMatchingActiveBinding(compiled);
38
- const protectedInputsBefore = await captureFinalGateProtectedInputIdentity(repository, compiled);
39
- const before = await captureWorkspaceFingerprint(repository);
43
+ const [, protectedInputsBefore, before] = await Promise.all([
44
+ assertMatchingActiveBinding(compiled),
45
+ captureFinalGateProtectedInputIdentity(repository, compiled),
46
+ captureWorkspaceFingerprint(repository),
47
+ ]);
40
48
  const snapshot = await createWorkspaceSnapshot(repository, active.workdir, `final-${compiled.task.id}`);
41
49
  try {
50
+ const expectedFinalizationIdentity = await captureFinalizationIdentity({
51
+ repository,
52
+ active,
53
+ compiled,
54
+ candidate: {
55
+ git_head: candidate.head,
56
+ git_tree: candidate.tree,
57
+ snapshot_sha256: snapshot.manifest.snapshot_sha256,
58
+ },
59
+ workspace_fingerprint: snapshot.manifest.fingerprint,
60
+ });
42
61
  const run = await runDeliveryChecks(compiled, snapshot, allCompiledChecks(compiled), true, true);
62
+ const externalResults = await evaluateExternalConfirmations(compiled, repository, active.workdir, snapshot.manifest, {
63
+ git_head: candidate.head,
64
+ git_tree: candidate.tree,
65
+ snapshot_sha256: snapshot.manifest.snapshot_sha256,
66
+ });
43
67
  run.findings.push(...(await finalGateIntegrityFindings({
44
68
  repository,
45
69
  active,
@@ -48,53 +72,60 @@ export async function runDeliveryFinalGate(workdirInput) {
48
72
  workspace_identity_before: before.identity,
49
73
  protected_inputs_before: protectedInputsBefore,
50
74
  })));
51
- const outcomeResults = projectOutcomes(compiled, run.check_results, run.findings);
52
- const globalChecks = run.check_results.filter((check) => check.outcome_key === null);
53
- const globalHardFailure = globalChecks.some((check) => check.status !== "passed" && check.status !== "blocked_external");
54
- const globalBlocked = globalChecks.some((check) => check.status === "blocked_external");
55
- const failed = globalHardFailure ||
56
- Object.values(outcomeResults).includes("failed") ||
57
- run.findings.some((finding) => finding.code !== "blocked_external");
58
- const blocked = globalBlocked ||
59
- Object.values(outcomeResults).includes("blocked_external") ||
60
- run.findings.some((finding) => finding.code === "blocked_external");
61
- const targetBlocked = compiled.global.acceptance.external_confirmations.some((confirmation) => confirmation.blocks_target);
62
- const workflowStatus = failed
75
+ const outcomeResults = projectOutcomes(compiled, run.check_results, run.findings, externalResults);
76
+ const checks = allCompiledChecks(compiled);
77
+ const machineFailed = run.check_results.some((result) => semanticCheckFailed(checks, result)) ||
78
+ run.findings.some((finding) => completionFindingBlocks(checks, finding));
79
+ const blockingExternal = externalResults.filter((evaluation) => evaluation.blocks_target);
80
+ const externalNeedsWork = blockingExternal.some((evaluation) => evaluation.state !== "fulfilled" && evaluation.state !== "pending");
81
+ const externalPending = blockingExternal.some((evaluation) => evaluation.state === "pending");
82
+ const workflowStatus = machineFailed || externalNeedsWork
63
83
  ? "needs_work"
64
- : blocked || targetBlocked
84
+ : externalPending
65
85
  ? "blocked_external"
66
- : compiled.global.acceptance.external_confirmations.length
67
- ? "machine_accepted_external_pending"
86
+ : blockingExternal.length
87
+ ? "delivery_accepted"
68
88
  : "machine_accepted";
69
89
  const targetState = workflowStatus === "machine_accepted" ||
70
- workflowStatus === "machine_accepted_external_pending"
90
+ workflowStatus === "delivery_accepted"
71
91
  ? compiled.task.target_profile.required_state
72
92
  : workflowStatus === "blocked_external"
73
93
  ? "blocked_external"
74
94
  : "not_accepted";
75
- return writeFinalReceipt(repository, active.workdir, {
76
- schema_version: "long-task-final-receipt-v2",
77
- authority_scope: "audit_only",
78
- reusable_for_acceptance: false,
79
- workflow_status: workflowStatus,
80
- target_profile: compiled.task.target_profile,
81
- target_state: targetState,
82
- stage_results: projectStages(compiled, outcomeResults),
83
- compiled_identity: compiled.compiled_identity,
84
- contract_sha256: compiled.contract_sha256,
85
- snapshot_sha256: snapshot.manifest.snapshot_sha256,
86
- git_head: candidate.head,
87
- git_tree: candidate.tree,
88
- source_hashes: compiled.source_hashes,
89
- context_hashes: compiled.context_snapshot.sha256,
90
- verifier_identity: compiled.verifier_identity,
91
- check_results: run.check_results,
92
- outcome_results: outcomeResults,
93
- external_confirmations: compiled.global.acceptance.external_confirmations,
94
- findings: run.findings,
95
- snapshot_preparation_ms: snapshot.preparation_ms,
96
- started_at: startedAt,
97
- completed_at: new Date().toISOString(),
95
+ const externalFindings = externalConfirmationFindings(compiled, externalResults);
96
+ const receiptFindings = [...run.findings, ...externalFindings].map((finding) => enrichFinding(compiled, finding));
97
+ return finalizeDeliveryGateCas({
98
+ repository,
99
+ workdir: active.workdir,
100
+ provisional_manifest: snapshot.manifest,
101
+ expected_authority: acceptedAuthority,
102
+ expected_finalization_identity: expectedFinalizationIdentity,
103
+ close_on_accept: options.close_on_accept ?? false,
104
+ provisional_result: {
105
+ schema_version: "long-task-final-receipt-v3",
106
+ authority_scope: "audit_only",
107
+ reusable_for_acceptance: false,
108
+ workflow_status: workflowStatus,
109
+ target_profile: compiled.task.target_profile,
110
+ target_state: targetState,
111
+ stage_results: projectStages(compiled, outcomeResults),
112
+ compiled_identity: compiled.compiled_identity,
113
+ contract_sha256: compiled.contract_sha256,
114
+ snapshot_sha256: snapshot.manifest.snapshot_sha256,
115
+ git_head: candidate.head,
116
+ git_tree: candidate.tree,
117
+ source_hashes: compiled.source_hashes,
118
+ context_hashes: compiled.context_snapshot.sha256,
119
+ verifier_identity: compiled.verifier_identity,
120
+ check_results: run.check_results,
121
+ outcome_results: outcomeResults,
122
+ external_confirmations: compiled.global.acceptance.external_confirmations,
123
+ external_confirmation_results: externalResults,
124
+ findings: receiptFindings,
125
+ snapshot_preparation_ms: snapshot.preparation_ms,
126
+ started_at: startedAt,
127
+ completed_at: new Date().toISOString(),
128
+ },
98
129
  });
99
130
  }
100
131
  finally {
@@ -132,20 +163,113 @@ function projectStages(compiled, outcomes) {
132
163
  }
133
164
  return result;
134
165
  }
135
- function projectOutcomes(compiled, checks, findings) {
166
+ function projectOutcomes(compiled, checks, findings, externalResults) {
167
+ const compiledChecks = allCompiledChecks(compiled);
136
168
  return Object.fromEntries(compiled.outcomes.map((outcome) => {
137
169
  const outcomeKey = outcome.key;
138
- const owned = checks.filter((check) => check.outcome_key === outcomeKey);
139
- const ownFindings = findings.filter((finding) => finding.outcome_key === outcomeKey || finding.outcome_key === null);
140
- const status = owned.some((check) => check.status !== "passed" && check.status !== "blocked_external") || ownFindings.some((finding) => finding.code !== "blocked_external")
170
+ const owned = checks.filter((check) => check.outcome_key === outcomeKey &&
171
+ compiledChecks.find((candidate) => candidate.outcome_key === check.outcome_key &&
172
+ candidate.key === check.check_key)?.completion_role === "semantic");
173
+ const ownFindings = findings.filter((finding) => (finding.outcome_key === outcomeKey ||
174
+ (finding.outcome_key === null && finding.check_key === null)) &&
175
+ completionFindingBlocks(compiledChecks, finding));
176
+ const external = externalResults.filter((evaluation) => evaluation.blocks_target &&
177
+ externalConfirmationImpactsOutcome(compiled, evaluation, outcomeKey));
178
+ const status = owned.some((check) => check.status !== "passed") ||
179
+ ownFindings.length ||
180
+ external.some((evaluation) => evaluation.state !== "fulfilled" && evaluation.state !== "pending")
141
181
  ? "failed"
142
- : outcomeResultExternallyBlocked(compiled, outcomeKey) ||
143
- owned.some((check) => check.status === "blocked_external")
182
+ : external.some((evaluation) => evaluation.state === "pending")
144
183
  ? "blocked_external"
145
184
  : "passed";
146
185
  return [outcomeKey, status];
147
186
  }));
148
187
  }
188
+ function semanticCheckFailed(checks, result) {
189
+ const check = checks.find((candidate) => candidate.outcome_key === result.outcome_key &&
190
+ candidate.key === result.check_key);
191
+ return check?.completion_role === "semantic" && result.status !== "passed";
192
+ }
193
+ function completionFindingBlocks(checks, finding) {
194
+ if (!finding.check_key)
195
+ return true;
196
+ const check = checks.find((candidate) => candidate.outcome_key === finding.outcome_key &&
197
+ candidate.key === finding.check_key);
198
+ return check?.completion_role !== "diagnostic";
199
+ }
200
+ function externalConfirmationImpactsOutcome(compiled, evaluation, outcomeKey) {
201
+ return blockingExternalRows(compiled, evaluation.confirmation_ref).some((row) => row.outcome_key === outcomeKey ||
202
+ row.claim_ref === outcomeKey ||
203
+ row.claim_ref.startsWith(`${outcomeKey}.`) ||
204
+ row.local_claim_ref === outcomeKey ||
205
+ row.local_claim_ref.startsWith(`${outcomeKey}.`));
206
+ }
207
+ export function externalConfirmationFindings(compiled, evaluations) {
208
+ return evaluations.flatMap((evaluation) => {
209
+ const roles = [];
210
+ if (evaluation.blocks_target && evaluation.state !== "fulfilled")
211
+ roles.push({
212
+ role: "blocking",
213
+ state: evaluation.state,
214
+ issues: evaluation.blocking_issues,
215
+ });
216
+ if (evaluation.advisory_state &&
217
+ evaluation.advisory_state !== "fulfilled" &&
218
+ evaluation.advisory_state !== "pending")
219
+ roles.push({
220
+ role: "advisory",
221
+ state: evaluation.advisory_state,
222
+ issues: evaluation.advisory_issues,
223
+ });
224
+ return roles.map(({ role, state, issues }) => {
225
+ const declaration = compiled.global.acceptance.external_confirmations.find((confirmation) => confirmation.key === evaluation.confirmation_ref);
226
+ const obligations = allEffectiveExternalRows(compiled, evaluation.confirmation_ref).filter((obligation) => obligation.completion_role === role);
227
+ const obligationRefs = new Set(obligations.map((obligation) => obligation.obligation_ref));
228
+ const results = evaluation.obligation_results.filter((result) => result.completion_role === role);
229
+ const declaredObligations = (declaration?.obligations ?? []).filter((obligation) => obligationRefs.has(obligation.key));
230
+ return {
231
+ code: role === "blocking"
232
+ ? `external_confirmation_${state}`
233
+ : `external_confirmation_advisory_${state}`,
234
+ outcome_key: results.find((result) => result.outcome_key !== null)?.outcome_key ??
235
+ obligations.find((obligation) => obligation.outcome_key !== null)
236
+ ?.outcome_key ??
237
+ null,
238
+ check_key: null,
239
+ claim_keys: [
240
+ ...new Set([
241
+ ...obligations.map((obligation) => obligation.claim_ref),
242
+ ...results.map((result) => result.claim_ref),
243
+ ]),
244
+ ].sort(),
245
+ fact_refs: obligations.flatMap((obligation) => obligation.fact_ref ? [obligation.fact_ref] : []),
246
+ proof_obligation_refs: obligations.flatMap((obligation) => obligation.proof_ref ? [obligation.proof_ref] : []),
247
+ expected_authority_refs: declaredObligations.map((obligation) => obligation.expected_authority_ref),
248
+ actual_evidence_refs: [
249
+ ...(evaluation.record_sha256
250
+ ? [`external-record:${evaluation.record_sha256}`]
251
+ : []),
252
+ ...results.flatMap((result) => result.evidence_refs.map((reference) => `external-artifact:${reference}`)),
253
+ ],
254
+ verification_owner: {
255
+ kind: "external_confirmation",
256
+ confirmation_ref: evaluation.confirmation_ref,
257
+ owner: evaluation.owner,
258
+ target_ref: declaration?.target_ref ?? "undeclared",
259
+ },
260
+ invalidation_reasons: [state, ...issues],
261
+ rerun_obligation_refs: obligations.map((obligation) => obligation.obligation_ref),
262
+ actual: evaluation,
263
+ message: role === "blocking"
264
+ ? `Blocking External Confirmation ${evaluation.confirmation_ref} is ${state}.`
265
+ : `Advisory External Confirmation ${evaluation.confirmation_ref} is ${state}.`,
266
+ next_action: state === "pending"
267
+ ? `Run ty-context long-task external prepare <workdir> --confirmation ${evaluation.confirmation_ref}, collect exact per-obligation evidence, then submit the record.`
268
+ : `Repair or revoke External Confirmation ${evaluation.confirmation_ref}, prepare it again on the current candidate, and submit a fresh exact record.`,
269
+ };
270
+ });
271
+ });
272
+ }
149
273
  async function resolved(workdir) {
150
274
  return (await import("node:path")).default.resolve(workdir);
151
275
  }
@@ -0,0 +1,27 @@
1
+ import type { CompiledDeliveryContractV2, WorkspaceFingerprintV2 } from "./long-task-delivery-types.js";
2
+ import type { ExternalConfirmationCandidateV1 } from "./long-task-external-confirmation-types.js";
3
+ import type { ActiveLongTaskAuthorityV3 } from "./long-task-state.js";
4
+ export interface FinalizationIdentityV1 {
5
+ active_authority_identity: string;
6
+ authority_revision: number;
7
+ verifier_identity_sha256: string;
8
+ candidate: {
9
+ git_head: string;
10
+ git_tree: string;
11
+ workspace_fingerprint: string;
12
+ };
13
+ compiled_identity: string;
14
+ raw_contract_sha256: string;
15
+ protected_authority_inputs_identity: string;
16
+ external_records: Record<string, string>;
17
+ external_challenges: Record<string, string>;
18
+ external_artifacts: Record<string, string>;
19
+ }
20
+ export declare function captureFinalizationIdentity(input: {
21
+ repository: string;
22
+ active: ActiveLongTaskAuthorityV3;
23
+ compiled: CompiledDeliveryContractV2;
24
+ candidate: ExternalConfirmationCandidateV1;
25
+ workspace_fingerprint: string | Pick<WorkspaceFingerprintV2, "identity">;
26
+ }): Promise<FinalizationIdentityV1>;
27
+ export declare function finalizationIdentityDigest(identity: FinalizationIdentityV1): string;