openplanr 3.1.1 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (452) hide show
  1. package/CHANGELOG.md +69 -0
  2. package/dist/cli/commands/groups/delivery.d.ts.map +1 -1
  3. package/dist/cli/commands/groups/delivery.js +2 -0
  4. package/dist/cli/commands/groups/delivery.js.map +1 -1
  5. package/dist/cli/commands/planning-artifacts.d.ts.map +1 -1
  6. package/dist/cli/commands/planning-artifacts.js +22 -12
  7. package/dist/cli/commands/planning-artifacts.js.map +1 -1
  8. package/dist/cli/commands/ship.d.ts +3 -0
  9. package/dist/cli/commands/ship.d.ts.map +1 -0
  10. package/dist/cli/commands/ship.js +65 -0
  11. package/dist/cli/commands/ship.js.map +1 -0
  12. package/dist/cli/commands/spec.d.ts +2 -1
  13. package/dist/cli/commands/spec.d.ts.map +1 -1
  14. package/dist/cli/commands/spec.js +45 -5
  15. package/dist/cli/commands/spec.js.map +1 -1
  16. package/dist/dashboard/.vite/manifest.json +1 -1
  17. package/dist/dashboard/assets/index-B_96uzCl.js +572 -0
  18. package/dist/dashboard/assets/index-B_96uzCl.js.map +1 -0
  19. package/dist/dashboard/dashboard-manifest.json +10 -10
  20. package/dist/dashboard/index.html +1 -1
  21. package/dist/models/schema.d.ts +39 -23
  22. package/dist/models/schema.d.ts.map +1 -1
  23. package/dist/models/schema.js +19 -12
  24. package/dist/models/schema.js.map +1 -1
  25. package/dist/models/types.d.ts +6 -0
  26. package/dist/models/types.d.ts.map +1 -1
  27. package/dist/services/claude-plugin-service.d.ts +5 -0
  28. package/dist/services/claude-plugin-service.d.ts.map +1 -1
  29. package/dist/services/claude-plugin-service.js +18 -2
  30. package/dist/services/claude-plugin-service.js.map +1 -1
  31. package/dist/services/codex-plugin-service.d.ts.map +1 -1
  32. package/dist/services/codex-plugin-service.js +11 -3
  33. package/dist/services/codex-plugin-service.js.map +1 -1
  34. package/dist/services/id-service.d.ts +1 -5
  35. package/dist/services/id-service.d.ts.map +1 -1
  36. package/dist/services/id-service.js +1 -34
  37. package/dist/services/id-service.js.map +1 -1
  38. package/dist/services/runtime-manager/codex-discovery.d.ts +1 -3
  39. package/dist/services/runtime-manager/codex-discovery.d.ts.map +1 -1
  40. package/dist/services/runtime-manager/codex-discovery.js +3 -16
  41. package/dist/services/runtime-manager/codex-discovery.js.map +1 -1
  42. package/dist/services/runtime-manager/doctor.d.ts +25 -0
  43. package/dist/services/runtime-manager/doctor.d.ts.map +1 -1
  44. package/dist/services/runtime-manager/doctor.js +480 -0
  45. package/dist/services/runtime-manager/doctor.js.map +1 -1
  46. package/dist/services/runtime-manager/errors.d.ts +12 -0
  47. package/dist/services/runtime-manager/errors.d.ts.map +1 -0
  48. package/dist/services/runtime-manager/errors.js +14 -0
  49. package/dist/services/runtime-manager/errors.js.map +1 -0
  50. package/dist/services/runtime-manager/global-state.d.ts +7 -0
  51. package/dist/services/runtime-manager/global-state.d.ts.map +1 -1
  52. package/dist/services/runtime-manager/global-state.js +116 -0
  53. package/dist/services/runtime-manager/global-state.js.map +1 -1
  54. package/dist/services/runtime-manager/host-version-probe.d.ts +8 -0
  55. package/dist/services/runtime-manager/host-version-probe.d.ts.map +1 -0
  56. package/dist/services/runtime-manager/host-version-probe.js +14 -0
  57. package/dist/services/runtime-manager/host-version-probe.js.map +1 -0
  58. package/dist/services/runtime-manager/install-plan.d.ts +25 -0
  59. package/dist/services/runtime-manager/install-plan.d.ts.map +1 -1
  60. package/dist/services/runtime-manager/install-plan.js +305 -0
  61. package/dist/services/runtime-manager/install-plan.js.map +1 -1
  62. package/dist/services/runtime-manager/inventory.d.ts +6 -0
  63. package/dist/services/runtime-manager/inventory.d.ts.map +1 -1
  64. package/dist/services/runtime-manager/inventory.js +16 -1
  65. package/dist/services/runtime-manager/inventory.js.map +1 -1
  66. package/dist/services/runtime-manager/legacy-adapters.d.ts +9 -0
  67. package/dist/services/runtime-manager/legacy-adapters.d.ts.map +1 -0
  68. package/dist/services/runtime-manager/legacy-adapters.js +187 -0
  69. package/dist/services/runtime-manager/legacy-adapters.js.map +1 -0
  70. package/dist/services/runtime-manager/paths.d.ts +18 -0
  71. package/dist/services/runtime-manager/paths.d.ts.map +1 -0
  72. package/dist/services/runtime-manager/paths.js +83 -0
  73. package/dist/services/runtime-manager/paths.js.map +1 -0
  74. package/dist/services/runtime-manager/runtime-package.d.ts +21 -0
  75. package/dist/services/runtime-manager/runtime-package.d.ts.map +1 -1
  76. package/dist/services/runtime-manager/runtime-package.js +77 -0
  77. package/dist/services/runtime-manager/runtime-package.js.map +1 -1
  78. package/dist/services/runtime-manager/storage.d.ts +47 -0
  79. package/dist/services/runtime-manager/storage.d.ts.map +1 -0
  80. package/dist/services/runtime-manager/storage.js +604 -0
  81. package/dist/services/runtime-manager/storage.js.map +1 -0
  82. package/dist/services/runtime-manager-service.d.ts +7 -17
  83. package/dist/services/runtime-manager-service.d.ts.map +1 -1
  84. package/dist/services/runtime-manager-service.js +32 -1695
  85. package/dist/services/runtime-manager-service.js.map +1 -1
  86. package/dist/services/ship-checks/changes.d.ts +24 -0
  87. package/dist/services/ship-checks/changes.d.ts.map +1 -0
  88. package/dist/services/ship-checks/changes.js +135 -0
  89. package/dist/services/ship-checks/changes.js.map +1 -0
  90. package/dist/services/ship-checks/contract.d.ts +93 -0
  91. package/dist/services/ship-checks/contract.d.ts.map +1 -0
  92. package/dist/services/ship-checks/contract.js +7 -0
  93. package/dist/services/ship-checks/contract.js.map +1 -0
  94. package/dist/services/ship-checks/coverage.d.ts +4 -0
  95. package/dist/services/ship-checks/coverage.d.ts.map +1 -0
  96. package/dist/services/ship-checks/coverage.js +113 -0
  97. package/dist/services/ship-checks/coverage.js.map +1 -0
  98. package/dist/services/ship-checks/discover.d.ts +10 -0
  99. package/dist/services/ship-checks/discover.d.ts.map +1 -0
  100. package/dist/services/ship-checks/discover.js +253 -0
  101. package/dist/services/ship-checks/discover.js.map +1 -0
  102. package/dist/services/ship-checks/glob.d.ts +5 -0
  103. package/dist/services/ship-checks/glob.d.ts.map +1 -0
  104. package/dist/services/ship-checks/glob.js +39 -0
  105. package/dist/services/ship-checks/glob.js.map +1 -0
  106. package/dist/services/ship-checks/hooks.d.ts +7 -0
  107. package/dist/services/ship-checks/hooks.d.ts.map +1 -0
  108. package/dist/services/ship-checks/hooks.js +65 -0
  109. package/dist/services/ship-checks/hooks.js.map +1 -0
  110. package/dist/services/ship-checks/packages.d.ts +29 -0
  111. package/dist/services/ship-checks/packages.d.ts.map +1 -0
  112. package/dist/services/ship-checks/packages.js +197 -0
  113. package/dist/services/ship-checks/packages.js.map +1 -0
  114. package/dist/services/ship-checks/related-tests.d.ts +13 -0
  115. package/dist/services/ship-checks/related-tests.d.ts.map +1 -0
  116. package/dist/services/ship-checks/related-tests.js +73 -0
  117. package/dist/services/ship-checks/related-tests.js.map +1 -0
  118. package/dist/services/ship-checks/scope.d.ts +8 -0
  119. package/dist/services/ship-checks/scope.d.ts.map +1 -0
  120. package/dist/services/ship-checks/scope.js +66 -0
  121. package/dist/services/ship-checks/scope.js.map +1 -0
  122. package/dist/services/ship-checks/task-requirements.d.ts +14 -0
  123. package/dist/services/ship-checks/task-requirements.d.ts.map +1 -0
  124. package/dist/services/ship-checks/task-requirements.js +145 -0
  125. package/dist/services/ship-checks/task-requirements.js.map +1 -0
  126. package/dist/services/ship-checks/workflows.d.ts +21 -0
  127. package/dist/services/ship-checks/workflows.d.ts.map +1 -0
  128. package/dist/services/ship-checks/workflows.js +208 -0
  129. package/dist/services/ship-checks/workflows.js.map +1 -0
  130. package/dist/services/spec-service.d.ts +18 -0
  131. package/dist/services/spec-service.d.ts.map +1 -1
  132. package/dist/services/spec-service.js +174 -9
  133. package/dist/services/spec-service.js.map +1 -1
  134. package/dist/services/template-service.d.ts +2 -0
  135. package/dist/services/template-service.d.ts.map +1 -1
  136. package/dist/services/template-service.js +4 -0
  137. package/dist/services/template-service.js.map +1 -1
  138. package/dist/templates/spec/spec-shaped.md.hbs +1 -1
  139. package/dist/templates/spec/spec.md.hbs +2 -2
  140. package/dist/utils/slugify.d.ts +1 -8
  141. package/dist/utils/slugify.d.ts.map +1 -1
  142. package/dist/utils/slugify.js +1 -25
  143. package/dist/utils/slugify.js.map +1 -1
  144. package/docs/CLI.md +96 -2
  145. package/lib/backlog-item.d.mts +49 -0
  146. package/lib/backlog-item.mjs +339 -0
  147. package/lib/host-packages/adapter-registry.json +5 -5
  148. package/lib/host-packages/capability-map.json +3 -3
  149. package/lib/host-packages/claude/.claude-plugin/marketplace.json +2 -2
  150. package/lib/host-packages/claude/openplanr/.claude-plugin/plugin.json +1 -1
  151. package/lib/host-packages/claude/openplanr/.openplanr-content.json +134 -94
  152. package/lib/host-packages/claude/openplanr/CONNECTORS.md +4 -6
  153. package/lib/host-packages/claude/openplanr/README.md +1 -1
  154. package/lib/host-packages/claude/openplanr/agents/planr-qa.md +5 -3
  155. package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-artifact-shell.mjs +1 -1
  156. package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-chunked-workspace-client.mjs +1 -1
  157. package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-document.mjs +471 -80
  158. package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-handoff.mjs +2 -2
  159. package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-resource-pack.mjs +1 -1
  160. package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-review.mjs +45 -4
  161. package/lib/host-packages/{cursor/openplanr/runtime/design/scripts/design-runtime-support-e34c388a8e59.mjs → claude/openplanr/runtime/design/scripts/design-runtime-support-25485dbf1cb2.mjs} +1 -1
  162. package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-share.mjs +8 -5
  163. package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-shared-artifact-support-dependencies-design-support-protocol-contracts-3d9b1a86.mjs +138 -12
  164. package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-shared-artifact-support-protocol-contracts-ea2cd15e.mjs +1 -1
  165. package/lib/host-packages/claude/openplanr/runtime/design/scripts/{design-shared-protocol-contracts-31a760fc.mjs → design-shared-protocol-contracts-b5f28f94.mjs} +413 -45
  166. package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-upload-spool.mjs +1 -1
  167. package/lib/host-packages/claude/openplanr/runtime/design/scripts/design.mjs +482 -79
  168. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/notices/THIRD_PARTY_NOTICES.txt +32 -32
  169. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/02-artifact-review-ui.js +23 -23
  170. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/03-protocol-contracts.js +322 -45
  171. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/06-artifact-review-ui.js +12 -12
  172. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/08-artifact-review-ui.js +47 -14
  173. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources.json +11 -10
  174. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/package.json +4 -3
  175. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.css +16 -11
  176. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/01-module-runtime.js +7 -11
  177. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/02-react.js +165 -276
  178. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/03-react-dom-client-fiber-foundations.js +494 -967
  179. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/04-react-dom-client-reconciliation-hooks.js +346 -678
  180. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/05-react-dom-client-render-phases.js +382 -810
  181. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/06-react-dom-client-commit-effects.js +406 -730
  182. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/07-react-dom-client-work-loop-scheduling.js +259 -522
  183. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/08-react-dom-client-dom-events-properties-hydration.js +585 -937
  184. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/09-react-dom-client-public-roots.js +119 -244
  185. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/10-react.js +7 -17
  186. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/11-artifact-review-ui.js +3 -4
  187. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/12-protocol-contracts.js +285 -0
  188. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/13-design-review-experience.js +2773 -0
  189. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/14-studio-shell.js +134 -0
  190. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/15-canvas-engine.js +2207 -0
  191. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/16-design-review-experience.js +16 -0
  192. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/17-studio-shell.js +8 -0
  193. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/18-interface-primitives.js +3883 -0
  194. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/19-interface-primitives.js +966 -0
  195. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/{16-studio-shell.js → 20-studio-shell.js} +122 -227
  196. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/21-design-studio.js +1597 -0
  197. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources.json +101 -47
  198. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/protocol/package.json +6 -2
  199. package/lib/host-packages/{openai/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.9.0 → claude/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.22.0}/design-document.schema.json +207 -7
  200. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.22.0/design-review-bundle.schema.json +822 -0
  201. package/lib/host-packages/claude/openplanr/runtime/plan/scripts/design-protocol-contracts.mjs +324 -45
  202. package/lib/host-packages/claude/openplanr/runtime/plan/scripts/design.mjs +73 -12
  203. package/lib/host-packages/claude/openplanr/runtime/plan/scripts/runtime/packages/protocol/package.json +6 -2
  204. package/lib/host-packages/claude/openplanr/skills/connect/references/connectors.md +4 -6
  205. package/lib/host-packages/claude/openplanr/skills/design/SKILL.md +12 -0
  206. package/lib/host-packages/claude/openplanr/skills/design/references/craft.md +14 -3
  207. package/lib/host-packages/claude/openplanr/skills/design/references/design-system.md +48 -1
  208. package/lib/host-packages/claude/openplanr/skills/design/references/discovery.md +18 -4
  209. package/lib/host-packages/claude/openplanr/skills/design/references/generation.md +133 -2
  210. package/lib/host-packages/claude/openplanr/skills/design/references/hosted-canvas.md +62 -0
  211. package/lib/host-packages/claude/openplanr/skills/design/references/review.md +46 -1
  212. package/lib/host-packages/claude/openplanr/skills/design/references/utilities.md +17 -1
  213. package/lib/host-packages/claude/openplanr/skills/design/schemas/design-document.schema.json +207 -7
  214. package/lib/host-packages/claude/openplanr/skills/design-loop/references/craft.md +14 -3
  215. package/lib/host-packages/claude/openplanr/skills/design-loop/references/design-system.md +48 -1
  216. package/lib/host-packages/claude/openplanr/skills/design-loop/references/discovery.md +18 -4
  217. package/lib/host-packages/claude/openplanr/skills/design-loop/references/generation.md +133 -2
  218. package/lib/host-packages/claude/openplanr/skills/design-loop/references/review.md +46 -1
  219. package/lib/host-packages/claude/openplanr/skills/design-loop/references/utilities.md +17 -1
  220. package/lib/host-packages/claude/openplanr/skills/design-loop/schemas/design-document.schema.json +207 -7
  221. package/lib/host-packages/claude/openplanr/skills/design-review/references/craft.md +14 -3
  222. package/lib/host-packages/claude/openplanr/skills/design-review/references/design-system.md +48 -1
  223. package/lib/host-packages/claude/openplanr/skills/design-review/references/discovery.md +18 -4
  224. package/lib/host-packages/claude/openplanr/skills/design-review/references/generation.md +133 -2
  225. package/lib/host-packages/claude/openplanr/skills/design-review/references/review.md +46 -1
  226. package/lib/host-packages/claude/openplanr/skills/design-review/references/utilities.md +17 -1
  227. package/lib/host-packages/claude/openplanr/skills/design-review/schemas/design-document.schema.json +207 -7
  228. package/lib/host-packages/claude/openplanr/skills/investigate/SKILL.md +11 -2
  229. package/lib/host-packages/claude/openplanr/skills/investigate/references/findings.md +92 -0
  230. package/lib/host-packages/claude/openplanr/skills/investigate/scripts/backlog-item.mjs +339 -0
  231. package/lib/host-packages/claude/openplanr/skills/plan/SKILL.md +24 -11
  232. package/lib/host-packages/claude/openplanr/skills/plan/schemas/design-document.schema.json +207 -7
  233. package/lib/host-packages/claude/openplanr/skills/share/references/connectors.md +4 -6
  234. package/lib/host-packages/claude/openplanr/skills/ship/SKILL.md +46 -14
  235. package/lib/host-packages/claude/openplanr/skills/ship/references/findings.md +92 -0
  236. package/lib/host-packages/claude/openplanr/skills/ship/references/result-contract.md +3 -1
  237. package/lib/host-packages/claude/openplanr/skills/ship/scripts/backlog-item.mjs +339 -0
  238. package/lib/host-packages/claude/openplanr/skills/spec/SKILL.md +6 -0
  239. package/lib/host-packages/claude/openplanr/skills/spec/references/specification-contract.md +3 -1
  240. package/lib/host-packages/claude/openplanr/skills/sprint/references/connectors.md +4 -6
  241. package/lib/host-packages/claude/openplanr/skills/status/references/connectors.md +4 -6
  242. package/lib/host-packages/claude/openplanr/skills/sync/references/connectors.md +4 -6
  243. package/lib/host-packages/cursor/openplanr/.openplanr-content.json +132 -92
  244. package/lib/host-packages/cursor/openplanr/CONNECTORS.md +4 -6
  245. package/lib/host-packages/cursor/openplanr/manifest.json +1 -1
  246. package/lib/host-packages/cursor/openplanr/rules/planr-connect/references/connectors.md +4 -6
  247. package/lib/host-packages/cursor/openplanr/rules/planr-design/references/craft.md +14 -3
  248. package/lib/host-packages/cursor/openplanr/rules/planr-design/references/design-system.md +48 -1
  249. package/lib/host-packages/cursor/openplanr/rules/planr-design/references/discovery.md +18 -4
  250. package/lib/host-packages/cursor/openplanr/rules/planr-design/references/generation.md +133 -2
  251. package/lib/host-packages/cursor/openplanr/rules/planr-design/references/hosted-canvas.md +62 -0
  252. package/lib/host-packages/cursor/openplanr/rules/planr-design/references/review.md +46 -1
  253. package/lib/host-packages/cursor/openplanr/rules/planr-design/references/utilities.md +17 -1
  254. package/lib/host-packages/cursor/openplanr/rules/planr-design/schemas/design-document.schema.json +207 -7
  255. package/lib/host-packages/cursor/openplanr/rules/planr-design-loop/references/craft.md +14 -3
  256. package/lib/host-packages/cursor/openplanr/rules/planr-design-loop/references/design-system.md +48 -1
  257. package/lib/host-packages/cursor/openplanr/rules/planr-design-loop/references/discovery.md +18 -4
  258. package/lib/host-packages/cursor/openplanr/rules/planr-design-loop/references/generation.md +133 -2
  259. package/lib/host-packages/cursor/openplanr/rules/planr-design-loop/references/review.md +46 -1
  260. package/lib/host-packages/cursor/openplanr/rules/planr-design-loop/references/utilities.md +17 -1
  261. package/lib/host-packages/cursor/openplanr/rules/planr-design-loop/schemas/design-document.schema.json +207 -7
  262. package/lib/host-packages/cursor/openplanr/rules/planr-design-review/references/craft.md +14 -3
  263. package/lib/host-packages/cursor/openplanr/rules/planr-design-review/references/design-system.md +48 -1
  264. package/lib/host-packages/cursor/openplanr/rules/planr-design-review/references/discovery.md +18 -4
  265. package/lib/host-packages/cursor/openplanr/rules/planr-design-review/references/generation.md +133 -2
  266. package/lib/host-packages/cursor/openplanr/rules/planr-design-review/references/review.md +46 -1
  267. package/lib/host-packages/cursor/openplanr/rules/planr-design-review/references/utilities.md +17 -1
  268. package/lib/host-packages/cursor/openplanr/rules/planr-design-review/schemas/design-document.schema.json +207 -7
  269. package/lib/host-packages/cursor/openplanr/rules/planr-design.mdc +12 -0
  270. package/lib/host-packages/cursor/openplanr/rules/planr-investigate/references/findings.md +92 -0
  271. package/lib/host-packages/cursor/openplanr/rules/planr-investigate/scripts/backlog-item.mjs +339 -0
  272. package/lib/host-packages/cursor/openplanr/rules/planr-investigate.mdc +11 -2
  273. package/lib/host-packages/cursor/openplanr/rules/planr-plan/schemas/design-document.schema.json +207 -7
  274. package/lib/host-packages/cursor/openplanr/rules/planr-plan.mdc +24 -11
  275. package/lib/host-packages/cursor/openplanr/rules/planr-share/references/connectors.md +4 -6
  276. package/lib/host-packages/cursor/openplanr/rules/planr-ship/references/findings.md +92 -0
  277. package/lib/host-packages/cursor/openplanr/rules/planr-ship/references/result-contract.md +3 -1
  278. package/lib/host-packages/cursor/openplanr/rules/planr-ship/scripts/backlog-item.mjs +339 -0
  279. package/lib/host-packages/cursor/openplanr/rules/planr-ship.mdc +46 -14
  280. package/lib/host-packages/cursor/openplanr/rules/planr-spec/references/specification-contract.md +3 -1
  281. package/lib/host-packages/cursor/openplanr/rules/planr-spec.mdc +6 -0
  282. package/lib/host-packages/cursor/openplanr/rules/planr-sprint/references/connectors.md +4 -6
  283. package/lib/host-packages/cursor/openplanr/rules/planr-status/references/connectors.md +4 -6
  284. package/lib/host-packages/cursor/openplanr/rules/planr-sync/references/connectors.md +4 -6
  285. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-artifact-shell.mjs +1 -1
  286. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-chunked-workspace-client.mjs +1 -1
  287. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-document.mjs +471 -80
  288. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-handoff.mjs +2 -2
  289. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-resource-pack.mjs +1 -1
  290. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-review.mjs +45 -4
  291. package/lib/host-packages/{openai/openplanr/runtime/design/scripts/design-runtime-support-e34c388a8e59.mjs → cursor/openplanr/runtime/design/scripts/design-runtime-support-25485dbf1cb2.mjs} +1 -1
  292. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-share.mjs +8 -5
  293. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-shared-artifact-support-dependencies-design-support-protocol-contracts-3d9b1a86.mjs +138 -12
  294. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-shared-artifact-support-protocol-contracts-ea2cd15e.mjs +1 -1
  295. package/lib/host-packages/{openai/openplanr/runtime/design/scripts/design-shared-protocol-contracts-31a760fc.mjs → cursor/openplanr/runtime/design/scripts/design-shared-protocol-contracts-b5f28f94.mjs} +413 -45
  296. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-upload-spool.mjs +1 -1
  297. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design.mjs +482 -79
  298. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/notices/THIRD_PARTY_NOTICES.txt +32 -32
  299. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/02-artifact-review-ui.js +23 -23
  300. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/03-protocol-contracts.js +322 -45
  301. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/06-artifact-review-ui.js +12 -12
  302. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/08-artifact-review-ui.js +47 -14
  303. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources.json +11 -10
  304. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/package.json +4 -3
  305. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.css +16 -11
  306. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/01-module-runtime.js +7 -11
  307. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/02-react.js +165 -276
  308. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/03-react-dom-client-fiber-foundations.js +494 -967
  309. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/04-react-dom-client-reconciliation-hooks.js +346 -678
  310. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/05-react-dom-client-render-phases.js +382 -810
  311. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/06-react-dom-client-commit-effects.js +406 -730
  312. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/07-react-dom-client-work-loop-scheduling.js +259 -522
  313. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/08-react-dom-client-dom-events-properties-hydration.js +585 -937
  314. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/09-react-dom-client-public-roots.js +119 -244
  315. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/10-react.js +7 -17
  316. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/11-artifact-review-ui.js +3 -4
  317. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/12-protocol-contracts.js +285 -0
  318. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/13-design-review-experience.js +2773 -0
  319. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/14-studio-shell.js +134 -0
  320. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/15-canvas-engine.js +2207 -0
  321. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/16-design-review-experience.js +16 -0
  322. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/17-studio-shell.js +8 -0
  323. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/18-interface-primitives.js +3883 -0
  324. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/19-interface-primitives.js +966 -0
  325. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/{16-studio-shell.js → 20-studio-shell.js} +122 -227
  326. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/21-design-studio.js +1597 -0
  327. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources.json +101 -47
  328. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/protocol/package.json +6 -2
  329. package/lib/host-packages/{claude/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.9.0 → cursor/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.22.0}/design-document.schema.json +207 -7
  330. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.22.0/design-review-bundle.schema.json +822 -0
  331. package/lib/host-packages/cursor/openplanr/runtime/plan/scripts/design-protocol-contracts.mjs +324 -45
  332. package/lib/host-packages/cursor/openplanr/runtime/plan/scripts/design.mjs +73 -12
  333. package/lib/host-packages/cursor/openplanr/runtime/plan/scripts/runtime/packages/protocol/package.json +6 -2
  334. package/lib/host-packages/openai/.claude-plugin/marketplace.json +2 -2
  335. package/lib/host-packages/openai/openplanr/.codex-plugin/plugin.json +1 -1
  336. package/lib/host-packages/openai/openplanr/.openplanr-content.json +139 -99
  337. package/lib/host-packages/openai/openplanr/CONNECTORS.md +4 -6
  338. package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-artifact-shell.mjs +1 -1
  339. package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-chunked-workspace-client.mjs +1 -1
  340. package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-document.mjs +471 -80
  341. package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-handoff.mjs +2 -2
  342. package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-resource-pack.mjs +1 -1
  343. package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-review.mjs +45 -4
  344. package/lib/host-packages/{claude/openplanr/runtime/design/scripts/design-runtime-support-e34c388a8e59.mjs → openai/openplanr/runtime/design/scripts/design-runtime-support-25485dbf1cb2.mjs} +1 -1
  345. package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-share.mjs +8 -5
  346. package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-shared-artifact-support-dependencies-design-support-protocol-contracts-3d9b1a86.mjs +138 -12
  347. package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-shared-artifact-support-protocol-contracts-ea2cd15e.mjs +1 -1
  348. package/lib/host-packages/{cursor/openplanr/runtime/design/scripts/design-shared-protocol-contracts-31a760fc.mjs → openai/openplanr/runtime/design/scripts/design-shared-protocol-contracts-b5f28f94.mjs} +413 -45
  349. package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-upload-spool.mjs +1 -1
  350. package/lib/host-packages/openai/openplanr/runtime/design/scripts/design.mjs +482 -79
  351. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/notices/THIRD_PARTY_NOTICES.txt +32 -32
  352. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/02-artifact-review-ui.js +23 -23
  353. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/03-protocol-contracts.js +322 -45
  354. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/06-artifact-review-ui.js +12 -12
  355. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/08-artifact-review-ui.js +47 -14
  356. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources.json +11 -10
  357. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/package.json +4 -3
  358. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.css +16 -11
  359. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/01-module-runtime.js +7 -11
  360. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/02-react.js +165 -276
  361. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/03-react-dom-client-fiber-foundations.js +494 -967
  362. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/04-react-dom-client-reconciliation-hooks.js +346 -678
  363. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/05-react-dom-client-render-phases.js +382 -810
  364. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/06-react-dom-client-commit-effects.js +406 -730
  365. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/07-react-dom-client-work-loop-scheduling.js +259 -522
  366. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/08-react-dom-client-dom-events-properties-hydration.js +585 -937
  367. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/09-react-dom-client-public-roots.js +119 -244
  368. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/10-react.js +7 -17
  369. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/11-artifact-review-ui.js +3 -4
  370. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/12-protocol-contracts.js +285 -0
  371. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/13-design-review-experience.js +2773 -0
  372. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/14-studio-shell.js +134 -0
  373. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/15-canvas-engine.js +2207 -0
  374. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/16-design-review-experience.js +16 -0
  375. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/17-studio-shell.js +8 -0
  376. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/18-interface-primitives.js +3883 -0
  377. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/19-interface-primitives.js +966 -0
  378. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/{16-studio-shell.js → 20-studio-shell.js} +122 -227
  379. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/21-design-studio.js +1597 -0
  380. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources.json +101 -47
  381. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/protocol/package.json +6 -2
  382. package/lib/host-packages/{cursor/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.9.0 → openai/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.22.0}/design-document.schema.json +207 -7
  383. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.22.0/design-review-bundle.schema.json +822 -0
  384. package/lib/host-packages/openai/openplanr/runtime/plan/scripts/design-protocol-contracts.mjs +324 -45
  385. package/lib/host-packages/openai/openplanr/runtime/plan/scripts/design.mjs +73 -12
  386. package/lib/host-packages/openai/openplanr/runtime/plan/scripts/runtime/packages/protocol/package.json +6 -2
  387. package/lib/host-packages/openai/openplanr/skills/connect/references/connectors.md +4 -6
  388. package/lib/host-packages/openai/openplanr/skills/design/SKILL.md +12 -0
  389. package/lib/host-packages/openai/openplanr/skills/design/openplanr.skill.json +11 -0
  390. package/lib/host-packages/openai/openplanr/skills/design/references/craft.md +14 -3
  391. package/lib/host-packages/openai/openplanr/skills/design/references/design-system.md +48 -1
  392. package/lib/host-packages/openai/openplanr/skills/design/references/discovery.md +18 -4
  393. package/lib/host-packages/openai/openplanr/skills/design/references/generation.md +133 -2
  394. package/lib/host-packages/openai/openplanr/skills/design/references/hosted-canvas.md +62 -0
  395. package/lib/host-packages/openai/openplanr/skills/design/references/review.md +46 -1
  396. package/lib/host-packages/openai/openplanr/skills/design/references/utilities.md +17 -1
  397. package/lib/host-packages/openai/openplanr/skills/design/schemas/design-document.schema.json +207 -7
  398. package/lib/host-packages/openai/openplanr/skills/design-loop/references/craft.md +14 -3
  399. package/lib/host-packages/openai/openplanr/skills/design-loop/references/design-system.md +48 -1
  400. package/lib/host-packages/openai/openplanr/skills/design-loop/references/discovery.md +18 -4
  401. package/lib/host-packages/openai/openplanr/skills/design-loop/references/generation.md +133 -2
  402. package/lib/host-packages/openai/openplanr/skills/design-loop/references/review.md +46 -1
  403. package/lib/host-packages/openai/openplanr/skills/design-loop/references/utilities.md +17 -1
  404. package/lib/host-packages/openai/openplanr/skills/design-loop/schemas/design-document.schema.json +207 -7
  405. package/lib/host-packages/openai/openplanr/skills/design-review/references/craft.md +14 -3
  406. package/lib/host-packages/openai/openplanr/skills/design-review/references/design-system.md +48 -1
  407. package/lib/host-packages/openai/openplanr/skills/design-review/references/discovery.md +18 -4
  408. package/lib/host-packages/openai/openplanr/skills/design-review/references/generation.md +133 -2
  409. package/lib/host-packages/openai/openplanr/skills/design-review/references/review.md +46 -1
  410. package/lib/host-packages/openai/openplanr/skills/design-review/references/utilities.md +17 -1
  411. package/lib/host-packages/openai/openplanr/skills/design-review/schemas/design-document.schema.json +207 -7
  412. package/lib/host-packages/openai/openplanr/skills/investigate/SKILL.md +11 -2
  413. package/lib/host-packages/openai/openplanr/skills/investigate/agents/openai.yaml +1 -1
  414. package/lib/host-packages/openai/openplanr/skills/investigate/openplanr.skill.json +23 -1
  415. package/lib/host-packages/openai/openplanr/skills/investigate/references/findings.md +92 -0
  416. package/lib/host-packages/openai/openplanr/skills/investigate/scripts/backlog-item.mjs +339 -0
  417. package/lib/host-packages/openai/openplanr/skills/plan/SKILL.md +24 -11
  418. package/lib/host-packages/openai/openplanr/skills/plan/openplanr.skill.json +1 -1
  419. package/lib/host-packages/openai/openplanr/skills/plan/schemas/design-document.schema.json +207 -7
  420. package/lib/host-packages/openai/openplanr/skills/share/references/connectors.md +4 -6
  421. package/lib/host-packages/openai/openplanr/skills/ship/SKILL.md +46 -14
  422. package/lib/host-packages/openai/openplanr/skills/ship/agents/openai.yaml +1 -1
  423. package/lib/host-packages/openai/openplanr/skills/ship/openplanr.skill.json +23 -1
  424. package/lib/host-packages/openai/openplanr/skills/ship/references/findings.md +92 -0
  425. package/lib/host-packages/openai/openplanr/skills/ship/references/result-contract.md +3 -1
  426. package/lib/host-packages/openai/openplanr/skills/ship/scripts/backlog-item.mjs +339 -0
  427. package/lib/host-packages/openai/openplanr/skills/spec/SKILL.md +6 -0
  428. package/lib/host-packages/openai/openplanr/skills/spec/openplanr.skill.json +1 -1
  429. package/lib/host-packages/openai/openplanr/skills/spec/references/specification-contract.md +3 -1
  430. package/lib/host-packages/openai/openplanr/skills/sprint/references/connectors.md +4 -6
  431. package/lib/host-packages/openai/openplanr/skills/status/references/connectors.md +4 -6
  432. package/lib/host-packages/openai/openplanr/skills/sync/references/connectors.md +4 -6
  433. package/lib/json-schema.mjs +4 -0
  434. package/package.json +13 -13
  435. package/dist/dashboard/assets/index-G7ygVDGg.js +0 -572
  436. package/dist/dashboard/assets/index-G7ygVDGg.js.map +0 -1
  437. package/dist/templates/backlog/backlog-item.md.hbs +0 -40
  438. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/12-design-review-experience.js +0 -3589
  439. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/13-studio-shell.js +0 -184
  440. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/14-interface-primitives.js +0 -5229
  441. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/15-interface-primitives.js +0 -1733
  442. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/17-design-studio.js +0 -1844
  443. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/12-design-review-experience.js +0 -3589
  444. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/13-studio-shell.js +0 -184
  445. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/14-interface-primitives.js +0 -5229
  446. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/15-interface-primitives.js +0 -1733
  447. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/17-design-studio.js +0 -1844
  448. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/12-design-review-experience.js +0 -3589
  449. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/13-studio-shell.js +0 -184
  450. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/14-interface-primitives.js +0 -5229
  451. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/15-interface-primitives.js +0 -1733
  452. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/17-design-studio.js +0 -1844
