@12ui/design 0.2.71 → 0.2.73

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 (680) hide show
  1. package/README.md +248 -55
  2. package/SKILL.md +28 -33
  3. package/dist/cli-arguments.d.ts.map +1 -1
  4. package/dist/cli-arguments.js +3 -0
  5. package/dist/cli-arguments.js.map +1 -1
  6. package/dist/cli-branch-command.d.ts.map +1 -1
  7. package/dist/cli-branch-command.js +4 -0
  8. package/dist/cli-branch-command.js.map +1 -1
  9. package/dist/cli-capabilities.d.ts +35 -1
  10. package/dist/cli-capabilities.d.ts.map +1 -1
  11. package/dist/cli-capabilities.js +36 -1
  12. package/dist/cli-capabilities.js.map +1 -1
  13. package/dist/cli-corpus-command.d.ts +5 -4
  14. package/dist/cli-corpus-command.d.ts.map +1 -1
  15. package/dist/cli-corpus-command.js +17 -26
  16. package/dist/cli-corpus-command.js.map +1 -1
  17. package/dist/cli-corpus-run.js +1 -1
  18. package/dist/cli-corpus-run.js.map +1 -1
  19. package/dist/cli-draft-command.js +1 -1
  20. package/dist/cli-draft-command.js.map +1 -1
  21. package/dist/cli-help/design.d.ts +26 -6
  22. package/dist/cli-help/design.d.ts.map +1 -1
  23. package/dist/cli-help/design.js +39 -7
  24. package/dist/cli-help/design.js.map +1 -1
  25. package/dist/cli-help/index.d.ts +206 -7
  26. package/dist/cli-help/index.d.ts.map +1 -1
  27. package/dist/cli-help/index.js +4 -0
  28. package/dist/cli-help/index.js.map +1 -1
  29. package/dist/cli-help/meta.d.ts +1 -1
  30. package/dist/cli-help/meta.d.ts.map +1 -1
  31. package/dist/cli-help/meta.js +2 -1
  32. package/dist/cli-help/meta.js.map +1 -1
  33. package/dist/cli-help/scene.d.ts +96 -0
  34. package/dist/cli-help/scene.d.ts.map +1 -0
  35. package/dist/cli-help/scene.js +162 -0
  36. package/dist/cli-help/scene.js.map +1 -0
  37. package/dist/cli-help/workflow.d.ts +90 -0
  38. package/dist/cli-help/workflow.d.ts.map +1 -0
  39. package/dist/cli-help/workflow.js +89 -0
  40. package/dist/cli-help/workflow.js.map +1 -0
  41. package/dist/cli-open-browser.d.ts +7 -0
  42. package/dist/cli-open-browser.d.ts.map +1 -0
  43. package/dist/cli-open-browser.js +25 -0
  44. package/dist/cli-open-browser.js.map +1 -0
  45. package/dist/cli-prototype-command.d.ts +3 -1
  46. package/dist/cli-prototype-command.d.ts.map +1 -1
  47. package/dist/cli-prototype-command.js +33 -7
  48. package/dist/cli-prototype-command.js.map +1 -1
  49. package/dist/cli-review-command.d.ts.map +1 -1
  50. package/dist/cli-review-command.js +1 -16
  51. package/dist/cli-review-command.js.map +1 -1
  52. package/dist/cli-run.d.ts.map +1 -1
  53. package/dist/cli-run.js +41 -3
  54. package/dist/cli-run.js.map +1 -1
  55. package/dist/cli-scene-command.d.ts +3 -0
  56. package/dist/cli-scene-command.d.ts.map +1 -0
  57. package/dist/cli-scene-command.js +292 -0
  58. package/dist/cli-scene-command.js.map +1 -0
  59. package/dist/cli-usage.d.ts +8 -0
  60. package/dist/cli-usage.d.ts.map +1 -1
  61. package/dist/cli-usage.js +65 -6
  62. package/dist/cli-usage.js.map +1 -1
  63. package/dist/cli-workflow-command.d.ts +8 -0
  64. package/dist/cli-workflow-command.d.ts.map +1 -0
  65. package/dist/cli-workflow-command.js +97 -0
  66. package/dist/cli-workflow-command.js.map +1 -0
  67. package/dist/cli-workspace-command.d.ts +25 -0
  68. package/dist/cli-workspace-command.d.ts.map +1 -0
  69. package/dist/cli-workspace-command.js +95 -0
  70. package/dist/cli-workspace-command.js.map +1 -0
  71. package/dist/config.d.ts +6 -0
  72. package/dist/config.d.ts.map +1 -1
  73. package/dist/config.js +12 -4
  74. package/dist/config.js.map +1 -1
  75. package/dist/corpus-access.d.ts +11 -0
  76. package/dist/corpus-access.d.ts.map +1 -0
  77. package/dist/corpus-access.js +18 -0
  78. package/dist/corpus-access.js.map +1 -0
  79. package/dist/corpus-client.d.ts +11 -11
  80. package/dist/corpus-client.d.ts.map +1 -1
  81. package/dist/corpus-client.js +17 -6
  82. package/dist/corpus-client.js.map +1 -1
  83. package/dist/corpus-inspiration-failure.d.ts +1 -1
  84. package/dist/corpus-inspiration-failure.js +2 -2
  85. package/dist/corpus-inspiration-failure.js.map +1 -1
  86. package/dist/corpus-reference-download-retry.d.ts.map +1 -1
  87. package/dist/corpus-reference-download-retry.js +11 -1
  88. package/dist/corpus-reference-download-retry.js.map +1 -1
  89. package/dist/corpus-request-error.d.ts +2 -0
  90. package/dist/corpus-request-error.d.ts.map +1 -1
  91. package/dist/corpus-request-error.js +2 -0
  92. package/dist/corpus-request-error.js.map +1 -1
  93. package/dist/corpus-retry-guidance.d.ts +5 -0
  94. package/dist/corpus-retry-guidance.d.ts.map +1 -0
  95. package/dist/corpus-retry-guidance.js +18 -0
  96. package/dist/corpus-retry-guidance.js.map +1 -0
  97. package/dist/improve-pricing-plan.d.ts.map +1 -1
  98. package/dist/improve-pricing-plan.js +2 -4
  99. package/dist/improve-pricing-plan.js.map +1 -1
  100. package/dist/index.d.ts +10 -1
  101. package/dist/index.d.ts.map +1 -1
  102. package/dist/index.js +10 -1
  103. package/dist/index.js.map +1 -1
  104. package/dist/legacy-skill-catalog.d.ts.map +1 -1
  105. package/dist/legacy-skill-catalog.js +52 -0
  106. package/dist/legacy-skill-catalog.js.map +1 -1
  107. package/dist/mcp-slate-command.d.ts +31 -0
  108. package/dist/mcp-slate-command.d.ts.map +1 -0
  109. package/dist/mcp-slate-command.js +118 -0
  110. package/dist/mcp-slate-command.js.map +1 -0
  111. package/dist/mcp-slate-image.d.ts +22 -0
  112. package/dist/mcp-slate-image.d.ts.map +1 -0
  113. package/dist/mcp-slate-image.js +28 -0
  114. package/dist/mcp-slate-image.js.map +1 -0
  115. package/dist/mcp-slate-latest.d.ts +13 -0
  116. package/dist/mcp-slate-latest.d.ts.map +1 -0
  117. package/dist/mcp-slate-latest.js +34 -0
  118. package/dist/mcp-slate-latest.js.map +1 -0
  119. package/dist/mcp-slate-names.d.ts +25 -0
  120. package/dist/mcp-slate-names.d.ts.map +1 -0
  121. package/dist/mcp-slate-names.js +49 -0
  122. package/dist/mcp-slate-names.js.map +1 -0
  123. package/dist/mcp-slate-resource.d.ts +5 -0
  124. package/dist/mcp-slate-resource.d.ts.map +1 -0
  125. package/dist/mcp-slate-resource.js +37 -0
  126. package/dist/mcp-slate-resource.js.map +1 -0
  127. package/dist/mcp-slate-run.d.ts +41 -0
  128. package/dist/mcp-slate-run.d.ts.map +1 -0
  129. package/dist/mcp-slate-run.js +88 -0
  130. package/dist/mcp-slate-run.js.map +1 -0
  131. package/dist/mcp-slate-tool-defs.d.ts +61 -0
  132. package/dist/mcp-slate-tool-defs.d.ts.map +1 -0
  133. package/dist/mcp-slate-tool-defs.js +247 -0
  134. package/dist/mcp-slate-tool-defs.js.map +1 -0
  135. package/dist/mcp-slate-tools.d.ts +8 -0
  136. package/dist/mcp-slate-tools.d.ts.map +1 -0
  137. package/dist/mcp-slate-tools.js +45 -0
  138. package/dist/mcp-slate-tools.js.map +1 -0
  139. package/dist/mcp-slate-ui-copy.d.ts +134 -0
  140. package/dist/mcp-slate-ui-copy.d.ts.map +1 -0
  141. package/dist/mcp-slate-ui-copy.js +136 -0
  142. package/dist/mcp-slate-ui-copy.js.map +1 -0
  143. package/dist/mcp-slate-ui-script-bridge.d.ts +18 -0
  144. package/dist/mcp-slate-ui-script-bridge.d.ts.map +1 -0
  145. package/dist/mcp-slate-ui-script-bridge.js +137 -0
  146. package/dist/mcp-slate-ui-script-bridge.js.map +1 -0
  147. package/dist/mcp-slate-ui-script-browser.d.ts +12 -0
  148. package/dist/mcp-slate-ui-script-browser.d.ts.map +1 -0
  149. package/dist/mcp-slate-ui-script-browser.js +19 -0
  150. package/dist/mcp-slate-ui-script-browser.js.map +1 -0
  151. package/dist/mcp-slate-ui-script-dialog.d.ts +20 -0
  152. package/dist/mcp-slate-ui-script-dialog.d.ts.map +1 -0
  153. package/dist/mcp-slate-ui-script-dialog.js +332 -0
  154. package/dist/mcp-slate-ui-script-dialog.js.map +1 -0
  155. package/dist/mcp-slate-ui-script-inline.d.ts +10 -0
  156. package/dist/mcp-slate-ui-script-inline.d.ts.map +1 -0
  157. package/dist/mcp-slate-ui-script-inline.js +221 -0
  158. package/dist/mcp-slate-ui-script-inline.js.map +1 -0
  159. package/dist/mcp-slate-ui-script-inspiration.d.ts +12 -0
  160. package/dist/mcp-slate-ui-script-inspiration.d.ts.map +1 -0
  161. package/dist/mcp-slate-ui-script-inspiration.js +216 -0
  162. package/dist/mcp-slate-ui-script-inspiration.js.map +1 -0
  163. package/dist/mcp-slate-ui-script-more.d.ts +30 -0
  164. package/dist/mcp-slate-ui-script-more.d.ts.map +1 -0
  165. package/dist/mcp-slate-ui-script-more.js +225 -0
  166. package/dist/mcp-slate-ui-script-more.js.map +1 -0
  167. package/dist/mcp-slate-ui-script-progress.d.ts +7 -0
  168. package/dist/mcp-slate-ui-script-progress.d.ts.map +1 -0
  169. package/dist/mcp-slate-ui-script-progress.js +9 -0
  170. package/dist/mcp-slate-ui-script-progress.js.map +1 -0
  171. package/dist/mcp-slate-ui-script-remote.d.ts +28 -0
  172. package/dist/mcp-slate-ui-script-remote.d.ts.map +1 -0
  173. package/dist/mcp-slate-ui-script-remote.js +147 -0
  174. package/dist/mcp-slate-ui-script-remote.js.map +1 -0
  175. package/dist/mcp-slate-ui-script-scribble.d.ts +19 -0
  176. package/dist/mcp-slate-ui-script-scribble.d.ts.map +1 -0
  177. package/dist/mcp-slate-ui-script-scribble.js +114 -0
  178. package/dist/mcp-slate-ui-script-scribble.js.map +1 -0
  179. package/dist/mcp-slate-ui-script-select.d.ts +16 -0
  180. package/dist/mcp-slate-ui-script-select.d.ts.map +1 -0
  181. package/dist/mcp-slate-ui-script-select.js +73 -0
  182. package/dist/mcp-slate-ui-script-select.js.map +1 -0
  183. package/dist/mcp-slate-ui-script-stage.d.ts +11 -0
  184. package/dist/mcp-slate-ui-script-stage.d.ts.map +1 -0
  185. package/dist/mcp-slate-ui-script-stage.js +181 -0
  186. package/dist/mcp-slate-ui-script-stage.js.map +1 -0
  187. package/dist/mcp-slate-ui-script-state.d.ts +13 -0
  188. package/dist/mcp-slate-ui-script-state.d.ts.map +1 -0
  189. package/dist/mcp-slate-ui-script-state.js +306 -0
  190. package/dist/mcp-slate-ui-script-state.js.map +1 -0
  191. package/dist/mcp-slate-ui-script-thumbtools.d.ts +23 -0
  192. package/dist/mcp-slate-ui-script-thumbtools.d.ts.map +1 -0
  193. package/dist/mcp-slate-ui-script-thumbtools.js +103 -0
  194. package/dist/mcp-slate-ui-script-thumbtools.js.map +1 -0
  195. package/dist/mcp-slate-ui-script.d.ts +28 -0
  196. package/dist/mcp-slate-ui-script.d.ts.map +1 -0
  197. package/dist/mcp-slate-ui-script.js +58 -0
  198. package/dist/mcp-slate-ui-script.js.map +1 -0
  199. package/dist/mcp-slate-ui-styles-dialog.d.ts +17 -0
  200. package/dist/mcp-slate-ui-styles-dialog.d.ts.map +1 -0
  201. package/dist/mcp-slate-ui-styles-dialog.js +73 -0
  202. package/dist/mcp-slate-ui-styles-dialog.js.map +1 -0
  203. package/dist/mcp-slate-ui-styles-stage.d.ts +12 -0
  204. package/dist/mcp-slate-ui-styles-stage.d.ts.map +1 -0
  205. package/dist/mcp-slate-ui-styles-stage.js +53 -0
  206. package/dist/mcp-slate-ui-styles-stage.js.map +1 -0
  207. package/dist/mcp-slate-ui-styles-thumbtools.d.ts +10 -0
  208. package/dist/mcp-slate-ui-styles-thumbtools.d.ts.map +1 -0
  209. package/dist/mcp-slate-ui-styles-thumbtools.js +25 -0
  210. package/dist/mcp-slate-ui-styles-thumbtools.js.map +1 -0
  211. package/dist/mcp-slate-ui-styles.d.ts +13 -0
  212. package/dist/mcp-slate-ui-styles.d.ts.map +1 -0
  213. package/dist/mcp-slate-ui-styles.js +117 -0
  214. package/dist/mcp-slate-ui-styles.js.map +1 -0
  215. package/dist/mcp-slate-ui.d.ts +16 -0
  216. package/dist/mcp-slate-ui.d.ts.map +1 -0
  217. package/dist/mcp-slate-ui.js +58 -0
  218. package/dist/mcp-slate-ui.js.map +1 -0
  219. package/dist/mcp-slate-workspace-tools.d.ts +15 -0
  220. package/dist/mcp-slate-workspace-tools.d.ts.map +1 -0
  221. package/dist/mcp-slate-workspace-tools.js +155 -0
  222. package/dist/mcp-slate-workspace-tools.js.map +1 -0
  223. package/dist/mcp-tool-definitions.d.ts.map +1 -1
  224. package/dist/mcp-tool-definitions.js +9 -7
  225. package/dist/mcp-tool-definitions.js.map +1 -1
  226. package/dist/mcp-tool-handler.d.ts +8 -2
  227. package/dist/mcp-tool-handler.d.ts.map +1 -1
  228. package/dist/mcp-tool-handler.js +34 -13
  229. package/dist/mcp-tool-handler.js.map +1 -1
  230. package/dist/mcp-workflow-tools.d.ts +6 -0
  231. package/dist/mcp-workflow-tools.d.ts.map +1 -0
  232. package/dist/mcp-workflow-tools.js +108 -0
  233. package/dist/mcp-workflow-tools.js.map +1 -0
  234. package/dist/prototype-browsers.d.ts +8 -2
  235. package/dist/prototype-browsers.d.ts.map +1 -1
  236. package/dist/prototype-browsers.js +8 -3
  237. package/dist/prototype-browsers.js.map +1 -1
  238. package/dist/prototype-label-client.d.ts +5 -0
  239. package/dist/prototype-label-client.d.ts.map +1 -1
  240. package/dist/prototype-label-client.js.map +1 -1
  241. package/dist/prototype-poststep.d.ts +2 -2
  242. package/dist/prototype-poststep.d.ts.map +1 -1
  243. package/dist/prototype-poststep.js +3 -0
  244. package/dist/prototype-poststep.js.map +1 -1
  245. package/dist/prototype-process.js +1 -1
  246. package/dist/prototype-process.js.map +1 -1
  247. package/dist/prototype-run-record.d.ts +6 -2
  248. package/dist/prototype-run-record.d.ts.map +1 -1
  249. package/dist/prototype-run-record.js +6 -0
  250. package/dist/prototype-run-record.js.map +1 -1
  251. package/dist/prototype-runner.d.ts +2 -2
  252. package/dist/prototype-runner.d.ts.map +1 -1
  253. package/dist/prototype-runner.js +5 -2
  254. package/dist/prototype-runner.js.map +1 -1
  255. package/dist/prototype-workflow-contract.d.ts +13 -0
  256. package/dist/prototype-workflow-contract.d.ts.map +1 -0
  257. package/dist/prototype-workflow-contract.js +82 -0
  258. package/dist/prototype-workflow-contract.js.map +1 -0
  259. package/dist/prototype-workflow-labels.d.ts +29 -0
  260. package/dist/prototype-workflow-labels.d.ts.map +1 -0
  261. package/dist/prototype-workflow-labels.js +93 -0
  262. package/dist/prototype-workflow-labels.js.map +1 -0
  263. package/dist/run-journal-commands.d.ts.map +1 -1
  264. package/dist/run-journal-commands.js +24 -5
  265. package/dist/run-journal-commands.js.map +1 -1
  266. package/dist/scene/camera-model.d.ts +48 -0
  267. package/dist/scene/camera-model.d.ts.map +1 -0
  268. package/dist/scene/camera-model.js +89 -0
  269. package/dist/scene/camera-model.js.map +1 -0
  270. package/dist/scene/camera-solve.d.ts +58 -0
  271. package/dist/scene/camera-solve.d.ts.map +1 -0
  272. package/dist/scene/camera-solve.js +288 -0
  273. package/dist/scene/camera-solve.js.map +1 -0
  274. package/dist/scene/capture-plan.d.ts +28 -0
  275. package/dist/scene/capture-plan.d.ts.map +1 -0
  276. package/dist/scene/capture-plan.js +79 -0
  277. package/dist/scene/capture-plan.js.map +1 -0
  278. package/dist/scene/capture.d.ts +21 -0
  279. package/dist/scene/capture.d.ts.map +1 -0
  280. package/dist/scene/capture.js +118 -0
  281. package/dist/scene/capture.js.map +1 -0
  282. package/dist/scene/image-colors.d.ts +25 -0
  283. package/dist/scene/image-colors.d.ts.map +1 -0
  284. package/dist/scene/image-colors.js +110 -0
  285. package/dist/scene/image-colors.js.map +1 -0
  286. package/dist/scene/image-rectify.d.ts +25 -0
  287. package/dist/scene/image-rectify.d.ts.map +1 -0
  288. package/dist/scene/image-rectify.js +82 -0
  289. package/dist/scene/image-rectify.js.map +1 -0
  290. package/dist/scene/image-sheet.d.ts +19 -0
  291. package/dist/scene/image-sheet.d.ts.map +1 -0
  292. package/dist/scene/image-sheet.js +118 -0
  293. package/dist/scene/image-sheet.js.map +1 -0
  294. package/dist/scene/least-squares.d.ts +31 -0
  295. package/dist/scene/least-squares.d.ts.map +1 -0
  296. package/dist/scene/least-squares.js +173 -0
  297. package/dist/scene/least-squares.js.map +1 -0
  298. package/dist/scene/numbers.d.ts +17 -0
  299. package/dist/scene/numbers.d.ts.map +1 -0
  300. package/dist/scene/numbers.js +39 -0
  301. package/dist/scene/numbers.js.map +1 -0
  302. package/dist/scene/placement.d.ts +43 -0
  303. package/dist/scene/placement.d.ts.map +1 -0
  304. package/dist/scene/placement.js +107 -0
  305. package/dist/scene/placement.js.map +1 -0
  306. package/dist/scene/raster.d.ts +18 -0
  307. package/dist/scene/raster.d.ts.map +1 -0
  308. package/dist/scene/raster.js +31 -0
  309. package/dist/scene/raster.js.map +1 -0
  310. package/dist/scene/scene-kit.d.ts +20 -0
  311. package/dist/scene/scene-kit.d.ts.map +1 -0
  312. package/dist/scene/scene-kit.js +74 -0
  313. package/dist/scene/scene-kit.js.map +1 -0
  314. package/dist/scene/scene-verbs.d.ts +4 -0
  315. package/dist/scene/scene-verbs.d.ts.map +1 -0
  316. package/dist/scene/scene-verbs.js +5 -0
  317. package/dist/scene/scene-verbs.js.map +1 -0
  318. package/dist/scene/seeded-random.d.ts +20 -0
  319. package/dist/scene/seeded-random.d.ts.map +1 -0
  320. package/dist/scene/seeded-random.js +42 -0
  321. package/dist/scene/seeded-random.js.map +1 -0
  322. package/dist/scene/spec-expression.d.ts +25 -0
  323. package/dist/scene/spec-expression.d.ts.map +1 -0
  324. package/dist/scene/spec-expression.js +234 -0
  325. package/dist/scene/spec-expression.js.map +1 -0
  326. package/dist/scene/static-server.d.ts +13 -0
  327. package/dist/scene/static-server.d.ts.map +1 -0
  328. package/dist/scene/static-server.js +99 -0
  329. package/dist/scene/static-server.js.map +1 -0
  330. package/dist/server.d.ts +22 -2
  331. package/dist/server.d.ts.map +1 -1
  332. package/dist/server.js +44 -8
  333. package/dist/server.js.map +1 -1
  334. package/dist/slate-actions.d.ts +38 -0
  335. package/dist/slate-actions.d.ts.map +1 -0
  336. package/dist/slate-actions.js +102 -0
  337. package/dist/slate-actions.js.map +1 -0
  338. package/dist/slate-annotate.d.ts +36 -0
  339. package/dist/slate-annotate.d.ts.map +1 -0
  340. package/dist/slate-annotate.js +71 -0
  341. package/dist/slate-annotate.js.map +1 -0
  342. package/dist/slate-approvals.d.ts +61 -0
  343. package/dist/slate-approvals.d.ts.map +1 -0
  344. package/dist/slate-approvals.js +153 -0
  345. package/dist/slate-approvals.js.map +1 -0
  346. package/dist/slate-browser-decision.d.ts +30 -0
  347. package/dist/slate-browser-decision.d.ts.map +1 -0
  348. package/dist/slate-browser-decision.js +24 -0
  349. package/dist/slate-browser-decision.js.map +1 -0
  350. package/dist/slate-browser-host-script.d.ts +14 -0
  351. package/dist/slate-browser-host-script.d.ts.map +1 -0
  352. package/dist/slate-browser-host-script.js +125 -0
  353. package/dist/slate-browser-host-script.js.map +1 -0
  354. package/dist/slate-browser-host.d.ts +9 -0
  355. package/dist/slate-browser-host.d.ts.map +1 -0
  356. package/dist/slate-browser-host.js +37 -0
  357. package/dist/slate-browser-host.js.map +1 -0
  358. package/dist/slate-browser-server.d.ts +37 -0
  359. package/dist/slate-browser-server.d.ts.map +1 -0
  360. package/dist/slate-browser-server.js +186 -0
  361. package/dist/slate-browser-server.js.map +1 -0
  362. package/dist/slate-commit.d.ts +28 -0
  363. package/dist/slate-commit.d.ts.map +1 -0
  364. package/dist/slate-commit.js +218 -0
  365. package/dist/slate-commit.js.map +1 -0
  366. package/dist/slate-corpus.d.ts +14 -0
  367. package/dist/slate-corpus.d.ts.map +1 -0
  368. package/dist/slate-corpus.js +32 -0
  369. package/dist/slate-corpus.js.map +1 -0
  370. package/dist/slate-edit-prompt.d.ts +18 -0
  371. package/dist/slate-edit-prompt.d.ts.map +1 -0
  372. package/dist/slate-edit-prompt.js +41 -0
  373. package/dist/slate-edit-prompt.js.map +1 -0
  374. package/dist/slate-edit-runner.d.ts +4 -0
  375. package/dist/slate-edit-runner.d.ts.map +1 -0
  376. package/dist/slate-edit-runner.js +90 -0
  377. package/dist/slate-edit-runner.js.map +1 -0
  378. package/dist/slate-editability.d.ts +20 -0
  379. package/dist/slate-editability.d.ts.map +1 -0
  380. package/dist/slate-editability.js +19 -0
  381. package/dist/slate-editability.js.map +1 -0
  382. package/dist/slate-errors.d.ts +15 -0
  383. package/dist/slate-errors.d.ts.map +1 -0
  384. package/dist/slate-errors.js +21 -0
  385. package/dist/slate-errors.js.map +1 -0
  386. package/dist/slate-handoff-options.d.ts +40 -0
  387. package/dist/slate-handoff-options.d.ts.map +1 -0
  388. package/dist/slate-handoff-options.js +127 -0
  389. package/dist/slate-handoff-options.js.map +1 -0
  390. package/dist/slate-handoff.d.ts +11 -0
  391. package/dist/slate-handoff.d.ts.map +1 -0
  392. package/dist/slate-handoff.js +56 -0
  393. package/dist/slate-handoff.js.map +1 -0
  394. package/dist/slate-ids.d.ts +33 -0
  395. package/dist/slate-ids.d.ts.map +1 -0
  396. package/dist/slate-ids.js +47 -0
  397. package/dist/slate-ids.js.map +1 -0
  398. package/dist/slate-image-executor.d.ts +39 -0
  399. package/dist/slate-image-executor.d.ts.map +1 -0
  400. package/dist/slate-image-executor.js +52 -0
  401. package/dist/slate-image-executor.js.map +1 -0
  402. package/dist/slate-inspiration.d.ts +22 -0
  403. package/dist/slate-inspiration.d.ts.map +1 -0
  404. package/dist/slate-inspiration.js +112 -0
  405. package/dist/slate-inspiration.js.map +1 -0
  406. package/dist/slate-labels.d.ts +11 -0
  407. package/dist/slate-labels.d.ts.map +1 -0
  408. package/dist/slate-labels.js +32 -0
  409. package/dist/slate-labels.js.map +1 -0
  410. package/dist/slate-ledger.d.ts +29 -0
  411. package/dist/slate-ledger.d.ts.map +1 -0
  412. package/dist/slate-ledger.js +65 -0
  413. package/dist/slate-ledger.js.map +1 -0
  414. package/dist/slate-liveness.d.ts +26 -0
  415. package/dist/slate-liveness.d.ts.map +1 -0
  416. package/dist/slate-liveness.js +49 -0
  417. package/dist/slate-liveness.js.map +1 -0
  418. package/dist/slate-local-image.d.ts +19 -0
  419. package/dist/slate-local-image.d.ts.map +1 -0
  420. package/dist/slate-local-image.js +36 -0
  421. package/dist/slate-local-image.js.map +1 -0
  422. package/dist/slate-lock.d.ts +64 -0
  423. package/dist/slate-lock.d.ts.map +1 -0
  424. package/dist/slate-lock.js +178 -0
  425. package/dist/slate-lock.js.map +1 -0
  426. package/dist/slate-paths.d.ts +45 -0
  427. package/dist/slate-paths.d.ts.map +1 -0
  428. package/dist/slate-paths.js +132 -0
  429. package/dist/slate-paths.js.map +1 -0
  430. package/dist/slate-pick.d.ts +29 -0
  431. package/dist/slate-pick.d.ts.map +1 -0
  432. package/dist/slate-pick.js +55 -0
  433. package/dist/slate-pick.js.map +1 -0
  434. package/dist/slate-reference-ids.d.ts +6 -0
  435. package/dist/slate-reference-ids.d.ts.map +1 -0
  436. package/dist/slate-reference-ids.js +17 -0
  437. package/dist/slate-reference-ids.js.map +1 -0
  438. package/dist/slate-reference-store.d.ts +23 -0
  439. package/dist/slate-reference-store.d.ts.map +1 -0
  440. package/dist/slate-reference-store.js +46 -0
  441. package/dist/slate-reference-store.js.map +1 -0
  442. package/dist/slate-resume.d.ts +19 -0
  443. package/dist/slate-resume.d.ts.map +1 -0
  444. package/dist/slate-resume.js +94 -0
  445. package/dist/slate-resume.js.map +1 -0
  446. package/dist/slate-round-params.d.ts +20 -0
  447. package/dist/slate-round-params.d.ts.map +1 -0
  448. package/dist/slate-round-params.js +32 -0
  449. package/dist/slate-round-params.js.map +1 -0
  450. package/dist/slate-round-prompt.d.ts +18 -0
  451. package/dist/slate-round-prompt.d.ts.map +1 -0
  452. package/dist/slate-round-prompt.js +20 -0
  453. package/dist/slate-round-prompt.js.map +1 -0
  454. package/dist/slate-round-runner.d.ts +4 -0
  455. package/dist/slate-round-runner.d.ts.map +1 -0
  456. package/dist/slate-round-runner.js +125 -0
  457. package/dist/slate-round-runner.js.map +1 -0
  458. package/dist/slate-round-search.d.ts +7 -0
  459. package/dist/slate-round-search.d.ts.map +1 -0
  460. package/dist/slate-round-search.js +77 -0
  461. package/dist/slate-round-search.js.map +1 -0
  462. package/dist/slate-run-action.d.ts +14 -0
  463. package/dist/slate-run-action.d.ts.map +1 -0
  464. package/dist/slate-run-action.js +81 -0
  465. package/dist/slate-run-action.js.map +1 -0
  466. package/dist/slate-runner-context.d.ts +57 -0
  467. package/dist/slate-runner-context.d.ts.map +1 -0
  468. package/dist/slate-runner-context.js +79 -0
  469. package/dist/slate-runner-context.js.map +1 -0
  470. package/dist/slate-runner-failure.d.ts +8 -0
  471. package/dist/slate-runner-failure.d.ts.map +1 -0
  472. package/dist/slate-runner-failure.js +17 -0
  473. package/dist/slate-runner-failure.js.map +1 -0
  474. package/dist/slate-runner-flag.d.ts +3 -0
  475. package/dist/slate-runner-flag.d.ts.map +1 -0
  476. package/dist/slate-runner-flag.js +3 -0
  477. package/dist/slate-runner-flag.js.map +1 -0
  478. package/dist/slate-runner-main.d.ts +31 -0
  479. package/dist/slate-runner-main.d.ts.map +1 -0
  480. package/dist/slate-runner-main.js +132 -0
  481. package/dist/slate-runner-main.js.map +1 -0
  482. package/dist/slate-runner-spawn.d.ts +23 -0
  483. package/dist/slate-runner-spawn.d.ts.map +1 -0
  484. package/dist/slate-runner-spawn.js +27 -0
  485. package/dist/slate-runner-spawn.js.map +1 -0
  486. package/dist/slate-runtime.d.ts +38 -0
  487. package/dist/slate-runtime.d.ts.map +1 -0
  488. package/dist/slate-runtime.js +48 -0
  489. package/dist/slate-runtime.js.map +1 -0
  490. package/dist/slate-versions.d.ts +26 -0
  491. package/dist/slate-versions.d.ts.map +1 -0
  492. package/dist/slate-versions.js +110 -0
  493. package/dist/slate-versions.js.map +1 -0
  494. package/dist/slate-view-contract.d.ts +233 -0
  495. package/dist/slate-view-contract.d.ts.map +1 -0
  496. package/dist/slate-view-contract.js +17 -0
  497. package/dist/slate-view-contract.js.map +1 -0
  498. package/dist/slate-view-types.d.ts +2 -0
  499. package/dist/slate-view-types.d.ts.map +1 -0
  500. package/dist/slate-view-types.js +2 -0
  501. package/dist/slate-view-types.js.map +1 -0
  502. package/dist/slate-view.d.ts +19 -0
  503. package/dist/slate-view.d.ts.map +1 -0
  504. package/dist/slate-view.js +184 -0
  505. package/dist/slate-view.js.map +1 -0
  506. package/dist/slate-workspace-parse.d.ts +20 -0
  507. package/dist/slate-workspace-parse.d.ts.map +1 -0
  508. package/dist/slate-workspace-parse.js +437 -0
  509. package/dist/slate-workspace-parse.js.map +1 -0
  510. package/dist/slate-workspace-store.d.ts +44 -0
  511. package/dist/slate-workspace-store.d.ts.map +1 -0
  512. package/dist/slate-workspace-store.js +270 -0
  513. package/dist/slate-workspace-store.js.map +1 -0
  514. package/dist/slate-workspace-types.d.ts +176 -0
  515. package/dist/slate-workspace-types.d.ts.map +1 -0
  516. package/dist/slate-workspace-types.js +13 -0
  517. package/dist/slate-workspace-types.js.map +1 -0
  518. package/dist/workflow/adapter-12ui.d.ts +4 -0
  519. package/dist/workflow/adapter-12ui.d.ts.map +1 -0
  520. package/dist/workflow/adapter-12ui.js +147 -0
  521. package/dist/workflow/adapter-12ui.js.map +1 -0
  522. package/dist/workflow/adapter-layerdoc.d.ts +16 -0
  523. package/dist/workflow/adapter-layerdoc.d.ts.map +1 -0
  524. package/dist/workflow/adapter-layerdoc.js +116 -0
  525. package/dist/workflow/adapter-layerdoc.js.map +1 -0
  526. package/dist/workflow/adapter-openai.d.ts +4 -0
  527. package/dist/workflow/adapter-openai.d.ts.map +1 -0
  528. package/dist/workflow/adapter-openai.js +166 -0
  529. package/dist/workflow/adapter-openai.js.map +1 -0
  530. package/dist/workflow/adapter-process.d.ts +7 -0
  531. package/dist/workflow/adapter-process.d.ts.map +1 -0
  532. package/dist/workflow/adapter-process.js +174 -0
  533. package/dist/workflow/adapter-process.js.map +1 -0
  534. package/dist/workflow/adapter-prototype-labels.d.ts +15 -0
  535. package/dist/workflow/adapter-prototype-labels.d.ts.map +1 -0
  536. package/dist/workflow/adapter-prototype-labels.js +71 -0
  537. package/dist/workflow/adapter-prototype-labels.js.map +1 -0
  538. package/dist/workflow/adapter-types.d.ts +40 -0
  539. package/dist/workflow/adapter-types.d.ts.map +1 -0
  540. package/dist/workflow/adapter-types.js +2 -0
  541. package/dist/workflow/adapter-types.js.map +1 -0
  542. package/dist/workflow/adapter-utils.d.ts +11 -0
  543. package/dist/workflow/adapter-utils.d.ts.map +1 -0
  544. package/dist/workflow/adapter-utils.js +72 -0
  545. package/dist/workflow/adapter-utils.js.map +1 -0
  546. package/dist/workflow/adapters.d.ts +6 -0
  547. package/dist/workflow/adapters.d.ts.map +1 -0
  548. package/dist/workflow/adapters.js +25 -0
  549. package/dist/workflow/adapters.js.map +1 -0
  550. package/dist/workflow/artifact.d.ts +11 -0
  551. package/dist/workflow/artifact.d.ts.map +1 -0
  552. package/dist/workflow/artifact.js +94 -0
  553. package/dist/workflow/artifact.js.map +1 -0
  554. package/dist/workflow/bundle-collect.d.ts +8 -0
  555. package/dist/workflow/bundle-collect.d.ts.map +1 -0
  556. package/dist/workflow/bundle-collect.js +56 -0
  557. package/dist/workflow/bundle-collect.js.map +1 -0
  558. package/dist/workflow/bundle-export.d.ts +16 -0
  559. package/dist/workflow/bundle-export.d.ts.map +1 -0
  560. package/dist/workflow/bundle-export.js +174 -0
  561. package/dist/workflow/bundle-export.js.map +1 -0
  562. package/dist/workflow/bundle-paths.d.ts +7 -0
  563. package/dist/workflow/bundle-paths.d.ts.map +1 -0
  564. package/dist/workflow/bundle-paths.js +35 -0
  565. package/dist/workflow/bundle-paths.js.map +1 -0
  566. package/dist/workflow/bundle.d.ts +4 -0
  567. package/dist/workflow/bundle.d.ts.map +1 -0
  568. package/dist/workflow/bundle.js +4 -0
  569. package/dist/workflow/bundle.js.map +1 -0
  570. package/dist/workflow/capture.d.ts +36 -0
  571. package/dist/workflow/capture.d.ts.map +1 -0
  572. package/dist/workflow/capture.js +81 -0
  573. package/dist/workflow/capture.js.map +1 -0
  574. package/dist/workflow/continuation-branch.d.ts +15 -0
  575. package/dist/workflow/continuation-branch.d.ts.map +1 -0
  576. package/dist/workflow/continuation-branch.js +103 -0
  577. package/dist/workflow/continuation-branch.js.map +1 -0
  578. package/dist/workflow/continuation-plans.d.ts +38 -0
  579. package/dist/workflow/continuation-plans.d.ts.map +1 -0
  580. package/dist/workflow/continuation-plans.js +78 -0
  581. package/dist/workflow/continuation-plans.js.map +1 -0
  582. package/dist/workflow/continuation.d.ts +25 -0
  583. package/dist/workflow/continuation.d.ts.map +1 -0
  584. package/dist/workflow/continuation.js +89 -0
  585. package/dist/workflow/continuation.js.map +1 -0
  586. package/dist/workflow/layerdoc-reader.d.ts +27 -0
  587. package/dist/workflow/layerdoc-reader.d.ts.map +1 -0
  588. package/dist/workflow/layerdoc-reader.js +81 -0
  589. package/dist/workflow/layerdoc-reader.js.map +1 -0
  590. package/dist/workflow/project-evidence.d.ts +48 -0
  591. package/dist/workflow/project-evidence.d.ts.map +1 -0
  592. package/dist/workflow/project-evidence.js +200 -0
  593. package/dist/workflow/project-evidence.js.map +1 -0
  594. package/dist/workflow/providers.d.ts +35 -0
  595. package/dist/workflow/providers.d.ts.map +1 -0
  596. package/dist/workflow/providers.js +110 -0
  597. package/dist/workflow/providers.js.map +1 -0
  598. package/dist/workflow/recipes-layerdoc-validation.d.ts +4 -0
  599. package/dist/workflow/recipes-layerdoc-validation.d.ts.map +1 -0
  600. package/dist/workflow/recipes-layerdoc-validation.js +98 -0
  601. package/dist/workflow/recipes-layerdoc-validation.js.map +1 -0
  602. package/dist/workflow/recipes-result-validation.d.ts +6 -0
  603. package/dist/workflow/recipes-result-validation.d.ts.map +1 -0
  604. package/dist/workflow/recipes-result-validation.js +38 -0
  605. package/dist/workflow/recipes-result-validation.js.map +1 -0
  606. package/dist/workflow/recipes-schemas.d.ts +7 -0
  607. package/dist/workflow/recipes-schemas.d.ts.map +1 -0
  608. package/dist/workflow/recipes-schemas.js +67 -0
  609. package/dist/workflow/recipes-schemas.js.map +1 -0
  610. package/dist/workflow/recipes-validation.d.ts +14 -0
  611. package/dist/workflow/recipes-validation.d.ts.map +1 -0
  612. package/dist/workflow/recipes-validation.js +68 -0
  613. package/dist/workflow/recipes-validation.js.map +1 -0
  614. package/dist/workflow/recipes.d.ts +20 -0
  615. package/dist/workflow/recipes.d.ts.map +1 -0
  616. package/dist/workflow/recipes.js +167 -0
  617. package/dist/workflow/recipes.js.map +1 -0
  618. package/dist/workflow/routing.d.ts +4 -0
  619. package/dist/workflow/routing.d.ts.map +1 -0
  620. package/dist/workflow/routing.js +28 -0
  621. package/dist/workflow/routing.js.map +1 -0
  622. package/dist/workflow/schema.d.ts +5 -0
  623. package/dist/workflow/schema.d.ts.map +1 -0
  624. package/dist/workflow/schema.js +29 -0
  625. package/dist/workflow/schema.js.map +1 -0
  626. package/dist/workflow/service.d.ts +59 -0
  627. package/dist/workflow/service.d.ts.map +1 -0
  628. package/dist/workflow/service.js +170 -0
  629. package/dist/workflow/service.js.map +1 -0
  630. package/dist/workflow/store-json.d.ts +5 -0
  631. package/dist/workflow/store-json.d.ts.map +1 -0
  632. package/dist/workflow/store-json.js +35 -0
  633. package/dist/workflow/store-json.js.map +1 -0
  634. package/dist/workflow/store-lock.d.ts +3 -0
  635. package/dist/workflow/store-lock.d.ts.map +1 -0
  636. package/dist/workflow/store-lock.js +85 -0
  637. package/dist/workflow/store-lock.js.map +1 -0
  638. package/dist/workflow/store-paths.d.ts +17 -0
  639. package/dist/workflow/store-paths.d.ts.map +1 -0
  640. package/dist/workflow/store-paths.js +67 -0
  641. package/dist/workflow/store-paths.js.map +1 -0
  642. package/dist/workflow/store-validation.d.ts +7 -0
  643. package/dist/workflow/store-validation.d.ts.map +1 -0
  644. package/dist/workflow/store-validation.js +119 -0
  645. package/dist/workflow/store-validation.js.map +1 -0
  646. package/dist/workflow/store.d.ts +10 -0
  647. package/dist/workflow/store.d.ts.map +1 -0
  648. package/dist/workflow/store.js +193 -0
  649. package/dist/workflow/store.js.map +1 -0
  650. package/dist/workflow/types.d.ts +120 -0
  651. package/dist/workflow/types.d.ts.map +1 -0
  652. package/dist/workflow/types.js +15 -0
  653. package/dist/workflow/types.js.map +1 -0
  654. package/dist/workflow-transport.d.ts +28 -0
  655. package/dist/workflow-transport.d.ts.map +1 -0
  656. package/dist/workflow-transport.js +184 -0
  657. package/dist/workflow-transport.js.map +1 -0
  658. package/open-design.json +2 -2
  659. package/package.json +4 -1
  660. package/prototype-kit/tests/rules-check.mjs +9 -0
  661. package/runtime/codex-conversion/src/images/native-invoke.mjs +1 -1
  662. package/runtime/codex-conversion/src/images/native.mjs +8 -4
  663. package/runtime/layerdoc-validator.mjs +1860 -0
  664. package/scene-kit/starter/camera.js +10 -0
  665. package/scene-kit/starter/gobo.js +60 -0
  666. package/scene-kit/starter/index.html +23 -0
  667. package/scene-kit/starter/lib.js +84 -0
  668. package/scene-kit/starter/main.js +78 -0
  669. package/scene-kit/starter/scene.js +33 -0
  670. package/scene-kit/vendor/LICENSE +21 -0
  671. package/scene-kit/vendor/addons/geometries/RoundedBoxGeometry.js +216 -0
  672. package/scene-kit/vendor/addons/renderers/CSS3DRenderer.js +454 -0
  673. package/scene-kit/vendor/three.core.js +60586 -0
  674. package/scene-kit/vendor/three.module.js +19719 -0
  675. package/skills/12ui-design/SKILL.md +21 -61
  676. package/skills/12ui-design/improve.md +5 -1
  677. package/skills/12ui-design/inspire.md +8 -5
  678. package/skills/12ui-design/outputs.md +23 -2
  679. package/skills/12ui-design/scene.md +172 -0
  680. package/skills/12ui-design/session.md +161 -0
