@12ui/design 0.2.93 → 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 (76) hide show
  1. package/SKILL.md +1 -1
  2. package/dist/cli-workspace-command.d.ts.map +1 -1
  3. package/dist/cli-workspace-command.js +3 -0
  4. package/dist/cli-workspace-command.js.map +1 -1
  5. package/dist/mcp-slate-tools.d.ts +8 -1
  6. package/dist/mcp-slate-tools.d.ts.map +1 -1
  7. package/dist/mcp-slate-tools.js +67 -35
  8. package/dist/mcp-slate-tools.js.map +1 -1
  9. package/dist/mcp-slate-ui-script-inspiration-gallery.d.ts +4 -2
  10. package/dist/mcp-slate-ui-script-inspiration-gallery.d.ts.map +1 -1
  11. package/dist/mcp-slate-ui-script-inspiration-gallery.js +21 -3
  12. package/dist/mcp-slate-ui-script-inspiration-gallery.js.map +1 -1
  13. package/dist/mcp-slate-ui-script-loading.d.ts +11 -0
  14. package/dist/mcp-slate-ui-script-loading.d.ts.map +1 -0
  15. package/dist/mcp-slate-ui-script-loading.js +19 -0
  16. package/dist/mcp-slate-ui-script-loading.js.map +1 -0
  17. package/dist/mcp-slate-ui-script-references.d.ts +7 -2
  18. package/dist/mcp-slate-ui-script-references.d.ts.map +1 -1
  19. package/dist/mcp-slate-ui-script-references.js +16 -5
  20. package/dist/mcp-slate-ui-script-references.js.map +1 -1
  21. package/dist/mcp-slate-ui-script-state.d.ts.map +1 -1
  22. package/dist/mcp-slate-ui-script-state.js +3 -1
  23. package/dist/mcp-slate-ui-script-state.js.map +1 -1
  24. package/dist/mcp-slate-ui-script.d.ts +1 -1
  25. package/dist/mcp-slate-ui-script.d.ts.map +1 -1
  26. package/dist/mcp-slate-ui-script.js +2 -0
  27. package/dist/mcp-slate-ui-script.js.map +1 -1
  28. package/dist/mcp-slate-ui-styles-loading-effects.d.ts +14 -0
  29. package/dist/mcp-slate-ui-styles-loading-effects.d.ts.map +1 -0
  30. package/dist/mcp-slate-ui-styles-loading-effects.js +67 -0
  31. package/dist/mcp-slate-ui-styles-loading-effects.js.map +1 -0
  32. package/dist/mcp-slate-ui-styles-loading.d.ts +11 -4
  33. package/dist/mcp-slate-ui-styles-loading.d.ts.map +1 -1
  34. package/dist/mcp-slate-ui-styles-loading.js +17 -14
  35. package/dist/mcp-slate-ui-styles-loading.js.map +1 -1
  36. package/dist/mcp-slate-workspace-tools.js +2 -2
  37. package/dist/mcp-slate-workspace-tools.js.map +1 -1
  38. package/dist/prototype-browsers.d.ts +8 -2
  39. package/dist/prototype-browsers.d.ts.map +1 -1
  40. package/dist/prototype-browsers.js +11 -5
  41. package/dist/prototype-browsers.js.map +1 -1
  42. package/dist/server.js +3 -3
  43. package/dist/server.js.map +1 -1
  44. package/dist/slate-site-gathering.d.ts +13 -0
  45. package/dist/slate-site-gathering.d.ts.map +1 -0
  46. package/dist/slate-site-gathering.js +21 -0
  47. package/dist/slate-site-gathering.js.map +1 -0
  48. package/dist/slate-site-references-capture.d.ts +25 -4
  49. package/dist/slate-site-references-capture.d.ts.map +1 -1
  50. package/dist/slate-site-references-capture.js +66 -22
  51. package/dist/slate-site-references-capture.js.map +1 -1
  52. package/dist/slate-site-references-client.d.ts +3 -1
  53. package/dist/slate-site-references-client.d.ts.map +1 -1
  54. package/dist/slate-site-references-client.js +2 -0
  55. package/dist/slate-site-references-client.js.map +1 -1
  56. package/dist/slate-site-references-local.d.ts +9 -3
  57. package/dist/slate-site-references-local.d.ts.map +1 -1
  58. package/dist/slate-site-references-local.js +42 -17
  59. package/dist/slate-site-references-local.js.map +1 -1
  60. package/dist/slate-site-references.d.ts +24 -4
  61. package/dist/slate-site-references.d.ts.map +1 -1
  62. package/dist/slate-site-references.js +104 -20
  63. package/dist/slate-site-references.js.map +1 -1
  64. package/dist/slate-view-contract.d.ts +11 -0
  65. package/dist/slate-view-contract.d.ts.map +1 -1
  66. package/dist/slate-view.d.ts +7 -0
  67. package/dist/slate-view.d.ts.map +1 -1
  68. package/dist/slate-view.js +18 -2
  69. package/dist/slate-view.js.map +1 -1
  70. package/dist/slate-workspace-parse.d.ts.map +1 -1
  71. package/dist/slate-workspace-parse.js +1 -0
  72. package/dist/slate-workspace-parse.js.map +1 -1
  73. package/dist/slate-workspace-types.d.ts +2 -0
  74. package/dist/slate-workspace-types.d.ts.map +1 -1
  75. package/open-design.json +2 -2
  76. package/package.json +1 -1