@@ -104,6 +104,7 @@ var VALIDATION_KEYWORDS = [
104
104
  "maxContains",
105
105
  "required",
106
106
  "properties",
107
+ "propertyNames",
107
108
  "additionalProperties",
108
109
  "maxProperties",
109
110
  "dependentRequired",
@@ -172,6 +173,7 @@ var KEYWORD_SHAPES = {
172
173
  maxContains: ["a non-negative integer", isCount],
173
174
  required: ["an array of unique strings", isUniqueStrings],
174
175
  properties: ["an object of schemas", isSchemaMap],
176
+ propertyNames: ["a schema", isSchema],
175
177
  additionalProperties: ["a schema", isSchema],
176
178
  maxProperties: ["a non-negative integer", isCount],
177
179
  dependentRequired: [
@@ -440,6 +442,8 @@ var validateNode = (value, schema6, path, errs, context) => {
440
442
  }
441
443
  const props = schema6.properties || {};
442
444
  for (const [k, v] of Object.entries(value)) {
445
+ if (schema6.propertyNames !== void 0)
446
+ validateNode(k, schema6.propertyNames, `${path}.${k}`, errs, context);
443
447
  if (Object.hasOwn(props, k)) evaluated.add(k);
444
448
  else if (schema6.additionalProperties !== void 0) evaluated.add(k);
445
449
  if (!Object.hasOwn(props, k)) {
@@ -4578,6 +4582,12 @@ var DIAGRAM_AUTHORING_CAPABILITIES = deepFreeze({
4578
4582
 
4579
4583
  // packages/protocol/src/design-contracts.mjs
4580
4584
  var DESIGN_DOCUMENT_VERSION = "1.0.0";
4585
+ function initialFrameHeight(document) {
4586
+ const fixed = document.frames.flatMap(
4587
+ ({ height }) => typeof height === "number" && Number.isInteger(height) ? [height] : []
4588
+ );
4589
+ return fixed.length ? Math.max(...fixed) : 900;
4590
+ }
4581
4591
  var freeze = (value) => {
4582
4592
  if (value && typeof value === "object") {
4583
4593
  for (const nested of Object.values(value)) freeze(nested);
@@ -4585,7 +4595,22 @@ var freeze = (value) => {
4585
4595
  }
4586
4596
  return value;
4587
4597
  };
4588
- var DESIGN_DOCUMENT_SCHEMA = freeze({
4598
+ var FRAME_SCHEMA = {
4599
+ type: "array",
4600
+ minItems: 1,
4601
+ items: {
4602
+ type: "object",
4603
+ additionalProperties: false,
4604
+ required: ["id", "label", "width", "height"],
4605
+ properties: {
4606
+ id: { $ref: "#/$defs/id" },
4607
+ label: { $ref: "#/$defs/text" },
4608
+ width: { type: "integer", minimum: 1, maximum: 16384 },
4609
+ height: { type: "integer", minimum: 1, maximum: 16384 }
4610
+ }
4611
+ }
4612
+ };
4613
+ var DESIGN_DOCUMENT_V1_SCHEMA = freeze({
4589
4614
  $schema: "https://json-schema.org/draft/2020-12/schema",
4590
4615
  $id: "https://openplanr.dev/schemas/v1.9.0/design-document.schema.json",
4591
4616
  "x-openplanr-contract": { id: "design-document", version: "1.9.0" },
@@ -4636,21 +4661,7 @@ var DESIGN_DOCUMENT_SCHEMA = freeze({
4636
4661
  }
4637
4662
  },
4638
4663
  assets: { $ref: "#/$defs/paths" },
4639
- frames: {
4640
- type: "array",
4641
- minItems: 1,
4642
- items: {
4643
- type: "object",
4644
- additionalProperties: false,
4645
- required: ["id", "label", "width", "height"],
4646
- properties: {
4647
- id: { $ref: "#/$defs/id" },
4648
- label: { $ref: "#/$defs/text" },
4649
- width: { type: "integer", minimum: 1, maximum: 16384 },
4650
- height: { type: "integer", minimum: 1, maximum: 16384 }
4651
- }
4652
- }
4653
- },
4664
+ frames: FRAME_SCHEMA,
4654
4665
  screens: {
4655
4666
  type: "array",
4656
4667
  minItems: 1,
@@ -4726,11 +4737,193 @@ var DESIGN_DOCUMENT_SCHEMA = freeze({
4726
4737
  }
4727
4738
  }
4728
4739
  });
4740
+ var DESIGN_DOCUMENT_V120_SCHEMA = freeze({
4741
+ ...DESIGN_DOCUMENT_V1_SCHEMA,
4742
+ $id: "https://openplanr.dev/schemas/v1.20.0/design-document.schema.json",
4743
+ "x-openplanr-contract": { id: "design-document", version: "1.20.0" },
4744
+ properties: {
4745
+ .../** @type {Record<string, unknown>} */
4746
+ DESIGN_DOCUMENT_V1_SCHEMA.properties,
4747
+ frames: {
4748
+ ...FRAME_SCHEMA,
4749
+ items: {
4750
+ ...FRAME_SCHEMA.items,
4751
+ properties: {
4752
+ ...FRAME_SCHEMA.items.properties,
4753
+ height: { anyOf: [{ type: "integer", minimum: 1, maximum: 16384 }, { const: "auto" }] }
4754
+ }
4755
+ }
4756
+ },
4757
+ layout: {
4758
+ type: "object",
4759
+ additionalProperties: false,
4760
+ properties: {
4761
+ boards: {
4762
+ type: "object",
4763
+ description: "Keys are screenId, screenId/frameId or screenId/frameId/variantId; each ID must exist in the document.",
4764
+ additionalProperties: {
4765
+ type: "object",
4766
+ additionalProperties: false,
4767
+ required: ["x", "y"],
4768
+ properties: {
4769
+ x: { $ref: "#/$defs/coordinate" },
4770
+ y: { $ref: "#/$defs/coordinate" },
4771
+ title: { $ref: "#/$defs/text" }
4772
+ }
4773
+ }
4774
+ },
4775
+ sections: {
4776
+ type: "array",
4777
+ items: {
4778
+ type: "object",
4779
+ additionalProperties: false,
4780
+ required: ["id", "x", "y", "text"],
4781
+ properties: {
4782
+ id: { $ref: "#/$defs/id" },
4783
+ x: { $ref: "#/$defs/coordinate" },
4784
+ y: { $ref: "#/$defs/coordinate" },
4785
+ text: { $ref: "#/$defs/text" },
4786
+ maxW: { type: "integer", minimum: 1, maximum: 16384 }
4787
+ }
4788
+ }
4789
+ }
4790
+ }
4791
+ }
4792
+ },
4793
+ $defs: {
4794
+ .../** @type {Record<string, unknown>} */
4795
+ DESIGN_DOCUMENT_V1_SCHEMA.$defs,
4796
+ coordinate: { type: "number", minimum: -1e7, maximum: 1e7 }
4797
+ }
4798
+ });
4799
+ var PROP_TOKEN_SCHEMA = {
4800
+ type: "string",
4801
+ minLength: 1,
4802
+ maxLength: 128,
4803
+ pattern: "^[a-z][a-z0-9-]*(?![\\s\\S])"
4804
+ };
4805
+ var propTokenPattern = new RegExp(PROP_TOKEN_SCHEMA.pattern, "u");
4806
+ var isPropToken = (value) => typeof value === "string" && value.length <= PROP_TOKEN_SCHEMA.maxLength && propTokenPattern.test(value);
4807
+ var currentDocument = (
4808
+ /** @type {{ properties: Record<string, unknown>; [key: string]: unknown }} */
4809
+ structuredClone(DESIGN_DOCUMENT_V120_SCHEMA)
4810
+ );
4811
+ currentDocument.$id = "https://openplanr.dev/schemas/v1.22.0/design-document.schema.json";
4812
+ currentDocument["x-openplanr-contract"] = { id: "design-document", version: "1.22.0" };
4813
+ currentDocument.properties.schemaVersion = { enum: ["1.0.0", "1.1.0"] };
4814
+ var screenSchema = (
4815
+ /** @type {{ items: { properties: Record<string, unknown> } }} */
4816
+ currentDocument.properties.screens
4817
+ );
4818
+ screenSchema.items.properties.props = {
4819
+ type: "object",
4820
+ propertyNames: PROP_TOKEN_SCHEMA,
4821
+ additionalProperties: {
4822
+ oneOf: [
4823
+ {
4824
+ type: "object",
4825
+ additionalProperties: false,
4826
+ required: ["type", "options", "default"],
4827
+ properties: {
4828
+ type: { const: "enum" },
4829
+ options: {
4830
+ type: "array",
4831
+ minItems: 1,
4832
+ uniqueItems: true,
4833
+ items: PROP_TOKEN_SCHEMA
4834
+ },
4835
+ default: PROP_TOKEN_SCHEMA
4836
+ }
4837
+ },
4838
+ {
4839
+ type: "object",
4840
+ additionalProperties: false,
4841
+ required: ["type", "default"],
4842
+ properties: { type: { const: "boolean" }, default: { type: "boolean" } }
4843
+ }
4844
+ ]
4845
+ }
4846
+ };
4847
+ var variantSchema = (
4848
+ /** @type {{ items: { properties: Record<string, unknown> } }} */
4849
+ currentDocument.properties.variants
4850
+ );
4851
+ variantSchema.items.properties.props = {
4852
+ type: "object",
4853
+ propertyNames: { $ref: "#/$defs/id" },
4854
+ additionalProperties: {
4855
+ type: "object",
4856
+ propertyNames: PROP_TOKEN_SCHEMA,
4857
+ additionalProperties: { anyOf: [PROP_TOKEN_SCHEMA, { type: "boolean" }] }
4858
+ }
4859
+ };
4860
+ currentDocument.allOf = [
4861
+ {
4862
+ if: { properties: { schemaVersion: { const: "1.1.0" } }, required: ["schemaVersion"] },
4863
+ else: {
4864
+ properties: {
4865
+ screens: { items: { not: { required: ["props"] } } },
4866
+ variants: { items: { not: { required: ["props"] } } }
4867
+ }
4868
+ }
4869
+ }
4870
+ ];
4871
+ var DESIGN_DOCUMENT_SCHEMA = freeze(currentDocument);
4872
+ function validateDesignProps(document) {
4873
+ const errors = [];
4874
+ const checkToken = (value, path) => {
4875
+ if (!isPropToken(value))
4876
+ errors.push(
4877
+ `${path}: ${JSON.stringify(value)} must be a lowercase token matching ${PROP_TOKEN_SCHEMA.pattern} with at most ${PROP_TOKEN_SCHEMA.maxLength} characters`
4878
+ );
4879
+ };
4880
+ const screens = new Map(document.screens.map((screen) => [screen.id, screen]));
4881
+ for (const [index2, screen] of document.screens.entries()) {
4882
+ for (const [name, prop] of Object.entries(screen.props ?? {})) {
4883
+ const path = `$.screens[${index2}].props.${name}`;
4884
+ checkToken(name, path);
4885
+ if (prop.type === "enum") {
4886
+ for (const [optionIndex, option] of prop.options.entries())
4887
+ checkToken(option, `${path}.options[${optionIndex}]`);
4888
+ checkToken(prop.default, `${path}.default`);
4889
+ if (!prop.options.includes(prop.default))
4890
+ errors.push(`${path}.default: '${prop.default}' is not an enum option`);
4891
+ }
4892
+ }
4893
+ }
4894
+ for (const [index2, variant] of document.variants.entries()) {
4895
+ for (const [screenId, values] of Object.entries(variant.props ?? {})) {
4896
+ const screen = screens.get(screenId);
4897
+ const path = `$.variants[${index2}].props.${screenId}`;
4898
+ if (!screen) {
4899
+ errors.push(`${path}: unknown screen '${screenId}'`);
4900
+ continue;
4901
+ }
4902
+ for (const [name, value] of Object.entries(values)) {
4903
+ checkToken(name, `${path}.${name}`);
4904
+ if (typeof value === "string") checkToken(value, `${path}.${name}`);
4905
+ const props = screen.props ?? {};
4906
+ const prop = Object.hasOwn(props, name) ? props[name] : void 0;
4907
+ if (!prop) errors.push(`${path}.${name}: unknown prop '${name}' on screen '${screenId}'`);
4908
+ else if (prop.type === "boolean" && typeof value !== "boolean")
4909
+ errors.push(`${path}.${name}: expected a boolean, received ${JSON.stringify(value)}`);
4910
+ else if (prop.type === "enum" && (typeof value !== "string" || !prop.options.includes(value)))
4911
+ errors.push(`${path}.${name}: ${JSON.stringify(value)} is not an enum option`);
4912
+ }
4913
+ }
4914
+ }
4915
+ return errors;
4916
+ }
4729
4917
  function validateDesignDocument(value) {
4730
4918
  const errors = validateJson(value, DESIGN_DOCUMENT_SCHEMA).map(
4731
4919
  ({ path, detail }) => `${path}: ${detail}`
4732
4920
  );
4921
+ if (value?.schemaVersion === "1.0.0" && ["screens", "variants"].some(
4922
+ (field) => Array.isArray(value[field]) && value[field].some((item2) => item2 && Object.hasOwn(item2, "props"))
4923
+ ))
4924
+ errors.push('$.schemaVersion: props require schemaVersion "1.1.0"');
4733
4925
  if (errors.length > 0) return { ok: false, errors };
4926
+ errors.push(...validateDesignProps(value));
4734
4927
  for (const field of ["frames", "screens", "flows", "variants"]) {
4735
4928
  const seen = /* @__PURE__ */ new Set();
4736
4929
  for (const [index2, item2] of (value[field] ?? []).entries()) {
@@ -4757,6 +4950,36 @@ function validateDesignDocument(value) {
4757
4950
  if (!screenIds.has(id7)) errors.push(`$.variants[${index2}].sources: unknown screen '${id7}'`);
4758
4951
  }
4759
4952
  }
4953
+ const frameIds = new Set(value.frames.map(({ id: id7 }) => id7));
4954
+ const variantIds = new Set(value.variants.map(({ id: id7 }) => id7));
4955
+ for (const [key, position] of Object.entries(value.layout?.boards ?? {})) {
4956
+ const parts = key.split("/");
4957
+ const path = `$.layout.boards['${key}']`;
4958
+ if (parts.length > 3 || parts.some((id7) => !/^[A-Za-z][A-Za-z0-9_-]{0,127}$/.test(id7))) {
4959
+ errors.push(`${path}: expected screenId, screenId/frameId or screenId/frameId/variantId`);
4960
+ } else {
4961
+ const [screenId, frameId, variantId] = parts;
4962
+ if (!screenIds.has(screenId)) errors.push(`${path}: unknown screen '${screenId}'`);
4963
+ if (frameId !== void 0 && !frameIds.has(frameId))
4964
+ errors.push(`${path}: unknown frame '${frameId}'`);
4965
+ if (variantId !== void 0 && !variantIds.has(variantId))
4966
+ errors.push(`${path}: unknown variant '${variantId}'`);
4967
+ }
4968
+ for (const axis of ["x", "y"]) {
4969
+ if (!Number.isFinite(position[axis]))
4970
+ errors.push(`${path}.${axis}: expected a finite coordinate`);
4971
+ }
4972
+ }
4973
+ const sectionIds = /* @__PURE__ */ new Set();
4974
+ for (const [index2, section] of (value.layout?.sections ?? []).entries()) {
4975
+ if (sectionIds.has(section.id))
4976
+ errors.push(`$.layout.sections[${index2}].id: duplicate identity '${section.id}'`);
4977
+ sectionIds.add(section.id);
4978
+ for (const axis of ["x", "y"]) {
4979
+ if (!Number.isFinite(section[axis]))
4980
+ errors.push(`$.layout.sections[${index2}].${axis}: expected a finite coordinate`);
4981
+ }
4982
+ }
4760
4983
  const selected = value.variants.find(({ id: id7 }) => id7 === value.selectedVariant);
4761
4984
  if (!selected) errors.push(`$.selectedVariant: unknown variant '${value.selectedVariant}'`);
4762
4985
  else if (selected.status !== "ready")
@@ -4858,7 +5081,7 @@ var DESIGN_WORKSPACE_SCHEMA = schema4("design-review-workspace", {
4858
5081
  });
4859
5082
  var designProperties = (
4860
5083
  /** @type {Record<string, { items: { properties: Record<string, unknown>; required: string[] } }>} */
4861
- structuredClone(DESIGN_DOCUMENT_SCHEMA.properties)
5084
+ structuredClone(DESIGN_DOCUMENT_V1_SCHEMA.properties)
4862
5085
  );
4863
5086
  for (const key of ["kind", "schemaVersion", "brief", "assets", "designSystem"])
4864
5087
  delete designProperties[key];
@@ -4930,7 +5153,7 @@ var DESIGN_REVIEW_BUNDLE_SCHEMA = {
4930
5153
  },
4931
5154
  ["kind", "schemaVersion", "design", "envelope", "entries", "revision"]
4932
5155
  ),
4933
- $defs: structuredClone(DESIGN_DOCUMENT_SCHEMA.$defs)
5156
+ $defs: structuredClone(DESIGN_DOCUMENT_V1_SCHEMA.$defs)
4934
5157
  };
4935
5158
  function assertWorkspaceContract(value, contract2) {
4936
5159
  const errors = validateJson(value, contract2);
@@ -5052,6 +5275,86 @@ var DIAGRAM_REVIEW_SCHEMAS = Object.freeze({
5052
5275
  "diagram-workspace-event": DIAGRAM_WORKSPACE_EVENT_SCHEMA
5053
5276
  });
5054
5277
 
5278
+ // packages/protocol/src/shape-library-contracts.mjs
5279
+ var closed5 = (properties) => ({
5280
+ type: "object",
5281
+ additionalProperties: false,
5282
+ required: Object.keys(properties),
5283
+ properties
5284
+ });
5285
+ var unit = { type: "number", minimum: 0, maximum: 1 };
5286
+ var extent = { type: "number", exclusiveMinimum: 0, maximum: 1 };
5287
+ var point2 = closed5({ x: unit, y: unit });
5288
+ var identifier = { type: "string", pattern: "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$", maxLength: 128 };
5289
+ var version = { type: "string", pattern: "^[0-9]+\\.[0-9]+\\.[0-9]+$", maxLength: 32 };
5290
+ var digest6 = { type: "string", pattern: "^sha256:[a-f0-9]{64}$" };
5291
+ var rect = {
5292
+ type: { const: "rect" },
5293
+ x: unit,
5294
+ y: unit,
5295
+ width: extent,
5296
+ height: extent,
5297
+ radius: unit
5298
+ };
5299
+ var ellipse = { type: { const: "ellipse" }, cx: unit, cy: unit, rx: extent, ry: extent };
5300
+ var polygon = {
5301
+ type: { const: "polygon" },
5302
+ points: { type: "array", minItems: 3, maxItems: 32, items: point2 }
5303
+ };
5304
+ var paint = { fill: { enum: ["fill", "none"] }, stroke: { enum: ["stroke", "none"] } };
5305
+ var pixels = { type: "number", minimum: 1, maximum: 1e4 };
5306
+ var SHAPE_REFERENCE_SCHEMA = closed5({
5307
+ packId: identifier,
5308
+ packVersion: version,
5309
+ shapeId: identifier,
5310
+ definitionDigest: digest6
5311
+ });
5312
+ var SHAPE_DEFINITION_SCHEMA = {
5313
+ $schema: "https://json-schema.org/draft/2020-12/schema",
5314
+ $id: "https://openplanr.dev/schemas/v1.21.0/diagram-shape-definition.schema.json",
5315
+ "x-openplanr-contract": { id: "diagram-shape-definition", version: "1.21.0" },
5316
+ ...closed5({
5317
+ ...SHAPE_REFERENCE_SCHEMA.properties,
5318
+ name: { type: "string", minLength: 1, maxLength: 128 },
5319
+ description: { type: "string", maxLength: 1024 },
5320
+ tags: {
5321
+ type: "array",
5322
+ maxItems: 16,
5323
+ uniqueItems: true,
5324
+ items: { type: "string", minLength: 1, maxLength: 64 }
5325
+ },
5326
+ primitives: {
5327
+ type: "array",
5328
+ minItems: 1,
5329
+ maxItems: 32,
5330
+ items: {
5331
+ oneOf: [
5332
+ closed5({ ...rect, ...paint }),
5333
+ closed5({ ...ellipse, ...paint }),
5334
+ closed5({ ...polygon, ...paint }),
5335
+ closed5({
5336
+ type: { const: "line" },
5337
+ x1: unit,
5338
+ y1: unit,
5339
+ x2: unit,
5340
+ y2: unit,
5341
+ stroke: paint.stroke
5342
+ })
5343
+ ]
5344
+ }
5345
+ },
5346
+ attachment: { oneOf: [closed5(rect), closed5(ellipse), closed5(polygon)] },
5347
+ textRegion: closed5({ x: unit, y: unit, width: extent, height: extent }),
5348
+ sizing: closed5({ width: pixels, height: pixels, minWidth: pixels, minHeight: pixels })
5349
+ })
5350
+ };
5351
+ var SHAPE_LIBRARY_SCHEMA = {
5352
+ type: "array",
5353
+ maxItems: 512,
5354
+ items: SHAPE_DEFINITION_SCHEMA
5355
+ };
5356
+ var GEOMETRY_ROUNDOFF = Number.EPSILON * 32;
5357
+
5055
5358
  // packages/protocol/src/studio-presentation-contracts.mjs
5056
5359
  var DIAGRAM_PRESENTATION_SCHEMA = {
5057
5360
  $schema: "https://json-schema.org/draft/2020-12/schema",
@@ -5116,6 +5419,67 @@ DIAGRAM_REVIEW_BUNDLE_V11_SCHEMA.properties.authored = {
5116
5419
  DIAGRAM_AUTHORING_BUNDLE_V11_SCHEMA
5117
5420
  ]
5118
5421
  };
5422
+ function withShapeReferences(schema6) {
5423
+ const copy = structuredClone(schema6);
5424
+ function visit(value) {
5425
+ if (!value || typeof value !== "object") return;
5426
+ if (value.properties?.shape && value.properties?.strokeWidth && value.properties?.fontSize)
5427
+ value.properties.shapeRef = SHAPE_REFERENCE_SCHEMA;
5428
+ for (const child of Object.values(value)) visit(child);
5429
+ }
5430
+ visit(copy);
5431
+ return copy;
5432
+ }
5433
+ function versionSchema(schema6, name) {
5434
+ return {
5435
+ ...schema6,
5436
+ $id: `https://openplanr.dev/schemas/v1.21.0/${name}.schema.json`,
5437
+ "x-openplanr-contract": { id: name, version: "1.21.0" }
5438
+ };
5439
+ }
5440
+ var DIAGRAM_AUTHORING_BUNDLE_V12_SCHEMA = versionSchema(
5441
+ withShapeReferences(DIAGRAM_AUTHORING_BUNDLE_V11_SCHEMA),
5442
+ "diagram-authoring-bundle"
5443
+ );
5444
+ Object.assign(DIAGRAM_AUTHORING_BUNDLE_V12_SCHEMA.properties, {
5445
+ schemaVersion: { const: "1.2.0" },
5446
+ protocolVersion: { const: "1.21.0" },
5447
+ shapeLibrary: SHAPE_LIBRARY_SCHEMA
5448
+ });
5449
+ DIAGRAM_AUTHORING_BUNDLE_V12_SCHEMA.required = DIAGRAM_AUTHORING_BUNDLE_V12_SCHEMA.required.filter((key) => key !== "studioPresentation").concat("shapeLibrary");
5450
+ var DIAGRAM_EDIT_TRANSACTION_V12_SCHEMA = versionSchema(
5451
+ withShapeReferences(DIAGRAM_EDIT_TRANSACTION_V11_SCHEMA),
5452
+ "diagram-edit-transaction"
5453
+ );
5454
+ Object.assign(DIAGRAM_EDIT_TRANSACTION_V12_SCHEMA.properties, {
5455
+ schemaVersion: { const: "1.2.0" },
5456
+ protocolVersion: { const: "1.21.0" }
5457
+ });
5458
+ DIAGRAM_EDIT_TRANSACTION_V12_SCHEMA.properties.operations.items.oneOf.push({
5459
+ type: "object",
5460
+ additionalProperties: false,
5461
+ required: ["type", "before", "after"],
5462
+ properties: {
5463
+ type: { const: "set-shape-library" },
5464
+ before: { anyOf: [SHAPE_LIBRARY_SCHEMA, { type: "null" }] },
5465
+ after: { anyOf: [SHAPE_LIBRARY_SCHEMA, { type: "null" }] }
5466
+ }
5467
+ });
5468
+ var DIAGRAM_REVIEW_BUNDLE_V12_SCHEMA = versionSchema(
5469
+ structuredClone(DIAGRAM_REVIEW_BUNDLE_SCHEMA),
5470
+ "diagram-review-bundle"
5471
+ );
5472
+ Object.assign(DIAGRAM_REVIEW_BUNDLE_V12_SCHEMA.properties, {
5473
+ schemaVersion: { const: "1.2.0" },
5474
+ presentation: DIAGRAM_PRESENTATION_SCHEMA,
5475
+ authored: {
5476
+ oneOf: [
5477
+ DIAGRAM_AUTHORING_SCHEMAS["diagram-authoring-bundle"],
5478
+ DIAGRAM_AUTHORING_BUNDLE_V11_SCHEMA,
5479
+ DIAGRAM_AUTHORING_BUNDLE_V12_SCHEMA
5480
+ ]
5481
+ }
5482
+ });
5119
5483
 
5120
5484
  // packages/protocol/src/large-object-limits.mjs
5121
5485
  var LARGE_OBJECT_LIMITS = Object.freeze({
@@ -5140,10 +5504,10 @@ var LARGE_OBJECT_VERSION = "2.0.0";
5140
5504
  var LARGE_OBJECT_CHUNK_CONTEXT = "openplanr.encrypted-resource.chunk.v2";
5141
5505
  var RESOURCE_HTML_SEGMENT_ENCODING = "openplanr.html-segments.utf8-v1";
5142
5506
  var id6 = { type: "string", pattern: "^[A-Za-z0-9_-]{22,64}$" };
5143
- var digest6 = { type: "string", pattern: "^[a-f0-9]{64}$" };
5507
+ var digest7 = { type: "string", pattern: "^[a-f0-9]{64}$" };
5144
5508
  var signature3 = { type: "string", pattern: "^[A-Za-z0-9_-]{86}$" };
5145
5509
  var integer2 = (max, min = 0) => ({ type: "integer", minimum: min, maximum: max });
5146
- var closed5 = (properties, required = Object.keys(properties)) => ({
5510
+ var closed6 = (properties, required = Object.keys(properties)) => ({
5147
5511
  type: "object",
5148
5512
  additionalProperties: false,
5149
5513
  properties,
@@ -5151,23 +5515,23 @@ var closed5 = (properties, required = Object.keys(properties)) => ({
5151
5515
  });
5152
5516
  var iso2 = { type: "string", format: "date-time", maxLength: 40 };
5153
5517
  var codec = { enum: ["identity", "deflate-raw"] };
5154
- var publicKey2 = closed5({
5518
+ var publicKey2 = closed6({
5155
5519
  kty: { const: "EC" },
5156
5520
  crv: { const: "P-256" },
5157
5521
  x: { type: "string", pattern: "^[A-Za-z0-9_-]{43}$" },
5158
5522
  y: { type: "string", pattern: "^[A-Za-z0-9_-]{43}$" }
5159
5523
  });
5160
- var keyring = closed5({
5524
+ var keyring = closed6({
5161
5525
  iv: { type: "string", pattern: "^[A-Za-z0-9_-]{16}$" },
5162
5526
  ciphertext: { type: "string", pattern: "^[A-Za-z0-9_-]+$", maxLength: 65536 }
5163
5527
  });
5164
- var chunk = closed5({
5528
+ var chunk = closed6({
5165
5529
  index: integer2(128),
5166
5530
  byteLength: integer2(LARGE_OBJECT_LIMITS.chunkBytes, 17),
5167
5531
  iv: { type: "string", pattern: "^[A-Za-z0-9_-]{16}$" },
5168
- sha256: digest6
5532
+ sha256: digest7
5169
5533
  });
5170
- var catalogSpan = closed5({
5534
+ var catalogSpan = closed6({
5171
5535
  offset: integer2(LARGE_OBJECT_LIMITS.decodedBytes),
5172
5536
  encodedBytes: integer2(LARGE_OBJECT_LIMITS.catalogBytes, 1),
5173
5537
  decodedBytes: integer2(LARGE_OBJECT_LIMITS.catalogBytes, 1),
@@ -5177,7 +5541,7 @@ var schema5 = (name, properties, required) => ({
5177
5541
  $schema: "https://json-schema.org/draft/2020-12/schema",
5178
5542
  $id: `https://openplanr.dev/schemas/v1.17.0/${name}.schema.json`,
5179
5543
  "x-openplanr-contract": { id: name, version: "1.17.0" },
5180
- ...closed5(properties, required)
5544
+ ...closed6(properties, required)
5181
5545
  });
5182
5546
  var ENCRYPTED_RESOURCE_MANIFEST_SCHEMA = schema5("encrypted-resource-manifest", {
5183
5547
  schemaVersion: { const: LARGE_OBJECT_VERSION },
@@ -5199,8 +5563,8 @@ var ENCRYPTED_UPLOAD_PREPARE_SCHEMA = schema5("encrypted-upload-prepare", {
5199
5563
  expectedVersion: integer2(Number.MAX_SAFE_INTEGER),
5200
5564
  epoch: integer2(Number.MAX_SAFE_INTEGER, 1),
5201
5565
  ownerPublicKey: publicKey2,
5202
- ownerAuthHash: digest6,
5203
- reviewerAuthHash: digest6,
5566
+ ownerAuthHash: digest7,
5567
+ reviewerAuthHash: digest7,
5204
5568
  keyring,
5205
5569
  manifest: ENCRYPTED_RESOURCE_MANIFEST_SCHEMA,
5206
5570
  signature: signature3
@@ -5209,7 +5573,7 @@ var ENCRYPTED_UPLOAD_COMMIT_SCHEMA = schema5("encrypted-upload-commit", {
5209
5573
  schemaVersion: { const: LARGE_OBJECT_VERSION },
5210
5574
  workspaceId: id6,
5211
5575
  operationId: id6,
5212
- manifestSha256: digest6,
5576
+ manifestSha256: digest7,
5213
5577
  signature: signature3
5214
5578
  });
5215
5579
  var ENCRYPTED_UPLOAD_RECEIPT_SCHEMA = schema5("encrypted-upload-receipt", {
@@ -5217,7 +5581,7 @@ var ENCRYPTED_UPLOAD_RECEIPT_SCHEMA = schema5("encrypted-upload-receipt", {
5217
5581
  workspaceId: id6,
5218
5582
  operationId: id6,
5219
5583
  revisionId: id6,
5220
- manifestSha256: digest6,
5584
+ manifestSha256: digest7,
5221
5585
  status: { const: "committed" },
5222
5586
  version: integer2(Number.MAX_SAFE_INTEGER, 1),
5223
5587
  committedAt: iso2
@@ -5229,14 +5593,14 @@ var ENCRYPTED_UPLOAD_STATUS_SCHEMA = schema5(
5229
5593
  workspaceId: id6,
5230
5594
  operationId: id6,
5231
5595
  revisionId: id6,
5232
- manifestSha256: digest6,
5596
+ manifestSha256: digest7,
5233
5597
  status: { enum: ["prepared", "committed"] },
5234
5598
  receivedChunks: {
5235
5599
  type: "array",
5236
5600
  maxItems: LARGE_OBJECT_LIMITS.chunks,
5237
- items: closed5({
5601
+ items: closed6({
5238
5602
  index: integer2(128),
5239
- sha256: digest6,
5603
+ sha256: digest7,
5240
5604
  byteLength: integer2(LARGE_OBJECT_LIMITS.chunkBytes, 17)
5241
5605
  })
5242
5606
  },
@@ -5276,14 +5640,14 @@ var ENCRYPTED_WORKSPACE_EVENT_V2_SCHEMA = schema5("encrypted-workspace-event-v2"
5276
5640
  authorPublicKey: publicKey2,
5277
5641
  signature: signature3
5278
5642
  });
5279
- var resource = closed5({
5643
+ var resource = closed6({
5280
5644
  id: { type: "string", pattern: "^r[0-9]{1,4}$" },
5281
5645
  type: { enum: ["html-segments", "shared-block", "asset"] },
5282
5646
  offset: integer2(LARGE_OBJECT_LIMITS.decodedBytes),
5283
5647
  encodedBytes: integer2(LARGE_OBJECT_LIMITS.decodedBytes, 1),
5284
5648
  decodedBytes: integer2(LARGE_OBJECT_LIMITS.decodedBytes, 1),
5285
5649
  codec,
5286
- sha256: digest6
5650
+ sha256: digest7
5287
5651
  });
5288
5652
  var RESOURCE_CATALOG_SCHEMA = schema5("resource-catalog", {
5289
5653
  schemaVersion: { const: "1.0.0" },
@@ -5301,11 +5665,11 @@ var RESOURCE_CATALOG_SCHEMA = schema5("resource-catalog", {
5301
5665
  type: "array",
5302
5666
  minItems: 1,
5303
5667
  maxItems: LARGE_OBJECT_LIMITS.sources,
5304
- items: closed5({
5668
+ items: closed6({
5305
5669
  id: { type: "string", minLength: 1, maxLength: 128 },
5306
5670
  resourceId: resource.properties.id,
5307
5671
  htmlBytes: integer2(LARGE_OBJECT_LIMITS.uniqueHtmlBytes, 1),
5308
- sha256: digest6
5672
+ sha256: digest7
5309
5673
  })
5310
5674
  },
5311
5675
  viewSources: {
@@ -5314,7 +5678,7 @@ var RESOURCE_CATALOG_SCHEMA = schema5("resource-catalog", {
5314
5678
  additionalProperties: { type: "string", minLength: 1, maxLength: 128 }
5315
5679
  }
5316
5680
  });
5317
- RESOURCE_CATALOG_SCHEMA.properties.reviewOf = digest6;
5681
+ RESOURCE_CATALOG_SCHEMA.properties.reviewOf = digest7;
5318
5682
  var companyId = { type: "string", pattern: "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$" };
5319
5683
  var companyScope = { organizationId: companyId, projectId: companyId, artifactId: companyId };
5320
5684
  var COMPANY_RESOURCE_MANIFEST_SCHEMA = schema5("company-resource-manifest", {
@@ -5331,10 +5695,10 @@ var COMPANY_RESOURCE_MANIFEST_SCHEMA = schema5("company-resource-manifest", {
5331
5695
  type: "array",
5332
5696
  minItems: 1,
5333
5697
  maxItems: 128,
5334
- items: closed5({
5698
+ items: closed6({
5335
5699
  index: integer2(127),
5336
5700
  byteLength: integer2(LARGE_OBJECT_LIMITS.chunkBytes, 1),
5337
- sha256: digest6
5701
+ sha256: digest7
5338
5702
  })
5339
5703
  }
5340
5704
  });
@@ -5349,7 +5713,7 @@ var COMPANY_RESOURCE_UPLOAD_RECEIPT_SCHEMA = schema5("company-resource-upload-re
5349
5713
  ...companyScope,
5350
5714
  operationId: id6,
5351
5715
  revisionId: id6,
5352
- manifestSha256: digest6,
5716
+ manifestSha256: digest7,
5353
5717
  contentDigest: { type: "string", pattern: "^sha256:[a-f0-9]{64}$" },
5354
5718
  status: { const: "committed" },
5355
5719
  committedAt: iso2
@@ -5363,9 +5727,9 @@ var COMPANY_RESOURCE_UPLOAD_STATUS_SCHEMA = schema5(
5363
5727
  receivedChunks: {
5364
5728
  type: "array",
5365
5729
  maxItems: 128,
5366
- items: closed5({
5730
+ items: closed6({
5367
5731
  index: integer2(127),
5368
- sha256: digest6,
5732
+ sha256: digest7,
5369
5733
  byteLength: integer2(LARGE_OBJECT_LIMITS.chunkBytes, 1)
5370
5734
  })
5371
5735
  },
@@ -5389,7 +5753,7 @@ Object.assign(ENTERPRISE_ARTIFACT_REVISION_V11_SCHEMA.properties, {
5389
5753
  protocolVersion: { const: "1.17.0" },
5390
5754
  contentDigest: { type: "string", pattern: "^sha256:[a-f0-9]{64}$" },
5391
5755
  byteLength: integer2(LARGE_OBJECT_LIMITS.decodedBytes, 1),
5392
- contentReference: closed5({ transport: { const: "resources-v2" }, manifestSha256: digest6 })
5756
+ contentReference: closed6({ transport: { const: "resources-v2" }, manifestSha256: digest7 })
5393
5757
  });
5394
5758
  ENTERPRISE_ARTIFACT_REVISION_V11_SCHEMA.required.push("contentReference", "protocolVersion");
5395
5759
  var WORKSPACE_MANAGEMENT_V2_SCHEMA = schema5("workspace-management-v2", {
@@ -5403,7 +5767,7 @@ var WORKSPACE_ROTATION_V2_SCHEMA = schema5("workspace-rotation-v2", {
5403
5767
  operationId: id6,
5404
5768
  expectedVersion: integer2(Number.MAX_SAFE_INTEGER, 1),
5405
5769
  epoch: integer2(Number.MAX_SAFE_INTEGER, 2),
5406
- reviewerAuthHash: digest6,
5770
+ reviewerAuthHash: digest7,
5407
5771
  keyring,
5408
5772
  signature: signature3
5409
5773
  });
@@ -5521,6 +5885,10 @@ function assertLargeObjectContract(value, kind) {
5521
5885
 
5522
5886
  export {
5523
5887
  validateJson,
5888
+ initialFrameHeight,
5889
+ DESIGN_DOCUMENT_V120_SCHEMA,
5890
+ DESIGN_DOCUMENT_SCHEMA,
5891
+ validateDesignProps,
5524
5892
  assertDesignDocument,
5525
5893
  DESIGN_WORKSPACE_VERSION,
5526
5894
  DESIGN_WORKSPACE_API,
@@ -9,7 +9,7 @@ import {
9
9
  } from "./design-owner-custody.mjs";
10
10
  import {
11
11
  assertLargeObjectContract
12
- } from "./design-shared-protocol-contracts-31a760fc.mjs";
12
+ } from "./design-shared-protocol-contracts-b5f28f94.mjs";
13
13
  import {
14
14
  canonicalizeJson
15
15
  } from "./design-shared-protocol-contracts-75a938cc.mjs";