package/README.md CHANGED
@@ -18,8 +18,9 @@ curl -fsSL https://12ui.com/install.sh | sh
18
18
 
19
19
  Both paths pin the exact CLI version, install `12ui-design` into every detected
20
20
  Codex, Claude Code, Grok CLI, Cursor CLI, Antigravity, and GitHub Copilot CLI
21
- installation without requiring an API account. Run `12ui auth login` when
22
- you need hosted features. Explicit authentication setup creates a user-owned credential with
21
+ installation without requiring an API account. Ordinary corpus search and downloads
22
+ also work without an account. Run `12ui auth login` for authenticated hosted
23
+ generation or explicit hedge search. Explicit authentication setup creates a user-owned credential with
23
24
  `design.convert` and `design.corpus.retrieve`, is verified before use, and is
24
25
  stored mode-0600 at `$XDG_CONFIG_HOME/12ui/credentials.json` or
25
26
  `~/.config/12ui/credentials.json`. When those private roots are unusable and
@@ -78,37 +79,130 @@ unless `--force` is explicit.
78
79
  ## One visual interface skill
79
80
 
80
81
  `12ui-design` is the single design entrypoint. Every client receives the same
81
- `skills/12ui-design` bytes. The CLI owns local and hosted engine selection.
82
-
83
- The shared skill uses the 12ui API for corpus references, draft candidates, and
84
- branch image generation, then uses the same CLI for execution:
82
+ `skills/12ui-design` bytes. New work inside a capable coding session uses the
83
+ persistent local workflow: prepare a request, claim its execution, use the
84
+ session's native tools, register the actual result, then continue from those
85
+ saved artifacts. The local CLI and MCP share the same operation service.
85
86
 
