@12ui/design 0.2.80 → 0.2.82

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 (324) hide show
  1. package/README.md +8 -9
  2. package/SKILL.md +2 -8
  3. package/dist/cli-capabilities.d.ts +2 -2
  4. package/dist/cli-capabilities.js +2 -2
  5. package/dist/cli-capabilities.js.map +1 -1
  6. package/dist/cli-help/design.d.ts +1 -1
  7. package/dist/cli-help/design.d.ts.map +1 -1
  8. package/dist/cli-help/design.js +0 -1
  9. package/dist/cli-help/design.js.map +1 -1
  10. package/dist/cli-help/index.d.ts +3 -3
  11. package/dist/cli-help/workflow.d.ts +2 -2
  12. package/dist/cli-help/workflow.js +4 -4
  13. package/dist/cli-help/workflow.js.map +1 -1
  14. package/dist/cli-usage.d.ts.map +1 -1
  15. package/dist/cli-usage.js +5 -4
  16. package/dist/cli-usage.js.map +1 -1
  17. package/dist/cli-workspace-draw.d.ts.map +1 -1
  18. package/dist/cli-workspace-draw.js +2 -0
  19. package/dist/cli-workspace-draw.js.map +1 -1
  20. package/dist/cli-workspace-runner.d.ts.map +1 -1
  21. package/dist/cli-workspace-runner.js +2 -1
  22. package/dist/cli-workspace-runner.js.map +1 -1
  23. package/dist/corpus-client.d.ts +3 -0
  24. package/dist/corpus-client.d.ts.map +1 -1
  25. package/dist/corpus-client.js +2 -0
  26. package/dist/corpus-client.js.map +1 -1
  27. package/dist/corpus-public-renditions.d.ts +33 -0
  28. package/dist/corpus-public-renditions.d.ts.map +1 -0
  29. package/dist/corpus-public-renditions.js +55 -0
  30. package/dist/corpus-public-renditions.js.map +1 -0
  31. package/dist/legacy-skill-catalog.d.ts.map +1 -1
  32. package/dist/legacy-skill-catalog.js +11 -0
  33. package/dist/legacy-skill-catalog.js.map +1 -1
  34. package/dist/mcp-slate-command.d.ts +0 -2
  35. package/dist/mcp-slate-command.d.ts.map +1 -1
  36. package/dist/mcp-slate-command.js +0 -4
  37. package/dist/mcp-slate-command.js.map +1 -1
  38. package/dist/mcp-slate-resource.d.ts.map +1 -1
  39. package/dist/mcp-slate-resource.js +6 -4
  40. package/dist/mcp-slate-resource.js.map +1 -1
  41. package/dist/mcp-slate-tool-defs.d.ts.map +1 -1
  42. package/dist/mcp-slate-tool-defs.js +8 -6
  43. package/dist/mcp-slate-tool-defs.js.map +1 -1
  44. package/dist/mcp-slate-tools.d.ts.map +1 -1
  45. package/dist/mcp-slate-tools.js +8 -1
  46. package/dist/mcp-slate-tools.js.map +1 -1
  47. package/dist/mcp-slate-ui-copy.d.ts +88 -208
  48. package/dist/mcp-slate-ui-copy.d.ts.map +1 -1
  49. package/dist/mcp-slate-ui-copy.js +58 -159
  50. package/dist/mcp-slate-ui-copy.js.map +1 -1
  51. package/dist/mcp-slate-ui-locales/de-DE.d.ts.map +1 -1
  52. package/dist/mcp-slate-ui-locales/de-DE.js +44 -83
  53. package/dist/mcp-slate-ui-locales/de-DE.js.map +1 -1
  54. package/dist/mcp-slate-ui-locales/es-419.d.ts.map +1 -1
  55. package/dist/mcp-slate-ui-locales/es-419.js +44 -83
  56. package/dist/mcp-slate-ui-locales/es-419.js.map +1 -1
  57. package/dist/mcp-slate-ui-locales/es-ES.d.ts.map +1 -1
  58. package/dist/mcp-slate-ui-locales/es-ES.js +44 -83
  59. package/dist/mcp-slate-ui-locales/es-ES.js.map +1 -1
  60. package/dist/mcp-slate-ui-locales/fr-FR.d.ts.map +1 -1
  61. package/dist/mcp-slate-ui-locales/fr-FR.js +44 -83
  62. package/dist/mcp-slate-ui-locales/fr-FR.js.map +1 -1
  63. package/dist/mcp-slate-ui-locales/hi-IN.d.ts.map +1 -1
  64. package/dist/mcp-slate-ui-locales/hi-IN.js +44 -83
  65. package/dist/mcp-slate-ui-locales/hi-IN.js.map +1 -1
  66. package/dist/mcp-slate-ui-locales/it-IT.d.ts.map +1 -1
  67. package/dist/mcp-slate-ui-locales/it-IT.js +44 -83
  68. package/dist/mcp-slate-ui-locales/it-IT.js.map +1 -1
  69. package/dist/mcp-slate-ui-locales/ja-JP.d.ts.map +1 -1
  70. package/dist/mcp-slate-ui-locales/ja-JP.js +44 -83
  71. package/dist/mcp-slate-ui-locales/ja-JP.js.map +1 -1
  72. package/dist/mcp-slate-ui-locales/ko-KR.d.ts.map +1 -1
  73. package/dist/mcp-slate-ui-locales/ko-KR.js +44 -83
  74. package/dist/mcp-slate-ui-locales/ko-KR.js.map +1 -1
  75. package/dist/mcp-slate-ui-locales/pt-BR.d.ts.map +1 -1
  76. package/dist/mcp-slate-ui-locales/pt-BR.js +44 -83
  77. package/dist/mcp-slate-ui-locales/pt-BR.js.map +1 -1
  78. package/dist/mcp-slate-ui-locales/zh-CN.d.ts.map +1 -1
  79. package/dist/mcp-slate-ui-locales/zh-CN.js +44 -83
  80. package/dist/mcp-slate-ui-locales/zh-CN.js.map +1 -1
  81. package/dist/mcp-slate-ui-locales/zh-TW.d.ts.map +1 -1
  82. package/dist/mcp-slate-ui-locales/zh-TW.js +44 -83
  83. package/dist/mcp-slate-ui-locales/zh-TW.js.map +1 -1
  84. package/dist/mcp-slate-ui-script-bridge.d.ts.map +1 -1
  85. package/dist/mcp-slate-ui-script-bridge.js +19 -7
  86. package/dist/mcp-slate-ui-script-bridge.js.map +1 -1
  87. package/dist/mcp-slate-ui-script-browser.d.ts.map +1 -1
  88. package/dist/mcp-slate-ui-script-browser.js +0 -3
  89. package/dist/mcp-slate-ui-script-browser.js.map +1 -1
  90. package/dist/mcp-slate-ui-script-designs.d.ts +17 -0
  91. package/dist/mcp-slate-ui-script-designs.d.ts.map +1 -0
  92. package/dist/mcp-slate-ui-script-designs.js +365 -0
  93. package/dist/mcp-slate-ui-script-designs.js.map +1 -0
  94. package/dist/mcp-slate-ui-script-edit.d.ts +9 -0
  95. package/dist/mcp-slate-ui-script-edit.d.ts.map +1 -0
  96. package/dist/mcp-slate-ui-script-edit.js +71 -0
  97. package/dist/mcp-slate-ui-script-edit.js.map +1 -0
  98. package/dist/mcp-slate-ui-script-inline.d.ts +3 -9
  99. package/dist/mcp-slate-ui-script-inline.d.ts.map +1 -1
  100. package/dist/mcp-slate-ui-script-inline.js +28 -155
  101. package/dist/mcp-slate-ui-script-inline.js.map +1 -1
  102. package/dist/mcp-slate-ui-script-inspiration-collage.d.ts +13 -12
  103. package/dist/mcp-slate-ui-script-inspiration-collage.d.ts.map +1 -1
  104. package/dist/mcp-slate-ui-script-inspiration-collage.js +24 -24
  105. package/dist/mcp-slate-ui-script-inspiration-collage.js.map +1 -1
  106. package/dist/mcp-slate-ui-script-inspiration-gallery.d.ts +23 -0
  107. package/dist/mcp-slate-ui-script-inspiration-gallery.d.ts.map +1 -0
  108. package/dist/mcp-slate-ui-script-inspiration-gallery.js +221 -0
  109. package/dist/mcp-slate-ui-script-inspiration-gallery.js.map +1 -0
  110. package/dist/mcp-slate-ui-script-inspiration-grid.d.ts +14 -21
  111. package/dist/mcp-slate-ui-script-inspiration-grid.d.ts.map +1 -1
  112. package/dist/mcp-slate-ui-script-inspiration-grid.js +124 -196
  113. package/dist/mcp-slate-ui-script-inspiration-grid.js.map +1 -1
  114. package/dist/mcp-slate-ui-script-inspiration.d.ts +8 -9
  115. package/dist/mcp-slate-ui-script-inspiration.d.ts.map +1 -1
  116. package/dist/mcp-slate-ui-script-inspiration.js +213 -130
  117. package/dist/mcp-slate-ui-script-inspiration.js.map +1 -1
  118. package/dist/mcp-slate-ui-script-l10n.d.ts.map +1 -1
  119. package/dist/mcp-slate-ui-script-l10n.js +2 -0
  120. package/dist/mcp-slate-ui-script-l10n.js.map +1 -1
  121. package/dist/mcp-slate-ui-script-more.d.ts +4 -33
  122. package/dist/mcp-slate-ui-script-more.d.ts.map +1 -1
  123. package/dist/mcp-slate-ui-script-more.js +6 -279
  124. package/dist/mcp-slate-ui-script-more.js.map +1 -1
  125. package/dist/mcp-slate-ui-script-pause.d.ts +10 -6
  126. package/dist/mcp-slate-ui-script-pause.d.ts.map +1 -1
  127. package/dist/mcp-slate-ui-script-pause.js +45 -30
  128. package/dist/mcp-slate-ui-script-pause.js.map +1 -1
  129. package/dist/mcp-slate-ui-script-references.d.ts +19 -0
  130. package/dist/mcp-slate-ui-script-references.d.ts.map +1 -0
  131. package/dist/mcp-slate-ui-script-references.js +102 -0
  132. package/dist/mcp-slate-ui-script-references.js.map +1 -0
  133. package/dist/mcp-slate-ui-script-remote.d.ts +13 -12
  134. package/dist/mcp-slate-ui-script-remote.d.ts.map +1 -1
  135. package/dist/mcp-slate-ui-script-remote.js +46 -27
  136. package/dist/mcp-slate-ui-script-remote.js.map +1 -1
  137. package/dist/mcp-slate-ui-script-scribble.d.ts +2 -2
  138. package/dist/mcp-slate-ui-script-scribble.js +7 -7
  139. package/dist/mcp-slate-ui-script-select.d.ts +4 -9
  140. package/dist/mcp-slate-ui-script-select.d.ts.map +1 -1
  141. package/dist/mcp-slate-ui-script-select.js +13 -37
  142. package/dist/mcp-slate-ui-script-select.js.map +1 -1
  143. package/dist/mcp-slate-ui-script-stage.d.ts +4 -10
  144. package/dist/mcp-slate-ui-script-stage.d.ts.map +1 -1
  145. package/dist/mcp-slate-ui-script-stage.js +28 -141
  146. package/dist/mcp-slate-ui-script-stage.js.map +1 -1
  147. package/dist/mcp-slate-ui-script-state.d.ts +1 -1
  148. package/dist/mcp-slate-ui-script-state.d.ts.map +1 -1
  149. package/dist/mcp-slate-ui-script-state.js +9 -4
  150. package/dist/mcp-slate-ui-script-state.js.map +1 -1
  151. package/dist/mcp-slate-ui-script-viewer.d.ts +18 -0
  152. package/dist/mcp-slate-ui-script-viewer.d.ts.map +1 -0
  153. package/dist/mcp-slate-ui-script-viewer.js +405 -0
  154. package/dist/mcp-slate-ui-script-viewer.js.map +1 -0
  155. package/dist/mcp-slate-ui-script.d.ts +4 -5
  156. package/dist/mcp-slate-ui-script.d.ts.map +1 -1
  157. package/dist/mcp-slate-ui-script.js +12 -13
  158. package/dist/mcp-slate-ui-script.js.map +1 -1
  159. package/dist/mcp-slate-ui-styles-designs.d.ts +10 -0
  160. package/dist/mcp-slate-ui-styles-designs.d.ts.map +1 -0
  161. package/dist/mcp-slate-ui-styles-designs.js +121 -0
  162. package/dist/mcp-slate-ui-styles-designs.js.map +1 -0
  163. package/dist/mcp-slate-ui-styles-inspiration.d.ts +13 -13
  164. package/dist/mcp-slate-ui-styles-inspiration.d.ts.map +1 -1
  165. package/dist/mcp-slate-ui-styles-inspiration.js +67 -33
  166. package/dist/mcp-slate-ui-styles-inspiration.js.map +1 -1
  167. package/dist/mcp-slate-ui-styles-pause.d.ts +2 -2
  168. package/dist/mcp-slate-ui-styles-pause.d.ts.map +1 -1
  169. package/dist/mcp-slate-ui-styles-pause.js +4 -8
  170. package/dist/mcp-slate-ui-styles-pause.js.map +1 -1
  171. package/dist/mcp-slate-ui-styles-stage.d.ts +3 -22
  172. package/dist/mcp-slate-ui-styles-stage.d.ts.map +1 -1
  173. package/dist/mcp-slate-ui-styles-stage.js +6 -74
  174. package/dist/mcp-slate-ui-styles-stage.js.map +1 -1
  175. package/dist/mcp-slate-ui-styles.d.ts +12 -19
  176. package/dist/mcp-slate-ui-styles.d.ts.map +1 -1
  177. package/dist/mcp-slate-ui-styles.js +97 -100
  178. package/dist/mcp-slate-ui-styles.js.map +1 -1
  179. package/dist/mcp-slate-ui.d.ts +12 -12
  180. package/dist/mcp-slate-ui.d.ts.map +1 -1
  181. package/dist/mcp-slate-ui.js +24 -23
  182. package/dist/mcp-slate-ui.js.map +1 -1
  183. package/dist/mcp-workflow-tools.js +2 -2
  184. package/dist/mcp-workflow-tools.js.map +1 -1
  185. package/dist/review-files-server.d.ts +8 -0
  186. package/dist/review-files-server.d.ts.map +1 -0
  187. package/dist/review-files-server.js +133 -0
  188. package/dist/review-files-server.js.map +1 -0
  189. package/dist/review-page-assets.d.ts +1 -1
  190. package/dist/review-page-assets.d.ts.map +1 -1
  191. package/dist/review-page-assets.js +3 -1
  192. package/dist/review-page-assets.js.map +1 -1
  193. package/dist/review-page.d.ts +8 -1
  194. package/dist/review-page.d.ts.map +1 -1
  195. package/dist/review-page.js +32 -21
  196. package/dist/review-page.js.map +1 -1
  197. package/dist/review-server-guard.d.ts +33 -0
  198. package/dist/review-server-guard.d.ts.map +1 -0
  199. package/dist/review-server-guard.js +65 -0
  200. package/dist/review-server-guard.js.map +1 -0
  201. package/dist/review-server.d.ts +2 -0
  202. package/dist/review-server.d.ts.map +1 -1
  203. package/dist/review-server.js +45 -74
  204. package/dist/review-server.js.map +1 -1
  205. package/dist/server.d.ts.map +1 -1
  206. package/dist/server.js +2 -0
  207. package/dist/server.js.map +1 -1
  208. package/dist/slate-actions.d.ts +22 -1
  209. package/dist/slate-actions.d.ts.map +1 -1
  210. package/dist/slate-actions.js +46 -2
  211. package/dist/slate-actions.js.map +1 -1
  212. package/dist/slate-browser-host.d.ts +8 -7
  213. package/dist/slate-browser-host.d.ts.map +1 -1
  214. package/dist/slate-browser-host.js +13 -10
  215. package/dist/slate-browser-host.js.map +1 -1
  216. package/dist/slate-browser-server.d.ts.map +1 -1
  217. package/dist/slate-browser-server.js +10 -4
  218. package/dist/slate-browser-server.js.map +1 -1
  219. package/dist/slate-commit.d.ts.map +1 -1
  220. package/dist/slate-commit.js +12 -5
  221. package/dist/slate-commit.js.map +1 -1
  222. package/dist/slate-handoff.d.ts.map +1 -1
  223. package/dist/slate-handoff.js +2 -3
  224. package/dist/slate-handoff.js.map +1 -1
  225. package/dist/slate-ids.d.ts +2 -1
  226. package/dist/slate-ids.d.ts.map +1 -1
  227. package/dist/slate-ids.js +3 -2
  228. package/dist/slate-ids.js.map +1 -1
  229. package/dist/slate-reference-ids.d.ts.map +1 -1
  230. package/dist/slate-reference-ids.js +1 -0
  231. package/dist/slate-reference-ids.js.map +1 -1
  232. package/dist/slate-round-prompt.d.ts +19 -0
  233. package/dist/slate-round-prompt.d.ts.map +1 -1
  234. package/dist/slate-round-prompt.js +22 -0
  235. package/dist/slate-round-prompt.js.map +1 -1
  236. package/dist/slate-round-runner.d.ts.map +1 -1
  237. package/dist/slate-round-runner.js +16 -12
  238. package/dist/slate-round-runner.js.map +1 -1
  239. package/dist/slate-round-search.d.ts.map +1 -1
  240. package/dist/slate-round-search.js +2 -0
  241. package/dist/slate-round-search.js.map +1 -1
  242. package/dist/slate-runtime.d.ts +3 -0
  243. package/dist/slate-runtime.d.ts.map +1 -1
  244. package/dist/slate-runtime.js +1 -0
  245. package/dist/slate-runtime.js.map +1 -1
  246. package/dist/slate-site-references-capture.d.ts +20 -0
  247. package/dist/slate-site-references-capture.d.ts.map +1 -0
  248. package/dist/slate-site-references-capture.js +119 -0
  249. package/dist/slate-site-references-capture.js.map +1 -0
  250. package/dist/slate-site-references-client.d.ts +35 -0
  251. package/dist/slate-site-references-client.d.ts.map +1 -0
  252. package/dist/slate-site-references-client.js +36 -0
  253. package/dist/slate-site-references-client.js.map +1 -0
  254. package/dist/slate-site-references-local.d.ts +6 -0
  255. package/dist/slate-site-references-local.d.ts.map +1 -0
  256. package/dist/slate-site-references-local.js +63 -0
  257. package/dist/slate-site-references-local.js.map +1 -0
  258. package/dist/slate-site-references-suggest.d.ts +36 -0
  259. package/dist/slate-site-references-suggest.d.ts.map +1 -0
  260. package/dist/slate-site-references-suggest.js +144 -0
  261. package/dist/slate-site-references-suggest.js.map +1 -0
  262. package/dist/slate-site-references.d.ts +57 -0
  263. package/dist/slate-site-references.d.ts.map +1 -0
  264. package/dist/slate-site-references.js +129 -0
  265. package/dist/slate-site-references.js.map +1 -0
  266. package/dist/slate-view-contract.d.ts +29 -1
  267. package/dist/slate-view-contract.d.ts.map +1 -1
  268. package/dist/slate-view.d.ts.map +1 -1
  269. package/dist/slate-view.js +5 -0
  270. package/dist/slate-view.js.map +1 -1
  271. package/dist/slate-workspace-parse.d.ts +2 -0
  272. package/dist/slate-workspace-parse.d.ts.map +1 -1
  273. package/dist/slate-workspace-parse.js +20 -3
  274. package/dist/slate-workspace-parse.js.map +1 -1
  275. package/dist/slate-workspace-types.d.ts +17 -2
  276. package/dist/slate-workspace-types.d.ts.map +1 -1
  277. package/dist/workflow/adapter-12ui.js +1 -1
  278. package/dist/workflow/adapter-12ui.js.map +1 -1
  279. package/dist/workflow/adapters.d.ts.map +1 -1
  280. package/dist/workflow/adapters.js +3 -3
  281. package/dist/workflow/adapters.js.map +1 -1
  282. package/dist/workflow/providers.js +2 -2
  283. package/dist/workflow/providers.js.map +1 -1
  284. package/dist/workflow/routing.d.ts +8 -1
  285. package/dist/workflow/routing.d.ts.map +1 -1
  286. package/dist/workflow/routing.js +9 -2
  287. package/dist/workflow/routing.js.map +1 -1
  288. package/dist/workflow/types.d.ts +5 -2
  289. package/dist/workflow/types.d.ts.map +1 -1
  290. package/dist/workflow/types.js.map +1 -1
  291. package/dist/workflow-transport.d.ts.map +1 -1
  292. package/dist/workflow-transport.js +4 -2
  293. package/dist/workflow-transport.js.map +1 -1
  294. package/dist/workspace-draw-messages.d.ts +27 -5
  295. package/dist/workspace-draw-messages.d.ts.map +1 -1
  296. package/dist/workspace-draw-messages.js +29 -3
  297. package/dist/workspace-draw-messages.js.map +1 -1
  298. package/dist/workspace-draw-run.d.ts +12 -0
  299. package/dist/workspace-draw-run.d.ts.map +1 -1
  300. package/dist/workspace-draw-run.js +47 -18
  301. package/dist/workspace-draw-run.js.map +1 -1
  302. package/dist/workspace-draw-types.d.ts +2 -1
  303. package/dist/workspace-draw-types.d.ts.map +1 -1
  304. package/dist/workspace-draw-types.js +1 -0
  305. package/dist/workspace-draw-types.js.map +1 -1
  306. package/dist/workspace-runner-main.d.ts +5 -0
  307. package/dist/workspace-runner-main.d.ts.map +1 -1
  308. package/dist/workspace-runner-main.js +15 -3
  309. package/dist/workspace-runner-main.js.map +1 -1
  310. package/open-design.json +2 -13
  311. package/package.json +1 -1
  312. package/skills/12ui-design/SKILL.md +7 -8
  313. package/dist/mcp-slate-ui-script-dialog.d.ts +0 -21
  314. package/dist/mcp-slate-ui-script-dialog.d.ts.map +0 -1
  315. package/dist/mcp-slate-ui-script-dialog.js +0 -351
  316. package/dist/mcp-slate-ui-script-dialog.js.map +0 -1
  317. package/dist/mcp-slate-ui-script-progress.d.ts +0 -7
  318. package/dist/mcp-slate-ui-script-progress.d.ts.map +0 -1
  319. package/dist/mcp-slate-ui-script-progress.js +0 -9
  320. package/dist/mcp-slate-ui-script-progress.js.map +0 -1
  321. package/dist/mcp-slate-ui-styles-dialog.d.ts +0 -20
  322. package/dist/mcp-slate-ui-styles-dialog.d.ts.map +0 -1
  323. package/dist/mcp-slate-ui-styles-dialog.js +0 -87
  324. package/dist/mcp-slate-ui-styles-dialog.js.map +0 -1