@@ -1,18 +1,25 @@
1
+ import { type LoadingEffect } from './mcp-slate-ui-styles-loading-effects.js';
1
2
  /**
2
3
  * The loading surface, everywhere a picture is on its way (`.shimmer`): an Inspiration or References tile until its
3
4
  * picture lands, the skeleton tiles of a first search, a reference site whose screenshot is still being captured, and a
4
5
  * design slot while it is drawn.
5
6
  *
6
- * A field of fine dots in the host's ink whose brightness ripples across the frame: one soft crest with a faint echo,
7
- * travelling diagonally. The wave is fixed to the frame (`background-attachment: fixed`), so every loading tile on
8
- * screen is a window onto the same wave and a grid of them reads as one calm surface rather than many blinking boxes.
7
+ * A field of fine, dim dots in the host's ink with an effect playing across them (mcp-slate-ui-styles-loading-effects.ts;
8
+ * the shimmer: one soft crest with a faint echo, travelling diagonally). The effect is fixed to the frame
9
+ * (`background-attachment: fixed`) and kept on the frame's clock (mcp-slate-ui-script-loading.ts), so every loading tile
10
+ * on screen is a window onto the same wave and a grid of them reads as one calm surface rather than many blinking boxes.
9
11
  *
10
12
  * - On a picture (`img.shimmer`, no pixels yet) the dots are the picture's own mask, so its tile's ground shows between
11
13
  * them; on anything else they are an overlay (`::before`) over the element's own ground, under its content.
12
- * - The colours are the host's ink (`--text`) mixed into transparency, so Codex's light and dark themes drive it.
14
+ * - The colours are the host's ink (`--text`) mixed into transparency, so Codex's light and dark themes drive it; at rest
15
+ * the dots stay dim (9%) so the crest carries the motion.
13
16
  * - Reduced motion: still dots, no wave.
14
17
  * - Chosen over the web's light band (apps/web generatedDesignPromptEdit.css) side by side in light and dark (evidence
15
18
  * 12ui/slate-ui-polish/loading): the band must stay faint not to glare in light, and then all but vanishes on dark.
19
+ * The other effects sit side by side in evidence 12ui/loading-dots.
16
20
  */
21
+ /** The one switch: which effect plays across the dots. */
22
+ export declare const LOADING_EFFECT: LoadingEffect;
23
+ export declare const loadingStyles: (effect: LoadingEffect) => string;
17
24
  export declare const SLATE_UI_LOADING_STYLES: string;
18
25
  //# sourceMappingURL=mcp-slate-ui-styles-loading.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-slate-ui-styles-loading.d.ts","sourceRoot":"","sources":["../src/mcp-slate-ui-styles-loading.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,uBAAuB,QAmBnC,CAAC"}
