project-tiny-context-harness 0.8.11 → 0.8.13

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 (395) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +514 -472
  3. package/assets/README.md +803 -749
  4. package/assets/README.zh-CN.md +468 -431
  5. package/assets/agents/.gitkeep +1 -1
  6. package/assets/agents/AGENTS_CORE.md +22 -24
  7. package/assets/agents/long-task-implementation.toml +15 -0
  8. package/assets/context_templates/architecture.md +18 -18
  9. package/assets/context_templates/area.md +30 -30
  10. package/assets/context_templates/context.toml +24 -24
  11. package/assets/context_templates/deployment.md +35 -35
  12. package/assets/context_templates/global.md +56 -56
  13. package/assets/context_templates/product-surface-contract.md +70 -70
  14. package/assets/context_templates/screen-contract.md +189 -189
  15. package/assets/context_templates/verification.md +25 -25
  16. package/assets/github/.gitkeep +1 -1
  17. package/assets/github/harness.yml +39 -39
  18. package/assets/make/.gitkeep +1 -1
  19. package/assets/make/ty-context.mk +48 -48
  20. package/assets/skills/context_development_engineer/SKILL.md +72 -185
  21. package/assets/skills/context_full_project_export/SKILL.md +28 -28
  22. package/assets/skills/context_harness_upgrade/SKILL.md +60 -60
  23. package/assets/skills/context_product_plan/SKILL.md +35 -101
  24. package/assets/skills/context_surface_contract/SKILL.md +194 -191
  25. package/assets/skills/context_uiux_design/SKILL.md +49 -172
  26. package/assets/skills/design-resource-authoring/SKILL.md +54 -88
  27. package/assets/skills/design-resource-authoring/references/downstream-handoff.md +51 -163
  28. package/assets/skills/design-resource-authoring/references/formal-selected-web-app-handoff.md +96 -0
  29. package/assets/skills/design-resource-authoring/references/open-design-provider.md +140 -120
  30. package/assets/skills/design-resource-authoring/references/recovery-and-writeback.md +199 -0
  31. package/assets/skills/design-resource-authoring/references/resource-selection.md +158 -181
  32. package/assets/skills/design-system-authoring/SKILL.md +57 -57
  33. package/assets/skills/design-system-authoring/agents/openai.yaml +6 -6
  34. package/assets/skills/design-system-authoring/references/authority-adoption.md +48 -48
  35. package/assets/skills/design-system-authoring/references/open-design-design-system-provider.md +110 -110
  36. package/assets/skills/long-task-workflow/SKILL.md +71 -106
  37. package/assets/skills/long-task-workflow/agents/openai.yaml +1 -1
  38. package/assets/skills/long-task-workflow/references/authority-lifecycle.md +71 -69
  39. package/assets/skills/long-task-workflow/references/contract-authoring.md +110 -101
  40. package/assets/skills/long-task-workflow/references/evidence-design.md +99 -78
  41. package/assets/skills/long-task-workflow/references/source-authoring.md +90 -90
  42. package/assets/tools/validate_context.py +442 -442
  43. package/dist/commands/design-resource-recovery.d.ts +1 -0
  44. package/dist/commands/design-resource-recovery.js +152 -0
  45. package/dist/commands/design-resource.js +29 -3
  46. package/dist/commands/enable.js +2 -0
  47. package/dist/commands/index.js +2 -2
  48. package/dist/commands/long-task-revision.js +8 -7
  49. package/dist/commands/sync.js +2 -0
  50. package/dist/index.d.ts +3 -3
  51. package/dist/index.js +2 -0
  52. package/dist/lib/compact-authoring-support.d.ts +22 -0
  53. package/dist/lib/compact-authoring-support.js +143 -0
  54. package/dist/lib/compact-shared-structure-authoring.d.ts +5 -0
  55. package/dist/lib/compact-shared-structure-authoring.js +9 -0
  56. package/dist/lib/compact-shared-structure-types.d.ts +61 -0
  57. package/dist/lib/compact-shared-structure-types.js +1 -0
  58. package/dist/lib/compact-shared-structure-validation.d.ts +2 -0
  59. package/dist/lib/compact-shared-structure-validation.js +159 -0
  60. package/dist/lib/compact-shared-structures.d.ts +3 -0
  61. package/dist/lib/compact-shared-structures.js +204 -0
  62. package/dist/lib/design-resource-fact-enums.d.ts +4 -0
  63. package/dist/lib/design-resource-fact-enums.js +12 -0
  64. package/dist/lib/design-resource-fact-manifest-shape-evidence.js +2 -2
  65. package/dist/lib/design-resource-fact-policy.d.ts +2 -2
  66. package/dist/lib/design-resource-fact-types.d.ts +2 -2
  67. package/dist/lib/design-resource-handoff-bundle-draft.js +4 -2
  68. package/dist/lib/design-resource-handoff-input-types.d.ts +3 -0
  69. package/dist/lib/design-resource-handoff-parser.d.ts +2 -2
  70. package/dist/lib/design-resource-handoff-parser.js +2 -2
  71. package/dist/lib/design-resource-handoff-shape.d.ts +2 -0
  72. package/dist/lib/design-resource-handoff-shape.js +10 -0
  73. package/dist/lib/design-resource-handoff-snapshot.js +4 -0
  74. package/dist/lib/design-resource-handoff-validation.d.ts +4 -1
  75. package/dist/lib/design-resource-handoff-validation.js +11 -0
  76. package/dist/lib/design-resource-handoff-web-dependency-validation.d.ts +4 -2
  77. package/dist/lib/design-resource-reconciliation-codec.d.ts +2 -0
  78. package/dist/lib/design-resource-reconciliation-codec.js +174 -0
  79. package/dist/lib/design-resource-reconciliation-types.d.ts +62 -0
  80. package/dist/lib/design-resource-reconciliation-types.js +1 -0
  81. package/dist/lib/design-resource-reconciliation.d.ts +3 -0
  82. package/dist/lib/design-resource-reconciliation.js +224 -0
  83. package/dist/lib/design-resource-recovery-authority-policy.d.ts +8 -0
  84. package/dist/lib/design-resource-recovery-authority-policy.js +123 -0
  85. package/dist/lib/design-resource-recovery-catalog-resources.d.ts +6 -0
  86. package/dist/lib/design-resource-recovery-catalog-resources.js +121 -0
  87. package/dist/lib/design-resource-recovery-catalog-shape.d.ts +3 -0
  88. package/dist/lib/design-resource-recovery-catalog-shape.js +104 -0
  89. package/dist/lib/design-resource-recovery-catalog.d.ts +9 -0
  90. package/dist/lib/design-resource-recovery-catalog.js +103 -0
  91. package/dist/lib/design-resource-recovery-cleanup.d.ts +2 -0
  92. package/dist/lib/design-resource-recovery-cleanup.js +11 -0
  93. package/dist/lib/design-resource-recovery-codec-primitives.d.ts +19 -0
  94. package/dist/lib/design-resource-recovery-codec-primitives.js +92 -0
  95. package/dist/lib/design-resource-recovery-codec.d.ts +4 -0
  96. package/dist/lib/design-resource-recovery-codec.js +93 -0
  97. package/dist/lib/design-resource-recovery-current.d.ts +9 -0
  98. package/dist/lib/design-resource-recovery-current.js +41 -0
  99. package/dist/lib/design-resource-recovery-delta-policy.d.ts +5 -0
  100. package/dist/lib/design-resource-recovery-delta-policy.js +108 -0
  101. package/dist/lib/design-resource-recovery-files.d.ts +37 -0
  102. package/dist/lib/design-resource-recovery-files.js +204 -0
  103. package/dist/lib/design-resource-recovery-final-disposition-shape.d.ts +2 -0
  104. package/dist/lib/design-resource-recovery-final-disposition-shape.js +47 -0
  105. package/dist/lib/design-resource-recovery-patch-types.d.ts +54 -0
  106. package/dist/lib/design-resource-recovery-patch-types.js +1 -0
  107. package/dist/lib/design-resource-recovery-replay.d.ts +7 -0
  108. package/dist/lib/design-resource-recovery-replay.js +112 -0
  109. package/dist/lib/design-resource-recovery-repository-bindings.d.ts +9 -0
  110. package/dist/lib/design-resource-recovery-repository-bindings.js +49 -0
  111. package/dist/lib/design-resource-recovery-schema.d.ts +5 -0
  112. package/dist/lib/design-resource-recovery-schema.js +5 -0
  113. package/dist/lib/design-resource-recovery-shape.d.ts +10 -0
  114. package/dist/lib/design-resource-recovery-shape.js +184 -0
  115. package/dist/lib/design-resource-recovery-source-authority.d.ts +5 -0
  116. package/dist/lib/design-resource-recovery-source-authority.js +219 -0
  117. package/dist/lib/design-resource-recovery-text.d.ts +17 -0
  118. package/dist/lib/design-resource-recovery-text.js +186 -0
  119. package/dist/lib/design-resource-recovery-types.d.ts +197 -0
  120. package/dist/lib/design-resource-recovery-types.js +1 -0
  121. package/dist/lib/design-resource-recovery-writeback-policy.d.ts +5 -0
  122. package/dist/lib/design-resource-recovery-writeback-policy.js +326 -0
  123. package/dist/lib/design-resource-recovery-writeback-shape.d.ts +6 -0
  124. package/dist/lib/design-resource-recovery-writeback-shape.js +155 -0
  125. package/dist/lib/design-resource-recovery.d.ts +44 -0
  126. package/dist/lib/design-resource-recovery.js +216 -0
  127. package/dist/lib/design-resource-symbolic-applicability-authority.d.ts +7 -0
  128. package/dist/lib/design-resource-symbolic-applicability-authority.js +19 -0
  129. package/dist/lib/design-resource-symbolic-applicability-policy.d.ts +12 -0
  130. package/dist/lib/design-resource-symbolic-applicability-policy.js +79 -0
  131. package/dist/lib/design-resource-symbolic-applicability-profiles.d.ts +8 -0
  132. package/dist/lib/design-resource-symbolic-applicability-profiles.js +55 -0
  133. package/dist/lib/design-resource-symbolic-applicability-shape.d.ts +2 -0
  134. package/dist/lib/design-resource-symbolic-applicability-shape.js +76 -0
  135. package/dist/lib/design-resource-symbolic-applicability-validation.d.ts +7 -0
  136. package/dist/lib/design-resource-symbolic-applicability-validation.js +128 -0
  137. package/dist/lib/design-resource-symbolic-compilation.d.ts +3 -0
  138. package/dist/lib/design-resource-symbolic-compilation.js +13 -0
  139. package/dist/lib/design-resource-symbolic-denotation.d.ts +3 -0
  140. package/dist/lib/design-resource-symbolic-denotation.js +167 -0
  141. package/dist/lib/design-resource-symbolic-disposition-validation.d.ts +4 -0
  142. package/dist/lib/design-resource-symbolic-disposition-validation.js +28 -0
  143. package/dist/lib/design-resource-symbolic-fact-policy.d.ts +12 -0
  144. package/dist/lib/design-resource-symbolic-fact-policy.js +12 -0
  145. package/dist/lib/design-resource-symbolic-fact-shape.d.ts +3 -0
  146. package/dist/lib/design-resource-symbolic-fact-shape.js +138 -0
  147. package/dist/lib/design-resource-symbolic-fact-types.d.ts +213 -0
  148. package/dist/lib/design-resource-symbolic-fact-types.js +1 -0
  149. package/dist/lib/design-resource-symbolic-fact-validation.d.ts +3 -0
  150. package/dist/lib/design-resource-symbolic-fact-validation.js +86 -0
  151. package/dist/lib/design-resource-symbolic-indexes.d.ts +23 -0
  152. package/dist/lib/design-resource-symbolic-indexes.js +54 -0
  153. package/dist/lib/design-resource-symbolic-manifest-shape.d.ts +3 -0
  154. package/dist/lib/design-resource-symbolic-manifest-shape.js +155 -0
  155. package/dist/lib/design-resource-symbolic-manifest-validation.d.ts +6 -0
  156. package/dist/lib/design-resource-symbolic-manifest-validation.js +132 -0
  157. package/dist/lib/design-resource-symbolic-noninterference-artifact.d.ts +33 -0
  158. package/dist/lib/design-resource-symbolic-noninterference-artifact.js +110 -0
  159. package/dist/lib/design-resource-symbolic-noninterference-equivalence.d.ts +3 -0
  160. package/dist/lib/design-resource-symbolic-noninterference-equivalence.js +77 -0
  161. package/dist/lib/design-resource-symbolic-noninterference-recompute.d.ts +4 -0
  162. package/dist/lib/design-resource-symbolic-noninterference-recompute.js +146 -0
  163. package/dist/lib/design-resource-symbolic-noninterference-scope.d.ts +7 -0
  164. package/dist/lib/design-resource-symbolic-noninterference-scope.js +49 -0
  165. package/dist/lib/design-resource-symbolic-noninterference-shape.d.ts +2 -0
  166. package/dist/lib/design-resource-symbolic-noninterference-shape.js +152 -0
  167. package/dist/lib/design-resource-symbolic-noninterference-types.d.ts +103 -0
  168. package/dist/lib/design-resource-symbolic-noninterference-types.js +1 -0
  169. package/dist/lib/design-resource-symbolic-noninterference-validation.d.ts +5 -0
  170. package/dist/lib/design-resource-symbolic-noninterference-validation.js +62 -0
  171. package/dist/lib/design-resource-symbolic-oracle-fingerprint.d.ts +1 -0
  172. package/dist/lib/design-resource-symbolic-oracle-fingerprint.js +47 -0
  173. package/dist/lib/design-resource-symbolic-predicate-shape.d.ts +6 -0
  174. package/dist/lib/design-resource-symbolic-predicate-shape.js +123 -0
  175. package/dist/lib/design-resource-symbolic-production-closure.d.ts +4 -0
  176. package/dist/lib/design-resource-symbolic-production-closure.js +144 -0
  177. package/dist/lib/design-resource-symbolic-proof-authority-validation.d.ts +10 -0
  178. package/dist/lib/design-resource-symbolic-proof-authority-validation.js +68 -0
  179. package/dist/lib/design-resource-symbolic-proof-validation.d.ts +10 -0
  180. package/dist/lib/design-resource-symbolic-proof-validation.js +89 -0
  181. package/dist/lib/design-resource-symbolic-region-validation.d.ts +19 -0
  182. package/dist/lib/design-resource-symbolic-region-validation.js +146 -0
  183. package/dist/lib/design-resource-symbolic-resource-validation.d.ts +5 -0
  184. package/dist/lib/design-resource-symbolic-resource-validation.js +90 -0
  185. package/dist/lib/design-resource-symbolic-rule-shape.d.ts +27 -0
  186. package/dist/lib/design-resource-symbolic-rule-shape.js +158 -0
  187. package/dist/lib/design-resource-symbolic-safety-validation.d.ts +6 -0
  188. package/dist/lib/design-resource-symbolic-safety-validation.js +29 -0
  189. package/dist/lib/design-resource-symbolic-source-ir-evaluation.d.ts +19 -0
  190. package/dist/lib/design-resource-symbolic-source-ir-evaluation.js +74 -0
  191. package/dist/lib/design-resource-symbolic-source-ir-evidence.d.ts +44 -0
  192. package/dist/lib/design-resource-symbolic-source-ir-evidence.js +88 -0
  193. package/dist/lib/design-resource-symbolic-source-ir-oracle.d.ts +13 -0
  194. package/dist/lib/design-resource-symbolic-source-ir-oracle.js +96 -0
  195. package/dist/lib/design-resource-symbolic-source-ir-proof.d.ts +14 -0
  196. package/dist/lib/design-resource-symbolic-source-ir-proof.js +98 -0
  197. package/dist/lib/design-resource-symbolic-source-ir-shape.d.ts +2 -0
  198. package/dist/lib/design-resource-symbolic-source-ir-shape.js +38 -0
  199. package/dist/lib/design-resource-symbolic-source-ir-types.d.ts +17 -0
  200. package/dist/lib/design-resource-symbolic-source-ir-types.js +2 -0
  201. package/dist/lib/design-resource-symbolic-static-dependency-validation.d.ts +2 -0
  202. package/dist/lib/design-resource-symbolic-static-dependency-validation.js +83 -0
  203. package/dist/lib/design-resource-symbolic-structural-closure-validation.d.ts +6 -0
  204. package/dist/lib/design-resource-symbolic-structural-closure-validation.js +79 -0
  205. package/dist/lib/design-resource-symbolic-validation-support.d.ts +29 -0
  206. package/dist/lib/design-resource-symbolic-validation-support.js +111 -0
  207. package/dist/lib/design-resource-v1-capacity-header.d.ts +8 -0
  208. package/dist/lib/design-resource-v1-capacity-header.js +231 -0
  209. package/dist/lib/design-resource-v1-capacity.d.ts +5 -0
  210. package/dist/lib/design-resource-v1-capacity.js +45 -0
  211. package/dist/lib/init.js +1 -0
  212. package/dist/lib/long-task-acceptance-shape.js +8 -2
  213. package/dist/lib/long-task-activation-validation.js +13 -3
  214. package/dist/lib/long-task-admitted-observation-records.d.ts +25 -0
  215. package/dist/lib/long-task-admitted-observation-records.js +40 -0
  216. package/dist/lib/long-task-admitted-observation.d.ts +93 -0
  217. package/dist/lib/long-task-admitted-observation.js +201 -0
  218. package/dist/lib/long-task-artifacts.d.ts +1 -0
  219. package/dist/lib/long-task-artifacts.js +1 -0
  220. package/dist/lib/long-task-authority-material-diff.js +1 -0
  221. package/dist/lib/long-task-authority-policy.d.ts +5 -0
  222. package/dist/lib/long-task-authority-policy.js +5 -0
  223. package/dist/lib/long-task-authority-revision-details.js +3 -1
  224. package/dist/lib/long-task-authority.js +2 -1
  225. package/dist/lib/long-task-check-execution-policy.js +5 -0
  226. package/dist/lib/long-task-check-runner.d.ts +2 -2
  227. package/dist/lib/long-task-check-runner.js +440 -23
  228. package/dist/lib/long-task-claims.d.ts +18 -0
  229. package/dist/lib/long-task-claims.js +35 -0
  230. package/dist/lib/long-task-codex-agent-profile.d.ts +42 -0
  231. package/dist/lib/long-task-codex-agent-profile.js +276 -0
  232. package/dist/lib/long-task-compact-authoring-projections.d.ts +12 -0
  233. package/dist/lib/long-task-compact-authoring-projections.js +67 -0
  234. package/dist/lib/long-task-compact-authoring.d.ts +3 -0
  235. package/dist/lib/long-task-compact-authoring.js +173 -0
  236. package/dist/lib/long-task-compact-carrier.d.ts +7 -0
  237. package/dist/lib/long-task-compact-carrier.js +132 -0
  238. package/dist/lib/long-task-compact-parser.d.ts +14 -0
  239. package/dist/lib/long-task-compact-parser.js +123 -0
  240. package/dist/lib/long-task-compact-primitives.d.ts +22 -0
  241. package/dist/lib/long-task-compact-primitives.js +132 -0
  242. package/dist/lib/long-task-compact-projections.d.ts +4 -0
  243. package/dist/lib/long-task-compact-projections.js +153 -0
  244. package/dist/lib/long-task-compact-structure-targets.d.ts +2 -0
  245. package/dist/lib/long-task-compact-structure-targets.js +91 -0
  246. package/dist/lib/long-task-conformance-policy.js +3 -1
  247. package/dist/lib/long-task-counterfactual-claim-policy.d.ts +3 -4
  248. package/dist/lib/long-task-counterfactual-claim-policy.js +11 -3
  249. package/dist/lib/long-task-counterfactual-sandbox.d.ts +1 -1
  250. package/dist/lib/long-task-counterfactual-sandbox.js +8 -5
  251. package/dist/lib/long-task-counterfactual-types.d.ts +2 -0
  252. package/dist/lib/long-task-delivery-compiler.js +2 -0
  253. package/dist/lib/long-task-delivery-parser.d.ts +1 -0
  254. package/dist/lib/long-task-delivery-parser.js +38 -6
  255. package/dist/lib/long-task-design-resource-handoff.d.ts +2 -1
  256. package/dist/lib/long-task-design-resource-handoff.js +71 -11
  257. package/dist/lib/long-task-design-resource-method-binding.d.ts +8 -1
  258. package/dist/lib/long-task-design-resource-method-binding.js +150 -0
  259. package/dist/lib/long-task-evidence-capability-codec.js +256 -34
  260. package/dist/lib/long-task-evidence-capability-policy.d.ts +3 -2
  261. package/dist/lib/long-task-evidence-capability-policy.js +142 -8
  262. package/dist/lib/long-task-evidence-capability-runtime.d.ts +5 -2
  263. package/dist/lib/long-task-evidence-capability-runtime.js +420 -68
  264. package/dist/lib/long-task-evidence-capability-types.d.ts +70 -2
  265. package/dist/lib/long-task-evidence-sensitivity-policy.d.ts +9 -0
  266. package/dist/lib/long-task-evidence-sensitivity-policy.js +31 -1
  267. package/dist/lib/long-task-evidence-v2.d.ts +4 -4
  268. package/dist/lib/long-task-evidence-v2.js +322 -44
  269. package/dist/lib/long-task-exact-comparison.d.ts +16 -0
  270. package/dist/lib/long-task-exact-comparison.js +28 -0
  271. package/dist/lib/long-task-execution-observation.d.ts +24 -0
  272. package/dist/lib/long-task-execution-observation.js +332 -0
  273. package/dist/lib/long-task-explain-acceptance-link.d.ts +4 -0
  274. package/dist/lib/long-task-explain-acceptance-link.js +4 -0
  275. package/dist/lib/long-task-explain-claim-links.d.ts +2 -0
  276. package/dist/lib/long-task-explain-claim-links.js +2 -0
  277. package/dist/lib/long-task-explain-source-links.d.ts +6 -0
  278. package/dist/lib/long-task-final-v2.js +7 -4
  279. package/dist/lib/long-task-hook-install.d.ts +19 -2
  280. package/dist/lib/long-task-hook-install.js +288 -91
  281. package/dist/lib/long-task-json-pointer-observation.d.ts +59 -0
  282. package/dist/lib/long-task-json-pointer-observation.js +184 -0
  283. package/dist/lib/long-task-observation-artifact.d.ts +8 -0
  284. package/dist/lib/long-task-observation-artifact.js +58 -0
  285. package/dist/lib/long-task-observation-authority.d.ts +17 -0
  286. package/dist/lib/long-task-observation-authority.js +348 -0
  287. package/dist/lib/long-task-paths.js +1 -1
  288. package/dist/lib/long-task-playwright-capability-records.d.ts +2 -0
  289. package/dist/lib/long-task-playwright-capability-records.js +74 -2
  290. package/dist/lib/long-task-process-observation.d.ts +6 -0
  291. package/dist/lib/long-task-process-observation.js +117 -0
  292. package/dist/lib/long-task-process-runtime-closure.d.ts +13 -0
  293. package/dist/lib/long-task-process-runtime-closure.js +175 -0
  294. package/dist/lib/long-task-progress.js +2 -0
  295. package/dist/lib/long-task-protected-files.d.ts +1 -1
  296. package/dist/lib/long-task-protected-files.js +1 -30
  297. package/dist/lib/long-task-risk.js +8 -3
  298. package/dist/lib/long-task-root-shape.js +10 -1
  299. package/dist/lib/long-task-runner-environment.d.ts +1 -1
  300. package/dist/lib/long-task-runner-environment.js +4 -4
  301. package/dist/lib/long-task-runner-freeze.d.ts +4 -2
  302. package/dist/lib/long-task-runner-freeze.js +130 -28
  303. package/dist/lib/long-task-runtime-types.d.ts +111 -0
  304. package/dist/lib/long-task-scoped-binding.d.ts +13 -0
  305. package/dist/lib/long-task-scoped-binding.js +11 -0
  306. package/dist/lib/long-task-semantic-contract-types.d.ts +2 -1
  307. package/dist/lib/long-task-semantic-fact-binding-types.d.ts +8 -0
  308. package/dist/lib/long-task-semantic-fact-closure.js +4 -1
  309. package/dist/lib/long-task-semantic-fact-contract-closure.d.ts +1 -1
  310. package/dist/lib/long-task-semantic-fact-contract-closure.js +18 -6
  311. package/dist/lib/long-task-semantic-fact-contract-facts.d.ts +1 -1
  312. package/dist/lib/long-task-semantic-fact-contract-facts.js +4 -1
  313. package/dist/lib/long-task-semantic-fact-contract-proofs.d.ts +1 -1
  314. package/dist/lib/long-task-semantic-fact-contract-proofs.js +12 -3
  315. package/dist/lib/long-task-semantic-fact-evidence.d.ts +8 -4
  316. package/dist/lib/long-task-semantic-fact-evidence.js +103 -43
  317. package/dist/lib/long-task-semantic-fact-shape.js +17 -6
  318. package/dist/lib/long-task-shape-primitives.d.ts +1 -1
  319. package/dist/lib/long-task-shape-primitives.js +1 -0
  320. package/dist/lib/long-task-source-claim-validation.js +4 -1
  321. package/dist/lib/long-task-source-item-parser.d.ts +2 -2
  322. package/dist/lib/long-task-source-item-parser.js +20 -11
  323. package/dist/lib/long-task-source-target-continuity.d.ts +2 -2
  324. package/dist/lib/long-task-source-target-continuity.js +35 -2
  325. package/dist/lib/long-task-source-target-index.d.ts +3 -0
  326. package/dist/lib/long-task-source-target-index.js +19 -0
  327. package/dist/lib/long-task-stage-policy.js +10 -4
  328. package/dist/lib/long-task-static-observation-freeze.d.ts +83 -0
  329. package/dist/lib/long-task-static-observation-freeze.js +428 -0
  330. package/dist/lib/long-task-status-projection.js +5 -1
  331. package/dist/lib/long-task-target-policy.d.ts +1 -1
  332. package/dist/lib/long-task-target-policy.js +3 -0
  333. package/dist/lib/long-task-ui-design-policy.js +64 -4
  334. package/dist/lib/long-task-ui-surface-shape.js +195 -0
  335. package/dist/lib/long-task-ui-surface-types.d.ts +53 -0
  336. package/dist/lib/long-task-verifier-dependency-closure.js +7 -3
  337. package/dist/lib/long-task-verifier-v2.js +70 -9
  338. package/dist/lib/long-task-worker-selection.d.ts +2 -0
  339. package/dist/lib/long-task-worker-selection.js +7 -0
  340. package/dist/lib/long-task-workspace-scope.js +3 -1
  341. package/dist/lib/long-task-workspace.d.ts +1 -1
  342. package/dist/lib/long-task-workspace.js +12 -13
  343. package/dist/lib/migrations.js +58 -0
  344. package/dist/lib/profiles.js +0 -1
  345. package/dist/lib/repository-path-safety.d.ts +14 -0
  346. package/dist/lib/repository-path-safety.js +126 -0
  347. package/dist/lib/semantic-fact-compact-authoring.d.ts +2 -0
  348. package/dist/lib/semantic-fact-compact-authoring.js +160 -0
  349. package/dist/lib/semantic-fact-compact-capacity.d.ts +9 -0
  350. package/dist/lib/semantic-fact-compact-capacity.js +40 -0
  351. package/dist/lib/semantic-fact-compact-carrier.d.ts +16 -0
  352. package/dist/lib/semantic-fact-compact-carrier.js +146 -0
  353. package/dist/lib/semantic-fact-compact-parser.d.ts +17 -0
  354. package/dist/lib/semantic-fact-compact-parser.js +168 -0
  355. package/dist/lib/semantic-fact-compact-revision.d.ts +11 -0
  356. package/dist/lib/semantic-fact-compact-revision.js +64 -0
  357. package/dist/lib/semantic-fact-compact-support.d.ts +23 -0
  358. package/dist/lib/semantic-fact-compact-support.js +159 -0
  359. package/dist/lib/semantic-fact-policy-census.d.ts +1 -0
  360. package/dist/lib/semantic-fact-policy-census.js +43 -0
  361. package/dist/lib/semantic-fact-proof-shape.d.ts +1 -1
  362. package/dist/lib/semantic-fact-property-shape.d.ts +1 -1
  363. package/dist/lib/semantic-fact-source-parser.d.ts +5 -0
  364. package/dist/lib/semantic-fact-source-parser.js +47 -6
  365. package/dist/lib/structural-closure-cost.d.ts +79 -0
  366. package/dist/lib/structural-closure-cost.js +91 -0
  367. package/dist/lib/symbolic-denotation-dag-builder.d.ts +25 -0
  368. package/dist/lib/symbolic-denotation-dag-builder.js +176 -0
  369. package/dist/lib/symbolic-denotation-domain-validation.d.ts +3 -0
  370. package/dist/lib/symbolic-denotation-domain-validation.js +56 -0
  371. package/dist/lib/symbolic-denotation-engine.d.ts +32 -0
  372. package/dist/lib/symbolic-denotation-engine.js +140 -0
  373. package/dist/lib/symbolic-denotation-public.d.ts +11 -0
  374. package/dist/lib/symbolic-denotation-public.js +12 -0
  375. package/dist/lib/symbolic-denotation-runtime.d.ts +20 -0
  376. package/dist/lib/symbolic-denotation-runtime.js +90 -0
  377. package/dist/lib/symbolic-denotation-support.d.ts +11 -0
  378. package/dist/lib/symbolic-denotation-support.js +49 -0
  379. package/dist/lib/symbolic-denotation-types.d.ts +133 -0
  380. package/dist/lib/symbolic-denotation-types.js +18 -0
  381. package/dist/lib/symbolic-denotation-validation.d.ts +6 -0
  382. package/dist/lib/symbolic-denotation-validation.js +126 -0
  383. package/dist/lib/sync-engine.d.ts +1 -0
  384. package/dist/lib/sync-engine.js +4 -1
  385. package/dist/lib/upgrade.js +1 -0
  386. package/dist/long-task-hook.js +40 -1
  387. package/dist/public-types.d.ts +8 -0
  388. package/dist/public-types.js +1 -0
  389. package/dist/schemas/design-resource-symbolic-noninterference-artifact-v2.schema.json +289 -0
  390. package/dist/schemas/design-resource-symbolic-source-ir-v1.schema.json +130 -0
  391. package/dist/schemas/long-task-delivery-v2/long-task-delivery-v2.schema.json +435 -5
  392. package/migrations/README.md +92 -15
  393. package/package.json +2 -2
  394. package/source-mappings.yaml +28 -25
  395. package/assets/skills/source-plan-authoring/SKILL.md +0 -14
