@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-slate-command.js","sourceRoot":"","sources":["../src/mcp-slate-command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Image bytes for the workspace, delivered through the app-only image tool: the
3
+ * sandboxed app frame cannot read local files, and a thumbnail keeps a grid of
4
+ * 1.4 MB PNGs from crossing the bridge as base64. No tool result may exceed
5
+ * 5.5 MB raw: the host closes the transport on a line over 8 MiB, which would
6
+ * kill every in-flight call.
7
+ */
8
+ export declare const SLATE_THUMB_WIDTH = 480;
9
+ export declare const SLATE_IMAGE_MAX_BYTES = 5500000;
10
+ export type SlateImageSize = 'thumb' | 'full';
11
+ export type SlateImage = {
12
+ bytes: Buffer;
13
+ width: number;
14
+ height: number;
15
+ mimeType: 'image/jpeg' | 'image/png';
16
+ };
17
+ export declare const isSlateImageSize: (value: unknown) => value is SlateImageSize;
18
+ export declare const slateImage: (source: Buffer, size: SlateImageSize, dimensions: {
19
+ width: number;
20
+ height: number;
21
+ }) => Promise<SlateImage>;
22
+ //# sourceMappingURL=mcp-slate-image.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-slate-image.d.ts","sourceRoot":"","sources":["../src/mcp-slate-image.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AAEH,eAAO,MAAM,iBAAiB,MAAM,CAAC;AACrC,eAAO,MAAM,qBAAqB,UAAY,CAAC;AAG/C,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,MAAM,CAAC;AAE9C,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,YAAY,GAAG,WAAW,CAAC;CACtC,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,cAE1D,CAAC;AAEF,eAAO,MAAM,UAAU,GACrB,QAAQ,MAAM,EACd,MAAM,cAAc,EACpB,YAAY;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,KAC5C,OAAO,CAAC,UAAU,CAapB,CAAC"}
@@ -0,0 +1,28 @@
1
+ import sharp from 'sharp';
2
+ import { SlateError } from './slate-errors.js';
3
+ /**
4
+ * Image bytes for the workspace, delivered through the app-only image tool: the
5
+ * sandboxed app frame cannot read local files, and a thumbnail keeps a grid of
6
+ * 1.4 MB PNGs from crossing the bridge as base64. No tool result may exceed
7
+ * 5.5 MB raw: the host closes the transport on a line over 8 MiB, which would
8
+ * kill every in-flight call.
9
+ */
10
+ export const SLATE_THUMB_WIDTH = 480;
11
+ export const SLATE_IMAGE_MAX_BYTES = 5_500_000;
12
+ const THUMB_QUALITY = 82;
13
+ export const isSlateImageSize = (value) => (value === 'thumb' || value === 'full');
14
+ export const slateImage = async (source, size, dimensions) => {
15
+ if (size === 'full') {
16
+ if (source.byteLength > SLATE_IMAGE_MAX_BYTES) {
17
+ throw new SlateError('too_large', `This image is ${source.byteLength} bytes; the workspace shows at most ${SLATE_IMAGE_MAX_BYTES} bytes at full size. Open the file instead.`);
18
+ }
19
+ return { bytes: source, width: dimensions.width, height: dimensions.height, mimeType: 'image/png' };
20
+ }
21
+ const { data, info } = await sharp(source, { animated: false, failOn: 'warning' })
22
+ .resize({ width: SLATE_THUMB_WIDTH, withoutEnlargement: true })
23
+ .flatten({ background: '#ffffff' })
24
+ .jpeg({ quality: THUMB_QUALITY })
25
+ .toBuffer({ resolveWithObject: true });
26
+ return { bytes: data, width: info.width, height: info.height, mimeType: 'image/jpeg' };
27
+ };
28
+ //# sourceMappingURL=mcp-slate-image.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-slate-image.js","sourceRoot":"","sources":["../src/mcp-slate-image.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C;;;;;;GAMG;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AACrC,MAAM,CAAC,MAAM,qBAAqB,GAAG,SAAS,CAAC;AAC/C,MAAM,aAAa,GAAG,EAAE,CAAC;AAWzB,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAc,EAA2B,EAAE,CAAC,CAC3E,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,MAAM,CACtC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAC7B,MAAc,EACd,IAAoB,EACpB,UAA6C,EACxB,EAAE;IACvB,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,IAAI,MAAM,CAAC,UAAU,GAAG,qBAAqB,EAAE,CAAC;YAC9C,MAAM,IAAI,UAAU,CAAC,WAAW,EAAE,iBAAiB,MAAM,CAAC,UAAU,uCAAuC,qBAAqB,6CAA6C,CAAC,CAAC;QACjL,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;IACtG,CAAC;IACD,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;SAC/E,MAAM,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC;SAC9D,OAAO,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;SAClC,IAAI,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;SAChC,QAAQ,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;AACzF,CAAC,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * The most recent ACTIVE workspace: a finished draft run the review command
3
+ * would find (system temp `12ui-*` runs and `./.12ui/*` runs), ordered by the
4
+ * later of when its candidates were written and when its workspace record last
5
+ * changed, so a workspace that added rounds stays "latest". This is what the
6
+ * sidebar entry opens, since it is invoked with no arguments and cannot be
7
+ * told which run the user means.
8
+ */
9
+ export declare const findLatestSlateRunDir: (args?: {
10
+ cwd?: string;
11
+ tempRoot?: string;
12
+ }) => Promise<string | undefined>;
13
+ //# sourceMappingURL=mcp-slate-latest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-slate-latest.d.ts","sourceRoot":"","sources":["../src/mcp-slate-latest.ts"],"names":[],"mappings":"AAOA;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,GAChC,OAAM;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,KAC7C,OAAO,CAAC,MAAM,GAAG,SAAS,CAgB5B,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { stat } from 'node:fs/promises';
2
+ import path from 'node:path';
3
+ import { DRAFT_COMPLETION_FILENAME } from './draft-workspace.js';
4
+ import { discoverReviewModel } from './review-discovery.js';
5
+ import { workspaceFile } from './slate-paths.js';
6
+ /**
7
+ * The most recent ACTIVE workspace: a finished draft run the review command
8
+ * would find (system temp `12ui-*` runs and `./.12ui/*` runs), ordered by the
9
+ * later of when its candidates were written and when its workspace record last
10
+ * changed, so a workspace that added rounds stays "latest". This is what the
11
+ * sidebar entry opens, since it is invoked with no arguments and cannot be
12
+ * told which run the user means.
13
+ */
14
+ export const findLatestSlateRunDir = async (args = {}) => {
15
+ const model = await discoverReviewModel({
16
+ all: true,
17
+ ...(args.cwd ? { cwd: args.cwd } : {}),
18
+ ...(args.tempRoot ? { tempRoot: args.tempRoot } : {}),
19
+ });
20
+ let latest;
21
+ for (const run of model.runs) {
22
+ if (!run.items.some((item) => item.group === 'drafts'))
23
+ continue;
24
+ const completion = await stat(path.join(run.root, DRAFT_COMPLETION_FILENAME)).catch(() => undefined);
25
+ if (!completion?.isFile())
26
+ continue;
27
+ const record = await stat(workspaceFile(run.root)).catch(() => undefined);
28
+ const activeAt = Math.max(completion.mtimeMs, record?.isFile() ? record.mtimeMs : 0);
29
+ if (!latest || activeAt > latest.activeAt)
30
+ latest = { root: run.root, activeAt };
31
+ }
32
+ return latest?.root;
33
+ };
34
+ //# sourceMappingURL=mcp-slate-latest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-slate-latest.js","sourceRoot":"","sources":["../src/mcp-slate-latest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EACxC,OAA4C,EAAE,EACjB,EAAE;IAC/B,MAAM,KAAK,GAAG,MAAM,mBAAmB,CAAC;QACtC,GAAG,EAAE,IAAI;QACT,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtD,CAAC,CAAC;IACH,IAAI,MAAsD,CAAC;IAC3D,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC;YAAE,SAAS;QACjE,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,yBAAyB,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACrG,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE;YAAE,SAAS;QACpC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC1E,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrF,IAAI,CAAC,MAAM,IAAI,QAAQ,GAAG,MAAM,CAAC,QAAQ;YAAE,MAAM,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC;IACnF,CAAC;IACD,OAAO,MAAM,EAAE,IAAI,CAAC;AACtB,CAAC,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Names on the wire for the design workspace, in one place so the tool
3
+ * catalog, the handler, the model-facing text, and the app script cannot drift.
4
+ * The values are the contract's `SLATE_UI_TOOLS`; `mcp-slate-names.test.ts`
5
+ * pins the two lists together.
6
+ */
7
+ export declare const SLATE_SHOW_TOOL: "design.slate.show";
8
+ export declare const SLATE_DATA_TOOL: "design.slate.data";
9
+ export declare const SLATE_OPEN_TOOL: "design.slate.open";
10
+ export declare const SLATE_IMAGE_TOOL: "design.slate.image";
11
+ export declare const SLATE_REFERENCE_TOOL: "design.slate.reference";
12
+ export declare const SLATE_INSPIRE_TOOL: "design.slate.inspire";
13
+ export declare const SLATE_INSPIRATION_TOOL: "design.slate.inspiration";
14
+ export declare const SLATE_PICK_TOOL: "design.slate.pick";
15
+ export declare const SLATE_RUN_TOOL: "design.slate.run";
16
+ export declare const SLATE_RESUME_TOOL: "design.slate.resume";
17
+ export declare const SLATE_STATUS_TOOL: "design.slate.status";
18
+ export declare const SLATE_HANDOFF_TOOL: "design.slate.handoff";
19
+ export declare const SLATE_TOOL_NAMES: readonly ["design.slate.show", "design.slate.data", "design.slate.open", "design.slate.image", "design.slate.reference", "design.slate.inspire", "design.slate.inspiration", "design.slate.pick", "design.slate.run", "design.slate.resume", "design.slate.status", "design.slate.handoff"];
20
+ /** The tools only the app may call: the host hides them from the model. */
21
+ export declare const SLATE_APP_ONLY_TOOL_NAMES: readonly ["design.slate.image", "design.slate.reference", "design.slate.inspire", "design.slate.inspiration", "design.slate.pick", "design.slate.run", "design.slate.resume", "design.slate.status", "design.slate.handoff"];
22
+ export declare const SLATE_RESOURCE_URI = "ui://12ui/slate.html";
23
+ /** MCP Apps: an HTML document rendered by the host in a sandboxed frame. */
24
+ export declare const SLATE_RESOURCE_MIME_TYPE = "text/html;profile=mcp-app";
25
+ //# sourceMappingURL=mcp-slate-names.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-slate-names.d.ts","sourceRoot":"","sources":["../src/mcp-slate-names.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,eAAO,MAAM,eAAe,qBAAsB,CAAC;AACnD,eAAO,MAAM,eAAe,qBAAsB,CAAC;AACnD,eAAO,MAAM,eAAe,qBAAsB,CAAC;AACnD,eAAO,MAAM,gBAAgB,sBAAuB,CAAC;AACrD,eAAO,MAAM,oBAAoB,0BAA2B,CAAC;AAC7D,eAAO,MAAM,kBAAkB,wBAAyB,CAAC;AACzD,eAAO,MAAM,sBAAsB,4BAA6B,CAAC;AACjE,eAAO,MAAM,eAAe,qBAAsB,CAAC;AACnD,eAAO,MAAM,cAAc,oBAAqB,CAAC;AACjD,eAAO,MAAM,iBAAiB,uBAAwB,CAAC;AACvD,eAAO,MAAM,iBAAiB,uBAAwB,CAAC;AACvD,eAAO,MAAM,kBAAkB,wBAAyB,CAAC;AAEzD,eAAO,MAAM,gBAAgB,6RAanB,CAAC;AAEX,2EAA2E;AAC3E,eAAO,MAAM,yBAAyB,8NAU5B,CAAC;AAEX,eAAO,MAAM,kBAAkB,yBAAyB,CAAC;AACzD,4EAA4E;AAC5E,eAAO,MAAM,wBAAwB,8BAA8B,CAAC"}
@@ -0,0 +1,49 @@
1
+ import { SLATE_UI_TOOLS } from './slate-view-contract.js';
2
+ /**
3
+ * Names on the wire for the design workspace, in one place so the tool
4
+ * catalog, the handler, the model-facing text, and the app script cannot drift.
5
+ * The values are the contract's `SLATE_UI_TOOLS`; `mcp-slate-names.test.ts`
6
+ * pins the two lists together.
7
+ */
8
+ export const SLATE_SHOW_TOOL = SLATE_UI_TOOLS.show;
9
+ export const SLATE_DATA_TOOL = SLATE_UI_TOOLS.data;
10
+ export const SLATE_OPEN_TOOL = SLATE_UI_TOOLS.open;
11
+ export const SLATE_IMAGE_TOOL = SLATE_UI_TOOLS.image;
12
+ export const SLATE_REFERENCE_TOOL = SLATE_UI_TOOLS.reference;
13
+ export const SLATE_INSPIRE_TOOL = SLATE_UI_TOOLS.inspire;
14
+ export const SLATE_INSPIRATION_TOOL = SLATE_UI_TOOLS.inspiration;
15
+ export const SLATE_PICK_TOOL = SLATE_UI_TOOLS.pick;
16
+ export const SLATE_RUN_TOOL = SLATE_UI_TOOLS.run;
17
+ export const SLATE_RESUME_TOOL = SLATE_UI_TOOLS.resume;
18
+ export const SLATE_STATUS_TOOL = SLATE_UI_TOOLS.status;
19
+ export const SLATE_HANDOFF_TOOL = SLATE_UI_TOOLS.handoff;
20
+ export const SLATE_TOOL_NAMES = [
21
+ SLATE_SHOW_TOOL,
22
+ SLATE_DATA_TOOL,
23
+ SLATE_OPEN_TOOL,
24
+ SLATE_IMAGE_TOOL,
25
+ SLATE_REFERENCE_TOOL,
26
+ SLATE_INSPIRE_TOOL,
27
+ SLATE_INSPIRATION_TOOL,
28
+ SLATE_PICK_TOOL,
29
+ SLATE_RUN_TOOL,
30
+ SLATE_RESUME_TOOL,
31
+ SLATE_STATUS_TOOL,
32
+ SLATE_HANDOFF_TOOL,
33
+ ];
34
+ /** The tools only the app may call: the host hides them from the model. */
35
+ export const SLATE_APP_ONLY_TOOL_NAMES = [
36
+ SLATE_IMAGE_TOOL,
37
+ SLATE_REFERENCE_TOOL,
38
+ SLATE_INSPIRE_TOOL,
39
+ SLATE_INSPIRATION_TOOL,
40
+ SLATE_PICK_TOOL,
41
+ SLATE_RUN_TOOL,
42
+ SLATE_RESUME_TOOL,
43
+ SLATE_STATUS_TOOL,
44
+ SLATE_HANDOFF_TOOL,
45
+ ];
46
+ export const SLATE_RESOURCE_URI = 'ui://12ui/slate.html';
47
+ /** MCP Apps: an HTML document rendered by the host in a sandboxed frame. */
48
+ export const SLATE_RESOURCE_MIME_TYPE = 'text/html;profile=mcp-app';
49
+ //# sourceMappingURL=mcp-slate-names.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-slate-names.js","sourceRoot":"","sources":["../src/mcp-slate-names.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,cAAc,CAAC,IAAI,CAAC;AACnD,MAAM,CAAC,MAAM,eAAe,GAAG,cAAc,CAAC,IAAI,CAAC;AACnD,MAAM,CAAC,MAAM,eAAe,GAAG,cAAc,CAAC,IAAI,CAAC;AACnD,MAAM,CAAC,MAAM,gBAAgB,GAAG,cAAc,CAAC,KAAK,CAAC;AACrD,MAAM,CAAC,MAAM,oBAAoB,GAAG,cAAc,CAAC,SAAS,CAAC;AAC7D,MAAM,CAAC,MAAM,kBAAkB,GAAG,cAAc,CAAC,OAAO,CAAC;AACzD,MAAM,CAAC,MAAM,sBAAsB,GAAG,cAAc,CAAC,WAAW,CAAC;AACjE,MAAM,CAAC,MAAM,eAAe,GAAG,cAAc,CAAC,IAAI,CAAC;AACnD,MAAM,CAAC,MAAM,cAAc,GAAG,cAAc,CAAC,GAAG,CAAC;AACjD,MAAM,CAAC,MAAM,iBAAiB,GAAG,cAAc,CAAC,MAAM,CAAC;AACvD,MAAM,CAAC,MAAM,iBAAiB,GAAG,cAAc,CAAC,MAAM,CAAC;AACvD,MAAM,CAAC,MAAM,kBAAkB,GAAG,cAAc,CAAC,OAAO,CAAC;AAEzD,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,eAAe;IACf,eAAe;IACf,eAAe;IACf,gBAAgB;IAChB,oBAAoB;IACpB,kBAAkB;IAClB,sBAAsB;IACtB,eAAe;IACf,cAAc;IACd,iBAAiB;IACjB,iBAAiB;IACjB,kBAAkB;CACV,CAAC;AAEX,2EAA2E;AAC3E,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,gBAAgB;IAChB,oBAAoB;IACpB,kBAAkB;IAClB,sBAAsB;IACtB,eAAe;IACf,cAAc;IACd,iBAAiB;IACjB,iBAAiB;IACjB,kBAAkB;CACV,CAAC;AAEX,MAAM,CAAC,MAAM,kBAAkB,GAAG,sBAAsB,CAAC;AACzD,4EAA4E;AAC5E,MAAM,CAAC,MAAM,wBAAwB,GAAG,2BAA2B,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { ReadResourceResult, Resource } from '@modelcontextprotocol/sdk/types.js';
2
+ export declare const SLATE_RESOURCE: Resource;
3
+ export declare const listSlateResources: () => Resource[];
4
+ export declare const readSlateResource: (uri: string) => ReadResourceResult;
5
+ //# sourceMappingURL=mcp-slate-resource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-slate-resource.d.ts","sourceRoot":"","sources":["../src/mcp-slate-resource.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAkBvF,eAAO,MAAM,cAAc,EAAE,QAO5B,CAAC;AAEF,eAAO,MAAM,kBAAkB,QAAO,QAAQ,EAAsB,CAAC;AAErE,eAAO,MAAM,iBAAiB,GAAI,KAAK,MAAM,KAAG,kBAY/C,CAAC"}
@@ -0,0 +1,37 @@
1
+ import { ErrorCode, McpError } from '@modelcontextprotocol/sdk/types.js';
2
+ import { SLATE_RESOURCE_MIME_TYPE, SLATE_RESOURCE_URI } from './mcp-slate-names.js';
3
+ import { SLATE_UI_HTML } from './mcp-slate-ui.js';
4
+ /**
5
+ * The workspace view as an MCP Apps `ui://` resource. `_meta.ui` is the open MCP
6
+ * Apps declaration (a border around the card); `_meta["openai/ui"]` is the
7
+ * Codex/ChatGPT extension that says which display modes the view supports. No
8
+ * `csp` is declared: the view makes no request of its own, so the host's
9
+ * default (nothing external) is exactly right.
10
+ */
11
+ const SLATE_RESOURCE_META = {
12
+ ui: { prefersBorder: true },
13
+ 'openai/ui': { availableDisplayModes: ['inline', 'fullscreen'], preferredDisplayMode: 'inline' },
14
+ };
15
+ export const SLATE_RESOURCE = {
16
+ uri: SLATE_RESOURCE_URI,
17
+ name: '12ui design workspace',
18
+ title: 'Design workspace',
19
+ description: 'Design workspace: the options of a 12ui draft as one large image with the others as thumbnails and Select; opened, rounds of new options, edits with lineage, and Design, Edit, Branch and Convert.',
20
+ mimeType: SLATE_RESOURCE_MIME_TYPE,
21
+ _meta: SLATE_RESOURCE_META,
22
+ };
23
+ export const listSlateResources = () => [SLATE_RESOURCE];
24
+ export const readSlateResource = (uri) => {
25
+ if (uri !== SLATE_RESOURCE_URI) {
26
+ throw new McpError(ErrorCode.InvalidParams, `Unknown resource: ${uri}`);
27
+ }
28
+ return {
29
+ contents: [{
30
+ uri: SLATE_RESOURCE_URI,
31
+ mimeType: SLATE_RESOURCE_MIME_TYPE,
32
+ text: SLATE_UI_HTML,
33
+ _meta: SLATE_RESOURCE_META,
34
+ }],
35
+ };
36
+ };
37
+ //# sourceMappingURL=mcp-slate-resource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-slate-resource.js","sourceRoot":"","sources":["../src/mcp-slate-resource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAGzE,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACpF,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD;;;;;;GAMG;AAEH,MAAM,mBAAmB,GAAG;IAC1B,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE;IAC3B,WAAW,EAAE,EAAE,qBAAqB,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC,EAAE,oBAAoB,EAAE,QAAQ,EAAE;CACjG,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAa;IACtC,GAAG,EAAE,kBAAkB;IACvB,IAAI,EAAE,uBAAuB;IAC7B,KAAK,EAAE,kBAAkB;IACzB,WAAW,EAAE,qMAAqM;IAClN,QAAQ,EAAE,wBAAwB;IAClC,KAAK,EAAE,mBAAmB;CAC3B,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAe,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC;AAErE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAW,EAAsB,EAAE;IACnE,IAAI,GAAG,KAAK,kBAAkB,EAAE,CAAC;QAC/B,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,qBAAqB,GAAG,EAAE,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO;QACL,QAAQ,EAAE,CAAC;gBACT,GAAG,EAAE,kBAAkB;gBACvB,QAAQ,EAAE,wBAAwB;gBAClC,IAAI,EAAE,aAAa;gBACnB,KAAK,EAAE,mBAAmB;aAC3B,CAAC;KACH,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * The finished `12ui draft` run at the root of a design workspace.
3
+ *
4
+ * Every path the workspace touches is derived from a run directory that has
5
+ * been proven to be a run, never from a caller-supplied slot or file name: the
6
+ * slate tools are callable by an app running inside another product's window,
7
+ * so a `runDir` is untrusted input until `resolveSlateRunDir` accepts it.
8
+ */
9
+ export type SlateRootCandidate = {
10
+ /** Lower-case slot letter, as the completion record names it. */
11
+ slot: string;
12
+ /** The A-P file name of `candidates/<localSlot>.png`. */
13
+ localSlot: string;
14
+ /** The completion record's digest of the file, when it recorded one. */
15
+ sha256: string | undefined;
16
+ /** Absolute path inside the run directory (already confined). */
17
+ file: string;
18
+ };
19
+ export type SlateRootRun = {
20
+ runId: string;
21
+ runDir: string;
22
+ candidates: SlateRootCandidate[];
23
+ };
24
+ /**
25
+ * The one door from a caller-supplied path to a run directory.
26
+ *
27
+ * Accepts only a real directory that holds `draft.complete.json` as a regular
28
+ * file inside itself; `/etc`, an arbitrary project folder, and a completion
29
+ * marker that is a symlink out of the directory are all refused before any
30
+ * other file is opened.
31
+ */
32
+ export declare const resolveSlateRunDir: (runDir: unknown) => Promise<string>;
33
+ /**
34
+ * Candidate files are read from `<run>/candidates/<basename>`: the completion
35
+ * record stores the absolute path of the directory the draft was written to,
36
+ * which is a temp path that no longer exists once the run has moved. The file
37
+ * itself is confined here (a link out of the run is refused); whether its
38
+ * bytes still match is a per-version state, not a reason to refuse the run.
39
+ */
40
+ export declare const readSlateRootRun: (runDir: string) => Promise<SlateRootRun>;
41
+ //# sourceMappingURL=mcp-slate-run.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-slate-run.d.ts","sourceRoot":"","sources":["../src/mcp-slate-run.ts"],"names":[],"mappings":"AAWA;;;;;;;GAOG;AAEH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,iEAAiE;IACjE,IAAI,EAAE,MAAM,CAAC;IACb,yDAAyD;IACzD,SAAS,EAAE,MAAM,CAAC;IAClB,wEAAwE;IACxE,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,iEAAiE;IACjE,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,kBAAkB,EAAE,CAAA;CAAE,CAAC;AAM/F;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,GAAU,QAAQ,OAAO,KAAG,OAAO,CAAC,MAAM,CAqBxE,CAAC;AAYF;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,GAAU,QAAQ,MAAM,KAAG,OAAO,CAAC,YAAY,CA8B3E,CAAC"}
@@ -0,0 +1,88 @@
1
+ import { readFile, realpath, stat } from 'node:fs/promises';
2
+ import path from 'node:path';
3
+ import { DRAFT_CANDIDATES_DIRECTORY, DRAFT_COMPLETION_FILENAME, } from './draft-workspace.js';
4
+ import { LOCAL_SLOT_PATTERN } from './slate-ids.js';
5
+ import { inside } from './slate-paths.js';
6
+ const isRecord = (value) => (!!value && typeof value === 'object' && !Array.isArray(value));
7
+ /**
8
+ * The one door from a caller-supplied path to a run directory.
9
+ *
10
+ * Accepts only a real directory that holds `draft.complete.json` as a regular
11
+ * file inside itself; `/etc`, an arbitrary project folder, and a completion
12
+ * marker that is a symlink out of the directory are all refused before any
13
+ * other file is opened.
14
+ */
15
+ export const resolveSlateRunDir = async (runDir) => {
16
+ if (typeof runDir !== 'string' || !runDir.trim())
17
+ throw new Error('runDir is required');
18
+ const requested = path.resolve(runDir.trim());
19
+ let resolved;
20
+ try {
21
+ resolved = await realpath(requested);
22
+ }
23
+ catch {
24
+ throw new Error(`runDir does not exist: ${requested}`);
25
+ }
26
+ if (!(await stat(resolved)).isDirectory())
27
+ throw new Error(`runDir is not a directory: ${requested}`);
28
+ const marker = path.join(resolved, DRAFT_COMPLETION_FILENAME);
29
+ let markerReal;
30
+ try {
31
+ markerReal = await realpath(marker);
32
+ }
33
+ catch {
34
+ throw new Error(`${requested} is not a finished 12ui draft run: it has no ${DRAFT_COMPLETION_FILENAME}`);
35
+ }
36
+ if (!inside(resolved, markerReal) || !(await stat(markerReal)).isFile()) {
37
+ throw new Error(`${requested} is not a finished 12ui draft run: ${DRAFT_COMPLETION_FILENAME} is not a file inside it`);
38
+ }
39
+ return resolved;
40
+ };
41
+ const readCompletion = async (runDir) => {
42
+ const parsed = JSON.parse(await readFile(path.join(runDir, DRAFT_COMPLETION_FILENAME), 'utf8'));
43
+ if (!isRecord(parsed) || typeof parsed.runId !== 'string' || !Array.isArray(parsed.candidates)) {
44
+ throw new Error(`${DRAFT_COMPLETION_FILENAME} in ${runDir} is not a draft completion record`);
45
+ }
46
+ return parsed;
47
+ };
48
+ /**
49
+ * Candidate files are read from `<run>/candidates/<basename>`: the completion
50
+ * record stores the absolute path of the directory the draft was written to,
51
+ * which is a temp path that no longer exists once the run has moved. The file
52
+ * itself is confined here (a link out of the run is refused); whether its
53
+ * bytes still match is a per-version state, not a reason to refuse the run.
54
+ */
55
+ export const readSlateRootRun = async (runDir) => {
56
+ const completion = await readCompletion(runDir);
57
+ const candidatesDir = path.join(runDir, DRAFT_CANDIDATES_DIRECTORY);
58
+ const candidates = [];
59
+ for (const record of completion.candidates) {
60
+ const localSlot = path.basename(String(record.path), '.png').toUpperCase();
61
+ if (!LOCAL_SLOT_PATTERN.test(localSlot)) {
62
+ throw new Error(`candidate file ${JSON.stringify(String(record.path))} is not named A-P.png`);
63
+ }
64
+ const slot = String(record.slot).toLowerCase();
65
+ if (slot !== localSlot.toLowerCase()) {
66
+ throw new Error(`candidate ${localSlot} is recorded under slot ${JSON.stringify(record.slot)}`);
67
+ }
68
+ const file = path.join(candidatesDir, `${localSlot}.png`);
69
+ let resolved;
70
+ try {
71
+ resolved = await realpath(file);
72
+ }
73
+ catch {
74
+ resolved = undefined;
75
+ }
76
+ if (resolved !== undefined && !inside(runDir, resolved)) {
77
+ throw new Error(`candidate ${localSlot} resolves outside the run directory`);
78
+ }
79
+ candidates.push({ slot, localSlot, sha256: record.sha256 || undefined, file });
80
+ }
81
+ if (candidates.length === 0)
82
+ throw new Error(`${runDir} has no candidates`);
83
+ if (new Set(candidates.map((candidate) => candidate.localSlot)).size !== candidates.length) {
84
+ throw new Error(`${DRAFT_COMPLETION_FILENAME} in ${runDir} repeats a slot`);
85
+ }
86
+ return { runId: completion.runId, runDir, candidates };
87
+ };
88
+ //# sourceMappingURL=mcp-slate-run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-slate-run.js","sourceRoot":"","sources":["../src/mcp-slate-run.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ import type { Tool } from '@modelcontextprotocol/sdk/types.js';
2
+ /** The view every reader returns. Permissive on purpose: the schema names the shape, the code enforces it. */
3
+ export declare const slateViewOutputSchema: {
4
+ type: "object";
5
+ required: string[];
6
+ properties: {
7
+ schema: {
8
+ type: "string";
9
+ const: "12ui.slate.view/3";
10
+ };
11
+ rev: {
12
+ type: "integer";
13
+ };
14
+ stamp: {
15
+ type: "string";
16
+ };
17
+ workspaceId: {
18
+ type: string[];
19
+ };
20
+ runDir: {
21
+ type: string[];
22
+ };
23
+ brief: {
24
+ type: string[];
25
+ };
26
+ local: {
27
+ type: "object";
28
+ };
29
+ rounds: {
30
+ type: "array";
31
+ items: object;
32
+ };
33
+ candidates: {
34
+ type: "array";
35
+ items: object;
36
+ };
37
+ versions: {
38
+ type: "array";
39
+ items: object;
40
+ };
41
+ ops: {
42
+ type: "array";
43
+ items: object;
44
+ };
45
+ pick: {
46
+ type: string[];
47
+ };
48
+ inspiration: {
49
+ type: "object";
50
+ };
51
+ references: {
52
+ type: "object";
53
+ };
54
+ handoffs: {
55
+ type: "array";
56
+ items: object;
57
+ };
58
+ };
59
+ };
60
+ export declare const SLATE_TOOL_DEFINITIONS: Tool[];
61
+ //# sourceMappingURL=mcp-slate-tool-defs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-slate-tool-defs.d.ts","sourceRoot":"","sources":["../src/mcp-slate-tool-defs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AA+C/D,8GAA8G;AAC9G,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoBjC,CAAC;AA+BF,eAAO,MAAM,sBAAsB,EAAE,IAAI,EA4KxC,CAAC"}