1
+ {"version":3,"file":"mcp-slate-ui-styles-loading.d.ts","sourceRoot":"","sources":["../src/mcp-slate-ui-styles-loading.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,0CAA0C,CAAC;AAE/F;;;;;;;;;;;;;;;;;;GAkBG;AAEH,0DAA0D;AAC1D,eAAO,MAAM,cAAc,EAAE,aAAyB,CAAC;AAEvD,eAAO,MAAM,aAAa,GAAI,QAAQ,aAAa,KAAG,MAerD,CAAC;AAEF,eAAO,MAAM,uBAAuB,QAAgC,CAAC"}
@@ -1,37 +1,40 @@
1
+ import { LOADING_EFFECTS } from './mcp-slate-ui-styles-loading-effects.js';
1
2
  /**
2
3
  * The loading surface, everywhere a picture is on its way (`.shimmer`): an Inspiration or References tile until its
3
4
  * picture lands, the skeleton tiles of a first search, a reference site whose screenshot is still being captured, and a
4
5
  * design slot while it is drawn.
5
6
  *
6
- * A field of fine dots in the host's ink whose brightness ripples across the frame: one soft crest with a faint echo,
7
- * travelling diagonally. The wave is fixed to the frame (`background-attachment: fixed`), so every loading tile on
8
- * screen is a window onto the same wave and a grid of them reads as one calm surface rather than many blinking boxes.
7
+ * A field of fine, dim dots in the host's ink with an effect playing across them (mcp-slate-ui-styles-loading-effects.ts;
8
+ * the shimmer: one soft crest with a faint echo, travelling diagonally). The effect is fixed to the frame
9
+ * (`background-attachment: fixed`) and kept on the frame's clock (mcp-slate-ui-script-loading.ts), so every loading tile
10
+ * on screen is a window onto the same wave and a grid of them reads as one calm surface rather than many blinking boxes.
9
11
  *
10
12
  * - On a picture (`img.shimmer`, no pixels yet) the dots are the picture's own mask, so its tile's ground shows between
11
13
  * them; on anything else they are an overlay (`::before`) over the element's own ground, under its content.
12
- * - The colours are the host's ink (`--text`) mixed into transparency, so Codex's light and dark themes drive it.
14
+ * - The colours are the host's ink (`--text`) mixed into transparency, so Codex's light and dark themes drive it; at rest
15
+ * the dots stay dim (9%) so the crest carries the motion.
13
16
  * - Reduced motion: still dots, no wave.
14
17
  * - Chosen over the web's light band (apps/web generatedDesignPromptEdit.css) side by side in light and dark (evidence
15
18
  * 12ui/slate-ui-polish/loading): the band must stay faint not to glare in light, and then all but vanishes on dark.
19
+ * The other effects sit side by side in evidence 12ui/loading-dots.
16
20
  */
17
- export const SLATE_UI_LOADING_STYLES = String.raw `
21
+ /** The one switch: which effect plays across the dots. */
22
+ export const LOADING_EFFECT = 'shimmer';
23
+ export const loadingStyles = (effect) => String.raw `
18
24
  .shimmer, .shimmer:not(img)::before {
19
- --dot: color-mix(in srgb, var(--text) 15%, transparent);
20
- --dot-mid: color-mix(in srgb, var(--text) 28%, transparent);
21
- --dot-hi: color-mix(in srgb, var(--text) 56%, transparent);
25
+ --dot: color-mix(in srgb, var(--text) 9%, transparent);
26
+ --dot-mid: color-mix(in srgb, var(--text) 22%, transparent);
27
+ --dot-hi: color-mix(in srgb, var(--text) 50%, transparent);
22
28
  }
23
29
  img.shimmer, .shimmer:not(img)::before {
24
30
  background-color: transparent;
25
- background-image: linear-gradient(118deg, var(--dot) 34%, var(--dot-mid) 39%, var(--dot) 42.5%, var(--dot-mid) 45.5%, var(--dot-hi) 50%, var(--dot-mid) 54%, var(--dot) 59%);
26
- background-size: 200vw 200vh;
27
31
  background-attachment: fixed;
28
32
  -webkit-mask: radial-gradient(circle, #000 1.15px, transparent 1.75px) 0 0 / 9px 9px;
29
33
  mask: radial-gradient(circle, #000 1.15px, transparent 1.75px) 0 0 / 9px 9px;
30
- animation: dotwave 2.4s cubic-bezier(.45, .05, .55, .95) infinite;
31
34
  }
32
35
  .shimmer:not(img)::before { content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; }
33
- .skelgrid > .skeleton { position: relative; overflow: hidden; background: var(--fill); }
34
- @keyframes dotwave { from { background-position: -135vw -135vh; } to { background-position: 35vw 35vh; } }
35
- @media (prefers-reduced-motion: reduce) { .shimmer { animation: none; } .shimmer:not(img)::before { animation: none; background-image: none; background-color: var(--dot-mid); } img.shimmer { background-image: none; background-color: var(--dot-mid); } }
36
+ .skelgrid > .skeleton { position: relative; overflow: hidden; background: var(--fill); }${LOADING_EFFECTS[effect]}
37
+ @media (prefers-reduced-motion: reduce) { .shimmer { animation: none; } .shimmer:not(img)::before { animation: none; background-image: none; background-color: var(--dot-mid); } img.shimmer { animation: none; background-image: none; background-color: var(--dot-mid); } }
36
38
  `;
39
+ export const SLATE_UI_LOADING_STYLES = loadingStyles(LOADING_EFFECT);
37
40
  //# sourceMappingURL=mcp-slate-ui-styles-loading.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-slate-ui-styles-loading.js","sourceRoot":"","sources":["../src/mcp-slate-ui-styles-loading.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;CAmBhD,CAAC"}
1
+ {"version":3,"file":"mcp-slate-ui-styles-loading.js","sourceRoot":"","sources":["../src/mcp-slate-ui-styles-loading.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAsB,MAAM,0CAA0C,CAAC;AAE/F;;;;;;;;;;;;;;;;;;GAkBG;AAEH,0DAA0D;AAC1D,MAAM,CAAC,MAAM,cAAc,GAAkB,SAAS,CAAC;AAEvD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAAqB,EAAU,EAAE,CAAC,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;4FAakB,eAAe,CAAC,MAAM,CAAC;;CAElH,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC"}
@@ -11,7 +11,7 @@ import { copyAdoptedPick, recordPick } from './slate-pick.js';
11
11
  import { namedReferenceIds } from './slate-reference-ids.js';
12
12
  import { ensureReferenceImage } from './slate-reference-store.js';
13
13
  import { resumeAction, runAction } from './slate-run-action.js';
14
- import { buildView, emptyView } from './slate-view.js';
14
+ import { buildView, emptyView, viewStamp } from './slate-view.js';
15
15
  import { readVersionBytes } from './slate-versions.js';
16
16
  import { findVersion, loadWorkspaceAt } from './slate-workspace-store.js';
17
17
  /**
@@ -128,7 +128,7 @@ export const statusResult = async (input, runtime) => {
128
128
  const root = await resolveSlateRunDir(input.runDir);
129
129
  const { workspace } = await loadWorkspaceAt(root, runtime.now);
130
130
  const liveness = await readLiveness(root, workspace, runtime.now().getTime());
131
- const stamp = `${workspace.rev}:${liveness.digest}`;
131
+ const stamp = viewStamp(root, workspace.rev, liveness.digest);
132
132
  if (typeof input.since === 'string' && input.since === stamp) {
133
133
  return { content: [{ type: 'text', text: 'unchanged' }], structuredContent: { unchanged: true, stamp } };
134
134
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-slate-workspace-tools.js","sourceRoot":"","sources":["../src/mcp-slate-workspace-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-slate-workspace-tools.js","sourceRoot":"","sources":["../src/mcp-slate-workspace-tools.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,12 @@ export type PrototypeBrowserProvisioning = {
4
4
  environment: NodeJS.ProcessEnv;
5
5
  installCommand: string;
6
6
  };
7
+ /**
8
+ * What every Chromium user in this CLI launches: `chromium.launch()` headless, which Playwright runs on its headless
9
+ * shell (prototype stages, redesign capture, scene capture, the References capture). The full Chromium download (a
10
+ * headed browser, about 340 MB more) is never used, so neither the install nor its named command fetches it.
11
+ */
12
+ export declare const BROWSER_INSTALL_ARGS: readonly ["install", "--only-shell", "chromium"];
7
13
  /**
8
14
  * Keeps Playwright beside the managed CLI instead of letting Playwright derive
9
15
  * a second cache root from HOME. An existing managed launcher identifies the
@@ -18,8 +24,8 @@ export declare const resolvePrototypeBrowserProvisioning: (args?: {
18
24
  }) => Promise<PrototypeBrowserProvisioning>;
19
25
  export declare const isMissingPrototypeBrowserOutput: (output: string) => boolean;
20
26
  /**
21
- * Installs Chromium into the managed browsers path, the same install the command
22
- * above names. Only the References tab's capture calls it: that capture runs
27
+ * Installs Chromium's headless shell into the managed browsers path, the same
28
+ * install the command above names. Only the References tab's capture calls it: that capture runs
23
29
  * unattended (the workspace runner, or the draw command while the person
24
30
  * chooses), so nobody would read the command, and a fresh home has no browser.
25
31
  */
@@ -1 +1 @@
1
- {"version":3,"file":"prototype-browsers.d.ts","sourceRoot":"","sources":["../src/prototype-browsers.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,4BAA4B,GAAG;IACzC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC;IAC/B,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAmCF;;;;;GAKG;AACH,eAAO,MAAM,mCAAmC,GAAU,OAAM;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;CACnB,KAAG,OAAO,CAAC,4BAA4B,CAmB5C,CAAC;AAEF,eAAO,MAAM,+BAA+B,GAAI,QAAQ,MAAM,KAAG,OAGhE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,GAClC,cAAc,IAAI,CAAC,4BAA4B,EAAE,aAAa,CAAC,EAC/D,gBAAe,MAAiC,KAC/C,OAAO,CAAC,IAAI,CAcd,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,8BAA8B,GAAI,MAAM;IACnD,sEAAsE;IACtE,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,IAAI,CAAC,4BAA4B,EAAE,cAAc,GAAG,gBAAgB,CAAC,CAAC;IACpF,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,KAAG,MAMH,CAAC"}
1
+ {"version":3,"file":"prototype-browsers.d.ts","sourceRoot":"","sources":["../src/prototype-browsers.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,4BAA4B,GAAG;IACzC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC;IAC/B,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAoBF;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,kDAAmD,CAAC;AAiBrF;;;;;GAKG;AACH,eAAO,MAAM,mCAAmC,GAAU,OAAM;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;CACnB,KAAG,OAAO,CAAC,4BAA4B,CAmB5C,CAAC;AAEF,eAAO,MAAM,+BAA+B,GAAI,QAAQ,MAAM,KAAG,OAGhE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,GAClC,cAAc,IAAI,CAAC,4BAA4B,EAAE,aAAa,CAAC,EAC/D,gBAAe,MAAiC,KAC/C,OAAO,CAAC,IAAI,CAcd,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,8BAA8B,GAAI,MAAM;IACnD,sEAAsE;IACtE,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,IAAI,CAAC,4BAA4B,EAAE,cAAc,GAAG,gBAAgB,CAAC,CAAC;IACpF,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,KAAG,MAMH,CAAC"}
@@ -11,11 +11,17 @@ const installedPlaywrightCli = () => {
11
11
  const playwrightRequire = createRequire(testManifest);
12
12
  return path.join(path.dirname(playwrightRequire.resolve('playwright/package.json')), 'cli.js');
13
13
  };
14
+ /**
15
+ * What every Chromium user in this CLI launches: `chromium.launch()` headless, which Playwright runs on its headless
16
+ * shell (prototype stages, redesign capture, scene capture, the References capture). The full Chromium download (a
17
+ * headed browser, about 340 MB more) is never used, so neither the install nor its named command fetches it.
18
+ */
19
+ export const BROWSER_INSTALL_ARGS = ['install', '--only-shell', 'chromium'];
14
20
  const browserInstallCommand = (args) => {
15
21
  if (args.platform === 'win32') {
16
- return `set "PLAYWRIGHT_BROWSERS_PATH=${args.browsersPath}" && ${quoteWindowsArgument(process.execPath)} ${quoteWindowsArgument(args.playwrightCli)} install chromium`;
22
+ return `set "PLAYWRIGHT_BROWSERS_PATH=${args.browsersPath}" && ${quoteWindowsArgument(process.execPath)} ${quoteWindowsArgument(args.playwrightCli)} ${BROWSER_INSTALL_ARGS.join(' ')}`;
17
23
  }
18
- return `PLAYWRIGHT_BROWSERS_PATH=${quotePosixArgument(args.browsersPath)} ${quotePosixArgument(process.execPath)} ${quotePosixArgument(args.playwrightCli)} install chromium`;
24
+ return `PLAYWRIGHT_BROWSERS_PATH=${quotePosixArgument(args.browsersPath)} ${quotePosixArgument(process.execPath)} ${quotePosixArgument(args.playwrightCli)} ${BROWSER_INSTALL_ARGS.join(' ')}`;
19
25
  };
20
26
  /**
21
27
  * Keeps Playwright beside the managed CLI instead of letting Playwright derive
@@ -46,14 +52,14 @@ export const resolvePrototypeBrowserProvisioning = async (args = {}) => {
46
52
  export const isMissingPrototypeBrowserOutput = (output) => (/Executable doesn't exist at/u.test(output)
47
53
  && /playwright install/u.test(output));
48
54
  /**
49
- * Installs Chromium into the managed browsers path, the same install the command
50
- * above names. Only the References tab's capture calls it: that capture runs
55
+ * Installs Chromium's headless shell into the managed browsers path, the same
56
+ * install the command above names. Only the References tab's capture calls it: that capture runs
51
57
  * unattended (the workspace runner, or the draw command while the person
52
58
  * chooses), so nobody would read the command, and a fresh home has no browser.
53
59
  */
54
60
  export const installPrototypeBrowser = async (provisioning, playwrightCli = installedPlaywrightCli()) => {
55
61
  await new Promise((resolve, reject) => {
56
- const child = spawn(process.execPath, [playwrightCli, 'install', 'chromium'], {
62
+ const child = spawn(process.execPath, [playwrightCli, ...BROWSER_INSTALL_ARGS], {
57
63
  env: provisioning.environment,
58
64
  stdio: ['ignore', 'ignore', 'pipe'],
59
65
  });
@@ -1 +1 @@
1
- {"version":3,"file":"prototype-browsers.js","sourceRoot":"","sources":["../src/prototype-browsers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prototype-browsers.js","sourceRoot":"","sources":["../src/prototype-browsers.ts"],"names":[],"mappings":"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"}
package/dist/server.js CHANGED
@@ -6,8 +6,8 @@ import { readCorpusConfig } from './config.js';
6
6
  import { MCP_TOOL_DEFINITIONS } from './mcp-tool-definitions.js';
7
7
  import { callMcpTool, createMcpCorpusDependencies, createMcpToolDependencies, } from './mcp-tool-handler.js';
8
8
  import { lazyCorpus } from './slate-corpus.js';
9
- import { startLocalCaptions, startRoundCaption } from './slate-captions-local.js';
10
- import { startLocalReferences } from './slate-site-references-local.js';
9
+ import { startRoundCaption } from './slate-captions-local.js';
10
+ import { startLocalTabs } from './slate-site-references-local.js';
11
11
  import { listSlateResources, readSlateResource } from './mcp-slate-resource.js';
12
12
  import { SLATE_TOOL_DEFINITIONS, createSlateToolHandler, isSlateTool, } from './mcp-slate-tools.js';
13
13
  /** Construct the transport without reading credentials; local workflow and slate tools need none. */
@@ -30,7 +30,7 @@ export const createMcpServer = (options) => {
30
30
  const slateTools = createSlateToolHandler({
31
31
  // The workspace's free reference search reads the same optional-auth corpus configuration, lazily.
32
32
  corpus: lazyCorpus(resolveCorpusConfig),
33
- gatherReferences: (root) => { startLocalReferences(root); startLocalCaptions(root); },
33
+ gatherReferences: startLocalTabs,
34
34
  captionRound: (root, roundId) => { startRoundCaption(root, roundId); },
35
35
  ...options.slate,
36
36
  });
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.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: {