86
87
  ```sh
87
- 12ui capabilities
88
- 12ui convert approved.png --output html --engine codex --out-dir ./design-run
89
- 12ui improve http://localhost:3000 --target approved.png --repo . --apply
90
- 12ui export ./design-run --output react --out-dir ./react-page
91
- 12ui next ./design-run
92
- 12ui resume ./design-run
88
+ 12ui workflow import /absolute/path/reference.png --workspace ./design-work --role reference
89
+ 12ui workflow prepare ./request.json --workspace ./design-work --key homepage-direction-a
90
+ 12ui workflow execute <operation-id> --workspace ./design-work --providers session --session-capabilities image
91
+ 12ui workflow register <operation-id> --workspace ./design-work --attempt <handoff-attempt-number> --result ./result.json
92
+ 12ui workflow status <operation-id> --workspace ./design-work
93
93
  ```
94
94
 
95
- `convert --engine auto|codex|api` defaults to auto. Before a new local run, image
96
- execution defaults to external when `OPENAI_API_KEY` is available, otherwise native
97
- through Codex account access. Explicit `--image-backend` choices and saved runs
98
- keep their backend; external requires the separate key before inference starts.
99
- Native does not imply zero cost or a known image model.
100
- The CLI owns runtime setup; the skill contains workflow guidance.
101
-
102
- `improve --apply` captures the URL and edits the actual repository. Without a
103
- target it drafts candidates, stops for an explicit choice, then applies that
104
- choice locally. Without `--apply`, the existing hosted implementation-kit behavior
95
+ The import source is absolute in this example. Relative imported file paths are
96
+ resolved inside the workspace: `./reference.png` would mean
97
+ `./design-work/reference.png`. Request/result JSON command arguments are read
98
+ relative to the shell's current directory; file paths inside those results and
99
+ recipe image paths are workspace-relative unless absolute.
100
+
101
+ `request.json` names a capability, prompt, imported input artifacts and output
102
+ contract. The execute result is a handoff when the session is selected; it is not
103
+ a generated image. Run the native tool once and register its real files or JSON
104
+ value. Preparation, imports and registration do not need a 12ui account. Read
105
+ [the session reference](skills/12ui-design/session.md) for the complete contract,
106
+ provider policy, MCP equivalents and interruption behavior.
107
+
108
+ The skill's `scene.md` guide rebuilds a design image as a live Three.js scene
109
+ with the local `12ui scene` tools (`12ui scene --help`): camera solve, placement,
110
+ a starter harness with a bundled three.js, capture with the managed Chromium,
111
+ and review sheets. It needs no account and makes no network request.
112
+
113
+ The explicitly selected legacy `improve --apply` route captures the URL and
114
+ edits the actual repository. Without a target it drafts candidates, stops for
115
+ an explicit choice, then applies that choice locally. Without `--apply`, the existing hosted implementation-kit behavior
105
116
  remains. Inspect the real application after editing.
