mcp-accessibility-scanner 3.3.1 → 3.4.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 (63) hide show
  1. package/README.md +74 -5
  2. package/config.d.ts +30 -0
  3. package/lib/browserServerBackend.js +6 -0
  4. package/lib/browserServerBackend.js.map +1 -1
  5. package/lib/browserSessions.js +3 -0
  6. package/lib/browserSessions.js.map +1 -1
  7. package/lib/config.js +56 -10
  8. package/lib/config.js.map +1 -1
  9. package/lib/context.js +382 -56
  10. package/lib/context.js.map +1 -1
  11. package/lib/extension/cdpRelay.js +28 -6
  12. package/lib/extension/cdpRelay.js.map +1 -1
  13. package/lib/extension/extensionContextFactory.js +11 -6
  14. package/lib/extension/extensionContextFactory.js.map +1 -1
  15. package/lib/mcp/http.js +115 -41
  16. package/lib/mcp/http.js.map +1 -1
  17. package/lib/mcp/server.js +16 -8
  18. package/lib/mcp/server.js.map +1 -1
  19. package/lib/mcp/tool.js +11 -9
  20. package/lib/mcp/tool.js.map +1 -1
  21. package/lib/program.js +6 -3
  22. package/lib/program.js.map +1 -1
  23. package/lib/response.js +14 -2
  24. package/lib/response.js.map +1 -1
  25. package/lib/sessionLog.js +66 -20
  26. package/lib/sessionLog.js.map +1 -1
  27. package/lib/tab.js +13 -7
  28. package/lib/tab.js.map +1 -1
  29. package/lib/tools/auditKeyboard.js +27 -25
  30. package/lib/tools/auditKeyboard.js.map +1 -1
  31. package/lib/tools/auditScreenReader.js +30 -53
  32. package/lib/tools/auditScreenReader.js.map +1 -1
  33. package/lib/tools/auditSite.js +88 -56
  34. package/lib/tools/auditSite.js.map +1 -1
  35. package/lib/tools/axe.js +38 -17
  36. package/lib/tools/axe.js.map +1 -1
  37. package/lib/tools/common.js +39 -1
  38. package/lib/tools/common.js.map +1 -1
  39. package/lib/tools/files.js +55 -1
  40. package/lib/tools/files.js.map +1 -1
  41. package/lib/tools/pdf.js +4 -2
  42. package/lib/tools/pdf.js.map +1 -1
  43. package/lib/tools/recorder.js +52 -0
  44. package/lib/tools/recorder.js.map +1 -0
  45. package/lib/tools/report.js +13 -0
  46. package/lib/tools/report.js.map +1 -0
  47. package/lib/tools/scanPageMatrix.js +20 -33
  48. package/lib/tools/scanPageMatrix.js.map +1 -1
  49. package/lib/tools/screenshot.js +6 -3
  50. package/lib/tools/screenshot.js.map +1 -1
  51. package/lib/tools/snapshot.js +5 -2
  52. package/lib/tools/snapshot.js.map +1 -1
  53. package/lib/tools.js +2 -0
  54. package/lib/tools.js.map +1 -1
  55. package/lib/vscode/browserContextFactory.js +11 -4
  56. package/lib/vscode/browserContextFactory.js.map +1 -1
  57. package/lib/vscode/host.js +25 -2
  58. package/lib/vscode/host.js.map +1 -1
  59. package/lib/vscode/main.js +15 -0
  60. package/lib/vscode/main.js.map +1 -1
  61. package/lib/vscode/validation.js +78 -0
  62. package/lib/vscode/validation.js.map +1 -0
  63. package/package.json +6 -5
package/lib/tools/axe.js CHANGED
@@ -38,6 +38,25 @@ export const axeRuleSchemaShape = {
38
38
  withRules: z.array(z.string().min(1)).min(1).optional().describe('Run only these Axe rule ids, e.g. ["color-contrast", "image-alt"]. Axe can run a rule list or a tag list but never both, so setting withRules ignores violationsTag entirely. Unknown rule ids are rejected rather than silently skipped, and so is an empty list — omit the option to scan by tags instead.'),
39
39
  disableRules: z.array(z.string().min(1)).optional().describe('Axe rule ids to skip, e.g. ["color-contrast"]. Unlike withRules this narrows whatever is already selected, so it applies to violationsTag and withRules alike. Disabling every rule in withRules is an error, not an empty scan. Unknown rule ids are rejected rather than silently skipped.'),
40
40
  };
