@webmcp-bridge/local-mcp 0.5.0 → 0.5.2

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.
@@ -0,0 +1,584 @@
1
+ /**
2
+ * This module owns auth-policy normalization, managed profile metadata, and non-Playwright browser bootstrap helpers.
3
+ * It depends on adapter manifest types and Node process/filesystem APIs so local-mcp can orchestrate auth-sensitive sessions without introducing a daemon.
4
+ */
5
+ import { access, mkdir, readFile, rename, rm, stat, writeFile } from "node:fs/promises";
6
+ import { spawn } from "node:child_process";
7
+ import { dirname, join } from "node:path";
8
+ import { createServer } from "node:net";
9
+ const SESSION_METADATA_VERSION = 2;
10
+ const SESSION_METADATA_PATH = ".webmcp-bridge/session.json";
11
+ const CDP_READY_TIMEOUT_MS = 10_000;
12
+ const CDP_READY_POLL_INTERVAL_MS = 250;
13
+ const PROCESS_EXIT_TIMEOUT_MS = 5_000;
14
+ const PROCESS_EXIT_POLL_INTERVAL_MS = 100;
15
+ function timestamp() {
16
+ return new Date().toISOString();
17
+ }
18
+ async function pathExists(path) {
19
+ try {
20
+ await access(path);
21
+ return true;
22
+ }
23
+ catch {
24
+ return false;
25
+ }
26
+ }
27
+ function getSessionMetadataPath(userDataDir) {
28
+ return join(userDataDir, SESSION_METADATA_PATH);
29
+ }
30
+ function isRecord(value) {
31
+ return typeof value === "object" && value !== null && !Array.isArray(value);
32
+ }
33
+ function isBridgeAuthState(value) {
34
+ return (value === "unknown" ||
35
+ value === "authenticated" ||
36
+ value === "auth_required" ||
37
+ value === "challenge_required");
38
+ }
39
+ function isBridgeSessionState(value) {
40
+ return (value === "profile_missing" ||
41
+ value === "profile_present_unverified" ||
42
+ value === "bootstrap_active" ||
43
+ value === "auth_required" ||
44
+ value === "challenge_required" ||
45
+ value === "authenticated" ||
46
+ value === "runtime_active");
47
+ }
48
+ function isBridgeControlMode(value) {
49
+ return value === "none" || value === "bootstrap" || value === "launch" || value === "attach";
50
+ }
51
+ function isBridgeSessionOwnership(value) {
52
+ return value === "none" || value === "managed" || value === "external";
53
+ }
54
+ function isBridgePresentationMode(value) {
55
+ return value === "headed" || value === "headless";
56
+ }
57
+ function toPresentationMode(headless) {
58
+ return headless ? "headless" : "headed";
59
+ }
60
+ function normalizeMetadata(value, fallback) {
61
+ const base = {
62
+ version: SESSION_METADATA_VERSION,
63
+ site: fallback.site,
64
+ profilePath: fallback.profilePath,
65
+ targetUrl: fallback.targetUrl,
66
+ authPolicyMode: fallback.authPolicy.mode,
67
+ ...(fallback.authPolicy.authProbeTool !== undefined ? { authProbeTool: fallback.authPolicy.authProbeTool } : {}),
68
+ allowAnonymousTools: fallback.authPolicy.allowAnonymousTools,
69
+ presentationMode: "headed",
70
+ preferredPresentationMode: "headed",
71
+ sessionState: fallback.profileExists ? "profile_present_unverified" : "profile_missing",
72
+ authState: "unknown",
73
+ controlMode: "none",
74
+ ownership: "none",
75
+ updatedAt: timestamp(),
76
+ };
77
+ if (!isRecord(value)) {
78
+ return base;
79
+ }
80
+ const metadata = { ...base };
81
+ if (typeof value.site === "string" && value.site.trim()) {
82
+ metadata.site = value.site;
83
+ }
84
+ if (typeof value.profilePath === "string" && value.profilePath.trim()) {
85
+ metadata.profilePath = value.profilePath;
86
+ }
87
+ if (typeof value.targetUrl === "string" && value.targetUrl.trim()) {
88
+ metadata.targetUrl = value.targetUrl;
89
+ }
90
+ if (value.authPolicyMode === "none" || value.authPolicyMode === "bootstrap_then_attach") {
91
+ metadata.authPolicyMode = value.authPolicyMode;
92
+ }
93
+ if (typeof value.authProbeTool === "string" && value.authProbeTool.trim()) {
94
+ metadata.authProbeTool = value.authProbeTool;
95
+ }
96
+ if (typeof value.allowAnonymousTools === "boolean") {
97
+ metadata.allowAnonymousTools = value.allowAnonymousTools;
98
+ }
99
+ if (isBridgePresentationMode(value.presentationMode)) {
100
+ metadata.presentationMode = value.presentationMode;
101
+ }
102
+ else if (typeof value.headless === "boolean") {
103
+ metadata.presentationMode = toPresentationMode(value.headless);
104
+ }
105
+ if (isBridgePresentationMode(value.preferredPresentationMode)) {
106
+ metadata.preferredPresentationMode = value.preferredPresentationMode;
107
+ }
108
+ else if (typeof value.headless === "boolean") {
109
+ metadata.preferredPresentationMode = toPresentationMode(value.headless);
110
+ }
111
+ if (isBridgeSessionState(value.sessionState)) {
112
+ metadata.sessionState = value.sessionState;
113
+ }
114
+ if (isBridgeAuthState(value.authState)) {
115
+ metadata.authState = value.authState;
116
+ }
117
+ if (isBridgeControlMode(value.controlMode)) {
118
+ metadata.controlMode = value.controlMode;
119
+ }
120
+ if (isBridgeSessionOwnership(value.ownership)) {
121
+ metadata.ownership = value.ownership;
122
+ }
123
+ if (typeof value.browserUrl === "string" && value.browserUrl.trim()) {
124
+ metadata.browserUrl = value.browserUrl;
125
+ }
126
+ if (typeof value.browserPid === "number" && Number.isInteger(value.browserPid) && value.browserPid > 0) {
127
+ metadata.browserPid = value.browserPid;
128
+ }
129
+ if (typeof value.lastBackupPath === "string" && value.lastBackupPath.trim()) {
130
+ metadata.lastBackupPath = value.lastBackupPath;
131
+ }
132
+ if (typeof value.updatedAt === "string" && value.updatedAt.trim()) {
133
+ metadata.updatedAt = value.updatedAt;
134
+ }
135
+ if (metadata.controlMode === "bootstrap") {
136
+ metadata.presentationMode = "headed";
137
+ }
138
+ return metadata;
139
+ }
140
+ export function resolveAuthPolicy(manifest) {
141
+ const declared = manifest.authPolicy;
142
+ if (declared) {
143
+ return {
144
+ mode: declared.mode,
145
+ ...(declared.authProbeTool !== undefined ? { authProbeTool: declared.authProbeTool } : {}),
146
+ allowAnonymousTools: declared.allowAnonymousTools ?? false,
147
+ };
148
+ }
149
+ const mode = manifest.deferBridgeUntilAuthenticated === true ? "bootstrap_then_attach" : "none";
150
+ return {
151
+ mode,
152
+ ...(manifest.authProbeTool !== undefined ? { authProbeTool: manifest.authProbeTool } : {}),
153
+ allowAnonymousTools: manifest.deferBridgeUntilAuthenticated === true,
154
+ };
155
+ }
156
+ export async function ensureManagedProfile(userDataDir) {
157
+ await mkdir(userDataDir, { recursive: true });
158
+ }
159
+ export async function readSessionMetadata(userDataDir, fallback) {
160
+ const profileExists = await pathExists(userDataDir);
161
+ const metadataPath = getSessionMetadataPath(userDataDir);
162
+ if (!(await pathExists(metadataPath))) {
163
+ return normalizeMetadata(undefined, {
164
+ site: fallback.site,
165
+ profilePath: userDataDir,
166
+ targetUrl: fallback.targetUrl,
167
+ authPolicy: fallback.authPolicy,
168
+ profileExists,
169
+ });
170
+ }
171
+ try {
172
+ const parsed = JSON.parse(await readFile(metadataPath, "utf8"));
173
+ return normalizeMetadata(parsed, {
174
+ site: fallback.site,
175
+ profilePath: userDataDir,
176
+ targetUrl: fallback.targetUrl,
177
+ authPolicy: fallback.authPolicy,
178
+ profileExists,
179
+ });
180
+ }
181
+ catch {
182
+ return normalizeMetadata(undefined, {
183
+ site: fallback.site,
184
+ profilePath: userDataDir,
185
+ targetUrl: fallback.targetUrl,
186
+ authPolicy: fallback.authPolicy,
187
+ profileExists,
188
+ });
189
+ }
190
+ }
191
+ export async function writeSessionMetadata(userDataDir, metadata) {
192
+ const metadataPath = getSessionMetadataPath(userDataDir);
193
+ await mkdir(dirname(metadataPath), { recursive: true });
194
+ await writeFile(metadataPath, `${JSON.stringify({ ...metadata, version: SESSION_METADATA_VERSION }, null, 2)}\n`, "utf8");
195
+ }
196
+ export async function updateSessionMetadata(userDataDir, fallback, patch) {
197
+ const current = await readSessionMetadata(userDataDir, fallback);
198
+ const normalizedPatch = { ...patch };
199
+ if (normalizedPatch.browserUrl === null) {
200
+ delete normalizedPatch.browserUrl;
201
+ }
202
+ if (normalizedPatch.browserPid === null) {
203
+ delete normalizedPatch.browserPid;
204
+ }
205
+ if (normalizedPatch.lastBackupPath === null) {
206
+ delete normalizedPatch.lastBackupPath;
207
+ }
208
+ const next = {
209
+ ...current,
210
+ ...normalizedPatch,
211
+ updatedAt: timestamp(),
212
+ };
213
+ if ("browserUrl" in patch && patch.browserUrl === null) {
214
+ delete next.browserUrl;
215
+ }
216
+ if ("browserPid" in patch && patch.browserPid === null) {
217
+ delete next.browserPid;
218
+ }
219
+ if ("lastBackupPath" in patch && patch.lastBackupPath === null) {
220
+ delete next.lastBackupPath;
221
+ }
222
+ await writeSessionMetadata(userDataDir, next);
223
+ return next;
224
+ }
225
+ export async function backupAndResetProfile(userDataDir, fallback) {
226
+ let backupPath;
227
+ if (await pathExists(userDataDir)) {
228
+ const profileStat = await stat(userDataDir).catch(() => undefined);
229
+ if (profileStat?.isDirectory()) {
230
+ backupPath = `${userDataDir}-backup-${timestamp().replace(/[:.]/g, "-")}`;
231
+ await rename(userDataDir, backupPath);
232
+ }
233
+ else {
234
+ await rm(userDataDir, { force: true, recursive: true });
235
+ }
236
+ }
237
+ await mkdir(userDataDir, { recursive: true });
238
+ const resetPatch = {
239
+ sessionState: "profile_missing",
240
+ authState: "unknown",
241
+ controlMode: "none",
242
+ ownership: "none",
243
+ browserUrl: null,
244
+ browserPid: null,
245
+ };
246
+ if (backupPath !== undefined) {
247
+ resetPatch.lastBackupPath = backupPath;
248
+ }
249
+ const metadata = await updateSessionMetadata(userDataDir, fallback, resetPatch);
250
+ return { metadata, ...(backupPath !== undefined ? { backupPath } : {}) };
251
+ }
252
+ function getChromiumCandidates(channel) {
253
+ if (process.env.WEBMCP_CHROMIUM_EXECUTABLE) {
254
+ return [process.env.WEBMCP_CHROMIUM_EXECUTABLE];
255
+ }
256
+ const normalizedChannel = channel ?? "chrome";
257
+ if (process.platform === "darwin") {
258
+ const appNames = {
259
+ chrome: "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome",
260
+ "chrome-beta": "/Applications/Google Chrome Beta.app/Contents/MacOS/Google Chrome Beta",
261
+ "chrome-dev": "/Applications/Google Chrome Dev.app/Contents/MacOS/Google Chrome Dev",
262
+ "chrome-canary": "/Applications/Google Chrome Canary.app/Contents/MacOS/Google Chrome Canary",
263
+ msedge: "/Applications/Microsoft Edge.app/Contents/MacOS/Microsoft Edge",
264
+ "msedge-beta": "/Applications/Microsoft Edge Beta.app/Contents/MacOS/Microsoft Edge Beta",
265
+ "msedge-dev": "/Applications/Microsoft Edge Dev.app/Contents/MacOS/Microsoft Edge Dev",
266
+ "msedge-canary": "/Applications/Microsoft Edge Canary.app/Contents/MacOS/Microsoft Edge Canary",
267
+ };
268
+ const fallback = [appNames.chrome, "/Applications/Chromium.app/Contents/MacOS/Chromium"];
269
+ return [appNames[normalizedChannel], ...fallback].filter(Boolean);
270
+ }
271
+ if (process.platform === "win32") {
272
+ const localAppData = process.env.LOCALAPPDATA ?? "";
273
+ const programFiles = process.env.PROGRAMFILES ?? "C:\\Program Files";
274
+ const programFilesX86 = process.env["PROGRAMFILES(X86)"] ?? "C:\\Program Files (x86)";
275
+ const candidates = {
276
+ chrome: [
277
+ `${programFiles}\\Google\\Chrome\\Application\\chrome.exe`,
278
+ `${programFilesX86}\\Google\\Chrome\\Application\\chrome.exe`,
279
+ `${localAppData}\\Google\\Chrome\\Application\\chrome.exe`,
280
+ ],
281
+ "chrome-beta": [
282
+ `${programFiles}\\Google\\Chrome Beta\\Application\\chrome.exe`,
283
+ `${programFilesX86}\\Google\\Chrome Beta\\Application\\chrome.exe`,
284
+ `${localAppData}\\Google\\Chrome Beta\\Application\\chrome.exe`,
285
+ ],
286
+ "chrome-dev": [`${localAppData}\\Google\\Chrome Dev\\Application\\chrome.exe`],
287
+ "chrome-canary": [`${localAppData}\\Google\\Chrome SxS\\Application\\chrome.exe`],
288
+ msedge: [
289
+ `${programFiles}\\Microsoft\\Edge\\Application\\msedge.exe`,
290
+ `${programFilesX86}\\Microsoft\\Edge\\Application\\msedge.exe`,
291
+ ],
292
+ "msedge-beta": [
293
+ `${programFiles}\\Microsoft\\Edge Beta\\Application\\msedge.exe`,
294
+ `${programFilesX86}\\Microsoft\\Edge Beta\\Application\\msedge.exe`,
295
+ ],
296
+ "msedge-dev": [
297
+ `${programFiles}\\Microsoft\\Edge Dev\\Application\\msedge.exe`,
298
+ `${programFilesX86}\\Microsoft\\Edge Dev\\Application\\msedge.exe`,
299
+ ],
300
+ "msedge-canary": [`${localAppData}\\Microsoft\\Edge SxS\\Application\\msedge.exe`],
301
+ };
302
+ return candidates[normalizedChannel];
303
+ }
304
+ const commands = {
305
+ chrome: ["google-chrome", "google-chrome-stable", "chromium-browser", "chromium"],
306
+ "chrome-beta": ["google-chrome-beta"],
307
+ "chrome-dev": ["google-chrome-unstable"],
308
+ "chrome-canary": ["google-chrome-canary"],
309
+ msedge: ["microsoft-edge", "microsoft-edge-stable"],
310
+ "msedge-beta": ["microsoft-edge-beta"],
311
+ "msedge-dev": ["microsoft-edge-dev"],
312
+ "msedge-canary": ["microsoft-edge-canary"],
313
+ };
314
+ return commands[normalizedChannel];
315
+ }
316
+ async function resolveChromiumExecutable(channel) {
317
+ const candidates = getChromiumCandidates(channel);
318
+ for (const candidate of candidates) {
319
+ if (!candidate) {
320
+ continue;
321
+ }
322
+ if (candidate.includes("/") || candidate.includes("\\") || candidate.endsWith(".exe")) {
323
+ if (await pathExists(candidate)) {
324
+ return candidate;
325
+ }
326
+ continue;
327
+ }
328
+ return candidate;
329
+ }
330
+ throw new Error("BROWSER_NOT_FOUND: unable to locate a Chromium browser for bootstrap/attach. Set WEBMCP_CHROMIUM_EXECUTABLE or install a supported browser channel.");
331
+ }
332
+ function getChromiumAppName(channel) {
333
+ const normalizedChannel = channel ?? "chrome";
334
+ if (process.platform !== "darwin") {
335
+ return undefined;
336
+ }
337
+ const appNames = {
338
+ chrome: "Google Chrome",
339
+ "chrome-beta": "Google Chrome Beta",
340
+ "chrome-dev": "Google Chrome Dev",
341
+ "chrome-canary": "Google Chrome Canary",
342
+ msedge: "Microsoft Edge",
343
+ "msedge-beta": "Microsoft Edge Beta",
344
+ "msedge-dev": "Microsoft Edge Dev",
345
+ "msedge-canary": "Microsoft Edge Canary",
346
+ };
347
+ return appNames[normalizedChannel];
348
+ }
349
+ function buildBootstrapArgs(options) {
350
+ return [
351
+ `--user-data-dir=${options.userDataDir}`,
352
+ "--disable-extensions",
353
+ "--no-first-run",
354
+ "--no-default-browser-check",
355
+ "--new-window",
356
+ options.targetUrl,
357
+ ];
358
+ }
359
+ async function reservePort() {
360
+ return await new Promise((resolve, reject) => {
361
+ const server = createServer();
362
+ server.once("error", reject);
363
+ server.listen(0, "127.0.0.1", () => {
364
+ const address = server.address();
365
+ if (!address || typeof address === "string") {
366
+ server.close(() => {
367
+ reject(new Error("PORT_RESERVATION_FAILED: unable to allocate a debugging port"));
368
+ });
369
+ return;
370
+ }
371
+ const { port } = address;
372
+ server.close((error) => {
373
+ if (error) {
374
+ reject(error);
375
+ return;
376
+ }
377
+ resolve(port);
378
+ });
379
+ });
380
+ });
381
+ }
382
+ async function waitForCdp(browserUrl, timeoutMs = CDP_READY_TIMEOUT_MS) {
383
+ const deadline = Date.now() + timeoutMs;
384
+ while (Date.now() < deadline) {
385
+ try {
386
+ const response = await fetch(`${browserUrl}/json/version`);
387
+ if (response.ok) {
388
+ return;
389
+ }
390
+ }
391
+ catch {
392
+ // Retry until timeout while the browser starts.
393
+ }
394
+ await new Promise((resolve) => setTimeout(resolve, CDP_READY_POLL_INTERVAL_MS));
395
+ }
396
+ throw new Error(`BROWSER_ATTACH_TIMEOUT: timed out waiting for remote debugging at ${browserUrl}`);
397
+ }
398
+ async function listBrowserProcesses() {
399
+ if (process.platform === "win32") {
400
+ return [];
401
+ }
402
+ return await new Promise((resolve) => {
403
+ let stdout = "";
404
+ const child = spawn("ps", ["-ax", "-o", "pid=,command="], {
405
+ stdio: ["ignore", "pipe", "ignore"],
406
+ });
407
+ child.stdout?.setEncoding("utf8");
408
+ child.stdout?.on("data", (chunk) => {
409
+ stdout += chunk;
410
+ });
411
+ child.once("error", () => resolve([]));
412
+ child.once("close", () => {
413
+ const entries = stdout
414
+ .split("\n")
415
+ .map((line) => line.trim())
416
+ .filter(Boolean)
417
+ .map((line) => {
418
+ const match = line.match(/^(\d+)\s+(.*)$/);
419
+ if (!match) {
420
+ return undefined;
421
+ }
422
+ return {
423
+ pid: Number.parseInt(match[1] ?? "", 10),
424
+ command: match[2] ?? "",
425
+ };
426
+ })
427
+ .filter((entry) => entry !== undefined && Number.isInteger(entry.pid));
428
+ resolve(entries);
429
+ });
430
+ });
431
+ }
432
+ function isRootBrowserProcessForProfile(command, userDataDir) {
433
+ return command.includes(`--user-data-dir=${userDataDir}`) && !command.includes("--type=");
434
+ }
435
+ function spawnDetachedBrowser(executable, args) {
436
+ const child = spawn(executable, args, {
437
+ detached: true,
438
+ stdio: "ignore",
439
+ });
440
+ child.unref();
441
+ return child.pid ?? undefined;
442
+ }
443
+ async function waitForProcessExitInternal(pid, timeoutMs) {
444
+ const deadline = Date.now() + timeoutMs;
445
+ while (Date.now() < deadline) {
446
+ if (!(await isProcessRunning(pid))) {
447
+ return true;
448
+ }
449
+ await new Promise((resolve) => setTimeout(resolve, PROCESS_EXIT_POLL_INTERVAL_MS));
450
+ }
451
+ return !(await isProcessRunning(pid));
452
+ }
453
+ async function waitForBrowserProcessForProfile(userDataDir, timeoutMs) {
454
+ const deadline = Date.now() + timeoutMs;
455
+ while (Date.now() < deadline) {
456
+ const entries = await listBrowserProcesses();
457
+ const match = entries
458
+ .filter((entry) => isRootBrowserProcessForProfile(entry.command, userDataDir))
459
+ .sort((left, right) => right.pid - left.pid)[0];
460
+ if (match) {
461
+ return match.pid;
462
+ }
463
+ await new Promise((resolve) => setTimeout(resolve, CDP_READY_POLL_INTERVAL_MS));
464
+ }
465
+ return undefined;
466
+ }
467
+ export async function launchBootstrapBrowser(options) {
468
+ const executable = await resolveChromiumExecutable(options.browserChannel);
469
+ const pid = spawnDetachedBrowser(executable, buildBootstrapArgs(options));
470
+ const trackedPid = (await waitForBrowserProcessForProfile(options.userDataDir, CDP_READY_TIMEOUT_MS)) ?? pid;
471
+ return { ...(trackedPid !== undefined ? { pid: trackedPid } : {}) };
472
+ }
473
+ export async function launchManagedAttachBrowser(options) {
474
+ const executable = await resolveChromiumExecutable(options.browserChannel);
475
+ const port = await reservePort();
476
+ const browserUrl = `http://127.0.0.1:${port}`;
477
+ const pid = spawnDetachedBrowser(executable, [
478
+ `--user-data-dir=${options.userDataDir}`,
479
+ "--disable-extensions",
480
+ "--no-first-run",
481
+ "--no-default-browser-check",
482
+ `--remote-debugging-port=${port}`,
483
+ ...(options.presentationMode === "headless" ? ["--headless=new"] : []),
484
+ "--new-window",
485
+ options.targetUrl,
486
+ ]);
487
+ await waitForCdp(browserUrl);
488
+ const trackedPid = (await waitForBrowserProcessForProfile(options.userDataDir, CDP_READY_TIMEOUT_MS)) ?? pid;
489
+ return {
490
+ browserUrl,
491
+ ...(trackedPid !== undefined ? { pid: trackedPid } : {}),
492
+ };
493
+ }
494
+ export async function isProcessRunning(pid) {
495
+ if (!pid) {
496
+ return false;
497
+ }
498
+ try {
499
+ process.kill(pid, 0);
500
+ return true;
501
+ }
502
+ catch {
503
+ return false;
504
+ }
505
+ }
506
+ export async function stopBrowserProcess(pid) {
507
+ if (!(await isProcessRunning(pid))) {
508
+ return;
509
+ }
510
+ if (process.platform === "win32") {
511
+ await new Promise((resolve) => {
512
+ const child = spawn("taskkill", ["/PID", String(pid), "/T", "/F"], {
513
+ stdio: "ignore",
514
+ });
515
+ child.once("exit", () => resolve());
516
+ child.once("error", () => resolve());
517
+ });
518
+ return;
519
+ }
520
+ try {
521
+ process.kill(-pid, "SIGTERM");
522
+ }
523
+ catch {
524
+ try {
525
+ process.kill(pid, "SIGTERM");
526
+ }
527
+ catch {
528
+ // Ignore missing/stale processes during cleanup.
529
+ }
530
+ }
531
+ }
532
+ export async function waitForProcessExit(pid, timeoutMs = PROCESS_EXIT_TIMEOUT_MS) {
533
+ if (!pid) {
534
+ return true;
535
+ }
536
+ return await waitForProcessExitInternal(pid, timeoutMs);
537
+ }
538
+ export async function focusBrowserWindow(browserChannel) {
539
+ const appName = getChromiumAppName(browserChannel);
540
+ if (!appName) {
541
+ return false;
542
+ }
543
+ return await new Promise((resolve) => {
544
+ const child = spawn("open", ["-a", appName], {
545
+ stdio: "ignore",
546
+ });
547
+ child.once("exit", (code) => resolve(code === 0));
548
+ child.once("error", () => resolve(false));
549
+ });
550
+ }
551
+ export async function findBrowserProcessForProfile(userDataDir) {
552
+ const entries = await listBrowserProcesses();
553
+ return entries
554
+ .filter((entry) => isRootBrowserProcessForProfile(entry.command, userDataDir))
555
+ .sort((left, right) => right.pid - left.pid)[0]?.pid;
556
+ }
557
+ export async function stopManagedBrowser(metadata) {
558
+ if (metadata.ownership !== "managed" || !(await isProcessRunning(metadata.browserPid))) {
559
+ return;
560
+ }
561
+ await stopBrowserProcess(metadata.browserPid);
562
+ }
563
+ export function assertAuthSensitiveBrowserSupport(browser, userDataDir) {
564
+ const browserEngine = browser ?? "chromium";
565
+ if (browserEngine !== "chromium") {
566
+ throw new Error(`CONFIG_ERROR: auth-sensitive bootstrap/attach sessions require --browser chromium (received ${browserEngine})`);
567
+ }
568
+ if (!userDataDir) {
569
+ throw new Error("CONFIG_ERROR: auth-sensitive bootstrap/attach sessions require --user-data-dir");
570
+ }
571
+ }
572
+ export function describeSessionStateFromAuth(authState) {
573
+ if (authState === "authenticated") {
574
+ return "authenticated";
575
+ }
576
+ if (authState === "challenge_required") {
577
+ return "challenge_required";
578
+ }
579
+ if (authState === "auth_required") {
580
+ return "auth_required";
581
+ }
582
+ return "profile_present_unverified";
583
+ }
584
+ //# sourceMappingURL=session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
package/dist/sites.d.ts CHANGED
@@ -3,7 +3,7 @@
3
3
  * It depends on adapter packages and adapter contracts so runtime startup can resolve one fallback adapter source per process.
