playwright-e2e-mcp 0.4.1 → 0.5.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 (59) hide show
  1. package/README.md +215 -43
  2. package/dist/cli/init.js +3 -2
  3. package/dist/cli/init.js.map +1 -1
  4. package/dist/http.d.ts +6 -1
  5. package/dist/http.js +13 -3
  6. package/dist/http.js.map +1 -1
  7. package/dist/oauth.d.ts +34 -0
  8. package/dist/oauth.js +346 -0
  9. package/dist/oauth.js.map +1 -0
  10. package/dist/server.d.ts +2 -2
  11. package/dist/server.js +31 -4
  12. package/dist/server.js.map +1 -1
  13. package/dist/tools/analyze-history.d.ts +12 -1
  14. package/dist/tools/analyze-history.js +89 -5
  15. package/dist/tools/analyze-history.js.map +1 -1
  16. package/dist/tools/audit-accessibility.d.ts +85 -0
  17. package/dist/tools/audit-accessibility.js +4 -1
  18. package/dist/tools/audit-accessibility.js.map +1 -1
  19. package/dist/tools/audit-performance.d.ts +333 -0
  20. package/dist/tools/audit-performance.js +377 -0
  21. package/dist/tools/audit-performance.js.map +1 -0
  22. package/dist/tools/compare-visual-state.d.ts +84 -0
  23. package/dist/tools/generate-e2e-test.d.ts +90 -0
  24. package/dist/tools/generate-e2e-test.js +223 -34
  25. package/dist/tools/generate-e2e-test.js.map +1 -1
  26. package/dist/tools/get-failure.js +2 -1
  27. package/dist/tools/get-failure.js.map +1 -1
  28. package/dist/tools/inspect-page.d.ts +94 -0
  29. package/dist/tools/inspect-page.js +42 -5
  30. package/dist/tools/inspect-page.js.map +1 -1
  31. package/dist/tools/load-report.d.ts +48 -0
  32. package/dist/tools/load-report.js +167 -0
  33. package/dist/tools/load-report.js.map +1 -0
  34. package/dist/tools/probe-script.d.ts +7 -0
  35. package/dist/tools/probe-script.js +256 -7
  36. package/dist/tools/probe-script.js.map +1 -1
  37. package/dist/tools/shared.d.ts +137 -2
  38. package/dist/tools/shared.js +155 -8
  39. package/dist/tools/shared.js.map +1 -1
  40. package/dist/tools/suggest-fix.d.ts +35 -1
  41. package/dist/tools/suggest-fix.js +197 -17
  42. package/dist/tools/suggest-fix.js.map +1 -1
  43. package/dist/tools/validate-selector.d.ts +84 -0
  44. package/dist/tools/validate-selector.js +7 -1
  45. package/dist/tools/validate-selector.js.map +1 -1
  46. package/dist/types/index.d.ts +28 -0
  47. package/dist/utils/project-detector.d.ts +7 -0
  48. package/dist/utils/project-detector.js +11 -0
  49. package/dist/utils/project-detector.js.map +1 -1
  50. package/dist/utils/report-parser.d.ts +28 -3
  51. package/dist/utils/report-parser.js +77 -11
  52. package/dist/utils/report-parser.js.map +1 -1
  53. package/dist/utils/run-history.d.ts +66 -3
  54. package/dist/utils/run-history.js +149 -3
  55. package/dist/utils/run-history.js.map +1 -1
  56. package/package.json +5 -3
  57. package/skill/playwright-e2e-mcp/SKILL.md +71 -15
  58. package/skill/playwright-e2e-mcp/references/setup.md +1 -1
  59. package/skill/playwright-e2e-mcp/references/tools.md +67 -6
@@ -3,11 +3,16 @@
3
3
  * patch for the spec, optionally apply it, and prove it by re-running the
4
4
  * test (reverting the file when the re-run still fails).
5
5
  *
6
- * Handles the two most common E2E breakages:
6
+ * Handles the three most common E2E breakages:
7
7
  * - Locator drift: the element is still on the page but its test id, text
8
8
  * or structure changed. The broken locator's words are matched against
9
9
  * the DOM at failure (from the Playwright trace, or a live URL), and the
10
10
  * best match gets a Playwright locator proven unique on that page.