@@ -0,0 +1,40 @@
1
+ export function admittedObservationCandidates(records) {
2
+ const candidates = [];
3
+ for (const record of records) {
4
+ if (record.capability === "semantic_fact") {
5
+ candidates.push({
6
+ assertion_key: record.assertion_key,
7
+ identity_ref: record.fact_ref,
8
+ method: record.method,
9
+ actual_observation: record.actual_observation,
10
+ comparison: record.comparison,
11
+ oracle: record.oracle,
12
+ });
13
+ continue;
14
+ }
15
+ if (record.capability !== "design_method")
16
+ continue;
17
+ if ("fact_model" in record)
18
+ for (const result of record.rule_results)
19
+ candidates.push({
20
+ assertion_key: record.assertion_key,
21
+ identity_ref: result.obligation_ref,
22
+ method: record.method,
23
+ actual_observation: result.actual_observation,
24
+ comparison: result.comparison,
25
+ oracle: result.oracle,
26
+ });
27
+ else
28
+ for (const cell of record.cells)
29
+ for (const result of cell.fact_results)
30
+ candidates.push({
31
+ assertion_key: record.assertion_key,
32
+ identity_ref: result.fact_ref,
33
+ method: record.method,
34
+ actual_observation: result.actual_observation,
35
+ comparison: result.comparison,
36
+ oracle: result.oracle,
37
+ });
38
+ }
39
+ return candidates;
40
+ }
@@ -0,0 +1,93 @@
1
+ import type { CompiledCheckV2, CompiledObservationAuthorityV2, EvidenceCapabilityRecordV2, PackageObservationValueV2 } from "./long-task-delivery-types.js";
2
+ import { type ExactDigestComparisonResult } from "./long-task-exact-comparison.js";
3
+ import { JSON_POINTER_EXACT_CAPABILITY, type JsonPointerExactLocator, type JsonPointerExactObservation } from "./long-task-json-pointer-observation.js";
4
+ export { JSON_POINTER_EXACT_CAPABILITY, JSON_POINTER_EXACT_LIMITS, JSON_POINTER_EXACT_METHODS, JSON_POINTER_EXACT_ORACLE_IDENTITY, JSON_POINTER_EXACT_ORACLE_VERSION, JSON_POINTER_EXACT_SPEC_SHA256, createJsonPointerExactBudget, extractJsonPointerExactObservationFromBytes, isJsonPointerExactOracle, } from "./long-task-json-pointer-observation.js";
5
+ export type { JsonPointerExactBudget, JsonPointerExactLocator, JsonPointerExactObservation, } from "./long-task-json-pointer-observation.js";
6
+ export { extractJsonPointerExactObservation } from "./long-task-observation-artifact.js";
7
+ export interface PreparedAdmittedObservation {
8
+ assertion_key: string;
9
+ identity_ref: string;
10
+ authority_key: string | null;
11
+ obligation_ref: string | null;
12
+ method: string;
13
+ observation_key: string;
14
+ authority: CompiledObservationAuthorityV2["authority"] | null;
15
+ raw_value: unknown;
16
+ observation: JsonPointerExactObservation | null;
17
+ comparison: ExactDigestComparisonResult | null;
18
+ reason: string | null;
19
+ }
20
+ export interface PreparedAdmittedObservationSet {
21
+ readonly by_observation_key: ReadonlyMap<string, PreparedAdmittedObservation>;
22
+ readonly by_authority_key: ReadonlyMap<string, PreparedAdmittedObservation>;
23
+ readonly entries: readonly PreparedAdmittedObservation[];
24
+ }
25
+ export declare function prepareAdmittedObservations(input: {
26
+ check: CompiledCheckV2;
27
+ records: EvidenceCapabilityRecordV2[];
28
+ snapshot_root: string;
29
+ authority_paths?: readonly string[];
30
+ package_observations?: readonly PackageObservationValueV2[];
31
+ }): Promise<PreparedAdmittedObservationSet>;
32
+ export declare function admittedObservationAuthorityKey(authority: Pick<CompiledObservationAuthorityV2, "assertion_ref" | "obligation_ref" | "method">): string;
33
+ export declare function resolveObservationAuthority(check: CompiledCheckV2, candidate: {
34
+ assertion_key: string;
35
+ identity_ref: string;
36
+ method: string;
37
+ }): {
38
+ authority: CompiledObservationAuthorityV2;
39
+ reason: null;
40
+ } | {
41
+ authority: null;
42
+ reason: string;
43
+ };
44
+ export declare function admittedObservationKey(artifactPath: string, locator: JsonPointerExactLocator): string;
45
+ export declare function jsonPointerExactLocatorForIdentity(identity: string): {
46
+ kind: "json_pointer";
47
+ value: string;
48
+ };
49
+ export type ObservationCarrierRole = "expected_authority_forbidden" | "product_carrier" | "current_observer_artifact" | "unadmitted_evidence";
50
+ export type MachineObservationCarrierRoleConflict = "expected_authority" | "evidence_role";
51
+ export declare function classifyMachineObservationCarrierRoleConflict(input: {
52
+ carrier_pattern: string;
53
+ expected_authority_patterns: readonly string[];
54
+ evidence_role_patterns: readonly string[];
55
+ }): MachineObservationCarrierRoleConflict | null;
56
+ export declare function classifyObservationCarrier(input: {
57
+ artifact_path: string;
58
+ source_paths: string[];
59
+ expected_authority_paths: string[];
60
+ product_carrier_paths: string[];
61
+ current_observer_artifact_paths: string[];
62
+ }): ObservationCarrierRole;
63
+ export interface ObservationAdmissionInput {
64
+ method: string;
65
+ comparator: string;
66
+ mode: string;
67
+ tolerance: unknown;
68
+ mask: unknown;
69
+ sensitivity: string;
70
+ locator: JsonPointerExactLocator;
71
+ oracle: {
72
+ trust?: string;
73
+ identity?: string;
74
+ version?: string;
75
+ sha256?: string | null;
76
+ };
77
+ target_family: string;
78
+ observed_target_family?: string;
79
+ required_method?: string;
80
+ current_static_artifact: boolean;
81
+ historical_session?: boolean;
82
+ snapshot_matches?: boolean;
83
+ }
84
+ export type ObservationAdmissionDecision = {
85
+ authority: "machine";
86
+ reason: null;
87
+ capability: typeof JSON_POINTER_EXACT_CAPABILITY;
88
+ } | {
89
+ authority: "external_confirmation";
90
+ reason: string;
91
+ capability: null;
92
+ };
93
+ export declare function observationAdmissionDecision(input: ObservationAdmissionInput): ObservationAdmissionDecision;
@@ -0,0 +1,201 @@
1
+ import { classifyRepositoryPatternOverlap, matchesRepoPattern, } from "./long-task-paths.js";
2
+ import { canonicalValueJson, sha256Hex } from "./strict-codec.js";
3
+ import { evaluateExactDigestComparison, } from "./long-task-exact-comparison.js";
4
+ import { JSON_POINTER_EXACT_CAPABILITY, JSON_POINTER_EXACT_METHODS, isJsonPointerExactOracle, normalizeObservationArtifactPath, validateJsonPointerExactLocator, } from "./long-task-json-pointer-observation.js";
5
+ export { JSON_POINTER_EXACT_CAPABILITY, JSON_POINTER_EXACT_LIMITS, JSON_POINTER_EXACT_METHODS, JSON_POINTER_EXACT_ORACLE_IDENTITY, JSON_POINTER_EXACT_ORACLE_VERSION, JSON_POINTER_EXACT_SPEC_SHA256, createJsonPointerExactBudget, extractJsonPointerExactObservationFromBytes, isJsonPointerExactOracle, } from "./long-task-json-pointer-observation.js";
6
+ export { extractJsonPointerExactObservation } from "./long-task-observation-artifact.js";
7
+ export async function prepareAdmittedObservations(input) {
8
+ const entries = [];
9
+ const entriesByAuthority = new Map();
10
+ for (const authority of input.check.observation_authorities ?? []) {
11
+ const authorityKey = admittedObservationAuthorityKey(authority);
12
+ const candidates = (input.package_observations ?? []).filter((candidate) => candidate.authority === authority.authority &&
13
+ candidate.observation_identity === authority.observation_identity &&
14
+ candidate.assertion_ref === authority.assertion_ref &&
15
+ candidate.obligation_ref === authority.obligation_ref &&
16
+ candidate.method === authority.method);
17
+ const candidate = candidates.length === 1 ? candidates[0] : null;
18
+ let reason = null;
19
+ let comparison = null;
20
+ if (authority.authority === "external_confirmation")
21
+ reason = "unsupported_observer_requires_external_confirmation";
22
+ else if (candidates.length > 1)
23
+ reason = "admitted_observation_duplicate";
24
+ else if (!candidate)
25
+ reason =
26
+ authority.authority === "package_process_json_exact"
27
+ ? "admitted_observation_runtime_required"
28
+ : "admitted_observation_missing";
29
+ else if (candidate.reason)
30
+ reason = candidate.reason;
31
+ else if (!candidate.observation)
32
+ reason = "admitted_observation_missing";
33
+ else if (candidate.observation.locator.kind !== "json_pointer" ||
34
+ candidate.observation.locator.value !== authority.locator_policy.value)
35
+ reason = "observation_locator_identity_mismatch";
36
+ else {
37
+ try {
38
+ comparison = evaluateExactDigestComparison({
39
+ identity: {
40
+ kind: "compiled_observation_authority",
41
+ expected_identity: authority.expected_identity,
42
+ obligation_ref: authority.obligation_ref,
43
+ observation_identity: authority.observation_identity,
44
+ target_ref: authority.target_ref,
45
+ method: authority.method,
46
+ },
47
+ actual_value_sha256: projectedActualValueSha256(authority, candidate),
48
+ expected_value_sha256: authority.expected_value_sha256,
49
+ comparator: authority.comparison.comparator,
50
+ mode: authority.comparison.mode,
51
+ parameters_sha256: authority.comparison.parameters_sha256 ?? "",
52
+ tolerance_sha256: authority.comparison.tolerance_sha256,
53
+ mask_sha256: authority.comparison.mask_sha256,
54
+ });
55
+ }
56
+ catch (error) {
57
+ reason = error instanceof Error ? error.message : String(error);
58
+ }
59
+ }
60
+ const entry = {
61
+ assertion_key: authority.assertion_ref,
62
+ identity_ref: authority.observation_identity,
63
+ authority_key: authorityKey,
64
+ obligation_ref: authority.obligation_ref,
65
+ method: authority.method,
66
+ observation_key: candidate?.observation
67
+ ? admittedObservationKey(candidate.observation.artifact_path, candidate.observation.locator)
68
+ : `compiled-authority\0${authorityKey}`,
69
+ authority: authority.authority,
70
+ raw_value: candidate?.raw_value,
71
+ observation: candidate?.observation ?? null,
72
+ comparison,
73
+ reason,
74
+ };
75
+ entries.push(entry);
76
+ entriesByAuthority.set(authorityKey, entry);
77
+ }
78
+ for (const candidate of input.package_observations ?? []) {
79
+ const matches = (input.check.observation_authorities ?? []).filter((authority) => authority.authority === candidate.authority &&
80
+ authority.observation_identity === candidate.observation_identity &&
81
+ authority.assertion_ref === candidate.assertion_ref &&
82
+ authority.obligation_ref === candidate.obligation_ref &&
83
+ authority.method === candidate.method);
84
+ if (matches.length)
85
+ continue;
86
+ entries.push({
87
+ assertion_key: "",
88
+ identity_ref: candidate.observation_identity,
89
+ authority_key: null,
90
+ obligation_ref: null,
91
+ method: "exact_value",
92
+ observation_key: candidate.observation
93
+ ? admittedObservationKey(candidate.observation.artifact_path, candidate.observation.locator)
94
+ : `unbound-package-observation\0${candidate.observation_identity}`,
95
+ authority: null,
96
+ raw_value: candidate.raw_value,
97
+ observation: candidate.observation,
98
+ comparison: null,
99
+ reason: "machine_observer_not_admitted",
100
+ });
101
+ }
102
+ return {
103
+ by_observation_key: new Map(entries.map((entry) => [entry.observation_key, entry])),
104
+ by_authority_key: entriesByAuthority,
105
+ entries,
106
+ };
107
+ }
108
+ function projectedActualValueSha256(authority, candidate) {
109
+ if (!candidate.observation)
110
+ throw new Error("admitted_observation_missing");
111
+ if (authority.actual_projection === "raw_exact")
112
+ return candidate.observation.value_sha256;
113
+ const projected = authority.actual_projection === "presence_boolean"
114
+ ? true
115
+ : Boolean(candidate.raw_value);
116
+ return sha256Hex(canonicalValueJson(projected));
117
+ }
118
+ export function admittedObservationAuthorityKey(authority) {
119
+ return `${authority.assertion_ref}\0${authority.obligation_ref}\0${authority.method}`;
120
+ }
121
+ export function resolveObservationAuthority(check, candidate) {
122
+ const matches = (check.observation_authorities ?? []).filter((authority) => authority.assertion_ref === candidate.assertion_key &&
123
+ authority.method === candidate.method &&
124
+ authority.observation_identity === candidate.identity_ref);
125
+ if (matches.length === 1)
126
+ return { authority: matches[0], reason: null };
127
+ return {
128
+ authority: null,
129
+ reason: matches.length === 0
130
+ ? "machine_observer_not_admitted"
131
+ : "machine_observer_authority_ambiguous",
132
+ };
133
+ }
134
+ export function admittedObservationKey(artifactPath, locator) {
135
+ return `${artifactPath}\0${canonicalValueJson(locator)}`;
136
+ }
137
+ export function jsonPointerExactLocatorForIdentity(identity) {
138
+ return {
139
+ kind: "json_pointer",
140
+ value: `/observations/${identity.replace(/~/gu, "~0").replace(/\//gu, "~1")}`,
141
+ };
142
+ }
143
+ export function classifyMachineObservationCarrierRoleConflict(input) {
144
+ if (input.expected_authority_patterns.some((pattern) => classifyRepositoryPatternOverlap(input.carrier_pattern, pattern)
145
+ .status === "proven_overlap"))
146
+ return "expected_authority";
147
+ if (input.evidence_role_patterns.some((pattern) => classifyRepositoryPatternOverlap(input.carrier_pattern, pattern)
148
+ .status === "proven_overlap"))
149
+ return "evidence_role";
150
+ return null;
151
+ }
152
+ export function classifyObservationCarrier(input) {
153
+ const artifactPath = normalizeObservationArtifactPath(input.artifact_path);
154
+ if (matchesAny(artifactPath, input.source_paths) ||
155
+ matchesAny(artifactPath, input.expected_authority_paths))
156
+ return "expected_authority_forbidden";
157
+ if (matchesAny(artifactPath, input.product_carrier_paths))
158
+ return "product_carrier";
159
+ if (matchesAny(artifactPath, input.current_observer_artifact_paths))
160
+ return "current_observer_artifact";
161
+ return "unadmitted_evidence";
162
+ }
163
+ export function observationAdmissionDecision(input) {
164
+ if (input.observed_target_family !== undefined &&
165
+ input.observed_target_family !== input.target_family)
166
+ return external("observation_target_proxy_mismatch");
167
+ if (input.required_method && input.required_method !== input.method)
168
+ return external("observation_capability_mismatch");
169
+ if (input.target_family !== "process" ||
170
+ input.historical_session === true ||
171
+ !input.current_static_artifact ||
172
+ input.snapshot_matches === false)
173
+ return external("observation_current_static_target_required");
174
+ if (!isJsonPointerExactOracle(input.oracle))
175
+ return external("observation_oracle_not_admitted");
176
+ if (!JSON_POINTER_EXACT_METHODS.some((method) => method === input.method) ||
177
+ input.comparator !== "exact_value" ||
178
+ input.mode !== "exact" ||
179
+ input.tolerance !== null ||
180
+ input.mask !== null)
181
+ return external("observation_method_not_admitted");
182
+ if (input.sensitivity !== "plain")
183
+ return external("observation_protected_requires_frozen_adapter");
184
+ try {
185
+ validateJsonPointerExactLocator(input.locator);
186
+ }
187
+ catch {
188
+ return external("observation_locator_not_admitted");
189
+ }
190
+ return {
191
+ authority: "machine",
192
+ reason: null,
193
+ capability: JSON_POINTER_EXACT_CAPABILITY,
194
+ };
195
+ }
196
+ function external(reason) {
197
+ return { authority: "external_confirmation", reason, capability: null };
198
+ }
199
+ function matchesAny(candidate, patterns) {
200
+ return patterns.some((pattern) => matchesRepoPattern(candidate, pattern));
201
+ }
@@ -1,4 +1,5 @@
1
1
  import type { CompiledCheckV2 } from "./long-task-delivery-types.js";
