project-tiny-context-harness 0.8.4 → 0.8.5

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 (252) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +393 -371
  3. package/assets/README.md +573 -526
  4. package/assets/README.zh-CN.md +333 -311
  5. package/assets/agents/.gitkeep +1 -1
  6. package/assets/agents/AGENTS_CORE.md +44 -25
  7. package/assets/context_templates/architecture.md +28 -28
  8. package/assets/context_templates/area.md +34 -34
  9. package/assets/context_templates/context.toml +30 -30
  10. package/assets/context_templates/deployment.md +35 -35
  11. package/assets/context_templates/global.md +57 -57
  12. package/assets/context_templates/product-surface-contract.md +70 -70
  13. package/assets/context_templates/screen-contract.md +189 -189
  14. package/assets/context_templates/verification.md +32 -32
  15. package/assets/github/.gitkeep +1 -1
  16. package/assets/github/harness.yml +39 -39
  17. package/assets/make/.gitkeep +1 -1
  18. package/assets/make/ty-context.mk +48 -48
  19. package/assets/skills/context_development_engineer/SKILL.md +148 -125
  20. package/assets/skills/context_full_project_export/SKILL.md +28 -28
  21. package/assets/skills/context_harness_upgrade/SKILL.md +60 -60
  22. package/assets/skills/context_product_plan/SKILL.md +99 -79
  23. package/assets/skills/context_surface_contract/SKILL.md +191 -191
  24. package/assets/skills/context_uiux_design/SKILL.md +171 -171
  25. package/assets/skills/design-resource-authoring/SKILL.md +86 -84
  26. package/assets/skills/design-resource-authoring/references/downstream-handoff.md +138 -123
  27. package/assets/skills/design-resource-authoring/references/open-design-provider.md +132 -127
  28. package/assets/skills/design-resource-authoring/references/resource-selection.md +181 -154
  29. package/assets/skills/design-system-authoring/SKILL.md +57 -57
  30. package/assets/skills/design-system-authoring/agents/openai.yaml +6 -6
  31. package/assets/skills/design-system-authoring/references/authority-adoption.md +48 -48
  32. package/assets/skills/design-system-authoring/references/open-design-design-system-provider.md +110 -110
  33. package/assets/skills/long-task-workflow/SKILL.md +98 -92
  34. package/assets/skills/long-task-workflow/agents/openai.yaml +3 -1
  35. package/assets/skills/long-task-workflow/references/authority-lifecycle.md +72 -72
  36. package/assets/skills/long-task-workflow/references/contract-authoring.md +122 -101
  37. package/assets/skills/long-task-workflow/references/evidence-design.md +82 -61
  38. package/assets/skills/long-task-workflow/references/source-authoring.md +109 -90
  39. package/assets/skills/source-plan-authoring/SKILL.md +14 -14
  40. package/assets/tools/validate_context.py +442 -442
  41. package/dist/commands/long-task-authoring.js +27 -2
  42. package/dist/lib/context-templates.js +1 -1
  43. package/dist/lib/design-resource-fact-enums.d.ts +20 -0
  44. package/dist/lib/design-resource-fact-enums.js +170 -0
  45. package/dist/lib/design-resource-fact-locator-extractors.d.ts +8 -0
  46. package/dist/lib/design-resource-fact-locator-extractors.js +108 -0
  47. package/dist/lib/design-resource-fact-locator-resolver.d.ts +3 -0
  48. package/dist/lib/design-resource-fact-locator-resolver.js +112 -0
  49. package/dist/lib/design-resource-fact-locator-validation.d.ts +5 -0
  50. package/dist/lib/design-resource-fact-locator-validation.js +16 -0
  51. package/dist/lib/design-resource-fact-manifest-catalog.d.ts +4 -0
  52. package/dist/lib/design-resource-fact-manifest-catalog.js +249 -0
  53. package/dist/lib/design-resource-fact-manifest-model.d.ts +91 -0
  54. package/dist/lib/design-resource-fact-manifest-model.js +21 -0
  55. package/dist/lib/design-resource-fact-manifest-shape-axes.d.ts +6 -0
  56. package/dist/lib/design-resource-fact-manifest-shape-axes.js +159 -0
  57. package/dist/lib/design-resource-fact-manifest-shape-evidence.d.ts +4 -0
  58. package/dist/lib/design-resource-fact-manifest-shape-evidence.js +59 -0
  59. package/dist/lib/design-resource-fact-manifest-shape-facts.d.ts +4 -0
  60. package/dist/lib/design-resource-fact-manifest-shape-facts.js +109 -0
  61. package/dist/lib/design-resource-fact-manifest-shape-inspector.d.ts +5 -0
  62. package/dist/lib/design-resource-fact-manifest-shape-inspector.js +144 -0
  63. package/dist/lib/design-resource-fact-manifest-shape.d.ts +7 -0
  64. package/dist/lib/design-resource-fact-manifest-shape.js +75 -0
  65. package/dist/lib/design-resource-fact-manifest-types.d.ts +3 -0
  66. package/dist/lib/design-resource-fact-manifest-types.js +3 -0
  67. package/dist/lib/design-resource-fact-manifest-universe.d.ts +5 -0
  68. package/dist/lib/design-resource-fact-manifest-universe.js +50 -0
  69. package/dist/lib/design-resource-fact-manifest-validation.d.ts +3 -0
  70. package/dist/lib/design-resource-fact-manifest-validation.js +106 -0
  71. package/dist/lib/design-resource-fact-policy.d.ts +18 -0
  72. package/dist/lib/design-resource-fact-policy.js +72 -1
  73. package/dist/lib/design-resource-fact-property-methods.d.ts +3 -0
  74. package/dist/lib/design-resource-fact-property-methods.js +158 -0
  75. package/dist/lib/design-resource-fact-shape-primitives.d.ts +3 -0
  76. package/dist/lib/design-resource-fact-shape-primitives.js +18 -0
  77. package/dist/lib/design-resource-fact-types.d.ts +164 -0
  78. package/dist/lib/design-resource-fact-types.js +1 -0
  79. package/dist/lib/design-resource-fact-universe-assets.d.ts +4 -0
  80. package/dist/lib/design-resource-fact-universe-assets.js +71 -0
  81. package/dist/lib/design-resource-fact-universe-catalog.d.ts +4 -0
  82. package/dist/lib/design-resource-fact-universe-catalog.js +151 -0
  83. package/dist/lib/design-resource-fact-universe-conditions.d.ts +2 -0
  84. package/dist/lib/design-resource-fact-universe-conditions.js +92 -0
  85. package/dist/lib/design-resource-fact-universe-facts.d.ts +4 -0
  86. package/dist/lib/design-resource-fact-universe-facts.js +108 -0
  87. package/dist/lib/design-resource-fact-universe-helpers.d.ts +30 -0
  88. package/dist/lib/design-resource-fact-universe-helpers.js +167 -0
  89. package/dist/lib/design-resource-fact-universe-inspector.d.ts +7 -0
  90. package/dist/lib/design-resource-fact-universe-inspector.js +119 -0
  91. package/dist/lib/design-resource-fact-universe-proof.d.ts +4 -0
  92. package/dist/lib/design-resource-fact-universe-proof.js +113 -0
  93. package/dist/lib/design-resource-fact-universe-subjects.d.ts +5 -0
  94. package/dist/lib/design-resource-fact-universe-subjects.js +97 -0
  95. package/dist/lib/design-resource-fact-universe-variations.d.ts +2 -0
  96. package/dist/lib/design-resource-fact-universe-variations.js +75 -0
  97. package/dist/lib/design-resource-fact-value-validation.d.ts +2 -0
  98. package/dist/lib/design-resource-fact-value-validation.js +80 -0
  99. package/dist/lib/design-resource-handoff-file-primitives.js +2 -0
  100. package/dist/lib/design-resource-handoff-file-validation.js +13 -100
  101. package/dist/lib/design-resource-handoff-policy.d.ts +1 -0
  102. package/dist/lib/design-resource-handoff-policy.js +118 -11
  103. package/dist/lib/design-resource-handoff-shape-evidence.js +46 -3
  104. package/dist/lib/design-resource-handoff-shape-primitives.d.ts +5 -0
  105. package/dist/lib/design-resource-handoff-shape-primitives.js +28 -0
  106. package/dist/lib/design-resource-handoff-shape-structure.js +143 -22
  107. package/dist/lib/design-resource-handoff-shape.js +25 -0
  108. package/dist/lib/design-resource-handoff-types.d.ts +97 -21
  109. package/dist/lib/design-resource-handoff-types.js +22 -0
  110. package/dist/lib/design-resource-handoff-validation-coverage.d.ts +1 -1
  111. package/dist/lib/design-resource-handoff-validation-coverage.js +145 -118
  112. package/dist/lib/design-resource-handoff-validation-fact-cells.d.ts +2 -0
  113. package/dist/lib/design-resource-handoff-validation-fact-cells.js +60 -0
  114. package/dist/lib/design-resource-handoff-validation-fact-records.d.ts +2 -0
  115. package/dist/lib/design-resource-handoff-validation-fact-records.js +90 -0
  116. package/dist/lib/design-resource-handoff-validation-facts.js +10 -94
  117. package/dist/lib/design-resource-handoff-validation-proofs.d.ts +2 -0
  118. package/dist/lib/design-resource-handoff-validation-proofs.js +67 -0
  119. package/dist/lib/design-resource-handoff-validation-resource-closure.d.ts +3 -0
  120. package/dist/lib/design-resource-handoff-validation-resource-closure.js +88 -0
  121. package/dist/lib/design-resource-handoff-validation-structure.js +43 -14
  122. package/dist/lib/design-resource-handoff-validation.js +32 -0
  123. package/dist/lib/design-resource-handoff-web-dependency-validation.d.ts +2 -1
  124. package/dist/lib/design-resource-handoff-web-dependency-validation.js +67 -7
  125. package/dist/lib/execution-target-capabilities.d.ts +1 -1
  126. package/dist/lib/execution-target-capabilities.js +14 -0
  127. package/dist/lib/long-task-activation-validation.js +6 -2
  128. package/dist/lib/long-task-applicability-shape.js +3 -3
  129. package/dist/lib/long-task-authoring-authority-preview.js +1 -0
  130. package/dist/lib/long-task-authority-policy.d.ts +1 -0
  131. package/dist/lib/long-task-authority-policy.js +1 -0
  132. package/dist/lib/long-task-authority.js +13 -0
  133. package/dist/lib/long-task-claim-definitions.js +13 -1
  134. package/dist/lib/long-task-claims.js +23 -1
  135. package/dist/lib/long-task-contract-types.d.ts +3 -0
  136. package/dist/lib/long-task-delivery-compiler.js +1 -0
  137. package/dist/lib/long-task-delivery-parser.js +11 -1
  138. package/dist/lib/long-task-delivery-types.d.ts +1 -0
  139. package/dist/lib/long-task-delivery-types.js +1 -0
  140. package/dist/lib/long-task-delivery-validation.js +17 -0
  141. package/dist/lib/long-task-design-resource-handoff.js +62 -38
  142. package/dist/lib/long-task-design-target-capabilities.d.ts +14 -0
  143. package/dist/lib/long-task-design-target-capabilities.js +126 -0
  144. package/dist/lib/long-task-evidence-capability-codec.d.ts +94 -0
  145. package/dist/lib/long-task-evidence-capability-codec.js +395 -22
  146. package/dist/lib/long-task-evidence-capability-policy.js +18 -0
  147. package/dist/lib/long-task-evidence-capability-runtime.js +78 -0
  148. package/dist/lib/long-task-evidence-capability-types.d.ts +114 -1
  149. package/dist/lib/long-task-outcome-parser.js +4 -0
  150. package/dist/lib/long-task-playwright-capability-records.d.ts +5 -0
  151. package/dist/lib/long-task-playwright-capability-records.js +146 -0
  152. package/dist/lib/long-task-playwright-case-evidence.d.ts +3 -2
  153. package/dist/lib/long-task-playwright-case-evidence.js +10 -79
  154. package/dist/lib/long-task-playwright-case-primitives.d.ts +28 -0
  155. package/dist/lib/long-task-playwright-case-primitives.js +143 -0
  156. package/dist/lib/long-task-playwright-evidence.d.ts +1 -1
  157. package/dist/lib/long-task-playwright-evidence.js +10 -75
  158. package/dist/lib/long-task-runner-freeze.d.ts +2 -2
  159. package/dist/lib/long-task-runner-freeze.js +15 -1
  160. package/dist/lib/long-task-runtime-types.d.ts +4 -1
  161. package/dist/lib/long-task-semantic-contract-types.d.ts +1 -1
  162. package/dist/lib/long-task-semantic-drift-migration.js +2 -2
  163. package/dist/lib/long-task-semantic-fact-binding-types.d.ts +57 -0
  164. package/dist/lib/long-task-semantic-fact-binding-types.js +1 -0
  165. package/dist/lib/long-task-semantic-fact-closure-primitives.d.ts +5 -0
  166. package/dist/lib/long-task-semantic-fact-closure-primitives.js +43 -0
  167. package/dist/lib/long-task-semantic-fact-closure.d.ts +13 -0
  168. package/dist/lib/long-task-semantic-fact-closure.js +48 -0
  169. package/dist/lib/long-task-semantic-fact-contract-closure.d.ts +4 -0
  170. package/dist/lib/long-task-semantic-fact-contract-closure.js +24 -0
  171. package/dist/lib/long-task-semantic-fact-contract-facts.d.ts +4 -0
  172. package/dist/lib/long-task-semantic-fact-contract-facts.js +30 -0
  173. package/dist/lib/long-task-semantic-fact-contract-proofs.d.ts +4 -0
  174. package/dist/lib/long-task-semantic-fact-contract-proofs.js +97 -0
  175. package/dist/lib/long-task-semantic-fact-evidence.d.ts +21 -0
  176. package/dist/lib/long-task-semantic-fact-evidence.js +165 -0
  177. package/dist/lib/long-task-semantic-fact-input-closure.d.ts +4 -0
  178. package/dist/lib/long-task-semantic-fact-input-closure.js +101 -0
  179. package/dist/lib/long-task-semantic-fact-provenance-closure.d.ts +4 -0
  180. package/dist/lib/long-task-semantic-fact-provenance-closure.js +140 -0
  181. package/dist/lib/long-task-semantic-fact-shape.d.ts +3 -0
  182. package/dist/lib/long-task-semantic-fact-shape.js +89 -0
  183. package/dist/lib/long-task-semantic-fact-value-closure.d.ts +3 -0
  184. package/dist/lib/long-task-semantic-fact-value-closure.js +110 -0
  185. package/dist/lib/long-task-shape-primitives.d.ts +2 -1
  186. package/dist/lib/long-task-shape-primitives.js +7 -0
  187. package/dist/lib/long-task-source-item-parser.js +25 -6
  188. package/dist/lib/long-task-source-target-continuity.js +4 -1
  189. package/dist/lib/long-task-source-target-index.d.ts +1 -1
  190. package/dist/lib/long-task-source-target-index.js +5 -1
  191. package/dist/lib/long-task-ui-design-policy.js +8 -4
  192. package/dist/lib/long-task-ui-surface-shape.js +83 -1
  193. package/dist/lib/long-task-ui-surface-types.d.ts +29 -0
  194. package/dist/lib/modularity.js +7 -1
  195. package/dist/lib/semantic-fact-base-types.d.ts +14 -0
  196. package/dist/lib/semantic-fact-base-types.js +1 -0
  197. package/dist/lib/semantic-fact-catalog.d.ts +8 -0
  198. package/dist/lib/semantic-fact-catalog.js +191 -0
  199. package/dist/lib/semantic-fact-condition-shape.d.ts +48 -0
  200. package/dist/lib/semantic-fact-condition-shape.js +111 -0
  201. package/dist/lib/semantic-fact-input-shape.d.ts +34 -0
  202. package/dist/lib/semantic-fact-input-shape.js +111 -0
  203. package/dist/lib/semantic-fact-inventory-types.d.ts +147 -0
  204. package/dist/lib/semantic-fact-inventory-types.js +1 -0
  205. package/dist/lib/semantic-fact-manifest-shape.d.ts +4 -0
  206. package/dist/lib/semantic-fact-manifest-shape.js +135 -0
  207. package/dist/lib/semantic-fact-manifest-types.d.ts +58 -0
  208. package/dist/lib/semantic-fact-manifest-types.js +19 -0
  209. package/dist/lib/semantic-fact-policy-authority.d.ts +8 -0
  210. package/dist/lib/semantic-fact-policy-authority.js +79 -0
  211. package/dist/lib/semantic-fact-policy-census.d.ts +2 -0
  212. package/dist/lib/semantic-fact-policy-census.js +80 -0
  213. package/dist/lib/semantic-fact-policy-condition-references.d.ts +7 -0
  214. package/dist/lib/semantic-fact-policy-condition-references.js +19 -0
  215. package/dist/lib/semantic-fact-policy-conditions.d.ts +2 -0
  216. package/dist/lib/semantic-fact-policy-conditions.js +105 -0
  217. package/dist/lib/semantic-fact-policy-facts.d.ts +3 -0
  218. package/dist/lib/semantic-fact-policy-facts.js +73 -0
  219. package/dist/lib/semantic-fact-policy-primitives.d.ts +26 -0
  220. package/dist/lib/semantic-fact-policy-primitives.js +169 -0
  221. package/dist/lib/semantic-fact-policy-proofs.d.ts +2 -0
  222. package/dist/lib/semantic-fact-policy-proofs.js +75 -0
  223. package/dist/lib/semantic-fact-policy-properties.d.ts +3 -0
  224. package/dist/lib/semantic-fact-policy-properties.js +84 -0
  225. package/dist/lib/semantic-fact-policy-units.d.ts +4 -0
  226. package/dist/lib/semantic-fact-policy-units.js +103 -0
  227. package/dist/lib/semantic-fact-policy.d.ts +17 -0
  228. package/dist/lib/semantic-fact-policy.js +41 -0
  229. package/dist/lib/semantic-fact-proof-shape.d.ts +51 -0
  230. package/dist/lib/semantic-fact-proof-shape.js +121 -0
  231. package/dist/lib/semantic-fact-proof-types.d.ts +74 -0
  232. package/dist/lib/semantic-fact-proof-types.js +1 -0
  233. package/dist/lib/semantic-fact-property-shape.d.ts +29 -0
  234. package/dist/lib/semantic-fact-property-shape.js +77 -0
  235. package/dist/lib/semantic-fact-shape-constants.d.ts +3 -0
  236. package/dist/lib/semantic-fact-shape-constants.js +38 -0
  237. package/dist/lib/semantic-fact-shape-primitives.d.ts +15 -0
  238. package/dist/lib/semantic-fact-shape-primitives.js +68 -0
  239. package/dist/lib/semantic-fact-source-parser.d.ts +9 -0
  240. package/dist/lib/semantic-fact-source-parser.js +46 -0
  241. package/dist/lib/semantic-fact-support-shape.d.ts +21 -0
  242. package/dist/lib/semantic-fact-support-shape.js +59 -0
  243. package/dist/lib/semantic-fact-types.d.ts +5 -0
  244. package/dist/lib/semantic-fact-types.js +5 -0
  245. package/dist/lib/semantic-fact-unit-shape.d.ts +34 -0
  246. package/dist/lib/semantic-fact-unit-shape.js +89 -0
  247. package/dist/lib/semantic-fact-value-shape.d.ts +12 -0
  248. package/dist/lib/semantic-fact-value-shape.js +39 -0
  249. package/dist/schemas/long-task-delivery-v2/long-task-delivery-v2.schema.json +1339 -131
  250. package/migrations/README.md +15 -15
  251. package/package.json +84 -84
  252. package/source-mappings.yaml +25 -25
