mcp-accessibility-scanner 1.1.2 → 2.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 (111) hide show
  1. package/{Readme.md → README.md} +49 -0
  2. package/lib/browserContextFactory.js +83 -99
  3. package/lib/browserContextFactory.js.map +1 -1
  4. package/lib/browserServerBackend.js +78 -0
  5. package/lib/browserServerBackend.js.map +1 -0
  6. package/lib/config.js +89 -19
  7. package/lib/config.js.map +1 -1
  8. package/lib/context.js +109 -174
  9. package/lib/context.js.map +1 -1
  10. package/lib/extension/cdpRelay.js +359 -0
  11. package/lib/extension/cdpRelay.js.map +1 -0
  12. package/lib/extension/extensionContextFactory.js +57 -0
  13. package/lib/extension/extensionContextFactory.js.map +1 -0
  14. package/lib/extension/protocol.js +19 -0
  15. package/lib/extension/protocol.js.map +1 -0
  16. package/lib/index.js +7 -3
  17. package/lib/index.js.map +1 -1
  18. package/lib/{transport.js → mcp/http.js} +65 -63
  19. package/lib/mcp/http.js.map +1 -0
  20. package/lib/mcp/inProcessTransport.js +73 -0
  21. package/lib/mcp/inProcessTransport.js.map +1 -0
  22. package/lib/mcp/manualPromise.js.map +1 -0
  23. package/lib/mcp/mdb.js +199 -0
  24. package/lib/mcp/mdb.js.map +1 -0
  25. package/lib/mcp/proxyBackend.js +105 -0
  26. package/lib/mcp/proxyBackend.js.map +1 -0
  27. package/lib/mcp/server.js +124 -0
  28. package/lib/mcp/server.js.map +1 -0
  29. package/lib/mcp/tool.js +33 -0
  30. package/lib/mcp/tool.js.map +1 -0
  31. package/lib/program.js +83 -26
  32. package/lib/program.js.map +1 -1
  33. package/lib/response.js +166 -0
  34. package/lib/response.js.map +1 -0
  35. package/lib/sessionLog.js +122 -0
  36. package/lib/sessionLog.js.map +1 -0
  37. package/lib/tab.js +173 -25
  38. package/lib/tab.js.map +1 -1
  39. package/lib/tools/common.js +12 -25
  40. package/lib/tools/common.js.map +1 -1
  41. package/lib/tools/console.js +4 -15
  42. package/lib/tools/console.js.map +1 -1
  43. package/lib/tools/dialogs.js +14 -19
  44. package/lib/tools/dialogs.js.map +1 -1
  45. package/lib/tools/evaluate.js +54 -0
  46. package/lib/tools/evaluate.js.map +1 -0
  47. package/lib/tools/files.js +12 -19
  48. package/lib/tools/files.js.map +1 -1
  49. package/lib/tools/form.js +58 -0
  50. package/lib/tools/form.js.map +1 -0
  51. package/lib/tools/install.js +7 -10
  52. package/lib/tools/install.js.map +1 -1
  53. package/lib/tools/keyboard.js +49 -17
  54. package/lib/tools/keyboard.js.map +1 -1
  55. package/lib/tools/mouse.js +100 -0
  56. package/lib/tools/mouse.js.map +1 -0
  57. package/lib/tools/navigate.js +13 -52
  58. package/lib/tools/navigate.js.map +1 -1
  59. package/lib/tools/network.js +5 -15
  60. package/lib/tools/network.js.map +1 -1
  61. package/lib/tools/pdf.js +8 -17
  62. package/lib/tools/pdf.js.map +1 -1
  63. package/lib/tools/screenshot.js +36 -34
  64. package/lib/tools/screenshot.js.map +1 -1
  65. package/lib/tools/snapshot.js +103 -154
  66. package/lib/tools/snapshot.js.map +1 -1
  67. package/lib/tools/tabs.js +66 -81
  68. package/lib/tools/tabs.js.map +1 -1
  69. package/lib/tools/tool.js +15 -0
  70. package/lib/tools/tool.js.map +1 -1
  71. package/lib/tools/utils.js +7 -13
  72. package/lib/tools/utils.js.map +1 -1
  73. package/lib/tools/verify.js +138 -0
  74. package/lib/tools/verify.js.map +1 -0
  75. package/lib/tools/wait.js +11 -15
  76. package/lib/tools/wait.js.map +1 -1
  77. package/lib/tools.js +19 -23
  78. package/lib/tools.js.map +1 -1
  79. package/lib/{javascript.js → utils/codegen.js} +2 -2
  80. package/lib/utils/codegen.js.map +1 -0
  81. package/lib/{fileUtils.js → utils/fileUtils.js} +6 -2
  82. package/lib/utils/fileUtils.js.map +1 -0
  83. package/lib/utils/guid.js +23 -0
  84. package/lib/utils/guid.js.map +1 -0
  85. package/lib/utils/log.js +22 -0
  86. package/lib/utils/log.js.map +1 -0
  87. package/lib/{package.js → utils/package.js} +4 -4
  88. package/lib/utils/package.js.map +1 -0
  89. package/lib/vscode/host.js +129 -0
  90. package/lib/vscode/host.js.map +1 -0
  91. package/lib/vscode/main.js +63 -0
  92. package/lib/vscode/main.js.map +1 -0
  93. package/package.json +20 -20
  94. package/lib/browserServer.js +0 -152
  95. package/lib/browserServer.js.map +0 -1
  96. package/lib/connection.js +0 -83
  97. package/lib/connection.js.map +0 -1
  98. package/lib/fileUtils.js.map +0 -1
  99. package/lib/httpServer.js +0 -202
  100. package/lib/httpServer.js.map +0 -1
  101. package/lib/javascript.js.map +0 -1
  102. package/lib/manualPromise.js.map +0 -1
  103. package/lib/package.js.map +0 -1
  104. package/lib/pageSnapshot.js +0 -44
  105. package/lib/pageSnapshot.js.map +0 -1
  106. package/lib/server.js +0 -49
  107. package/lib/server.js.map +0 -1
  108. package/lib/tools/vision.js +0 -190
  109. package/lib/tools/vision.js.map +0 -1
  110. package/lib/transport.js.map +0 -1
  111. /package/lib/{manualPromise.js → mcp/manualPromise.js} +0 -0
