mcp-accessibility-scanner 3.0.1 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +265 -12
- package/index.d.ts +1 -1
- package/lib/browserContextFactory.js +1161 -94
- package/lib/browserContextFactory.js.map +1 -1
- package/lib/browserServerBackend.js +199 -22
- package/lib/browserServerBackend.js.map +1 -1
- package/lib/browserSessions.js +172 -0
- package/lib/browserSessions.js.map +1 -0
- package/lib/config.js +48 -7
- package/lib/config.js.map +1 -1
- package/lib/context.js +321 -71
- package/lib/context.js.map +1 -1
- package/lib/extension/cdpRelay.js +5 -0
- package/lib/extension/cdpRelay.js.map +1 -1
- package/lib/extension/extensionContextFactory.js +12 -1
- package/lib/extension/extensionContextFactory.js.map +1 -1
- package/lib/index.js +5 -1
- package/lib/index.js.map +1 -1
- package/lib/mcp/http.js +194 -44
- package/lib/mcp/http.js.map +1 -1
- package/lib/mcp/inProcessTransport.js.map +1 -1
- package/lib/mcp/mdb.js +7 -9
- package/lib/mcp/mdb.js.map +1 -1
- package/lib/mcp/proxyBackend.js +76 -18
- package/lib/mcp/proxyBackend.js.map +1 -1
- package/lib/mcp/server.js +70 -41
- package/lib/mcp/server.js.map +1 -1
- package/lib/mcp/sharedClientSlot.js +134 -0
- package/lib/mcp/sharedClientSlot.js.map +1 -0
- package/lib/mcp/tool.js +3 -0
- package/lib/mcp/tool.js.map +1 -1
- package/lib/networkPolicy.js +73 -0
- package/lib/networkPolicy.js.map +1 -0
- package/lib/program.js +91 -12
- package/lib/program.js.map +1 -1
- package/lib/response.js +16 -3
- package/lib/response.js.map +1 -1
- package/lib/sessionLog.js +36 -6
- package/lib/sessionLog.js.map +1 -1
- package/lib/tab.js +149 -18
- package/lib/tab.js.map +1 -1
- package/lib/tools/auditKeyboard.js +204 -4
- package/lib/tools/auditKeyboard.js.map +1 -1
- package/lib/tools/auditScreenReader.js +823 -0
- package/lib/tools/auditScreenReader.js.map +1 -0
- package/lib/tools/auditSite.js +268 -90
- package/lib/tools/auditSite.js.map +1 -1
- package/lib/tools/axe.js +479 -21
- package/lib/tools/axe.js.map +1 -1
- package/lib/tools/dialogs.js +18 -4
- package/lib/tools/dialogs.js.map +1 -1
- package/lib/tools/evaluate.js +34 -5
- package/lib/tools/evaluate.js.map +1 -1
- package/lib/tools/network.js +136 -8
- package/lib/tools/network.js.map +1 -1
- package/lib/tools/pdf.js +5 -2
- package/lib/tools/pdf.js.map +1 -1
- package/lib/tools/scanPageMatrix.js +135 -47
- package/lib/tools/scanPageMatrix.js.map +1 -1
- package/lib/tools/screenshot.js +8 -4
- package/lib/tools/screenshot.js.map +1 -1
- package/lib/tools/session.js +53 -0
- package/lib/tools/session.js.map +1 -0
- package/lib/tools/snapshot.js +266 -8
- package/lib/tools/snapshot.js.map +1 -1
- package/lib/tools/tool.js.map +1 -1
- package/lib/tools/utils.js +62 -6
- package/lib/tools/utils.js.map +1 -1
- package/lib/tools.js +11 -2
- package/lib/tools.js.map +1 -1
- package/lib/utils/dataUrl.js +58 -35
- package/lib/utils/dataUrl.js.map +1 -1
- package/lib/utils/fileUtils.js +35 -0
- package/lib/utils/fileUtils.js.map +1 -1
- package/lib/utils/guid.js +8 -0
- package/lib/utils/guid.js.map +1 -1
- package/lib/utils/jsSource.js +187 -0
- package/lib/utils/jsSource.js.map +1 -0
- package/lib/vscode/browserContextFactory.js +87 -0
- package/lib/vscode/browserContextFactory.js.map +1 -0
- package/lib/vscode/host.js +189 -33
- package/lib/vscode/host.js.map +1 -1
- package/lib/vscode/main.js +3 -35
- package/lib/vscode/main.js.map +1 -1
- package/package.json +13 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browserContextFactory.js","sourceRoot":"","sources":["../src/browserContextFactory.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"browserContextFactory.js","sourceRoot":"","sources":["../src/browserContextFactory.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,9 +13,9 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
import { fileURLToPath } from 'node:url';
|
|
17
16
|
import { z } from 'zod';
|
|
18
|
-
import {
|
|
17
|
+
import { ProtocolError, ProtocolErrorCode } from '@modelcontextprotocol/server';
|
|
18
|
+
import { BrowserSessionRegistry } from './browserSessions.js';
|
|
19
19
|
import { Context } from './context.js';
|
|
20
20
|
import { logUnhandledError } from './utils/log.js';
|
|
21
21
|
import { Response } from './response.js';
|
|
@@ -24,38 +24,135 @@ import { filteredTools } from './tools.js';
|
|
|
24
24
|
import { toMcpTool } from './mcp/tool.js';
|
|
25
25
|
export class BrowserServerBackend {
|
|
26
26
|
_tools;
|
|
27
|
+
_toolsByName;
|
|
28
|
+
// Converting the zod schemas to JSON schema costs a few milliseconds for the
|
|
29
|
+
// whole set and never changes, so it is done once per server.
|
|
30
|
+
_mcpTools;
|
|
27
31
|
_context;
|
|
32
|
+
_sessionRegistry;
|
|
28
33
|
_sessionLog;
|
|
29
34
|
_config;
|
|
30
35
|
_browserContextFactory;
|
|
31
|
-
|
|
36
|
+
_sharedSessionRegistry;
|
|
37
|
+
_ephemeralDefaultContext;
|
|
38
|
+
constructor(config, factory, sharedSessionRegistry, options) {
|
|
32
39
|
this._config = config;
|
|
33
40
|
this._browserContextFactory = factory;
|
|
41
|
+
this._sharedSessionRegistry = sharedSessionRegistry;
|
|
42
|
+
this._ephemeralDefaultContext = options?.ephemeralDefaultContext ?? false;
|
|
34
43
|
this._tools = filteredTools(config);
|
|
44
|
+
this._toolsByName = new Map(this._tools.map(tool => [tool.schema.name, tool]));
|
|
35
45
|
}
|
|
36
|
-
async initialize(_context, clientVersion
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
46
|
+
async initialize(_context, clientVersion) {
|
|
47
|
+
// A registry shared across the backends of one server factory (stateless
|
|
48
|
+
// HTTP creates a fresh backend per request, and a handle minted in one
|
|
49
|
+
// request must resolve in the next) outlives this backend; an owned one
|
|
50
|
+
// is disposed with it in serverClosed().
|
|
51
|
+
const registry = this._sharedSessionRegistry ?? new BrowserSessionRegistry();
|
|
52
|
+
this._sessionRegistry = registry;
|
|
53
|
+
// Registry contexts are flagged as explicit sessions so the factory can
|
|
54
|
+
// give each its own browser context (e.g. a disposable persistent
|
|
55
|
+
// profile); the default context keeps today's behavior. Factories that
|
|
56
|
+
// cannot separate contexts veto browser_session_open via their reason.
|
|
57
|
+
// The context constructor is handed to the registry per open() call —
|
|
58
|
+
// through this backend's own broker slice — never bound registry-wide: a
|
|
59
|
+
// shared registry serves several live backends at once, and a global
|
|
60
|
+
// rebind would mint sessions with whichever backend initialized last,
|
|
61
|
+
// leaking that client's identity (clientInfo, SessionLog) into sessions
|
|
62
|
+
// other clients open.
|
|
63
|
+
const createContext = (browserSession, browserSessionId) => new Context({
|
|
45
64
|
tools: this._tools,
|
|
46
65
|
config: this._config,
|
|
47
66
|
browserContextFactory: this._browserContextFactory,
|
|
48
|
-
sessionLog: this.
|
|
49
|
-
clientInfo: { ...clientVersion
|
|
67
|
+
sessionLog: () => this._ensureSessionLog(),
|
|
68
|
+
clientInfo: { ...clientVersion },
|
|
69
|
+
browserSessions: {
|
|
70
|
+
open: async () => {
|
|
71
|
+
// The unsupported-mode veto comes before everything else: it is
|
|
72
|
+
// registry.open()'s own first check, but by then the session-log
|
|
73
|
+
// await below would already have run — in modes that reject
|
|
74
|
+
// sessions outright (extension, VS Code, non-isolated CDP, pinned
|
|
75
|
+
// cdp-launch port, --user-data-dir) every doomed attempt minted
|
|
76
|
+
// and announced an empty session-* directory the rejection never
|
|
77
|
+
// even landed in.
|
|
78
|
+
BrowserSessionRegistry.checkSessionsSupported(this._browserContextFactory.sessionsUnsupportedReason);
|
|
79
|
+
// Resolved BEFORE the handle is minted: the session log is this
|
|
80
|
+
// backend's one fallible piece of open() setup (an uncreatable
|
|
81
|
+
// --output-dir rejects SessionLog.create()), and it used to be
|
|
82
|
+
// awaited only after the tool had already registered the Context —
|
|
83
|
+
// the error result carried no handle to close, so every retry
|
|
84
|
+
// accumulated another live session until TTL reaping. Failing
|
|
85
|
+
// first leaves nothing half-registered, and callTool() would have
|
|
86
|
+
// created this same backend-wide log right after the call anyway.
|
|
87
|
+
await this._ensureSessionLog();
|
|
88
|
+
return registry.open(id => createContext(true, id), this._browserContextFactory.sessionsUnsupportedReason);
|
|
89
|
+
},
|
|
90
|
+
close: id => registry.close(id),
|
|
91
|
+
},
|
|
92
|
+
browserSession,
|
|
93
|
+
browserSessionId,
|
|
50
94
|
});
|
|
95
|
+
this._context = createContext(this._ephemeralDefaultContext || undefined);
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Creates the `--save-session` log on first demand, once per backend.
|
|
99
|
+
* Eager creation at initialize() littered the output directory over
|
|
100
|
+
* stateless HTTP, where every request builds a fresh backend: a tools/list
|
|
101
|
+
* or a call routed to an existing browser session minted (and announced)
|
|
102
|
+
* an empty session-* folder per request. The default context and every
|
|
103
|
+
* session this backend opens share this one lazy log — via the supplier
|
|
104
|
+
* handed to createContext above — so recorder entries and tool responses
|
|
105
|
+
* land in the same folder regardless of which context launches first.
|
|
106
|
+
*/
|
|
107
|
+
_ensureSessionLog() {
|
|
108
|
+
if (!this._sessionLog) {
|
|
109
|
+
const creation = this._config.saveSession ? SessionLog.create(this._config) : Promise.resolve(undefined);
|
|
110
|
+
// Memoize success only: a rejected create (e.g. the output volume
|
|
111
|
+
// briefly unavailable) must not be replayed to every later default-
|
|
112
|
+
// context call and browser_session_open for the backend's lifetime —
|
|
113
|
+
// clear the memo so the next call retries. Guarded by identity, like
|
|
114
|
+
// ensureInitialized in mcp/server.ts: a retry may already have stored a
|
|
115
|
+
// fresh in-flight promise by the time this failure handler runs, and
|
|
116
|
+
// that one must not be clobbered. Everyone who awaited the failed
|
|
117
|
+
// attempt still sees its rejection.
|
|
118
|
+
creation.catch(() => {
|
|
119
|
+
if (this._sessionLog === creation)
|
|
120
|
+
this._sessionLog = undefined;
|
|
121
|
+
});
|
|
122
|
+
this._sessionLog = creation;
|
|
123
|
+
}
|
|
124
|
+
return this._sessionLog;
|
|
51
125
|
}
|
|
52
126
|
async listTools() {
|
|
53
|
-
|
|
127
|
+
this._mcpTools ??= this._tools.map(tool => {
|
|
128
|
+
const mcpTool = toMcpTool(tool.schema);
|
|
129
|
+
// Advertise the session-routing parameter resolved in callTool(). It is
|
|
130
|
+
// added to the wire schema only: the tools' own zod schemas (all
|
|
131
|
+
// non-strict objects) simply strip it during parsing, so tool
|
|
132
|
+
// implementations never see it. The session tools themselves are
|
|
133
|
+
// excluded — they operate *on* sessions, not *in* them.
|
|
134
|
+
if (tool.schema.name !== 'browser_session_open' && tool.schema.name !== 'browser_session_close') {
|
|
135
|
+
const inputSchema = mcpTool.inputSchema;
|
|
136
|
+
inputSchema.properties = {
|
|
137
|
+
...inputSchema.properties,
|
|
138
|
+
browserSessionId: {
|
|
139
|
+
type: 'string',
|
|
140
|
+
description: 'Browser session to run this tool in, as returned by browser_session_open. Omit to use the default session.',
|
|
141
|
+
},
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
return mcpTool;
|
|
145
|
+
});
|
|
146
|
+
return this._mcpTools;
|
|
54
147
|
}
|
|
55
148
|
async callTool(name, rawArguments, requestContext) {
|
|
56
|
-
const tool = this.
|
|
149
|
+
const tool = this._toolsByName.get(name);
|
|
57
150
|
if (!tool)
|
|
58
|
-
throw new
|
|
151
|
+
throw new ProtocolError(ProtocolErrorCode.InvalidParams, `Tool "${name}" not found`);
|
|
152
|
+
// Resolved before the schema parse so an unknown handle surfaces as a
|
|
153
|
+
// clear execution error, like other input validation failures below.
|
|
154
|
+
const routedSessionId = this._routedSessionId(name, rawArguments);
|
|
155
|
+
const context = routedSessionId !== undefined ? this._sessionRegistry.resolve(routedSessionId) : this._context;
|
|
59
156
|
let parsedArguments;
|
|
60
157
|
try {
|
|
61
158
|
parsedArguments = tool.schema.inputSchema.parse(rawArguments || {});
|
|
@@ -67,23 +164,103 @@ export class BrowserServerBackend {
|
|
|
67
164
|
throw new Error(`Invalid input for tool "${name}":\n${z.prettifyError(error)}`);
|
|
68
165
|
throw error;
|
|
69
166
|
}
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
167
|
+
// The wire-only browserSessionId never survives the parse above (the
|
|
168
|
+
// tools' non-strict zod schemas strip it), which is right for the tool
|
|
169
|
+
// handler — but Response.toolArgs feeds the --save-session log, and
|
|
170
|
+
// without the handle, calls into different sessions would log identical
|
|
171
|
+
// sessionless args with interleaved snapshots. Re-attach it to the logged
|
|
172
|
+
// view; handlers keep receiving parsedArguments untouched.
|
|
173
|
+
const responseArguments = routedSessionId !== undefined ? { browserSessionId: routedSessionId, ...parsedArguments } : parsedArguments;
|
|
174
|
+
// browser_session_close is deliberately unrouted (see _routedSessionId),
|
|
175
|
+
// so over stateless HTTP it runs on a fresh per-request backend while the
|
|
176
|
+
// session it closes was opened by another. The close entry belongs in the
|
|
177
|
+
// OPENER's --save-session log — the session's Context carries that
|
|
178
|
+
// backend's log supplier — and the Context must be captured before the
|
|
179
|
+
// tool disposes it out of the registry. Awaiting this backend's own lazy
|
|
180
|
+
// log instead minted a second empty session-* directory per stateless
|
|
181
|
+
// close. An unknown handle stays the tool's own error to report.
|
|
182
|
+
let closingSessionContext;
|
|
183
|
+
if (name === 'browser_session_close' && typeof parsedArguments.browserSessionId === 'string') {
|
|
184
|
+
try {
|
|
185
|
+
closingSessionContext = this._sessionRegistry.resolve(parsedArguments.browserSessionId);
|
|
186
|
+
}
|
|
187
|
+
catch {
|
|
188
|
+
// Unknown handle: the tool itself reports it.
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
const response = new Response(context, name, responseArguments, requestContext);
|
|
192
|
+
// Per-call token, not a single slot: two overlapping calls on one session
|
|
193
|
+
// must keep isRunningTool() true until BOTH finish, or the TTL reaper (and
|
|
194
|
+
// browser_session_close) could dispose the browser under the slower call.
|
|
195
|
+
const endToolCall = context.beginToolCall(name);
|
|
73
196
|
try {
|
|
74
197
|
await tool.handle(context, parsedArguments, response);
|
|
75
198
|
await response.finish();
|
|
76
|
-
|
|
199
|
+
if (name === 'browser_session_close') {
|
|
200
|
+
// The close has already completed and the handle is gone, so a log
|
|
201
|
+
// failure must not turn the result into an isError — the caller's
|
|
202
|
+
// retry would only meet "Unknown browserSessionId". Logged via debug
|
|
203
|
+
// instead of surfacing.
|
|
204
|
+
try {
|
|
205
|
+
const sessionLog = await closingSessionContext?.resolveSessionLog();
|
|
206
|
+
sessionLog?.logResponse(response);
|
|
207
|
+
}
|
|
208
|
+
catch (error) {
|
|
209
|
+
logUnhandledError(error);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
else {
|
|
213
|
+
// A routed call belongs to the session's own log — resolved through
|
|
214
|
+
// the supplier captured from the backend that opened it, which over
|
|
215
|
+
// stateless HTTP is not this one. Resolving (not just reading the
|
|
216
|
+
// cached field) matters when the routed call is the session's first
|
|
217
|
+
// and needs no browser: the field is only populated at browser
|
|
218
|
+
// launch, so a browser_default_timeout opening move would otherwise
|
|
219
|
+
// never be logged. A default-context call is a real use of THIS
|
|
220
|
+
// backend, so it may create the backend's log on first demand.
|
|
221
|
+
const sessionLog = routedSessionId !== undefined ? await context.resolveSessionLog() : await this._ensureSessionLog();
|
|
222
|
+
sessionLog?.logResponse(response);
|
|
223
|
+
}
|
|
77
224
|
}
|
|
78
225
|
catch (error) {
|
|
79
226
|
response.addError(String(error));
|
|
80
227
|
}
|
|
81
228
|
finally {
|
|
82
|
-
|
|
229
|
+
endToolCall();
|
|
230
|
+
// Refresh after completion too: a long run must not leave the session
|
|
231
|
+
// one reaper tick from expiry.
|
|
232
|
+
if (routedSessionId !== undefined)
|
|
233
|
+
this._sessionRegistry?.touch(routedSessionId);
|
|
83
234
|
}
|
|
84
235
|
return response.serialize();
|
|
85
236
|
}
|
|
237
|
+
/**
|
|
238
|
+
* The optional `browserSessionId` argument selects which registry Context a
|
|
239
|
+
* tool runs in; without it (or before any session exists) the default
|
|
240
|
+
* Context preserves the pre-#167 behavior exactly. The session tools are
|
|
241
|
+
* exempt: `browser_session_close` takes `browserSessionId` as its own
|
|
242
|
+
* argument naming the session to close — running it *inside* that session
|
|
243
|
+
* would dispose the context out from under the running tool — and both
|
|
244
|
+
* always execute on the default Context.
|
|
245
|
+
*/
|
|
246
|
+
_routedSessionId(name, rawArguments) {
|
|
247
|
+
if (name === 'browser_session_open' || name === 'browser_session_close')
|
|
248
|
+
return undefined;
|
|
249
|
+
const id = rawArguments?.browserSessionId;
|
|
250
|
+
if (id === undefined)
|
|
251
|
+
return undefined;
|
|
252
|
+
if (typeof id !== 'string')
|
|
253
|
+
throw new Error('Invalid browserSessionId: expected a string handle returned by browser_session_open.');
|
|
254
|
+
return id;
|
|
255
|
+
}
|
|
86
256
|
serverClosed() {
|
|
257
|
+
// A shared registry outlives any one backend — over stateless HTTP the
|
|
258
|
+
// per-request server closes after every response, and disposing the
|
|
259
|
+
// registry with it would kill the very sessions the handles exist for.
|
|
260
|
+
// Its sessions are reaped by their idle TTL, closed explicitly, or
|
|
261
|
+
// disposed at process exit; only an owned registry is disposed here.
|
|
262
|
+
if (this._sessionRegistry && this._sessionRegistry !== this._sharedSessionRegistry)
|
|
263
|
+
void this._sessionRegistry.disposeAll().catch(logUnhandledError);
|
|
87
264
|
void this._context?.dispose().catch(logUnhandledError);
|
|
88
265
|
}
|
|
89
266
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browserServerBackend.js","sourceRoot":"","sources":["../src/browserServerBackend.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"browserServerBackend.js","sourceRoot":"","sources":["../src/browserServerBackend.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,172 @@
|
|
|
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 crypto from 'node:crypto';
|
|
17
|
+
import { logUnhandledError } from './utils/log.js';
|
|
18
|
+
const defaultSessionTtlMs = 30 * 60 * 1000;
|
|
19
|
+
/**
|
|
20
|
+
* Inactivity TTL for explicitly opened browser sessions. Overridable via
|
|
21
|
+
* `PLAYWRIGHT_MCP_BROWSER_SESSION_TTL_MS`; a present-but-blank or unparsable
|
|
22
|
+
* value keeps the default rather than becoming 0, and a zero or negative
|
|
23
|
+
* value disables reaping entirely.
|
|
24
|
+
*/
|
|
25
|
+
export function browserSessionTtlMs() {
|
|
26
|
+
const value = process.env.PLAYWRIGHT_MCP_BROWSER_SESSION_TTL_MS;
|
|
27
|
+
if (value === undefined)
|
|
28
|
+
return defaultSessionTtlMs;
|
|
29
|
+
const trimmed = value.trim();
|
|
30
|
+
if (!trimmed)
|
|
31
|
+
return defaultSessionTtlMs;
|
|
32
|
+
const parsed = Number(trimmed);
|
|
33
|
+
if (!Number.isFinite(parsed))
|
|
34
|
+
return defaultSessionTtlMs;
|
|
35
|
+
return parsed;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Maps server-minted opaque handles (`bs_<uuid>`) to Contexts, per the MCP
|
|
39
|
+
* 2026-07-28 prescription for stateful servers: state is named by an explicit
|
|
40
|
+
* handle the model passes back as an ordinary tool argument, instead of being
|
|
41
|
+
* hidden in the connection. The default (no-handle) Context stays outside
|
|
42
|
+
* this registry so existing clients see today's behavior unchanged.
|
|
43
|
+
*
|
|
44
|
+
* Entries expire after `ttlMs` of inactivity so an abandoned handle cannot
|
|
45
|
+
* leak a browser process. The TTL is refreshed on every use and held while a
|
|
46
|
+
* tool is running (a long `audit_site` crawl must not be reaped mid-run); the
|
|
47
|
+
* reaper timer is unref'ed so it never keeps the process alive. Refs #167.
|
|
48
|
+
*/
|
|
49
|
+
export class BrowserSessionRegistry {
|
|
50
|
+
_sessions = new Map();
|
|
51
|
+
_ttlMs;
|
|
52
|
+
_reaper;
|
|
53
|
+
constructor(ttlMs = browserSessionTtlMs()) {
|
|
54
|
+
this._ttlMs = ttlMs;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Mints a handle for a Context built by `createContext` — supplied per call,
|
|
58
|
+
* never stored: a registry shared across backend instances (stateful HTTP
|
|
59
|
+
* sessions, and the stateless HTTP path's fresh backend per request) serves
|
|
60
|
+
* several live backends at once, and a registry-wide rebindable constructor
|
|
61
|
+
* would mint every new session with the LAST initializer's identity — its
|
|
62
|
+
* clientInfo (CDP User-Agent) and SessionLog (recorder entries in the wrong
|
|
63
|
+
* session folder) — regardless of which client asked.
|
|
64
|
+
*
|
|
65
|
+
* The minted handle is handed to `createContext` so the Context knows the
|
|
66
|
+
* identity it serves: the `--save-session` log is shared backend-wide, and
|
|
67
|
+
* recorded user actions are tagged with the handle the way routed tool
|
|
68
|
+
* calls already tag their logged args.
|
|
69
|
+
*/
|
|
70
|
+
open(createContext, sessionsUnsupportedReason) {
|
|
71
|
+
BrowserSessionRegistry.checkSessionsSupported(sessionsUnsupportedReason);
|
|
72
|
+
const id = `bs_${crypto.randomUUID()}`;
|
|
73
|
+
this._sessions.set(id, { context: createContext(id), lastUsedAt: Date.now() });
|
|
74
|
+
this._ensureReaper();
|
|
75
|
+
return id;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Throws the veto for modes whose factory hands every Context the same live
|
|
79
|
+
* browser context (non-isolated CDP attach, extension, VS Code, custom
|
|
80
|
+
* getters): a handle there would claim a separation that does not exist —
|
|
81
|
+
* two "sessions" sharing tabs, cookies and storage. open() enforces this
|
|
82
|
+
* itself; it is exposed so a caller with fallible pre-open side effects
|
|
83
|
+
* (the backend resolves the --save-session log before minting a handle)
|
|
84
|
+
* can fail first, without minting an empty session-* directory per
|
|
85
|
+
* doomed attempt.
|
|
86
|
+
*/
|
|
87
|
+
static checkSessionsSupported(sessionsUnsupportedReason) {
|
|
88
|
+
if (sessionsUnsupportedReason)
|
|
89
|
+
throw new Error(`Cannot open a separate browser session: ${sessionsUnsupportedReason}`);
|
|
90
|
+
}
|
|
91
|
+
/** Returns the session's Context and refreshes its TTL. */
|
|
92
|
+
resolve(id) {
|
|
93
|
+
const entry = this._sessions.get(id);
|
|
94
|
+
if (!entry)
|
|
95
|
+
throw new Error(this._unknownSessionMessage(id));
|
|
96
|
+
entry.lastUsedAt = Date.now();
|
|
97
|
+
return entry.context;
|
|
98
|
+
}
|
|
99
|
+
/** Refreshes the TTL if the session still exists (e.g. after a tool run). */
|
|
100
|
+
touch(id) {
|
|
101
|
+
const entry = this._sessions.get(id);
|
|
102
|
+
if (entry)
|
|
103
|
+
entry.lastUsedAt = Date.now();
|
|
104
|
+
}
|
|
105
|
+
async close(id) {
|
|
106
|
+
const entry = this._sessions.get(id);
|
|
107
|
+
if (!entry)
|
|
108
|
+
throw new Error(this._unknownSessionMessage(id));
|
|
109
|
+
// Disposing under a running call would yank the browser out from under it
|
|
110
|
+
// (browser_session_close itself executes on the default Context, so it
|
|
111
|
+
// never counts as the session's own running tool).
|
|
112
|
+
if (entry.context.isRunningTool())
|
|
113
|
+
throw new Error(`Browser session "${id}" still has a tool call running. Wait for it to finish, then retry browser_session_close.`);
|
|
114
|
+
this._sessions.delete(id);
|
|
115
|
+
this._stopReaperIfIdle();
|
|
116
|
+
await entry.context.dispose();
|
|
117
|
+
}
|
|
118
|
+
async disposeAll() {
|
|
119
|
+
const contexts = [...this._sessions.values()].map(entry => entry.context);
|
|
120
|
+
this._sessions.clear();
|
|
121
|
+
this._stopReaperIfIdle();
|
|
122
|
+
await Promise.all(contexts.map(context => context.dispose().catch(logUnhandledError)));
|
|
123
|
+
}
|
|
124
|
+
// Deliberately does NOT enumerate the open sessions: handles are bearer
|
|
125
|
+
// tokens, and listing them would hand any caller with a mistyped handle the
|
|
126
|
+
// keys to every other session's browser.
|
|
127
|
+
_unknownSessionMessage(id) {
|
|
128
|
+
return `Unknown browserSessionId "${id}": the session may have expired or been closed. Use browser_session_open to open a session, or omit browserSessionId to use the default session.`;
|
|
129
|
+
}
|
|
130
|
+
_ensureReaper() {
|
|
131
|
+
if (this._reaper || this._ttlMs <= 0 || !this._sessions.size)
|
|
132
|
+
return;
|
|
133
|
+
const interval = Math.min(this._ttlMs, 60_000);
|
|
134
|
+
this._reaper = setInterval(() => this._reap(), interval);
|
|
135
|
+
// The reaper must never keep the process alive on its own.
|
|
136
|
+
this._reaper.unref?.();
|
|
137
|
+
}
|
|
138
|
+
_stopReaperIfIdle() {
|
|
139
|
+
if (!this._sessions.size && this._reaper) {
|
|
140
|
+
clearInterval(this._reaper);
|
|
141
|
+
this._reaper = undefined;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
_reap() {
|
|
145
|
+
const now = Date.now();
|
|
146
|
+
for (const [id, entry] of this._sessions) {
|
|
147
|
+
// A running tool holds the session's TTL: refresh instead of expiring,
|
|
148
|
+
// so a long crawl that never re-touches the registry survives.
|
|
149
|
+
if (entry.context.isRunningTool()) {
|
|
150
|
+
entry.lastUsedAt = now;
|
|
151
|
+
continue;
|
|
152
|
+
}
|
|
153
|
+
const idleFor = now - entry.lastUsedAt;
|
|
154
|
+
if (idleFor < this._ttlMs)
|
|
155
|
+
continue;
|
|
156
|
+
// An in-flight download save holds expiry too — downloads outlive the
|
|
157
|
+
// tool call that started them, and reaping would abort the save. But
|
|
158
|
+
// the hold is bounded at one extra TTL period (proportionate to the
|
|
159
|
+
// operator's configured idle tolerance): a stalled saveAs() on an
|
|
160
|
+
// abandoned handle must not pin the browser forever. Because the tool
|
|
161
|
+
// call that starts a download refreshes lastUsedAt as it finishes,
|
|
162
|
+
// every download gets at least a full TTL of downloads-only grace,
|
|
163
|
+
// and disposal itself still waits (bounded) for the save.
|
|
164
|
+
if (entry.context.hasPendingDownloads() && idleFor < this._ttlMs * 2)
|
|
165
|
+
continue;
|
|
166
|
+
this._sessions.delete(id);
|
|
167
|
+
void entry.context.dispose().catch(logUnhandledError);
|
|
168
|
+
}
|
|
169
|
+
this._stopReaperIfIdle();
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
//# sourceMappingURL=browserSessions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browserSessions.js","sourceRoot":"","sources":["../src/browserSessions.ts"],"names":[],"mappings":"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"}
|