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.
- package/dist/analysis/accessibility-empathy.d.ts.map +1 -1
- package/dist/analysis/accessibility-empathy.js +113 -8
- package/dist/analysis/accessibility-empathy.js.map +1 -1
- package/dist/analysis/agent-ready-audit.d.ts.map +1 -1
- package/dist/analysis/agent-ready-audit.js +66 -5
- package/dist/analysis/agent-ready-audit.js.map +1 -1
- package/dist/analysis/natural-language.d.ts.map +1 -1
- package/dist/analysis/natural-language.js +9 -8
- package/dist/analysis/natural-language.js.map +1 -1
- package/dist/analysis/page-understanding.d.ts.map +1 -1
- package/dist/analysis/page-understanding.js +115 -14
- package/dist/analysis/page-understanding.js.map +1 -1
- package/dist/analysis/webmcp-readiness.d.ts.map +1 -1
- package/dist/analysis/webmcp-readiness.js +18 -7
- package/dist/analysis/webmcp-readiness.js.map +1 -1
- package/dist/artifact-store.d.ts +55 -0
- package/dist/artifact-store.d.ts.map +1 -0
- package/dist/artifact-store.js +63 -0
- package/dist/artifact-store.js.map +1 -0
- package/dist/browser.d.ts +8 -0
- package/dist/browser.d.ts.map +1 -1
- package/dist/browser.js +157 -41
- package/dist/browser.js.map +1 -1
- package/dist/cli.js +12 -0
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +28 -1
- package/dist/config.js.map +1 -1
- package/dist/mcp-server-remote.d.ts +17 -1
- package/dist/mcp-server-remote.d.ts.map +1 -1
- package/dist/mcp-server-remote.js +22 -3
- package/dist/mcp-server-remote.js.map +1 -1
- package/dist/mcp-server.d.ts.map +1 -1
- package/dist/mcp-server.js +20 -0
- package/dist/mcp-server.js.map +1 -1
- package/dist/mcp-tools/base/analysis-tools.d.ts +1 -1
- package/dist/mcp-tools/base/analysis-tools.d.ts.map +1 -1
- package/dist/mcp-tools/base/analysis-tools.js +83 -10
- package/dist/mcp-tools/base/analysis-tools.js.map +1 -1
- package/dist/mcp-tools/base/assertion-tools.d.ts +1 -1
- package/dist/mcp-tools/base/assertion-tools.d.ts.map +1 -1
- package/dist/mcp-tools/base/assertion-tools.js +26 -3
- package/dist/mcp-tools/base/assertion-tools.js.map +1 -1
- package/dist/mcp-tools/base/audit-tools.d.ts.map +1 -1
- package/dist/mcp-tools/base/audit-tools.js +189 -28
- package/dist/mcp-tools/base/audit-tools.js.map +1 -1
- package/dist/mcp-tools/base/browser-management-tools.d.ts +1 -1
- package/dist/mcp-tools/base/browser-management-tools.d.ts.map +1 -1
- package/dist/mcp-tools/base/browser-management-tools.js +66 -15
- package/dist/mcp-tools/base/browser-management-tools.js.map +1 -1
- package/dist/mcp-tools/base/browser-state-tools.d.ts.map +1 -1
- package/dist/mcp-tools/base/browser-state-tools.js +6 -1
- package/dist/mcp-tools/base/browser-state-tools.js.map +1 -1
- package/dist/mcp-tools/base/cognitive-tools.d.ts.map +1 -1
- package/dist/mcp-tools/base/cognitive-tools.js +103 -30
- package/dist/mcp-tools/base/cognitive-tools.js.map +1 -1
- package/dist/mcp-tools/base/extraction-tools.d.ts.map +1 -1
- package/dist/mcp-tools/base/extraction-tools.js +6 -0
- package/dist/mcp-tools/base/extraction-tools.js.map +1 -1
- package/dist/mcp-tools/base/gif-tools.d.ts.map +1 -1
- package/dist/mcp-tools/base/gif-tools.js +7 -7
- package/dist/mcp-tools/base/gif-tools.js.map +1 -1
- package/dist/mcp-tools/base/interaction-tools.d.ts.map +1 -1
- package/dist/mcp-tools/base/interaction-tools.js +76 -11
- package/dist/mcp-tools/base/interaction-tools.js.map +1 -1
- package/dist/mcp-tools/base/persona-comparison-tools.d.ts.map +1 -1
- package/dist/mcp-tools/base/persona-comparison-tools.js +78 -10
- package/dist/mcp-tools/base/persona-comparison-tools.js.map +1 -1
- package/dist/mcp-tools/base/session-tools.d.ts +1 -1
- package/dist/mcp-tools/base/session-tools.d.ts.map +1 -1
- package/dist/mcp-tools/base/session-tools.js +64 -7
- package/dist/mcp-tools/base/session-tools.js.map +1 -1
- package/dist/mcp-tools/base/site-knowledge-tools.d.ts.map +1 -1
- package/dist/mcp-tools/base/site-knowledge-tools.js +47 -1
- package/dist/mcp-tools/base/site-knowledge-tools.js.map +1 -1
- package/dist/mcp-tools/base/testing-tools.d.ts.map +1 -1
- package/dist/mcp-tools/base/testing-tools.js +20 -0
- package/dist/mcp-tools/base/testing-tools.js.map +1 -1
- package/dist/mcp-tools/base/visual-testing-tools.d.ts.map +1 -1
- package/dist/mcp-tools/base/visual-testing-tools.js +71 -46
- package/dist/mcp-tools/base/visual-testing-tools.js.map +1 -1
- package/dist/mcp-tools/persona-creation-tools.d.ts.map +1 -1
- package/dist/mcp-tools/persona-creation-tools.js +40 -10
- package/dist/mcp-tools/persona-creation-tools.js.map +1 -1
- package/dist/mcp-tools/session-policy.d.ts +43 -0
- package/dist/mcp-tools/session-policy.d.ts.map +1 -0
- package/dist/mcp-tools/session-policy.js +54 -0
- package/dist/mcp-tools/session-policy.js.map +1 -0
- package/dist/mcp-ui-resources.d.ts +83 -0
- package/dist/mcp-ui-resources.d.ts.map +1 -0
- package/dist/mcp-ui-resources.js +128 -0
- package/dist/mcp-ui-resources.js.map +1 -0
- package/dist/performance/metrics.d.ts +0 -3
- package/dist/performance/metrics.d.ts.map +1 -1
- package/dist/performance/metrics.js +45 -1
- package/dist/performance/metrics.js.map +1 -1
- package/dist/personas.d.ts.map +1 -1
- package/dist/personas.js +38 -4
- package/dist/personas.js.map +1 -1
- package/dist/remediation/patch-generator.d.ts.map +1 -1
- package/dist/remediation/patch-generator.js +36 -2
- package/dist/remediation/patch-generator.js.map +1 -1
- package/dist/selector-escape.d.ts +37 -0
- package/dist/selector-escape.d.ts.map +1 -0
- package/dist/selector-escape.js +83 -0
- package/dist/selector-escape.js.map +1 -0
- package/dist/testing/coverage.d.ts +8 -0
- package/dist/testing/coverage.d.ts.map +1 -1
- package/dist/testing/coverage.js +12 -0
- package/dist/testing/coverage.js.map +1 -1
- package/dist/types.d.ts +42 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/visual/attention-quality.d.ts +0 -9
- package/dist/visual/attention-quality.d.ts.map +1 -1
- package/dist/visual/attention-quality.js +28 -1
- package/dist/visual/attention-quality.js.map +1 -1
- package/dist/visual/barrier-overlay-html.d.ts +88 -0
- package/dist/visual/barrier-overlay-html.d.ts.map +1 -0
- package/dist/visual/barrier-overlay-html.js +142 -0
- package/dist/visual/barrier-overlay-html.js.map +1 -0
- package/dist/visual/cognitive-transport.d.ts +15 -8
- package/dist/visual/cognitive-transport.d.ts.map +1 -1
- package/dist/visual/cognitive-transport.js +113 -34
- package/dist/visual/cognitive-transport.js.map +1 -1
- package/dist/visual/cross-browser.d.ts +13 -0
- package/dist/visual/cross-browser.d.ts.map +1 -1
- package/dist/visual/cross-browser.js +29 -3
- package/dist/visual/cross-browser.js.map +1 -1
- package/dist/visual/perceptual-transport.d.ts +8 -0
- package/dist/visual/perceptual-transport.d.ts.map +1 -1
- package/dist/visual/perceptual-transport.js +19 -0
- package/dist/visual/perceptual-transport.js.map +1 -1
- package/dist/visual/regression.d.ts.map +1 -1
- package/dist/visual/regression.js +76 -3
- package/dist/visual/regression.js.map +1 -1
- 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;
|
package/dist/browser.d.ts.map
CHANGED
|
@@ -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
|
-
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
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
|
|
1314
|
-
|
|
1315
|
-
|
|
1316
|
-
|
|
1317
|
-
|
|
1318
|
-
//
|
|
1319
|
-
|
|
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
|
-
|
|
1322
|
-
|
|
1323
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 += `
|
|
3706
|
+
script += `go to ${step.target}\n`;
|
|
3611
3707
|
break;
|
|
3612
3708
|
case "click":
|
|
3613
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 +=
|
|
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 +=
|
|
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.
|
|
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) {
|