@@ -0,0 +1,249 @@
1
+ import { DESIGN_RESOURCE_INSPECTOR_CAPABILITIES, DESIGN_RESOURCE_PROPERTY_FAMILIES, DESIGN_RESOURCE_VALUE_KINDS, } from "./design-resource-fact-manifest-types.js";
2
+ import { DESIGN_RESOURCE_DIMENSIONS, } from "./design-resource-handoff-types.js";
3
+ import { designResourceRequiredMethods } from "./design-resource-fact-property-methods.js";
4
+ const STANDARD_PROPERTY_ROWS = `
5
+ geometry.coordinate-system|geometry|surface_flow|enum|component_anatomy
6
+ geometry.position-x|geometry|surface_flow|length|component_anatomy
7
+ geometry.position-y|geometry|surface_flow|length|component_anatomy
8
+ geometry.width|geometry|surface_flow|length|component_anatomy
9
+ geometry.height|geometry|surface_flow|length|component_anatomy
10
+ geometry.min-width|geometry|surface_flow|length|component_anatomy
11
+ geometry.max-width|geometry|surface_flow|length|component_anatomy
12
+ geometry.min-height|geometry|surface_flow|length|component_anatomy
13
+ geometry.max-height|geometry|surface_flow|length|component_anatomy
14
+ geometry.aspect-ratio|geometry|surface_flow|ratio|component_anatomy
15
+ geometry.content-width|geometry|surface_flow|length|component_anatomy
16
+ geometry.logical-physical-unit|geometry|surface_flow|semantic|component_anatomy
17
+ geometry.precision-rounding|geometry|surface_flow|semantic|component_anatomy
18
+ geometry.pixel-snapping|geometry|visual_content|semantic|component_anatomy
19
+ geometry.touch-target|geometry|component_control|length|component_anatomy
20
+ geometry.hit-slop|geometry|component_control|list|component_anatomy
21
+ layout.safe-area-insets|layout|adaptation_input|list|responsive_rules
22
+ layout.edge-constraints|layout|surface_flow|relation|relations
23
+ layout.mode|layout|surface_flow|enum|css_cascade
24
+ layout.grid-template|layout|surface_flow|string|css_cascade
25
+ layout.flex-basis|layout|surface_flow|length|css_cascade
26
+ layout.flex-grow|layout|surface_flow|number|css_cascade
27
+ layout.flex-shrink|layout|surface_flow|number|css_cascade
28
+ layout.order|layout|surface_flow|number|css_cascade
29
+ layout.margin-top|layout|surface_flow|length|css_cascade
30
+ layout.margin-right|layout|surface_flow|length|css_cascade
31
+ layout.margin-bottom|layout|surface_flow|length|css_cascade
32
+ layout.margin-left|layout|surface_flow|length|css_cascade
33
+ layout.padding-top|layout|surface_flow|length|css_cascade
34
+ layout.padding-right|layout|surface_flow|length|css_cascade
35
+ layout.padding-bottom|layout|surface_flow|length|css_cascade
36
+ layout.padding-left|layout|surface_flow|length|css_cascade
37
+ layout.row-gap|layout|surface_flow|length|css_cascade
38
+ layout.column-gap|layout|surface_flow|length|css_cascade
39
+ layout.align-items|layout|surface_flow|enum|css_cascade
40
+ layout.align-self|layout|surface_flow|enum|css_cascade
41
+ layout.justify-content|layout|surface_flow|enum|css_cascade
42
+ layout.baseline|layout|surface_flow|relation|relations
43
+ layout.anchor|layout|surface_flow|relation|relations
44
+ layout.transform|layout|visual_content|list|css_cascade
45
+ layout.transform-origin|layout|visual_content|list|css_cascade
46
+ layout.z-index|layout|surface_flow|number|css_cascade
47
+ layout.elevation|layout|visual_content|number|css_cascade
48
+ layout.clip|layout|visual_content|string|css_cascade
49
+ layout.mask|layout|visual_content|locator|css_cascade
50
+ layout.overflow|layout|surface_flow|enum|css_cascade
51
+ layout.occlusion|layout|surface_flow|relation|relations
52
+ scroll.container-owner|scroll|state_interaction|relation|relations
53
+ scroll.axis|scroll|state_interaction|enum|prototype_transitions,input_rules
54
+ scroll.nested-priority|scroll|state_interaction|relation|prototype_transitions,input_rules
55
+ scroll.indicator|scroll|visual_content|enum|prototype_transitions,input_rules
56
+ scroll.content-inset|scroll|adaptation_input|list|responsive_rules
57
+ scroll.bounce-overscroll|scroll|state_interaction|enum|prototype_transitions,input_rules
58
+ scroll.sticky-fixed-mode|scroll|state_interaction|enum|prototype_transitions,input_rules
59
+ scroll.restoration|scroll|state_interaction|semantic|prototype_transitions,input_rules
60
+ typography.font-family|typography|visual_content|string|css_cascade
61
+ typography.font-fallback|typography|visual_content|list|css_cascade
62
+ typography.variable-axes|typography|visual_content|list|css_cascade
63
+ typography.features|typography|visual_content|list|css_cascade
64
+ typography.font-size|typography|visual_content|length|css_cascade
65
+ typography.font-weight|typography|visual_content|number|css_cascade
66
+ typography.line-height|typography|visual_content|length|css_cascade
67
+ typography.letter-spacing|typography|visual_content|length|css_cascade
68
+ typography.numeral-style|typography|visual_content|enum|css_cascade
69
+ typography.hyphenation|typography|visual_content|enum|css_cascade
70
+ typography.formatting|typography|visual_content|semantic|localization
71
+ color.foreground|color|visual_content|color|design_tokens
72
+ color.background|color|visual_content|color|design_tokens
73
+ color.fill|color|visual_content|color|design_tokens
74
+ color.stroke|color|visual_content|color|design_tokens
75
+ color.gradient|color|visual_content|list|design_tokens
76
+ decoration.border-width|decoration|visual_content|length|css_cascade
77
+ decoration.border-style|decoration|visual_content|enum|css_cascade
78
+ decoration.border-dash|decoration|visual_content|list|css_cascade
79
+ decoration.stroke-cap|decoration|visual_content|enum|css_cascade
80
+ decoration.stroke-join|decoration|visual_content|enum|css_cascade
81
+ decoration.radius|decoration|visual_content|list|css_cascade
82
+ decoration.shadow|decoration|visual_content|list|css_cascade
83
+ decoration.blur|decoration|visual_content|number|css_cascade
84
+ decoration.vibrancy|decoration|visual_content|enum|system_ui
85
+ decoration.blend-mode|decoration|visual_content|enum|css_cascade
86
+ decoration.opacity|decoration|visual_content|number|css_cascade
87
+ content.copy|content|visual_content|string|html_dom
88
+ content.max-lines|content|visual_content|number|css_cascade
89
+ content.truncation|content|visual_content|enum|css_cascade
90
+ content.wrapping|content|visual_content|enum|css_cascade
91
+ content.visibility|content|component_control|boolean|html_dom
92
+ content.availability|content|component_control|enum|html_dom
93
+ content.layout-impact|content|component_control|semantic|component_anatomy
94
+ content.population-identity|content|component_control|semantic|dynamic_population
95
+ content.population-item-identity|content|component_control|semantic|dynamic_population
96
+ content.population-cardinality|content|component_control|number|dynamic_population
97
+ content.population-ordering|content|component_control|semantic|dynamic_population
98
+ content.virtualization-window|content|adaptation_input|semantic|dynamic_population
99
+ content.population-edge-cases|content|component_control|list|dynamic_population
100
+ content.date-format|content|visual_content|semantic|localization
101
+ content.time-format|content|visual_content|semantic|localization
102
+ content.number-format|content|visual_content|semantic|localization
103
+ content.unit-format|content|visual_content|semantic|localization
104
+ icon.glyph|icon|visual_content|locator|assets
105
+ icon.size|icon|visual_content|length|component_anatomy
106
+ icon.stroke|icon|visual_content|length|css_cascade
107
+ icon.tint|icon|visual_content|color|design_tokens
108
+ icon.position|icon|surface_flow|relation|relations
109
+ icon.text-gap|icon|surface_flow|length|component_anatomy
110
+ media.aspect-ratio|media|assets|ratio|assets
111
+ media.density-variant|media|assets|enum|assets
112
+ media.color-space|media|assets|enum|assets
113
+ media.crop-fit|media|assets|enum|assets
114
+ media.focal-point|media|assets|list|assets
115
+ media.mask|media|assets|locator|assets
116
+ media.placeholder|media|assets|locator|assets
117
+ media.error-state|media|assets|semantic|assets
118
+ media.decode-policy|media|assets|enum|assets
119
+ media.fallback|media|assets|locator|assets
120
+ interaction.trigger|interaction|state_interaction|semantic|prototype_transitions,input_rules
121
+ interaction.hit-testing|interaction|state_interaction|semantic|prototype_transitions,input_rules
122
+ interaction.pointer-events|interaction|state_interaction|enum|prototype_transitions,input_rules
123
+ interaction.gesture-priority|interaction|state_interaction|relation|prototype_transitions,input_rules
124
+ interaction.drag-threshold|interaction|state_interaction|length|prototype_transitions,input_rules
125
+ interaction.drag-axis|interaction|state_interaction|enum|prototype_transitions,input_rules
126
+ interaction.drag-bounds|interaction|state_interaction|list|prototype_transitions,input_rules
127
+ interaction.velocity-threshold|interaction|state_interaction|number|prototype_transitions,input_rules
128
+ interaction.snap-points|interaction|state_interaction|list|prototype_transitions,input_rules
129
+ interaction.cancel-reverse|interaction|state_interaction|semantic|prototype_transitions,input_rules
130
+ interaction.request-replacement|interaction|state_interaction|semantic|prototype_transitions,input_rules
131
+ interaction.repeated-input|interaction|state_interaction|semantic|prototype_transitions,input_rules
132
+ interaction.concurrent-operation|interaction|state_interaction|semantic|prototype_transitions,input_rules
133
+ interaction.validation|interaction|state_interaction|semantic|prototype_transitions,input_rules
134
+ interaction.focus-selection-cursor|interaction|state_interaction|semantic|prototype_transitions,input_rules
135
+ interaction.input-type|interaction|state_interaction|enum|prototype_transitions,input_rules
136
+ interaction.return-action|interaction|state_interaction|enum|prototype_transitions,input_rules
137
+ interaction.autocorrect|interaction|state_interaction|boolean|prototype_transitions,input_rules
138
+ interaction.autocapitalization|interaction|state_interaction|enum|prototype_transitions,input_rules
139
+ interaction.input-mask|interaction|state_interaction|semantic|prototype_transitions,input_rules
140
+ interaction.secure-entry|interaction|state_interaction|boolean|prototype_transitions,input_rules
141
+ interaction.clipboard|interaction|state_interaction|semantic|prototype_transitions,input_rules
142
+ interaction.password-manager|interaction|state_interaction|semantic|prototype_transitions,input_rules
143
+ interaction.long-press-threshold|interaction|state_interaction|number|prototype_transitions,input_rules
144
+ interaction.double-tap-window|interaction|state_interaction|number|prototype_transitions,input_rules
145
+ interaction.debounce|interaction|state_interaction|number|prototype_transitions,input_rules
146
+ interaction.throttle|interaction|state_interaction|number|prototype_transitions,input_rules
147
+ interaction.timeout|interaction|state_interaction|number|prototype_transitions,input_rules
148
+ interaction.latency-feedback|interaction|state_interaction|timeline|prototype_transitions,input_rules
149
+ interaction.keyboard-traversal|interaction|state_interaction|trace|prototype_transitions,input_rules
150
+ navigation.destination|navigation|state_interaction|semantic|prototype_transitions,input_rules
151
+ navigation.back-dismiss|navigation|state_interaction|semantic|prototype_transitions,input_rules
152
+ navigation.deep-link|navigation|state_interaction|semantic|prototype_transitions,input_rules
153
+ navigation.restoration|navigation|state_interaction|semantic|prototype_transitions,input_rules
154
+ motion.trigger-priority|motion|motion|semantic|motion,prototype_transitions
155
+ motion.start-value|motion|motion|timeline|motion,prototype_transitions
156
+ motion.end-value|motion|motion|timeline|motion,prototype_transitions
157
+ motion.animated-properties|motion|motion|list|motion,prototype_transitions
158
+ motion.coordinate-pivot|motion|motion|list|motion,prototype_transitions
159
+ motion.duration|motion|motion|number|motion,prototype_transitions
160
+ motion.delay|motion|motion|number|motion,prototype_transitions
161
+ motion.easing|motion|motion|semantic|motion,prototype_transitions
162
+ motion.spring|motion|motion|list|motion,prototype_transitions
163
+ motion.sequence|motion|motion|timeline|motion,prototype_transitions
164
+ motion.overshoot-clamping|motion|motion|semantic|motion,prototype_transitions
165
+ motion.interruption|motion|motion|semantic|motion,prototype_transitions
166
+ motion.continue-current-value|motion|motion|semantic|motion,prototype_transitions
167
+ motion.reduced-alternative|motion|motion|semantic|motion,prototype_transitions
168
+ feedback.visible|feedback|state_interaction|semantic|prototype_transitions,input_rules
169
+ feedback.spoken|feedback|accessibility|semantic|accessibility
170
+ feedback.sound-type-time|feedback|state_interaction|timeline|prototype_transitions,input_rules
171
+ feedback.haptic-type-time|feedback|state_interaction|timeline|prototype_transitions,input_rules
172
+ responsive.breakpoint-range|responsive|adaptation_input|list|responsive_rules
173
+ responsive.reflow|responsive|adaptation_input|semantic|responsive_rules
174
+ responsive.wrap|responsive|adaptation_input|semantic|responsive_rules
175
+ responsive.reorder|responsive|adaptation_input|semantic|responsive_rules
176
+ responsive.content-priority|responsive|adaptation_input|semantic|responsive_rules
177
+ responsive.expansion-scroll|responsive|adaptation_input|semantic|responsive_rules
178
+ responsive.text-pressure|responsive|adaptation_input|semantic|responsive_rules
179
+ accessibility.role|accessibility|accessibility|enum|accessibility
180
+ accessibility.name|accessibility|accessibility|string|accessibility
181
+ accessibility.value|accessibility|accessibility|string|accessibility
182
+ accessibility.hint|accessibility|accessibility|string|accessibility
183
+ accessibility.state|accessibility|accessibility|semantic|accessibility
184
+ accessibility.grouping-relations|accessibility|accessibility|relation|accessibility
185
+ accessibility.reading-order|accessibility|accessibility|list|accessibility
186
+ accessibility.focus-order|accessibility|accessibility|list|accessibility
187
+ accessibility.focus-visibility|accessibility|accessibility|semantic|accessibility
188
+ accessibility.custom-actions|accessibility|accessibility|list|accessibility
189
+ accessibility.live-announcement|accessibility|accessibility|semantic|accessibility
190
+ accessibility.screen-reader|accessibility|accessibility|trace|accessibility
191
+ accessibility.switch-control|accessibility|accessibility|trace|accessibility
192
+ accessibility.voice-control|accessibility|accessibility|trace|accessibility
193
+ accessibility.non-color-cue|accessibility|accessibility|semantic|accessibility
194
+ accessibility.contrast|accessibility|accessibility|number|accessibility
195
+ accessibility.text-scale-reflow|accessibility|accessibility|semantic|accessibility
196
+ accessibility.preference-adaptation|accessibility|accessibility|semantic|accessibility
197
+ asset.identity|asset|assets|string|assets
198
+ asset.path|asset|assets|locator|assets
199
+ asset.sha256|asset|assets|digest|assets
200
+ asset.role-format|asset|assets|semantic|assets
201
+ asset.intrinsic-size|asset|assets|list|assets
202
+ asset.variants|asset|assets|list|assets
203
+ asset.tintability|asset|assets|boolean|assets
204
+ asset.loading-fallback|asset|assets|semantic|assets
205
+ asset.license-provenance|asset|assets|semantic|assets
206
+ asset.consumer-mapping|asset|assets|relation|assets
207
+ system.platform-convention|system|adaptation_input|semantic|system_ui
208
+ system.status-navigation-bars|system|adaptation_input|semantic|system_ui
209
+ system.permission-sheet|system|state_interaction|semantic|system_ui
210
+ system.keyboard-ime-avoidance|system|adaptation_input|semantic|system_ui
211
+ system.font-rasterization|system|visual_content|semantic|system_ui
212
+ system.render-environment|system|visual_content|semantic|system_ui
213
+ relation.relative-position|relation|surface_flow|relation|relations
214
+ relation.relative-spacing|relation|surface_flow|relation|relations
215
+ relation.shared-baseline|relation|surface_flow|relation|relations
216
+ relation.equal-proportional-size|relation|surface_flow|relation|relations
217
+ relation.containment|relation|surface_flow|relation|relations
218
+ relation.overlap-z-order|relation|surface_flow|relation|relations
219
+ relation.synchronized-state-motion|relation|state_interaction|relation|relations
220
+ relation.family-instance-consistency|relation|component_control|relation|relations
221
+ relation.cross-surface-consistency|relation|component_control|relation|relations
222
+ `;
223
+ export const DESIGN_RESOURCE_STANDARD_PROPERTIES = STANDARD_PROPERTY_ROWS.trim()
224
+ .split("\n")
225
+ .map(parseStandardProperty);
226
+ export const DESIGN_RESOURCE_STANDARD_PROPERTY_KEYS = Object.freeze(DESIGN_RESOURCE_STANDARD_PROPERTIES.map((item) => item.key));
227
+ export const DESIGN_RESOURCE_STANDARD_PROPERTY_BY_KEY = new Map(DESIGN_RESOURCE_STANDARD_PROPERTIES.map((item) => [item.key, item]));
228
+ function parseStandardProperty(row) {
229
+ const [key, family, dimension, valueKind, capabilities, ...extra] = row.split("|");
230
+ const capabilityRefs = capabilities?.split(",") ?? [];
231
+ if (!key ||
232
+ extra.length ||
233
+ !DESIGN_RESOURCE_PROPERTY_FAMILIES.includes(family) ||
234
+ !DESIGN_RESOURCE_DIMENSIONS.includes(dimension) ||
235
+ !DESIGN_RESOURCE_VALUE_KINDS.includes(valueKind) ||
236
+ !capabilityRefs.length ||
237
+ capabilityRefs.some((capability) => !DESIGN_RESOURCE_INSPECTOR_CAPABILITIES.includes(capability)))
238
+ throw new Error(`design_resource_standard_property_invalid:${row}`);
239
+ return {
240
+ key,
241
+ family: family,
242
+ dimension: dimension,
243
+ value_kind: valueKind,
244
+ required_methods: designResourceRequiredMethods(key, family),
245
+ standard: true,
246
+ inspector_capability_refs: capabilityRefs,
247
+ census_refs: [],
248
+ };
249
+ }
@@ -0,0 +1,91 @@
1
+ import type { DesignResourceEvidenceKind, DesignResourceLocatorKind } from "./design-resource-handoff-types.js";
2
+ import type { DesignResourceCensusKind, DesignResourceInspectorCapability } from "./design-resource-fact-enums.js";
3
+ import type { DesignResourceAssetBindingV1, DesignResourceAxisDispositionV1, DesignResourceConditionCombinationDispositionV1, DesignResourceEnvironmentV1, DesignResourceFactCellV1, DesignResourceFactV1, DesignResourceLineageNodeV1, DesignResourceOracleV1, DesignResourceProofObligationV1, DesignResourcePropertyDefinitionV1, DesignResourceSubjectVariationV1, DesignResourceVariationAxisDispositionV1, DesignResourceVariationCombinationDispositionV1 } from "./design-resource-fact-types.js";
4
+ export interface DesignResourceManifestInputResourceV1 {
5
+ resource_ref: string;
6
+ path: string;
7
+ sha256: string;
8
+ }
9
+ export interface DesignResourceInspectorCensusEntryV1 {
10
+ key: string;
11
+ kind: DesignResourceCensusKind;
12
+ resource_ref: string;
13
+ locator: {
14
+ kind: DesignResourceLocatorKind;
15
+ value: string;
16
+ };
17
+ disposition: "covered" | "non_material";
18
+ fact_refs: string[];
19
+ fact_cell_refs: string[];
20
+ source_item_refs: string[];
21
+ basis_refs: string[];
22
+ rationale: string;
23
+ }
24
+ export interface DesignResourceInspectorV1 {
25
+ trust: "frozen_executable" | "named_external_tcb";
26
+ identity: string;
27
+ version: string;
28
+ implementation_sha256: string | null;
29
+ capability_refs: DesignResourceInspectorCapability[];
30
+ entry_resource_ref: string;
31
+ input_resources: DesignResourceManifestInputResourceV1[];
32
+ traversal: "complete_enumeration";
33
+ dynamic_discovery: "fully_enumerated";
34
+ census: DesignResourceInspectorCensusEntryV1[];
35
+ }
36
+ export interface DesignResourceDesignSystemSnapshotV1 {
37
+ disposition: "used" | "not_applicable";
38
+ id: string;
39
+ revision: string;
40
+ resource_ref: string;
41
+ sha256: string;
42
+ }
43
+ export declare const DESIGN_RESOURCE_MANIFEST_COLLECTIONS: readonly ["inspector_inputs", "inspector_census", "axis_dispositions", "condition_exclusions", "conditions", "subjects", "variation_axis_dispositions", "variation_exclusions", "variations", "properties", "lineage_nodes", "fact_cells", "facts", "evidence", "proof_obligations", "oracles", "environments", "asset_bindings", "acceptance_blockers"];
44
+ export type DesignResourceManifestCollectionName = (typeof DESIGN_RESOURCE_MANIFEST_COLLECTIONS)[number];
45
+ export interface DesignResourceManifestGenerationV1 {
46
+ strategy: "complete_explicit";
47
+ sampling: "forbidden";
48
+ truncation: "forbidden";
49
+ chunk_count: number;
50
+ chunk_indexes: number[];
51
+ collections: Array<{
52
+ name: DesignResourceManifestCollectionName;
53
+ expected_count: number;
54
+ identity_sha256: string;
55
+ }>;
56
+ }
57
+ export interface DesignResourceFactManifestEvidenceV1 {
58
+ key: string;
59
+ resource_ref: string;
60
+ kind: DesignResourceEvidenceKind;
61
+ locator: {
62
+ kind: DesignResourceLocatorKind;
63
+ value: string;
64
+ };
65
+ condition_refs: string[];
66
+ }
67
+ export interface DesignResourceObservableFactManifestV1 {
68
+ schema_version: "design-resource-observable-fact-manifest-v1";
69
+ scope_key: string;
70
+ target_key: string;
71
+ inspector: DesignResourceInspectorV1;
72
+ design_system: DesignResourceDesignSystemSnapshotV1;
73
+ generation: DesignResourceManifestGenerationV1;
74
+ axis_dispositions: DesignResourceAxisDispositionV1[];
75
+ condition_exclusions: DesignResourceConditionCombinationDispositionV1[];
76
+ conditions: import("./design-resource-handoff-types.js").DesignResourceHandoffConditionV1[];
77
+ subjects: import("./design-resource-handoff-types.js").DesignResourceHandoffSubjectV1[];
78
+ variation_axis_dispositions: DesignResourceVariationAxisDispositionV1[];
79
+ variation_exclusions: DesignResourceVariationCombinationDispositionV1[];
80
+ variations: DesignResourceSubjectVariationV1[];
81
+ properties: DesignResourcePropertyDefinitionV1[];
82
+ lineage_nodes: DesignResourceLineageNodeV1[];
83
+ fact_cells: DesignResourceFactCellV1[];
84
+ facts: DesignResourceFactV1[];
85
+ evidence: DesignResourceFactManifestEvidenceV1[];
86
+ proof_obligations: DesignResourceProofObligationV1[];
87
+ oracles: DesignResourceOracleV1[];
88
+ environments: DesignResourceEnvironmentV1[];
89
+ asset_bindings: DesignResourceAssetBindingV1[];
90
+ acceptance_blockers: import("./design-resource-handoff-types.js").DesignResourceHandoffBlockerV1[];
91
+ }
@@ -0,0 +1,21 @@
1
+ export const DESIGN_RESOURCE_MANIFEST_COLLECTIONS = [
2
+ "inspector_inputs",
3
+ "inspector_census",
4
+ "axis_dispositions",
5
+ "condition_exclusions",
6
+ "conditions",
7
+ "subjects",
8
+ "variation_axis_dispositions",
9
+ "variation_exclusions",
10
+ "variations",
11
+ "properties",
12
+ "lineage_nodes",
13
+ "fact_cells",
14
+ "facts",
15
+ "evidence",
16
+ "proof_obligations",
17
+ "oracles",
18
+ "environments",
19
+ "asset_bindings",
20
+ "acceptance_blockers",
21
+ ];
@@ -0,0 +1,6 @@
1
+ import { type DesignResourceAxisDispositionV1, type DesignResourceConditionCombinationDispositionV1, type DesignResourceSubjectVariationV1, type DesignResourceVariationAxisDispositionV1, type DesignResourceVariationCombinationDispositionV1 } from "./design-resource-fact-manifest-types.js";
2
+ export declare function parseDesignResourceAxisDispositions(value: unknown, label?: string): DesignResourceAxisDispositionV1[];
3
+ export declare function parseDesignResourceConditionExclusions(value: unknown, label?: string): DesignResourceConditionCombinationDispositionV1[];
4
+ export declare function parseDesignResourceVariationAxisDispositions(value: unknown, label?: string): DesignResourceVariationAxisDispositionV1[];
5
+ export declare function parseDesignResourceVariationExclusions(value: unknown, label?: string): DesignResourceVariationCombinationDispositionV1[];
6
+ export declare function parseDesignResourceVariations(value: unknown, label?: string): DesignResourceSubjectVariationV1[];
@@ -0,0 +1,159 @@
1
+ import { DESIGN_RESOURCE_VARIATION_AXES, } from "./design-resource-fact-manifest-types.js";
2
+ import { atomicAxisValue, contractKey, sourceItemKeys, stableKey, stableKeys, } from "./design-resource-handoff-shape-primitives.js";
3
+ import { array, literal, object, string, } from "./long-task-shape-primitives.js";
4
+ export function parseDesignResourceAxisDispositions(value, label = "design_resource_handoff.axis_dispositions") {
5
+ return array(value, label).map((item, index) => {
6
+ const itemLabel = `${label}[${index}]`;
7
+ const row = object(item, itemLabel, [
8
+ "key",
9
+ "target_ref",
10
+ "axis",
11
+ "disposition",
12
+ "values",
13
+ "source_item_refs",
14
+ "basis_refs",
15
+ "rationale",
16
+ ]);
17
+ return {
18
+ key: stableKey(row.key, `${itemLabel}.key`),
19
+ target_ref: contractKey(row.target_ref, `${itemLabel}.target_ref`),
20
+ axis: stableKey(row.axis, `${itemLabel}.axis`),
21
+ disposition: literal(row.disposition, ["applicable", "not_applicable"], `${itemLabel}.disposition`),
22
+ values: parseAxisValues(row.values, `${itemLabel}.values`),
23
+ source_item_refs: sourceItemKeys(row.source_item_refs, `${itemLabel}.source_item_refs`),
24
+ basis_refs: stableKeys(row.basis_refs, `${itemLabel}.basis_refs`),
25
+ rationale: string(row.rationale, `${itemLabel}.rationale`),
26
+ };
27
+ });
28
+ }
29
+ function parseAxisValues(value, label) {
30
+ return array(value, label).map((item, index) => {
31
+ const itemLabel = `${label}[${index}]`;
32
+ const row = object(item, itemLabel, ["key", "census_refs"]);
33
+ return {
34
+ key: atomicAxisValue(row.key, `${itemLabel}.key`),
35
+ census_refs: stableKeys(row.census_refs, `${itemLabel}.census_refs`),
36
+ };
37
+ });
38
+ }
39
+ export function parseDesignResourceConditionExclusions(value, label = "design_resource_handoff.condition_exclusions") {
40
+ return array(value, label).map((item, index) => {
41
+ const itemLabel = `${label}[${index}]`;
42
+ const row = object(item, itemLabel, [
43
+ "key",
44
+ "target_ref",
45
+ "axis_values",
46
+ "disposition",
47
+ "source_item_refs",
48
+ "basis_refs",
49
+ "rationale",
50
+ ]);
51
+ return {
52
+ key: stableKey(row.key, `${itemLabel}.key`),
53
+ target_ref: contractKey(row.target_ref, `${itemLabel}.target_ref`),
54
+ axis_values: parseAxisPairs(row.axis_values, `${itemLabel}.axis_values`),
55
+ disposition: literal(row.disposition, [
56
+ "not_applicable",
57
+ "excluded_by_scope",
58
+ "decision_required",
59
+ "unavailable",
60
+ ], `${itemLabel}.disposition`),
61
+ source_item_refs: sourceItemKeys(row.source_item_refs, `${itemLabel}.source_item_refs`),
62
+ basis_refs: stableKeys(row.basis_refs, `${itemLabel}.basis_refs`),
63
+ rationale: string(row.rationale, `${itemLabel}.rationale`),
64
+ };
65
+ });
66
+ }
67
+ function parseAxisPairs(value, label) {
68
+ return array(value, label).map((item, index) => {
69
+ const itemLabel = `${label}[${index}]`;
70
+ const row = object(item, itemLabel, ["axis_ref", "value_ref"]);
71
+ return {
72
+ axis_ref: stableKey(row.axis_ref, `${itemLabel}.axis_ref`),
73
+ value_ref: atomicAxisValue(row.value_ref, `${itemLabel}.value_ref`),
74
+ };
75
+ });
76
+ }
77
+ export function parseDesignResourceVariationAxisDispositions(value, label = "design_resource_handoff.variation_axis_dispositions") {
78
+ return array(value, label).map((item, index) => {
79
+ const itemLabel = `${label}[${index}]`;
80
+ const row = object(item, itemLabel, [
81
+ "key",
82
+ "subject_ref",
83
+ "axis",
84
+ "disposition",
85
+ "values",
86
+ "source_item_refs",
87
+ "basis_refs",
88
+ "rationale",
89
+ ]);
90
+ return {
91
+ key: stableKey(row.key, `${itemLabel}.key`),
92
+ subject_ref: stableKey(row.subject_ref, `${itemLabel}.subject_ref`),
93
+ axis: literal(row.axis, DESIGN_RESOURCE_VARIATION_AXES, `${itemLabel}.axis`),
94
+ disposition: literal(row.disposition, ["applicable", "not_applicable"], `${itemLabel}.disposition`),
95
+ values: parseAxisValues(row.values, `${itemLabel}.values`),
96
+ source_item_refs: sourceItemKeys(row.source_item_refs, `${itemLabel}.source_item_refs`),
97
+ basis_refs: stableKeys(row.basis_refs, `${itemLabel}.basis_refs`),
98
+ rationale: string(row.rationale, `${itemLabel}.rationale`),
99
+ };
100
+ });
101
+ }
102
+ export function parseDesignResourceVariationExclusions(value, label = "design_resource_handoff.variation_exclusions") {
103
+ return array(value, label).map((item, index) => {
104
+ const itemLabel = `${label}[${index}]`;
105
+ const row = object(item, itemLabel, [
106
+ "key",
107
+ "subject_ref",
108
+ "axis_values",
109
+ "disposition",
110
+ "source_item_refs",
111
+ "basis_refs",
112
+ "rationale",
113
+ ]);
114
+ return {
115
+ key: stableKey(row.key, `${itemLabel}.key`),
116
+ subject_ref: stableKey(row.subject_ref, `${itemLabel}.subject_ref`),
117
+ axis_values: array(row.axis_values, `${itemLabel}.axis_values`).map((pair, pairIndex) => {
118
+ const pairLabel = `${itemLabel}.axis_values[${pairIndex}]`;
119
+ const parsed = object(pair, pairLabel, ["axis_ref", "value_ref"]);
120
+ return {
121
+ axis_ref: literal(parsed.axis_ref, DESIGN_RESOURCE_VARIATION_AXES, `${pairLabel}.axis_ref`),
122
+ value_ref: atomicAxisValue(parsed.value_ref, `${pairLabel}.value_ref`),
123
+ };
124
+ }),
125
+ disposition: literal(row.disposition, [
126
+ "not_applicable",
127
+ "excluded_by_scope",
128
+ "decision_required",
129
+ "unavailable",
130
+ ], `${itemLabel}.disposition`),
131
+ source_item_refs: sourceItemKeys(row.source_item_refs, `${itemLabel}.source_item_refs`),
132
+ basis_refs: stableKeys(row.basis_refs, `${itemLabel}.basis_refs`),
133
+ rationale: string(row.rationale, `${itemLabel}.rationale`),
134
+ };
135
+ });
136
+ }
137
+ export function parseDesignResourceVariations(value, label = "design_resource_handoff.variations") {
138
+ return array(value, label).map((item, index) => {
139
+ const itemLabel = `${label}[${index}]`;
140
+ const row = object(item, itemLabel, [
141
+ "key",
142
+ "subject_ref",
143
+ "variant",
144
+ "state",
145
+ "interaction_phase",
146
+ "presence_phase",
147
+ "instance_case",
148
+ ]);
149
+ return {
150
+ key: stableKey(row.key, `${itemLabel}.key`),
151
+ subject_ref: stableKey(row.subject_ref, `${itemLabel}.subject_ref`),
152
+ variant: atomicAxisValue(row.variant, `${itemLabel}.variant`),
153
+ state: atomicAxisValue(row.state, `${itemLabel}.state`),
154
+ interaction_phase: atomicAxisValue(row.interaction_phase, `${itemLabel}.interaction_phase`),
155
+ presence_phase: atomicAxisValue(row.presence_phase, `${itemLabel}.presence_phase`),
156
+ instance_case: atomicAxisValue(row.instance_case, `${itemLabel}.instance_case`),
157
+ };
158
+ });
159
+ }
@@ -0,0 +1,4 @@
1
+ import { type DesignResourceAssetBindingV1, type DesignResourceEnvironmentV1, type DesignResourceOracleV1 } from "./design-resource-fact-manifest-types.js";
2
+ export declare function parseDesignResourceOracles(value: unknown, label?: string): DesignResourceOracleV1[];
3
+ export declare function parseDesignResourceEnvironments(value: unknown, label?: string): DesignResourceEnvironmentV1[];
4
+ export declare function parseDesignResourceAssetBindings(value: unknown, label?: string): DesignResourceAssetBindingV1[];
@@ -0,0 +1,59 @@
1
+ import { DESIGN_RESOURCE_INSPECTOR_CAPABILITIES, } from "./design-resource-fact-manifest-types.js";
2
+ import { parseDesignResourceLocatedDigest } from "./design-resource-fact-shape-primitives.js";
3
+ import { contractKeys, sha256, stableKey, stableKeys, } from "./design-resource-handoff-shape-primitives.js";
4
+ import { array, literal, nullable, object, string, } from "./long-task-shape-primitives.js";
5
+ export function parseDesignResourceOracles(value, label = "design_resource_handoff.oracles") {
6
+ return array(value, label).map((item, index) => {
7
+ const itemLabel = `${label}[${index}]`;
8
+ const row = object(item, itemLabel, [
9
+ "key",
10
+ "trust",
11
+ "identity",
12
+ "version",
13
+ "sha256",
14
+ "capability_refs",
15
+ ]);
16
+ return {
17
+ key: stableKey(row.key, `${itemLabel}.key`),
18
+ trust: literal(row.trust, ["frozen_executable", "named_external_tcb"], `${itemLabel}.trust`),
19
+ identity: string(row.identity, `${itemLabel}.identity`),
20
+ version: string(row.version, `${itemLabel}.version`),
21
+ sha256: nullable(row.sha256, (item) => sha256(item, `${itemLabel}.sha256`)),
22
+ capability_refs: array(row.capability_refs, `${itemLabel}.capability_refs`).map((capability, capabilityIndex) => literal(capability, DESIGN_RESOURCE_INSPECTOR_CAPABILITIES, `${itemLabel}.capability_refs[${capabilityIndex}]`)),
23
+ };
24
+ });
25
+ }
26
+ export function parseDesignResourceEnvironments(value, label = "design_resource_handoff.environments") {
27
+ return array(value, label).map((item, index) => {
28
+ const itemLabel = `${label}[${index}]`;
29
+ const row = object(item, itemLabel, ["key", "identity", "definition"]);
30
+ return {
31
+ key: stableKey(row.key, `${itemLabel}.key`),
32
+ identity: string(row.identity, `${itemLabel}.identity`),
33
+ definition: parseDesignResourceLocatedDigest(row.definition, `${itemLabel}.definition`),
34
+ };
35
+ });
36
+ }
37
+ export function parseDesignResourceAssetBindings(value, label = "design_resource_handoff.asset_bindings") {
38
+ return array(value, label).map((item, index) => {
39
+ const itemLabel = `${label}[${index}]`;
40
+ const row = object(item, itemLabel, [
41
+ "key",
42
+ "asset_subject_ref",
43
+ "resource_ref",
44
+ "target_refs",
45
+ "condition_refs",
46
+ "fact_refs",
47
+ "consumer_subject_refs",
48
+ ]);
49
+ return {
50
+ key: stableKey(row.key, `${itemLabel}.key`),
51
+ asset_subject_ref: stableKey(row.asset_subject_ref, `${itemLabel}.asset_subject_ref`),
52
+ resource_ref: stableKey(row.resource_ref, `${itemLabel}.resource_ref`),
53
+ target_refs: contractKeys(row.target_refs, `${itemLabel}.target_refs`),
54
+ condition_refs: contractKeys(row.condition_refs, `${itemLabel}.condition_refs`),
55
+ fact_refs: stableKeys(row.fact_refs, `${itemLabel}.fact_refs`),
56
+ consumer_subject_refs: stableKeys(row.consumer_subject_refs, `${itemLabel}.consumer_subject_refs`),
57
+ };
58
+ });
59
+ }
@@ -0,0 +1,4 @@
1
+ import { type DesignResourceFactCellV1, type DesignResourceProofObligationV1, type DesignResourcePropertyDefinitionV1 } from "./design-resource-fact-manifest-types.js";
2
+ export declare function parseDesignResourceProperties(value: unknown, label?: string): DesignResourcePropertyDefinitionV1[];
3
+ export declare function parseDesignResourceFactCells(value: unknown, label?: string): DesignResourceFactCellV1[];
4
+ export declare function parseDesignResourceProofObligations(value: unknown, label?: string): DesignResourceProofObligationV1[];