@@ -0,0 +1,102 @@
1
+ /**
2
+ * The References tab: live screenshots of real, relevant websites (`view.sites`), gathered by the person's own agents
3
+ * and captured by the 12ui command line while a round waits on them. It is the Inspiration tab's gallery, large view
4
+ * and tray (mcp-slate-ui-script-inspiration-gallery.ts, mcp-slate-ui-script-inspiration-grid.ts) over the sites:
5
+ *
6
+ * - The sites arrive one by one while the tab is open (the status poll brings each, or the tab's own short watch below)
7
+ * and join the end of the grid; nothing already shown moves.
8
+ * - A click selects or deselects a site exactly like an Inspiration reference (`toggleRef`: the selection for the next
9
+ * round, or, while a round waits on the person, that round's references), with the same ring, check and tray.
10
+ * - The large view adds Open site, which opens the live page through the host.
11
+ * - Pictures load straight from their URLs (`imageUrl`, `thumbUrl`); where a server gives none (the local plugin) they
12
+ * come through the reference tool like any reference.
13
+ * - Nothing yet: one short line, "Finding sites…" only while gathering is possible (the gather window is open and a
14
+ * runner or the draw command holds a running round), else "No websites".
15
+ *
16
+ * Fragment of the view's script; String.raw, no backtick, no dollar-brace.
17
+ */
18
+ export const SLATE_UI_REFERENCES = String.raw `
19
+ // While the tab is open and the sites are still landing, it asks for the view every few seconds by itself (the
20
+ // status poll runs only while a request runs, and the local plugin gathers with none), for a few minutes at most.
21
+ var SITES_EXPECTED = 12;
22
+ var SITE_WATCH = { forMs: 300000, everyMs: 3000 };
23
+ var siteWatch = { runDir: null, until: 0, timer: null };
24
+ function armSiteWatch() {
25
+ if (state.view && state.view.runDir && siteWatch.runDir !== state.view.runDir) { siteWatch.runDir = state.view.runDir; siteWatch.until = Date.now() + SITE_WATCH.forMs; }
26
+ }
27
+ // Gathering is possible only while the gather window is open and a runner or the draw command holds a running round.
28
+ function stillFinding() {
29
+ return Date.now() < siteWatch.until && runningOps().some(function (op) { return !!(op.runner && op.runner.alive); });
30
+ }
31
+ function watchSites() {
32
+ if (siteWatch.timer !== null || !state.view || !state.view.runDir) return;
33
+ if (state.tab !== "references" || siteList().length >= SITES_EXPECTED || Date.now() > siteWatch.until || runningOps().length > 0) return;
34
+ siteWatch.timer = setTimeout(function () { siteWatch.timer = null; refreshOnce(); watchSites(); }, SITE_WATCH.everyMs);
35
+ }
36
+
37
+ function siteList() { return (state.view && state.view.sites) || []; }
38
+ function siteById(id) {
39
+ var sites = siteList();
40
+ for (var i = 0; i < sites.length; i++) if (sites[i].id === id) return sites[i];
41
+ return null;
42
+ }
43
+ function siteDomain(site) {
44
+ return String(site.sourceUrl).replace(/^[a-z][a-z0-9+.-]*:\/\//i, "").replace(/[\/?#].*$/, "").replace(/^www\./, "");
45
+ }
46
+ function openSite(url) {
47
+ request("ui/open-link", { url: url }).catch(function (err) { setInspStatus(errText(err), "err"); });
48
+ }
49
+ // A site as the gallery shows it.
50
+ function siteItem(site) {
51
+ var item = { id: site.id, label: site.title + " (" + siteDomain(site) + ")", title: site.title, sourceUrl: site.sourceUrl,
52
+ aspect: "landscape", width: 1600, height: 1000, thumbUrl: site.thumbUrl || null, imageUrl: site.imageUrl || site.thumbUrl || null, srcset: "" };
53
+ if (!item.thumbUrl) item.load = function (img, size) { fillImage(img, wantReference(site.id, size === "thumb" ? "thumb" : "ref", false)); };
54
+ return item;
55
+ }
56
+
57
+ // ---- the tab ----
58
+ function buildReferencesShell(pane, where) {
59
+ pane.__built = true;
60
+ pane.__where = where;
61
+ pane.classList.add("insp", "refs", where);
62
+ var status = el("div", "status");
63
+ status.setAttribute("data-istatus", "");
64
+ status.setAttribute("role", "status");
65
+ status.setAttribute("aria-live", "polite");
66
+ var results = el("div", "results");
67
+ var gallery = createGallery({
68
+ where: where,
69
+ root: function () { return where === "card" ? results : null; },
70
+ isSelected: function (id) { return activeSelection().indexOf(id) >= 0; },
71
+ onToggle: toggleRef
72
+ });
73
+ var empty = el("div", "placeholder");
74
+ results.appendChild(gallery.node);
75
+ pane.__results = results;
76
+ pane.__gallery = gallery;
77
+ pane.__empty = empty;
78
+ pane.appendChild(status);
79
+ pane.appendChild(results);
80
+ pane.appendChild(buildTray(pane));
81
+ new ResizeObserver(function () { gallery.layout(); }).observe(results);
82
+ }
83
+ function renderReferences(pane, where) {
84
+ if (!state.view) return;
85
+ if (!pane.__built) buildReferencesShell(pane, where);
86
+ armSiteWatch();
87
+ var sites = siteList();
88
+ var has = sites.length > 0;
89
+ var emptyText = has ? "" : stillFinding() ? t("referencesFinding") : t("referencesNone");
90
+ pane.__empty.textContent = emptyText;
91
+ if (emptyText && !pane.__empty.parentNode) pane.__results.insertBefore(pane.__empty, pane.__gallery.node);
92
+ else if (!emptyText && pane.__empty.parentNode) pane.__empty.parentNode.removeChild(pane.__empty);
93
+ pane.__gallery.node.classList.toggle("hidden", !has);
94
+ // One list per workspace: a new site only joins its end.
95
+ if (has) pane.__gallery.set(state.view.runDir + ":sites", sites.map(siteItem));
96
+ pane.__gallery.layout();
97
+ pane.__gallery.sync();
98
+ syncTray(pane);
99
+ watchSites();
100
+ }
101
+ `;
102
+ //# sourceMappingURL=mcp-slate-ui-script-references.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-slate-ui-script-references.js","sourceRoot":"","sources":["../src/mcp-slate-ui-script-references.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmF5C,CAAC"}
@@ -2,17 +2,18 @@
2
2
  * What only the hosted target does (TARGET is "remote"): the words it says to the