106
117
 
107
- Local HTML does not produce LayerDoc. Native design formats and complete hosted
108
- branch prototype assembly remain explicit API workflows. Local React export is
109
- whole-page JSX, not a functional application. A local failure never silently
110
- purchases a hosted conversion. These commands describe the unpublished candidate;
111
- check installed capabilities rather than assuming the public latest includes them.
118
+ Provider routing considers the declared host session first, then eligible Codex
119
+ and Claude subscription CLI capabilities, then explicitly authorized OpenAI API
120
+ and 12ui providers. Codex text/code subprocess execution requires
121
+ `--trust-codex-config`: explicit trust in the existing user's CLI configuration,
122
+ including tools and hooks beyond the command sandbox. This does not authorize
123
+ paid fallback and does not apply to the current session's tools. Claude requires
124
+ supported safe mode, edits code with a fixed file-tool set without shell tests,
125
+ and currently cannot attach images to text requests. Run checks in the parent
126
+ session. Image capability is never inferred from a text CLI's presence.
127
+ Session capabilities must be explicitly
128
+ declared from available tools. Key presence alone does not authorize paid work;
129
+ `--allow-paid` is required for a funded route. An ambiguous dispatched operation
130
+ requires reconciliation and cannot silently replay on another provider.
131
+ An accepted job with a failed download, or a completed response with malformed
132
+ output, stays in reconciliation under the same operation and attempt. Recover
133
+ and register the original output and dependencies; do not regenerate it.
134
+ Refusals and permission denials remain terminal stops.
135
+
136
+ OpenAI requires an explicit model through request `parameters.model`,
137
+ `OPENAI_MODEL` for text/generated HTML, or `OPENAI_IMAGE_MODEL` for images.
138
+ `OPENAI_API_KEY` and `TWELVE_UI_API_KEY` make separately funded routes discoverable;
139
+ they never belong in request or result JSON. Native execution removes provider-key
140
+ overrides from the child environment and uses the user's normal CLI configuration.
141
+
142
+ The recipes `draft`, `branch`, `edit`, `redesign`, `labels`, `review`, `convert` and
143
+ `implement` build requests for this shared ledger. They do not imply that every
144
+ legacy hosted pipeline or native design export has a local implementation.
145
+ After registering a recipe plan, `12ui workflow continue <operation-id> --workspace <directory>`
146
+ prepares eligible child operations without inference; execute each
147
+ returned ready ID explicitly, then continue the same plan to unlock dependencies.
148
+ `workflow fail` records actual refusal, no-output or ambiguous-outcome evidence;
149
+ it does not turn an uncertain dispatch into permission for another call.
150
+ Both registration and failure must name the handoff's attempt number so delayed
151
+ results cannot settle a later attempt.
152
+ For project implementation, the service captures a baseline before execution.
153
+ Register the normal report and any real additional receipts; registration derives
154
+ verified changed-file artifacts and project evidence from the actual selected
155
+ project. A provider receipt or claimed no-op cannot complete implementation:
156
+ no changed files produces `project_no_changes`. File changes and caller-reported
157
+ browser/test evidence remain separate facts.
158
+ The ledger records returned artifacts; independent browser/image inspection
159
+ still establishes fidelity, ownership and behavior. Local execution consumes
160
+ user model allowance or authorized API budget and local hardware, rather than
161
+ making model execution free.
162
+
163
+ `workflow capture <http-or-https-url> --workspace <directory>` uses local Chromium
164
+ and a fresh unauthenticated browser to retain screenshot, DOM and redirect evidence.
165
+ Capture an authenticated screen with the session browser and import it instead.
166
+ `workflow review <spec.json> --workspace <directory> --key <key>` prepares an
167
+ image-grounded review; it does not validate runtime behavior or trigger repairs.
168
+ `workflow export <operation-id> --workspace <directory> --destination <new-directory>`
169
+ materializes completed outputs without inference or overwriting differing files.
170
+ Register HTML plus all its assets with logical `relativePath` mappings, or use the
171
+ SDK's `collectBundleFiles` on an isolated generated-output directory, so references
172
+ survive custody and export. This does not package an existing project from receipts.
173
+
174
+ `12ui workflow layerdoc <operation-id> --workspace <directory>` reads a completed
175
+ native conversion without a hosted request. The SDK exposes
176
+ `loadWorkflowLayerDoc({workspace, operationId})` and
177
+ `loadLayerDocBundle({directory})` for a relocated export. Both return canonical
178
+ `document`, absolute document/manifest paths and an `assets` map from artifact ID
179
+ to verified local path, relative path, SHA-256 and media type; raster dimensions
180
+ are checked against the document.
181
+
182
+ Native registration requires `document.layerdoc.json`, `layerdoc-assets.json`
183
+ and mapped raster files. The canonical document has role `layerdoc`; the sidecar
184
+ has role `layerdoc-assets` and schema `12ui.layerdoc-assets.v1`, with
185
+ `assets: {artifactId: {path, sha256, mediaType}}`. Every file needs its portable
186
+ `relativePath`; referenced rasters use role `asset`. This local reader does not
187
+ provide an offline editor. Standard hosted `12ui convert <layerdoc.json>` does
188
+ not read the sidecar: it requires hydrated HTTP asset references. Uploading and
189
+ hydrating local assets remains a separate API integration.
190
+
191
+ ### Existing conversion and hosted commands
192
+
193
+ The following APIs and legacy CLI commands remain available when explicitly
194
+ selected. They have their own saved-run formats; their automatic engine/backend
195
+ rules are separate from the new workflow provider policy. `convert --engine auto`
196
+ can select hosted API before dispatch when local Codex is unavailable. Existing
197
+ local conversion selects external images when `OPENAI_API_KEY` is set and native
198
+ Codex images otherwise. Use an explicit engine/backend when that legacy boundary
199
+ is intended; a key is not authorization to choose it on the user's behalf.
200
+
201
+ Local HTML does not produce LayerDoc. Native design formats and hosted branch
202
+ assembly remain dedicated conversion workflows. React export is whole-page JSX,
203
+ not a functional application. Preserve existing legacy run directories and their
204
+ recorded engine for recovery; importing an output into a workflow workspace does
205
+ not migrate an in-flight legacy dispatch.
112
206
 
