rivet-design 0.10.9 → 0.11.0

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 (91) hide show
  1. package/dist/mcp/agent-variants/SessionStore.d.ts +6 -4
  2. package/dist/mcp/agent-variants/SessionStore.d.ts.map +1 -1
  3. package/dist/mcp/agent-variants/SessionStore.js +314 -123
  4. package/dist/mcp/agent-variants/SessionStore.js.map +1 -1
  5. package/dist/mcp/agent-variants/WorktreeOrchestrator.d.ts +9 -2
  6. package/dist/mcp/agent-variants/WorktreeOrchestrator.d.ts.map +1 -1
  7. package/dist/mcp/agent-variants/WorktreeOrchestrator.js +60 -42
  8. package/dist/mcp/agent-variants/WorktreeOrchestrator.js.map +1 -1
  9. package/dist/mcp/agent-variants/WorktreeOrchestrator.testHelpers.d.ts +1 -1
  10. package/dist/mcp/agent-variants/WorktreeOrchestrator.testHelpers.d.ts.map +1 -1
  11. package/dist/mcp/agent-variants/WorktreeOrchestrator.testHelpers.js +1 -1
  12. package/dist/mcp/agent-variants/WorktreeOrchestrator.testHelpers.js.map +1 -1
  13. package/dist/mcp/agent-variants/contracts.d.ts +7712 -2283
  14. package/dist/mcp/agent-variants/contracts.d.ts.map +1 -1
  15. package/dist/mcp/agent-variants/contracts.js +302 -152
  16. package/dist/mcp/agent-variants/contracts.js.map +1 -1
  17. package/dist/mcp/agent-variants/createZeroToOneTool.d.ts +2 -3
  18. package/dist/mcp/agent-variants/createZeroToOneTool.d.ts.map +1 -1
  19. package/dist/mcp/agent-variants/createZeroToOneTool.js +49 -39
  20. package/dist/mcp/agent-variants/createZeroToOneTool.js.map +1 -1
  21. package/dist/mcp/agent-variants/designCritique.d.ts +7 -3
  22. package/dist/mcp/agent-variants/designCritique.d.ts.map +1 -1
  23. package/dist/mcp/agent-variants/designCritique.js +12 -5
  24. package/dist/mcp/agent-variants/designCritique.js.map +1 -1
  25. package/dist/mcp/agent-variants/index.d.ts +1 -1
  26. package/dist/mcp/agent-variants/index.d.ts.map +1 -1
  27. package/dist/mcp/agent-variants/pinterestSourceContext.d.ts +4 -2
  28. package/dist/mcp/agent-variants/pinterestSourceContext.d.ts.map +1 -1
  29. package/dist/mcp/agent-variants/pinterestSourceContext.js +7 -6
  30. package/dist/mcp/agent-variants/pinterestSourceContext.js.map +1 -1
  31. package/dist/mcp/agent-variants/previewQa.d.ts +6 -4
  32. package/dist/mcp/agent-variants/previewQa.d.ts.map +1 -1
  33. package/dist/mcp/agent-variants/previewQa.js +133 -13
  34. package/dist/mcp/agent-variants/previewQa.js.map +1 -1
  35. package/dist/mcp/agent-variants/sourceContext.d.ts +20 -5
  36. package/dist/mcp/agent-variants/sourceContext.d.ts.map +1 -1
  37. package/dist/mcp/agent-variants/sourceContext.js +99 -115
  38. package/dist/mcp/agent-variants/sourceContext.js.map +1 -1
  39. package/dist/mcp/agent-variants/tools.d.ts +7 -0
  40. package/dist/mcp/agent-variants/tools.d.ts.map +1 -1
  41. package/dist/mcp/agent-variants/tools.js +209 -16
  42. package/dist/mcp/agent-variants/tools.js.map +1 -1
  43. package/dist/mcp/agent-variants/variantContext.d.ts +19 -0
  44. package/dist/mcp/agent-variants/variantContext.d.ts.map +1 -0
  45. package/dist/mcp/agent-variants/variantContext.js +355 -0
  46. package/dist/mcp/agent-variants/variantContext.js.map +1 -0
  47. package/dist/mcp/server.d.ts.map +1 -1
  48. package/dist/mcp/server.js +4 -2
  49. package/dist/mcp/server.js.map +1 -1
  50. package/dist/routes/agentVariants.js +4 -3
  51. package/dist/routes/agentVariants.js.map +1 -1
  52. package/dist/services/BrowserAgentClient.d.ts +54 -0
  53. package/dist/services/BrowserAgentClient.d.ts.map +1 -0
  54. package/dist/services/BrowserAgentClient.js +126 -0
  55. package/dist/services/BrowserAgentClient.js.map +1 -0
  56. package/dist/services/InlineVariantGenerationService.d.ts +2 -0
  57. package/dist/services/InlineVariantGenerationService.d.ts.map +1 -1
  58. package/dist/services/InlineVariantGenerationService.js +70 -3
  59. package/dist/services/InlineVariantGenerationService.js.map +1 -1
  60. package/dist/services/VariantRunService.d.ts +1 -0
  61. package/dist/services/VariantRunService.d.ts.map +1 -1
  62. package/dist/services/VariantRunService.js +1 -0
  63. package/dist/services/VariantRunService.js.map +1 -1
  64. package/dist/services/VariantsRuntime.d.ts.map +1 -1
  65. package/dist/services/VariantsRuntime.js +1 -0
  66. package/dist/services/VariantsRuntime.js.map +1 -1
  67. package/dist/services/WorktreeManager.d.ts +1 -8
  68. package/dist/services/WorktreeManager.d.ts.map +1 -1
  69. package/dist/services/WorktreeManager.js +1 -28
  70. package/dist/services/WorktreeManager.js.map +1 -1
  71. package/dist/utils/skills/describe-motion-protocol.d.ts +2 -3
  72. package/dist/utils/skills/describe-motion-protocol.d.ts.map +1 -1
  73. package/dist/utils/skills/describe-motion-protocol.js +50 -35
  74. package/dist/utils/skills/describe-motion-protocol.js.map +1 -1
  75. package/dist/utils/skills/shared-variants-protocol.d.ts +1 -1
  76. package/dist/utils/skills/shared-variants-protocol.d.ts.map +1 -1
  77. package/dist/utils/skills/shared-variants-protocol.js +16 -13
  78. package/dist/utils/skills/shared-variants-protocol.js.map +1 -1
  79. package/package.json +2 -1
  80. package/src/ui/dist/assets/{main-Cwwhwfjq.js → main-Cw6Pd8ye.js} +56 -56
  81. package/src/ui/dist/assets/main-DkCj7b2K.css +1 -0
  82. package/src/ui/dist/index.html +2 -2
  83. package/dist/mcp/agent-variants/designContextStore.d.ts +0 -160
  84. package/dist/mcp/agent-variants/designContextStore.d.ts.map +0 -1
  85. package/dist/mcp/agent-variants/designContextStore.js +0 -295
  86. package/dist/mcp/agent-variants/designContextStore.js.map +0 -1
  87. package/dist/mcp/agent-variants/inspirationDesignContext.d.ts +0 -440
  88. package/dist/mcp/agent-variants/inspirationDesignContext.d.ts.map +0 -1
  89. package/dist/mcp/agent-variants/inspirationDesignContext.js +0 -2467
  90. package/dist/mcp/agent-variants/inspirationDesignContext.js.map +0 -1
  91. package/src/ui/dist/assets/main-Do6whVIm.css +0 -1