11
+ * - Strict mode violations: the locator now matches several elements
12
+ * (a "Save" button next to "Save draft", the same link in the header and
13
+ * the footer). Playwright prints a unique locator for each match; the one
14
+ * whose name is an exact match is picked, otherwise the caller picks with
15
+ * `candidate`.
11
16
  * - Copy changes in text assertions (toHaveText & co): the expected string
12
17
  * is replaced with what the page shows. That can hide a real regression,
13
18
  * so it is applied only with allowExpectationUpdate.
@@ -33,6 +38,12 @@ const suggestFixInput = z.object({
33
38
  url: z.string().optional().describe('Heal against this live page instead of the trace snapshot'),
34
39
  ...sessionShape,
35
40
  apply: z.boolean().optional().describe('Write the fix (default: diff only)'),
41
+ candidate: z
42
+ .number()
43
+ .int()
44
+ .min(1)
45
+ .optional()
46
+ .describe('Strict mode violation: which of the listed matches the test meant (1-based)'),
36
47
  verify: z.boolean().optional().describe('Re-run after applying; revert if still failing (default true)'),
37
48
  allowExpectationUpdate: z.boolean().optional().describe('Allow applying changed expected text (can hide regressions)'),
38
49
  config: z.string().optional().describe('playwright.config path or 1-based index'),
@@ -60,6 +71,125 @@ export function brokenLocatorFromMessage(message) {
60
71
  }
61
72
  return undefined;
62
73
  }
74
+ /** Parse Playwright's "strict mode violation: … resolved to N elements:" block. */
75
+ export function strictViolationFromMessage(message) {
76
+ const head = /strict mode violation:\s+(.+?)\s+resolved to (\d+) elements:?/.exec(message);
77
+ if (!head)
78
+ return undefined;
79
+ const matches = [];
80
+ const tail = message.slice(head.index + head[0].length).split(/\r?\n/);
81
+ for (const raw of tail) {
82
+ const m = /^\s*\d+\)\s+(.*?)\s+aka\s+((?:getBy\w+|locator)\(.*)$/.exec(raw);
83
+ if (!m) {
84
+ if (matches.length > 0 && raw.trim() !== '' && !/^\s*\d+\)/.test(raw))
85
+ break;
86
+ continue;
87
+ }
88
+ try {
89
+ parseLocator(m[2].trim());
90
+ matches.push({ html: m[1].trim(), locator: m[2].trim() });
91
+ }
92
+ catch {
93
+ /* not a locator we can write back; skip it */
94
+ }
95
+ }
96
+ return { locator: head[1].trim(), count: Number(head[2]), matches };
97
+ }
98
+ /** The name or text a locator's last call asks for, when it is a plain string. */
99
+ function wantedName(chain) {
100
+ const last = chain[chain.length - 1];
101
+ if (!last)
102
+ return undefined;
103
+ if (last.method === 'getByRole') {
104
+ const options = last.args[1];
105
+ if (options && typeof options === 'object' && 'name' in options && typeof options.name === 'string')
106
+ return options.name;
107
+ return undefined;
108
+ }
109
+ if (last.method !== 'locator' && typeof last.args[0] === 'string')
110
+ return last.args[0];
111
+ return undefined;
112
+ }
113
+ function isExact(chain) {
114
+ const last = chain[chain.length - 1];
115
+ return last.args.some((arg) => typeof arg === 'object' && arg !== null && 'exact' in arg && arg.exact === true);
116
+ }
117
+ function visibleText(html) {
118
+ return html.replace(/<[^>]*>/g, ' ').replace(/\s+/g, ' ').trim();
119
+ }
120
+ /**
121
+ * Which match the broken locator meant, when the evidence says so: a
122
+ * substring name ("Save") hitting a longer one ("Save draft") means the
123
+ * match whose name is exactly that text.
124
+ */
125
+ export function pickStrictMatch(violation) {
126
+ let broken;
127
+ try {
128
+ broken = parseLocator(violation.locator);
129
+ }
130
+ catch {
131
+ return undefined;
132
+ }
133
+ const name = wantedName(broken);
134
+ if (name === undefined || isExact(broken))
135
+ return undefined;
136
+ const wanted = name.trim().toLowerCase();
137
+ const exact = violation.matches
138
+ .map((match, index) => ({ match, index, chain: parseLocator(match.locator) }))
139
+ .filter(({ match, chain }) => {
140
+ const candidateName = wantedName(chain);
141
+ if (candidateName !== undefined && isExact(chain))
142
+ return candidateName.trim().toLowerCase() === wanted;
143
+ return visibleText(match.html).toLowerCase() === wanted;
144
+ });
145
+ if (exact.length !== 1)
146
+ return undefined;
147
+ return {
148
+ index: exact[0].index,
149
+ why: `\`${violation.locator}\` matches by substring, so it also hits ${violation.count - 1} other element(s). Only match ${exact[0].index + 1} is named exactly "${name}", and Playwright reports \`${exact[0].match.locator}\` as its unique locator.`,
150
+ };
151
+ }
152
+ /** Span of a whole locator chain on a line, from its first call to its last. */
153
+ export function findChainSpan(line, chain) {
154
+ const first = findCallSpan(line, chain[0]);
155
+ if (!first)
156
+ return undefined;
157
+ let end = first.end;
158
+ for (const call of chain.slice(1)) {
159
+ const rest = line.slice(end);
160
+ const next = /^\s*\.\s*(\w+)\s*\(/.exec(rest);
161
+ if (!next || next[1] !== call.method)
162
+ return undefined;
163
+ let depth = 0;
164
+ let quoteChar = null;
165
+ let closed = -1;
166
+ for (let i = end + next[0].length - 1; i < line.length; i += 1) {
167
+ const ch = line[i];
168
+ if (quoteChar) {
169
+ if (ch === '\\')
170
+ i += 1;
171
+ else if (ch === quoteChar)
172
+ quoteChar = null;
173
+ continue;
174
+ }
175
+ if (ch === "'" || ch === '"' || ch === '`')
176
+ quoteChar = ch;
177
+ else if (ch === '(')
178
+ depth += 1;
179
+ else if (ch === ')') {
180
+ depth -= 1;
181
+ if (depth === 0) {
182
+ closed = i + 1;
183
+ break;
184
+ }
185
+ }
186
+ }
187
+ if (closed < 0)
188
+ return undefined;
189
+ end = closed;
190
+ }
191
+ return { start: first.start, end };
192
+ }
63
193
  const SYNONYMS = {
64
194
  btn: ['button'],
65
195
  nav: ['navigation'],
@@ -259,7 +389,7 @@ function renderHeader(failure, index, total) {
259
389
  }
260
390
  export const suggestFixTool = {
261
391
  name: 'suggest-fix',
262
- description: "Patch a failure from the last run: a drifted locator is matched against the DOM at failure (trace, or live url) and replaced with one proven unique; changed copy gets the new expected text. Returns a diff and confidence; apply: true writes it, re-runs the test and reverts if still red. Refuses when the element is truly missing (app bug).",
392
+ description: "Patch a failure from the last run: a drifted locator is matched against the DOM at failure (trace, or live url) and replaced with one proven unique; a locator that matches several elements (strict mode) gets the unique one for the intended match; changed copy gets the new expected text. Returns a diff and confidence; apply: true writes it, re-runs the test and reverts if still red. Refuses when the element is truly missing (app bug).",
263
393
  inputSchema: suggestFixSchema,
264
394
  handler: async (args, ctx) => guard('suggest-fix', async () => {
265
395
  const record = ctx.store.lastRun;
@@ -287,8 +417,50 @@ export const suggestFixTool = {
287
417
  const lineNo = failingLine(failure) ?? failure.line ?? 1;
288
418
  let proposal;
289
419
  const notes = [];
290
- // 1. Locator drift.
291
- const brokenText = brokenLocatorFromMessage(failure.message);
420
+ // 1. Strict mode violation: the locator matches several elements.
421
+ const strict = strictViolationFromMessage(failure.message);
422
+ if (strict) {
423
+ const line = lines[lineNo - 1] ?? '';
424
+ let brokenChain;
425
+ try {
426
+ brokenChain = parseLocator(strict.locator);
427
+ }
428
+ catch {
429
+ brokenChain = undefined;
430
+ }
431
+ const span = brokenChain ? findChainSpan(line, brokenChain) : undefined;
432
+ const picked = pickStrictMatch(strict);
433
+ const chosen = args.candidate !== undefined
434
+ ? args.candidate <= strict.matches.length
435
+ ? { index: args.candidate - 1, why: `You picked match ${args.candidate}; Playwright reports \`${strict.matches[args.candidate - 1].locator}\` as its unique locator.` }
436
+ : undefined
437
+ : picked;
438
+ const listing = strict.matches.map((m, i) => `${i + 1}. \`${m.locator}\` · \`${clipLines(m.html, 1, 120)}\``);
439
+ if (args.candidate !== undefined && !chosen) {
440
+ throw new PlaywrightMcpError(`candidate ${args.candidate} is out of range: Playwright listed ${strict.matches.length} match(es)`, 'INVALID_PATH', {
441
+ hint: 'Call suggest-fix without candidate to see the list.',
442
+ });
443
+ }
444
+ if (!chosen) {
445
+ notes.push(`**\`${strict.locator}\` matches ${strict.count} elements** (strict mode violation), and nothing says which one the test meant:`, '', ...listing, '', 'Call **suggest-fix** again with `candidate: <n>` to use that unique locator (and `apply: true` to write and verify it). If the duplicates are a bug (a dialog rendered twice, a stale list item), fix the app instead.');
446
+ }
447
+ else if (!span) {
448
+ notes.push(`Use \`${strict.matches[chosen.index].locator}\` for \`${strict.locator}\`, but it could not be found on line ${lineNo} of \`${failure.file}\` to patch automatically. Replace it by hand.`);
449
+ }
450
+ else {
451
+ proposal = {
452
+ kind: 'locator',
453
+ confidence: args.candidate !== undefined ? 'medium' : 'high',
454
+ lineNo,
455
+ before: line,
456
+ after: `${line.slice(0, span.start)}${strict.matches[chosen.index].locator}${line.slice(span.end)}`,
457
+ why: `Strict mode violation: ${chosen.why}`,
458
+ alternatives: strict.matches.filter((_, i) => i !== chosen.index).map((m) => m.locator).slice(0, 3),
459
+ };
460
+ }
461
+ }
462
+ // 2. Locator drift.
463
+ const brokenText = strict ? undefined : brokenLocatorFromMessage(failure.message);
292
464
  if (brokenText) {
293
465
  const chain = parseLocator(brokenText);
294
466
  const heal = healTokensFor(chain);
@@ -364,15 +536,15 @@ export const suggestFixTool = {
364
536
  };
365
537
  }
366
538
  }
367
- // 2. Changed copy in a text/value assertion.
368
- if (!proposal) {
539
+ // 3. Changed copy in a text/value assertion.
540
+ if (!proposal && !strict) {
369
541
  const expectation = await proposeExpectationFix(failure, lines, lineNo);
370
542
  if (expectation)
371
543
  proposal = expectation;
372
544
  }
373
545
  if (!proposal) {
374
546
  if (notes.length === 0) {
375
- notes.push(`No automatic fix applies to this \`${failure.failureKind}\` failure: suggest-fix patches broken locators and changed expected text. Use **get-failure** for the trace, then edit by hand.`);
547
+ notes.push(`No automatic fix applies to this \`${failure.failureKind}\` failure: suggest-fix patches broken or ambiguous locators and changed expected text. Use **get-failure** for the trace, then edit by hand.`);
376
548
  }
377
549
  out.push(...notes);
378
550
  return toolText(out.join('\n'));
@@ -411,16 +583,24 @@ export const suggestFixTool = {
411
583
  const detection = await detectProject(root);
412
584
  const configPath = resolveConfigSelection(detection, args.config);
413
585
  const target = `${specPath}${failure.line ? `:${failure.line}` : ''}`;
414
- const result = await runTests({
415
- projectRoot: root,
416
- configPath,
417
- testFiles: [target],
418
- project: failure.project,
419
- retries: 0,
420
- retryOnFailure: false,
421
- timeoutMs: args.timeoutMs,
422
- signal: ctx.signal,
423
- });
586
+ let result;
587
+ try {
588
+ result = await runTests({
589
+ projectRoot: root,
590
+ configPath,
591
+ testFiles: [target],
592
+ project: failure.project || undefined,
593
+ retries: 0,
594
+ retryOnFailure: false,
595
+ timeoutMs: args.timeoutMs,
596
+ signal: ctx.signal,
597
+ });
598
+ }
599
+ catch (err) {
600
+ // The re-run could not even start: never leave an unverified edit behind.
601
+ await writeFileInsideRoot(specPath, source, root);
602
+ throw err;
603
+ }
424
604
  ctx.store.setLastRun({ projectRoot: root, result, at: Date.now() });
425
605
  await recordRun(root, result, 'suggest-fix').catch(() => undefined);
426
606
  if (result.ok) {
@@ -1 +1 @@
1
- {"version":3,"file":"suggest-fix.js","sourceRoot":"","sources":["../../src/tools/suggest-fix.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"suggest-fix.js","sourceRoot":"","sources":["../../src/tools/suggest-fix.ts"],"names":[],"mappings":"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"}
@@ -31,10 +31,38 @@ declare const validateSelectorInput: z.ZodObject<{
31
31
  url: z.ZodOptional<z.ZodString>;
32
32
  ms: z.ZodOptional<z.ZodNumber>;
33
33
  }, z.core.$strip>>>;
34
+ routes: z.ZodOptional<z.ZodArray<z.ZodObject<{
35
+ url: z.ZodString;
36
+ method: z.ZodOptional<z.ZodString>;
37
+ status: z.ZodOptional<z.ZodNumber>;
38
+ json: z.ZodOptional<z.ZodUnknown>;
39
+ body: z.ZodOptional<z.ZodString>;
40
+ contentType: z.ZodOptional<z.ZodString>;
41
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
42
+ abort: z.ZodOptional<z.ZodBoolean>;
43
+ delayMs: z.ZodOptional<z.ZodNumber>;
44
+ }, z.core.$strip>>>;
34
45
  viewport: z.ZodOptional<z.ZodObject<{
35
46
  width: z.ZodNumber;
36
47
  height: z.ZodNumber;
37
48
  }, z.core.$strip>>;
49
+ har: z.ZodOptional<z.ZodObject<{
50
+ path: z.ZodString;
51
+ mode: z.ZodOptional<z.ZodEnum<{
52
+ record: "record";
53
+ replay: "replay";
54
+ }>>;
55
+ url: z.ZodOptional<z.ZodString>;
56
+ notFound: z.ZodOptional<z.ZodEnum<{
57
+ abort: "abort";
58
+ fallback: "fallback";
59
+ }>>;
60
+ }, z.core.$strip>>;
61
+ browser: z.ZodOptional<z.ZodEnum<{
62
+ chromium: "chromium";
63
+ firefox: "firefox";
64
+ webkit: "webkit";
65
+ }>>;
38
66
  url: z.ZodString;
39
67
  selector: z.ZodString;
40
68
  projectRoot: z.ZodOptional<z.ZodString>;
@@ -62,10 +90,38 @@ export declare const validateSelectorSchema: z.ZodObject<{
62
90
  url: z.ZodOptional<z.ZodString>;
63
91
  ms: z.ZodOptional<z.ZodNumber>;
64
92
  }, z.core.$strip>>>;
93
+ routes: z.ZodOptional<z.ZodArray<z.ZodObject<{
94
+ url: z.ZodString;
95
+ method: z.ZodOptional<z.ZodString>;
96
+ status: z.ZodOptional<z.ZodNumber>;
97
+ json: z.ZodOptional<z.ZodUnknown>;
98
+ body: z.ZodOptional<z.ZodString>;
99
+ contentType: z.ZodOptional<z.ZodString>;
100
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
101
+ abort: z.ZodOptional<z.ZodBoolean>;
102
+ delayMs: z.ZodOptional<z.ZodNumber>;
103
+ }, z.core.$strip>>>;
65
104
  viewport: z.ZodOptional<z.ZodObject<{
66
105
  width: z.ZodNumber;
67
106
  height: z.ZodNumber;
68
107
  }, z.core.$strip>>;
108
+ har: z.ZodOptional<z.ZodObject<{
109
+ path: z.ZodString;
110
+ mode: z.ZodOptional<z.ZodEnum<{
111
+ record: "record";
112
+ replay: "replay";
113
+ }>>;
114
+ url: z.ZodOptional<z.ZodString>;
115
+ notFound: z.ZodOptional<z.ZodEnum<{
116
+ abort: "abort";
117
+ fallback: "fallback";
118
+ }>>;
119
+ }, z.core.$strip>>;
120
+ browser: z.ZodOptional<z.ZodEnum<{
121
+ chromium: "chromium";
122
+ firefox: "firefox";
123
+ webkit: "webkit";
124
+ }>>;
69
125
  url: z.ZodString;
70
126
  selector: z.ZodString;
71
127
  projectRoot: z.ZodOptional<z.ZodString>;
@@ -95,10 +151,38 @@ export declare const validateSelectorTool: {
95
151
  url: z.ZodOptional<z.ZodString>;
96
152
  ms: z.ZodOptional<z.ZodNumber>;
97
153
  }, z.core.$strip>>>;
154
+ routes: z.ZodOptional<z.ZodArray<z.ZodObject<{
155
+ url: z.ZodString;
156
+ method: z.ZodOptional<z.ZodString>;
157
+ status: z.ZodOptional<z.ZodNumber>;
158
+ json: z.ZodOptional<z.ZodUnknown>;
159
+ body: z.ZodOptional<z.ZodString>;
160
+ contentType: z.ZodOptional<z.ZodString>;
161
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
162
+ abort: z.ZodOptional<z.ZodBoolean>;
163
+ delayMs: z.ZodOptional<z.ZodNumber>;
164
+ }, z.core.$strip>>>;
98
165
  viewport: z.ZodOptional<z.ZodObject<{
99
166
  width: z.ZodNumber;
100
167
  height: z.ZodNumber;
101
168
  }, z.core.$strip>>;
169
+ har: z.ZodOptional<z.ZodObject<{
170
+ path: z.ZodString;
171
+ mode: z.ZodOptional<z.ZodEnum<{
172
+ record: "record";
173
+ replay: "replay";
174
+ }>>;
175
+ url: z.ZodOptional<z.ZodString>;
176
+ notFound: z.ZodOptional<z.ZodEnum<{
177
+ abort: "abort";
178
+ fallback: "fallback";
179
+ }>>;
180
+ }, z.core.$strip>>;
181
+ browser: z.ZodOptional<z.ZodEnum<{
182
+ chromium: "chromium";
183
+ firefox: "firefox";
184
+ webkit: "webkit";
185
+ }>>;
102
186
  url: z.ZodString;
103
187
  selector: z.ZodString;
104
188
  projectRoot: z.ZodOptional<z.ZodString>;
@@ -10,7 +10,7 @@
10
10
  */
11
11
  import { z } from 'zod';
12
12
  import { PlaywrightMcpError } from '../types/index.js';
13
- import { assertHttpUrl, bestLocator, clipLines, describePageState, guard, loginHint, pageStateShape, resolvePageState, resolveProjectRoot, runBrowserScript, toolError, toolText, } from './shared.js';
13
+ import { assertHttpUrl, bestLocator, clipLines, describePageState, describeRouteHits, guard, loginHint, pageStateShape, resolvePageState, resolveProjectRoot, runBrowserScript, toolError, toolText, } from './shared.js';
14
14
  import { assertUrlAllowed } from '../utils/url-policy.js';
15
15
  import { formatLocator, isLocatorExpression, parseLocator } from '../utils/locator-expr.js';
16
16
  const validateSelectorInput = z.object({
@@ -92,6 +92,9 @@ export const validateSelectorTool = {
92
92
  lines.push(`## ✅ VALID — 0 matches`, '', `\`${selector}\` is a valid ${kind} but matched nothing on ${url}.`, '');
93
93
  if (stateLine)
94
94
  lines.push(`**Page state:** ${stateLine}`, '');
95
+ const mocks = describeRouteHits(state, data.routeHits);
96
+ if (mocks.length > 0)
97
+ lines.push('**Network mocks:**', ...mocks, '');
95
98
  const login = loginHint(data.finalUrl, state);
96
99
  if (login)
97
100
  lines.push(`> 🔒 ${login}`, '');
@@ -102,6 +105,9 @@ export const validateSelectorTool = {
102
105
  lines.push(`**URL:** ${url}${kind === 'locator' ? ` | **Parsed as:** \`${formatLocator(chain)}\`` : ''}`);
103
106
  if (stateLine)
104
107
  lines.push(`**Page state:** ${stateLine}`);
108
+ const mocks = describeRouteHits(state, data.routeHits);
109
+ if (mocks.length > 0)
110
+ lines.push('**Network mocks:**', ...mocks);
105
111
  lines.push('');
106
112
  const matches = data.elements;
107
113
  for (let i = 0; i < matches.length; i += 1) {
@@ -1 +1 @@
1
- {"version":3,"file":"validate-selector.js","sourceRoot":"","sources":["../../src/tools/validate-selector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate-selector.js","sourceRoot":"","sources":["../../src/tools/validate-selector.ts"],"names":[],"mappings":"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"}
@@ -170,6 +170,21 @@ export interface PlaywrightJsonReport {
170
170
  projects?: Array<{
171
171
  name?: string;
172
172
  }>;
173
+ /** Filled by Playwright's git info capture (captureGitInfo) and CI detection. */
174
+ metadata?: {
175
+ gitCommit?: {
176
+ hash?: string;
177
+ shortHash?: string;
178
+ subject?: string;
179
+ branch?: string;
180
+ };
181
+ ci?: {
182
+ commitHash?: string;
183
+ branch?: string;
184
+ buildHref?: string;
185
+ };
186
+ [key: string]: unknown;
187
+ };
173
188
  };
174
189
  suites?: ReportSuite[];
175
190
  errors?: ReportError[];
@@ -318,6 +333,19 @@ export interface RunTestResult {
318
333
  errorKind?: ErrorKind;
319
334
  errorMessage?: string;
320
335
  hint?: string;
336
+ /** The result was loaded from a report written elsewhere (CI), not run here. */
337
+ imported?: {
338
+ reportPath: string;
339
+ traceDirs: string[];
340
+ git?: GitInfo;
341
+ };
342
+ }
343
+ /** Which commit a run tested. */
344
+ export interface GitInfo {
345
+ commit?: string;
346
+ branch?: string;
347
+ subject?: string;
348
+ buildUrl?: string;
321
349
  }
322
350
  export interface ListTestsOptions {
323
351
  projectRoot: string;
@@ -25,6 +25,13 @@ export declare function detectProject(startDir?: string): Promise<ProjectDetecti
25
25
  /** Pick a config by 1-based index or exact path from the candidates list. */
26
26
  export declare function selectConfig(candidates: string[], selection?: string | number): string | null;
27
27
  /** Install instructions for a project where Playwright is missing. */
28
+ /** True on the hosted (Vercel) bridge, which ships no browser and no Playwright. */
29
+ export declare function isHostedDeployment(): boolean;
30
+ /** What to tell a caller of the hosted bridge that asked for a browser or a test run. */
31
+ export declare const HOSTED_NO_BROWSER: {
32
+ message: string;
33
+ hint: string;
34
+ };
28
35
  export declare function missingPlaywrightMessage(detection: ProjectDetection): {
29
36
  message: string;
30
37
  hint: string;
@@ -196,6 +196,15 @@ export function selectConfig(candidates, selection) {
196
196
  return null;
197
197
  }
198
198
  /** Install instructions for a project where Playwright is missing. */
199
+ /** True on the hosted (Vercel) bridge, which ships no browser and no Playwright. */
200
+ export function isHostedDeployment() {
201
+ return Boolean(process.env.VERCEL);
202
+ }
203
+ /** What to tell a caller of the hosted bridge that asked for a browser or a test run. */
204
+ export const HOSTED_NO_BROWSER = {
205
+ message: 'The hosted endpoint has no browser or Playwright install, so it cannot run tests or open pages.',
206
+ hint: 'Run the server next to your project instead: `npx -y playwright-e2e-mcp init` in the project folder, then restart your AI app. It runs your own tests and can open localhost and public pages.',
207
+ };
199
208
  export function missingPlaywrightMessage(detection) {
200
209
  const install = detection.packageManager === 'pnpm'
201
210
  ? 'pnpm add -D @playwright/test'
@@ -207,6 +216,8 @@ export function missingPlaywrightMessage(detection) {
207
216
  const browsers = detection.packageManager === 'unknown'
208
217
  ? 'npx playwright install'
209
218
  : `${detection.packageManager === 'npm' ? 'npx' : detection.packageManager} playwright install`;
219
+ if (isHostedDeployment())
220
+ return HOSTED_NO_BROWSER;
210
221
  return {
211
222
  message: 'Playwright is not installed in this project (no @playwright/test or playwright found in node_modules).',
212
223
  hint: `Run:\n ${install}\n ${browsers}\nthen retry.`,