113
207
  The four stage skills that used to carry these sections separately —
114
208
  `design-search`, `design-draft`, `design-branch`, and `design-convert` — were
@@ -116,7 +210,7 @@ retired on 2026-08-16 after a trial measured them buying no routing precision
116
210
  over the one broadened description. `skill install` removes any copy still
117
211
  present in an agent home.
118
212
 
119
- Corpus-conditioned image generation explores visual directions. The selected
213
+ For an explicitly authorized legacy hosted run, corpus-conditioned image generation explores visual directions. The selected
120
214
  image then guides editable implementation, with browser inspection against the
121
215
  approved target and focused correction of observed mismatches.
122
216
 
@@ -165,9 +259,9 @@ failed slots are never posted again. `12ui next <run-dir> --wait` repairs only
165
259
  never-started slots, then polls and downloads. Successful PNGs are digest-checked and written atomically under
166
260
  `<run-dir>/candidates/`, with terminal evidence in `draft.complete.json`.
167
261
 
168
- The retired local `image` commands and provider preflight are not part of the
169
- CLI. Draft never inspects Codex authentication, `OPENAI_API_KEY`, project
170
- `.env` files, or any other caller-side image-provider credential.
262
+ The legacy `draft` command never inspects Codex authentication, `OPENAI_API_KEY`,
263
+ project `.env` files, or another caller-side image-provider credential. This
264
+ boundary describes legacy hosted draft, not the new `workflow draft` recipe.
171
265
 