2
+ export { JSON_POINTER_EXACT_CAPABILITY, JSON_POINTER_EXACT_LIMITS, JSON_POINTER_EXACT_METHODS, JSON_POINTER_EXACT_ORACLE_IDENTITY, JSON_POINTER_EXACT_ORACLE_VERSION, JSON_POINTER_EXACT_SPEC_SHA256, admittedObservationKey, classifyObservationCarrier, createJsonPointerExactBudget, extractJsonPointerExactObservation, extractJsonPointerExactObservationFromBytes, isJsonPointerExactOracle, jsonPointerExactLocatorForIdentity, observationAdmissionDecision, prepareAdmittedObservations, } from "./long-task-admitted-observation.js";
2
3
  export declare function collectCheckArtifacts(check: CompiledCheckV2, snapshotRoot: string): Promise<{
3
4
  hashes: Record<string, string>;
4
5
  errors: string[];
@@ -2,6 +2,7 @@ import { readFile, readdir } from "node:fs/promises";
2
2
  import path from "node:path";
3
3
  import { matchesRepoPattern } from "./long-task-paths.js";
4
4
  import { sha256Hex } from "./strict-codec.js";
5
+ export { JSON_POINTER_EXACT_CAPABILITY, JSON_POINTER_EXACT_LIMITS, JSON_POINTER_EXACT_METHODS, JSON_POINTER_EXACT_ORACLE_IDENTITY, JSON_POINTER_EXACT_ORACLE_VERSION, JSON_POINTER_EXACT_SPEC_SHA256, admittedObservationKey, classifyObservationCarrier, createJsonPointerExactBudget, extractJsonPointerExactObservation, extractJsonPointerExactObservationFromBytes, isJsonPointerExactOracle, jsonPointerExactLocatorForIdentity, observationAdmissionDecision, prepareAdmittedObservations, } from "./long-task-admitted-observation.js";
5
6
  export async function collectCheckArtifacts(check, snapshotRoot) {
6
7
  if (!check.artifact_globs.length)
7
8
  return { hashes: {}, errors: [] };
@@ -120,6 +120,7 @@ function flattenProductSemantics(projection) {
120
120
  fields.set(`${prefix}.role`, target.role);
121
121
  fields.set(`${prefix}.runtime_family`, target.runtime_family);
122
122
  fields.set(`${prefix}.root_entrypoint`, target.root_entrypoint);
123
+ fields.set(`${prefix}.root_argv`, target.root_argv ?? null);
123
124
  }
124
125
  for (const stage of projection.stages) {
125
126
  const prefix = `stages.${stage.key}`;
@@ -161,6 +161,7 @@ export declare const AUTHORITY_FIELD_POLICY_REGISTRIES: {
161
161
  };
162
162
  readonly design_target: {
163
163
  key: "identity";
164
+ fact_model: "semantic_user_review";
164
165
  interpretation: "semantic_user_review";
165
166
  source_paths: "scope";
166
167
  condition_keys: "semantic_user_review";
@@ -168,6 +169,8 @@ export declare const AUTHORITY_FIELD_POLICY_REGISTRIES: {
168
169
  conformance_check_ref: "proof_additive";
169
170
  conformance_assertion_ref: "proof_additive";
170
171
  verification_method_bindings: "proof_additive";
172
+ symbolic_method_bindings: "proof_additive";
173
+ symbolic_certificate_binding: "proof_additive";
171
174
  actual_artifact_path: "output_requirement";
172
175
  comparison_artifact_path: "output_requirement";
173
176
  };
@@ -268,6 +271,7 @@ export declare const AUTHORITY_FIELD_POLICY_REGISTRIES: {
268
271
  mutation: "proof_additive";
269
272
  expected_assertion_failures: "proof_additive";
270
273
  preserved_assertions: "proof_additive";
274
+ allowed_fanout_assertions: "semantic_user_review";
271
275
  };
272
276
  readonly global_counterfactual: {
273
277
  key: "identity";
@@ -277,6 +281,7 @@ export declare const AUTHORITY_FIELD_POLICY_REGISTRIES: {
277
281
  mutation: "proof_additive";
278
282
  expected_assertion_failures: "proof_additive";
279
283
  preserved_assertions: "proof_additive";
284
+ allowed_fanout_assertions: "semantic_user_review";
280
285
  };
281
286
  };
282
287
  export declare function projectFieldsByPolicy<T extends object>(value: T, policy: Record<keyof T, AuthorityFieldPolicy>, included: ReadonlySet<AuthorityFieldPolicy>): Partial<T>;
@@ -144,6 +144,7 @@ const SURFACE_BINDING_AUTHORITY_POLICY = {
144
144
  };
145
145
  const DESIGN_TARGET_AUTHORITY_POLICY = {
146
146
  key: "identity",
147
+ fact_model: "semantic_user_review",
147
148
  interpretation: "semantic_user_review",
148
149
  source_paths: "scope",
149
150
  condition_keys: "semantic_user_review",
@@ -151,6 +152,8 @@ const DESIGN_TARGET_AUTHORITY_POLICY = {
151
152
  conformance_check_ref: "proof_additive",
152
153
  conformance_assertion_ref: "proof_additive",
153
154
  verification_method_bindings: "proof_additive",
155
+ symbolic_method_bindings: "proof_additive",
156
+ symbolic_certificate_binding: "proof_additive",
154
157
  actual_artifact_path: "output_requirement",
155
158
  comparison_artifact_path: "output_requirement",
156
159
  };
@@ -251,6 +254,7 @@ const COUNTERFACTUAL_AUTHORITY_POLICY = {
251
254
  mutation: "proof_additive",
252
255
  expected_assertion_failures: "proof_additive",
253
256
  preserved_assertions: "proof_additive",
257
+ allowed_fanout_assertions: "semantic_user_review",
254
258
  };
255
259
  const GLOBAL_COUNTERFACTUAL_AUTHORITY_POLICY = {
256
260
  key: "identity",
@@ -260,6 +264,7 @@ const GLOBAL_COUNTERFACTUAL_AUTHORITY_POLICY = {
260
264
  mutation: "proof_additive",
261
265
  expected_assertion_failures: "proof_additive",
262
266
  preserved_assertions: "proof_additive",
267
+ allowed_fanout_assertions: "semantic_user_review",
263
268
  };
264
269
  export const AUTHORITY_FIELD_POLICY_REGISTRIES = {
265
270
  task: TASK_AUTHORITY_POLICY,
@@ -154,7 +154,9 @@ function counterfactualCoveragePreserved(previous, next) {
154
154
  candidate.check_key === previous.check_key &&
155
155
  same(candidate.mutation, previous.mutation) &&
156
156
  includesEvery(candidate.claims, previous.claims) &&
157
- includesEvery(candidate.expected_assertion_failures, previous.expected_assertion_failures));
157
+ includesEvery(candidate.expected_assertion_failures, previous.expected_assertion_failures) &&
158
+ includesEvery(candidate.preserved_assertions ?? [], previous.preserved_assertions ?? []) &&
159
+ includesEvery(previous.allowed_fanout_assertions ?? [], candidate.allowed_fanout_assertions ?? []));
158
160
  }
159
161
  function includesEvery(values, required) {
160
162
  const available = new Set(values);
@@ -180,7 +180,8 @@ function counterfactualsStrengthened(previous, next) {
180
180
  same(candidate.mutation, control.mutation) &&
181
181
  subset(control.claims, candidate.claims) &&
182
182
  subset(control.expected_assertion_failures, candidate.expected_assertion_failures) &&
183
- subset(control.preserved_assertions, candidate.preserved_assertions)));
183
+ subset(control.preserved_assertions, candidate.preserved_assertions) &&
184
+ subset(candidate.allowed_fanout_assertions ?? [], control.allowed_fanout_assertions ?? [])));
184
185
  }
185
186
  function subset(previous, next) {
186
187
  const available = new Set(next.map((item) => canonicalValueJson(item)));
@@ -21,6 +21,11 @@ export function rawExecutionInputProjection(check) {
21
21
  projection.known_execution_targets = check.known_execution_targets;
22
22
  projection.design_conformance_targets =
23
23
  check.design_conformance_targets ?? [];
24
+ projection.package_observation_protocol = (check.observation_authorities ?? []).some((authority) => authority.authority === "package_process_json_exact")
25
+ ? "ty-context-product-observation-v1"
26
+ : null;
27
+ projection.process_runtime_closure_identity =
28
+ check.process_runtime_closure?.closure_identity ?? null;
24
29
  for (const field of Object.keys(CHECK_EXECUTION_INPUT_POLICY)) {
25
30
  const policy = CHECK_EXECUTION_INPUT_POLICY[field];
26
31
  if (policy === "raw_execution") {
@@ -1,2 +1,2 @@
1
- import type { CompiledCheckV2, RawCommandExecutionV2 } from "./long-task-delivery-types.js";
2
- export declare function executeCheckRunner(check: CompiledCheckV2, snapshotRoot: string): Promise<RawCommandExecutionV2>;
1
+ import type { CompiledCheckV2, CheckRunnerExecutionContextV2, RawCommandExecutionV2 } from "./long-task-delivery-types.js";
2
+ export declare function executeCheckRunner(check: CompiledCheckV2, snapshotRoot: string, context?: CheckRunnerExecutionContextV2): Promise<RawCommandExecutionV2>;