4
4
  */
5
5
  import type { AdapterManifest, SiteAdapter } from "@webmcp-bridge/playwright";
6
- export type BuiltinSite = "x" | "fixture";
6
+ export type BuiltinSite = "x" | "google" | "fixture";
7
7
  export type SiteDefinition = {
8
8
  id: string;
9
9
  source: "builtin" | "external" | "native";
@@ -1 +1 @@
1
- {"version":3,"file":"sites.d.ts","sourceRoot":"","sources":["../src/sites.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAYH,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EAEZ,MAAM,2BAA2B,CAAC;AAEnC,MAAM,MAAM,WAAW,GAAG,GAAG,GAAG,SAAS,CAAC;AAE1C,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAC;IAC1C,QAAQ,EAAE,eAAe,CAAC;IAC1B,qBAAqB,CAAC,EAAE,MAAM,WAAW,CAAC;IAC1C,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAuIF,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAKlE;AAED,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAwCtE;AAED,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,cAAc,CAAC,CAiBlG"}
1
+ {"version":3,"file":"sites.d.ts","sourceRoot":"","sources":["../src/sites.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAgBH,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EAEZ,MAAM,2BAA2B,CAAC;AAEnC,MAAM,MAAM,WAAW,GAAG,GAAG,GAAG,QAAQ,GAAG,SAAS,CAAC;AAErD,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAC;IAC1C,QAAQ,EAAE,eAAe,CAAC;IAC1B,qBAAqB,CAAC,EAAE,MAAM,WAAW,CAAC;IAC1C,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAuMF,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAKlE;AAED,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAwCtE;AAED,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,cAAc,CAAC,CAiBlG"}