@12ui/design 0.2.92 → 0.2.94

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 (216) hide show
  1. package/SKILL.md +1 -1
  2. package/dist/branch-client.d.ts +8 -0
  3. package/dist/branch-client.d.ts.map +1 -1
  4. package/dist/branch-client.js +1 -0
  5. package/dist/branch-client.js.map +1 -1
  6. package/dist/branch-completion.d.ts +2 -0
  7. package/dist/branch-completion.d.ts.map +1 -1
  8. package/dist/branch-completion.js +1 -1
  9. package/dist/branch-completion.js.map +1 -1
  10. package/dist/branch-core/branch-planner.d.ts +25 -11
  11. package/dist/branch-core/branch-planner.d.ts.map +1 -1
  12. package/dist/branch-core/branch-planner.js +67 -25
  13. package/dist/branch-core/branch-planner.js.map +1 -1
  14. package/dist/branch-core/branch-scope.d.ts +73 -0
  15. package/dist/branch-core/branch-scope.d.ts.map +1 -0
  16. package/dist/branch-core/branch-scope.js +88 -0
  17. package/dist/branch-core/branch-scope.js.map +1 -0
  18. package/dist/branch-core/index.d.ts +2 -1
  19. package/dist/branch-core/index.d.ts.map +1 -1
  20. package/dist/branch-core/index.js +1 -0
  21. package/dist/branch-core/index.js.map +1 -1
  22. package/dist/branch-execution.d.ts +14 -1
  23. package/dist/branch-execution.d.ts.map +1 -1
  24. package/dist/branch-execution.js +56 -13
  25. package/dist/branch-execution.js.map +1 -1
  26. package/dist/branch-identity.d.ts +22 -1
  27. package/dist/branch-identity.d.ts.map +1 -1
  28. package/dist/branch-identity.js +23 -4
  29. package/dist/branch-identity.js.map +1 -1
  30. package/dist/branch-local-client.d.ts.map +1 -1
  31. package/dist/branch-local-client.js +2 -1
  32. package/dist/branch-local-client.js.map +1 -1
  33. package/dist/branch-local-plan.d.ts +3 -0
  34. package/dist/branch-local-plan.d.ts.map +1 -1
  35. package/dist/branch-local-plan.js +1 -0
  36. package/dist/branch-local-plan.js.map +1 -1
  37. package/dist/branch-page-conversion.js +1 -1
  38. package/dist/branch-page-conversion.js.map +1 -1
  39. package/dist/branch-page-rollover.js +2 -2
  40. package/dist/branch-page-rollover.js.map +1 -1
  41. package/dist/branch-plan.d.ts +9 -0
  42. package/dist/branch-plan.d.ts.map +1 -1
  43. package/dist/branch-plan.js +3 -0
  44. package/dist/branch-plan.js.map +1 -1
  45. package/dist/branch-run-outcome.d.ts +24 -0
  46. package/dist/branch-run-outcome.d.ts.map +1 -0
  47. package/dist/branch-run-outcome.js +31 -0
  48. package/dist/branch-run-outcome.js.map +1 -0
  49. package/dist/branch-run-record.d.ts +13 -0
  50. package/dist/branch-run-record.d.ts.map +1 -1
  51. package/dist/branch-run-record.js.map +1 -1
  52. package/dist/branch-run-supersede.d.ts +41 -0
  53. package/dist/branch-run-supersede.d.ts.map +1 -0
  54. package/dist/branch-run-supersede.js +64 -0
  55. package/dist/branch-run-supersede.js.map +1 -0
  56. package/dist/cli-arguments.d.ts.map +1 -1
  57. package/dist/cli-arguments.js +1 -0
  58. package/dist/cli-arguments.js.map +1 -1
  59. package/dist/cli-branch-command.d.ts.map +1 -1
  60. package/dist/cli-branch-command.js +13 -1
  61. package/dist/cli-branch-command.js.map +1 -1
  62. package/dist/cli-help/design.d.ts +2 -2
  63. package/dist/cli-help/design.d.ts.map +1 -1
  64. package/dist/cli-help/design.js +2 -1
  65. package/dist/cli-help/design.js.map +1 -1
  66. package/dist/cli-help/index.d.ts +2 -2
  67. package/dist/cli-workspace-command.d.ts.map +1 -1
  68. package/dist/cli-workspace-command.js +3 -0
  69. package/dist/cli-workspace-command.js.map +1 -1
  70. package/dist/mcp-slate-tools.d.ts +8 -1
  71. package/dist/mcp-slate-tools.d.ts.map +1 -1
  72. package/dist/mcp-slate-tools.js +67 -35
  73. package/dist/mcp-slate-tools.js.map +1 -1
  74. package/dist/mcp-slate-ui-copy.d.ts +16 -6
  75. package/dist/mcp-slate-ui-copy.d.ts.map +1 -1
  76. package/dist/mcp-slate-ui-copy.js +11 -4
  77. package/dist/mcp-slate-ui-copy.js.map +1 -1
  78. package/dist/mcp-slate-ui-locales/de-DE.d.ts.map +1 -1
  79. package/dist/mcp-slate-ui-locales/de-DE.js +8 -3
  80. package/dist/mcp-slate-ui-locales/de-DE.js.map +1 -1
  81. package/dist/mcp-slate-ui-locales/es-419.d.ts.map +1 -1
  82. package/dist/mcp-slate-ui-locales/es-419.js +8 -3
  83. package/dist/mcp-slate-ui-locales/es-419.js.map +1 -1
  84. package/dist/mcp-slate-ui-locales/es-ES.d.ts.map +1 -1
  85. package/dist/mcp-slate-ui-locales/es-ES.js +8 -3
  86. package/dist/mcp-slate-ui-locales/es-ES.js.map +1 -1
  87. package/dist/mcp-slate-ui-locales/fr-FR.d.ts.map +1 -1
  88. package/dist/mcp-slate-ui-locales/fr-FR.js +8 -3
  89. package/dist/mcp-slate-ui-locales/fr-FR.js.map +1 -1
  90. package/dist/mcp-slate-ui-locales/hi-IN.d.ts.map +1 -1
  91. package/dist/mcp-slate-ui-locales/hi-IN.js +8 -3
  92. package/dist/mcp-slate-ui-locales/hi-IN.js.map +1 -1
  93. package/dist/mcp-slate-ui-locales/it-IT.d.ts.map +1 -1
  94. package/dist/mcp-slate-ui-locales/it-IT.js +7 -2
  95. package/dist/mcp-slate-ui-locales/it-IT.js.map +1 -1
  96. package/dist/mcp-slate-ui-locales/ja-JP.d.ts.map +1 -1
  97. package/dist/mcp-slate-ui-locales/ja-JP.js +7 -2
  98. package/dist/mcp-slate-ui-locales/ja-JP.js.map +1 -1
  99. package/dist/mcp-slate-ui-locales/ko-KR.d.ts.map +1 -1
  100. package/dist/mcp-slate-ui-locales/ko-KR.js +8 -3
  101. package/dist/mcp-slate-ui-locales/ko-KR.js.map +1 -1
  102. package/dist/mcp-slate-ui-locales/pt-BR.d.ts.map +1 -1
  103. package/dist/mcp-slate-ui-locales/pt-BR.js +8 -3
  104. package/dist/mcp-slate-ui-locales/pt-BR.js.map +1 -1
  105. package/dist/mcp-slate-ui-locales/zh-CN.d.ts.map +1 -1
  106. package/dist/mcp-slate-ui-locales/zh-CN.js +8 -3
  107. package/dist/mcp-slate-ui-locales/zh-CN.js.map +1 -1
  108. package/dist/mcp-slate-ui-locales/zh-TW.d.ts.map +1 -1
  109. package/dist/mcp-slate-ui-locales/zh-TW.js +8 -3
  110. package/dist/mcp-slate-ui-locales/zh-TW.js.map +1 -1
  111. package/dist/mcp-slate-ui-script-designs.d.ts.map +1 -1
  112. package/dist/mcp-slate-ui-script-designs.js +25 -4
  113. package/dist/mcp-slate-ui-script-designs.js.map +1 -1
  114. package/dist/mcp-slate-ui-script-inspiration-gallery.d.ts +4 -2
  115. package/dist/mcp-slate-ui-script-inspiration-gallery.d.ts.map +1 -1
  116. package/dist/mcp-slate-ui-script-inspiration-gallery.js +21 -3
  117. package/dist/mcp-slate-ui-script-inspiration-gallery.js.map +1 -1
  118. package/dist/mcp-slate-ui-script-loading.d.ts +11 -0
  119. package/dist/mcp-slate-ui-script-loading.d.ts.map +1 -0
  120. package/dist/mcp-slate-ui-script-loading.js +19 -0
  121. package/dist/mcp-slate-ui-script-loading.js.map +1 -0
  122. package/dist/mcp-slate-ui-script-references.d.ts +7 -2
  123. package/dist/mcp-slate-ui-script-references.d.ts.map +1 -1
  124. package/dist/mcp-slate-ui-script-references.js +16 -5
  125. package/dist/mcp-slate-ui-script-references.js.map +1 -1
  126. package/dist/mcp-slate-ui-script-remote.js +2 -2
  127. package/dist/mcp-slate-ui-script-state.d.ts.map +1 -1
  128. package/dist/mcp-slate-ui-script-state.js +3 -1
  129. package/dist/mcp-slate-ui-script-state.js.map +1 -1
  130. package/dist/mcp-slate-ui-script-viewer.d.ts +4 -3
  131. package/dist/mcp-slate-ui-script-viewer.d.ts.map +1 -1
  132. package/dist/mcp-slate-ui-script-viewer.js +13 -4
  133. package/dist/mcp-slate-ui-script-viewer.js.map +1 -1
  134. package/dist/mcp-slate-ui-script.d.ts +1 -1
  135. package/dist/mcp-slate-ui-script.d.ts.map +1 -1
  136. package/dist/mcp-slate-ui-script.js +2 -0
  137. package/dist/mcp-slate-ui-script.js.map +1 -1
  138. package/dist/mcp-slate-ui-styles-designs.d.ts.map +1 -1
  139. package/dist/mcp-slate-ui-styles-designs.js +7 -0
  140. package/dist/mcp-slate-ui-styles-designs.js.map +1 -1
  141. package/dist/mcp-slate-ui-styles-loading-effects.d.ts +14 -0
  142. package/dist/mcp-slate-ui-styles-loading-effects.d.ts.map +1 -0
  143. package/dist/mcp-slate-ui-styles-loading-effects.js +67 -0
  144. package/dist/mcp-slate-ui-styles-loading-effects.js.map +1 -0
  145. package/dist/mcp-slate-ui-styles-loading.d.ts +11 -4
  146. package/dist/mcp-slate-ui-styles-loading.d.ts.map +1 -1
  147. package/dist/mcp-slate-ui-styles-loading.js +17 -14
  148. package/dist/mcp-slate-ui-styles-loading.js.map +1 -1
  149. package/dist/mcp-slate-workspace-tools.js +2 -2
  150. package/dist/mcp-slate-workspace-tools.js.map +1 -1
  151. package/dist/prototype-browsers.d.ts +8 -2
  152. package/dist/prototype-browsers.d.ts.map +1 -1
  153. package/dist/prototype-browsers.js +11 -5
  154. package/dist/prototype-browsers.js.map +1 -1
  155. package/dist/server.js +3 -3
  156. package/dist/server.js.map +1 -1
  157. package/dist/slate-branch-runner.d.ts.map +1 -1
  158. package/dist/slate-branch-runner.js +19 -2
  159. package/dist/slate-branch-runner.js.map +1 -1
  160. package/dist/slate-retry.d.ts +2 -1
  161. package/dist/slate-retry.d.ts.map +1 -1
  162. package/dist/slate-retry.js +32 -0
  163. package/dist/slate-retry.js.map +1 -1
  164. package/dist/slate-run-action.js +9 -4
  165. package/dist/slate-run-action.js.map +1 -1
  166. package/dist/slate-site-gathering.d.ts +13 -0
  167. package/dist/slate-site-gathering.d.ts.map +1 -0
  168. package/dist/slate-site-gathering.js +21 -0
  169. package/dist/slate-site-gathering.js.map +1 -0
  170. package/dist/slate-site-references-capture.d.ts +25 -4
  171. package/dist/slate-site-references-capture.d.ts.map +1 -1
  172. package/dist/slate-site-references-capture.js +66 -22
  173. package/dist/slate-site-references-capture.js.map +1 -1
  174. package/dist/slate-site-references-client.d.ts +3 -1
  175. package/dist/slate-site-references-client.d.ts.map +1 -1
  176. package/dist/slate-site-references-client.js +2 -0
  177. package/dist/slate-site-references-client.js.map +1 -1
  178. package/dist/slate-site-references-local.d.ts +9 -3
  179. package/dist/slate-site-references-local.d.ts.map +1 -1
  180. package/dist/slate-site-references-local.js +42 -17
  181. package/dist/slate-site-references-local.js.map +1 -1
  182. package/dist/slate-site-references.d.ts +24 -4
  183. package/dist/slate-site-references.d.ts.map +1 -1
  184. package/dist/slate-site-references.js +104 -20
  185. package/dist/slate-site-references.js.map +1 -1
  186. package/dist/slate-view-contract.d.ts +20 -1
  187. package/dist/slate-view-contract.d.ts.map +1 -1
  188. package/dist/slate-view-contract.js +3 -1
  189. package/dist/slate-view-contract.js.map +1 -1
  190. package/dist/slate-view.d.ts +7 -0
  191. package/dist/slate-view.d.ts.map +1 -1
  192. package/dist/slate-view.js +19 -2
  193. package/dist/slate-view.js.map +1 -1
  194. package/dist/slate-workspace-parse.d.ts.map +1 -1
  195. package/dist/slate-workspace-parse.js +5 -0
  196. package/dist/slate-workspace-parse.js.map +1 -1
  197. package/dist/slate-workspace-types.d.ts +10 -0
  198. package/dist/slate-workspace-types.d.ts.map +1 -1
  199. package/dist/workspace-draw-branch.d.ts +2 -1
  200. package/dist/workspace-draw-branch.d.ts.map +1 -1
  201. package/dist/workspace-draw-branch.js +14 -5
  202. package/dist/workspace-draw-branch.js.map +1 -1
  203. package/dist/workspace-draw-client.d.ts +1 -0
  204. package/dist/workspace-draw-client.d.ts.map +1 -1
  205. package/dist/workspace-draw-client.js +6 -3
  206. package/dist/workspace-draw-client.js.map +1 -1
  207. package/dist/workspace-draw-messages.d.ts +13 -0
  208. package/dist/workspace-draw-messages.d.ts.map +1 -1
  209. package/dist/workspace-draw-messages.js +17 -0
  210. package/dist/workspace-draw-messages.js.map +1 -1
  211. package/dist/workspace-draw-types.d.ts +1 -0
  212. package/dist/workspace-draw-types.d.ts.map +1 -1
  213. package/dist/workspace-draw-types.js +2 -0
  214. package/dist/workspace-draw-types.js.map +1 -1
  215. package/open-design.json +2 -2
  216. package/package.json +1 -1