3
3
  * agent, and the marked image an edit carries.
4
4
  *
5
- * The messages. The host wraps every app message as untrusted input, so each one
6
- * names what happened and carries no command, flag, path, price or credit word;
7
- * a Generate more or Edit click that the workspace runner on the person's Mac
8
- * will draw sends none (remoteAfterRun);
9
- * the agent confirms through the model-visible data tool, which returns the
10
- * server's own trusted text. Six messages exist, one per click (spec v2 9.2):
11
- * Generate more with new options, Generate more based on a design, Edit,
12
- * Select, Branch and Convert. The user's own words (a steer note, an edit instruction, the Branch
13
- * explanation) are never put in a message; the agent reads them from the data
14
- * tool, quoted. `runDir` is named in each because the tools take it and a
15
- * thread may hold several workspaces.
5
+ * The messages. The person sees each one in the thread as their own words, so it
6
+ * says only what they did ("I chose design C. Build it."), with no id, tool
7
+ * name, command, path, price or credit word; the runDir and the request go to
8
+ * the agent in the model context, which the host attaches unseen. The host
9
+ * wraps app messages as untrusted input, so the agent reads the request with the
10
+ * model-visible data tool, which returns the server's own trusted text.
11
+ * Choosing a design records the pick and a Convert hand-off, so the agent builds
12
+ * it. A Generate more, Edit or Continue that the workspace runner on the
13
+ * person's Mac draws sends no message (remoteAfterRun); the agent is told only
14
+ * when no runner takes it. The user's own words (a steer note, an edit
15
+ * instruction, the Branch explanation) are never put in a message; the agent
16
+ * reads them from the data tool, quoted.
16
17
  *
