chrome-e2e-sdk 0.0.0-stage → 1.0.1

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 (67) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +739 -2
  3. package/dist/assertion/Assertion.d.ts +87 -0
  4. package/dist/assertion/Assertion.d.ts.map +1 -0
  5. package/dist/assertion/Assertion.js +459 -0
  6. package/dist/assertion/Assertion.js.map +1 -0
  7. package/dist/assertion/recorder.d.ts +41 -0
  8. package/dist/assertion/recorder.d.ts.map +1 -0
  9. package/dist/assertion/recorder.js +37 -0
  10. package/dist/assertion/recorder.js.map +1 -0
  11. package/dist/browser/Browser.d.ts +44 -0
  12. package/dist/browser/Browser.d.ts.map +1 -0
  13. package/dist/browser/Browser.js +167 -0
  14. package/dist/browser/Browser.js.map +1 -0
  15. package/dist/browser/Locator.d.ts +94 -0
  16. package/dist/browser/Locator.d.ts.map +1 -0
  17. package/dist/browser/Locator.js +533 -0
  18. package/dist/browser/Locator.js.map +1 -0
  19. package/dist/browser/Page.d.ts +272 -0
  20. package/dist/browser/Page.d.ts.map +1 -0
  21. package/dist/browser/Page.js +979 -0
  22. package/dist/browser/Page.js.map +1 -0
  23. package/dist/client/MCPClient.d.ts +72 -0
  24. package/dist/client/MCPClient.d.ts.map +1 -0
  25. package/dist/client/MCPClient.js +302 -0
  26. package/dist/client/MCPClient.js.map +1 -0
  27. package/dist/client/MCPCommand.d.ts +51 -0
  28. package/dist/client/MCPCommand.d.ts.map +1 -0
  29. package/dist/client/MCPCommand.js +74 -0
  30. package/dist/client/MCPCommand.js.map +1 -0
  31. package/dist/env/loadEnv.d.ts +8 -0
  32. package/dist/env/loadEnv.d.ts.map +1 -0
  33. package/dist/env/loadEnv.js +19 -0
  34. package/dist/env/loadEnv.js.map +1 -0
  35. package/dist/errors/E2EError.d.ts +50 -0
  36. package/dist/errors/E2EError.d.ts.map +1 -0
  37. package/dist/errors/E2EError.js +90 -0
  38. package/dist/errors/E2EError.js.map +1 -0
  39. package/dist/index.d.ts +32 -0
  40. package/dist/index.d.ts.map +1 -0
  41. package/dist/index.js +37 -0
  42. package/dist/index.js.map +1 -0
  43. package/dist/logger.d.ts +12 -0
  44. package/dist/logger.d.ts.map +1 -0
  45. package/dist/logger.js +57 -0
  46. package/dist/logger.js.map +1 -0
  47. package/dist/network/Network.d.ts +72 -0
  48. package/dist/network/Network.d.ts.map +1 -0
  49. package/dist/network/Network.js +236 -0
  50. package/dist/network/Network.js.map +1 -0
  51. package/dist/test/HtmlReport.d.ts +26 -0
  52. package/dist/test/HtmlReport.d.ts.map +1 -0
  53. package/dist/test/HtmlReport.js +653 -0
  54. package/dist/test/HtmlReport.js.map +1 -0
  55. package/dist/test/Runner.d.ts +146 -0
  56. package/dist/test/Runner.d.ts.map +1 -0
  57. package/dist/test/Runner.js +390 -0
  58. package/dist/test/Runner.js.map +1 -0
  59. package/dist/test/index.d.ts +4 -0
  60. package/dist/test/index.d.ts.map +1 -0
  61. package/dist/test/index.js +3 -0
  62. package/dist/test/index.js.map +1 -0
  63. package/dist/version.d.ts +2 -0
  64. package/dist/version.d.ts.map +1 -0
  65. package/dist/version.js +4 -0
  66. package/dist/version.js.map +1 -0
  67. package/package.json +63 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Page.js","sourceRoot":"","sources":["../../src/browser/Page.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,72 @@