@@ -9,6 +9,7 @@ import { branchRunDirectory, ensureRealDirectory, versionImageFile } from './sla
9
9
  import { failure, patchOp, setPhase } from './slate-runner-context.js';
10
10
  import { readVersionBytes, writeImageOnce } from './slate-versions.js';
11
11
  import { findRound, loadWorkspaceAt } from './slate-workspace-store.js';
12
+ import { branchRunOutcome } from './branch-run-outcome.js';
12
13
  const POLL_MS = 1_500;
13
14
  /**
14
15
  * The branch service's own caps (packages/layerdoc/src/branch-core/branch-planner.ts): at most 8 screens (slots a-h) across the
@@ -180,7 +181,9 @@ export const followBranchRun = async (args) => {
180
181
  const resumed = await branchRunStarted(args.runDir);
181
182
  const argv = [
182
183
  'branch', 'execute', '--start', start, '--scope', args.scope, '--concept', args.concept, '--out-dir', args.runDir, '--quiet',
183
- ...(resumed ? ['--resume'] : args.engine ? ['--engine', args.engine] : []),
184
+ // A rerun of the op is a Resume or the person's Retry: `--retry` lets a run that settled without drawing a screen be
185
+ // planned afresh (branch-run-supersede.ts); a run with screens, or still going, resumes as it is.
186
+ ...(resumed ? ['--resume', '--retry'] : args.engine ? ['--engine', args.engine] : []),
184
187
  ];
185
188
  await args.log({ event: 'branch_started', scope: args.scope, resumed, ...(resumed || !args.engine ? {} : { engine: args.engine }) });
186
189
  const child = args.launch({ cwd: args.runDir, argv });
@@ -323,6 +326,20 @@ export const runBranch = async (env, op) => {
323
326
  const own = after.candidates.filter((candidate) => candidate.roundId === params.roundId);
324
327
  if (own.some((candidate) => candidate.versionIds.length > 0))
325
328
  return { state: 'succeeded' };
326
- return failure('all_options_failed', `The branch run ended (exit ${code}) without a page. Its record is in ${branchDir}.`, { retryable: true }, { code: 'no_option_drawn' });
329
+ if (own.length > 0) {
330
+ // Every planned screen failed: each tile already says so.
331
+ await env.log({ event: 'branch_no_screen', exitCode: code, record: branchDir });
332
+ return failure('all_options_failed', 'No screen of this branch could be drawn.', { retryable: true }, { code: 'no_option_drawn' });
333
+ }
334
+ // The run named no page: why, from its own records (branch-run-outcome.ts). A design that already ends with its
335
+ // footer is the planner's own answer, said in place of the board without alarm; anything else is a failure whose
336
+ // reason the row shows in words, and its Retry runs the branch again from a fresh plan (slate-retry.ts).
337
+ const outcome = await branchRunOutcome(branchDir);
338
+ await env.log({ event: 'branch_unplanned', outcome: outcome.kind, exitCode: code, record: branchDir });
339
+ if (outcome.kind === 'ended') {
340
+ await patchOp(env, (_op, ws) => { findRound(ws, params.roundId).ended = { message: outcome.sentence, code: outcome.code }; });
341
+ return { state: 'succeeded' };
342
+ }
343
+ return failure(outcome.code, outcome.sentence, { retryable: true }, { code: outcome.code });
327
344
  };
328
345
  //# sourceMappingURL=slate-branch-runner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"slate-branch-runner.js","sourceRoot":"","sources":["../src/slate-branch-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slate-branch-runner.js","sourceRoot":"","sources":["../src/slate-branch-runner.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,8 @@ export declare const retryOption: (args: {
16
16
  root: string;
17
17
  stateRoot: string;
18
18
  opId: string;
19
- option: string;
19
+ /** The failed option's label; null for a branch that ended without a screen. */
20
+ option: string | null;
20
21
  now?: () => Date;