17
18
  * The marked image. The hosted server does no image work, so the screen
18
19
  * composites the strokes onto the parent itself and sends the result with the
@@ -21,7 +22,7 @@
21
22
  * the image's mean colour (as the local server chooses), round caps, a width of
22
23
  * 0.8 percent of the shorter side (at least 3 px), exported as a JPEG whose
23
24
  * quality steps down until it fits in 300 KiB, and whose size steps down if no
24
- * quality does. A canvas that cannot be read or exported is an error the dialog
25
+ * quality does. A canvas that cannot be read or exported is an error the edit bar
25
26
  * shows; the edit is not sent without the picture it asked for.
26
27
  *
27
28
  * Fragment of the view's script; String.raw, no backtick, no dollar-brace.
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-slate-ui-script-remote.d.ts","sourceRoot":"","sources":["../src/mcp-slate-ui-script-remote.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,eAAO,MAAM,eAAe,QA8J3B,CAAC"}
1
+ {"version":3,"file":"mcp-slate-ui-script-remote.d.ts","sourceRoot":"","sources":["../src/mcp-slate-ui-script-remote.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,eAAe,QAgL3B,CAAC"}
@@ -2,17 +2,18 @@
2
2
  * What only the hosted target does (TARGET is "remote"): the words it says to the
3
3
  * agent, and the marked image an edit carries.
4
4
  *
5
- * The messages. The host wraps every app message as untrusted input, so each one
6
- * names what happened and carries no command, flag, path, price or credit word;
7
- * a Generate more or Edit click that the workspace runner on the person's Mac
8
- * will draw sends none (remoteAfterRun);
9
- * the agent confirms through the model-visible data tool, which returns the
10
- * server's own trusted text. Six messages exist, one per click (spec v2 9.2):
11
- * Generate more with new options, Generate more based on a design, Edit,
12
- * Select, Branch and Convert. The user's own words (a steer note, an edit instruction, the Branch
13
- * explanation) are never put in a message; the agent reads them from the data
14
- * tool, quoted. `runDir` is named in each because the tools take it and a
15
- * thread may hold several workspaces.
5
+ * The messages. The person sees each one in the thread as their own words, so it
6
+ * says only what they did ("I chose design C. Build it."), with no id, tool
7
+ * name, command, path, price or credit word; the runDir and the request go to
8
+ * the agent in the model context, which the host attaches unseen. The host
9
+ * wraps app messages as untrusted input, so the agent reads the request with the
10
+ * model-visible data tool, which returns the server's own trusted text.
11
+ * Choosing a design records the pick and a Convert hand-off, so the agent builds
12
+ * it. A Generate more, Edit or Continue that the workspace runner on the
13
+ * person's Mac draws sends no message (remoteAfterRun); the agent is told only
14
+ * when no runner takes it. The user's own words (a steer note, an edit
15
+ * instruction, the Branch explanation) are never put in a message; the agent
16
+ * reads them from the data tool, quoted.
16
17
  *