41
+ // Shared by the tools that run repeated whole-page scans (site crawl, variant
42
+ // matrix) so the scan knobs mean the same thing in each.
43
+ export const axeScanSchemaShape = {
44
+ violationsTag: z.array(z.enum(axeTagValues)).min(1).default([...defaultAxeTags]).describe('Axe tags to include in scans.'),
45
+ maxNodesPerViolation: z.number().int().min(1).max(50).default(10).describe('Maximum nodes kept per violation in the report.'),
46
+ reportFile: z.string().optional().describe('Output JSON report file name.'),
47
+ };
48
+ // Builds the runAxeScan options every scan tool passes from its schema
49
+ // params, so the field mapping (violationsTag -> tags, includeSelectors ->
50
+ // include, ...) lives in one place.
51
+ export function axeScanOptions(params) {
52
+ return {
53
+ tags: params.violationsTag,
54
+ rules: params.withRules,
55
+ disableRules: params.disableRules,
56
+ include: params.includeSelectors,
57
+ exclude: params.excludeSelectors,
58
+ };
59
+ }
41
60
  // The rule catalogue comes from the very axe-core build injected into the page
42
61
  // (`axe.source` below), so ids can never drift from what the scan supports and
43
62
  // no extra injection is needed to check them.
@@ -180,17 +199,13 @@ export function frameReadTimeoutMs(frame) {
180
199
  }
181
200
  /**
182
201
  * Installs the audit's own axe copy in a frame, once per frame the audit
183
- * measures. Resolves false when the frame refused or never answered within
184
- * its budget; names there stay unmeasured, which the audit reports.
202
+ * measures. Resolves false when the frame refused it; names there stay
203
+ * unmeasured, which the audit reports. Unbounded on purpose: the caller runs
204
+ * it through the frame-work pool, which owns the budget and needs to see the
205
+ * install actually settle, not a timeout resolving in its place.
185
206
  */