21
22
  }) => Promise<RetryOutcome>;
22
23
  //# sourceMappingURL=slate-retry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"slate-retry.d.ts","sourceRoot":"","sources":["../src/slate-retry.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,OAAO,EAAoB,MAAM,4BAA4B,CAAC;AAE5E;;;;;;;;GAQG;AAEH,MAAM,MAAM,YAAY,GAAG;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC;AAE3D,eAAO,MAAM,WAAW,GAAU,MAAM;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB,KAAG,OAAO,CAAC,YAAY,CAmCvB,CAAC"}
1
+ {"version":3,"file":"slate-retry.d.ts","sourceRoot":"","sources":["../src/slate-retry.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,OAAO,EAAoC,MAAM,4BAA4B,CAAC;AAE5F;;;;;;;;GAQG;AAEH,MAAM,MAAM,YAAY,GAAG;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC;AA6B3D,eAAO,MAAM,WAAW,GAAU,MAAM;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,gFAAgF;IAChF,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB,KAAG,OAAO,CAAC,YAAY,CAoCvB,CAAC"}
@@ -5,12 +5,44 @@ import { deriveOpState, readRunnerState } from './slate-liveness.js';
5
5
  import { holderState, staleWhenHeartbeatLapsed, takeOverStale } from './slate-lock.js';
6
6
  import { opLockFile } from './slate-paths.js';
7
7
  import { NoWrite, mutateWorkspace } from './slate-workspace-store.js';
8
+ /**
9
+ * Retry of a branch whose run ended without a screen (`option` null: it planned no page, so it has no option to name).
10
+ * The round's own op runs again on a new runner; its `branch execute --resume` finds the settled run that drew nothing,
11
+ * keeps it aside, and plans afresh (branch-run-supersede.ts). Refused, with its reason, when the op is not a failed
12
+ * branch, or when its round has options (each failed screen is its own matter).
13
+ */
14
+ const reopenFailedBranch = async (args, ws, op, at) => {
15
+ const params = op.params;
16
+ if (op.kind !== 'round' || params.mode !== 'branch')
17
+ throw new SlateError('invalid_input', 'A retry names the option to draw again (option).');
18
+ if (op.state === 'running')
19
+ return new NoWrite({ op, spawn: false });
20
+ if (op.state !== 'failed' || ws.candidates.some((candidate) => candidate.roundId === params.roundId)) {
21
+ throw new SlateError('invalid_input', 'Only a branch that ended without a screen can be run again this way.');
22
+ }
23
+ const round = ws.rounds.find((entry) => entry.roundId === params.roundId);
24
+ if (round)
25
+ delete round.screens;
26
+ const approval = await getApproval(args.stateRoot, ws.workspaceId, op.opId);
27
+ if (approval?.settledAt)
28
+ await reopenApproval({ stateRoot: args.stateRoot, workspaceId: ws.workspaceId, opId: op.opId });
29
+ op.state = 'running';
30
+ op.error = null;
31
+ op.finishedAt = null;
32
+ op.attempt += 1;
33
+ op.owner = null;
34
+ op.spawnedAt = null;
35
+ await appendLedger(args.root, { event: 'retried', opId: op.opId, option: null, retries: op.attempt, at: at.toISOString() });
36
+ return { op, spawn: true };
37
+ };
8
38
  export const retryOption = async (args) => (await mutateWorkspace(args.root, async (ws, context) => {
9
39
  const op = ws.ops.find((entry) => entry.opId === args.opId);
10
40
  if (!op)
11
41
  throw new SlateError('not_found', `Unknown op ${args.opId}`);
12
42
  if (op.kind !== 'round')
13
43
  throw new SlateError('invalid_input', 'Only an option of a round can be drawn again.');
44
+ if (args.option === null)
45
+ return await reopenFailedBranch(args, ws, op, context.now);
14
46
  const { roundId } = op.params;
15
47
  const candidate = ws.candidates.find((entry) => entry.roundId === roundId && entry.label === args.option);
16
48
  if (!candidate)
@@ -1 +1 @@
1
- {"version":3,"file":"slate-retry.js","sourceRoot":"","sources":["../src/slate-retry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slate-retry.js","sourceRoot":"","sources":["../src/slate-retry.ts"],"names":[],"mappings":"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"}
@@ -64,7 +64,7 @@ export const runAction = async (args) => {
64
64
  const opId = requireOpId(args.opId);
65
65
  const retry = retryOf(args.actionInput);
66
66
  if (retry !== null)
67
- return await retryAction({ runtime, root, opId, option: retry });
67
+ return await retryAction({ runtime, root, opId, option: retry.option });
68
68
  const action = normalizeAction(args.actionInput);
69
69
  const { workspace } = await loadWorkspaceAt(root, runtime.now);
70
70
  // A repeated click on an op that already exists must answer with that op, whatever the probe says now.
@@ -89,14 +89,19 @@ export const resumeAction = async (args) => {
89
89
  await spawnRunnerOnce(runtime, root, opId);
90
90
  return (await loadWorkspaceAt(root, runtime.now)).workspace.ops.find((op) => op.opId === opId) ?? outcome.op;
91
91
  };
92
- /** The failed option a `retry` action names (its label), or null for every other action. */
92
+ /**
93
+ * What a `retry` action names: the failed option (its label), or none for a branch that ended without a screen; null
94
+ * for every other action.
95
+ */
93
96
  const retryOf = (value) => {
94
97
  if (!value || typeof value !== 'object' || value.kind !== 'retry')
95
98
  return null;
96
99
  const option = value.option;
100
+ if (option === undefined || option === null)
101
+ return { option: null };
97
102
  if (typeof option !== 'string' || !option.trim())
98
- throw new SlateError('invalid_input', 'A retry names the option to draw again (option).');
99
- return option.trim();
103
+ throw new SlateError('invalid_input', 'A retry names the option to draw again (option), or none for a branch that ended without a screen.');
104
+ return { option: option.trim() };
100
105
  };
101
106
  /** Retry: the round's own op draws the failed option again on a new runner (slate-retry.ts). */
102
107
  const retryAction = async (args) => {
@@ -1 +1 @@
1
- {"version":3,"file":"slate-run-action.js","sourceRoot":"","sources":["../src/slate-run-action.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slate-run-action.js","sourceRoot":"","sources":["../src/slate-run-action.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Which workspaces this process is gathering website references for right now (the local plugin's References tab,
3
+ * `slate-site-references-local.ts`). The gather runs in the screen's own host (`12ui mcp`, or `12ui workspace open`'s
4
+ * page), the same process that builds that screen's view, so the view can say a gather is running (`gatheringSites`)
5
+ * and the tab says it is finding sites instead of "No websites" until the gather ends. A process that stops takes its
6
+ * gathers with it, so nothing here can outlive the work it describes.
7
+ */
8
+ export declare const startedGathering: (root: string) => void;
9
+ export declare const endedGathering: (root: string) => void;
10
+ export declare const isGathering: (root: string | null) => boolean;
11
+ /** Appended to a view's stamp while its workspace gathers, so a screen polling with `since` sees the gather end. */
12
+ export declare const GATHERING_STAMP = ":gathering";
13
+ //# sourceMappingURL=slate-site-gathering.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slate-site-gathering.d.ts","sourceRoot":"","sources":["../src/slate-site-gathering.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,eAAO,MAAM,gBAAgB,GAAI,MAAM,MAAM,KAAG,IAAgE,CAAC;AACjH,eAAO,MAAM,cAAc,GAAI,MAAM,MAAM,KAAG,IAI7C,CAAC;AACF,eAAO,MAAM,WAAW,GAAI,MAAM,MAAM,GAAG,IAAI,KAAG,OAA+C,CAAC;AAElG,oHAAoH;AACpH,eAAO,MAAM,eAAe,eAAe,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Which workspaces this process is gathering website references for right now (the local plugin's References tab,
3
+ * `slate-site-references-local.ts`). The gather runs in the screen's own host (`12ui mcp`, or `12ui workspace open`'s
4
+ * page), the same process that builds that screen's view, so the view can say a gather is running (`gatheringSites`)
5
+ * and the tab says it is finding sites instead of "No websites" until the gather ends. A process that stops takes its
6
+ * gathers with it, so nothing here can outlive the work it describes.
7
+ */
8
+ /** Gathers running per workspace root (two screen hosts in one process may each gather the same workspace). */
9
+ const gathering = new Map();
10
+ export const startedGathering = (root) => { gathering.set(root, (gathering.get(root) ?? 0) + 1); };
11
+ export const endedGathering = (root) => {
12
+ const left = (gathering.get(root) ?? 1) - 1;
13
+ if (left > 0)
14
+ gathering.set(root, left);
15
+ else
16
+ gathering.delete(root);
17
+ };
18
+ export const isGathering = (root) => root !== null && gathering.has(root);
19
+ /** Appended to a view's stamp while its workspace gathers, so a screen polling with `since` sees the gather end. */
20
+ export const GATHERING_STAMP = ':gathering';
21
+ //# sourceMappingURL=slate-site-gathering.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slate-site-gathering.js","sourceRoot":"","sources":["../src/slate-site-gathering.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,+GAA+G;AAC/G,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;AAE5C,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAQ,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,IAAY,EAAQ,EAAE;IACnD,MAAM,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAC5C,IAAI,IAAI,GAAG,CAAC;QAAE,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;;QACnC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC,CAAC;AACF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAmB,EAAW,EAAE,CAAC,IAAI,KAAK,IAAI,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAElG,oHAAoH;AACpH,MAAM,CAAC,MAAM,eAAe,GAAG,YAAY,CAAC"}
@@ -1,21 +1,38 @@
1
1
  import { type PrototypeBrowserProvisioning } from './prototype-browsers.js';
2
2
  /**
3
3
  * The capture step of the References tab: each suggested site opened headless in the Playwright Chromium the CLI
4
- * already ships, at a desktop viewport, and photographed above the fold once the page has settled, with a trivial
5
- * cookie banner accepted first. A page that does not open, answers an error, or stays blank is skipped (null).
4
+ * already ships, at a desktop viewport, and photographed above the fold, with a trivial cookie banner accepted first.
5
+ * A page that does not open, answers an error, or stays blank is skipped (null).
6
+ *
7
+ * Two frames per page. The early frame is taken as soon as the page has loaded and the pop-ups already showing are
8
+ * cleared, and handed over at once (`onEarly`), so the tab shows the site without waiting out the pop-up settle. The
9
+ * settled frame is taken once the settle time has passed (marketing pop-ups arrive on a timer), and it replaces the
10
+ * early one (`replacesEarly`) only when the page changed after it: a pop-up was cleared or hidden after the early frame,
11
+ * or the two pictures differ materially. That policy lives here and nowhere else.
6
12
  */
7
13
  export declare const CAPTURE_VIEWPORT: {
8
14
  readonly width: 1440;
9
15
  readonly height: 900;
10
16
  };
11
- /** `lastOverlayMs`: when, after navigation, the last banner or pop-up was cleared (null when none was). */
17
+ /** Below this mean difference (0-1, grey levels at 64x40) the settled frame shows the same page as the early one. */
18
+ export declare const MATERIAL_DIFFERENCE = 0.02;
19
+ /**
20
+ * `lastOverlayMs`: when, after navigation, the last banner or pop-up was cleared (null when none was). On the settled
21
+ * frame of a page whose early frame was handed over: `replacesEarly` says it should replace that frame, `difference` is
22
+ * how far the two pictures are apart, and `overlaysAfterEarly` how many pop-ups were cleared or hidden after it.
23
+ */
12
24
  export type CapturedSite = {
13
25
  image: Buffer;
14
26
  thumb: Buffer;
15
27
  title: string;
16
28
  finalUrl: string;
17
29
  lastOverlayMs?: number | null;
30
+ replacesEarly?: boolean;
31
+ difference?: number;
32
+ overlaysAfterEarly?: number;
18
33
  };
34
+ /** Called with the early frame while the capture goes on to settle; the capture never waits for it. */
35
+ export type EarlyFrame = (frame: CapturedSite) => void;
19
36
  type PageLike = {
20
37
  goto(url: string, options: Record<string, unknown>): Promise<{
21
38
  status(): number;
@@ -42,7 +59,11 @@ export type CaptureBrowserDependencies = {
42
59
  provisioning?: () => Promise<PrototypeBrowserProvisioning>;
43
60
  launch?: () => Promise<BrowserLike>;
44
61
  install?: (provisioning: PrototypeBrowserProvisioning) => Promise<void>;
62
+ /** The settle clock (tests advance it from the page's waits). */
63
+ now?: () => number;
45
64
  };
65
+ /** How far apart two frames are: the mean difference of their grey levels at 64x40, from 0 (same) to 1. */
66
+ export declare const frameDifference: (a: Buffer, b: Buffer) => Promise<number>;
46
67
  /**
47
68
  * The managed Chromium, installed first when this home has none: a fresh home (a new person's first `npx`) has no
48
69
  * browser, and its References tab stayed empty (seen on design.12ui.com with 0.2.81, 2026-10-02). Any other launch
@@ -50,7 +71,7 @@ export type CaptureBrowserDependencies = {
50
71
  */
51
72
  export declare const launchCaptureBrowser: (deps?: CaptureBrowserDependencies) => Promise<BrowserLike>;
52
73
  export declare const openSiteCapture: (deps?: CaptureBrowserDependencies) => Promise<{
53
- capture: (url: string) => Promise<CapturedSite | null>;
74
+ capture: (url: string, onEarly?: EarlyFrame) => Promise<CapturedSite | null>;
54
75
  close: () => Promise<void>;
55
76
  }>;
56
77
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"slate-site-references-capture.d.ts","sourceRoot":"","sources":["../src/slate-site-references-capture.ts"],"names":[],"mappings":"AAEA,OAAO,EAIL,KAAK,4BAA4B,EAClC,MAAM,yBAAyB,CAAC;AAEjC;;;;GAIG;AAEH,eAAO,MAAM,gBAAgB;;;CAAwC,CAAC;AAUtE,2GAA2G;AAC3G,MAAM,MAAM,YAAY,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC;AAE5H,KAAK,QAAQ,GAAG;IACd,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC;QAAE,MAAM,IAAI,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;IAC1F,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjF,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACxC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9D,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACzB,GAAG,IAAI,MAAM,CAAC;IACd,QAAQ,EAAE;QAAE,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;KAAE,CAAC;CACjD,CAAC;AACF,KAAK,WAAW,GAAG;IAAE,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;IAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAAC;AAC5E,MAAM,MAAM,WAAW,GAAG;IAAE,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAAC;AA+DzH,MAAM,MAAM,0BAA0B,GAAG;IACvC,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,4BAA4B,CAAC,CAAC;IAC3D,MAAM,CAAC,EAAE,MAAM,OAAO,CAAC,WAAW,CAAC,CAAC;IACpC,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE,4BAA4B,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACzE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAAU,OAAM,0BAA+B,KAAG,OAAO,CAAC,WAAW,CAWrG,CAAC;AAEF,eAAO,MAAM,eAAe,GAAU,OAAM,0BAA+B,KAAG,OAAO,CAAC;IAAE,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IAAC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAsC3K,CAAC"}
1
+ {"version":3,"file":"slate-site-references-capture.d.ts","sourceRoot":"","sources":["../src/slate-site-references-capture.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,14 @@ import sharp from 'sharp';
2
2
  import { installPrototypeBrowser, isMissingPrototypeBrowserOutput, resolvePrototypeBrowserProvisioning, } from './prototype-browsers.js';
3
3
  /**
4
4
  * The capture step of the References tab: each suggested site opened headless in the Playwright Chromium the CLI
5
- * already ships, at a desktop viewport, and photographed above the fold once the page has settled, with a trivial
6
- * cookie banner accepted first. A page that does not open, answers an error, or stays blank is skipped (null).
5
+ * already ships, at a desktop viewport, and photographed above the fold, with a trivial cookie banner accepted first.
6
+ * A page that does not open, answers an error, or stays blank is skipped (null).
7
+ *
8
+ * Two frames per page. The early frame is taken as soon as the page has loaded and the pop-ups already showing are
9
+ * cleared, and handed over at once (`onEarly`), so the tab shows the site without waiting out the pop-up settle. The
10
+ * settled frame is taken once the settle time has passed (marketing pop-ups arrive on a timer), and it replaces the
11
+ * early one (`replacesEarly`) only when the page changed after it: a pop-up was cleared or hidden after the early frame,
12
+ * or the two pictures differ materially. That policy lives here and nowhere else.
7
13
  */
8
14
  export const CAPTURE_VIEWPORT = { width: 1440, height: 900 };
9
15
  const THUMB_WIDTH = 640;
@@ -12,8 +18,13 @@ const LOAD_WAIT_MS = 10_000;
12
18
  const IDLE_WAIT_MS = 4_000;
13
19
  /** Marketing pop-ups arrive on a timer (atlascoffeeclub.com's email form shows about 11 s after navigation): keep looking until then. */
14
20
  const POPUP_SETTLE_MS = 13_000;
21
+ /** Looks for showing pop-ups before the early frame, at most. */
22
+ const EARLY_PASSES = 3;
15
23
  /** A real desktop Chrome's user agent: some sites turn a "HeadlessChrome" one away. */
16
24
  const USER_AGENT = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36';
25
+ /** Below this mean difference (0-1, grey levels at 64x40) the settled frame shows the same page as the early one. */
26
+ export const MATERIAL_DIFFERENCE = 0.02;
27
+ const DIFFERENCE_SIZE = { width: 64, height: 40 };
17
28
  /**
18
29
  * Page scripts, as plain source so no transpiler helper leaks into the page. CLEAR_OVERLAYS accepts a cookie banner and
19
30
  * closes an overlay (a newsletter or region pop-up) when either is plainly marked and sits in fixed chrome or a dialog,
@@ -73,6 +84,15 @@ const HIDE_OVERLAYS = String.raw `(() => {
73
84
  })()`;
74
85
  const HAS_CONTENT = '((document.body && document.body.innerText || "").trim().length > 40 || document.images.length > 2)';
75
86
  const quietly = async (work) => { await work.catch(() => undefined); };
87
+ /** How far apart two frames are: the mean difference of their grey levels at 64x40, from 0 (same) to 1. */
88
+ export const frameDifference = async (a, b) => {
89
+ const grey = async (image) => await sharp(image).resize({ ...DIFFERENCE_SIZE, fit: 'fill' }).greyscale().raw().toBuffer();
90
+ const [left, right] = await Promise.all([grey(a), grey(b)]);
91
+ let total = 0;
92
+ for (let i = 0; i < left.length; i += 1)
93
+ total += Math.abs(left[i] - right[i]);
94
+ return total / left.length / 255;
95
+ };
76
96
  /**
77
97
  * The managed Chromium, installed first when this home has none: a fresh home (a new person's first `npx`) has no
78
98
  * browser, and its References tab stayed empty (seen on design.12ui.com with 0.2.81, 2026-10-02). Any other launch
@@ -94,36 +114,60 @@ export const launchCaptureBrowser = async (deps = {}) => {
94
114
  };
95
115
  export const openSiteCapture = async (deps = {}) => {
96
116
  const browser = await launchCaptureBrowser(deps);
97
- const capture = async (url) => {
117
+ const now = deps.now ?? Date.now;
118
+ const capture = async (url, onEarly) => {
98
119
  const context = await browser.newContext({ viewport: CAPTURE_VIEWPORT, deviceScaleFactor: 1, userAgent: USER_AGENT, locale: 'en-US', colorScheme: 'light' });
99
120
  try {
100
121
  const page = await context.newPage();
101
- const startedAt = Date.now();
122
+ const startedAt = now();
102
123
  const response = await page.goto(url, { waitUntil: 'domcontentloaded', timeout: GOTO_TIMEOUT_MS });
103
124
  if (!response || response.status() >= 400)
104
125
  return null;
105
126
  await quietly(page.waitForLoadState('load', { timeout: LOAD_WAIT_MS }));
106
- await quietly(page.waitForLoadState('networkidle', { timeout: IDLE_WAIT_MS }));
107
- // Banners and pop-ups often arrive a moment after load, some on a timer: clear them, then look again until the
108
- // settle time has passed.
109
127
  let lastOverlayMs = null;
110
- for (let pass = 0; pass === 0 || Date.now() - startedAt < POPUP_SETTLE_MS; pass += 1) {
111
- await page.waitForTimeout(pass === 0 ? 800 : 1_000);
112
- if ((await page.evaluate(CLEAR_OVERLAYS).catch(() => 0)) > 0)
113
- lastOverlayMs = Date.now() - startedAt;
114
- // A pop-up that listens for Escape closes with it.
128
+ /** One look for banners and pop-ups: clears what it finds (answering how many), then Escape for one that listens. */
129
+ const clearPass = async (waitMs) => {
130
+ await page.waitForTimeout(waitMs);
131
+ const cleared = await page.evaluate(CLEAR_OVERLAYS).catch(() => 0);
132
+ if (cleared > 0)
133
+ lastOverlayMs = now() - startedAt;
115
134
  await quietly(page.keyboard.press('Escape'));
135
+ return cleared;
136
+ };
137
+ /** A dialog that survived every click is hidden rather than photographed; above the fold, as a click may scroll. */
138
+ const photograph = async () => {
139
+ const hidden = await page.evaluate(HIDE_OVERLAYS).catch(() => 0);
140
+ await quietly(page.evaluate('window.scrollTo(0, 0)'));
141
+ await page.waitForTimeout(500);
142
+ if (!(await page.evaluate(HAS_CONTENT).catch(() => false)))
143
+ return { frame: null, hidden };
144
+ const image = await page.screenshot({ type: 'jpeg', quality: 82, clip: { x: 0, y: 0, ...CAPTURE_VIEWPORT } });
145
+ const thumb = await sharp(image).resize({ width: THUMB_WIDTH }).jpeg({ quality: 78, mozjpeg: true }).toBuffer();
146
+ return { frame: { image, thumb, title: (await page.title().catch(() => '')).trim(), finalUrl: page.url(), lastOverlayMs }, hidden };
147
+ };
148
+ // The early frame, once the page has loaded: the pop-ups already showing are cleared, looking again (a few times
149
+ // at most: some pages answer every look with a click) while a look still finds one.
150
+ let early = null;
151
+ if (onEarly) {
152
+ for (let pass = 0; (await clearPass(pass === 0 ? 800 : 500)) > 0 && pass < EARLY_PASSES - 1; pass += 1)
153
+ ;
154
+ early = (await photograph()).frame;
155
+ if (early)
156
+ onEarly(early);
116
157
  }
117
- // A dialog that survived every click is hidden rather than photographed.
118
- await quietly(page.evaluate(HIDE_OVERLAYS));
119
- // Above the fold: a click or a focus may have scrolled the page.
120
- await quietly(page.evaluate('window.scrollTo(0, 0)'));
121
- await page.waitForTimeout(500);
122
- if (!(await page.evaluate(HAS_CONTENT).catch(() => false)))
123
- return null;
124
- const image = await page.screenshot({ type: 'jpeg', quality: 82, clip: { x: 0, y: 0, ...CAPTURE_VIEWPORT } });
125
- const thumb = await sharp(image).resize({ width: THUMB_WIDTH }).jpeg({ quality: 78, mozjpeg: true }).toBuffer();
126
- return { image, thumb, title: (await page.title().catch(() => '')).trim(), finalUrl: page.url(), lastOverlayMs };
158
+ await quietly(page.waitForLoadState('networkidle', { timeout: IDLE_WAIT_MS }));
159
+ // The settled frame: banners and pop-ups often arrive a moment after load, some on a timer, so keep looking until
160
+ // the settle time has passed.
161
+ let overlaysAfterEarly = 0;
162
+ for (let pass = 0; (pass === 0 && !early) || now() - startedAt < POPUP_SETTLE_MS; pass += 1) {
163
+ overlaysAfterEarly += await clearPass(pass === 0 && !onEarly ? 800 : 1_000);
164
+ }
165
+ const settled = await photograph();
166
+ if (!settled.frame || !early)
167
+ return settled.frame;
168
+ overlaysAfterEarly += settled.hidden;
169
+ const difference = await frameDifference(early.image, settled.frame.image);
170
+ return { ...settled.frame, overlaysAfterEarly, difference, replacesEarly: overlaysAfterEarly > 0 || difference >= MATERIAL_DIFFERENCE };
127
171
  }
128
172
  catch {
129
173
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"slate-site-references-capture.js","sourceRoot":"","sources":["../src/slate-site-references-capture.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slate-site-references-capture.js","sourceRoot":"","sources":["../src/slate-site-references-capture.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { type DrawFetch } from './workspace-draw-client.js';
2
2
  /**
3
3
  * The References tab's two calls on design.12ui.com, authenticated by the workspace's upload token like the draw
4
4
  * command's: what to look for (the brief, and the sites already added), the sites still being captured (the plan), and
5
- * one captured site.
5
+ * one captured site (or its settled frame, replacing the early one).
6
6
  *
7
7
  * A refusal the server marks retryable (a `409 workspace_busy` while another write holds the workspace, a `429`) is
8
8
  * tried again after a short backoff, up to `SITES_ATTEMPTS` in all: both calls are idempotent (the same page pushed
@@ -17,12 +17,14 @@ export type SitesBrief = {
17
17
  }[];
18
18
  max: number;
19
19
  };
20
+ /** `replace`: the page's settled frame, replacing the early one pushed before it in the same site (an older server keeps the first). */
20
21
  export type SitePush = {
21
22
  url: string;
22
23
  title: string;
23
24
  why: string;
24
25
  image: Buffer;
25
26
  thumb: Buffer;
27
+ replace?: boolean;
26
28
  };
27
29
  export declare const SITES_ATTEMPTS = 4;
28
30
  export declare const createSitesClient: (args: {
@@ -1 +1 @@
1
- {"version":3,"file":"slate-site-references-client.d.ts","sourceRoot":"","sources":["../src/slate-site-references-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4F,KAAK,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEtJ;;;;;;;;GAQG;AAEH,MAAM,MAAM,UAAU,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAC5H,MAAM,MAAM,QAAQ,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjG,eAAO,MAAM,cAAc,IAAI,CAAC;AAUhC,eAAO,MAAM,iBAAiB,GAAI,MAAM;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,KAAK,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACjD;iBAuBoB,OAAO,CAAC,UAAU,CAAC;IAUpC,gGAAgG;oBAC1E;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,sBAAkB,OAAO,CAAC,IAAI,CAAC;iBAGlE,QAAQ,KAAG,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC;CAa3E,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
1
+ {"version":3,"file":"slate-site-references-client.d.ts","sourceRoot":"","sources":["../src/slate-site-references-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4F,KAAK,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEtJ;;;;;;;;GAQG;AAEH,MAAM,MAAM,UAAU,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAC5H,wIAAwI;AACxI,MAAM,MAAM,QAAQ,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAEpH,eAAO,MAAM,cAAc,IAAI,CAAC;AAUhC,eAAO,MAAM,iBAAiB,GAAI,MAAM;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,KAAK,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACjD;iBAuBoB,OAAO,CAAC,UAAU,CAAC;IAUpC,gGAAgG;oBAC1E;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,sBAAkB,OAAO,CAAC,IAAI,CAAC;iBAGlE,QAAQ,KAAG,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC;CAc3E,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
@@ -52,6 +52,8 @@ export const createSitesClient = (args) => {
52
52
  form.append('why', site.why);
53
53
  form.append('image', new Blob([new Uint8Array(site.image)], { type: 'image/jpeg' }), 'image.jpg');
54
54
  form.append('thumb', new Blob([new Uint8Array(site.thumb)], { type: 'image/jpeg' }), 'thumb.jpg');
55
+ if (site.replace)
56
+ form.append('replace', '1');
55
57
  return { method: 'POST', body: form };
56
58
  });
57
59
  return { id: String(body.id), replayed: body.replayed === true };