@12ui/design 0.2.79 → 0.2.81

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 (282) hide show
  1. package/README.md +1 -3
  2. package/SKILL.md +2 -8
  3. package/dist/cli-help/design.d.ts +1 -1
  4. package/dist/cli-help/design.d.ts.map +1 -1
  5. package/dist/cli-help/design.js +0 -1
  6. package/dist/cli-help/design.js.map +1 -1
  7. package/dist/cli-help/index.d.ts +1 -1
  8. package/dist/cli-workspace-draw.d.ts.map +1 -1
  9. package/dist/cli-workspace-draw.js +2 -0
  10. package/dist/cli-workspace-draw.js.map +1 -1
  11. package/dist/cli-workspace-runner.d.ts.map +1 -1
  12. package/dist/cli-workspace-runner.js +2 -1
  13. package/dist/cli-workspace-runner.js.map +1 -1
  14. package/dist/corpus-client.d.ts +3 -0
  15. package/dist/corpus-client.d.ts.map +1 -1
  16. package/dist/corpus-client.js +32 -1
  17. package/dist/corpus-client.js.map +1 -1
  18. package/dist/corpus-public-renditions.d.ts +33 -0
  19. package/dist/corpus-public-renditions.d.ts.map +1 -0
  20. package/dist/corpus-public-renditions.js +55 -0
  21. package/dist/corpus-public-renditions.js.map +1 -0
  22. package/dist/legacy-skill-catalog.d.ts.map +1 -1
  23. package/dist/legacy-skill-catalog.js +25 -1
  24. package/dist/legacy-skill-catalog.js.map +1 -1
  25. package/dist/mcp-slate-command.d.ts +0 -2
  26. package/dist/mcp-slate-command.d.ts.map +1 -1
  27. package/dist/mcp-slate-command.js +0 -4
  28. package/dist/mcp-slate-command.js.map +1 -1
  29. package/dist/mcp-slate-resource.d.ts.map +1 -1
  30. package/dist/mcp-slate-resource.js +6 -4
  31. package/dist/mcp-slate-resource.js.map +1 -1
  32. package/dist/mcp-slate-tool-defs.d.ts.map +1 -1
  33. package/dist/mcp-slate-tool-defs.js +8 -6
  34. package/dist/mcp-slate-tool-defs.js.map +1 -1
  35. package/dist/mcp-slate-tools.d.ts.map +1 -1
  36. package/dist/mcp-slate-tools.js +8 -1
  37. package/dist/mcp-slate-tools.js.map +1 -1
  38. package/dist/mcp-slate-ui-copy.d.ts +88 -208
  39. package/dist/mcp-slate-ui-copy.d.ts.map +1 -1
  40. package/dist/mcp-slate-ui-copy.js +58 -159
  41. package/dist/mcp-slate-ui-copy.js.map +1 -1
  42. package/dist/mcp-slate-ui-locales/de-DE.d.ts.map +1 -1
  43. package/dist/mcp-slate-ui-locales/de-DE.js +44 -83
  44. package/dist/mcp-slate-ui-locales/de-DE.js.map +1 -1
  45. package/dist/mcp-slate-ui-locales/es-419.d.ts.map +1 -1
  46. package/dist/mcp-slate-ui-locales/es-419.js +44 -83
  47. package/dist/mcp-slate-ui-locales/es-419.js.map +1 -1
  48. package/dist/mcp-slate-ui-locales/es-ES.d.ts.map +1 -1
  49. package/dist/mcp-slate-ui-locales/es-ES.js +44 -83
  50. package/dist/mcp-slate-ui-locales/es-ES.js.map +1 -1
  51. package/dist/mcp-slate-ui-locales/fr-FR.d.ts.map +1 -1
  52. package/dist/mcp-slate-ui-locales/fr-FR.js +44 -83
  53. package/dist/mcp-slate-ui-locales/fr-FR.js.map +1 -1
  54. package/dist/mcp-slate-ui-locales/hi-IN.d.ts.map +1 -1
  55. package/dist/mcp-slate-ui-locales/hi-IN.js +44 -83
  56. package/dist/mcp-slate-ui-locales/hi-IN.js.map +1 -1
  57. package/dist/mcp-slate-ui-locales/it-IT.d.ts.map +1 -1
  58. package/dist/mcp-slate-ui-locales/it-IT.js +44 -83
  59. package/dist/mcp-slate-ui-locales/it-IT.js.map +1 -1
  60. package/dist/mcp-slate-ui-locales/ja-JP.d.ts.map +1 -1
  61. package/dist/mcp-slate-ui-locales/ja-JP.js +44 -83
  62. package/dist/mcp-slate-ui-locales/ja-JP.js.map +1 -1
  63. package/dist/mcp-slate-ui-locales/ko-KR.d.ts.map +1 -1
  64. package/dist/mcp-slate-ui-locales/ko-KR.js +44 -83
  65. package/dist/mcp-slate-ui-locales/ko-KR.js.map +1 -1
  66. package/dist/mcp-slate-ui-locales/pt-BR.d.ts.map +1 -1
  67. package/dist/mcp-slate-ui-locales/pt-BR.js +44 -83
  68. package/dist/mcp-slate-ui-locales/pt-BR.js.map +1 -1
  69. package/dist/mcp-slate-ui-locales/zh-CN.d.ts.map +1 -1
  70. package/dist/mcp-slate-ui-locales/zh-CN.js +44 -83
  71. package/dist/mcp-slate-ui-locales/zh-CN.js.map +1 -1
  72. package/dist/mcp-slate-ui-locales/zh-TW.d.ts.map +1 -1
  73. package/dist/mcp-slate-ui-locales/zh-TW.js +44 -83
  74. package/dist/mcp-slate-ui-locales/zh-TW.js.map +1 -1
  75. package/dist/mcp-slate-ui-script-bridge.d.ts.map +1 -1
  76. package/dist/mcp-slate-ui-script-bridge.js +19 -7
  77. package/dist/mcp-slate-ui-script-bridge.js.map +1 -1
  78. package/dist/mcp-slate-ui-script-browser.d.ts.map +1 -1
  79. package/dist/mcp-slate-ui-script-browser.js +0 -3
  80. package/dist/mcp-slate-ui-script-browser.js.map +1 -1
  81. package/dist/mcp-slate-ui-script-designs.d.ts +17 -0
  82. package/dist/mcp-slate-ui-script-designs.d.ts.map +1 -0
  83. package/dist/mcp-slate-ui-script-designs.js +365 -0
  84. package/dist/mcp-slate-ui-script-designs.js.map +1 -0
  85. package/dist/mcp-slate-ui-script-edit.d.ts +9 -0
  86. package/dist/mcp-slate-ui-script-edit.d.ts.map +1 -0
  87. package/dist/mcp-slate-ui-script-edit.js +71 -0
  88. package/dist/mcp-slate-ui-script-edit.js.map +1 -0
  89. package/dist/mcp-slate-ui-script-inline.d.ts +3 -9
  90. package/dist/mcp-slate-ui-script-inline.d.ts.map +1 -1
  91. package/dist/mcp-slate-ui-script-inline.js +28 -155
  92. package/dist/mcp-slate-ui-script-inline.js.map +1 -1
  93. package/dist/mcp-slate-ui-script-inspiration-collage.d.ts +13 -12
  94. package/dist/mcp-slate-ui-script-inspiration-collage.d.ts.map +1 -1
  95. package/dist/mcp-slate-ui-script-inspiration-collage.js +24 -24
  96. package/dist/mcp-slate-ui-script-inspiration-collage.js.map +1 -1
  97. package/dist/mcp-slate-ui-script-inspiration-gallery.d.ts +23 -0
  98. package/dist/mcp-slate-ui-script-inspiration-gallery.d.ts.map +1 -0
  99. package/dist/mcp-slate-ui-script-inspiration-gallery.js +221 -0
  100. package/dist/mcp-slate-ui-script-inspiration-gallery.js.map +1 -0
  101. package/dist/mcp-slate-ui-script-inspiration-grid.d.ts +14 -21
  102. package/dist/mcp-slate-ui-script-inspiration-grid.d.ts.map +1 -1
  103. package/dist/mcp-slate-ui-script-inspiration-grid.js +124 -196
  104. package/dist/mcp-slate-ui-script-inspiration-grid.js.map +1 -1
  105. package/dist/mcp-slate-ui-script-inspiration.d.ts +8 -9
  106. package/dist/mcp-slate-ui-script-inspiration.d.ts.map +1 -1
  107. package/dist/mcp-slate-ui-script-inspiration.js +213 -130
  108. package/dist/mcp-slate-ui-script-inspiration.js.map +1 -1
  109. package/dist/mcp-slate-ui-script-l10n.d.ts.map +1 -1
  110. package/dist/mcp-slate-ui-script-l10n.js +2 -0
  111. package/dist/mcp-slate-ui-script-l10n.js.map +1 -1
  112. package/dist/mcp-slate-ui-script-more.d.ts +4 -33
  113. package/dist/mcp-slate-ui-script-more.d.ts.map +1 -1
  114. package/dist/mcp-slate-ui-script-more.js +6 -279
  115. package/dist/mcp-slate-ui-script-more.js.map +1 -1
  116. package/dist/mcp-slate-ui-script-pause.d.ts +10 -6
  117. package/dist/mcp-slate-ui-script-pause.d.ts.map +1 -1
  118. package/dist/mcp-slate-ui-script-pause.js +45 -30
  119. package/dist/mcp-slate-ui-script-pause.js.map +1 -1
  120. package/dist/mcp-slate-ui-script-references.d.ts +19 -0
  121. package/dist/mcp-slate-ui-script-references.d.ts.map +1 -0
  122. package/dist/mcp-slate-ui-script-references.js +102 -0
  123. package/dist/mcp-slate-ui-script-references.js.map +1 -0
  124. package/dist/mcp-slate-ui-script-remote.d.ts +13 -12
  125. package/dist/mcp-slate-ui-script-remote.d.ts.map +1 -1
  126. package/dist/mcp-slate-ui-script-remote.js +46 -27
  127. package/dist/mcp-slate-ui-script-remote.js.map +1 -1
  128. package/dist/mcp-slate-ui-script-scribble.d.ts +2 -2
  129. package/dist/mcp-slate-ui-script-scribble.js +7 -7
  130. package/dist/mcp-slate-ui-script-select.d.ts +4 -9
  131. package/dist/mcp-slate-ui-script-select.d.ts.map +1 -1
  132. package/dist/mcp-slate-ui-script-select.js +13 -37
  133. package/dist/mcp-slate-ui-script-select.js.map +1 -1
  134. package/dist/mcp-slate-ui-script-stage.d.ts +4 -10
  135. package/dist/mcp-slate-ui-script-stage.d.ts.map +1 -1
  136. package/dist/mcp-slate-ui-script-stage.js +28 -141
  137. package/dist/mcp-slate-ui-script-stage.js.map +1 -1
  138. package/dist/mcp-slate-ui-script-state.d.ts +1 -1
  139. package/dist/mcp-slate-ui-script-state.d.ts.map +1 -1
  140. package/dist/mcp-slate-ui-script-state.js +9 -4
  141. package/dist/mcp-slate-ui-script-state.js.map +1 -1
  142. package/dist/mcp-slate-ui-script-viewer.d.ts +18 -0
  143. package/dist/mcp-slate-ui-script-viewer.d.ts.map +1 -0
  144. package/dist/mcp-slate-ui-script-viewer.js +405 -0
  145. package/dist/mcp-slate-ui-script-viewer.js.map +1 -0
  146. package/dist/mcp-slate-ui-script.d.ts +4 -5
  147. package/dist/mcp-slate-ui-script.d.ts.map +1 -1
  148. package/dist/mcp-slate-ui-script.js +12 -13
  149. package/dist/mcp-slate-ui-script.js.map +1 -1
  150. package/dist/mcp-slate-ui-styles-designs.d.ts +10 -0
  151. package/dist/mcp-slate-ui-styles-designs.d.ts.map +1 -0
  152. package/dist/mcp-slate-ui-styles-designs.js +121 -0
  153. package/dist/mcp-slate-ui-styles-designs.js.map +1 -0
  154. package/dist/mcp-slate-ui-styles-inspiration.d.ts +13 -13
  155. package/dist/mcp-slate-ui-styles-inspiration.d.ts.map +1 -1
  156. package/dist/mcp-slate-ui-styles-inspiration.js +67 -33
  157. package/dist/mcp-slate-ui-styles-inspiration.js.map +1 -1
  158. package/dist/mcp-slate-ui-styles-pause.d.ts +2 -2
  159. package/dist/mcp-slate-ui-styles-pause.d.ts.map +1 -1
  160. package/dist/mcp-slate-ui-styles-pause.js +4 -8
  161. package/dist/mcp-slate-ui-styles-pause.js.map +1 -1
  162. package/dist/mcp-slate-ui-styles-stage.d.ts +3 -22
  163. package/dist/mcp-slate-ui-styles-stage.d.ts.map +1 -1
  164. package/dist/mcp-slate-ui-styles-stage.js +6 -74
  165. package/dist/mcp-slate-ui-styles-stage.js.map +1 -1
  166. package/dist/mcp-slate-ui-styles.d.ts +12 -19
  167. package/dist/mcp-slate-ui-styles.d.ts.map +1 -1
  168. package/dist/mcp-slate-ui-styles.js +97 -100
  169. package/dist/mcp-slate-ui-styles.js.map +1 -1
  170. package/dist/mcp-slate-ui.d.ts +12 -12
  171. package/dist/mcp-slate-ui.d.ts.map +1 -1
  172. package/dist/mcp-slate-ui.js +24 -23
  173. package/dist/mcp-slate-ui.js.map +1 -1
  174. package/dist/server.d.ts.map +1 -1
  175. package/dist/server.js +2 -0
  176. package/dist/server.js.map +1 -1
  177. package/dist/slate-actions.d.ts +22 -1
  178. package/dist/slate-actions.d.ts.map +1 -1
  179. package/dist/slate-actions.js +46 -2
  180. package/dist/slate-actions.js.map +1 -1
  181. package/dist/slate-browser-host-script.d.ts +2 -1
  182. package/dist/slate-browser-host-script.d.ts.map +1 -1
  183. package/dist/slate-browser-host-script.js +4 -3
  184. package/dist/slate-browser-host-script.js.map +1 -1
  185. package/dist/slate-browser-host.d.ts +21 -2
  186. package/dist/slate-browser-host.d.ts.map +1 -1
  187. package/dist/slate-browser-host.js +38 -5
  188. package/dist/slate-browser-host.js.map +1 -1
  189. package/dist/slate-browser-server.d.ts +2 -2
  190. package/dist/slate-browser-server.d.ts.map +1 -1
  191. package/dist/slate-browser-server.js +13 -12
  192. package/dist/slate-browser-server.js.map +1 -1
  193. package/dist/slate-commit.d.ts.map +1 -1
  194. package/dist/slate-commit.js +12 -5
  195. package/dist/slate-commit.js.map +1 -1
  196. package/dist/slate-handoff.d.ts.map +1 -1
  197. package/dist/slate-handoff.js +2 -3
  198. package/dist/slate-handoff.js.map +1 -1
  199. package/dist/slate-ids.d.ts +2 -1
  200. package/dist/slate-ids.d.ts.map +1 -1
  201. package/dist/slate-ids.js +3 -2
  202. package/dist/slate-ids.js.map +1 -1
  203. package/dist/slate-reference-ids.d.ts.map +1 -1
  204. package/dist/slate-reference-ids.js +1 -0
  205. package/dist/slate-reference-ids.js.map +1 -1
  206. package/dist/slate-round-prompt.d.ts +19 -0
  207. package/dist/slate-round-prompt.d.ts.map +1 -1
  208. package/dist/slate-round-prompt.js +22 -0
  209. package/dist/slate-round-prompt.js.map +1 -1
  210. package/dist/slate-round-runner.d.ts.map +1 -1
  211. package/dist/slate-round-runner.js +16 -12
  212. package/dist/slate-round-runner.js.map +1 -1
  213. package/dist/slate-round-search.d.ts.map +1 -1
  214. package/dist/slate-round-search.js +2 -0
  215. package/dist/slate-round-search.js.map +1 -1
  216. package/dist/slate-runtime.d.ts +3 -0
  217. package/dist/slate-runtime.d.ts.map +1 -1
  218. package/dist/slate-runtime.js +1 -0
  219. package/dist/slate-runtime.js.map +1 -1
  220. package/dist/slate-site-references-capture.d.ts +20 -0
  221. package/dist/slate-site-references-capture.d.ts.map +1 -0
  222. package/dist/slate-site-references-capture.js +119 -0
  223. package/dist/slate-site-references-capture.js.map +1 -0
  224. package/dist/slate-site-references-client.d.ts +35 -0
  225. package/dist/slate-site-references-client.d.ts.map +1 -0
  226. package/dist/slate-site-references-client.js +36 -0
  227. package/dist/slate-site-references-client.js.map +1 -0
  228. package/dist/slate-site-references-local.d.ts +6 -0
  229. package/dist/slate-site-references-local.d.ts.map +1 -0
  230. package/dist/slate-site-references-local.js +63 -0
  231. package/dist/slate-site-references-local.js.map +1 -0
  232. package/dist/slate-site-references-suggest.d.ts +36 -0
  233. package/dist/slate-site-references-suggest.d.ts.map +1 -0
  234. package/dist/slate-site-references-suggest.js +144 -0
  235. package/dist/slate-site-references-suggest.js.map +1 -0
  236. package/dist/slate-site-references.d.ts +57 -0
  237. package/dist/slate-site-references.d.ts.map +1 -0
  238. package/dist/slate-site-references.js +129 -0
  239. package/dist/slate-site-references.js.map +1 -0
  240. package/dist/slate-view-contract.d.ts +29 -1
  241. package/dist/slate-view-contract.d.ts.map +1 -1
  242. package/dist/slate-view.d.ts.map +1 -1
  243. package/dist/slate-view.js +5 -0
  244. package/dist/slate-view.js.map +1 -1
  245. package/dist/slate-workspace-parse.d.ts +2 -0
  246. package/dist/slate-workspace-parse.d.ts.map +1 -1
  247. package/dist/slate-workspace-parse.js +20 -3
  248. package/dist/slate-workspace-parse.js.map +1 -1
  249. package/dist/slate-workspace-types.d.ts +17 -2
  250. package/dist/slate-workspace-types.d.ts.map +1 -1
  251. package/dist/workspace-draw-messages.d.ts +27 -5
  252. package/dist/workspace-draw-messages.d.ts.map +1 -1
  253. package/dist/workspace-draw-messages.js +29 -3
  254. package/dist/workspace-draw-messages.js.map +1 -1
  255. package/dist/workspace-draw-run.d.ts +12 -0
  256. package/dist/workspace-draw-run.d.ts.map +1 -1
  257. package/dist/workspace-draw-run.js +47 -18
  258. package/dist/workspace-draw-run.js.map +1 -1
  259. package/dist/workspace-draw-types.d.ts +2 -1
  260. package/dist/workspace-draw-types.d.ts.map +1 -1
  261. package/dist/workspace-draw-types.js +1 -0
  262. package/dist/workspace-draw-types.js.map +1 -1
  263. package/dist/workspace-runner-main.d.ts +5 -0
  264. package/dist/workspace-runner-main.d.ts.map +1 -1
  265. package/dist/workspace-runner-main.js +15 -3
  266. package/dist/workspace-runner-main.js.map +1 -1
  267. package/open-design.json +2 -13
  268. package/package.json +1 -1
  269. package/skills/12ui-design/SKILL.md +8 -11
  270. package/skills/12ui-design/scene.md +3 -9
  271. package/dist/mcp-slate-ui-script-dialog.d.ts +0 -21
  272. package/dist/mcp-slate-ui-script-dialog.d.ts.map +0 -1
  273. package/dist/mcp-slate-ui-script-dialog.js +0 -351
  274. package/dist/mcp-slate-ui-script-dialog.js.map +0 -1
  275. package/dist/mcp-slate-ui-script-progress.d.ts +0 -7
  276. package/dist/mcp-slate-ui-script-progress.d.ts.map +0 -1
  277. package/dist/mcp-slate-ui-script-progress.js +0 -9
  278. package/dist/mcp-slate-ui-script-progress.js.map +0 -1
  279. package/dist/mcp-slate-ui-styles-dialog.d.ts +0 -20
  280. package/dist/mcp-slate-ui-styles-dialog.d.ts.map +0 -1
  281. package/dist/mcp-slate-ui-styles-dialog.js +0 -87
  282. package/dist/mcp-slate-ui-styles-dialog.js.map +0 -1