172
266
  `convert <conversion-id>` downloads one successful base LayerDoc once and
173
267
  dispatches the chosen formats concurrently. It creates the destination
@@ -180,16 +274,17 @@ journal/receipt contracts.
180
274
 
181
275
  ## Design Corpus inspiration
182
276
 
183
- `TwelveUiCorpusClient` uses an API key with the `design.corpus.retrieve` scope.
184
- The API-key scope name is retained for compatibility even though `/inspire` is
185
- the single SDK query surface.
277
+ `TwelveUiCorpusClient` supports public status, inspiration and logo searches,
278
+ reference metadata, and image downloads without a 12ui account or credits.
279
+ Retrieval is free for authenticated callers too; abuse and service-budget limits
280
+ still apply. Supplied credentials retain the `design.corpus.retrieve` scope and
281
+ are never silently discarded after an authentication failure.
186
282
 
187
283
  ```ts
188
284
  import { TwelveUiCorpusClient } from '@12ui/design';
189
285
 
190
286
  const corpus = new TwelveUiCorpusClient({
191
287
  origin: process.env.TWELVE_UI_ORIGIN ?? 'https://12ui.com',
192
- apiKey: process.env.TWELVE_UI_API_KEY!,
193
288
  });
194
289
 
195
290
  const status = await corpus.status();
@@ -206,12 +301,12 @@ const metadata = await corpus.reference(first.id);
206
301
  const image = await corpus.download(first.id, 'ref-hd');
207
302
  ```
208
303
 