186
- export async function injectAxeForNames(frame, onSettled) {
187
- return withFrameTimeout(injectAxe(frame, axeForNamesSource).then(() => {
188
- onSettled?.(true);
189
- return true;
190
- }, () => {
191
- onSettled?.(false);
192
- return false;
193
- }), false, frameReadTimeoutMs(frame));
207
+ export async function injectAxeForNames(frame) {
208
+ return injectAxe(frame, axeForNamesSource).then(() => true, () => false);
194
209
  }
195
210
  // A child frame that never answers must not hang the scan. It goes unscanned
196
211
  // instead - but not silently: a frame Axe never reached contributes no
@@ -520,15 +535,21 @@ export async function runAxeScan(page, options = {}) {
520
535
  return { ...results, unscannedFrames };
521
536
  }
522
537
  // A scan that could not reach a frame covered less than it looks like it did,
523
- // so every tool that reports results says so in the same words.
524
- export function unscannedFrameLines(unscannedFrames) {
525
- if (!unscannedFrames.length)
538
+ // so every tool that reports results says so in the same words. Tools that
539
+ // aggregate several pages or variants pass `unit` ('page(s)', 'variant(s)')
540
+ // and one entry per unit describing the frames it missed; `trailingLines`
541
+ // replaces the single-frame closing advice with whatever that tool needs.
542
+ export function unscannedFrameLines(frames, options = {}) {
543
+ if (!frames.length)
526
544
  return [];
545
+ const entries = frames.slice(0, options.maxEntries ?? frames.length);
527
546
  return [
528
- '',
529
- `WARNING: Axe could not be installed in ${unscannedFrames.length} frame(s), whose contents were not scanned and contribute no findings above:`,
530
- ...unscannedFrames.map(url => `- ${url}`),
531
- 'A frame that is still loading may succeed on a re-run; one that consistently fails must be audited on its own.',
547
+ ...(options.unit ? [] : ['']),
548
+ options.unit
549
+ ? `WARNING: Axe could not be installed in frames on ${frames.length} ${options.unit}; their contents were not scanned and contribute no findings below.`
550
+ : `WARNING: Axe could not be installed in ${frames.length} frame(s), whose contents were not scanned and contribute no findings above:`,
551
+ ...entries.map(frame => `- ${frame}`),
552
+ ...(options.trailingLines ?? ['A frame that is still loading may succeed on a re-run; one that consistently fails must be audited on its own.']),
532
553
  ];
533
554
  }
534
555
  export function dedupeAxeNodes(nodes) {
@@ -1 +1 @@
1
- {"version":3,"file":"axe.js","sourceRoot":"","sources":["../../src/tools/axe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"axe.js","sourceRoot":"","sources":["../../src/tools/axe.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,7 @@
15
15
  */
16
16
  import { z } from 'zod';
17
17
  import { defineTabTool, defineTool } from './tool.js';
18
+ import * as javascript from '../utils/codegen.js';
18
19
  const close = defineTool({
19
20
  capability: 'core',
20
21
  schema: {
@@ -49,8 +50,45 @@ const resize = defineTabTool({
49
50
  });
50
51
  },
51
52
  });
53
+ const emulateMedia = defineTabTool({
54
+ capability: 'core',
55
+ schema: {
56
+ name: 'browser_emulate_media',
57
+ title: 'Emulate media features',
58
+ description: 'Emulate CSS media features for the page. Omitted parameters keep their current state.',
59
+ inputSchema: z.object({
60
+ colorScheme: z.enum(['light', 'dark']).optional().describe('Emulates prefers-color-scheme'),
61
+ reducedMotion: z.enum(['reduce', 'no-preference']).optional().describe('Emulates prefers-reduced-motion'),
62
+ forcedColors: z.enum(['active', 'none']).optional().describe('Emulates forced-colors'),
63
+ contrast: z.enum(['more', 'no-preference']).optional().describe('Emulates prefers-contrast'),
64
+ media: z.enum(['screen', 'print']).optional().describe('Changes the CSS media type'),
65
+ }),
66
+ type: 'stateChanging',
67
+ idempotent: true,
68
+ },
69
+ handle: async (tab, params, response) => {
70
+ const requested = {
71
+ colorScheme: params.colorScheme,
72
+ contrast: params.contrast,
73
+ forcedColors: params.forcedColors,
74
+ media: params.media,
75
+ reducedMotion: params.reducedMotion,
76
+ };
77
+ // SAFETY: filtering removes only undefined values and preserves every key and value type from requested.
78
+ const options = Object.fromEntries(Object.entries(requested).filter(([, value]) => value !== undefined));
79
+ if (!Object.keys(options).length) {
80
+ response.addError('Specify at least one media feature to emulate.');
81
+ return;
82
+ }
83
+ response.addCode(`await page.emulateMedia(${javascript.formatObject(options)});`);
84
+ await tab.waitForCompletion(async () => {
85
+ await tab.page.emulateMedia(options);
86
+ });
87
+ },
88
+ });
52
89
  export default [
53
90
  close,
54
- resize
91
+ resize,
92
+ emulateMedia,
55
93
  ];
56
94
  //# sourceMappingURL=common.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/tools/common.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEtD,MAAM,KAAK,GAAG,UAAU,CAAC;IACvB,UAAU,EAAE,MAAM;IAClB,MAAM,EAAE;QACN,IAAI,EAAE,eAAe;QACrB,KAAK,EAAE,eAAe;QACtB,WAAW,EAAE,gBAAgB;QAC7B,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,IAAI,EAAE,UAAU;KACjB;IAED,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE;QAC1C,MAAM,OAAO,CAAC,mBAAmB,EAAE,CAAC;QACpC,QAAQ,CAAC,cAAc,EAAE,CAAC;QAC1B,QAAQ,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACzC,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,aAAa,CAAC;IAC3B,UAAU,EAAE,MAAM;IAClB,MAAM,EAAE;QACN,IAAI,EAAE,gBAAgB;QACtB,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EAAE,2BAA2B;QACxC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;YACzD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;SAC5D,CAAC;QACF,IAAI,EAAE,UAAU;KACjB;IAED,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE;QACtC,QAAQ,CAAC,OAAO,CAAC,uCAAuC,MAAM,CAAC,KAAK,aAAa,MAAM,CAAC,MAAM,MAAM,CAAC,CAAC;QAEtG,MAAM,GAAG,CAAC,iBAAiB,CAAC,KAAK,IAAI,EAAE;YACrC,MAAM,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACjF,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAC,CAAC;AAEH,eAAe;IACb,KAAK;IACL,MAAM;CACP,CAAC"}
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/tools/common.ts"],"names":[],"mappings":"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"}
@@ -13,8 +13,61 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
+ import path from 'node:path';
17
+ import fs from 'node:fs';
18
+ import coreBundle from 'playwright-core/lib/coreBundle';
16
19
  import { z } from 'zod';
17
20
  import { defineTabTool } from './tool.js';
21
+ export async function prepareUploadFiles(config, paths) {
22
+ const allowedDirs = config.browser.allowedUploadDirs;
23
+ if (allowedDirs === undefined || !paths.length)
24
+ return paths;
25
+ const rejected = () => new Error('Upload path(s) outside the allowed upload directories.');
26
+ if (!allowedDirs.length)
27
+ throw rejected();
28
+ if (process.platform !== 'darwin' && process.platform !== 'linux')
29
+ throw new Error('Restricted file uploads and drops require macOS or Linux with /proc/self/fd.');
30
+ const payloads = [];
31
+ let totalBytes = 0;
32
+ for (const target of paths) {
33
+ const canonical = await fs.promises.realpath(target);
34
+ if (!allowedDirs.some(root => {
35
+ const relative = path.relative(root, canonical);
36
+ return relative === '' || (relative !== '..' && !relative.startsWith(`..${path.sep}`) && !path.isAbsolute(relative));
37
+ }))
38
+ throw rejected();
39
+ const before = await fs.promises.stat(canonical);
40
+ if (!before.isFile())
41
+ throw new Error('Restricted uploads require regular files, not directories or devices.');
42
+ // Darwin's O_NOFOLLOW_ANY rejects symlinks in every path component during
43
+ // open; Node does not expose the flag from sys/fcntl.h.
44
+ const noFollow = process.platform === 'darwin' ? 0x20000000 : fs.constants.O_NOFOLLOW;
45
+ const handle = await fs.promises.open(canonical, fs.constants.O_RDONLY | fs.constants.O_NONBLOCK | noFollow);
46
+ try {
47
+ const opened = await handle.stat();
48
+ if (!opened.isFile())
49
+ throw new Error('Restricted uploads require regular files, not directories or devices.');
50
+ // Linux resolves this link from the open descriptor, not the mutable
51
+ // pathname. Do not replace it with another stat/realpath of canonical.
52
+ if (opened.dev !== before.dev || opened.ino !== before.ino ||
53
+ (process.platform === 'linux' && await fs.promises.readlink(`/proc/self/fd/${handle.fd}`) !== canonical))
54
+ throw new Error('Upload file changed during validation. Retry with a stable file.');
55
+ // Read the checked descriptor; setFiles must never reopen an attacker-replaceable path.
56
+ const chunks = [];
57
+ for await (const chunk of handle.createReadStream({ autoClose: false })) {
58
+ totalBytes += chunk.length;
59
+ if (totalBytes > 50 * 1024 * 1024)
60
+ throw new Error('Restricted uploads exceed the 50 MiB total limit.');
61
+ chunks.push(chunk);
62
+ }
63
+ payloads.push({ name: path.basename(target), mimeType: coreBundle.iso.getMimeTypeForPath(target) ?? 'application/octet-stream', buffer: Buffer.concat(chunks) });
64
+ }
65
+ finally {
66
+ await handle.close();
67
+ }
68
+ }
69
+ return payloads;
70
+ }
18
71
  const uploadFile = defineTabTool({
19
72
  capability: 'core',
20
73
  schema: {
@@ -31,10 +84,11 @@ const uploadFile = defineTabTool({
31
84
  const modalState = tab.modalStates().find(state => state.type === 'fileChooser');
32
85
  if (!modalState)
33
86
  throw new Error('No file chooser visible');
87
+ const files = await prepareUploadFiles(tab.context.config, params.paths);
34
88
  response.addCode(`await fileChooser.setFiles(${JSON.stringify(params.paths)})`);
35
89
  tab.clearModalState(modalState);
36
90
  await tab.waitForCompletion(async () => {
37
- await modalState.fileChooser.setFiles(params.paths);
91
+ await modalState.fileChooser.setFiles(files);
38
92
  });
39
93
  },
40
94
  clearsModalState: 'fileChooser',
@@ -1 +1 @@
1
- {"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/tools/files.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,MAAM,UAAU,GAAG,aAAa,CAAC;IAC/B,UAAU,EAAE,MAAM;IAElB,MAAM,EAAE;QACN,IAAI,EAAE,qBAAqB;QAC3B,KAAK,EAAE,cAAc;QACrB,WAAW,EAAE,8BAA8B;QAC3C,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,oFAAoF,CAAC;SAC1H,CAAC;QACF,IAAI,EAAE,aAAa;KACpB;IAED,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE;QACtC,QAAQ,CAAC,kBAAkB,EAAE,CAAC;QAE9B,MAAM,UAAU,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;QACjF,IAAI,CAAC,UAAU;YACb,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAE7C,QAAQ,CAAC,OAAO,CAAC,8BAA8B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAEhF,GAAG,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QAChC,MAAM,GAAG,CAAC,iBAAiB,CAAC,KAAK,IAAI,EAAE;YACrC,MAAM,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;IACL,CAAC;IACD,gBAAgB,EAAE,aAAa;CAChC,CAAC,CAAC;AAEH,eAAe;IACb,UAAU;CACX,CAAC"}
1
+ {"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/tools/files.ts"],"names":[],"mappings":"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"}
package/lib/tools/pdf.js CHANGED
@@ -18,7 +18,7 @@ import { defineTabTool } from './tool.js';
18
18
  import * as javascript from '../utils/codegen.js';
19
19
  import { safeIsoTimestampForFileName } from '../utils/fileUtils.js';
20
20
  const pdfSchema = z.object({
21
- filename: z.string().optional().describe('File name to save the pdf to. Defaults to `page-{timestamp}-{token}.pdf` if not specified (the random token keeps concurrent sessions from overwriting each other).'),
21
+ filename: z.string().optional().describe('File name to save the pdf to. Existing files are never overwritten. Defaults to `page-{timestamp}-{token}.pdf` if not specified.'),
22
22
  });
23
23
  const pdf = defineTabTool({
24
24
  capability: 'pdf',
@@ -32,7 +32,9 @@ const pdf = defineTabTool({
32
32
  handle: async (tab, params, response) => {
33
33
  // Random token besides the timestamp: see browser_take_screenshot — two
34
34
  // sessions saving a PDF in the same millisecond must not collide.
35
- const fileName = await tab.context.outputFile(params.filename ?? `page-${safeIsoTimestampForFileName()}.pdf`);
35
+ const fileName = await tab.context.outputFile(params.filename ?? `page-${safeIsoTimestampForFileName()}.pdf`, params.filename !== undefined);
36
+ if (params.filename !== undefined)
37
+ response.deleteFileOnError(fileName);
36
38
  response.addCode(`await page.pdf(${javascript.formatObject({ path: fileName })});`);
37
39
  response.addResult(`Saved page as ${fileName}`);
38
40
  await tab.page.pdf({ path: fileName });
@@ -1 +1 @@
1
- {"version":3,"file":"pdf.js","sourceRoot":"","sources":["../../src/tools/pdf.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,KAAK,UAAU,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAEpE,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC;IACzB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qKAAqK,CAAC;CAChN,CAAC,CAAC;AAEH,MAAM,GAAG,GAAG,aAAa,CAAC;IACxB,UAAU,EAAE,KAAK;IAEjB,MAAM,EAAE;QACN,IAAI,EAAE,kBAAkB;QACxB,KAAK,EAAE,aAAa;QACpB,WAAW,EAAE,kBAAkB;QAC/B,WAAW,EAAE,SAAS;QACtB,IAAI,EAAE,UAAU;KACjB;IAED,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE;QACtC,wEAAwE;QACxE,kEAAkE;QAClE,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,IAAI,QAAQ,2BAA2B,EAAE,MAAM,CAAC,CAAC;QAC9G,QAAQ,CAAC,OAAO,CAAC,kBAAkB,UAAU,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC;QACpF,QAAQ,CAAC,SAAS,CAAC,iBAAiB,QAAQ,EAAE,CAAC,CAAC;QAChD,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IACzC,CAAC;CACF,CAAC,CAAC;AAEH,eAAe;IACb,GAAG;CACJ,CAAC"}
1
+ {"version":3,"file":"pdf.js","sourceRoot":"","sources":["../../src/tools/pdf.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,KAAK,UAAU,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAEpE,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC;IACzB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kIAAkI,CAAC;CAC7K,CAAC,CAAC;AAEH,MAAM,GAAG,GAAG,aAAa,CAAC;IACxB,UAAU,EAAE,KAAK;IAEjB,MAAM,EAAE;QACN,IAAI,EAAE,kBAAkB;QACxB,KAAK,EAAE,aAAa;QACpB,WAAW,EAAE,kBAAkB;QAC/B,WAAW,EAAE,SAAS;QACtB,IAAI,EAAE,UAAU;KACjB;IAED,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE;QACtC,wEAAwE;QACxE,kEAAkE;QAClE,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,IAAI,QAAQ,2BAA2B,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC;QAC7I,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS;YAC/B,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QACvC,QAAQ,CAAC,OAAO,CAAC,kBAAkB,UAAU,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC;QACpF,QAAQ,CAAC,SAAS,CAAC,iBAAiB,QAAQ,EAAE,CAAC,CAAC;QAChD,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IACzC,CAAC;CACF,CAAC,CAAC;AAEH,eAAe;IACb,GAAG;CACJ,CAAC"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Copyright (c) Microsoft Corporation.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { z } from 'zod';
17
+ import { defineTool } from './tool.js';
18
+ const startRecording = defineTool({
19
+ capability: 'devtools',
20
+ schema: {
21
+ name: 'browser_start_recording',
22
+ title: 'Start recording user actions',
23
+ description: 'Start recording actions that the user performs in the browser as Playwright code. Call browser_stop_recording when the user is done.',
24
+ inputSchema: z.object({}),
25
+ type: 'stateChanging',
26
+ },
27
+ handle: async (context, _params, response) => {
28
+ await context.startRecordingOnCurrentTab();
29
+ response.addResult('Recording started. Call browser_stop_recording to retrieve the recorded actions.');
30
+ },
31
+ });
32
+ const stopRecording = defineTool({
33
+ capability: 'devtools',
34
+ schema: {
35
+ name: 'browser_stop_recording',
36
+ title: 'Stop recording user actions',
37
+ description: 'Stop the recording started with browser_start_recording and return the recorded actions as Playwright code.',
38
+ inputSchema: z.object({}),
39
+ type: 'destructive',
40
+ },
41
+ handle: async (context, _params, response) => {
42
+ const actions = await context.stopRecording();
43
+ if (!actions)
44
+ throw new Error('No recording in progress, use browser_start_recording to start one.');
45
+ response.addResult(actions.length
46
+ ? `Recording stopped. Recorded actions:\n\n~~~js\n${actions.join('\n')}\n~~~`
47
+ : 'Recording stopped. No actions were recorded.');
48
+ response.setIncludeSnapshot();
49
+ },
50
+ });
51
+ export default [startRecording, stopRecording];
52
+ //# sourceMappingURL=recorder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recorder.js","sourceRoot":"","sources":["../../src/tools/recorder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,MAAM,cAAc,GAAG,UAAU,CAAC;IAChC,UAAU,EAAE,UAAU;IACtB,MAAM,EAAE;QACN,IAAI,EAAE,yBAAyB;QAC/B,KAAK,EAAE,8BAA8B;QACrC,WAAW,EAAE,sIAAsI;QACnJ,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,IAAI,EAAE,eAAe;KACtB;IACD,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE;QAC3C,MAAM,OAAO,CAAC,0BAA0B,EAAE,CAAC;QAC3C,QAAQ,CAAC,SAAS,CAAC,kFAAkF,CAAC,CAAC;IACzG,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,aAAa,GAAG,UAAU,CAAC;IAC/B,UAAU,EAAE,UAAU;IACtB,MAAM,EAAE;QACN,IAAI,EAAE,wBAAwB;QAC9B,KAAK,EAAE,6BAA6B;QACpC,WAAW,EAAE,6GAA6G;QAC1H,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,IAAI,EAAE,aAAa;KACpB;IACD,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE;QAC3C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,aAAa,EAAE,CAAC;QAC9C,IAAI,CAAC,OAAO;YACV,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;QACzF,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM;YAC/B,CAAC,CAAC,kDAAkD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO;YAC7E,CAAC,CAAC,8CAA8C,CAAC,CAAC;QACpD,QAAQ,CAAC,kBAAkB,EAAE,CAAC;IAChC,CAAC;CACF,CAAC,CAAC;AAEH,eAAe,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC"}
@@ -0,0 +1,13 @@
1
+ import fs from 'node:fs';
2
+ export async function writeJsonReport(response, path, report, resource) {
3
+ await fs.promises.writeFile(path, JSON.stringify(report, null, 2), 'utf-8');
4
+ const link = response.addFileResourceLink(path, { ...resource, mimeType: 'application/json' });
5
+ return {
6
+ path,
7
+ uri: link.uri,
8
+ name: link.name,
9
+ title: link.title ?? null,
10
+ mimeType: link.mimeType ?? null,
11
+ };
12
+ }
13
+ //# sourceMappingURL=report.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"report.js","sourceRoot":"","sources":["../../src/tools/report.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AAWzB,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,QAAkB,EAClB,IAAY,EACZ,MAAe,EACf,QAA8D;IAE9D,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAC5E,MAAM,IAAI,GAAG,QAAQ,CAAC,mBAAmB,CAAC,IAAI,EAAE,EAAE,GAAG,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAC/F,OAAO;QACL,IAAI;QACJ,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI;QACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI;KAChC,CAAC;AACJ,CAAC"}
@@ -1,8 +1,8 @@
1
- import fs from 'node:fs';
2
1
  import { z } from 'zod';
3
2
  import { defineTabTool } from './tool.js';
4
- import { safeIsoTimestampForFileName, sanitizeForFilePath } from '../utils/fileUtils.js';
5
- import { assertRuleOptionsValid, axeRuleSchemaShape, axeScopeSchemaShape, axeTagValues, defaultAxeTags, prepareAxeResults, runAxeScan, summarizeAxeViolations, } from './axe.js';
3
+ import { writeJsonReport } from './report.js';
4
+ import { safeIsoTimestampForFileName } from '../utils/fileUtils.js';
5
+ import { assertRuleOptionsValid, axeRuleSchemaShape, axeScanOptions, axeScanSchemaShape, axeScopeSchemaShape, prepareAxeResults, runAxeScan, summarizeAxeViolations, unscannedFrameLines, } from './axe.js';
6
6
  const variantSchema = z.object({
7
7
  name: z.string().min(1).describe('Variant name.'),
8
8
  viewport: z.object({
@@ -44,12 +44,10 @@ const defaultVariants = [
44
44
  ];
45
45
  const scanPageMatrixSchema = z.object({
46
46
  variants: z.array(variantSchema).min(1).optional().describe('Variant list to run. Defaults to baseline/mobile/desktop/forced-colors/reduced-motion/zoom-200.'),
47
- violationsTag: z.array(z.enum(axeTagValues)).min(1).default([...defaultAxeTags]).describe('Axe tags to include in scans.'),
48
47
  includeIncomplete: z.boolean().default(true).describe('Also collect Axe "incomplete" results per variant — checks Axe could not decide automatically.'),
49
- maxNodesPerViolation: z.number().int().min(1).max(50).default(10).describe('Maximum nodes kept per violation in the report.'),
50
48
  waitAfterApplyMs: z.number().int().min(0).max(5000).default(250).describe('Wait after applying each variant before scanning.'),
51
49
  reloadBetweenVariants: z.boolean().default(false).describe('Reload page between variants.'),
52
- reportFile: z.string().optional().describe('Output JSON report file name.'),
50
+ ...axeScanSchemaShape,
53
51
  ...axeScopeSchemaShape,
54
52
  ...axeRuleSchemaShape,
55
53
  });
@@ -126,6 +124,10 @@ const scanPageMatrix = defineTabTool({
126
124
  // reloadBetweenVariants has already thrown away form and application state
127
125
  // by the time the per-scan check would reject the argument.
128
126
  assertRuleOptionsValid({ rules: params.withRules, disableRules: params.disableRules });
127
+ const reportFileName = params.reportFile ?? `scan-matrix-${safeIsoTimestampForFileName()}.json`;
128
+ const reportPath = await tab.context.outputFile(reportFileName, params.reportFile !== undefined);
129
+ if (params.reportFile !== undefined)
130
+ response.deleteFileOnError(reportPath);
129
131
  const variants = params.variants ?? defaultVariants;
130
132
  const originalViewport = tab.page.viewportSize() ?? await tab.page.evaluate(() => ({
131
133
  width: window.innerWidth,
@@ -156,13 +158,7 @@ const scanPageMatrix = defineTabTool({
156
158
  document.documentElement.style.zoom = zoom;
157
159
  }, variant.zoomPercent !== undefined ? `${variant.zoomPercent}%` : originalZoom);
158
160
  await tab.waitForTimeout(params.waitAfterApplyMs);
159
- const axeResult = await runAxeScan(tab.page, {
160
- tags: params.violationsTag,
161
- rules: params.withRules,
162
- disableRules: params.disableRules,
163
- include: params.includeSelectors,
164
- exclude: params.excludeSelectors,
165
- });
161
+ const axeResult = await runAxeScan(tab.page, axeScanOptions(params));
166
162
  const violations = prepareAxeResults(axeResult.violations, params.maxNodesPerViolation);
167
163
  const nodeCountByRuleId = countNodesByRule(violations.deduped);
168
164
  variantResults.push({
@@ -231,25 +227,15 @@ const scanPageMatrix = defineTabTool({
231
227
  },
232
228
  variants: variantResults,
233
229
  };
234
- const reportFileName = sanitizeForFilePath(params.reportFile ?? `scan-matrix-${safeIsoTimestampForFileName()}.json`);
235
- const reportPath = await tab.context.outputFile(reportFileName);
236
- await fs.promises.writeFile(reportPath, JSON.stringify(report, null, 2), 'utf-8');
237
- const reportResourceLink = response.addFileResourceLink(reportPath, {
230
+ const reportResource = await writeJsonReport(response, reportPath, report, {
238
231
  name: 'scan-page-matrix-report',
239
232
  title: 'Scan page matrix JSON report',
240
233
  description: 'JSON report containing per-variant Axe results and baseline deltas.',
241
- mimeType: 'application/json',
242
234
  });
243
235
  response.setStructuredContent({
244
236
  kind: 'scan_page_matrix',
245
237
  version: 'v2',
246
- report: {
247
- path: reportPath,
248
- uri: reportResourceLink.uri,
249
- name: reportResourceLink.name,
250
- title: reportResourceLink.title ?? null,
251
- mimeType: reportResourceLink.mimeType ?? null,
252
- },
238
+ report: reportResource,
253
239
  page: {
254
240
  url: tab.page.url(),
255
241
  },
@@ -271,17 +257,18 @@ const scanPageMatrix = defineTabTool({
271
257
  newViolationIds: result.diffFromBaseline?.newViolationIds ?? null,
272
258
  resolvedViolationIds: result.diffFromBaseline?.resolvedViolationIds ?? null,
273
259
  changedRuleIds: result.diffFromBaseline ? Object.keys(result.diffFromBaseline.changedCounts) : null,
274
- reportUri: reportResourceLink.uri,
260
+ reportUri: reportResource.uri,
275
261
  })),
276
262
  });
277
263
  const variantsWithUnscannedFrames = variantResults.filter(result => result.unscannedFrames.length);
278
264
  const lines = [
279
- ...(variantsWithUnscannedFrames.length ? [
280
- `WARNING: Axe could not be installed in frames on ${variantsWithUnscannedFrames.length} variant(s); their contents were not scanned and contribute no findings below.`,
281
- ...variantsWithUnscannedFrames.map(result => `- ${result.name}: ${result.unscannedFrames.join(', ')}`),
282
- 'Baseline deltas are reported as "n/a" wherever the two scans did not cover the same documents.',
283
- '',
284
- ] : []),
265
+ ...unscannedFrameLines(variantsWithUnscannedFrames.map(result => `${result.name}: ${result.unscannedFrames.join(', ')}`), {
266
+ unit: 'variant(s)',
267
+ trailingLines: [
268
+ 'Baseline deltas are reported as "n/a" wherever the two scans did not cover the same documents.',
269
+ '',
270
+ ],
271
+ }),
285
272
  'Variant | Violations | Nodes | Incomplete | Top new vs baseline',
286
273
  '--- | --- | --- | --- | ---',
287
274
  ...variantResults.map(result => {
@@ -299,7 +286,7 @@ const scanPageMatrix = defineTabTool({
299
286
  return `${result.name} | ${result.summary.totalRules} | ${result.summary.totalNodes} | ${incomplete} | ${topNew}`;
300
287
  }),
301
288
  '',
302
- `JSON report: ${reportPath}`,
289
+ `JSON report: ${reportResource.path}`,
303
290
  ];
304
291
  response.addCode('// Applied viewport/media/zoom variants and compared Axe deltas against baseline.');
305
292
  response.addResult(lines.join('\n'));
@@ -1 +1 @@
1
- {"version":3,"file":"scanPageMatrix.js","sourceRoot":"","sources":["../../src/tools/scanPageMatrix.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scanPageMatrix.js","sourceRoot":"","sources":["../../src/tools/scanPageMatrix.ts"],"names":[],"mappings":"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"}