@@ -0,0 +1,63 @@
1
+ import { mkdir, writeFile } from 'node:fs/promises';
2
+ import path from 'node:path';
3
+ import sharp from 'sharp';
4
+ import { sha256Hex } from './slate-ids.js';
5
+ import { referenceFile } from './slate-paths.js';
6
+ import { gatherSiteReferences, SITE_TARGET } from './slate-site-references.js';
7
+ import { loadWorkspaceAt, mutateWorkspace, NoWrite } from './slate-workspace-store.js';
8
+ /**
9
+ * The local plugin's References tab: the same gathering as the hosted workspace's, started by the local MCP server the
10
+ * first time it shows a workspace with fewer than a dozen sites. Each site's screenshot is cached as that reference's
11
+ * pictures (`inspiration/<id>.ref.png` and `.thumb.png`), so the reference tool, the selection and the local runner's
12
+ * draws take it like any reference, and the record names it in `sites`.
13
+ */
14
+ /** `site-` and 16 hex of sha256 of the page address without its fragment: the hosted server's id for the same page. */
15
+ const pageOf = (url) => {
16
+ const page = new URL(url);
17
+ page.hash = '';
18
+ return page.href;
19
+ };
20
+ export const localSiteId = (url) => `site-${sha256Hex(pageOf(url)).slice(0, 16)}`;
21
+ const writePng = async (file, jpeg) => {
22
+ await mkdir(path.dirname(file), { recursive: true, mode: 0o700 });
23
+ await writeFile(file, await sharp(jpeg).png().toBuffer(), { mode: 0o600 });
24
+ };
25
+ export const addLocalSite = async (root, site) => {
26
+ const id = localSiteId(site.url);
27
+ // The same page again keeps its first screenshot.
28
+ if (((await loadWorkspaceAt(root, () => new Date())).workspace.sites ?? []).some((entry) => entry.referenceId === id))
29
+ return id;
30
+ await writePng(referenceFile(root, id, 'ref'), site.image);
31
+ await writePng(referenceFile(root, id, 'thumb'), site.thumb);
32
+ const { width, height } = await sharp(site.image).metadata();
33
+ await mutateWorkspace(root, (workspace) => {
34
+ const sites = workspace.sites ?? [];
35
+ if (sites.some((entry) => entry.referenceId === id))
36
+ return new NoWrite(undefined);
37
+ workspace.sites = [...sites, { referenceId: id, url: pageOf(site.url), title: site.title.slice(0, 200), why: site.why ? site.why.slice(0, 500) : null }];
38
+ workspace.references[id] = { referenceId: id, aspect: 'landscape', width: width ?? null, height: height ?? null, description: site.title.slice(0, 200), uiType: 'website' };
39
+ return undefined;
40
+ });
41
+ return id;
42
+ };
43
+ const started = new Set();
44
+ /** Gather once per workspace per server process; a workspace that already has its sites gathers nothing. */
45
+ export const startLocalReferences = (root, env = process.env) => {
46
+ if (started.has(root))
47
+ return;
48
+ started.add(root);
49
+ void (async () => {
50
+ const { workspace } = await loadWorkspaceAt(root, () => new Date());
51
+ const existing = (workspace.sites ?? []).map((site) => site.url);
52
+ if (existing.length >= SITE_TARGET)
53
+ return;
54
+ await gatherSiteReferences({
55
+ brief: workspace.brief.concept,
56
+ existing,
57
+ env,
58
+ progress: (line) => { process.stderr.write(`${line}\n`); },
59
+ push: async (site) => { await addLocalSite(root, site); },
60
+ });
61
+ })().catch((error) => { process.stderr.write(`12ui references: stopped: ${error instanceof Error ? error.message : String(error)}\n`); });
62
+ };
63
+ //# sourceMappingURL=slate-site-references-local.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slate-site-references-local.js","sourceRoot":"","sources":["../src/slate-site-references-local.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * The suggest step of the References tab: the person's own agent CLI, with live web search, names real websites that
3
+ * are relevant to the design request. Several run at once, each from its own angle, so the tab mixes direct
4
+ * competitors, the best of the category and design-forward neighbours. It costs the person their own agent's usage and
5
+ * nothing on 12ui.
6
+ *
7
+ * Codex runs `codex exec` without the person's config (their instructions and MCP servers are not this task's), in a
8
+ * read-only sandbox, ephemeral, with web search live and a JSON schema for the answer. Claude runs `claude -p` with
9
+ * only its web tools.
10
+ */
11
+ export type SiteSuggestion = {
12
+ url: string;
13
+ name: string;
14
+ why: string;
15
+ angle: SuggestAngle;
16
+ };
17
+ export type SuggestAngle = 'competitors' | 'best' | 'adjacent';
18
+ export type SuggestEngine = {
19
+ kind: 'codex' | 'claude';
20
+ binary: string;
21
+ };
22
+ export declare const SUGGEST_ANGLES: readonly SuggestAngle[];
23
+ export declare const SITES_PER_ANGLE = 6;
24
+ export declare const suggestPrompt: (brief: string, angle: SuggestAngle) => string;
25
+ /** Claude when this runs under Claude Code, else Codex; whichever exists when the preferred one does not. */
26
+ export declare const chooseSuggestEngine: (env: NodeJS.ProcessEnv) => SuggestEngine | null;
27
+ /** The first JSON object in a text that has a `sites` list. */
28
+ export declare const parseSites: (text: string, angle: SuggestAngle) => SiteSuggestion[];
29
+ /** One angle's suggestions; an agent that fails or answers nothing gives none. */
30
+ export declare const suggestSites: (args: {
31
+ engine: SuggestEngine;
32
+ brief: string;
33
+ angle: SuggestAngle;
34
+ env: NodeJS.ProcessEnv;
35
+ }) => Promise<SiteSuggestion[]>;
36
+ //# sourceMappingURL=slate-site-references-suggest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slate-site-references-suggest.d.ts","sourceRoot":"","sources":["../src/slate-site-references-suggest.ts"],"names":[],"mappings":"AAQA;;;;;;;;;GASG;AAEH,MAAM,MAAM,cAAc,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAE,CAAC;AAC7F,MAAM,MAAM,YAAY,GAAG,aAAa,GAAG,MAAM,GAAG,UAAU,CAAC;AAC/D,MAAM,MAAM,aAAa,GAAG;IAAE,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzE,eAAO,MAAM,cAAc,EAAE,SAAS,YAAY,EAAwC,CAAC;AAC3F,eAAO,MAAM,eAAe,IAAI,CAAC;AASjC,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,EAAE,OAAO,YAAY,KAAG,MAOvD,CAAC;AAiCb,6GAA6G;AAC7G,eAAO,MAAM,mBAAmB,GAAI,KAAK,MAAM,CAAC,UAAU,KAAG,aAAa,GAAG,IAO5E,CAAC;AAcF,+DAA+D;AAC/D,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,EAAE,OAAO,YAAY,KAAG,cAAc,EAwB5E,CAAC;AAgCF,kFAAkF;AAClF,eAAO,MAAM,YAAY,GAAU,MAAM;IAAE,MAAM,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,YAAY,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAA;CAAE,KAAG,OAAO,CAAC,cAAc,EAAE,CAKxJ,CAAC"}
@@ -0,0 +1,144 @@
1
+ import { spawn } from 'node:child_process';
2
+ import { accessSync, constants } from 'node:fs';
3
+ import { mkdtemp, readFile, rm, writeFile } from 'node:fs/promises';
4
+ import { tmpdir } from 'node:os';
5
+ import path from 'node:path';
6
+ import { locateCodexBinary } from './codex-binary.js';
7
+ export const SUGGEST_ANGLES = ['competitors', 'best', 'adjacent'];
8
+ export const SITES_PER_ANGLE = 6;
9
+ const SUGGEST_TIMEOUT_MS = 240_000;
10
+ const ANGLE_ASK = {
11
+ competitors: 'direct competitors: companies that offer the same kind of product or service to the same people',
12
+ best: 'the best-designed websites in this category, the ones designers point to as the standard',
13
+ adjacent: 'design-forward websites from neighbouring categories whose look and layout would inspire this design',
14
+ };
15
+ export const suggestPrompt = (brief, angle) => [
16
+ `A designer is about to design this: ${brief}`,
17
+ '',
18
+ `Find ${SITES_PER_ANGLE} real, live websites that are ${ANGLE_ASK[angle]}.`,
19
+ 'Use web search to make sure each one exists today. Give the exact page to look at (usually the homepage), the brand',
20
+ 'name, and one short line on what is worth seeing in its design. Only public websites a browser can open without',
21
+ 'signing in: no marketplaces, app stores, articles, directories or social media. Be quick: a few searches are enough.',
22
+ ].join('\n');
23
+ const SCHEMA = {
24
+ type: 'object',
25
+ additionalProperties: false,
26
+ required: ['sites'],
27
+ properties: {
28
+ sites: {
29
+ type: 'array',
30
+ items: {
31
+ type: 'object',
32
+ additionalProperties: false,
33
+ required: ['url', 'name', 'why'],
34
+ properties: { url: { type: 'string' }, name: { type: 'string' }, why: { type: 'string' } },
35
+ },
36
+ },
37
+ },
38
+ };
39
+ const onPath = (env, name) => {
40
+ for (const directory of (env.PATH ?? '').split(path.delimiter)) {
41
+ if (directory === '')
42
+ continue;
43
+ const candidate = path.join(directory, name);
44
+ try {
45
+ accessSync(candidate, constants.X_OK);
46
+ return candidate;
47
+ }
48
+ catch {
49
+ // not here
50
+ }
51
+ }
52
+ return null;
53
+ };
54
+ /** Claude when this runs under Claude Code, else Codex; whichever exists when the preferred one does not. */
55
+ export const chooseSuggestEngine = (env) => {
56
+ const codex = locateCodexBinary(env)?.binary ?? null;
57
+ const claude = onPath(env, 'claude');
58
+ const preferClaude = env.CLAUDECODE === '1';
59
+ if (preferClaude && claude)
60
+ return { kind: 'claude', binary: claude };
61
+ if (codex)
62
+ return { kind: 'codex', binary: codex };
63
+ return claude ? { kind: 'claude', binary: claude } : null;
64
+ };
65
+ const run = (binary, args, options) => (new Promise((resolve, reject) => {
66
+ const child = spawn(binary, args, { cwd: options.cwd, env: options.env, stdio: ['ignore', 'pipe', 'pipe'] });
67
+ let stdout = '';
68
+ child.stdout.setEncoding('utf8').on('data', (chunk) => { stdout += chunk; });
69
+ child.stderr.resume();
70
+ const timer = setTimeout(() => { child.kill('SIGTERM'); }, SUGGEST_TIMEOUT_MS);
71
+ child.on('error', (error) => { clearTimeout(timer); reject(error); });
72
+ child.on('close', (code) => { clearTimeout(timer); resolve({ code, stdout }); });
73
+ }));
74
+ /** The first JSON object in a text that has a `sites` list. */
75
+ export const parseSites = (text, angle) => {
76
+ const start = text.indexOf('{');
77
+ const end = text.lastIndexOf('}');
78
+ if (start < 0 || end <= start)
79
+ return [];
80
+ let value;
81
+ try {
82
+ value = JSON.parse(text.slice(start, end + 1));
83
+ }
84
+ catch {
85
+ return [];
86
+ }
87
+ const sites = value.sites;
88
+ if (!Array.isArray(sites))
89
+ return [];
90
+ return sites.flatMap((entry) => {
91
+ if (!entry || typeof entry !== 'object')
92
+ return [];
93
+ const { url, name, why } = entry;
94
+ if (typeof url !== 'string')
95
+ return [];
96
+ try {
97
+ const parsed = new URL(url.trim());
98
+ if (parsed.protocol !== 'https:' && parsed.protocol !== 'http:')
99
+ return [];
100
+ return [{ url: parsed.href, name: typeof name === 'string' ? name.trim() : '', why: typeof why === 'string' ? why.trim() : '', angle }];
101
+ }
102
+ catch {
103
+ return [];
104
+ }
105
+ });
106
+ };
107
+ const suggestWithCodex = async (engine, prompt, angle, env) => {
108
+ const dir = await mkdtemp(path.join(tmpdir(), '12ui-sites-'));
109
+ try {
110
+ const schema = path.join(dir, 'schema.json');
111
+ const out = path.join(dir, 'answer.json');
112
+ await writeFile(schema, JSON.stringify(SCHEMA));
113
+ await run(engine.binary, [
114
+ 'exec', '--ignore-user-config', '--ephemeral', '--skip-git-repo-check', '-s', 'read-only',
115
+ '-c', 'web_search="live"', '-c', 'model_reasoning_effort="low"',
116
+ '--output-schema', schema, '-o', out, prompt,
117
+ ], { cwd: dir, env });
118
+ return parseSites(await readFile(out, 'utf8').catch(() => ''), angle);
119
+ }
120
+ finally {
121
+ await rm(dir, { recursive: true, force: true });
122
+ }
123
+ };
124
+ const suggestWithClaude = async (engine, prompt, angle, env) => {
125
+ const dir = await mkdtemp(path.join(tmpdir(), '12ui-sites-'));
126
+ try {
127
+ const answer = await run(engine.binary, [
128
+ '-p', `${prompt}\n\nAnswer with only this JSON and nothing else: {"sites":[{"url":"...","name":"...","why":"..."}]}`,
129
+ '--allowedTools', 'WebSearch,WebFetch', '--output-format', 'text', '--model', 'sonnet',
130
+ ], { cwd: dir, env });
131
+ return parseSites(answer.stdout, angle);
132
+ }
133
+ finally {
134
+ await rm(dir, { recursive: true, force: true });
135
+ }
136
+ };
137
+ /** One angle's suggestions; an agent that fails or answers nothing gives none. */
138
+ export const suggestSites = async (args) => {
139
+ const prompt = suggestPrompt(args.brief, args.angle);
140
+ return args.engine.kind === 'codex'
141
+ ? await suggestWithCodex(args.engine, prompt, args.angle, args.env)
142
+ : await suggestWithClaude(args.engine, prompt, args.angle, args.env);
143
+ };
144
+ //# sourceMappingURL=slate-site-references-suggest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slate-site-references-suggest.js","sourceRoot":"","sources":["../src/slate-site-references-suggest.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ import { type CapturedSite } from './slate-site-references-capture.js';
2
+ import { type SitePush } from './slate-site-references-client.js';
3
+ import { type SiteSuggestion, type SuggestAngle, type SuggestEngine } from './slate-site-references-suggest.js';
4
+ import type { DrawFetch } from './workspace-draw-client.js';
5
+ /**
6
+ * The References tab's gathering, start to finish: several agents suggest real sites from different angles at once,
7
+ * each suggestion is captured as soon as its agent answers, and each screenshot is pushed the moment it is taken, so
8
+ * the tab fills while the person looks at it. About a dozen sites, one per domain, the angles interleaved; a site that
9
+ * fails is skipped and the next suggestion takes its place.
10
+ */
11
+ export declare const SITE_TARGET = 12;
12
+ export type GatherReport = {
13
+ engine: SuggestEngine['kind'] | null;
14
+ suggested: number;
15
+ pushed: number;
16
+ firstMs: number | null;
17
+ lastMs: number | null;
18
+ };
19
+ export type GatherDependencies = {
20
+ suggest?: (args: {
21
+ engine: SuggestEngine;
22
+ brief: string;
23
+ angle: SuggestAngle;
24
+ env: NodeJS.ProcessEnv;
25
+ }) => Promise<SiteSuggestion[]>;
26
+ openCapture?: () => Promise<{
27
+ capture: (url: string) => Promise<CapturedSite | null>;
28
+ close: () => Promise<void>;
29
+ }>;
30
+ now?: () => number;
31
+ };
32
+ /** What the agents are told the design is: the request, plus the short visual caption when there is one. */
33
+ export declare const briefText: (concept: string, corpusQuery: string | null) => string;
34
+ export declare const gatherSiteReferences: (args: {
35
+ brief: string;
36
+ /** Pages already in the workspace: their domains are not suggested again, and they count toward the target. */
37
+ existing: string[];
38
+ target?: number;
39
+ env: NodeJS.ProcessEnv;
40
+ progress: (line: string) => void;
41
+ push: (site: SitePush) => Promise<void>;
42
+ deps?: GatherDependencies;
43
+ }) => Promise<GatherReport>;
44
+ /**
45
+ * The hosted workspace's gathering: reads the request and the sites already added through the upload token, gathers,
46
+ * and pushes each site to design.12ui.com. A workspace that already has its references gathers nothing.
47
+ */
48
+ export declare const gatherWorkspaceReferences: (args: {
49
+ origin: string;
50
+ token: string;
51
+ cliVersion: string;
52
+ env: NodeJS.ProcessEnv;
53
+ progress: (line: string) => void;
54
+ fetch?: DrawFetch;
55
+ deps?: GatherDependencies;
56
+ }) => Promise<GatherReport | null>;
57
+ //# sourceMappingURL=slate-site-references.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slate-site-references.d.ts","sourceRoot":"","sources":["../src/slate-site-references.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,oCAAoC,CAAC;AACxF,OAAO,EAAqB,KAAK,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AACrF,OAAO,EAAqD,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnK,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAE5D;;;;;GAKG;AAEH,eAAO,MAAM,WAAW,KAAK,CAAC;AAK9B,MAAM,MAAM,YAAY,GAAG;IAAE,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC;AAEtJ,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,aAAa,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,YAAY,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAA;KAAE,KAAK,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IACrI,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC;QAAE,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;QAAC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;KAAE,CAAC,CAAC;IACpH,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB,CAAC;AAUF,4GAA4G;AAC5G,eAAO,MAAM,SAAS,GAAI,SAAS,MAAM,EAAE,aAAa,MAAM,GAAG,IAAI,KAAG,MAEvE,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAU,MAAM;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,+GAA+G;IAC/G,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,IAAI,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,CAAC,EAAE,kBAAkB,CAAC;CAC3B,KAAG,OAAO,CAAC,YAAY,CAgFvB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,yBAAyB,GAAU,MAAM;IACpD,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,IAAI,CAAC,EAAE,kBAAkB,CAAC;CAC3B,KAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAY9B,CAAC"}
@@ -0,0 +1,129 @@
1
+ import { openSiteCapture } from './slate-site-references-capture.js';
2
+ import { createSitesClient } from './slate-site-references-client.js';
3
+ import { chooseSuggestEngine, suggestSites, SUGGEST_ANGLES } from './slate-site-references-suggest.js';
4
+ /**
5
+ * The References tab's gathering, start to finish: several agents suggest real sites from different angles at once,
6
+ * each suggestion is captured as soon as its agent answers, and each screenshot is pushed the moment it is taken, so
7
+ * the tab fills while the person looks at it. About a dozen sites, one per domain, the angles interleaved; a site that
8
+ * fails is skipped and the next suggestion takes its place.
9
+ */
10
+ export const SITE_TARGET = 12;
11
+ const CAPTURE_PARALLEL = 4;
12
+ /** Each angle's first few go to the front of the queue, so the first screenshots already mix the angles. */
13
+ const FRONT_PER_ANGLE = Math.ceil(SITE_TARGET / SUGGEST_ANGLES.length);
14
+ const domainOf = (url) => {
15
+ try {
16
+ return new URL(url).hostname.replace(/^www\./u, '').toLowerCase();
17
+ }
18
+ catch {
19
+ return url;
20
+ }
21
+ };
22
+ /** What the agents are told the design is: the request, plus the short visual caption when there is one. */
23
+ export const briefText = (concept, corpusQuery) => ([concept.trim(), corpusQuery && corpusQuery.trim() && corpusQuery.trim() !== concept.trim() ? `(${corpusQuery.trim()})` : ''].filter(Boolean).join(' '));
24
+ export const gatherSiteReferences = async (args) => {
25
+ const now = args.deps?.now ?? Date.now;
26
+ const started = now();
27
+ const target = Math.max(0, (args.target ?? SITE_TARGET) - args.existing.length);
28
+ const engine = chooseSuggestEngine(args.env);
29
+ const report = { engine: engine?.kind ?? null, suggested: 0, pushed: 0, firstMs: null, lastMs: null };
30
+ if (!engine || target === 0 || !args.brief.trim()) {
31
+ if (!engine)
32
+ args.progress('12ui references: no Codex or Claude here to suggest websites');
33
+ return report;
34
+ }
35
+ const seen = new Set(args.existing.map(domainOf));
36
+ const front = [];
37
+ const reserve = [];
38
+ let answering = SUGGEST_ANGLES.length;
39
+ const waiters = [];
40
+ const notify = () => { waiters.splice(0).forEach((resolve) => { resolve(); }); };
41
+ const suggest = args.deps?.suggest ?? suggestSites;
42
+ const suggestions = Promise.all(SUGGEST_ANGLES.map(async (angle) => {
43
+ let sites = [];
44
+ try {
45
+ sites = await suggest({ engine, brief: args.brief, angle, env: args.env });
46
+ }
47
+ catch (error) {
48
+ args.progress(`12ui references: the ${angle} agent failed: ${error instanceof Error ? error.message : String(error)}`);
49
+ }
50
+ const fresh = sites.filter((site) => {
51
+ const domain = domainOf(site.url);
52
+ if (seen.has(domain))
53
+ return false;
54
+ seen.add(domain);
55
+ return true;
56
+ });
57
+ report.suggested += fresh.length;
58
+ args.progress(`12ui references: ${angle} suggested ${fresh.length} sites (${((now() - started) / 1000).toFixed(1)} s)`);
59
+ front.push(...fresh.slice(0, FRONT_PER_ANGLE));
60
+ reserve.push(...fresh.slice(FRONT_PER_ANGLE));
61
+ answering -= 1;
62
+ notify();
63
+ }));
64
+ const capture = await (args.deps?.openCapture ?? openSiteCapture)();
65
+ let inFlight = 0;
66
+ /** The next site to capture, its slot claimed before anything awaits, so the workers never overshoot the target. */
67
+ const next = async () => {
68
+ for (;;) {
69
+ if (report.pushed + inFlight >= target)
70
+ return null;
71
+ const site = front.shift() ?? (answering === 0 ? reserve.shift() : undefined);
72
+ if (site) {
73
+ inFlight += 1;
74
+ return site;
75
+ }
76
+ if (answering === 0)
77
+ return null;
78
+ await new Promise((resolve) => { waiters.push(resolve); });
79
+ }
80
+ };
81
+ const worker = async () => {
82
+ for (let site = await next(); site; site = await next()) {
83
+ try {
84
+ const shot = await capture.capture(site.url);
85
+ if (!shot)
86
+ continue;
87
+ await args.push({ url: site.url, title: site.name || shot.title || domainOf(site.url), why: site.why, image: shot.image, thumb: shot.thumb });
88
+ report.pushed += 1;
89
+ const ms = now() - started;
90
+ report.firstMs ??= ms;
91
+ report.lastMs = ms;
92
+ args.progress(`12ui references: added ${domainOf(site.url)} (${report.pushed} of ${target}, ${(ms / 1000).toFixed(1)} s)`);
93
+ }
94
+ catch (error) {
95
+ args.progress(`12ui references: ${domainOf(site.url)} skipped: ${error instanceof Error ? error.message : String(error)}`);
96
+ }
97
+ finally {
98
+ inFlight -= 1;
99
+ notify();
100
+ }
101
+ }
102
+ };
103
+ try {
104
+ await Promise.all([suggestions, ...Array.from({ length: CAPTURE_PARALLEL }, () => worker())]);
105
+ }
106
+ finally {
107
+ await capture.close();
108
+ }
109
+ return report;
110
+ };
111
+ /**
112
+ * The hosted workspace's gathering: reads the request and the sites already added through the upload token, gathers,
113
+ * and pushes each site to design.12ui.com. A workspace that already has its references gathers nothing.
114
+ */
115
+ export const gatherWorkspaceReferences = async (args) => {
116
+ const client = createSitesClient({ origin: args.origin, token: args.token, cliVersion: args.cliVersion, ...(args.fetch ? { fetch: args.fetch } : {}) });
117
+ const brief = await client.brief();
118
+ if (brief.sites.length >= SITE_TARGET)
119
+ return null;
120
+ return await gatherSiteReferences({
121
+ brief: briefText(brief.concept, brief.corpusQuery),
122
+ existing: brief.sites.map((site) => site.url),
123
+ env: args.env,
124
+ progress: args.progress,
125
+ push: async (site) => { await client.push(site); },
126
+ ...(args.deps ? { deps: args.deps } : {}),
127
+ });
128
+ };
129
+ //# sourceMappingURL=slate-site-references.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slate-site-references.js","sourceRoot":"","sources":["../src/slate-site-references.ts"],"names":[],"mappings":"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"}
@@ -90,6 +90,13 @@ export type SlateAction = {
90
90
  note?: string;
91
91
  fromVersionId?: string;
92
92
  count?: 1 | 2 | 4 | 6 | 8 | 12;
93
+ brief?: string;
94
+ } | {
95
+ kind: 'round';
96
+ mode: 'branch';
97
+ fromVersionId: string;
98
+ pages?: string[];
99
+ count?: number;
93
100
  } | {
94
101
  kind: 'edit';
95
102
  versionId: string;
@@ -100,6 +107,7 @@ export type SlateAction = {
100
107
  } | {
101
108
  kind: 'continue';
102
109
  referenceIds?: string[];
110
+ brief?: string;
103
111
  };
104
112
  export type SlateReferenceMeta = {
105
113
  referenceId: string;
@@ -108,6 +116,22 @@ export type SlateReferenceMeta = {
108
116
  height: number | null;
109
117
  description: string | null;
110
118
  uiType: string | null;
119
+ /** Public rendition URLs the screen loads directly (thumb 384 px, ref 1280 px wide); absent or null: through the reference tool. */
120
+ thumbUrl?: string | null;
121
+ refUrl?: string | null;
122
+ };
123
+ /**
124
+ * A live screenshot of a real, relevant website (the References tab). `id` is also a key of `references`, so it is
125
+ * selected and drawn from like any reference. `imageUrl` and `thumbUrl` load directly; null where pictures come
126
+ * through the reference tool instead (the local plugin).
127
+ */
128
+ export type SlateSiteReference = {
129
+ id: string;
130
+ imageUrl: string | null;
131
+ thumbUrl: string | null;
132
+ title: string;
133
+ sourceUrl: string;
134
+ why: string | null;
111
135
  };
112
136
  export type SlateWorkspaceView = {
113
137
  schema: typeof SLATE_VIEW_SCHEMA;
@@ -131,7 +155,7 @@ export type SlateWorkspaceView = {
131
155
  rounds: {
132
156
  roundId: string;
133
157
  index: number;
134
- kind: 'root' | 'new' | 'like';
158
+ kind: 'root' | 'new' | 'like' | 'branch';
135
159
  note: string | null;
136
160
  fromVersionId: string | null;
137
161
  state: 'running' | 'settled' | 'failed' | 'interrupted';
@@ -168,6 +192,8 @@ export type SlateWorkspaceView = {
168
192
  busyOpId: string | null;
169
193
  latestOpId: string | null;
170
194
  referenceId: string | null;
195
+ /** A branch's page name (the person's, or a default page); absent on every other option, and from older servers. */
196
+ page?: string;
171
197
  }[];
172
198
  versions: {
173
199
  versionId: string;
@@ -261,6 +287,8 @@ export type SlateWorkspaceView = {
261
287
  label: string;
262
288
  imagePath: string | null;
263
289
  })[];
290
+ /** Website references, oldest first. Absent until the first one lands, and from older servers. */
291
+ sites?: SlateSiteReference[];
264
292
  };
265
293
  /** What the app tools return in `structuredContent` (an error result is `SlateToolError` with `isError`). */
266
294
  export type SlateStatusResult = SlateWorkspaceView | {
@@ -1 +1 @@
1
- {"version":3,"file":"slate-view-contract.d.ts","sourceRoot":"","sources":["../src/slate-view-contract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slate-view-contract.d.ts","sourceRoot":"","sources":["../src/slate-view-contract.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,eAAO,MAAM,iBAAiB,EAAG,mBAA4B,CAAC;AAE9D;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,OAAQ,CAAC;AAEjD,eAAO,MAAM,cAAc;;;;;;;;;;;;;CAajB,CAAC;AAEX,gEAAgE;AAChE,MAAM,MAAM,WAAW,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AACzE,kGAAkG;AAClG,MAAM,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;AAE7C;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,kqCAiB7B,CAAC;AACX,MAAM,MAAM,sBAAsB,GAAG,OAAO,0BAA0B,CAAC,MAAM,CAAC,CAAC;AAC/E,iIAAiI;AACjI,MAAM,MAAM,YAAY,GAAG;IAAE,IAAI,EAAE,sBAAsB,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,YAAY,CAAC,CAAA;CAAE,CAAC;AAErH,MAAM,MAAM,YAAY,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,YAAY,CAAA;CAAE,CAAC;AAC1H,MAAM,MAAM,cAAc,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,YAAY,CAAA;CAAE,CAAC;AACpI,MAAM,MAAM,UAAU,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,WAAW,CAAA;CAAE,CAAC;AAElE,MAAM,MAAM,kBAAkB,GAC1B,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,YAAY,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEjI,MAAM,MAAM,kBAAkB,GAC1B;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAC1F,OAAO,EAAE;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GACpC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,SAAS,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAC3F,OAAO,EAAE;QAAE,MAAM,EAAE,OAAO,GAAG,SAAS,CAAC;QAAC,MAAM,EAAE,kBAAkB,CAAC;QACxD,KAAK,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,KAAK,CAAC;QACpC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,iBAAiB,CAAC,EAAE,UAAU,GAAG,KAAK,CAAA;KAAE,CAAA;CAAE,CAAC;AAE5E,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,KAAK,GAAG,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAE9H;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAC1F;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,WAAW,EAAE,CAAA;CAAE,GAE7E;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAElE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,UAAU,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC5C,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,oIAAoI;IACpI,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,EAAE,OAAO,iBAAiB,CAAC;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,gGAAgG;IAChG,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,WAAW,GAAG,UAAU,GAAG,QAAQ,CAAA;KAAE,GAAG,IAAI,CAAC;IAC/E,gGAAgG;IAChG,KAAK,EAAE;QAAE,KAAK,EAAE;YAAE,KAAK,EAAE,OAAO,CAAC;YAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;YAAC,UAAU,CAAC,EAAE,YAAY,GAAG,IAAI,CAAA;SAAE,CAAA;KAAE,CAAC;IAC9F,MAAM,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAC;QACzC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QACpB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;QAC7B,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,aAAa,CAAC;QACxD,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,0EAA0E;QAC1E,YAAY,EAAE,MAAM,EAAE,CAAC;QACvB,eAAe,EAAE,MAAM,GAAG,UAAU,GAAG,QAAQ,CAAC;QAChD;;;;WAIG;QACH,KAAK,CAAC,EAAE;YAAE,KAAK,EAAE,UAAU,CAAA;SAAE,GAAG;YAAE,KAAK,EAAE,WAAW,CAAC;YAAC,WAAW,EAAE,MAAM,CAAA;SAAE,GAAG;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC;KACjG,EAAE,CAAC;IACJ,UAAU,EAAE;QACV,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAC;QACtC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,uFAAuF;QACvF,SAAS,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;QAChC,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;QAC/B,IAAI,EAAE,OAAO,CAAC;QACd,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,oHAAoH;QACpH,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,EAAE,CAAC;IACJ,QAAQ,EAAE;QACR,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;QACd,CAAC,EAAE,MAAM,CAAC;QACV,IAAI,EAAE,YAAY,GAAG,MAAM,CAAC;QAC5B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;QAC/B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB;;;WAGG;QACH,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;QACzB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,sEAAsE;QACtE,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,IAAI,GAAG,SAAS,GAAG,SAAS,CAAC;QACxC,oEAAoE;QACpE,QAAQ,EAAE,OAAO,CAAC;QAClB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;QACjC,mGAAmG;QACnG,eAAe,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;KACvC,EAAE,CAAC;IACJ,GAAG,EAAE;QACH,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;QACvB,KAAK,EAAE,UAAU,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,aAAa,GAAG,YAAY,CAAC;QACtF,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,kHAAkH;QAClH,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,oGAAoG;QACpG,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;QAC3B,IAAI,EAAE;YAAE,eAAe,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAAA;SAAE,GAAG,IAAI,CAAC;QACnF,gBAAgB,EAAE,MAAM,EAAE,CAAC;QAC3B,MAAM,EAAE;YAAE,KAAK,EAAE,OAAO,CAAC;YAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;YAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;SAAE,CAAC;QAC9E,4FAA4F;QAC5F,SAAS,EAAE,OAAO,CAAC;KACpB,EAAE,CAAC;IACJ,IAAI,EAAE;QACJ,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,QAAQ,EAAE,MAAM,CAAC;QACjB,kFAAkF;QAClF,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,SAAS,EAAE,IAAI,GAAG,SAAS,GAAG,SAAS,CAAC;QACxC,MAAM,EAAE,OAAO,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;KAChB,GAAG,IAAI,CAAC;IACT,WAAW,EAAE;QACX,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,QAAQ,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,UAAU,CAAC;YAAC,EAAE,EAAE,MAAM,CAAC;YAAC,YAAY,EAAE,MAAM,EAAE,CAAA;SAAE,EAAE,CAAC;QACtG;;;;WAIG;QACH,YAAY,CAAC,EAAE;YAAE,UAAU,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;KACxD,CAAC;IACF,4DAA4D;IAC5D,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC/C,iDAAiD;IACjD,QAAQ,EAAE,CAAC,kBAAkB,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,EAAE,CAAC;IAC/E,kGAAkG;IAClG,KAAK,CAAC,EAAE,kBAAkB,EAAE,CAAC;CAC9B,CAAC;AAEF,6GAA6G;AAC7G,MAAM,MAAM,iBAAiB,GAAG,kBAAkB,GAAG;IAAE,SAAS,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AACxF,MAAM,MAAM,eAAe,GAAG;IAAE,IAAI,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,kBAAkB,CAAA;CAAE,CAAC;AAC1G,MAAM,MAAM,cAAc,GAAG;IAAE,EAAE,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IAAC,IAAI,EAAE,kBAAkB,CAAA;CAAE,CAAC;AACxG,MAAM,MAAM,kBAAkB,GAAG;IAAE,MAAM,EAAE,kBAAkB,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;IAAC,IAAI,EAAE,kBAAkB,CAAA;CAAE,CAAC;AAC7H,MAAM,MAAM,sBAAsB,GAAG;IAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,kBAAkB,CAAA;CAAE,CAAC;AACnG,MAAM,MAAM,kBAAkB,GAAG;IAAE,OAAO,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,kBAAkB,CAAA;CAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"slate-view.d.ts","sourceRoot":"","sources":["../src/slate-view.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAA4D,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE7H,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE;;;;GAIG;AAEH,MAAM,MAAM,eAAe,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC;AAEnE,eAAO,MAAM,aAAa,GAAI,WAAW,MAAM,EAAE,aAAa,MAAM,EAAE,WAAW,MAAM,EAAE,QAAQ,MAAM,KAAG,MAEzG,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,WAAW,MAAM,EAAE,aAAa,MAAM,EAAE,WAAW,MAAM,EAAE,QAAQ,MAAM,KAAG,MAE5G,CAAC;AAaF,eAAO,MAAM,SAAS,GAAU,MAAM;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,cAAc,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,IAAI,CAAC;IACV,KAAK,EAAE,eAAe,CAAC;CACxB,KAAG,OAAO,CAAC,kBAAkB,CA6K7B,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,OAAO,eAAe,KAAG,kBAgBjD,CAAC"}
1
+ {"version":3,"file":"slate-view.d.ts","sourceRoot":"","sources":["../src/slate-view.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAA4D,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE7H,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE;;;;GAIG;AAEH,MAAM,MAAM,eAAe,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC;AAEnE,eAAO,MAAM,aAAa,GAAI,WAAW,MAAM,EAAE,aAAa,MAAM,EAAE,WAAW,MAAM,EAAE,QAAQ,MAAM,KAAG,MAEzG,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,WAAW,MAAM,EAAE,aAAa,MAAM,EAAE,WAAW,MAAM,EAAE,QAAQ,MAAM,KAAG,MAE5G,CAAC;AAaF,eAAO,MAAM,SAAS,GAAU,MAAM;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,cAAc,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,IAAI,CAAC;IACV,KAAK,EAAE,eAAe,CAAC;CACxB,KAAG,OAAO,CAAC,kBAAkB,CAkL7B,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,OAAO,eAAe,KAAG,kBAgBjD,CAAC"}
@@ -108,6 +108,7 @@ export const buildView = async (args) => {
108
108
  busyOpId: busy?.opId ?? null,
109
109
  latestOpId: candidate.latestOpId,
110
110
  referenceId: candidate.referenceId,
111
+ ...(candidate.page ? { page: candidate.page } : {}),
111
112
  };
112
113
  });
113
114
  const rounds = workspace.rounds.map((round) => {
@@ -178,6 +179,10 @@ export const buildView = async (args) => {
178
179
  },
179
180
  references: referenceMetadata(workspace),
180
181
  handoffs,
182
+ // The local plugin's screenshots come through the reference tool, so they carry no URL.
183
+ ...(workspace.sites && workspace.sites.length > 0 ? {
184
+ sites: workspace.sites.map((site) => ({ id: site.referenceId, imageUrl: null, thumbUrl: null, title: site.title, sourceUrl: site.url, why: site.why })),
185
+ } : {}),
181
186
  };
182
187
  };
183
188
  export const emptyView = (local) => ({