17
18
  * The marked image. The hosted server does no image work, so the screen
18
19
  * composites the strokes onto the parent itself and sends the result with the
@@ -21,37 +22,55 @@
21
22
  * the image's mean colour (as the local server chooses), round caps, a width of
22
23
  * 0.8 percent of the shorter side (at least 3 px), exported as a JPEG whose
23
24
  * quality steps down until it fits in 300 KiB, and whose size steps down if no
24
- * quality does. A canvas that cannot be read or exported is an error the dialog
25
+ * quality does. A canvas that cannot be read or exported is an error the edit bar
25
26
  * shows; the edit is not sent without the picture it asked for.
26
27
  *
27
28
  * Fragment of the view's script; String.raw, no backtick, no dollar-brace.
28
29
  */
29
30
  export const SLATE_UI_REMOTE = String.raw `
30
- // ---- the six messages ----
31
- function remoteRunMessage(action, opId) {
32
- var head;
31
+ // ---- the messages ----
32
+ // The person sees each message in the thread as their own words, so it says only what they did, in their words. What
33
+ // the agent needs to act (the runDir and the request) travels in the model context, which the host attaches to the
34
+ // message unseen; the agent then reads the request itself with the data tool, the trusted words.
35
+ function remoteTell(text, context) {
36
+ return updateModelContext("12ui Design workspace runDir " + state.view.runDir + ": " + context + " Read it with " + TOOLS.data + ".").then(function () {
37
+ return messageAgent(text);
38
+ });
39
+ }
40
+ function remoteRunMessage(action) {
41
+ if (action.kind === "continue") return "Draw the designs: I pressed Continue.";
33
42
  if (action.kind === "edit") {
34
43
  var parent = ver(action.versionId);
35
- head = "I asked to edit " + (parent ? parent.label : "an option");
36
- } else if (action.mode === "like") {
44
+ return "Draw my edit of " + (parent ? parent.label : "the design") + ".";
45
+ }
46
+ if (action.mode === "branch") {
47
+ var root = ver(action.fromVersionId);
48
+ return "Draw more pages of " + (root ? root.label : "the design") + ".";
49
+ }
50
+ if (action.mode === "like") {
37
51
  var from = ver(action.fromVersionId);
38
- head = "I asked for more like " + (from ? from.label : "an option");
39
- } else head = "I asked for new options";
40
- return head + " in the Design workspace (request " + opId + ", runDir " + state.view.runDir + "). Please confirm it with " + TOOLS.data + ", then carry it out.";
41
- }
42
- function remoteSelectMessage(label) {
43
- return "I selected " + label + " in the Design workspace (runDir " + state.view.runDir + "). Please confirm it with " + TOOLS.data + " and tell me its version id.";
44
- }
45
- function remoteHandoffMessage(kind, label, handoffId) {
46
- return "I asked to " + (kind === "branch" ? "build from" : "convert") + " " + label + " in the Design workspace (request " + handoffId + ", runDir " + state.view.runDir + "). Please confirm it with " + TOOLS.data + ", then carry it out.";
52
+ return "Draw more like " + (from ? from.label : "that design") + ".";
53
+ }
54
+ return "Draw the new designs I asked for.";
47
55
  }
48
56
  // The run is recorded before the agent is told, and a host that refuses the message is shown, not thrown: the request
49
57
  // is on the server and the person can ask their agent for it.
50
58
  function remoteTellRun(action, opId) {
51
- messageAgent(remoteRunMessage(action, opId)).then(function () {}, function (err) {
59
+ remoteTell(remoteRunMessage(action), "request " + opId + " waits for you.").then(function () {}, function (err) {
52
60
  setStatus(t("sentRefused", { detail: errText(err) }), "err");
53
61
  });
54
62
  }
63
+ // Choosing a design is asking for it to be built: the pick, then a Convert hand-off to HTML, then one message.
64
+ function remoteChoose(version, label) {
65
+ var handoffId = uuid4();
66
+ return callTool(TOOLS.handoff, {
67
+ runDir: state.view.runDir, handoffId: handoffId, kind: "convert", versionId: version.versionId, options: { engine: "local", output: "html" }
68
+ }).then(function (result) {
69
+ var sc = result.structuredContent || {};
70
+ if (sc.view) applyView(sc.view, true);
71
+ return remoteTell("I chose design " + label + ". Build it.", "the person chose design " + label + " (" + version.versionId + "); request " + handoffId + " waits for you.");
72
+ });
73
+ }
55
74
 
56
75
  // ---- the workspace runner: a click it draws is not a message in the thread ----
57
76
  // The run result says whether the workspace runner on the person's Mac holds the workspace (runner.alive). Then the
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-slate-ui-script-remote.js","sourceRoot":"","sources":["../src/mcp-slate-ui-script-remote.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8JxC,CAAC"}
1
+ {"version":3,"file":"mcp-slate-ui-script-remote.js","sourceRoot":"","sources":["../src/mcp-slate-ui-script-remote.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgLxC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * The scribble layer of the Edit dialog: a canvas exactly over the image where
2
+ * The scribble layer of the large view's edit: a canvas exactly over the image where
3
3
  * a pointer draws freehand strokes, with Undo and Clear. A stroke is a
4
4
  * polyline of integer permille points [x, y] (0 to 1000 of the displayed
5
5
  * image's width and height), so it does not depend on the size it was drawn
@@ -13,7 +13,7 @@
13
13
  * after the fact. A single click is a one-point stroke (a dot).
14
14
  *
15
15
  * Pointer only by design: the scribble is optional, and every other control
16
- * of the dialog works by keyboard.
16
+ * of the edit bar works by keyboard.
17
17
  */
18
18
  export declare const SLATE_UI_SCRIBBLE: string;
19
19
  //# sourceMappingURL=mcp-slate-ui-script-scribble.d.ts.map
@@ -1,5 +1,5 @@
1
1
  /**
2
- * The scribble layer of the Edit dialog: a canvas exactly over the image where
2
+ * The scribble layer of the large view's edit: a canvas exactly over the image where
3
3
  * a pointer draws freehand strokes, with Undo and Clear. A stroke is a
4
4
  * polyline of integer permille points [x, y] (0 to 1000 of the displayed
5
5
  * image's width and height), so it does not depend on the size it was drawn
@@ -13,7 +13,7 @@
13
13
  * after the fact. A single click is a one-point stroke (a dot).
14
14
  *
15
15
  * Pointer only by design: the scribble is optional, and every other control
16
- * of the dialog works by keyboard.
16
+ * of the edit bar works by keyboard.
17
17
  */
18
18
  export const SLATE_UI_SCRIBBLE = String.raw `