@@ -6,10 +6,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.DEFAULT_ASSET_PROBER = exports.DEFAULT_RUNTIME_QA_RUNNER = void 0;
7
7
  exports.runPreviewQa = runPreviewQa;
8
8
  exports.extractExternalAssetUrls = extractExternalAssetUrls;
9
+ exports.extractLocalAssetPaths = extractLocalAssetPaths;
9
10
  const dns_1 = __importDefault(require("dns"));
11
+ const fs_1 = __importDefault(require("fs"));
10
12
  const http_1 = __importDefault(require("http"));
11
13
  const https_1 = __importDefault(require("https"));
12
- const inspirationDesignContext_1 = require("./inspirationDesignContext");
14
+ const path_1 = __importDefault(require("path"));
15
+ const sourceContext_1 = require("./sourceContext");
13
16
  /**
14
17
  * Preview QA — objective post-generation health checks for static-preview
15
18
  * variants. The orchestrator runs this before accepting a `static_preview`
@@ -30,6 +33,19 @@ const inspirationDesignContext_1 = require("./inspirationDesignContext");
30
33
  * runner is available.
31
34
  */
32
35
  const DEFAULT_ASSET_TIMEOUT_MS = 4_000;
36
+ const LOCAL_ASSET_EXTENSIONS = new Set([
37
+ '.avif',
38
+ '.gif',
39
+ '.glb',
40
+ '.gltf',
41
+ '.jpg',
42
+ '.jpeg',
43
+ '.mp4',
44
+ '.png',
45
+ '.svg',
46
+ '.webm',
47
+ '.webp',
48
+ ]);
33
49
  /**
34
50
  * No-op runtime QA runner used when no real (e.g. Playwright-based)
35
51
  * runner is injected. Returns an empty issue list so the gate decision
@@ -45,7 +61,7 @@ const MAX_REDIRECTS = 5;
45
61
  * @effect Performs a DNS lookup via dns.promises.lookup
46
62
  */
