cbrowser 18.73.2 → 18.74.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 (137) hide show
  1. package/dist/analysis/accessibility-empathy.d.ts.map +1 -1
  2. package/dist/analysis/accessibility-empathy.js +113 -8
  3. package/dist/analysis/accessibility-empathy.js.map +1 -1
  4. package/dist/analysis/agent-ready-audit.d.ts.map +1 -1
  5. package/dist/analysis/agent-ready-audit.js +66 -5
  6. package/dist/analysis/agent-ready-audit.js.map +1 -1
  7. package/dist/analysis/natural-language.d.ts.map +1 -1
  8. package/dist/analysis/natural-language.js +9 -8
  9. package/dist/analysis/natural-language.js.map +1 -1
  10. package/dist/analysis/page-understanding.d.ts.map +1 -1
  11. package/dist/analysis/page-understanding.js +115 -14
  12. package/dist/analysis/page-understanding.js.map +1 -1
  13. package/dist/analysis/webmcp-readiness.d.ts.map +1 -1
  14. package/dist/analysis/webmcp-readiness.js +18 -7
  15. package/dist/analysis/webmcp-readiness.js.map +1 -1
  16. package/dist/artifact-store.d.ts +55 -0
  17. package/dist/artifact-store.d.ts.map +1 -0
  18. package/dist/artifact-store.js +63 -0
  19. package/dist/artifact-store.js.map +1 -0
  20. package/dist/browser.d.ts +8 -0
  21. package/dist/browser.d.ts.map +1 -1
  22. package/dist/browser.js +157 -41
  23. package/dist/browser.js.map +1 -1
  24. package/dist/cli.js +12 -0
  25. package/dist/cli.js.map +1 -1
  26. package/dist/config.d.ts.map +1 -1
  27. package/dist/config.js +28 -1
  28. package/dist/config.js.map +1 -1
  29. package/dist/mcp-server-remote.d.ts +17 -1
  30. package/dist/mcp-server-remote.d.ts.map +1 -1
  31. package/dist/mcp-server-remote.js +22 -3
  32. package/dist/mcp-server-remote.js.map +1 -1
  33. package/dist/mcp-server.d.ts.map +1 -1
  34. package/dist/mcp-server.js +20 -0
  35. package/dist/mcp-server.js.map +1 -1
  36. package/dist/mcp-tools/base/analysis-tools.d.ts +1 -1
  37. package/dist/mcp-tools/base/analysis-tools.d.ts.map +1 -1
  38. package/dist/mcp-tools/base/analysis-tools.js +83 -10
  39. package/dist/mcp-tools/base/analysis-tools.js.map +1 -1
  40. package/dist/mcp-tools/base/assertion-tools.d.ts +1 -1
  41. package/dist/mcp-tools/base/assertion-tools.d.ts.map +1 -1
  42. package/dist/mcp-tools/base/assertion-tools.js +26 -3
  43. package/dist/mcp-tools/base/assertion-tools.js.map +1 -1
  44. package/dist/mcp-tools/base/audit-tools.d.ts.map +1 -1
  45. package/dist/mcp-tools/base/audit-tools.js +189 -28
  46. package/dist/mcp-tools/base/audit-tools.js.map +1 -1
  47. package/dist/mcp-tools/base/browser-management-tools.d.ts +1 -1
  48. package/dist/mcp-tools/base/browser-management-tools.d.ts.map +1 -1
  49. package/dist/mcp-tools/base/browser-management-tools.js +66 -15
  50. package/dist/mcp-tools/base/browser-management-tools.js.map +1 -1
  51. package/dist/mcp-tools/base/browser-state-tools.d.ts.map +1 -1
  52. package/dist/mcp-tools/base/browser-state-tools.js +6 -1
  53. package/dist/mcp-tools/base/browser-state-tools.js.map +1 -1
  54. package/dist/mcp-tools/base/cognitive-tools.d.ts.map +1 -1
  55. package/dist/mcp-tools/base/cognitive-tools.js +103 -30
  56. package/dist/mcp-tools/base/cognitive-tools.js.map +1 -1
  57. package/dist/mcp-tools/base/extraction-tools.d.ts.map +1 -1
  58. package/dist/mcp-tools/base/extraction-tools.js +6 -0
  59. package/dist/mcp-tools/base/extraction-tools.js.map +1 -1
  60. package/dist/mcp-tools/base/gif-tools.d.ts.map +1 -1
  61. package/dist/mcp-tools/base/gif-tools.js +7 -7
  62. package/dist/mcp-tools/base/gif-tools.js.map +1 -1
  63. package/dist/mcp-tools/base/interaction-tools.d.ts.map +1 -1
  64. package/dist/mcp-tools/base/interaction-tools.js +76 -11
  65. package/dist/mcp-tools/base/interaction-tools.js.map +1 -1
  66. package/dist/mcp-tools/base/persona-comparison-tools.d.ts.map +1 -1
  67. package/dist/mcp-tools/base/persona-comparison-tools.js +78 -10
  68. package/dist/mcp-tools/base/persona-comparison-tools.js.map +1 -1
  69. package/dist/mcp-tools/base/session-tools.d.ts +1 -1
  70. package/dist/mcp-tools/base/session-tools.d.ts.map +1 -1
  71. package/dist/mcp-tools/base/session-tools.js +64 -7
  72. package/dist/mcp-tools/base/session-tools.js.map +1 -1
  73. package/dist/mcp-tools/base/site-knowledge-tools.d.ts.map +1 -1
  74. package/dist/mcp-tools/base/site-knowledge-tools.js +47 -1
  75. package/dist/mcp-tools/base/site-knowledge-tools.js.map +1 -1
  76. package/dist/mcp-tools/base/testing-tools.d.ts.map +1 -1
  77. package/dist/mcp-tools/base/testing-tools.js +20 -0
  78. package/dist/mcp-tools/base/testing-tools.js.map +1 -1
  79. package/dist/mcp-tools/base/visual-testing-tools.d.ts.map +1 -1
  80. package/dist/mcp-tools/base/visual-testing-tools.js +71 -46
  81. package/dist/mcp-tools/base/visual-testing-tools.js.map +1 -1
  82. package/dist/mcp-tools/persona-creation-tools.d.ts.map +1 -1
  83. package/dist/mcp-tools/persona-creation-tools.js +40 -10
  84. package/dist/mcp-tools/persona-creation-tools.js.map +1 -1
  85. package/dist/mcp-tools/session-policy.d.ts +43 -0
  86. package/dist/mcp-tools/session-policy.d.ts.map +1 -0
  87. package/dist/mcp-tools/session-policy.js +54 -0
  88. package/dist/mcp-tools/session-policy.js.map +1 -0
  89. package/dist/mcp-ui-resources.d.ts +83 -0
  90. package/dist/mcp-ui-resources.d.ts.map +1 -0
  91. package/dist/mcp-ui-resources.js +128 -0
  92. package/dist/mcp-ui-resources.js.map +1 -0
  93. package/dist/performance/metrics.d.ts +0 -3
  94. package/dist/performance/metrics.d.ts.map +1 -1
  95. package/dist/performance/metrics.js +45 -1
  96. package/dist/performance/metrics.js.map +1 -1
  97. package/dist/personas.d.ts.map +1 -1
  98. package/dist/personas.js +38 -4
  99. package/dist/personas.js.map +1 -1
  100. package/dist/remediation/patch-generator.d.ts.map +1 -1
  101. package/dist/remediation/patch-generator.js +36 -2
  102. package/dist/remediation/patch-generator.js.map +1 -1
  103. package/dist/selector-escape.d.ts +37 -0
  104. package/dist/selector-escape.d.ts.map +1 -0
  105. package/dist/selector-escape.js +83 -0
  106. package/dist/selector-escape.js.map +1 -0
  107. package/dist/testing/coverage.d.ts +8 -0
  108. package/dist/testing/coverage.d.ts.map +1 -1
  109. package/dist/testing/coverage.js +12 -0
  110. package/dist/testing/coverage.js.map +1 -1
  111. package/dist/types.d.ts +42 -0
  112. package/dist/types.d.ts.map +1 -1
  113. package/dist/types.js.map +1 -1
  114. package/dist/visual/attention-quality.d.ts +0 -9
  115. package/dist/visual/attention-quality.d.ts.map +1 -1
  116. package/dist/visual/attention-quality.js +28 -1
  117. package/dist/visual/attention-quality.js.map +1 -1
  118. package/dist/visual/barrier-overlay-html.d.ts +88 -0
  119. package/dist/visual/barrier-overlay-html.d.ts.map +1 -0
  120. package/dist/visual/barrier-overlay-html.js +142 -0
  121. package/dist/visual/barrier-overlay-html.js.map +1 -0
  122. package/dist/visual/cognitive-transport.d.ts +15 -8
  123. package/dist/visual/cognitive-transport.d.ts.map +1 -1
  124. package/dist/visual/cognitive-transport.js +113 -34
  125. package/dist/visual/cognitive-transport.js.map +1 -1
  126. package/dist/visual/cross-browser.d.ts +13 -0
  127. package/dist/visual/cross-browser.d.ts.map +1 -1
  128. package/dist/visual/cross-browser.js +29 -3
  129. package/dist/visual/cross-browser.js.map +1 -1
  130. package/dist/visual/perceptual-transport.d.ts +8 -0
  131. package/dist/visual/perceptual-transport.d.ts.map +1 -1
  132. package/dist/visual/perceptual-transport.js +19 -0
  133. package/dist/visual/perceptual-transport.js.map +1 -1
  134. package/dist/visual/regression.d.ts.map +1 -1
  135. package/dist/visual/regression.js +76 -3
  136. package/dist/visual/regression.js.map +1 -1
  137. package/package.json +2 -1
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Served artifact store.
3
+ *
4
+ * Every tool that produces an image — heatmaps, motor overlays, comparison
5
+ * heatmaps, journey GIFs — writes it somewhere and hands the caller back a
6
+ * `https://cbrowser.ai/heatmaps/<file>` URL. Four call sites each hard-coded
7
+ * their own directory, and none of them was the directory nginx serves:
8
+ *
9
+ * nginx: location ^~ /heatmaps/ -> alias /var/www/cbrowser-data/heatmaps/
10
+ * code: /home/wyld-web/static/cbrowser-web/out/heatmaps (x4)
11
+ * /var/www/cbrowser-web/heatmaps (x1, first in a
12
+ * fallback list)
13
+ *
14
+ * Measured 2026-07-29: the served directory's newest file was from Jul 19 and
15
+ * fetched 200; a file written that morning by the live code fetched 404. So for
16
+ * ten days every artifact URL the product returned to a paying customer was
17
+ * dead, and nothing caught it, because each tool's notion of success was "the
18
+ * write did not throw" rather than "the URL I am about to return resolves".
19
+ *
20
+ * The fix is not four corrected literals — that reproduces the same failure the
21
+ * next time someone adds a fifth writer. Directory and URL are derived from ONE
22
+ * constant here, and `writeArtifact` is the only sanctioned way to produce a
23
+ * public artifact.
24
+ *
25
+ * @copyright 2026 Alexandria Eden alexandria.shai.eden@gmail.com https://cbrowser.ai
26
+ * @license MIT
27
+ */
28
+ /**
29
+ * The directory nginx serves at `/heatmaps/`. Overridable so tests never write
30
+ * into the production served root.
31
+ */
32
+ export declare const ARTIFACT_DIR: string;
33
+ /** Public origin the artifact directory is exposed under. */
34
+ export declare const ARTIFACT_BASE_URL: string;
35
+ export interface WrittenArtifact {
36
+ /** Absolute path on disk. */
37
+ path: string;
38
+ /** Public URL that resolves to `path`, assuming the server is up. */
39
+ url: string;
40
+ /** Bare filename, for callers that build their own links. */
41
+ filename: string;
42
+ }
43
+ /**
44
+ * Write bytes into the served artifact directory and return both the on-disk
45
+ * path and the URL that serves it.
46
+ *
47
+ * Returns `null` rather than throwing when the write fails: an artifact is
48
+ * never worth failing a whole audit over. Callers MUST treat null as "no URL to
49
+ * offer" and omit the field — handing back a URL for a file that was not
50
+ * written is the defect this module exists to end.
51
+ */
52
+ export declare function writeArtifact(data: Buffer | string, filename: string): WrittenArtifact | null;
53
+ /** URL for a filename already known to live in the artifact directory. */
54
+ export declare function artifactUrl(filename: string): string;
55
+ //# sourceMappingURL=artifact-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifact-store.d.ts","sourceRoot":"","sources":["../src/artifact-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAKH;;;GAGG;AACH,eAAO,MAAM,YAAY,QAC+C,CAAC;AAEzE,6DAA6D;AAC7D,eAAO,MAAM,iBAAiB,QAC4C,CAAC;AAE3E,MAAM,WAAW,eAAe;IAC9B,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,qEAAqE;IACrE,GAAG,EAAE,MAAM,CAAC;IACZ,6DAA6D;IAC7D,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,GAAG,MAAM,EACrB,QAAQ,EAAE,MAAM,GACf,eAAe,GAAG,IAAI,CAUxB;AAED,0EAA0E;AAC1E,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEpD"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Served artifact store.
3
+ *
4
+ * Every tool that produces an image — heatmaps, motor overlays, comparison
5
+ * heatmaps, journey GIFs — writes it somewhere and hands the caller back a
6
+ * `https://cbrowser.ai/heatmaps/<file>` URL. Four call sites each hard-coded
7
+ * their own directory, and none of them was the directory nginx serves:
8
+ *
9
+ * nginx: location ^~ /heatmaps/ -> alias /var/www/cbrowser-data/heatmaps/
10
+ * code: /home/wyld-web/static/cbrowser-web/out/heatmaps (x4)
11
+ * /var/www/cbrowser-web/heatmaps (x1, first in a
12
+ * fallback list)
13
+ *
14
+ * Measured 2026-07-29: the served directory's newest file was from Jul 19 and
15
+ * fetched 200; a file written that morning by the live code fetched 404. So for
16
+ * ten days every artifact URL the product returned to a paying customer was
17
+ * dead, and nothing caught it, because each tool's notion of success was "the
18
+ * write did not throw" rather than "the URL I am about to return resolves".
19
+ *
20
+ * The fix is not four corrected literals — that reproduces the same failure the
21
+ * next time someone adds a fifth writer. Directory and URL are derived from ONE
22
+ * constant here, and `writeArtifact` is the only sanctioned way to produce a
23
+ * public artifact.
24
+ *
25
+ * @copyright 2026 Alexandria Eden alexandria.shai.eden@gmail.com https://cbrowser.ai
26
+ * @license MIT
27
+ */
28
+ import { writeFileSync, mkdirSync, existsSync } from "fs";
29
+ import { join } from "path";
30
+ /**
31
+ * The directory nginx serves at `/heatmaps/`. Overridable so tests never write
32
+ * into the production served root.
33
+ */
34
+ export const ARTIFACT_DIR = process.env.CBROWSER_ARTIFACT_DIR || "/var/www/cbrowser-data/heatmaps";
35
+ /** Public origin the artifact directory is exposed under. */
36
+ export const ARTIFACT_BASE_URL = process.env.CBROWSER_ARTIFACT_BASE_URL || "https://cbrowser.ai/heatmaps";
37
+ /**
38
+ * Write bytes into the served artifact directory and return both the on-disk
39
+ * path and the URL that serves it.
40
+ *
41
+ * Returns `null` rather than throwing when the write fails: an artifact is
42
+ * never worth failing a whole audit over. Callers MUST treat null as "no URL to
43
+ * offer" and omit the field — handing back a URL for a file that was not
44
+ * written is the defect this module exists to end.
45
+ */
46
+ export function writeArtifact(data, filename) {
47
+ try {
48
+ if (!existsSync(ARTIFACT_DIR))
49
+ mkdirSync(ARTIFACT_DIR, { recursive: true });
50
+ const safe = filename.replace(/[^a-zA-Z0-9._-]+/g, "-");
51
+ const path = join(ARTIFACT_DIR, safe);
52
+ writeFileSync(path, typeof data === "string" ? Buffer.from(data, "base64") : data);
53
+ return { path, url: `${ARTIFACT_BASE_URL}/${safe}`, filename: safe };
54
+ }
55
+ catch {
56
+ return null;
57
+ }
58
+ }
59
+ /** URL for a filename already known to live in the artifact directory. */
60
+ export function artifactUrl(filename) {
61
+ return `${ARTIFACT_BASE_URL}/${filename.replace(/[^a-zA-Z0-9._-]+/g, "-")}`;
62
+ }
63
+ //# sourceMappingURL=artifact-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifact-store.js","sourceRoot":"","sources":["../src/artifact-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GACvB,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,iCAAiC,CAAC;AAEzE,6DAA6D;AAC7D,MAAM,CAAC,MAAM,iBAAiB,GAC5B,OAAO,CAAC,GAAG,CAAC,0BAA0B,IAAI,8BAA8B,CAAC;AAW3E;;;;;;;;GAQG;AACH,MAAM,UAAU,aAAa,CAC3B,IAAqB,EACrB,QAAgB;IAEhB,IAAI,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;YAAE,SAAS,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5E,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;QACxD,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QACtC,aAAa,CAAC,IAAI,EAAE,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACnF,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,iBAAiB,IAAI,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACvE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,WAAW,CAAC,QAAgB;IAC1C,OAAO,GAAG,iBAAiB,IAAI,QAAQ,CAAC,OAAO,CAAC,mBAAmB,EAAE,GAAG,CAAC,EAAE,CAAC;AAC9E,CAAC"}
package/dist/browser.d.ts CHANGED
@@ -74,6 +74,14 @@ export declare class CBrowser {
74
74
  private currentPersona;
75
75
  private networkRequests;
76
76
  private networkResponses;
77
+ /**
78
+ * In-flight requests awaiting a response, so the response handler can attach
79
+ * status and duration to the originating record. Keyed by url+method, capped
80
+ * so a page that fires requests which never resolve cannot grow it without
81
+ * bound. (2026-07-28)
82
+ */
83
+ private pendingRequests;
84
+ private static readonly MAX_PENDING_REQUESTS;
77
85
  private harEntries;
78
86
  private isRecordingHar;
79
87
  private skipSessionRestore;
@@ -1 +1 @@
1
- {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"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"}
package/dist/browser.js CHANGED
@@ -153,6 +153,26 @@ export async function launchBrowserWithFallback(browserType = chromium, options
153
153
  }
154
154
  }