209
- Every paid inspiration request requires a stable idempotency key. See
304
+ Every inspiration request requires a stable idempotency key. See
210
305
  [`docs/corpus-v1.openapi.yaml`](https://github.com/just-every/12ui-plugin/blob/main/docs/corpus-v1.openapi.yaml).
211
306
  `download` accepts `thumb`, `thumb-hd`, `ref`, and `ref-hd`; the legacy
212
307
  `thumb`/`ref` sizes remain supported.
213
308
 
214
- For agent workflows that need four fresh, budget-metered inspiration images,
309
+ For agent workflows that need four reference images,
215
310
  the CLI calls `/api/v1/corpus/inspire`, downloads the full reference images in
216
311
  parallel, verifies each WebP, and writes a content-hashed manifest:
217
312
 
@@ -223,12 +318,15 @@ node "$TWELVE_UI_REPO/packages/12ui/dist/cli.js" corpus inspire \
223
318
  --out-dir ./references
224
319
  ```
225
320
 
226
- `hedge` is the CLI default: it spreads the first references across distinct
227
- directions while holding the query, and its returned order is authoritative.
228
- `direct` stays close to the literal query, `balanced` weighs relevance,
321
+ `balanced` is the standalone CLI, SDK and MCP default, with or without
322
+ credentials. `direct` stays close to the literal query, `balanced` weighs relevance,
229
323
  quality, and variety evenly, and `adventurer` follows the query's most
230
324
  distinctive directions toward less expected references. The modes are locked
231
- server-side; callers cannot tune their internal ranking weights.
325
+ server-side; callers cannot tune their internal ranking weights. Anonymous
326
+ requests accept up to 24 references and an 8 KB query. Explicit hedge requires
327
+ an account for hosted planning; it remains free to the customer but incurs
328
+ service model costs. For account-free planning, develop directions locally and
329
+ retrieve them through balanced, direct or adventurer.
232
330
 
233
331
  For a redesign, add `--reference-image <png|jpeg|webp>`. The CLI hashes the
234
332
  private source into stable idempotency and local evidence, while Design Corpus
@@ -242,7 +340,7 @@ successful run also contains `manifest.json`, `inspire-evidence.json` with the
242
340
  exact upstream response, four numbered reference files, and a durable digest
243
341
  receipt for each image under `.reference-receipts/`. If the HTTP result is
244
342
  ambiguous or one or more image downloads fail, finish the same allocation
245
- without a second paid embedding:
343
+ while preserving its retrieval identity:
246
344
 
247
345
  ```bash
248
346
  node "$TWELVE_UI_REPO/packages/12ui/dist/cli.js" corpus resume \
@@ -256,9 +354,12 @@ dispatches a second embedding for that identity. Reusing a key with a different
256
354
  validated request returns `409 idempotency_conflict`. A reference already on
257
355
  disk is accepted only when its bytes match its exclusive digest receipt.
258
356
 
259
- The CLI and SDK deliberately expose only the three locked inspiration modes.
260
- Free-form ranking weights, random seeds, and corpus filters are not part of the
261
- public inspiration contract.
357
+ The three account-free modes are direct, balanced and adventurer; hedge is an
358
+ explicit account-only mode. Public requests do not accept random seeds, browse
359
+ grouping IDs, free-form ranking weights or corpus filters. HTTP 429 responses
360
+ include Retry-After guidance: wait, then resume the same attempt instead of
361
+ starting sign-in or buying credits. `12ui corpus status` reads the release
362
+ contract without starting retrieval.
262
363
 
263
364
  ## Multi-page packages
264
365
 
@@ -345,9 +446,30 @@ ways: pass `--prototype` to `branch execute`, or run `12ui prototype <run-dir>`
345
446
  afterward. The post-export stage splits application states, canonicalizes the
346
447
  shared shell, derives navigation from `branch.plan.json`, preserves real
347
448
  content, and creates holding pages when the plan names a route that was not
348
- exported. It makes one cheap product-provider call per exported screen using
349
- the strict `navigate | dropdown | modal | none` schema; deterministic links,
350
- forms, and plan edges take precedence. The output replaces
449
+ exported. Standalone `12ui prototype <run-dir>` defaults to `--labels none`, using
450
+ deterministic links, forms and plan edges without a 12ui account. Explicitly
451
+ authorized `--labels 12ui` adds one hosted interaction-label call per exported
452
+ screen using the strict `navigate | dropdown | modal | none` schema.
453
+
454
+ `12ui prototype <run-dir> --labels workflow --workspace <directory>` inventories
455
+ the local HTML and prepares stable per-screen label operations, returning
456
+ `awaiting_labels` without inference or hosted authentication. Execute the returned
457
+ prepared IDs through `workflow execute`, register real outputs with the exact
458
+ attempt number, then repeat the same prototype command. Dispatched/reconciling
459
+ IDs need recovery, not execution. Completed results are checked against the exact
460
+ DOM candidates, known destinations and source HTML/plan/completion before build.
461
+ Generic image `workflow labels` annotations cannot be substituted. Duplicate IDs,
462
+ unknown destinations and contradictory action fields are rejected before immutable
463
+ workflow success. Native local pages permit only navigation to real pages or none.
464
+ Legacy branch resume refuses to replace this pause with hosted labeling.
465
+
466
+ The manifest preserves source custody, operation IDs and actual provider/funding/
467
+ usage facts. `labels.costMicros` counts new hosted prototype-label calls only;
468
+ workflow model execution still consumes the chosen plan/API budget. Unchanged
469
+ source/candidate content reuses operation IDs, including after branch/workspace
470
+ relocation. Linked remote assets are not part of this source snapshot.
471
+
472
+ The output replaces
351
473
  `<run-dir>/branch/prototype/` only after exported HTML, a complete or explicitly
352
474
  accepted partial plan, semantic viewport ids, and the hard runtime gates pass.
353
475
  Load/console failures, duplicate ids, broken targets or interactions, malformed
@@ -746,6 +868,11 @@ Progress and preview rules:
746
868
 
747
869
  The server exposes the same durable operations used by the CLI and SDK:
748
870
 
871
+ - `design.workflow.prepare`, `execute`, `register`, `continue`, `fail`, `status`,
872
+ `import`, `capabilities`, `capture`, `export` and `layerdoc` use the persistent local service.
873
+ Preparation accepts either a generic request or a recipe/input pair. Local
874
+ operations do not trigger 12ui onboarding; paid execution needs explicit policy.
875
+ Session registration and failure include the returned `attemptNumber`.
749
876
  - `design.convert` creates a conversion, waits for it, and materializes the
750
877
  result and verified artifact manifest. Pass `imagePath` for PNG/JPEG/WebP or
751
878
  `layerdocPath` for public LayerDoc v2 JSON. Pass the exact `profile` for
@@ -753,17 +880,83 @@ The server exposes the same durable operations used by the CLI and SDK:
753
880
  - `design.convert.status` reads an existing conversion's durable progress,
754
881
  previews, terminal result, or error without creating or retrying work.
755
882
  - `design.corpus.status` reads corpus release/idempotency capability without
756
- running retrieval.
757
- - `design.corpus.inspire` runs one metered corpus retrieval and materializes its
758
- attempt evidence, manifest, and images in a new `outDir`. A caller must get
759
- user authorization before invoking it. `design.corpus.resume` continues an
760
- incomplete attempt with its recorded key instead of buying replacement work.
883
+ authentication or running retrieval.
884
+ - `design.corpus.inspire` runs free corpus retrieval and materializes its attempt
885
+ evidence, manifest, and images in a new `outDir`. Balanced is the default;
886
+ anonymous requests accept up to 24 references. Explicit hedge requires an
887
+ account. `design.corpus.resume` continues an incomplete attempt with its
888
+ recorded key. These tools never trigger automatic onboarding.
761
889
  - `design.draft.status` and `design.branch.status` read durable workflow state.
762
890
  Branch status attempts a live refresh by default, then falls back to the
763
891
  local snapshot if the service is unavailable.
764
892
 
765
- `design.convert` and `design.corpus.inspire` are the only MCP tools above that
766
- create metered work. Set an `idempotencyKey` for any ambiguous conversion
893
+ The server also starts without 12ui credentials: the local workflow tools, the corpus tools and
894
+ the design workspace tools below that only read and record work need none, and the hosted tools
895
+ ask to sign in when called.
896
+
897
+ The Design workspace (`ui://12ui/slate.html`) grows from one finished draft run into rounds of
898
+ options, edits with lineage, inspiration, and a selection of any version. Nothing in it costs
899
+ money and nothing in it shows a price: it draws with your own Codex on this Mac (your ChatGPT
900
+ plan, never an API key) and searches the free reference corpus. Twelve tools:
901
+
902
+ - `design.slate.show` renders the workspace in hosts that render an interactive card, such as
903
+ Codex desktop, and returns the options, versions, file paths and the continuation command as
904
+ text elsewhere. `design.slate.data` returns the same facts without a card, so an agent can
905
+ confirm a selection or a hand-off (`pick.versionId`, `pick.sha256`, and the file at
906
+ `pick.imagePath`, a durable copy that survives the OS sweeping the temp folder; `pick.imagePath`
907
+ is null, with `pick.fileState` `missing` or `changed` and `pick.intact` false, when that copy is
908
+ gone or no longer matches, and no file that is not there is ever named); `design.slate.open` is
909
+ the sidebar entry for the most recent active workspace. These three are model-visible and never
910
+ start work. `show` and `open` are titled "Design workspace".
911
+ - App-only tools, which the host hides from the model: `design.slate.image` and
912
+ `design.slate.reference` (pictures for the card, the second from the free corpus and cached in
913
+ the workspace), `design.slate.inspire` (a free balanced-mode reference search, at most 24
914
+ results, no account; an identical search is answered from the record) and
915
+ `design.slate.inspiration` (the selected references, at most eight, that condition the next
916
+ Design round), `design.slate.pick` (Select, with an optional reason, and a durable copy of the
917
+ image), `design.slate.handoff` (records a Branch or Convert request) and `design.slate.status`
918
+ (a free read of the workspace, its runners' liveness, and whether this Mac can draw images).
919
+ - `design.slate.run` and `design.slate.resume` are the only tools that start work, and only from
920
+ a click in the screen. Design (new options, or more like the shown version) and Edit (an
921
+ instruction plus an optional scribble, sent as the version and an annotated copy of it) write
922
+ an approval record outside the run directory, spawn a detached `12ui slate-runner` process, and
923
+ return at once. The runner owns the work to a terminal state, so it does not depend on how long
924
+ the host keeps this server alive: it runs `codex exec`'s native image call, one call per option,
925
+ in an isolated Codex home that links only your `auth.json`. Every call has a stable id
926
+ (`slate-<opId>-<slot>`), so Resume replays the same work and never draws a finished option twice.
927
+ When Codex is not ready on this Mac (no CLI, no ChatGPT login, no image model) the dialogs say why
928
+ and stay disabled; the workspace never buys an alternative. Set `TWELVE_UI_CODEX_BIN` to choose
929
+ the Codex executable.
930
+
931
+ A hand-off records the request durably (Branch: your words, verbatim; Convert: the format and its
932
+ options) with a verified copy of the image, and sends the agent a short message. The agent reads
933
+ the record with `design.slate.data`, carries it out through the free local routes, and asks you
934
+ before anything that uses your 12ui credits (a conversion to LayerDoc, fixed HTML, SVG, PDF, PSD and
935
+ the other service formats is always that). `12ui slate-runner` is an internal command and is not
936
+ a public surface.
937
+
938
+ **Without the MCP tools: the workspace as a web page.** Where the `design.slate.*` tools are not
939
+ available (Claude Code without the plugin, Codex without the plugin, any agent with a shell),
940
+ `12ui workspace open [<run-dir>] [--latest] [--wait] [--port <n>] [--no-open]` serves the same
941
+ workspace (the same screen, built with target `browser`) on `127.0.0.1` only, behind a random
942
+ token in the address it prints as one JSON line (`{"workspace":"ready","url":...}`), and opens the
943
+ system browser unless `--no-open` (`BROWSER` names another program). A small host shim in the page stands in for the MCP Apps host:
944
+ the screen's tool calls go to the same handlers `12ui mcp` uses, confined to that one run, and
945
+ Design and Edit run on this Mac through the same detached runner and local Codex, with no agent
946
+ needed to generate. With `--wait` the command blocks until the user Selects, or sends a Branch or
947
+ Convert request, then prints one JSON line (`decision`, `runDir`, `pick`, `handoff`, `messages`,
948
+ `text` and `view`, the facts `design.slate.data` returns) and exits 0; without it, it serves until
949
+ interrupted and prints one such line per decision. The 12ui-design skill sends an agent here
950
+ when `design.slate.*` is unavailable. Under `codex exec`'s sandbox, `read-only` and `workspace-write`
951
+ refuse the server's port (`listen EPERM: operation not permitted 127.0.0.1`); `workspace-write` with
952
+ network access (`-c sandbox_workspace_write.network_access=true`) and the 12ui state folder added
953
+ (`--add-dir ~/.local/share/12ui`, which the workspace writes to) runs everything, Design and Edit
954
+ included; full access needs none of it.
955
+
956
+ Among these tools, only legacy `design.convert` creates metered work; corpus retrieval, including the
957
+ workspace's own search, is free and subject to abuse limits.
958
+ `design.workflow.execute` can use a funded provider only with its explicit authorization policy.
959
+ Set an `idempotencyKey` for any ambiguous conversion
767
960
  create that may need to be repeated; otherwise the conversion client generates
768
961
  a new UUID. Corpus retrieval always persists its key before the request.
769
962
 
package/SKILL.md CHANGED
@@ -7,36 +7,31 @@ description: "Runs the complete 12UI visual-interface workflow inside Open
7
7
 
8
8
  # 12UI for Open Design
9
9
 
10
- `skills/12ui-design/SKILL.md` is the whole contract: it covers reference search,
11
- hosted candidate generation, branching an approved direction across a page,
12
- site, or multi-state app, and converting a finished image into LayerDoc and
13
- production exports. The four stage skills it replaced were retired on
14
- 2026-08-16.
15
-
16
- For a normal interface request, follow `skills/12ui-design/SKILL.md` end to end:
17
- create four corpus-conditioned candidates, present their actual images through
18
- Open Design's `twelve-ui-direction` choice surface, record the selected slot and
19
- rationale in the Open Design choice, then convert or branch exactly that image.
20
- Do not substitute Open Design's generic direction cards for the generated 12UI
21
- candidates.
22
-
23
- Before the first command that can consume 12UI quota, request the declared
24
- `twelve-ui-spend-approval` confirmation surface with a concise description of
25
- the work being authorized. An approval applies only to the current run. Do not
26
- dispatch paid work when it is absent, rejected, or times out.
27
-
28
- Use `12ui` when it is available on `PATH`. Otherwise invoke the pinned CLI that
29
- the plugin's `open-design.json` MCP entry uses:
30
-
31
- npx -y @12ui/design@0.2.71 <command> ...
32
-
33
- Run `12ui auth status --json` (or its pinned `npx` equivalent) before the paid
34
- preflight. A desktop user can authenticate with `12ui auth login`; a headless
35
- run supplies `TWELVE_UI_API_KEY`. Never put a credential into project files,
36
- the plugin manifest, command output, or generated artifacts.
37
-
38
- Treat the generated HTML or project export as the implementation, materialize
39
- it in the Open Design project workspace, and publish it as a live artifact for
40
- preview and critique. Preserve the 12UI run directory, chosen-image rationale,
41
- conversion IDs, and export manifests with the project so reruns can resume
42
- settled work instead of buying it again.
10
+ Follow `skills/12ui-design/SKILL.md` and its `session.md` reference. They carry the
11
+ same persistent local workflow used by the other clients: prepare an operation,
12
+ execute through an available session capability, register actual output, then
13
+ continue from saved artifacts. Keep the workspace, operation IDs, selected-image
14
+ rationale and result manifests with the project.
15
+
16
+ Explore useful distinct directions and show their actual images through Open
17
+ Design's `twelve-ui-direction` choice surface when the user needs to choose.
18
+ Record the selected artifact and rationale, then implement or branch that image.
19
+ Do not substitute generic direction cards for requested design imagery.
20
+
21
+ Preparation and local registration do not require 12ui authentication or spend
22
+ approval. Before dispatching a separately funded 12ui route, use Open Design's
23
+ `twelve-ui-spend-approval` surface for the concrete work unless the current run
24
+ already carries that authorization. Do not infer funding authorization from a
25
+ configured key. An absent, rejected or timed-out approval does not authorize
26
+ paid work. OpenAI API funding also requires the user's explicit authorization.
27
+
28
+ Use `12ui` from PATH. Otherwise use the pinned CLI from `open-design.json`:
29
+
30
+ npx -y @12ui/design@0.2.73 <command> ...
31
+
32
+ A session handoff is a claim awaiting the native tool result, not completion.
33
+ Do not repeat an uncertain dispatch or switch providers to work around it.
34
+ Register the actual output and inspect the saved status. Use the returned code
35
+ and assets in the project, then verify the real browser before publishing a
36
+ preview under the user's existing authorization. Never put credentials into
37
+ project files, plugin manifests, tool output or generated artifacts.
@@ -1 +1 @@
1
- {"version":3,"file":"cli-arguments.d.ts","sourceRoot":"","sources":["../src/cli-arguments.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;AAKhE,eAAO,MAAM,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAsBhD,CAAC;AAEH,eAAO,MAAM,iBAAiB,GAC5B,MAAM,MAAM,EAAE,KACb;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,QAAQ,CAAA;CA6BtC,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,OAAO,QAAQ,EAAE,MAAM,MAAM,KAAG,MAAM,GAAG,SAGnE,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,WAAW,GAAI,OAAO,QAAQ,EAAE,MAAM,MAAM,KAAG,MAAM,EAGjE,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,OAAO,QAAQ,EAAE,MAAM,MAAM,KAAG,OAA+B,CAAC"}
1
+ {"version":3,"file":"cli-arguments.d.ts","sourceRoot":"","sources":["../src/cli-arguments.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;AAKhE,eAAO,MAAM,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAyBhD,CAAC;AAEH,eAAO,MAAM,iBAAiB,GAC5B,MAAM,MAAM,EAAE,KACb;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,QAAQ,CAAA;CA6BtC,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,OAAO,QAAQ,EAAE,MAAM,MAAM,KAAG,MAAM,GAAG,SAGnE,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,WAAW,GAAI,OAAO,QAAQ,EAAE,MAAM,MAAM,KAAG,MAAM,EAGjE,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,OAAO,QAAQ,EAAE,MAAM,MAAM,KAAG,OAA+B,CAAC"}
@@ -12,6 +12,8 @@ export const CLI_BOOLEAN_FLAGS = new Set([
12
12
  'full-page',
13
13
  'help',
14
14
  'json',
15
+ 'latest',
16
+ 'no-open',
15
17
  'quiet',
16
18
  'prototype',
17
19
  'polish',
@@ -21,6 +23,7 @@ export const CLI_BOOLEAN_FLAGS = new Set([
21
23
  'resume',
22
24
  'skip-auth',
23
25
  'template',
26
+ 'trust-codex-config',
24
27
  'version',
25
28
  'wait',
26
29
  ]);
@@ -1 +1 @@
1
- {"version":3,"file":"cli-arguments.js","sourceRoot":"","sources":["../src/cli-arguments.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli-arguments.js","sourceRoot":"","sources":["../src/cli-arguments.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cli-branch-command.d.ts","sourceRoot":"","sources":["../src/cli-branch-command.ts"],"names":[],"mappings":"AAIA,OAAO,EAA2B,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAK5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAqB,MAAM,oBAAoB,CAAC;AAK7E,OAAO,EAOL,KAAK,gBAAgB,EACtB,MAAM,wBAAwB,CAAC;AAahC,OAAO,EAAE,+BAA+B,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AAM3E,OAAO,EAA8B,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAMzF,eAAO,MAAM,mCAAmC,yBAAyB,CAAC;AAE1E,eAAO,MAAM,4BAA4B,GAAI,WAAW,MAAM,KAAG,MAGhE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,GAAI,QAAQ,MAAM,KAAG,MAAM,GAAG,IAOnE,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAC;IAClB,gEAAgE;IAChE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,sBAAsB,GAAU,MAAM;IACjD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,KAAG,OAAO,CAAC,uBAAuB,CAuBlC,CAAC;AAoGF;uEACuE;AACvE,eAAO,MAAM,sBAAsB,GACjC,YAAY,IAAI,CAAC,gBAAgB,EAAE,OAAO,GAAG,OAAO,CAAC,KACpD,MAAM,EAaN,CAAC;AAEJ,eAAO,MAAM,gBAAgB,GAC3B,QAAQ,MAAM,GAAG,SAAS,EAC1B,OAAO,QAAQ,EACf,eAAc;IACZ,UAAU,CAAC,EAAE,OAAO,oBAAoB,CAAC;IACzC,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,KAAK,oBAAoB,CAAC;IAC/F,mBAAmB,CAAC,EAAE,CACpB,MAAM,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,KAC5C,+BAA+B,CAAC;IACrC,0BAA0B,CAAC,EAAE,CAC3B,MAAM,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,KAC5C,4BAA4B,CAAC;IAClC,YAAY,CAAC,EAAE,OAAO,oBAAoB,CAAC;IAC3C,8CAA8C;IAC9C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iEAAiE;IACjE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qEAAqE;IACrE,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,kDAAkD;IAClD,OAAO,CAAC,EAAE,eAAe,CAAC;CACtB,KACL,OAAO,CAAC,IAAI,CAscd,CAAC"}
1
+ {"version":3,"file":"cli-branch-command.d.ts","sourceRoot":"","sources":["../src/cli-branch-command.ts"],"names":[],"mappings":"AAIA,OAAO,EAA2B,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAK5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAqB,MAAM,oBAAoB,CAAC;AAK7E,OAAO,EAOL,KAAK,gBAAgB,EACtB,MAAM,wBAAwB,CAAC;AAahC,OAAO,EAAE,+BAA+B,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AAM3E,OAAO,EAA8B,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAOzF,eAAO,MAAM,mCAAmC,yBAAyB,CAAC;AAE1E,eAAO,MAAM,4BAA4B,GAAI,WAAW,MAAM,KAAG,MAGhE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,GAAI,QAAQ,MAAM,KAAG,MAAM,GAAG,IAOnE,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAC;IAClB,gEAAgE;IAChE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,sBAAsB,GAAU,MAAM;IACjD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,KAAG,OAAO,CAAC,uBAAuB,CAuBlC,CAAC;AAoGF;uEACuE;AACvE,eAAO,MAAM,sBAAsB,GACjC,YAAY,IAAI,CAAC,gBAAgB,EAAE,OAAO,GAAG,OAAO,CAAC,KACpD,MAAM,EAaN,CAAC;AAEJ,eAAO,MAAM,gBAAgB,GAC3B,QAAQ,MAAM,GAAG,SAAS,EAC1B,OAAO,QAAQ,EACf,eAAc;IACZ,UAAU,CAAC,EAAE,OAAO,oBAAoB,CAAC;IACzC,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,KAAK,oBAAoB,CAAC;IAC/F,mBAAmB,CAAC,EAAE,CACpB,MAAM,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,KAC5C,+BAA+B,CAAC;IACrC,0BAA0B,CAAC,EAAE,CAC3B,MAAM,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,KAC5C,4BAA4B,CAAC;IAClC,YAAY,CAAC,EAAE,OAAO,oBAAoB,CAAC;IAC3C,8CAA8C;IAC9C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iEAAiE;IACjE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qEAAqE;IACrE,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,kDAAkD;IAClD,OAAO,CAAC,EAAE,eAAe,CAAC;CACtB,KACL,OAAO,CAAC,IAAI,CAycd,CAAC"}
@@ -22,6 +22,7 @@ import { TwelveUiConversionPackageClient } from './package-client.js';
22
22
  import { TwelveUiPrototypeLabelClient } from './prototype-label-client.js';
23
23
  import { isPrototypeSkippedResult, runPrototypePoststep, } from './prototype-poststep.js';
24
24
  import { prototypePolishJournalFact } from './prototype-runner.js';
25
+ import { readPrototypeRunRecord } from './prototype-run-record.js';
25
26
  import { isResponsiveConversionQuality, } from './responsive-quality.js';
26
27
  export const BRANCH_CONVERSION_RECEIPT_DIRECTORY = '.conversion-receipts';
27
28
  export const branchConversionReceiptStore = (branchDir) => path.join(path.resolve(branchDir), BRANCH_CONVERSION_RECEIPT_DIRECTORY);
@@ -215,6 +216,9 @@ export const runBranchCommand = async (action, flags, dependencies = {}) => {
215
216
  + ' --scope page|site --out-dir <directory>`.', 'branch_nothing_to_resume');
216
217
  }
217
218
  const prototypeRequested = Boolean(attempt.prototype || booleanFlag(flags, 'prototype'));
219
+ if (prototypeRequested && (await readPrototypeRunRecord(resumeOutDir))?.status === 'awaiting_labels') {
220
+ throw new CliRefusal('Prototype is awaiting local workflow labels. Execute/register its recorded operations and repeat `12ui prototype <run-dir> --labels workflow --workspace <directory>`; branch resume will not buy replacement labels.', 'prototype_workflow_pending');
221
+ }
218
222
  const polishRequested = Boolean(attempt.polish || booleanFlag(flags, 'polish'));
219
223
  if (polishRequested && !prototypeRequested) {
220
224
  throw new CliRefusal('--polish requires --prototype', 'branch_polish_requires_prototype');