19
19
  var SCRIBBLE_COLOR = "#ff2bd6";
@@ -56,20 +56,20 @@ export const SLATE_UI_SCRIBBLE = String.raw `
56
56
  d.strokes.pop();
57
57
  d.current = null;
58
58
  scribblePaint(d);
59
- updateDialogUi();
59
+ scribbleChanged(d);
60
60
  }
61
61
  function scribbleClear(d) {
62
62
  if (d.committing) return;
63
63
  d.strokes = [];
64
64
  d.current = null;
65
65
  scribblePaint(d);
66
- updateDialogUi();
66
+ scribbleChanged(d);
67
67
  }
68
68
 
69
69
  function scribbleAttach(wrap, d) {
70
70
  var canvas = document.createElement("canvas");
71
71
  canvas.className = "scribble";
72
- canvas.setAttribute("aria-label", t("scribbleHint"));
72
+ canvas.setAttribute("aria-label", t("drawOnDesign"));
73
73
  d.canvas = canvas;
74
74
  wrap.appendChild(canvas);
75
75
  // The bitmap follows the size the image is shown at; the strokes repaint from their permille points.
@@ -95,7 +95,7 @@ export const SLATE_UI_SCRIBBLE = String.raw `
95
95
  if (canvas.setPointerCapture) { try { canvas.setPointerCapture(e.pointerId); } catch (err) { /* capture is best effort */ } }