1
+ import { type MCPCommandOptions } from './MCPCommand.js';
2
+ export interface MCPClientOptions extends MCPCommandOptions {
3
+ clientName?: string;
4
+ clientVersion?: string;
5
+ connectionTimeout?: number;
6
+ requestTimeout?: number;
7
+ }
8
+ export interface ToolResult<T = unknown> {
9
+ content: Array<{
10
+ type: string;
11
+ text: string;
12
+ }>;
13
+ isError?: boolean;
14
+ data?: T;
15
+ }
16
+ export declare class MCPClient {
17
+ private client;
18
+ private transport;
19
+ private readonly options;
20
+ private connected;
21
+ private readonly mode;
22
+ /**
23
+ * True until the first tool call of this connection has returned.
24
+ *
25
+ * Chrome approves one remote debugging connection, not one tool call, so the
26
+ * consent dialog can only ever stall the first call. Gating on that is what
27
+ * keeps a genuinely slow `click` later in a test from being reported as a
28
+ * dialog the user failed to answer.
29
+ */
30
+ private awaitingApproval;
31
+ private readonly logger;
32
+ constructor(options?: MCPClientOptions);
33
+ private createLogger;
34
+ connect(): Promise<void>;
35
+ call<T = unknown>(name: string, arguments_?: Record<string, unknown>): Promise<T>;
36
+ listTools(): Promise<Array<{
37
+ name: string;
38
+ description?: string;
39
+ inputSchema?: Record<string, unknown>;
40
+ }>>;
41
+ close(): Promise<void>;
42
+ isConnected(): boolean;
43
+ private ensureConnected;
44
+ private forwardMCPStderr;
45
+ private withTimeout;
46
+ /**
47
+ * Watches the first tool call of a connection for the consent dialog.
48
+ *
49
+ * There is no event to subscribe to: chrome-devtools-mcp logs nothing when
50
+ * Chrome answers, and the MCP protocol has no notification for it. The stall
51
+ * is the only signal, so it is reported from both ends - what is being waited
52
+ * on, and how long the wait actually was once the call lands.
53
+ */
54
+ private withApprovalNotice;
55
+ /**
56
+ * A timed-out first call in attach mode is nearly always an unanswered dialog,
57
+ * not a slow tool. The bare message ("timed out after 30000ms") points the
58
+ * reader at the network, which is the one place the problem is not.
59
+ */
60
+ private consentHint;
61
+ /**
62
+ * Writes to stderr without waiting for DEBUG=chrome-e2e.
63
+ *
64
+ * The debug gate exists to keep the success path quiet, and a stall only ever
65
+ * reaches this on a path where a human is being held up - there is nothing to
66
+ * tune off, and the whole point is that it is seen the first time.
67
+ */
68
+ private notice;
69
+ private cleanup;
70
+ }
71
+ export declare function createMCPClient(options?: MCPClientOptions): Promise<MCPClient>;
72
+ //# sourceMappingURL=MCPClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MCPClient.d.ts","sourceRoot":"","sources":["../../src/client/MCPClient.ts"],"names":[],"mappings":"AAEA,OAAO,EAML,KAAK,iBAAiB,EACvB,MAAM,iBAAiB,CAAA;AAIxB,MAAM,WAAW,gBAAiB,SAAQ,iBAAiB;IACzD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,UAAU,CAAC,CAAC,GAAG,OAAO;IACrC,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,IAAI,CAAC,EAAE,CAAC,CAAA;CACT;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,SAAS,CAAoC;IACrD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuE;IAC/F,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAgB;IACrC;;;;;;;OAOG;IACH,OAAO,CAAC,gBAAgB,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA8D;gBAEzE,OAAO,GAAE,gBAAqB;IAkB1C,OAAO,CAAC,YAAY;IAQd,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA8CxB,IAAI,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IA6EjF,SAAS,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,CAAC;IAM1G,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA+B5B,WAAW,IAAI,OAAO;IAItB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,gBAAgB;YAUV,WAAW;IAazB;;;;;;;OAOG;YACW,kBAAkB;IA2BhC;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAenB;;;;;;OAMG;IACH,OAAO,CAAC,MAAM;YAIA,OAAO;CAsBtB;AAGD,wBAAsB,eAAe,CAAC,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,SAAS,CAAC,CAIxF"}
@@ -0,0 +1,302 @@
1
+ import { Client } from '@modelcontextprotocol/client';
2
+ import { StdioClientTransport } from '@modelcontextprotocol/client/stdio';
3
+ import { buildMCPArgs, resolveMCPCommand, ATTACH_APPROVAL_STALL_MS, DEFAULT_TIMEOUT_MS } from './MCPCommand.js';
4
+ import { E2EError, E2EErrorCode } from '../errors/E2EError.js';
5
+ import { VERSION } from '../version.js';
6
+ export class MCPClient {
7
+ client = null;
8
+ transport = null;
9
+ options;
10
+ connected = false;
11
+ mode;
12
+ /**
13
+ * True until the first tool call of this connection has returned.
14
+ *
15
+ * Chrome approves one remote debugging connection, not one tool call, so the
16
+ * consent dialog can only ever stall the first call. Gating on that is what
17
+ * keeps a genuinely slow `click` later in a test from being reported as a
18
+ * dialog the user failed to answer.
19
+ */
20
+ awaitingApproval = false;
21
+ logger;
22
+ constructor(options = {}) {
23
+ const mcpCommand = resolveMCPCommand(options.command, options.args ?? buildMCPArgs(options));
24
+ this.mode = options.mode ?? 'attach';
25
+ this.options = {
26
+ command: mcpCommand.command,
27
+ args: mcpCommand.args,
28
+ cwd: options.cwd ?? process.cwd(),
29
+ env: options.env ?? { ...process.env },
30
+ debug: options.debug ?? false,
31
+ clientName: options.clientName ?? 'chrome-e2e-sdk',
32
+ clientVersion: options.clientVersion ?? VERSION,
33
+ connectionTimeout: options.connectionTimeout ?? 10000,
34
+ requestTimeout: options.requestTimeout ?? DEFAULT_TIMEOUT_MS
35
+ };
36
+ this.logger = this.createLogger();
37
+ }
38
+ createLogger() {
39
+ return (level, message, ...args) => {
40
+ if (this.options.debug || process.env['DEBUG']?.includes('chrome-e2e')) {
41
+ console.error(`[ChromeE2E:MCPClient] ${level.toUpperCase()}: ${message}`, ...args);
42
+ }
43
+ };
44
+ }
45
+ async connect() {
46
+ if (this.connected) {
47
+ this.logger('debug', 'Already connected');
48
+ return;
49
+ }
50
+ this.logger('debug', 'Connecting to MCP server...');
51
+ // StdioClientTransport owns the server process lifecycle.
52
+ const transport = new StdioClientTransport({
53
+ command: this.options.command,
54
+ args: this.options.args,
55
+ cwd: this.options.cwd,
56
+ env: this.options.env,
57
+ stderr: 'pipe'
58
+ });
59
+ this.transport = transport;
60
+ transport.stderr?.on('data', (chunk) => {
61
+ this.forwardMCPStderr(String(chunk));
62
+ });
63
+ this.client = new Client({
64
+ name: this.options.clientName,
65
+ version: this.options.clientVersion
66
+ });
67
+ // Set up connection timeout
68
+ const connectionPromise = this.client.connect(transport);
69
+ const timeoutPromise = new Promise((_, reject) => {
70
+ setTimeout(() => reject(new Error('Connection timeout')), this.options.connectionTimeout);
71
+ });
72
+ try {
73
+ await Promise.race([connectionPromise, timeoutPromise]);
74
+ this.connected = true;
75
+ this.awaitingApproval = this.mode === 'attach';
76
+ this.logger('debug', 'MCP client connected successfully');
77
+ }
78
+ catch (err) {
79
+ await this.cleanup();
80
+ throw E2EError.connectionError(`Failed to connect to MCP server: ${err instanceof Error ? err.message : String(err)}`, err instanceof Error ? err : undefined);
81
+ }
82
+ }
83
+ async call(name, arguments_) {
84
+ this.ensureConnected();
85
+ this.logger('debug', `Calling tool: ${name}`, arguments_);
86
+ try {
87
+ const result = await this.withApprovalNotice(name, () => this.withTimeout(this.client.callTool({ name, arguments: arguments_ ?? {} }), this.options.requestTimeout, `Tool call: ${name}`));
88
+ this.awaitingApproval = false;
89
+ if (result.isError) {
90
+ const errorText = result.content
91
+ .map((c) => (c.type === 'text' ? c.text ?? '' : JSON.stringify(c)))
92
+ .join('\n');
93
+ throw new Error(errorText);
94
+ }
95
+ const imageContent = result.content
96
+ .find((content) => content.type === 'image' && content.data);
97
+ if (imageContent?.data) {
98
+ return {
99
+ data: imageContent.data,
100
+ mimeType: imageContent.mimeType ?? 'image/png'
101
+ };
102
+ }
103
+ const structuredContent = result.structuredContent;
104
+ if (structuredContent &&
105
+ typeof structuredContent === 'object' &&
106
+ Object.keys(structuredContent).length > 0) {
107
+ return structuredContent;
108
+ }
109
+ // Extract text content from result
110
+ const textContent = result.content
111
+ .filter((c) => c.type === 'text')
112
+ .map((c) => c.text ?? '')
113
+ .join('\n');
114
+ this.logger('debug', `Tool ${name} result: ${textContent.slice(0, 200)}`);
115
+ const jsonBlock = textContent.match(/```json\s*([\s\S]*?)\s*```/);
116
+ if (jsonBlock?.[1]) {
117
+ return JSON.parse(jsonBlock[1]);
118
+ }
119
+ // Try to parse as JSON if it looks like JSON
120
+ try {
121
+ return JSON.parse(textContent);
122
+ }
123
+ catch {
124
+ return textContent;
125
+ }
126
+ }
127
+ catch (err) {
128
+ if (err instanceof E2EError)
129
+ throw err;
130
+ const cause = err instanceof Error ? err : undefined;
131
+ const disabled = parseToolDisabled(cause?.message);
132
+ if (disabled) {
133
+ throw E2EError.toolDisabled(name, disabled, cause);
134
+ }
135
+ const reason = cause?.message ?? String(err);
136
+ throw E2EError.mcpError(`MCP tool call failed: ${name}: ${reason}`, cause, this.consentHint(name, reason));
137
+ }
138
+ }
139
+ async listTools() {
140
+ this.ensureConnected();
141
+ const result = await this.client.listTools();
142
+ return result.tools;
143
+ }
144
+ async close() {
145
+ if (!this.connected && !this.client) {
146
+ return;
147
+ }
148
+ this.logger('debug', 'Closing MCP client...');
149
+ // Close MCP client first
150
+ if (this.client) {
151
+ try {
152
+ await this.client.close();
153
+ }
154
+ catch (err) {
155
+ this.logger('warn', `Error closing MCP client: ${err instanceof Error ? err.message : String(err)}`);
156
+ }
157
+ this.client = null;
158
+ }
159
+ // Closing the transport terminates the MCP server process it spawned.
160
+ if (this.transport) {
161
+ try {
162
+ await this.transport.close();
163
+ }
164
+ catch (err) {
165
+ this.logger('warn', `Error closing MCP transport: ${err instanceof Error ? err.message : String(err)}`);
166
+ }
167
+ this.transport = null;
168
+ }
169
+ this.connected = false;
170
+ this.logger('debug', 'MCP client closed');
171
+ }
172
+ isConnected() {
173
+ return this.connected && this.client !== null;
174
+ }
175
+ ensureConnected() {
176
+ if (!this.connected || !this.client) {
177
+ throw new E2EError(E2EErrorCode.CONNECTION_ERROR, 'MCP client not connected. Call connect() first.');
178
+ }
179
+ }
180
+ forwardMCPStderr(text) {
181
+ const chunks = text.match(/[^\n]*\n|[^\n]+/g) ?? [];
182
+ for (const chunk of chunks) {
183
+ if (chunk.includes('No handler registered for issue code PerformanceIssue')) {
184
+ continue;
185
+ }
186
+ process.stderr.write(chunk);
187
+ }
188
+ }
189
+ async withTimeout(promise, ms, operation) {
190
+ let timeoutId;
191
+ const timeoutPromise = new Promise((_, reject) => {
192
+ timeoutId = setTimeout(() => reject(new Error(`${operation} timed out after ${ms}ms`)), ms);
193
+ });
194
+ try {
195
+ return await Promise.race([promise, timeoutPromise]);
196
+ }
197
+ finally {
198
+ clearTimeout(timeoutId);
199
+ }
200
+ }
201
+ /**
202
+ * Watches the first tool call of a connection for the consent dialog.
203
+ *
204
+ * There is no event to subscribe to: chrome-devtools-mcp logs nothing when
205
+ * Chrome answers, and the MCP protocol has no notification for it. The stall
206
+ * is the only signal, so it is reported from both ends - what is being waited
207
+ * on, and how long the wait actually was once the call lands.
208
+ */
209
+ async withApprovalNotice(name, run) {
210
+ if (!this.awaitingApproval) {
211
+ return run();
212
+ }
213
+ let noticed = false;
214
+ const stallId = setTimeout(() => {
215
+ noticed = true;
216
+ this.notice(`Chrome is asking you to approve remote debugging before "${name}" can run. ` +
217
+ `Approve it in the browser window; nothing here is retrying in the meantime.`);
218
+ }, ATTACH_APPROVAL_STALL_MS);
219
+ const startedAt = Date.now();
220
+ try {
221
+ const result = await run();
222
+ if (noticed) {
223
+ const waited = Date.now() - startedAt;
224
+ this.notice(`Approved. "${name}" took ${waited}ms, of which the dialog was most of it.`);
225
+ }
226
+ return result;
227
+ }
228
+ finally {
229
+ clearTimeout(stallId);
230
+ }
231
+ }
232
+ /**
233
+ * A timed-out first call in attach mode is nearly always an unanswered dialog,
234
+ * not a slow tool. The bare message ("timed out after 30000ms") points the
235
+ * reader at the network, which is the one place the problem is not.
236
+ */
237
+ consentHint(name, reason) {
238
+ if (!this.awaitingApproval || !/timed out after/i.test(reason)) {
239
+ return undefined;
240
+ }
241
+ return {
242
+ hint: `Chrome was most likely showing its remote debugging consent dialog and nobody ` +
243
+ `approved it. It is enabled at chrome://inspect/#remote-debugging. The SDK does ` +
244
+ `not retry on its own, because every retry asks for approval again.`,
245
+ tool: name,
246
+ mode: this.mode
247
+ };
248
+ }
249
+ /**
250
+ * Writes to stderr without waiting for DEBUG=chrome-e2e.
251
+ *
252
+ * The debug gate exists to keep the success path quiet, and a stall only ever
253
+ * reaches this on a path where a human is being held up - there is nothing to
254
+ * tune off, and the whole point is that it is seen the first time.
255
+ */
256
+ notice(message) {
257
+ process.stderr.write(`[ChromeE2E] ${message}\n`);
258
+ }
259
+ async cleanup() {
260
+ if (this.client) {
261
+ try {
262
+ await this.client.close();
263
+ }
264
+ catch {
265
+ // ignore
266
+ }
267
+ this.client = null;
268
+ }
269
+ if (this.transport) {
270
+ try {
271
+ await this.transport.close();
272
+ }
273
+ catch {
274
+ // ignore
275
+ }
276
+ this.transport = null;
277
+ }
278
+ this.connected = false;
279
+ this.awaitingApproval = false;
280
+ }
281
+ }
282
+ // Convenience function to create and connect in one step
283
+ export async function createMCPClient(options = {}) {
284
+ const client = new MCPClient(options);
285
+ await client.connect();
286
+ return client;
287
+ }
288
+ /**
289
+ * Since chrome-devtools-mcp 1.10.0 a tool whose category flag is disabled is
290
+ * rejected with JSON-RPC -32602 instead of an `isError` result, so the reason
291
+ * can be recognised and reported as TOOL_DISABLED.
292
+ */
293
+ function parseToolDisabled(message) {
294
+ if (!message)
295
+ return null;
296
+ if (!/-32602/.test(message))
297
+ return null;
298
+ if (!/disabled|not found/i.test(message))
299
+ return null;
300
+ return message.replace(/^.*?:\s*/, '').trim() || message.trim();
301
+ }
302
+ //# sourceMappingURL=MCPClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MCPClient.js","sourceRoot":"","sources":["../../src/client/MCPClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * How the SDK reaches Chrome.
3
+ *
4
+ * - `attach` (default): control the browser the developer is already running.
5
+ * Reuses its cookies, session and logged-in state. Requires Chrome 144+ with
6
+ * remote debugging enabled. Headed only - chrome-devtools-mcp ignores
7
+ * `--headless` when it connects to an existing browser.
8
+ * - `launch`: let the MCP server start and own Chrome. Works on CI with no
9
+ * human present. Supply `userDataDir` to keep a profile between runs so
10
+ * logins survive; without one the profile is temporary and nothing behind a
11
+ * login can be tested.
12
+ */
13
+ export type ConnectionMode = 'attach' | 'launch';
14
+ /**
15
+ * Default timeout for navigation, element actions, assertions and network
16
+ * waits, in milliseconds.
17
+ *
18
+ * Generous on purpose: a real page behind a VPN or an internal network can take
19
+ * well over five seconds to reach `load`, and a timeout that fires on a working
20
+ * app is far more expensive to debug than a slow test.
21
+ */
22
+ export declare const DEFAULT_TIMEOUT_MS = 30000;
23
+ /**
24
+ * How long the first tool call may take in `attach` mode before the SDK assumes
25
+ * it is blocked on Chrome's consent dialog rather than on work.
26
+ *
27
+ * Measured on Chrome 153 with `chrome://inspect/#remote-debugging` enabled: the
28
+ * MCP handshake costs ~480ms, the first `list_pages` costs 2-7s, and every call
29
+ * after it costs 5-25ms. The gap is the user reading and clicking a dialog, so
30
+ * the threshold sits above the handshake and far below the request timeout.
31
+ */
32
+ export declare const ATTACH_APPROVAL_STALL_MS = 1500;
33
+ export interface MCPCommandOptions {
34
+ mode?: ConnectionMode;
35
+ /** Only meaningful for `mode: 'launch'`: the Chrome profile directory. */
36
+ userDataDir?: string;
37
+ /** Only meaningful for `mode: 'launch'`. Defaults to false. */
38
+ headless?: boolean;
39
+ command?: string;
40
+ args?: string[];
41
+ cwd?: string;
42
+ env?: Record<string, string | undefined>;
43
+ debug?: boolean;
44
+ }
45
+ export declare function resolveChromeDevToolsMCPBin(): string;
46
+ export declare function buildMCPArgs(options?: MCPCommandOptions): string[];
47
+ export declare function resolveMCPCommand(command?: string, args?: string[]): {
48
+ command: string;
49
+ args: string[];
50
+ };
51
+ //# sourceMappingURL=MCPCommand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MCPCommand.d.ts","sourceRoot":"","sources":["../../src/client/MCPCommand.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAEhD;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,QAAQ,CAAA;AAEvC;;;;;;;;GAQG;AACH,eAAO,MAAM,wBAAwB,OAAO,CAAA;AAE5C,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,cAAc,CAAA;IACrB,0EAA0E;IAC1E,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;IACxC,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAID,wBAAgB,2BAA2B,IAAI,MAAM,CAgBpD;AAED,wBAAgB,YAAY,CAAC,OAAO,GAAE,iBAAsB,GAAG,MAAM,EAAE,CA2CtE;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,CAAC,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,MAAM,EAAE,GACd;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAQrC"}
@@ -0,0 +1,74 @@
1
+ import { dirname, resolve } from 'node:path';
2
+ import { createRequire } from 'node:module';
3
+ import { E2EError, E2EErrorCode } from '../errors/E2EError.js';
4
+ /**
5
+ * Default timeout for navigation, element actions, assertions and network
6
+ * waits, in milliseconds.
7
+ *
8
+ * Generous on purpose: a real page behind a VPN or an internal network can take
9
+ * well over five seconds to reach `load`, and a timeout that fires on a working
10
+ * app is far more expensive to debug than a slow test.
11
+ */
12
+ export const DEFAULT_TIMEOUT_MS = 30000;
13
+ /**
14
+ * How long the first tool call may take in `attach` mode before the SDK assumes
15
+ * it is blocked on Chrome's consent dialog rather than on work.
16
+ *
17
+ * Measured on Chrome 153 with `chrome://inspect/#remote-debugging` enabled: the
18
+ * MCP handshake costs ~480ms, the first `list_pages` costs 2-7s, and every call
19
+ * after it costs 5-25ms. The gap is the user reading and clicking a dialog, so
20
+ * the threshold sits above the handshake and far below the request timeout.
21
+ */
22
+ export const ATTACH_APPROVAL_STALL_MS = 1500;
23
+ const require = createRequire(import.meta.url);
24
+ export function resolveChromeDevToolsMCPBin() {
25
+ const packagePath = require.resolve('chrome-devtools-mcp/package.json');
26
+ const packageRoot = dirname(packagePath);
27
+ const packageJson = require(packagePath);
28
+ const binPath = typeof packageJson.bin === 'string'
29
+ ? packageJson.bin
30
+ : packageJson.bin?.['chrome-devtools-mcp'];
31
+ if (!binPath) {
32
+ throw new E2EError(E2EErrorCode.MCP_ERROR, 'Unable to resolve chrome-devtools-mcp bin from package.json');
33
+ }
34
+ return resolve(packageRoot, binPath);
35
+ }
36
+ export function buildMCPArgs(options = {}) {
37
+ const mode = options.mode ?? 'attach';
38
+ // `--experimentalStructuredContent` is what makes chrome-devtools-mcp return
39
+ // `structuredContent` for page lists, snapshots, network and console calls.
40
+ // Without it those tools answer with text only, and every parser in this SDK
41
+ // has to fall back to regex over prose.
42
+ const args = [resolveChromeDevToolsMCPBin(), '--experimentalStructuredContent'];
43
+ if (options.args && options.args.length > 0) {
44
+ return options.args;
45
+ }
46
+ if (mode === 'attach') {
47
+ if (options.headless) {
48
+ throw E2EError.invalidArgument('headless', 'false when mode is "attach" (chrome-devtools-mcp ignores --headless when connecting to an existing browser)', options.headless);
49
+ }
50
+ if (options.userDataDir) {
51
+ throw E2EError.invalidArgument('userDataDir', 'undefined when mode is "attach" (the running browser owns its profile)', options.userDataDir);
52
+ }
53
+ return [...args, '--auto-connect'];
54
+ }
55
+ if (options.userDataDir) {
56
+ args.push(`--user-data-dir=${options.userDataDir}`);
57
+ }
58
+ else {
59
+ // A throwaway profile: no login state, so keep tests hermetic by default.
60
+ args.push('--isolated');
61
+ }
62
+ if (options.headless) {
63
+ args.push('--headless');
64
+ }
65
+ return args;
66
+ }
67
+ export function resolveMCPCommand(command, args) {
68
+ const resolvedArgs = args && args.length > 0 ? args : buildMCPArgs();
69
+ if (command) {
70
+ return { command, args: resolvedArgs };
71
+ }
72
+ return { command: process.execPath, args: resolvedArgs };
73
+ }
74
+ //# sourceMappingURL=MCPCommand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MCPCommand.js","sourceRoot":"","sources":["../../src/client/MCPCommand.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export interface LoadEnvOptions {
2
+ path?: string;
3
+ override?: boolean;
4
+ debug?: boolean;
5
+ }
6
+ export type LoadEnvResult = Record<string, string>;
7
+ export declare function loadEnv(options?: LoadEnvOptions): LoadEnvResult;
8
+ //# sourceMappingURL=loadEnv.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loadEnv.d.ts","sourceRoot":"","sources":["../../src/env/loadEnv.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAElD,wBAAgB,OAAO,CAAC,OAAO,GAAE,cAAmB,GAAG,aAAa,CAiBnE"}
@@ -0,0 +1,19 @@
1
+ import { resolve } from 'node:path';
2
+ import dotenv from 'dotenv';
3
+ export function loadEnv(options = {}) {
4
+ const result = dotenv.config({
5
+ path: options.path ?? resolve(process.cwd(), '.env'),
6
+ override: options.override ?? false,
7
+ debug: options.debug ?? false,
8
+ quiet: true
9
+ });
10
+ if (result.error) {
11
+ const code = result.error.code;
12
+ if (code === 'ENOENT') {
13
+ return {};
14
+ }
15
+ throw result.error;
16
+ }
17
+ return result.parsed ?? {};
18
+ }
19
+ //# sourceMappingURL=loadEnv.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loadEnv.js","sourceRoot":"","sources":["../../src/env/loadEnv.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,MAAM,MAAM,QAAQ,CAAA;AAU3B,MAAM,UAAU,OAAO,CAAC,UAA0B,EAAE;IAClD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC3B,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC;QACpD,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,KAAK;QACnC,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,KAAK;QAC7B,KAAK,EAAE,IAAI;KACZ,CAAC,CAAA;IAEF,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,MAAM,IAAI,GAAI,MAAM,CAAC,KAA+B,CAAC,IAAI,CAAA;QACzD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,OAAO,EAAE,CAAA;QACX,CAAC;QACD,MAAM,MAAM,CAAC,KAAK,CAAA;IACpB,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,IAAI,EAAE,CAAA;AAC5B,CAAC"}