155
155
  }
156
+ /**
157
+ * Compress a Playwright error for a tool response.
158
+ *
159
+ * Playwright appends a "Call log:" listing every retry, which for a click that
160
+ * waits out its timeout runs to dozens of near-identical lines and roughly 4k
161
+ * tokens. The first lines say what failed and the last say how it ended; the
162
+ * middle is the same line repeated. Keep both ends, drop the middle, and say how
163
+ * much was dropped so nobody wonders what they are not seeing. (2026-07-29)
164
+ */
165
+ function summarizePlaywrightError(message, headLines = 6, tailLines = 4) {
166
+ const lines = message.split("\n");
167
+ if (lines.length <= headLines + tailLines + 2)
168
+ return message;
169
+ const dropped = lines.length - headLines - tailLines;
170
+ return [
171
+ ...lines.slice(0, headLines),
172
+ ` … ${dropped} more lines of Playwright retry log elided (set verbose for the full log) …`,
173
+ ...lines.slice(-tailLines),
174
+ ].join("\n");
175
+ }
156
176
  export class CBrowser {
157
177
  config;
158
178
  paths;
@@ -162,6 +182,14 @@ export class CBrowser {
162
182
  currentPersona = null;
163
183
  networkRequests = [];
164
184
  networkResponses = new Map();
185
+ /**
186
+ * In-flight requests awaiting a response, so the response handler can attach
187
+ * status and duration to the originating record. Keyed by url+method, capped
188
+ * so a page that fires requests which never resolve cannot grow it without
189
+ * bound. (2026-07-28)
190
+ */
191
+ pendingRequests = new Map();
192
+ static MAX_PENDING_REQUESTS = 2000;
165
193
  harEntries = [];
166
194
  isRecordingHar = false;
167
195
  skipSessionRestore;
@@ -1186,6 +1214,17 @@ For more help: https://playwright.dev/docs/browsers
1186
1214
  timestamp: new Date().toISOString(),
1187
1215
  };
1188
1216
  this.networkRequests.push(networkRequest);
1217
+ // Track it so the response handler can complete the record. Evict the
1218
+ // oldest entry rather than growing forever when responses never arrive.
1219
+ if (this.pendingRequests.size >= CBrowser.MAX_PENDING_REQUESTS) {
1220
+ const oldest = this.pendingRequests.keys().next();
1221
+ if (!oldest.done)
1222
+ this.pendingRequests.delete(oldest.value);
1223
+ }
1224
+ this.pendingRequests.set(request.url() + request.method(), {
1225
+ req: networkRequest,
1226
+ startedAt: Date.now(),
1227
+ });
1189
1228
  if (this.isRecordingHar) {
1190
1229
  // Start HAR entry
1191
1230
  const harEntry = {
@@ -1205,12 +1244,17 @@ For more help: https://playwright.dev/docs/browsers
1205
1244
  });
1206
1245
  this.page.on("response", async (response) => {
1207
1246
  const key = response.url() + response.request().method();
1208
- const _networkResponse = {
1209
- url: response.url(),
1210
- status: response.status(),
1211
- statusText: response.statusText(),
1212
- headers: response.headers(),
1213
- };
1247
+ // This status was already being computed here and then discarded into an
1248
+ // unused local, which is why get_network_requests could never report the
1249
+ // status codes and timing its description promised. Attach it to the
1250
+ // originating request record instead. (2026-07-28)
1251
+ const pending = this.pendingRequests.get(key);
1252
+ if (pending) {
1253
+ pending.req.status = response.status();
1254
+ pending.req.statusText = response.statusText();
1255
+ pending.req.durationMs = Date.now() - pending.startedAt;
1256
+ this.pendingRequests.delete(key);
1257
+ }
1214
1258
  if (this.isRecordingHar && this.networkResponses.has(key)) {
1215
1259
  const partial = this.networkResponses.get(key);
1216
1260
  const startTime = new Date(partial.startedDateTime).getTime();
@@ -1285,6 +1329,7 @@ For more help: https://playwright.dev/docs/browsers
1285
1329
  clearNetworkHistory() {
1286
1330
  this.networkRequests = [];
1287
1331
  this.harEntries = [];
1332
+ this.pendingRequests.clear();
1288
1333
  }
1289
1334
  // =========================================================================
1290
1335
  // Performance Metrics
@@ -1294,7 +1339,7 @@ For more help: https://playwright.dev/docs/browsers
1294
1339
  */
1295
1340
  async getPerformanceMetrics() {
1296
1341
  const page = await this.getPage();
1297
- const metrics = await page.evaluate(() => {
1342
+ const metrics = await page.evaluate(async () => {
1298
1343
  const result = {};
1299
1344
  // Navigation timing
1300
1345
  const navTiming = performance.getEntriesByType("navigation")[0];
@@ -1310,19 +1355,45 @@ For more help: https://playwright.dev/docs/browsers
1310
1355
  result.fcp = entry.startTime;
1311
1356
  }
1312
1357
  }
1313
- // LCP from PerformanceObserver (if available)
1314
- const lcpEntries = performance.getEntriesByType("largest-contentful-paint");
1315
- if (lcpEntries.length > 0) {
1316
- result.lcp = lcpEntries[lcpEntries.length - 1].startTime;
1317
- }
1318
- // CLS from layout-shift entries
1319
- const clsEntries = performance.getEntriesByType("layout-shift");
1358
+ // LCP and CLS are delivered ONLY to a PerformanceObserver. Chromium never
1359
+ // adds largest-contentful-paint or layout-shift entries to the performance
1360
+ // timeline, so the previous getEntriesByType() calls returned [] on every
1361
+ // page. LCP was therefore always undefined, and CLS was always exactly 0 —
1362
+ // which looked like a real measurement of a perfectly stable page rather
1363
+ // than no measurement at all. `buffered: true` replays the entries that
1364
+ // already fired before this observer existed. (2026-07-29)
1320
1365
  let clsScore = 0;
1321
- for (const entry of clsEntries) {
1322
- if (!entry.hadRecentInput) {
1323
- clsScore += entry.value || 0;
1366
+ await new Promise((resolve) => {
1367
+ let settled = false;
1368
+ const finish = () => { if (!settled) {
1369
+ settled = true;
1370
+ resolve();
1371
+ } };
1372
+ try {
1373
+ const lcpObs = new PerformanceObserver((list) => {
1374
+ const entries = list.getEntries();
1375
+ if (entries.length > 0) {
1376
+ result.lcp = entries[entries.length - 1].startTime;
1377
+ }
1378
+ });
1379
+ lcpObs.observe({ type: "largest-contentful-paint", buffered: true });
1380
+ const clsObs = new PerformanceObserver((list) => {
1381
+ for (const entry of list.getEntries()) {
1382
+ if (!entry.hadRecentInput) {
1383
+ clsScore += entry.value || 0;
1384
+ }
1385
+ }
1386
+ });
1387
+ clsObs.observe({ type: "layout-shift", buffered: true });
1324
1388
  }
1325
- }
1389
+ catch {
1390
+ // Older engines without these entry types: leave lcp undefined rather
1391
+ // than reporting a fabricated value.
1392
+ finish();
1393
+ }
1394
+ // Buffered entries arrive on the next task; give late shifts a moment too.
1395
+ setTimeout(finish, 300);
1396
+ });
1326
1397
  result.cls = clsScore;
1327
1398
  // Resource counts
1328
1399
  const resources = performance.getEntriesByType("resource");
@@ -2091,7 +2162,10 @@ For more help: https://playwright.dev/docs/browsers
2091
2162
  const result = {
2092
2163
  success: false,
2093
2164
  screenshot: await this.screenshot(),
2094
- message: `Failed to click: ${errorMessage}`,
2165
+ // Was the raw Playwright error, whose Call log ran to ~4k tokens of
2166
+ // near-identical retry lines and crowded out everything else in the
2167
+ // response. verbose still gets the whole thing. (2026-07-29)
2168
+ message: `Failed to click: ${options.verbose ? errorMessage : summarizePlaywrightError(errorMessage)}`,
2095
2169
  };
2096
2170
  if (options.verbose) {
2097
2171
  const available = await this.getAvailableClickables(page);
@@ -3347,14 +3421,29 @@ For more help: https://playwright.dev/docs/browsers
3347
3421
  async analyzePage() {
3348
3422
  const page = await this.getPage();
3349
3423
  const analysis = await page.evaluate(() => {
3424
+ // Values are escaped before they enter a selector. Raw interpolation broke
3425
+ // on ids a framework generated rather than a human wrote: `#:r0:` (React 18
3426
+ // useId) and `#2fa-code` throw DOMException, and `#a.b` silently matches
3427
+ // nothing at all. Priority is ARIA-first to match find_element_by_intent
3428
+ // and the documented behaviour; an explicit test hook outranks a generated
3429
+ // id, and aria-label outranks both. (2026-07-29)
3430
+ const q = (v) => v.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
3350
3431
  const getSelector = (el) => {
3432
+ const ariaLabel = el.getAttribute("aria-label");
3433
+ if (ariaLabel)
3434
+ return `[aria-label="${q(ariaLabel)}"]`;
3435
+ const testId = el.getAttribute("data-testid");
3436
+ if (testId)
3437
+ return `[data-testid="${q(testId)}"]`;
3351
3438
  if (el.id)
3352
- return `#${el.id}`;
3353
- if (el.getAttribute("data-testid"))
3354
- return `[data-testid="${el.getAttribute("data-testid")}"]`;
3439
+ return `#${CSS.escape(el.id)}`;
3355
3440
  if (el.getAttribute("name"))
3356
- return `[name="${el.getAttribute("name")}"]`;
3357
- const text = el.textContent?.trim().substring(0, 30);
3441
+ return `[name="${q(el.getAttribute("name"))}"]`;
3442
+ // Was substring(0, 30) — the same truncation removed from aria-label and
3443
+ // visible text elsewhere, still cutting the SELECTOR here, so a generated
3444
+ // step said text="Sign up for Pro and get 500 bo" and matched nothing.
3445
+ // A selector has to be the whole string to resolve. (2026-07-29)
3446
+ const text = el.textContent?.trim().substring(0, 200);
3358
3447
  if (text)
3359
3448
  return `text="${text}"`;
3360
3449
  return el.tagName.toLowerCase();
@@ -3604,27 +3693,40 @@ For more help: https://playwright.dev/docs/browsers
3604
3693
  for (const test of tests) {
3605
3694
  script += `# ${test.name}\n`;
3606
3695
  script += `# ${test.description}\n`;
3696
+ // This must be the dialect src/testing/nl-test-suite.ts PARSES, because the
3697
+ // MCP tool tells callers to paste it straight into nl_test_inline. It used
3698
+ // to emit a `verb "quoted-arg"` form of its own invention, and every line
3699
+ // came back action:"unknown" — `navigate "url"` is not a rule (the rule is
3700
+ // `go to <url>`), and wrapping a selector in quotes leaves literal quote
3701
+ // characters inside the target, which then nests against selectors like
3702
+ // [data-testid="x"]. (2026-07-29)
3607
3703
  for (const step of test.steps) {
3608
3704
  switch (step.action) {
3609
3705
  case "navigate":
3610
- script += `navigate "${step.target}"\n`;
3706
+ script += `go to ${step.target}\n`;
3611
3707
  break;
3612
3708
  case "click":
3613
- script += `click "${step.target}"\n`;
3709
+ // Unquoted: the parser takes the rest of the line as the target.
3710
+ script += `click ${step.target}\n`;
3614
3711
  break;
3615
3712
  case "fill":
3616
- script += `fill "${step.target}" "${step.value}"\n`;
3713
+ // The parser wants the VALUE quoted and the field bare.
3714
+ script += `fill ${step.target} with "${step.value}"\n`;
3617
3715
  break;
3618
3716
  case "assert":
3619
- script += `assert "${step.target}"\n`;
3717
+ // step.target is already a predicate, e.g. url contains '/docs/'.
3718
+ script += `assert ${step.target}\n`;
3620
3719
  break;
3621
3720
  case "wait":
3622
- script += `# wait ${step.value}ms\n`;
3721
+ script += `wait ${Math.max(1, Math.round(Number(step.value ?? 1000) / 1000))} seconds\n`;
3623
3722
  break;
3624
3723
  }
3625
3724
  }
3725
+ // test.assertions are intentions, not executable steps — "no console
3726
+ // errors" has no rule, and the grammar has no OR. Emitting them as steps
3727
+ // produced unparseable lines, so they ship as comments.
3626
3728
  for (const assertion of test.assertions) {
3627
- script += `assert "${assertion}"\n`;
3729
+ script += `# expected: ${assertion}\n`;
3628
3730
  }
3629
3731
  script += "\n";
3630
3732
  }
@@ -3814,7 +3916,11 @@ For more help: https://playwright.dev/docs/browsers
3814
3916
  return {
3815
3917
  tag: el.tagName.toLowerCase(),
3816
3918
  text: el.innerText?.trim().substring(0, 80) || el.getAttribute("aria-label") || el.getAttribute("value") || "",
3817
- selector: el.id ? `#${el.id}` : el.getAttribute("data-testid") ? `[data-testid="${el.getAttribute("data-testid")}"]` : `${el.tagName.toLowerCase()}:nth-of-type(${i + 1})`,
3919
+ selector: el.getAttribute("data-testid")
3920
+ ? `[data-testid="${el.getAttribute("data-testid").replace(/"/g, '\\"')}"]`
3921
+ : el.id
3922
+ ? `#${CSS.escape(el.id)}`
3923
+ : `${el.tagName.toLowerCase()}:nth-of-type(${i + 1})`,
3818
3924
  role: el.getAttribute("role") || undefined,
3819
3925
  aboveFold,
3820
3926
  region: classifyRegion(el, r.top, r.bottom),
@@ -4295,14 +4401,19 @@ For more help: https://playwright.dev/docs/browsers
4295
4401
  // Convert ElementHandle back to Locator isn't directly possible,
4296
4402
  // but we can get a selector from it
4297
4403
  const generatedSelector = await page.evaluate((el) => {
4404
+ // Escaped, and ARIA-first — see the note on analyzePage's getSelector.
4405
+ const q = (v) => v.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
4406
+ const ariaLabel = el.getAttribute("aria-label");
4407
+ if (ariaLabel)
4408
+ return `[aria-label="${q(ariaLabel)}"]`;
4409
+ const testId = el.getAttribute("data-testid");
4410
+ if (testId)
4411
+ return `[data-testid="${q(testId)}"]`;
4298
4412
  if (el.id)
4299
- return `#${el.id}`;
4413
+ return `#${CSS.escape(el.id)}`;
4300
4414
  const name = el.getAttribute("name");
4301
4415
  if (name)
4302
- return `[name="${name}"]`;
4303
- const testId = el.getAttribute("data-testid");
4304
- if (testId)
4305
- return `[data-testid="${testId}"]`;
4416
+ return `[name="${q(name)}"]`;
4306
4417
  return null;
4307
4418
  }, element);
4308
4419
  if (generatedSelector) {
@@ -4445,14 +4556,19 @@ For more help: https://playwright.dev/docs/browsers
4445
4556
  const element = fuzzyHandle.asElement();
4446
4557
  if (element) {
4447
4558
  const generatedSelector = await page.evaluate((el) => {
4559
+ // Escaped, and ARIA-first — see the note on analyzePage's getSelector.
4560
+ const q = (v) => v.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
4561
+ const ariaLabel = el.getAttribute("aria-label");
4562
+ if (ariaLabel)
4563
+ return `[aria-label="${q(ariaLabel)}"]`;
4564
+ const testId = el.getAttribute("data-testid");
4565
+ if (testId)
4566
+ return `[data-testid="${q(testId)}"]`;
4448
4567
  if (el.id)
4449
- return `#${el.id}`;
4568
+ return `#${CSS.escape(el.id)}`;
4450
4569
  const name = el.getAttribute("name");
4451
4570
  if (name)
4452
- return `[name="${name}"]`;
4453
- const testId = el.getAttribute("data-testid");
4454
- if (testId)
4455
- return `[data-testid="${testId}"]`;
4571
+ return `[name="${q(name)}"]`;
4456
4572
  return null;
4457
4573
  }, element);
4458
4574
  if (generatedSelector) {