96
96
  if (e.preventDefault) e.preventDefault();
97
97
  scribblePaint(d);
98
- updateDialogUi();
98
+ scribbleChanged(d);
99
99
  });
100
100
  canvas.addEventListener("pointermove", function (e) {
101
101
  if (!d.current) return;
@@ -106,7 +106,7 @@ export const SLATE_UI_SCRIBBLE = String.raw `
106
106
  d.current.push(p);
107
107
  scribblePaint(d);
108
108
  });
109
- function finish() { d.current = null; updateDialogUi(); }
109
+ function finish() { d.current = null; scribbleChanged(d); }
110
110
  canvas.addEventListener("pointerup", finish);
111
111
  canvas.addEventListener("pointercancel", finish);
112
112
  }
@@ -1,16 +1,11 @@
1
1
  /**
2
- * Select and the two hand-offs. Select acts at once: no dialog, and no reason
3
- * (the pick tool takes none from here). It records the pick and then tells the
4
- * agent, best effort. Branch and Convert (dialogs, in
5
- * mcp-slate-ui-script-dialog.ts) end here: they record the request with the
6
- * hand-off tool, under an id minted when the dialog opened, and then tell the
7
- * agent to read it.
2
+ * Select (Build this). It acts at once: no dialog, and no reason (the pick tool
3
+ * takes none from here). It records the pick and then tells the agent, best
4
+ * effort; exporting another format is something the person asks the agent for.
8
5
  *
9
6
  * What the agent is told names what happened and carries no command, no flag
10
7
  * and no backtick: the host wraps app messages as untrusted input, so the
11
- * agent confirms with the model-visible data tool. The user's own words (the
12
- * Branch explanation) are never put in a message; the agent reads them from
13
- * the record.
8
+ * agent confirms with the model-visible data tool.
14
9
  */
15
10
  export declare const SLATE_UI_SELECT: string;
16
11
  //# sourceMappingURL=mcp-slate-ui-script-select.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-slate-ui-script-select.d.ts","sourceRoot":"","sources":["../src/mcp-slate-ui-script-select.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,eAAe,QAyD3B,CAAC"}
1
+ {"version":3,"file":"mcp-slate-ui-script-select.d.ts","sourceRoot":"","sources":["../src/mcp-slate-ui-script-select.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,QAsC3B,CAAC"}
@@ -1,16 +1,11 @@
1
1
  /**
2
- * Select and the two hand-offs. Select acts at once: no dialog, and no reason
3
- * (the pick tool takes none from here). It records the pick and then tells the
4
- * agent, best effort. Branch and Convert (dialogs, in
5
- * mcp-slate-ui-script-dialog.ts) end here: they record the request with the
6
- * hand-off tool, under an id minted when the dialog opened, and then tell the
7
- * agent to read it.
2
+ * Select (Build this). It acts at once: no dialog, and no reason (the pick tool
3
+ * takes none from here). It records the pick and then tells the agent, best
4
+ * effort; exporting another format is something the person asks the agent for.
8
5
  *
9
6
  * What the agent is told names what happened and carries no command, no flag
10
7
  * and no backtick: the host wraps app messages as untrusted input, so the
11
- * agent confirms with the model-visible data tool. The user's own words (the
12
- * Branch explanation) are never put in a message; the agent reads them from
13
- * the record.
8
+ * agent confirms with the model-visible data tool.
14
9
  */
15
10
  export const SLATE_UI_SELECT = String.raw `
16
11
  function samePick(version) {
@@ -19,55 +14,36 @@ export const SLATE_UI_SELECT = String.raw `
19
14
  return !!p && p.intact !== false && !!version && p.versionId === version.versionId;
20
15
  }
21
16
 
22
- // What the agent is told, one wording per target: the local plugin's asks the agent to confirm through its tools, the
23
- // hosted one is spec v2 9.2, and the browser's is only a record (its decision reaches the agent as the command's result).
17
+ // What the agent is told, one wording per target: the local plugin's asks the agent to confirm through its tools, and
18
+ // the browser's is only a record (its decision reaches the agent as the command's result). The hosted target words
19
+ // its own (remoteChoose, remoteTellHandoff).
24
20
  function selectMessage(label, rev) {
25
- if (TARGET === "remote") return remoteSelectMessage(label);
26
21
  if (TARGET === "browser") return browserSelectMessage(label);
27
22
  return "I selected " + label + " in the Design workspace (rev " + rev + "). " +
28
23
  "Please confirm it with " + TOOLS.data + " for runDir " + state.view.runDir + ", and tell me its version id, path and sha256.";
29
24
  }
30
- function handoffMessage(kind, label, handoffId, rev) {
31
- if (TARGET === "remote") return remoteHandoffMessage(kind, label, handoffId);
32
- if (TARGET === "browser") return browserHandoffMessage(kind, label, handoffId);
33
- return "I asked to " + (kind === "branch" ? "build from" : "convert") + " " + label + " in the Design workspace (rev " + rev + ", request " + handoffId + "). " +
34
- "Please confirm it with " + TOOLS.data + " for runDir " + state.view.runDir + ", then carry it out and ask me before anything that uses my 12ui credits.";
35
- }
36
25
 
37
26
  function doSelect(version) {
38
27
  // The button is disabled in these cases; the guard keeps a stray click (a script, a stale focus) from sending a second pick.
39
28
  if (!version || state.busy || samePick(version) || !pickable(version)) return;
40
29
  state.busy = true;
41
30
  syncControls();
42
- setStatus(t("recording"));
31
+ setStatus("", "");
43
32
  callTool(TOOLS.pick, { runDir: state.view.runDir, versionId: version.versionId }).then(function (result) {
44
33
  var sc = result.structuredContent || {};
45
34
  if (sc.view) applyView(sc.view, true);
46
35
  var label = sc.pick ? sc.pick.label : version.label;
47
36
  var rev = sc.rev !== undefined ? sc.rev : state.view.rev;
48
- return messageAgent(selectMessage(label, rev)).then(function () {
49
- setStatus(t("selectedLine", { label: label }), "ok");
37
+ var told = TARGET === "remote" ? remoteChoose(version, label) : messageAgent(selectMessage(label, rev));
38
+ return told.then(function () {
39
+ // The ring and check on the chosen design say it; no line repeats it.
40
+ setStatus("", "");
50
41
  }, function (err) {
51
42
  setStatus(t("selectedRefused", { label: label, detail: errText(err) }), "err");
52
43
  });
53
44
  }, function (err) {
54
45
  setStatus(t("couldNotSelect", { detail: errText(err) }), "err");
55
- }).then(function () { state.busy = false; syncControls(); });
56
- }
57
-
58
- // Record a Branch or Convert request for the shown version, then tell the agent. Resolves once the agent has been
59
- // told (or the host refused, which is shown but not thrown); rejects on a recording error so the dialog can show it.
60
- function sendHandoff(kind, version, handoffId, options) {
61
- return callTool(TOOLS.handoff, { runDir: state.view.runDir, handoffId: handoffId, kind: kind, versionId: version.versionId, options: options }).then(function (result) {
62
- var sc = result.structuredContent || {};
63
- if (sc.view) applyView(sc.view, true);
64
- var rev = sc.rev !== undefined ? sc.rev : state.view.rev;
65
- return messageAgent(handoffMessage(kind, version.label, handoffId, rev)).then(function () {
66
- setStatus(t("sent"), "ok");
67
- }, function (err) {
68
- setStatus(t("sentRefused", { detail: errText(err) }), "err");
69
- });
70
- });
46
+ }).then(function () { state.busy = false; renderAll(); });
71
47
  }
72
48
  `;
73
49
  //# sourceMappingURL=mcp-slate-ui-script-select.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-slate-ui-script-select.js","sourceRoot":"","sources":["../src/mcp-slate-ui-script-select.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyDxC,CAAC"}
1
+ {"version":3,"file":"mcp-slate-ui-script-select.js","sourceRoot":"","sources":["../src/mcp-slate-ui-script-select.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsCxC,CAAC"}
@@ -1,14 +1,8 @@
1
1
  /**
2
- * The fullscreen workspace: on the left the selection (the Generate more tile
3
- * on top, where the next round will land, its panel under it, then compact
4
- * thumbnails grouped by round, newest first, each option with its versions as
5
- * chips; one column that scrolls as a whole), in the middle one large image,
6
- * and under it one row of actions at the right: Edit, Branch and Convert, then
7
- * Select (primary) at the far right. Nothing else shows until a button is
8
- * clicked; the dialogs live in mcp-slate-ui-script-dialog.ts. One band above
9
- * the image says what is running (on the local plugin; on the hosted server
10
- * the person's agent says it), stopped or failed, with Resume when the work
11
- * can resume. Mounted only in fullscreen.
2
+ * The fullscreen workspace: the prompt card, the tab row (the tabs, the quiet selected count and the icon that leaves
3
+ * full screen), then the selected tab. Designs is the same tab as the
4
+ * card's (mcp-slate-ui-script-designs.ts) with every round shown and more room per tile; the large view
5
+ * (mcp-slate-ui-script-viewer.ts) covers the workspace when a design is opened. Mounted only in fullscreen.
12
6
  */
13
7
  export declare const SLATE_UI_STAGE: string;
14
8
  //# sourceMappingURL=mcp-slate-ui-script-stage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-slate-ui-script-stage.d.ts","sourceRoot":"","sources":["../src/mcp-slate-ui-script-stage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,cAAc,QAoL1B,CAAC"}
1
+ {"version":3,"file":"mcp-slate-ui-script-stage.d.ts","sourceRoot":"","sources":["../src/mcp-slate-ui-script-stage.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,cAAc,QAyE1B,CAAC"}