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,213 @@
1
+ import type { DesignResourceDesignSystemSnapshotV1, DesignResourceInspectorV1 } from "./design-resource-fact-manifest-model.js";
2
+ import type { DesignResourceEnvironmentV1, DesignResourceFactLineageV1, DesignResourceLocatedDigestV1, DesignResourceOracleV1, DesignResourcePropertyDefinitionV1 } from "./design-resource-fact-types.js";
3
+ import type { DesignResourceHandoffBlockerV1, DesignResourceHandoffResourceV1, DesignResourceHandoffSubjectV1, DesignResourceSourceProfileKind, DesignResourceVerificationMethod } from "./design-resource-handoff-types.js";
4
+ import type { CompiledSymbolicDenotationV1, SymbolicDenotationAxisDomain, SymbolicDenotationDisposition, SymbolicDenotationPredicate, SymbolicExtensionalPointV1 } from "./symbolic-denotation-types.js";
5
+ import type { DesignResourceSymbolicNoninterferenceCertificateV2 } from "./design-resource-symbolic-noninterference-types.js";
6
+ export type { DesignResourceSymbolicNoninterferenceArtifactV2, DesignResourceSymbolicNoninterferenceCertificateV2, DesignResourceSymbolicNoninterferenceDerivedResultV2, DesignResourceSymbolicNoninterferenceEquivalenceCaseV2, DesignResourceSymbolicNoninterferenceFailureWitnessV1, DesignResourceSymbolicNoninterferenceInputBindingV2, DesignResourceSymbolicNoninterferenceProofMethodV2, DesignResourceSymbolicNoninterferenceProofV2, DesignResourceSymbolicStaticDependencyNodeV2, DesignResourceSymbolicStaticDependencyRootV2, } from "./design-resource-symbolic-noninterference-types.js";
7
+ export interface DesignResourceSymbolicPopulationV2 {
8
+ key: string;
9
+ kind: "static" | "dynamic";
10
+ member_subject_refs: string[];
11
+ universe: DesignResourceLocatedDigestV1;
12
+ enumeration: "complete" | "symbolic_partition";
13
+ exclusions: Array<{
14
+ key: string;
15
+ region: SymbolicDenotationPredicate;
16
+ basis_refs: string[];
17
+ rationale: string;
18
+ }>;
19
+ quantifier: SymbolicExtensionalPointV1["quantifier"];
20
+ }
21
+ export interface DesignResourceSymbolicFactRuleV2 {
22
+ key: string;
23
+ subject_or_relation_ref: string;
24
+ target_ref: string;
25
+ property_ref: string;
26
+ population_ref: string | null;
27
+ quantifier: SymbolicExtensionalPointV1["quantifier"];
28
+ region: SymbolicDenotationPredicate;
29
+ expected: DesignResourceLocatedDigestV1;
30
+ value_kind: string;
31
+ provenance_ref: string;
32
+ observation_scope: "subject" | "full_target";
33
+ observation_sensitivity: "plain" | "protected";
34
+ lineage: DesignResourceFactLineageV1;
35
+ evidence_refs: string[];
36
+ census_refs: string[];
37
+ source_item_refs: string[];
38
+ semantic_obligation_refs: string[];
39
+ }
40
+ export interface DesignResourceSymbolicDispositionRegionV2 {
41
+ key: string;
42
+ subject_or_relation_ref: string;
43
+ target_ref: string;
44
+ property_ref: string;
45
+ population_ref: string | null;
46
+ quantifier: SymbolicExtensionalPointV1["quantifier"];
47
+ region: SymbolicDenotationPredicate;
48
+ disposition: Exclude<SymbolicDenotationDisposition, "specified">;
49
+ census_refs: string[];
50
+ source_item_refs: string[];
51
+ basis_refs: string[];
52
+ rationale: string;
53
+ }
54
+ export interface DesignResourceSymbolicProofObligationV2 {
55
+ key: string;
56
+ fact_rule_ref: string;
57
+ method: DesignResourceVerificationMethod;
58
+ region_sha256: string;
59
+ proof_surface: string;
60
+ observation_boundary: string;
61
+ comparison: {
62
+ comparator: string;
63
+ mode: "exact" | "tolerance";
64
+ parameters: DesignResourceLocatedDigestV1;
65
+ tolerance: DesignResourceLocatedDigestV1 | null;
66
+ mask: DesignResourceLocatedDigestV1 | null;
67
+ };
68
+ oracle_ref: string;
69
+ environment_ref: string;
70
+ protected_value_policy: string;
71
+ completion_effect: string;
72
+ }
73
+ export interface DesignResourceSymbolicDependencyEdgeV2 {
74
+ key: string;
75
+ axis_ref: string;
76
+ fact_rule_ref: string;
77
+ effects: Array<"disposition" | "expected_semantics" | "proof_denotation">;
78
+ }
79
+ export interface DesignResourceSymbolicSubjectProfileBindingV2 {
80
+ key: string;
81
+ subject_refs: string[];
82
+ profile_refs: string[];
83
+ census_refs: string[];
84
+ source_item_refs: string[];
85
+ basis_refs: string[];
86
+ rationale: string;
87
+ }
88
+ export interface DesignResourceSymbolicCustomPropertyClosureV2 {
89
+ property_ref: string;
90
+ applicable_subject_refs: string[];
91
+ census_refs: string[];
92
+ source_item_refs: string[];
93
+ basis_refs: string[];
94
+ rationale: string;
95
+ }
96
+ export interface DesignResourceSymbolicApplicabilityExceptionV2 {
97
+ key: string;
98
+ subject_ref: string;
99
+ property_ref: string;
100
+ disposition: "applicable" | "not_applicable";
101
+ census_refs: string[];
102
+ source_item_refs: string[];
103
+ basis_refs: string[];
104
+ rationale: string;
105
+ }
106
+ export interface DesignResourceSymbolicStructuralApplicabilityV2 {
107
+ profile_catalog: "package-subject-property-applicability-v1";
108
+ subject_profile_bindings: DesignResourceSymbolicSubjectProfileBindingV2[];
109
+ inspector_custom_property_closure: DesignResourceSymbolicCustomPropertyClosureV2[];
110
+ instance_exceptions: DesignResourceSymbolicApplicabilityExceptionV2[];
111
+ }
112
+ export interface DesignResourceObservableRuleManifestV2 {
113
+ schema_version: "design-resource-observable-rule-manifest-v2";
114
+ scope_key: string;
115
+ target_key: string;
116
+ inspector: DesignResourceInspectorV1;
117
+ design_system: DesignResourceDesignSystemSnapshotV1;
118
+ axis_domains: SymbolicDenotationAxisDomain[];
119
+ reachable_region: SymbolicDenotationPredicate;
120
+ subjects: DesignResourceHandoffSubjectV1[];
121
+ populations: DesignResourceSymbolicPopulationV2[];
122
+ properties: DesignResourcePropertyDefinitionV1[];
123
+ fact_rules: DesignResourceSymbolicFactRuleV2[];
124
+ disposition_regions: DesignResourceSymbolicDispositionRegionV2[];
125
+ semantic_proof_obligations: DesignResourceSymbolicProofObligationV2[];
126
+ dependency_edges: DesignResourceSymbolicDependencyEdgeV2[];
127
+ noninterference_certificates: DesignResourceSymbolicNoninterferenceCertificateV2[];
128
+ oracles: DesignResourceOracleV1[];
129
+ environments: DesignResourceEnvironmentV1[];
130
+ acceptance_blockers: DesignResourceHandoffBlockerV1[];
131
+ structural_applicability?: DesignResourceSymbolicStructuralApplicabilityV2;
132
+ }
133
+ export interface DesignResourceSymbolicHandoffTargetV2 {
134
+ key: string;
135
+ interpretation: "exact_target" | "constraint";
136
+ resource_refs: string[];
137
+ source_profile: {
138
+ kind: DesignResourceSourceProfileKind;
139
+ entry_resource_ref: string;
140
+ dependency_resource_refs: string[];
141
+ fact_manifest_resource_ref: string;
142
+ acquisition: "complete";
143
+ };
144
+ selection_basis: string;
145
+ }
146
+ export interface DesignResourceSymbolicHandoffCoverageV2 {
147
+ key: string;
148
+ target_ref: string;
149
+ subject_or_relation_refs: string[];
150
+ property_refs: string[];
151
+ fact_rule_refs: string[];
152
+ semantic_obligation_refs: string[];
153
+ certificate_refs: string[];
154
+ source_item_refs: string[];
155
+ rationale: string;
156
+ }
157
+ export interface DesignResourceHandoffV2 {
158
+ schema_version: "design-resource-handoff-v2";
159
+ representation: "symbolic_rules_v2";
160
+ intent: "implementation_handoff";
161
+ scope: {
162
+ key: string;
163
+ style_dependency: "style-bearing" | "non-fidelity" | "mixed";
164
+ surface_keys: string[];
165
+ necessary_context: string[];
166
+ exclusions: string[];
167
+ };
168
+ provenance: {
169
+ provider: string;
170
+ provider_version: string;
171
+ project: string;
172
+ run: string;
173
+ capability: string;
174
+ agent: string;
175
+ model: string;
176
+ design_system_id: string;
177
+ };
178
+ resources: DesignResourceHandoffResourceV1[];
179
+ targets: DesignResourceSymbolicHandoffTargetV2[];
180
+ coverage: DesignResourceSymbolicHandoffCoverageV2[];
181
+ proposal: {
182
+ reconciliation_status: "applied" | "returned" | "not_applicable";
183
+ path: string;
184
+ revision: string;
185
+ };
186
+ }
187
+ export interface ParsedDesignResourceHandoffV2 {
188
+ handoff_path: string;
189
+ handoff: DesignResourceHandoffV2;
190
+ source_item_keys: string[];
191
+ source_item_kinds: Record<string, string>;
192
+ }
193
+ export interface DesignResourceSymbolicRuleProjectionV2 {
194
+ rule: DesignResourceSymbolicFactRuleV2;
195
+ compiled_region: CompiledSymbolicDenotationV1;
196
+ }
197
+ export interface DesignResourceHandoffPreflightV2 extends ParsedDesignResourceHandoffV2 {
198
+ preflight_schema_version: "design-resource-handoff-preflight-v2";
199
+ status: "ready";
200
+ manifest: DesignResourceObservableRuleManifestV2;
201
+ resource_hashes: Record<string, string>;
202
+ rule_projections: DesignResourceSymbolicRuleProjectionV2[];
203
+ metrics: {
204
+ semantic_obligations: number;
205
+ certificate_obligations: number;
206
+ certificate_covered_omitted_axes: number;
207
+ certificate_covered_dependency_edges: number;
208
+ canonical_dag_nodes: number;
209
+ canonical_partition_edges: number;
210
+ canonical_bytes: number;
211
+ theoretical_ground_cardinality: string;
212
+ };
213
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ import type { DesignResourceHandoffPreflightV2, ParsedDesignResourceHandoffV2 } from "./design-resource-symbolic-fact-types.js";
2
+ export { designResourceSymbolicCertificateKey, designResourceSymbolicCombinedRuleDigest, designResourceSymbolicDependencyEdge, designResourceSymbolicNoninterferenceProofDigest, designResourceSymbolicObligationKey, designResourceSymbolicRuleKey, } from "./design-resource-symbolic-validation-support.js";
3
+ export declare function preflightParsedDesignResourceSymbolicHandoff(repository: string, parsed: ParsedDesignResourceHandoffV2): Promise<DesignResourceHandoffPreflightV2>;
@@ -0,0 +1,86 @@
1
+ import { readFile, stat } from "node:fs/promises";
2
+ import path from "node:path";
3
+ import { validateDesignResourceImplementationDependencyClosure } from "./design-resource-handoff-web-dependency-validation.js";
4
+ import { parseDesignResourceObservableRuleManifestJson } from "./design-resource-symbolic-fact-shape.js";
5
+ import { validateDesignResourceSymbolicManifest } from "./design-resource-symbolic-manifest-validation.js";
6
+ import { validateSymbolicCoverage } from "./design-resource-symbolic-region-validation.js";
7
+ import { assertSameSet, invalid, requireExactRefs, unique, } from "./design-resource-symbolic-validation-support.js";
8
+ import { assertProtectedRepositoryFile } from "./long-task-protected-files.js";
9
+ import { sha256Hex } from "./strict-codec.js";
10
+ export { designResourceSymbolicCertificateKey, designResourceSymbolicCombinedRuleDigest, designResourceSymbolicDependencyEdge, designResourceSymbolicNoninterferenceProofDigest, designResourceSymbolicObligationKey, designResourceSymbolicRuleKey, } from "./design-resource-symbolic-validation-support.js";
11
+ const V2_MANIFEST_MAX_BYTES = 8_388_608;
12
+ export async function preflightParsedDesignResourceSymbolicHandoff(repository, parsed) {
13
+ const { handoff } = parsed;
14
+ validateHandoffIdentities(handoff);
15
+ if (handoff.targets.length !== 1)
16
+ invalid("v2_one_target_required", String(handoff.targets.length));
17
+ const target = handoff.targets[0];
18
+ if (!handoff.scope.surface_keys.length)
19
+ invalid("v2_scope_surface_keys_required", target.key);
20
+ const resources = new Map(handoff.resources.map((resource) => [resource.key, resource]));
21
+ requireExactRefs(target.resource_refs, resources, "v2_target_resource");
22
+ const manifestResource = resources.get(target.source_profile.fact_manifest_resource_ref);
23
+ if (!manifestResource)
24
+ invalid("v2_manifest_resource_unknown", target.source_profile.fact_manifest_resource_ref);
25
+ validateManifestResource(target, manifestResource);
26
+ assertSameSet(target.resource_refs, [
27
+ target.source_profile.entry_resource_ref,
28
+ ...target.source_profile.dependency_resource_refs,
29
+ ], "v2_source_profile_resource_closure_mismatch", target.key);
30
+ const { contents, resourceHashes } = await readAndVerifyResources(repository, parsed, manifestResource.key);
31
+ if (target.source_profile.kind === "implementation_web" ||
32
+ target.source_profile.kind === "implementation_app")
33
+ validateDesignResourceImplementationDependencyClosure(target, resources, contents);
34
+ const manifest = parseDesignResourceObservableRuleManifestJson(contents.get(manifestResource.key).toString("utf8"));
35
+ if (manifest.scope_key !== handoff.scope.key ||
36
+ manifest.target_key !== target.key)
37
+ invalid("v2_manifest_identity_mismatch", `${manifest.scope_key}:${manifest.target_key}`);
38
+ const validated = validateDesignResourceSymbolicManifest(manifest, parsed, resources, contents);
39
+ validateSymbolicCoverage(parsed, manifest);
40
+ return {
41
+ ...parsed,
42
+ preflight_schema_version: "design-resource-handoff-preflight-v2",
43
+ status: "ready",
44
+ manifest,
45
+ resource_hashes: resourceHashes,
46
+ rule_projections: validated.ruleProjections,
47
+ metrics: validated.metrics,
48
+ };
49
+ }
50
+ function validateHandoffIdentities(handoff) {
51
+ unique(handoff.resources.map((item) => item.key), "v2_resource_key_duplicate");
52
+ unique(handoff.resources.map((item) => item.path), "v2_resource_path_duplicate");
53
+ unique(handoff.targets.map((item) => item.key), "v2_target_key_duplicate");
54
+ unique(handoff.coverage.map((item) => item.key), "v2_coverage_key_duplicate");
55
+ }
56
+ function validateManifestResource(target, manifestResource) {
57
+ if (manifestResource.role !== "supporting" ||
58
+ manifestResource.media_type !== "application/json")
59
+ invalid("v2_manifest_resource_invalid", `${manifestResource.key}:${manifestResource.role}:${manifestResource.media_type}`);
60
+ if (target.source_profile.entry_resource_ref === manifestResource.key ||
61
+ !target.source_profile.dependency_resource_refs.includes(manifestResource.key))
62
+ invalid("v2_manifest_dependency_invalid", target.key);
63
+ }
64
+ async function readAndVerifyResources(repository, parsed, manifestResourceRef) {
65
+ const contents = new Map();
66
+ const resourceHashes = {};
67
+ for (const resource of parsed.handoff.resources) {
68
+ if (resource.path === parsed.handoff_path)
69
+ invalid("v2_resource_must_not_be_handoff", resource.key);
70
+ const file = await assertProtectedRepositoryFile(repository, path.resolve(repository, ...resource.path.split("/")), `design_resource_v2:${resource.key}`);
71
+ if (resource.key === manifestResourceRef)
72
+ await enforceManifestByteLimit(file);
73
+ const bytes = await readFile(file);
74
+ const digest = sha256Hex(bytes);
75
+ if (digest !== resource.sha256)
76
+ invalid("v2_resource_digest_mismatch", `${resource.key}:${resource.sha256}:${digest}`);
77
+ contents.set(resource.key, bytes);
78
+ resourceHashes[resource.key] = digest;
79
+ }
80
+ return { contents, resourceHashes };
81
+ }
82
+ async function enforceManifestByteLimit(file) {
83
+ const size = (await stat(file)).size;
84
+ if (size > V2_MANIFEST_MAX_BYTES)
85
+ invalid("v2_manifest_byte_limit_exceeded", `bytes=${size}:limit=${V2_MANIFEST_MAX_BYTES}`);
86
+ }
@@ -0,0 +1,23 @@
1
+ import type { DesignResourceObservableRuleManifestV2, DesignResourceSymbolicDispositionRegionV2, DesignResourceSymbolicFactRuleV2, ParsedDesignResourceHandoffV2 } from "./design-resource-symbolic-fact-types.js";
2
+ import type { SymbolicExtensionalPointV1 } from "./symbolic-denotation-types.js";
3
+ export declare function buildSymbolicManifestIndexes(manifest: DesignResourceObservableRuleManifestV2, parsed: Pick<ParsedDesignResourceHandoffV2, "source_item_keys">): {
4
+ sourceItems: Set<string>;
5
+ census: Map<string, import("./design-resource-fact-manifest-model.js").DesignResourceInspectorCensusEntryV1>;
6
+ subjects: Map<string, import("./design-resource-handoff-types.js").DesignResourceHandoffSubjectV1>;
7
+ populations: Map<string, import("./design-resource-symbolic-fact-types.js").DesignResourceSymbolicPopulationV2>;
8
+ properties: Map<string, import("./design-resource-fact-types.js").DesignResourcePropertyDefinitionV1>;
9
+ rules: Map<string, DesignResourceSymbolicFactRuleV2>;
10
+ dispositions: Map<string, DesignResourceSymbolicDispositionRegionV2>;
11
+ obligations: Map<string, import("./design-resource-symbolic-fact-types.js").DesignResourceSymbolicProofObligationV2>;
12
+ oracles: Map<string, import("./design-resource-fact-types.js").DesignResourceOracleV1>;
13
+ environments: Map<string, import("./design-resource-fact-types.js").DesignResourceEnvironmentV1>;
14
+ inspectorCapabilities: Set<"accessibility" | "assets" | "audio" | "component_anatomy" | "css_cascade" | "custom_properties" | "design_tokens" | "dynamic_population" | "geometry_measurement" | "haptics" | "html_dom" | "input_rules" | "javascript_static" | "json" | "localization" | "markdown" | "motion" | "prototype_transitions" | "relations" | "render_capture" | "responsive_rules" | "svg" | "system_ui">;
15
+ rulesBySubjectProperty: Map<string, DesignResourceSymbolicFactRuleV2[]>;
16
+ dispositionsBySubjectProperty: Map<string, DesignResourceSymbolicDispositionRegionV2[]>;
17
+ rulesBySemanticTuple: Map<string, DesignResourceSymbolicFactRuleV2[]>;
18
+ dispositionsBySemanticTuple: Map<string, DesignResourceSymbolicDispositionRegionV2[]>;
19
+ rulesByCensus: Map<string, DesignResourceSymbolicFactRuleV2[]>;
20
+ };
21
+ export type SymbolicManifestIndexes = ReturnType<typeof buildSymbolicManifestIndexes>;
22
+ export declare function symbolicSubjectPropertyKey(subjectRef: string, propertyRef: string): string;
23
+ export declare function symbolicSemanticTupleKey(row: DesignResourceSymbolicFactRuleV2 | DesignResourceSymbolicDispositionRegionV2 | SymbolicExtensionalPointV1): string;
@@ -0,0 +1,54 @@
1
+ import { stableJson } from "./design-resource-symbolic-validation-support.js";
2
+ export function buildSymbolicManifestIndexes(manifest, parsed) {
3
+ const rulesBySubjectProperty = groupRows(manifest.fact_rules, (rule) => symbolicSubjectPropertyKey(rule.subject_or_relation_ref, rule.property_ref));
4
+ const dispositionsBySubjectProperty = groupRows(manifest.disposition_regions, (row) => symbolicSubjectPropertyKey(row.subject_or_relation_ref, row.property_ref));
5
+ const rulesBySemanticTuple = groupRows(manifest.fact_rules, symbolicSemanticTupleKey);
6
+ const dispositionsBySemanticTuple = groupRows(manifest.disposition_regions, symbolicSemanticTupleKey);
7
+ const rulesByCensus = new Map();
8
+ for (const rule of manifest.fact_rules)
9
+ for (const censusRef of rule.census_refs)
10
+ append(rulesByCensus, censusRef, rule);
11
+ return {
12
+ sourceItems: new Set(parsed.source_item_keys),
13
+ census: new Map(manifest.inspector.census.map((item) => [item.key, item])),
14
+ subjects: new Map(manifest.subjects.map((item) => [item.key, item])),
15
+ populations: new Map(manifest.populations.map((item) => [item.key, item])),
16
+ properties: new Map(manifest.properties.map((item) => [item.key, item])),
17
+ rules: new Map(manifest.fact_rules.map((item) => [item.key, item])),
18
+ dispositions: new Map(manifest.disposition_regions.map((item) => [item.key, item])),
19
+ obligations: new Map(manifest.semantic_proof_obligations.map((item) => [item.key, item])),
20
+ oracles: new Map(manifest.oracles.map((item) => [item.key, item])),
21
+ environments: new Map(manifest.environments.map((item) => [item.key, item])),
22
+ inspectorCapabilities: new Set(manifest.inspector.capability_refs),
23
+ rulesBySubjectProperty,
24
+ dispositionsBySubjectProperty,
25
+ rulesBySemanticTuple,
26
+ dispositionsBySemanticTuple,
27
+ rulesByCensus,
28
+ };
29
+ }
30
+ export function symbolicSubjectPropertyKey(subjectRef, propertyRef) {
31
+ return `${subjectRef}\u0000${propertyRef}`;
32
+ }
33
+ export function symbolicSemanticTupleKey(row) {
34
+ return [
35
+ row.subject_or_relation_ref,
36
+ row.target_ref,
37
+ row.property_ref,
38
+ row.population_ref ?? "none",
39
+ stableJson(row.quantifier),
40
+ ].join("\u0000");
41
+ }
42
+ function groupRows(rows, keyOf) {
43
+ const groups = new Map();
44
+ for (const row of rows)
45
+ append(groups, keyOf(row), row);
46
+ return groups;
47
+ }
48
+ function append(groups, key, row) {
49
+ const values = groups.get(key);
50
+ if (values)
51
+ values.push(row);
52
+ else
53
+ groups.set(key, [row]);
54
+ }
@@ -0,0 +1,3 @@
1
+ import type { DesignResourceObservableRuleManifestV2 } from "./design-resource-symbolic-fact-types.js";
2
+ export declare function parseDesignResourceObservableRuleManifestJson(content: string): DesignResourceObservableRuleManifestV2;
3
+ export declare function parseDesignResourceObservableRuleManifestShape(value: unknown): DesignResourceObservableRuleManifestV2;
@@ -0,0 +1,155 @@
1
+ import { parseDesignResourceEnvironments, parseDesignResourceOracles, } from "./design-resource-fact-manifest-shape-evidence.js";
2
+ import { parseDesignResourceProperties } from "./design-resource-fact-manifest-shape-facts.js";
3
+ import { parseDesignResourceFactManifestInspector, parseDesignResourceManifestDesignSystem, } from "./design-resource-fact-manifest-shape-inspector.js";
4
+ import { parseDesignResourceHandoffBlockers } from "./design-resource-handoff-shape-evidence.js";
5
+ import { contractKey, sha256, sourceItemKeys, stableKey, stableKeys, } from "./design-resource-handoff-shape-primitives.js";
6
+ import { parseDesignResourceHandoffSubjects } from "./design-resource-handoff-shape-structure.js";
7
+ import { parseSymbolicStructuralApplicability } from "./design-resource-symbolic-applicability-shape.js";
8
+ import { parseSymbolicNoninterferenceProof } from "./design-resource-symbolic-noninterference-shape.js";
9
+ import { parseSymbolicAxisDomains, parseSymbolicPredicate, } from "./design-resource-symbolic-predicate-shape.js";
10
+ import { parseSymbolicFactRules, parseSymbolicObligation, parseSymbolicPopulations, parseSymbolicQuantifier, } from "./design-resource-symbolic-rule-shape.js";
11
+ import { array, literal, nullable, object, string, } from "./long-task-shape-primitives.js";
12
+ export function parseDesignResourceObservableRuleManifestJson(content) {
13
+ let value;
14
+ try {
15
+ value = JSON.parse(content);
16
+ }
17
+ catch (error) {
18
+ const message = error instanceof Error ? error.message : String(error);
19
+ throw new Error(`design_resource_symbolic_manifest_invalid:json:${message}`);
20
+ }
21
+ return parseDesignResourceObservableRuleManifestShape(value);
22
+ }
23
+ export function parseDesignResourceObservableRuleManifestShape(value) {
24
+ const label = "design_resource_symbolic_manifest";
25
+ const root = object(value, label, [
26
+ "schema_version",
27
+ "scope_key",
28
+ "target_key",
29
+ "inspector",
30
+ "design_system",
31
+ "axis_domains",
32
+ "reachable_region",
33
+ "subjects",
34
+ "populations",
35
+ "properties",
36
+ "fact_rules",
37
+ "disposition_regions",
38
+ "semantic_proof_obligations",
39
+ "dependency_edges",
40
+ "noninterference_certificates",
41
+ "oracles",
42
+ "environments",
43
+ "acceptance_blockers",
44
+ ], ["structural_applicability"]);
45
+ return {
46
+ schema_version: literal(root.schema_version, ["design-resource-observable-rule-manifest-v2"], `${label}.schema_version`),
47
+ scope_key: contractKey(root.scope_key, `${label}.scope_key`),
48
+ target_key: contractKey(root.target_key, `${label}.target_key`),
49
+ inspector: parseDesignResourceFactManifestInspector(root.inspector, `${label}.inspector`),
50
+ design_system: parseDesignResourceManifestDesignSystem(root.design_system, `${label}.design_system`),
51
+ axis_domains: parseSymbolicAxisDomains(root.axis_domains, `${label}.axis_domains`),
52
+ reachable_region: parseSymbolicPredicate(root.reachable_region, `${label}.reachable_region`),
53
+ subjects: parseDesignResourceHandoffSubjects(root.subjects),
54
+ populations: parseSymbolicPopulations(root.populations, `${label}.populations`),
55
+ properties: parseDesignResourceProperties(root.properties, `${label}.properties`),
56
+ fact_rules: parseSymbolicFactRules(root.fact_rules, `${label}.fact_rules`),
57
+ disposition_regions: parseDispositionRegions(root.disposition_regions, label),
58
+ semantic_proof_obligations: array(root.semantic_proof_obligations, `${label}.semantic_proof_obligations`).map((item, index) => parseSymbolicObligation(item, `${label}.semantic_proof_obligations[${index}]`)),
59
+ dependency_edges: parseDependencyEdges(root.dependency_edges, label),
60
+ noninterference_certificates: parseNoninterferenceCertificates(root.noninterference_certificates, label),
61
+ oracles: parseDesignResourceOracles(root.oracles, `${label}.oracles`),
62
+ environments: parseDesignResourceEnvironments(root.environments, `${label}.environments`),
63
+ acceptance_blockers: parseDesignResourceHandoffBlockers(root.acceptance_blockers),
64
+ ...(root.structural_applicability === undefined
65
+ ? {}
66
+ : {
67
+ structural_applicability: parseSymbolicStructuralApplicability(root.structural_applicability, `${label}.structural_applicability`),
68
+ }),
69
+ };
70
+ }
71
+ function parseDispositionRegions(value, label) {
72
+ return array(value, `${label}.disposition_regions`).map((item, index) => {
73
+ const itemLabel = `${label}.disposition_regions[${index}]`;
74
+ const row = object(item, itemLabel, [
75
+ "key",
76
+ "subject_or_relation_ref",
77
+ "target_ref",
78
+ "property_ref",
79
+ "population_ref",
80
+ "quantifier",
81
+ "region",
82
+ "disposition",
83
+ "census_refs",
84
+ "source_item_refs",
85
+ "basis_refs",
86
+ "rationale",
87
+ ]);
88
+ return {
89
+ key: stableKey(row.key, `${itemLabel}.key`),
90
+ subject_or_relation_ref: stableKey(row.subject_or_relation_ref, `${itemLabel}.subject_or_relation_ref`),
91
+ target_ref: contractKey(row.target_ref, `${itemLabel}.target_ref`),
92
+ property_ref: stableKey(row.property_ref, `${itemLabel}.property_ref`),
93
+ population_ref: nullable(row.population_ref, (entry) => stableKey(entry, `${itemLabel}.population_ref`)),
94
+ quantifier: parseSymbolicQuantifier(row.quantifier, `${itemLabel}.quantifier`),
95
+ region: parseSymbolicPredicate(row.region, `${itemLabel}.region`),
96
+ disposition: literal(row.disposition, [
97
+ "not_applicable",
98
+ "excluded",
99
+ "decision_required",
100
+ "unavailable",
101
+ "blocking",
102
+ ], `${itemLabel}.disposition`),
103
+ census_refs: stableKeys(row.census_refs, `${itemLabel}.census_refs`),
104
+ source_item_refs: sourceItemKeys(row.source_item_refs, `${itemLabel}.source_item_refs`),
105
+ basis_refs: stableKeys(row.basis_refs, `${itemLabel}.basis_refs`),
106
+ rationale: string(row.rationale, `${itemLabel}.rationale`),
107
+ };
108
+ });
109
+ }
110
+ function parseDependencyEdges(value, label) {
111
+ return array(value, `${label}.dependency_edges`).map((item, index) => {
112
+ const itemLabel = `${label}.dependency_edges[${index}]`;
113
+ const row = object(item, itemLabel, [
114
+ "key",
115
+ "axis_ref",
116
+ "fact_rule_ref",
117
+ "effects",
118
+ ]);
119
+ return {
120
+ key: stableKey(row.key, `${itemLabel}.key`),
121
+ axis_ref: stableKey(row.axis_ref, `${itemLabel}.axis_ref`),
122
+ fact_rule_ref: stableKey(row.fact_rule_ref, `${itemLabel}.fact_rule_ref`),
123
+ effects: array(row.effects, `${itemLabel}.effects`).map((effect, effectIndex) => literal(effect, ["disposition", "expected_semantics", "proof_denotation"], `${itemLabel}.effects[${effectIndex}]`)),
124
+ };
125
+ });
126
+ }
127
+ function parseNoninterferenceCertificates(value, label) {
128
+ return array(value, `${label}.noninterference_certificates`).map((item, index) => {
129
+ const itemLabel = `${label}.noninterference_certificates[${index}]`;
130
+ const row = object(item, itemLabel, [
131
+ "key",
132
+ "fact_rule_refs",
133
+ "omitted_axis_refs",
134
+ "dependency_edge_refs",
135
+ "canonical_rule_dag_sha256",
136
+ ], ["source_noninterference_proof", "production_noninterference_proof"]);
137
+ return {
138
+ key: stableKey(row.key, `${itemLabel}.key`),
139
+ fact_rule_refs: stableKeys(row.fact_rule_refs, `${itemLabel}.fact_rule_refs`),
140
+ omitted_axis_refs: stableKeys(row.omitted_axis_refs, `${itemLabel}.omitted_axis_refs`),
141
+ dependency_edge_refs: stableKeys(row.dependency_edge_refs, `${itemLabel}.dependency_edge_refs`),
142
+ canonical_rule_dag_sha256: sha256(row.canonical_rule_dag_sha256, `${itemLabel}.canonical_rule_dag_sha256`),
143
+ ...(row.source_noninterference_proof === undefined
144
+ ? {}
145
+ : {
146
+ source_noninterference_proof: nullable(row.source_noninterference_proof, (entry) => parseSymbolicNoninterferenceProof(entry, `${itemLabel}.source_noninterference_proof`)),
147
+ }),
148
+ ...(row.production_noninterference_proof === undefined
149
+ ? {}
150
+ : {
151
+ production_noninterference_proof: nullable(row.production_noninterference_proof, (entry) => parseSymbolicNoninterferenceProof(entry, `${itemLabel}.production_noninterference_proof`)),
152
+ }),
153
+ };
154
+ });
155
+ }
@@ -0,0 +1,6 @@
1
+ import type { DesignResource } from "./design-resource-handoff-file-primitives.js";
2
+ import type { DesignResourceHandoffPreflightV2, DesignResourceObservableRuleManifestV2, ParsedDesignResourceHandoffV2 } from "./design-resource-symbolic-fact-types.js";
3
+ export declare function validateDesignResourceSymbolicManifest(manifest: DesignResourceObservableRuleManifestV2, parsed: ParsedDesignResourceHandoffV2, resources: Map<string, DesignResource>, contents: Map<string, Buffer>): {
4
+ ruleProjections: DesignResourceHandoffPreflightV2["rule_projections"];
5
+ metrics: DesignResourceHandoffPreflightV2["metrics"];
6
+ };