package/lib/config.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/lib/context.js CHANGED
@@ -14,60 +14,46 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import debug from 'debug';
17
- import { callOnPageNoTrace, waitForCompletion } from './tools/utils.js';
18
- import { ManualPromise } from './manualPromise.js';
17
+ import { logUnhandledError } from './utils/log.js';
19
18
  import { Tab } from './tab.js';
20
19
  import { outputFile } from './config.js';
21
20
  const testDebug = debug('pw:mcp:test');
22
21
  export class Context {
23
22
  tools;
24
23
  config;
24
+ sessionLog;
25
+ options;
25
26
  _browserContextPromise;
26
27
  _browserContextFactory;
27
28
  _tabs = [];
28
29
  _currentTab;
29
- _modalStates = [];
30
- _pendingAction;
31
- _downloads = [];
32
- clientVersion;
33
- constructor(tools, config, browserContextFactory) {
34
- this.tools = tools;
35
- this.config = config;
36
- this._browserContextFactory = browserContextFactory;
30
+ _clientInfo;
31
+ static _allContexts = new Set();
32
+ _closeBrowserContextPromise;
33
+ _runningToolName;
34
+ _abortController = new AbortController();
35
+ constructor(options) {
36
+ this.tools = options.tools;
37
+ this.config = options.config;
38
+ this.sessionLog = options.sessionLog;
39
+ this.options = options;
40
+ this._browserContextFactory = options.browserContextFactory;
41
+ this._clientInfo = options.clientInfo;
37
42
  testDebug('create context');
43
+ Context._allContexts.add(this);
38
44
  }
39
- clientSupportsImages() {
40
- if (this.config.imageResponses === 'allow')
41
- return true;
42
- if (this.config.imageResponses === 'omit')
43
- return false;
44
- return !this.clientVersion?.name.includes('cursor');
45
- }
46
- modalStates() {
47
- return this._modalStates;
48
- }
49
- setModalState(modalState, inTab) {
50
- this._modalStates.push({ ...modalState, tab: inTab });
51
- }
52
- clearModalState(modalState) {
53
- this._modalStates = this._modalStates.filter(state => state !== modalState);
54
- }
55
- modalStatesMarkdown() {
56
- const result = ['### Modal state'];
57
- if (this._modalStates.length === 0)
58
- result.push('- There is no modal state present');
59
- for (const state of this._modalStates) {
60
- const tool = this.tools.find(tool => tool.clearsModalState === state.type);
61
- result.push(`- [${state.description}]: can be handled by the "${tool?.schema.name}" tool`);
62
- }
63
- return result;
45
+ static async disposeAll() {
46
+ await Promise.all([...Context._allContexts].map(context => context.dispose()));
64
47
  }
65
48
  tabs() {
66
49
  return this._tabs;
67
50
  }
51
+ currentTab() {
52
+ return this._currentTab;
53
+ }
68
54
  currentTabOrDie() {
69
55
  if (!this._currentTab)
70
- throw new Error('No current snapshot available. Capture a snapshot or navigate to a new location first.');
56
+ throw new Error('No open pages available. Use the "browser_navigate" tool to navigate to a page first.');
71
57
  return this._currentTab;
72
58
  }
73
59
  async newTab() {
@@ -77,8 +63,12 @@ export class Context {
77
63
  return this._currentTab;
78
64
  }
79
65
  async selectTab(index) {
80
- this._currentTab = this._tabs[index - 1];
81
- await this._currentTab.page.bringToFront();
66
+ const tab = this._tabs[index];
67
+ if (!tab)
68
+ throw new Error(`Tab ${index} not found`);
69
+ await tab.page.bringToFront();
70
+ this._currentTab = tab;
71
+ return tab;
82
72
  }
83
73
  async ensureTab() {
84
74
  const { browserContext } = await this._ensureBrowserContext();
@@ -86,140 +76,16 @@ export class Context {
86
76
  await browserContext.newPage();
87
77
  return this._currentTab;
88
78
  }
89
- async listTabsMarkdown() {
90
- if (!this._tabs.length)
91
- return '### No tabs open';
92
- const lines = ['### Open tabs'];
93
- for (let i = 0; i < this._tabs.length; i++) {
94
- const tab = this._tabs[i];
95
- const title = await tab.title();
96
- const url = tab.page.url();
97
- const current = tab === this._currentTab ? ' (current)' : '';
98
- lines.push(`- ${i + 1}:${current} [${title}] (${url})`);
99
- }
100
- return lines.join('\n');
101
- }
102
79
  async closeTab(index) {
103
- const tab = index === undefined ? this._currentTab : this._tabs[index - 1];
104
- await tab?.page.close();
105
- return await this.listTabsMarkdown();
106
- }
107
- async run(tool, params) {
108
- // Tab management is done outside of the action() call.
109
- const toolResult = await tool.handle(this, tool.schema.inputSchema.parse(params || {}));
110
- const { code, action, waitForNetwork, captureSnapshot, resultOverride } = toolResult;
111
- const racingAction = action ? () => this._raceAgainstModalDialogs(action) : undefined;
112
- if (resultOverride)
113
- return resultOverride;
114
- if (!this._currentTab) {
115
- return {
116
- content: [{
117
- type: 'text',
118
- text: 'No open pages available. Use the "browser_navigate" tool to navigate to a page first.',
119
- }],
120
- };
121
- }
122
- const tab = this.currentTabOrDie();
123
- // TODO: race against modal dialogs to resolve clicks.
124
- let actionResult;
125
- try {
126
- if (waitForNetwork)
127
- actionResult = await waitForCompletion(this, tab, async () => racingAction?.()) ?? undefined;
128
- else
129
- actionResult = await racingAction?.() ?? undefined;
130
- }
131
- finally {
132
- if (captureSnapshot && !this._javaScriptBlocked())
133
- await tab.captureSnapshot();
134
- }
135
- const result = [];
136
- result.push(`- Ran Playwright code:
137
- \`\`\`js
138
- ${code.join('\n')}
139
- \`\`\`
140
- `);
141
- if (this.modalStates().length) {
142
- result.push(...this.modalStatesMarkdown());
143
- return {
144
- content: [{
145
- type: 'text',
146
- text: result.join('\n'),
147
- }],
148
- };
149
- }
150
- if (this._downloads.length) {
151
- result.push('', '### Downloads');
152
- for (const entry of this._downloads) {
153
- if (entry.finished)
154
- result.push(`- Downloaded file ${entry.download.suggestedFilename()} to ${entry.outputFile}`);
155
- else
156
- result.push(`- Downloading file ${entry.download.suggestedFilename()} ...`);
157
- }
158
- result.push('');
159
- }
160
- if (this.tabs().length > 1)
161
- result.push(await this.listTabsMarkdown(), '');
162
- if (this.tabs().length > 1)
163
- result.push('### Current tab');
164
- result.push(`- Page URL: ${tab.page.url()}`, `- Page Title: ${await tab.title()}`);
165
- if (captureSnapshot && tab.hasSnapshot())
166
- result.push(tab.snapshotOrDie().text());
167
- const content = actionResult?.content ?? [];
168
- return {
169
- content: [
170
- ...content,
171
- {
172
- type: 'text',
173
- text: result.join('\n'),
174
- }
175
- ],
176
- };
80
+ const tab = index === undefined ? this._currentTab : this._tabs[index];
81
+ if (!tab)
82
+ throw new Error(`Tab ${index} not found`);
83
+ const url = tab.page.url();
84
+ await tab.page.close();
85
+ return url;
177
86
  }
178
- async waitForTimeout(time) {
179
- if (!this._currentTab || this._javaScriptBlocked()) {
180
- await new Promise(f => setTimeout(f, time));
181
- return;
182
- }
183
- await callOnPageNoTrace(this._currentTab.page, page => {
184
- return page.evaluate(() => new Promise(f => setTimeout(f, 1000)));
185
- });
186
- }
187
- async _raceAgainstModalDialogs(action) {
188
- this._pendingAction = {
189
- dialogShown: new ManualPromise(),
190
- };
191
- let result;
192
- try {
193
- await Promise.race([
194
- action().then(r => result = r),
195
- this._pendingAction.dialogShown,
196
- ]);
197
- }
198
- finally {
199
- this._pendingAction = undefined;
200
- }
201
- return result;
202
- }
203
- _javaScriptBlocked() {
204
- return this._modalStates.some(state => state.type === 'dialog');
205
- }
206
- dialogShown(tab, dialog) {
207
- this.setModalState({
208
- type: 'dialog',
209
- description: `"${dialog.type()}" dialog with message "${dialog.message()}"`,
210
- dialog,
211
- }, tab);
212
- this._pendingAction?.dialogShown.resolve();
213
- }
214
- async downloadStarted(tab, download) {
215
- const entry = {
216
- download,
217
- finished: false,
218
- outputFile: await outputFile(this.config, download.suggestedFilename())
219
- };
220
- this._downloads.push(entry);
221
- await download.saveAs(entry.outputFile);
222
- entry.finished = true;
87
+ async outputFile(name) {
88
+ return outputFile(this.config, this._clientInfo.rootPath, name);
223
89
  }
224
90
  _onPageCreated(page) {
225
91
  const tab = new Tab(this, page, tab => this._onPageClosed(tab));
@@ -228,7 +94,6 @@ ${code.join('\n')}
228
94
  this._currentTab = tab;
229
95
  }
230
96
  _onPageClosed(tab) {
231
- this._modalStates = this._modalStates.filter(state => state.tab !== tab);
232
97
  const index = this._tabs.indexOf(tab);
233
98
  if (index === -1)
234
99
  return;
@@ -236,9 +101,21 @@ ${code.join('\n')}
236
101
  if (this._currentTab === tab)
237
102
  this._currentTab = this._tabs[Math.min(index, this._tabs.length - 1)];
238
103
  if (!this._tabs.length)
239
- void this.close();
104
+ void this.closeBrowserContext();
105
+ }
106
+ async closeBrowserContext() {
107
+ if (!this._closeBrowserContextPromise)
108
+ this._closeBrowserContextPromise = this._closeBrowserContextImpl().catch(logUnhandledError);
109
+ await this._closeBrowserContextPromise;
110
+ this._closeBrowserContextPromise = undefined;
111
+ }
112
+ isRunningTool() {
113
+ return this._runningToolName !== undefined;
114
+ }
115
+ setRunningTool(name) {
116
+ this._runningToolName = name;
240
117
  }
241
- async close() {
118
+ async _closeBrowserContextImpl() {
242
119
  if (!this._browserContextPromise)
243
120
  return;
244
121
  testDebug('close context');
@@ -250,6 +127,11 @@ ${code.join('\n')}
250
127
  await close();
251
128
  });
252
129
  }
130
+ async dispose() {
131
+ this._abortController.abort('MCP context disposed');
132
+ await this.closeBrowserContext();
133
+ Context._allContexts.delete(this);
134
+ }
253
135
  async _setupRequestInterception(context) {
254
136
  if (this.config.network?.allowedOrigins?.length) {
255
137
  await context.route('**', route => route.abort('blockedbyclient'));
@@ -271,10 +153,14 @@ ${code.join('\n')}
271
153
  return this._browserContextPromise;
272
154
  }
273
155
  async _setupBrowserContext() {
156
+ if (this._closeBrowserContextPromise)
157
+ throw new Error('Another browser context is being closed.');
274
158
  // TODO: move to the browser context factory to make it based on isolation mode.
275
- const result = await this._browserContextFactory.createContext();
159
+ const result = await this._browserContextFactory.createContext(this._clientInfo, this._abortController.signal, this._runningToolName);
276
160
  const { browserContext } = result;
277
161
  await this._setupRequestInterception(browserContext);
162
+ if (this.sessionLog)
163
+ await InputRecorder.create(this, browserContext);
278
164
  for (const page of browserContext.pages())
279
165
  this._onPageCreated(page);
280
166
  browserContext.on('page', page => this._onPageCreated(page));
@@ -289,4 +175,53 @@ ${code.join('\n')}
289
175
  return result;
290
176
  }
291
177
  }
178
+ export class InputRecorder {
179
+ _context;
180
+ _browserContext;
181
+ constructor(context, browserContext) {
182
+ this._context = context;
183
+ this._browserContext = browserContext;
184
+ }
185
+ static async create(context, browserContext) {
186
+ const recorder = new InputRecorder(context, browserContext);
187
+ await recorder._initialize();
188
+ return recorder;
189
+ }
190
+ async _initialize() {
191
+ const sessionLog = this._context.sessionLog;
192
+ await this._browserContext._enableRecorder({
193
+ mode: 'recording',
194
+ recorderMode: 'api',
195
+ }, {
196
+ actionAdded: (page, data, code) => {
197
+ if (this._context.isRunningTool())
198
+ return;
199
+ const tab = Tab.forPage(page);
200
+ if (tab)
201
+ sessionLog.logUserAction(data.action, tab, code, false);
202
+ },
203
+ actionUpdated: (page, data, code) => {
204
+ if (this._context.isRunningTool())
205
+ return;
206
+ const tab = Tab.forPage(page);
207
+ if (tab)
208
+ sessionLog.logUserAction(data.action, tab, code, true);
209
+ },
210
+ signalAdded: (page, data) => {
211
+ if (this._context.isRunningTool())
212
+ return;
213
+ if (data.signal.name !== 'navigation')
214
+ return;
215
+ const tab = Tab.forPage(page);
216
+ const navigateAction = {
217
+ name: 'navigate',
218
+ url: data.signal.url,
219
+ signals: [],
220
+ };
221
+ if (tab)
222
+ sessionLog.logUserAction(navigateAction, tab, `await page.goto('${data.signal.url}');`, false);
223
+ },
224
+ });
225
+ }
226
+ }
292
227
  //# sourceMappingURL=context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}