47
63
  const resolvePinnedAddress = async (hostname) => {
48
- if ((0, inspirationDesignContext_1.isLocalLiteralHostname)(hostname)) {
64
+ if ((0, sourceContext_1.isLocalLiteralHostname)(hostname)) {
49
65
  return {
50
66
  kind: 'blocked',
51
67
  message: `Host '${hostname}' resolves to a protected target.`,
@@ -61,7 +77,7 @@ const resolvePinnedAddress = async (hostname) => {
61
77
  message: `Host '${hostname}' could not be resolved safely.`,
62
78
  };
63
79
  }
64
- const protectedAddress = addresses.find(({ address }) => (0, inspirationDesignContext_1.isLocalLiteralHostname)(address));
80
+ const protectedAddress = addresses.find(({ address }) => (0, sourceContext_1.isLocalLiteralHostname)(address));
65
81
  if (protectedAddress) {
66
82
  return {
67
83
  kind: 'blocked',
@@ -132,7 +148,7 @@ const DEFAULT_ASSET_PROBER = async (url, timeoutMs) => {
132
148
  // RFC1918, link-local, or cloud-metadata hosts. Validate scheme +
133
149
  // local-literal targets before issuing a network request, pin DNS for the
134
150
  // request itself, and re-check after redirects.
135
- const validation = (0, inspirationDesignContext_1.validateInspirationUrl)(url);
151
+ const validation = (0, sourceContext_1.validateInspirationUrl)(url);
136
152
  if (!validation.ok) {
137
153
  return { ok: false, status: 0, message: validation.reason };
138
154
  }
@@ -141,7 +157,7 @@ const DEFAULT_ASSET_PROBER = async (url, timeoutMs) => {
141
157
  const requestWithGuardedRedirects = async (initialUrl, init) => {
142
158
  let currentUrl = initialUrl;
143
159
  for (let hop = 0; hop <= MAX_REDIRECTS; hop += 1) {
144
- const currentValidation = (0, inspirationDesignContext_1.validateInspirationUrl)(currentUrl);
160
+ const currentValidation = (0, sourceContext_1.validateInspirationUrl)(currentUrl);
145
161
  if (!currentValidation.ok) {
146
162
  return {
147
163
  kind: 'blocked',
@@ -225,7 +241,7 @@ const DEFAULT_ASSET_PROBER = async (url, timeoutMs) => {
225
241
  exports.DEFAULT_ASSET_PROBER = DEFAULT_ASSET_PROBER;
226
242
  /**
227
243
  * Run preview QA against a generated static-preview HTML document. The
228
- * static layer extracts external asset URLs and probes each one; the
244
+ * static layer extracts external asset URLs and local asset references; the
229
245
  * injectable runtime layer adds console/runtime checks. Returns a single
230
246
  * `VariantQaResult` with the combined verdict.
231
247
  */
@@ -249,7 +265,9 @@ async function runPreviewQa(input) {
249
265
  const runtimeRunner = input.options?.runtimeQaRunner ?? exports.DEFAULT_RUNTIME_QA_RUNNER;
250
266
  const assetTimeoutMs = input.options?.assetTimeoutMs ?? DEFAULT_ASSET_TIMEOUT_MS;
251
267
  const source = input.options?.source;
268
+ const localAssetBasePath = input.options?.localAssetBasePath;
252
269
  const issues = [];
270
+ const blockingAssetDetails = new Set();
253
271
  const assetUrls = extractExternalAssetUrls(html);
254
272
  await Promise.all(assetUrls.map(async (url) => {
255
273
  const result = await assetProber(url, assetTimeoutMs);
@@ -263,6 +281,18 @@ async function runPreviewQa(input) {
263
281
  });
264
282
  }
265
283
  }));
284
+ const localAssetPaths = extractLocalAssetPaths(html);
285
+ for (const assetPath of localAssetPaths) {
286
+ const validation = validateLocalAssetReference(assetPath, localAssetBasePath);
287
+ if (!validation.ok) {
288
+ blockingAssetDetails.add(assetPath);
289
+ issues.push({
290
+ kind: 'asset_load_failed',
291
+ detail: assetPath,
292
+ message: validation.message,
293
+ });
294
+ }
295
+ }
266
296
  try {
267
297
  const runtimeIssues = await runtimeRunner({ html, source: source ?? 'inline' });
268
298
  for (const issue of runtimeIssues) {
@@ -279,10 +309,11 @@ async function runPreviewQa(input) {
279
309
  // External-asset probe failures don't block — the user's browser fetches
280
310
  // these directly when viewing the preview, so a server-side reachability
281
311
  // failure (e.g. IPv6/SSRF-guard edge cases on fonts.googleapis.com) doesn't
282
- // predict whether the iframe will render. Keep them in `issues` for
283
- // visibility, but only console/runtime errors and missing previews actually
284
- // fail QA.
285
- const blockingIssues = issues.filter((issue) => issue.kind !== 'asset_load_failed');
312
+ // predict whether the iframe will render. Local asset failures do block:
313
+ // if the generated static preview references `./hero.png` and no sibling
314
+ // file exists in the asset base, the iframe has nowhere to load it from.
315
+ const blockingIssues = issues.filter((issue) => issue.kind !== 'asset_load_failed' ||
316
+ (issue.detail ? blockingAssetDetails.has(issue.detail) : false));
286
317
  if (blockingIssues.length === 0) {
287
318
  const assetIssueCount = issues.length;
288
319
  return {
@@ -337,9 +368,8 @@ const buildIssueSummary = (issues) => {
337
368
  /**
338
369
  * Extract external asset URLs from a generated HTML document. Pulls from
339
370
  * the common attributes (`src`, `href`, `poster`, `data-*` images) and
340
- * inline CSS `url(...)` references. Keeps only http(s) URLs relative
341
- * paths and inline data URIs can't fail the QA gate because they don't
342
- * touch the network.
371
+ * inline CSS `url(...)` references. Keeps only http(s) URLs; local asset
372
+ * references are validated separately against the static preview asset base.
343
373
  */
344
374
  function extractExternalAssetUrls(html) {
345
375
  const seen = new Set();
@@ -378,4 +408,94 @@ function extractExternalAssetUrls(html) {
378
408
  }
379
409
  return [...seen];
380
410
  }
411
+ function extractLocalAssetPaths(html) {
412
+ const seen = new Set();
413
+ const push = (raw) => {
414
+ if (!raw)
415
+ return;
416
+ const trimmed = raw.trim();
417
+ if (!trimmed || !isLocalAssetReference(trimmed))
418
+ return;
419
+ seen.add(trimmed);
420
+ };
421
+ const attributeRegex = /\b(?:src|href|poster|data-src|data-href|data-image|model-src)\s*=\s*("|')([^"']+)\1/gi;
422
+ let attrMatch;
423
+ while ((attrMatch = attributeRegex.exec(html))) {
424
+ push(attrMatch[2]);
425
+ }
426
+ const srcsetRegex = /\bsrcset\s*=\s*("|')([^"']+)\1/gi;
427
+ let srcsetMatch;
428
+ while ((srcsetMatch = srcsetRegex.exec(html))) {
429
+ const list = srcsetMatch[2];
430
+ for (const entry of list.split(',')) {
431
+ const url = entry.trim().split(/\s+/)[0];
432
+ push(url);
433
+ }
434
+ }
435
+ const cssUrlRegex = /url\(\s*("|'|)([^"')]+)\1\s*\)/gi;
436
+ let cssMatch;
437
+ while ((cssMatch = cssUrlRegex.exec(html))) {
438
+ push(cssMatch[2]);
439
+ }
440
+ return [...seen];
441
+ }
442
+ const isLocalAssetReference = (raw) => {
443
+ if (/^(?:https?:|data:|blob:|mailto:|tel:|javascript:)/i.test(raw)) {
444
+ return false;
445
+ }
446
+ if (raw.startsWith('#') || raw.startsWith('//'))
447
+ return false;
448
+ let pathname;
449
+ try {
450
+ pathname = new URL(raw, 'http://rivet.local').pathname;
451
+ }
452
+ catch {
453
+ return false;
454
+ }
455
+ const extension = path_1.default.extname(pathname).toLowerCase();
456
+ return LOCAL_ASSET_EXTENSIONS.has(extension);
457
+ };
458
+ const normalizeLocalAssetPath = (raw) => {
459
+ try {
460
+ const pathOnly = raw.trim().split(/[?#]/)[0] ?? '';
461
+ const decoded = decodeURIComponent(pathOnly);
462
+ return decoded.startsWith('/') ? decoded.replace(/^\/+/, '') : decoded;
463
+ }
464
+ catch {
465
+ return null;
466
+ }
467
+ };
468
+ const validateLocalAssetReference = (raw, localAssetBasePath) => {
469
+ if (!localAssetBasePath) {
470
+ return {
471
+ ok: false,
472
+ message: 'Local asset reference has no static preview asset base; copy the file or inline the asset.',
473
+ };
474
+ }
475
+ const relativePath = normalizeLocalAssetPath(raw);
476
+ if (!relativePath) {
477
+ return { ok: false, message: 'Local asset reference is malformed.' };
478
+ }
479
+ const base = path_1.default.resolve(localAssetBasePath);
480
+ const target = path_1.default.resolve(base, relativePath);
481
+ if (target !== base && !target.startsWith(base + path_1.default.sep)) {
482
+ return {
483
+ ok: false,
484
+ message: 'Local asset reference escapes the static preview asset base.',
485
+ };
486
+ }
487
+ try {
488
+ const stat = fs_1.default.statSync(target);
489
+ if (!stat.isFile()) {
490
+ return { ok: false, message: 'Local asset reference is not a file.' };
491
+ }
492
+ return { ok: true };
493
+ }
494
+ catch {
495
+ return {
496
+ ok: false,
497
+ message: 'Local asset reference was not found in the static preview.',
498
+ };
499
+ }
500
+ };
381
501
  //# sourceMappingURL=previewQa.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"previewQa.js","sourceRoot":"","sources":["../../../src/mcp/agent-variants/previewQa.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"previewQa.js","sourceRoot":"","sources":["../../../src/mcp/agent-variants/previewQa.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,23 @@
1
- import { type SourceArtifactInput, type SourceContextArtifact, type SourceContextInput } from './contracts';
1
+ /**
2
+ * Returns true for hostnames that are unambiguously local or private without
3
+ * any DNS lookup. IPv4 / IPv6 literals get the private-range check; hostname
4
+ * strings get the local-domain pattern check.
5
+ */
6
+ export declare const isLocalLiteralHostname: (hostname: string) => boolean;
7
+ /**
8
+ * Synchronous URL validator: enforces HTTP/HTTPS scheme and rejects literal
9
+ * hostnames that match local/loopback/link-local patterns. Used as the SSRF
10
+ * guard for `Brief.visualReferenceUrl` and static-preview QA.
11
+ */
12
+ export declare const validateInspirationUrl: (rawUrl: string) => {
13
+ ok: true;
14
+ url: URL;
15
+ normalized: string;
16
+ } | {
17
+ ok: false;
18
+ reason: string;
19
+ };
2
20
  export declare const normalizeUrl: (rawUrl: string) => string | null;
3
21
  export declare const extractPromptUrls: (prompt: string) => string[];
4
- export declare const resolveSourceUrls: (prompt: string, sourceContext?: SourceContextInput) => string[];
5
- export declare const normalizeSourceArtifacts: (sourceArtifacts: SourceArtifactInput[] | undefined) => SourceArtifactInput[];
6
- export declare const normalizeSourceContextArtifact: (artifact: SourceContextArtifact) => SourceContextArtifact;
7
- export declare const buildSourceContextMarkdown: (artifact: SourceContextArtifact) => string;
22
+ export declare const resolveSourceUrls: (prompt: string, extraUrls?: string[]) => string[];
8
23
  //# sourceMappingURL=sourceContext.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sourceContext.d.ts","sourceRoot":"","sources":["../../../src/mcp/agent-variants/sourceContext.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACxB,MAAM,aAAa,CAAC;AAkCrB,eAAO,MAAM,YAAY,GAAI,QAAQ,MAAM,KAAG,MAAM,GAAG,IA4BtD,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,QAAQ,MAAM,KAAG,MAAM,EAYxD,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,QAAQ,MAAM,EACd,gBAAgB,kBAAkB,KACjC,MAAM,EAYR,CAAC;AAEF,eAAO,MAAM,wBAAwB,GACnC,iBAAiB,mBAAmB,EAAE,GAAG,SAAS,KACjD,mBAAmB,EAOrB,CAAC;AAEF,eAAO,MAAM,8BAA8B,GACzC,UAAU,qBAAqB,KAC9B,qBAsCF,CAAC;AAaF,eAAO,MAAM,0BAA0B,GACrC,UAAU,qBAAqB,KAC9B,MA0CF,CAAC"}
1
+ {"version":3,"file":"sourceContext.d.ts","sourceRoot":"","sources":["../../../src/mcp/agent-variants/sourceContext.ts"],"names":[],"mappings":"AAkDA;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,GAAI,UAAU,MAAM,KAAG,OAOzD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,GACjC,QAAQ,MAAM,KAEZ;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,GAAG,EAAE,GAAG,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAC1C;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CA6B9B,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,QAAQ,MAAM,KAAG,MAAM,GAAG,IA4BtD,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,QAAQ,MAAM,KAAG,MAAM,EAYxD,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,QAAQ,MAAM,EACd,YAAW,MAAM,EAAO,KACvB,MAAM,EAYR,CAAC"}
@@ -1,34 +1,105 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.buildSourceContextMarkdown = exports.normalizeSourceContextArtifact = exports.normalizeSourceArtifacts = exports.resolveSourceUrls = exports.extractPromptUrls = exports.normalizeUrl = void 0;
4
- const errors_1 = require("./errors");
5
- // NOTE: This creates an ES module cycle with inspirationDesignContext (which
6
- // imports `extractPromptUrls` from here). The cycle is safe because
7
- // `isLocalLiteralHostname` is only invoked from inside `normalizeUrl`'s
8
- // function body, not at module-eval time. Without this guard,
9
- // `resolveSourceUrls` would happily pass `http://169.254.169.254/...` or
10
- // `http://localhost:.../` URLs from prompts / `sourceContext.sourceUrls`
11
- // straight into the `source_plan` work item, where the agent's browser
12
- // extraction step would dial them — bypassing the SSRF guard that already
13
- // covers the server-side inspiration fetcher.
14
- const inspirationDesignContext_1 = require("./inspirationDesignContext");
3
+ exports.resolveSourceUrls = exports.extractPromptUrls = exports.normalizeUrl = exports.validateInspirationUrl = exports.isLocalLiteralHostname = void 0;
15
4
  const MAX_PROMPT_URLS = 6;
16
5
  const MAX_SOURCE_URLS = 24;
17
- const MAX_ARTIFACTS = 24;
18
- const MAX_ARTIFACT_CONTENT_LENGTH = 8_000;
19
- const MAX_FIELD_LENGTH = 400;
20
- const MAX_TOTAL_MARKDOWN_LENGTH = 60_000;
21
6
  const TRAILING_URL_PUNCTUATION = /[),.;:!?]+$/;
22
- const EMAIL_PATTERN = /\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}\b/gi;
23
- const PHONE_PATTERN = /\b(?:\+?\d{1,3}[ -]?)?(?:\(?\d{2,4}\)?[ -]?)?\d{3,4}[ -]?\d{4}\b/g;
24
- const TOKEN_PATTERN = /\b(?:api[_-]?key|token|secret|password)\s*[:=]\s*[^\s,;]+/gi;
25
- const sanitizeText = (value, maxLength) => {
26
- const redacted = value
27
- .replace(EMAIL_PATTERN, '[redacted-email]')
28
- .replace(PHONE_PATTERN, '[redacted-phone]')
29
- .replace(TOKEN_PATTERN, '[redacted-secret]');
30
- return redacted.replace(/\s+/g, ' ').trim().slice(0, maxLength);
7
+ // --- SSRF guards ------------------------------------------------------------
8
+ // Synchronous literal-host checks for user-supplied URLs (inspiration
9
+ // references, `userContext` url sources, prompt-extracted links). They run
10
+ // before a URL reaches the `source_plan` work item / the agent's browser step,
11
+ // so prompt-injected `http://169.254.169.254/...` or `http://localhost/...`
12
+ // targets are rejected without IO. DNS-resolved checks are intentionally not
13
+ // done here so these stay synchronous.
14
+ const PRIVATE_IPV4_PATTERNS = [
15
+ /^10\./,
16
+ /^127\./,
17
+ /^192\.168\./,
18
+ /^169\.254\./,
19
+ /^172\.(1[6-9]|2\d|3[0-1])\./,
20
+ /^0\./,
21
+ // RFC6598 shared address space (CGNAT): 100.64.0.0/10 -> 100.64..100.127.
22
+ /^100\.(6[4-9]|[7-9]\d|1[01]\d|12[0-7])\./,
23
+ ];
24
+ // IPv6 private/reserved ranges: ::1 loopback, fe80::/10 link-local,
25
+ // fc00::/7 unique-local (first byte fc OR fd). IPv4-mapped IPv6
26
+ // (`::ffff:x.x.x.x`) is handled separately so the embedded v4 gets the full
27
+ // v4 private-range check.
28
+ const PRIVATE_IPV6_PATTERNS = [/^::1$/i, /^fe80:/i, /^f[cd][0-9a-f]{2}:/i];
29
+ /**
30
+ * Detect an IPv4-mapped IPv6 address (`::ffff:x.x.x.x`) whose embedded IPv4
31
+ * portion falls in the v4 private/reserved ranges.
32
+ */
33
+ const isIpv4MappedPrivateIpv6 = (address) => {
34
+ const match = /^::ffff:(\d+\.\d+\.\d+\.\d+)$/i.exec(address);
35
+ if (!match)
36
+ return false;
37
+ return PRIVATE_IPV4_PATTERNS.some((pattern) => pattern.test(match[1]));
31
38
  };
39
+ const LOCAL_HOSTNAME_PATTERNS = [
40
+ /^localhost$/i,
41
+ /\.localhost$/i,
42
+ /^localhost\./i,
43
+ /\.local$/i,
44
+ /\.internal$/i,
45
+ /\.lan$/i,
46
+ /\.intranet$/i,
47
+ ];
48
+ /**
49
+ * Returns true for hostnames that are unambiguously local or private without
50
+ * any DNS lookup. IPv4 / IPv6 literals get the private-range check; hostname
51
+ * strings get the local-domain pattern check.
52
+ */
53
+ const isLocalLiteralHostname = (hostname) => {
54
+ const trimmed = hostname.replace(/^\[|\]$/g, '');
55
+ if (PRIVATE_IPV4_PATTERNS.some((pattern) => pattern.test(trimmed)))
56
+ return true;
57
+ if (PRIVATE_IPV6_PATTERNS.some((pattern) => pattern.test(trimmed)))
58
+ return true;
59
+ if (isIpv4MappedPrivateIpv6(trimmed))
60
+ return true;
61
+ if (LOCAL_HOSTNAME_PATTERNS.some((pattern) => pattern.test(trimmed)))
62
+ return true;
63
+ return false;
64
+ };
65
+ exports.isLocalLiteralHostname = isLocalLiteralHostname;
66
+ /**
67
+ * Synchronous URL validator: enforces HTTP/HTTPS scheme and rejects literal
68
+ * hostnames that match local/loopback/link-local patterns. Used as the SSRF
69
+ * guard for `Brief.visualReferenceUrl` and static-preview QA.
70
+ */
71
+ const validateInspirationUrl = (rawUrl) => {
72
+ const trimmed = rawUrl.trim();
73
+ if (!trimmed) {
74
+ return { ok: false, reason: 'URL is empty.' };
75
+ }
76
+ let parsed;
77
+ try {
78
+ parsed = new URL(trimmed);
79
+ }
80
+ catch {
81
+ return { ok: false, reason: `URL is not valid: ${trimmed}` };
82
+ }
83
+ if (parsed.protocol !== 'http:' && parsed.protocol !== 'https:') {
84
+ return {
85
+ ok: false,
86
+ reason: `Only HTTP and HTTPS inspiration links are supported (got '${parsed.protocol.replace(/:$/, '')}').`,
87
+ };
88
+ }
89
+ const hostname = parsed.hostname.toLowerCase();
90
+ if (!hostname) {
91
+ return { ok: false, reason: 'URL is missing a hostname.' };
92
+ }
93
+ if ((0, exports.isLocalLiteralHostname)(hostname)) {
94
+ return {
95
+ ok: false,
96
+ reason: `URL hostname '${hostname}' resolves to a local or private-network target.`,
97
+ };
98
+ }
99
+ parsed.hash = '';
100
+ return { ok: true, url: parsed, normalized: parsed.toString() };
101
+ };
102
+ exports.validateInspirationUrl = validateInspirationUrl;
32
103
  const normalizeUrl = (rawUrl) => {
33
104
  const trimmed = rawUrl.trim().replace(TRAILING_URL_PUNCTUATION, '');
34
105
  if (!trimmed)
@@ -54,7 +125,7 @@ const normalizeUrl = (rawUrl) => {
54
125
  // because `normalizeUrl` must stay sync; the literal check covers
55
126
  // every cheap-to-stuff target without needing IO.
56
127
  const hostname = parsed.hostname.toLowerCase();
57
- if (!hostname || (0, inspirationDesignContext_1.isLocalLiteralHostname)(hostname)) {
128
+ if (!hostname || (0, exports.isLocalLiteralHostname)(hostname)) {
58
129
  return null;
59
130
  }
60
131
  parsed.hash = '';
@@ -77,8 +148,8 @@ const extractPromptUrls = (prompt) => {
77
148
  return deduped;
78
149
  };
79
150
  exports.extractPromptUrls = extractPromptUrls;
80
- const resolveSourceUrls = (prompt, sourceContext) => {
81
- const merged = [...(0, exports.extractPromptUrls)(prompt), ...(sourceContext?.sourceUrls ?? [])];
151
+ const resolveSourceUrls = (prompt, extraUrls = []) => {
152
+ const merged = [...(0, exports.extractPromptUrls)(prompt), ...extraUrls];
82
153
  const deduped = [];
83
154
  const seen = new Set();
84
155
  for (const candidate of merged) {
@@ -93,91 +164,4 @@ const resolveSourceUrls = (prompt, sourceContext) => {
93
164
  return deduped;
94
165
  };
95
166
  exports.resolveSourceUrls = resolveSourceUrls;
96
- const normalizeSourceArtifacts = (sourceArtifacts) => {
97
- if (!sourceArtifacts || sourceArtifacts.length === 0)
98
- return [];
99
- return sourceArtifacts.slice(0, MAX_ARTIFACTS).map((artifact) => ({
100
- kind: artifact.kind,
101
- label: sanitizeText(artifact.label, 80),
102
- content: sanitizeText(artifact.content, MAX_ARTIFACT_CONTENT_LENGTH),
103
- }));
104
- };
105
- exports.normalizeSourceArtifacts = normalizeSourceArtifacts;
106
- const normalizeSourceContextArtifact = (artifact) => {
107
- const normalizeList = (items) => items.map((item) => sanitizeText(item, MAX_FIELD_LENGTH)).filter(Boolean);
108
- const normalized = {
109
- sourceFindings: normalizeList(artifact.sourceFindings),
110
- sectionInventory: normalizeList(artifact.sectionInventory),
111
- visualObservations: normalizeList(artifact.visualObservations),
112
- sourceRoles: artifact.sourceRoles.map((entry) => ({
113
- url: sanitizeText(entry.url, 2_048),
114
- role: entry.role,
115
- ...(entry.rationale
116
- ? { rationale: sanitizeText(entry.rationale, MAX_FIELD_LENGTH) }
117
- : {}),
118
- })),
119
- qualityBar: normalizeList(artifact.qualityBar),
120
- ...(artifact.screenshotReferences
121
- ? {
122
- screenshotReferences: normalizeList(artifact.screenshotReferences).slice(0, 16),
123
- }
124
- : {}),
125
- ...(artifact.risks
126
- ? { risks: normalizeList(artifact.risks).slice(0, 24) }
127
- : {}),
128
- };
129
- const estimatedSize = JSON.stringify(normalized).length;
130
- if (estimatedSize > MAX_TOTAL_MARKDOWN_LENGTH) {
131
- throw new errors_1.AgentVariantsError('SOURCE_CONTEXT_TOO_LARGE', `Source context exceeds size limit (${estimatedSize} > ${MAX_TOTAL_MARKDOWN_LENGTH})`);
132
- }
133
- return normalized;
134
- };
135
- exports.normalizeSourceContextArtifact = normalizeSourceContextArtifact;
136
- const redactUrlForDisplay = (url) => {
137
- try {
138
- const parsed = new URL(url);
139
- parsed.search = '';
140
- parsed.hash = '';
141
- return parsed.toString();
142
- }
143
- catch {
144
- return url;
145
- }
146
- };
147
- const buildSourceContextMarkdown = (artifact) => {
148
- const lines = [
149
- '# SOURCE_CONTEXT',
150
- '',
151
- '## Source Findings',
152
- ...artifact.sourceFindings.map((item) => `- ${item}`),
153
- '',
154
- '## Section Inventory',
155
- ...artifact.sectionInventory.map((item) => `- ${item}`),
156
- '',
157
- '## Visual Observations',
158
- ...artifact.visualObservations.map((item) => `- ${item}`),
159
- '',
160
- '## Source Roles',
161
- ...artifact.sourceRoles.map((entry) => entry.rationale
162
- ? `- ${entry.role}: ${redactUrlForDisplay(entry.url)} (${entry.rationale})`
163
- : `- ${entry.role}: ${redactUrlForDisplay(entry.url)}`),
164
- '',
165
- '## Quality Bar',
166
- ...artifact.qualityBar.map((item) => `- ${item}`),
167
- ];
168
- if (artifact.screenshotReferences && artifact.screenshotReferences.length > 0) {
169
- lines.push('', '## Screenshot References');
170
- lines.push(...artifact.screenshotReferences.map((item) => `- ${item}`));
171
- }
172
- if (artifact.risks && artifact.risks.length > 0) {
173
- lines.push('', '## Risks');
174
- lines.push(...artifact.risks.map((item) => `- ${item}`));
175
- }
176
- const markdown = lines.join('\n').trim();
177
- if (markdown.length > MAX_TOTAL_MARKDOWN_LENGTH) {
178
- throw new errors_1.AgentVariantsError('SOURCE_CONTEXT_TOO_LARGE', `SOURCE_CONTEXT.md exceeds size limit (${markdown.length} > ${MAX_TOTAL_MARKDOWN_LENGTH})`);
179
- }
180
- return `${markdown}\n`;
181
- };
182
- exports.buildSourceContextMarkdown = buildSourceContextMarkdown;
183
167
  //# sourceMappingURL=sourceContext.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sourceContext.js","sourceRoot":"","sources":["../../../src/mcp/agent-variants/sourceContext.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sourceContext.js","sourceRoot":"","sources":["../../../src/mcp/agent-variants/sourceContext.ts"],"names":[],"mappings":";;;AAAA,MAAM,eAAe,GAAG,CAAC,CAAC;AAC1B,MAAM,eAAe,GAAG,EAAE,CAAC;AAE3B,MAAM,wBAAwB,GAAG,aAAa,CAAC;AAE/C,+EAA+E;AAC/E,sEAAsE;AACtE,2EAA2E;AAC3E,+EAA+E;AAC/E,4EAA4E;AAC5E,6EAA6E;AAC7E,uCAAuC;AAEvC,MAAM,qBAAqB,GAAa;IACtC,OAAO;IACP,QAAQ;IACR,aAAa;IACb,aAAa;IACb,6BAA6B;IAC7B,MAAM;IACN,0EAA0E;IAC1E,0CAA0C;CAC3C,CAAC;AAEF,oEAAoE;AACpE,gEAAgE;AAChE,4EAA4E;AAC5E,0BAA0B;AAC1B,MAAM,qBAAqB,GAAa,CAAC,QAAQ,EAAE,SAAS,EAAE,qBAAqB,CAAC,CAAC;AAErF;;;GAGG;AACH,MAAM,uBAAuB,GAAG,CAAC,OAAe,EAAW,EAAE;IAC3D,MAAM,KAAK,GAAG,gCAAgC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7D,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,OAAO,qBAAqB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzE,CAAC,CAAC;AAEF,MAAM,uBAAuB,GAAa;IACxC,cAAc;IACd,eAAe;IACf,eAAe;IACf,WAAW;IACX,cAAc;IACd,SAAS;IACT,cAAc;CACf,CAAC;AAEF;;;;GAIG;AACI,MAAM,sBAAsB,GAAG,CAAC,QAAgB,EAAW,EAAE;IAClE,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IACjD,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAChF,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAChF,IAAI,uBAAuB,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAClD,IAAI,uBAAuB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAClF,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAPW,QAAA,sBAAsB,0BAOjC;AAEF;;;;GAIG;AACI,MAAM,sBAAsB,GAAG,CACpC,MAAc,EAGkB,EAAE;IAClC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IAC9B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;IAChD,CAAC;IACD,IAAI,MAAW,CAAC;IAChB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,qBAAqB,OAAO,EAAE,EAAE,CAAC;IAC/D,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,KAAK,OAAO,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAChE,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,6DAA6D,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK;SAC5G,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;IAC/C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,4BAA4B,EAAE,CAAC;IAC7D,CAAC;IACD,IAAI,IAAA,8BAAsB,EAAC,QAAQ,CAAC,EAAE,CAAC;QACrC,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,iBAAiB,QAAQ,kDAAkD;SACpF,CAAC;IACJ,CAAC;IACD,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;IACjB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;AAClE,CAAC,CAAC;AAjCW,QAAA,sBAAsB,0BAiCjC;AAEK,MAAM,YAAY,GAAG,CAAC,MAAc,EAAiB,EAAE;IAC5D,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,wBAAwB,EAAE,EAAE,CAAC,CAAC;IACpE,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,IAAI,MAAW,CAAC;IAChB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,KAAK,OAAO,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAChE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,gEAAgE;IAChE,mEAAmE;IACnE,6DAA6D;IAC7D,iEAAiE;IACjE,gEAAgE;IAChE,gEAAgE;IAChE,oEAAoE;IACpE,iEAAiE;IACjE,kEAAkE;IAClE,kDAAkD;IAClD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;IAC/C,IAAI,CAAC,QAAQ,IAAI,IAAA,8BAAsB,EAAC,QAAQ,CAAC,EAAE,CAAC;QAClD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;IACjB,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;AAC3B,CAAC,CAAC;AA5BW,QAAA,YAAY,gBA4BvB;AAEK,MAAM,iBAAiB,GAAG,CAAC,MAAc,EAAY,EAAE;IAC5D,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,IAAI,EAAE,CAAC;IAC5D,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,MAAM,UAAU,GAAG,IAAA,oBAAY,EAAC,GAAG,CAAC,CAAC;QACrC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;YAAE,SAAS;QAClD,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACzB,IAAI,OAAO,CAAC,MAAM,IAAI,eAAe;YAAE,MAAM;IAC/C,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAZW,QAAA,iBAAiB,qBAY5B;AAEK,MAAM,iBAAiB,GAAG,CAC/B,MAAc,EACd,YAAsB,EAAE,EACd,EAAE;IACZ,MAAM,MAAM,GAAG,CAAC,GAAG,IAAA,yBAAiB,EAAC,MAAM,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC;IAC5D,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,SAAS,IAAI,MAAM,EAAE,CAAC;QAC/B,MAAM,UAAU,GAAG,IAAA,oBAAY,EAAC,SAAS,CAAC,CAAC;QAC3C,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;YAAE,SAAS;QAClD,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACzB,IAAI,OAAO,CAAC,MAAM,IAAI,eAAe;YAAE,MAAM;IAC/C,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAfW,QAAA,iBAAiB,qBAe5B"}
@@ -5,6 +5,7 @@ import { slugifyPrompt } from './generatedDestination';
5
5
  export { slugifyPrompt };
6
6
  import type { AgentVariantsOrchestrator } from './WorktreeOrchestrator';
7
7
  import type { IntegrationsClient } from '../../services/IntegrationsClient';
8
+ import { BrowserAgentClient } from '../../services/BrowserAgentClient';
8
9
  /**
9
10
  * Coerce `output` to a structured value when an agent (incorrectly) sends a
10
11
  * stringified JSON. The MCP schema accepts `z.unknown()` so the call doesn't
@@ -51,6 +52,12 @@ export interface ToolDeps {
51
52
  homedir?: () => string;
52
53
  /** Optional authenticated integration client for source-context enrichment. */
53
54
  integrationsClient?: Pick<IntegrationsClient, 'fetchPinterest'>;
55
+ /**
56
+ * Browser-agent client for `capture_design_evidence`. Calls the proxy to
57
+ * render reference URLs server-side (provider keys never reach the CLI).
58
+ * Defaults to a fresh `BrowserAgentClient`; injectable for tests.
59
+ */
60
+ browserAgentClient?: Pick<BrowserAgentClient, 'captureDesignEvidence'>;
54
61
  }
55
62
  /**
56
63
  * Telemetry surface used by the variants tools. All methods optional so unit