@webmcp-bridge/local-mcp 0.4.3 → 0.5.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.
package/dist/runtime.js CHANGED
@@ -7,13 +7,79 @@ import { tmpdir } from "node:os";
7
7
  import { join } from "node:path";
8
8
  import { createWebMcpPageGateway, } from "@webmcp-bridge/playwright";
9
9
  import { chromium, firefox, webkit, } from "playwright";
10
+ import { resolveAuthPolicy } from "./session.js";
10
11
  const NAVIGATION_TIMEOUT_MS = 5_000;
12
+ const LAUNCH_RETRY_DELAY_MS = 750;
13
+ const MAX_LAUNCH_ATTEMPTS = 2;
11
14
  const GATEWAY_RECOVERABLE_ERROR_SNIPPETS = [
12
15
  "Execution context was destroyed",
13
16
  "Cannot find context with specified id",
14
17
  "Target page, context or browser has been closed",
15
18
  "WebMCP bridge invoke handler missing",
16
19
  ];
20
+ const LAUNCH_RETRY_ERROR_SNIPPETS = [
21
+ "Target page, context or browser has been closed",
22
+ "Opening in existing browser session.",
23
+ "ProcessSingleton",
24
+ ];
25
+ function isChromiumAutomationWorkaroundEnabled(enabledOverride) {
26
+ if (enabledOverride !== undefined) {
27
+ return enabledOverride;
28
+ }
29
+ const value = process.env.WEBMCP_CHROMIUM_LOGIN_WORKAROUND;
30
+ return value === "1" || value === "true";
31
+ }
32
+ function createChromiumLaunchOptions(presentationMode, browserChannel, chromiumLoginWorkaround) {
33
+ const launchOptions = {
34
+ headless: presentationMode === "headless",
35
+ viewport: null,
36
+ };
37
+ if (isChromiumAutomationWorkaroundEnabled(chromiumLoginWorkaround)) {
38
+ // Experimental: remove the most obvious automation marker for login surfaces.
39
+ launchOptions.ignoreDefaultArgs = ["--enable-automation"];
40
+ }
41
+ if (browserChannel) {
42
+ launchOptions.channel = browserChannel;
43
+ launchOptions.chromiumSandbox = true;
44
+ }
45
+ return launchOptions;
46
+ }
47
+ function sleep(ms) {
48
+ return new Promise((resolve) => {
49
+ setTimeout(resolve, ms);
50
+ });
51
+ }
52
+ function isRetryableLaunchError(error) {
53
+ const message = error instanceof Error ? error.message : String(error ?? "");
54
+ return LAUNCH_RETRY_ERROR_SNIPPETS.some((snippet) => message.includes(snippet));
55
+ }
56
+ async function launchPersistentContextWithRetry(browserType, userDataDir, launchOptions) {
57
+ let lastError;
58
+ for (let attempt = 1; attempt <= MAX_LAUNCH_ATTEMPTS; attempt += 1) {
59
+ try {
60
+ return await browserType.launchPersistentContext(userDataDir, launchOptions);
61
+ }
62
+ catch (error) {
63
+ lastError = error;
64
+ if (attempt >= MAX_LAUNCH_ATTEMPTS || !isRetryableLaunchError(error)) {
65
+ throw error;
66
+ }
67
+ await sleep(LAUNCH_RETRY_DELAY_MS);
68
+ }
69
+ }
70
+ throw lastError;
71
+ }
72
+ async function connectToExternalBrowserContext(browserUrl) {
73
+ const browser = await chromium.connectOverCDP(browserUrl);
74
+ const context = browser.contexts()[0];
75
+ if (context) {
76
+ return { browser, context };
77
+ }
78
+ await browser.close().catch(() => {
79
+ // Cleanup should be best-effort when attach validation fails.
80
+ });
81
+ throw new Error("SESSION_NOT_AVAILABLE: no persistent browser context found at --browser-url. Open the target Chromium profile with remote debugging enabled before starting local-mcp.");
82
+ }
17
83
  function normalizeHost(value) {
18
84
  return value.trim().toLowerCase();
19
85
  }
@@ -64,8 +130,85 @@ export function resolveRecoveryNavigationUrl(currentUrl, targetUrl, hostPatterns
64
130
  }
65
131
  return isUrlAllowed(currentUrl, hostPatterns) ? undefined : targetUrl;
66
132
  }
67
- export function shouldEndOwnerSessionAfterPageClose(headless, openPageCount) {
68
- return !headless && openPageCount === 0;
133
+ function readAuthState(value) {
134
+ if (typeof value !== "object" || value === null || Array.isArray(value)) {
135
+ return undefined;
136
+ }
137
+ const state = value.state;
138
+ if (state === "authenticated" || state === "auth_required" || state === "challenge_required") {
139
+ return state;
140
+ }
141
+ return undefined;
142
+ }
143
+ export function shouldDeferBridgeForAuthState(state) {
144
+ return state === "auth_required" || state === "challenge_required";
145
+ }
146
+ export function shouldEndOwnerSessionAfterPageClose(presentationMode, openPageCount) {
147
+ return presentationMode === "headed" && openPageCount === 0;
148
+ }
149
+ export function selectPreferredPage(pages, targetUrl, hostPatterns) {
150
+ const openPages = pages.filter((entry) => !entry.isClosed());
151
+ if (openPages.length === 0) {
152
+ return undefined;
153
+ }
154
+ const exactTargetPage = openPages.find((entry) => entry.url() === targetUrl);
155
+ if (exactTargetPage) {
156
+ return exactTargetPage;
157
+ }
158
+ let targetHost = "";
159
+ try {
160
+ targetHost = new URL(targetUrl).hostname;
161
+ }
162
+ catch {
163
+ // Ignore target URL parsing failures here; caller already validates targetUrl separately.
164
+ }
165
+ if (targetHost) {
166
+ const exactHostPage = openPages.find((entry) => {
167
+ try {
168
+ return new URL(entry.url()).hostname === targetHost;
169
+ }
170
+ catch {
171
+ return false;
172
+ }
173
+ });
174
+ if (exactHostPage) {
175
+ return exactHostPage;
176
+ }
177
+ }
178
+ const allowedHostPage = openPages.find((entry) => isUrlAllowed(entry.url(), hostPatterns));
179
+ if (allowedHostPage) {
180
+ return allowedHostPage;
181
+ }
182
+ return openPages[0];
183
+ }
184
+ export async function detectExternalPresentationMode(context, page, fallbackMode) {
185
+ const chromiumContext = context;
186
+ if (typeof chromiumContext.newCDPSession !== "function") {
187
+ return fallbackMode;
188
+ }
189
+ const session = await chromiumContext.newCDPSession(page);
190
+ try {
191
+ await session.send("Browser.getWindowForTarget");
192
+ return "headed";
193
+ }
194
+ catch {
195
+ try {
196
+ const version = (await session.send("Browser.getVersion"));
197
+ const markers = [version.product, version.userAgent].filter((value) => typeof value === "string");
198
+ if (markers.some((value) => value.includes("HeadlessChrome"))) {
199
+ return "headless";
200
+ }
201
+ }
202
+ catch {
203
+ // Fall back to the requested presentation mode when browser-level detection is unavailable.
204
+ }
205
+ return fallbackMode;
206
+ }
207
+ finally {
208
+ await session.detach?.().catch(() => {
209
+ // Best-effort cleanup for capability probing.
210
+ });
211
+ }
69
212
  }
70
213
  function resolveBrowserType(browser) {
71
214
  if (browser === "firefox") {
@@ -115,29 +258,47 @@ export async function startLocalMcpRuntime(options) {
115
258
  const site = options.siteDefinition;
116
259
  const browserEngine = options.browser ?? "chromium";
117
260
  const browserChannel = options.browserChannel;
118
- const headless = options.headless ?? false;
261
+ const browserUrl = options.browserUrl;
262
+ const preferredPresentationMode = options.preferredPresentationMode ?? "headed";
119
263
  if (browserChannel && browserEngine !== "chromium") {
120
264
  throw new Error(`CONFIG_ERROR: --browser-channel requires --browser chromium (received ${browserEngine})`);
121
265
  }
266
+ if (browserUrl && browserEngine !== "chromium") {
267
+ throw new Error(`CONFIG_ERROR: --browser-url requires --browser chromium (received ${browserEngine})`);
268
+ }
269
+ if (browserUrl && browserChannel) {
270
+ throw new Error("CONFIG_ERROR: --browser-url cannot be combined with --browser-channel");
271
+ }
272
+ if (options.chromiumLoginWorkaround && browserEngine !== "chromium") {
273
+ throw new Error(`CONFIG_ERROR: --chromium-login-workaround requires --browser chromium (received ${browserEngine})`);
274
+ }
275
+ if (browserUrl && options.chromiumLoginWorkaround) {
276
+ throw new Error("CONFIG_ERROR: --browser-url cannot be combined with --chromium-login-workaround");
277
+ }
122
278
  const browserType = resolveBrowserType(browserEngine);
123
279
  const targetUrl = resolveTargetUrl(options.url, site.manifest.defaultUrl);
280
+ const controlMode = browserUrl ? "attach" : "launch";
124
281
  if (!isUrlAllowed(targetUrl, site.manifest.hostPatterns)) {
125
282
  throw new Error("URL_NOT_ALLOWED: target url host is not allowed by adapter hostPatterns");
126
283
  }
127
284
  let profileDirFromTemp = false;
128
- const userDataDir = options.userDataDir ?? (await mkdtemp(join(tmpdir(), "webmcp-local-mcp-")));
129
- if (!options.userDataDir) {
285
+ const userDataDir = browserUrl ? undefined : (options.userDataDir ?? (await mkdtemp(join(tmpdir(), "webmcp-local-mcp-"))));
286
+ if (!browserUrl && !options.userDataDir) {
130
287
  profileDirFromTemp = true;
131
288
  }
289
+ let browser;
132
290
  let context;
133
291
  let currentPage;
134
292
  let currentGatewaySession;
135
293
  let currentMode = "native";
294
+ let currentPresentationMode = preferredPresentationMode;
136
295
  let gatewayStale = false;
137
296
  let runtimeClosing = false;
138
297
  let pageLifecycleCleanup;
298
+ let pageGatewayResourceCleanup;
139
299
  let ownerSessionEndedResolved = false;
140
300
  let resolveOwnerSessionEnded;
301
+ const resourceUpdatedListeners = new Set();
141
302
  const ownerSessionEnded = new Promise((resolve) => {
142
303
  resolveOwnerSessionEnded = resolve;
143
304
  });
@@ -152,10 +313,23 @@ export async function startLocalMcpRuntime(options) {
152
313
  await currentGatewaySession?.close().catch(() => {
153
314
  // Cleanup should be best-effort when process is terminating.
154
315
  });
316
+ if (deferredAdapterStarted && deferredAdapter && currentPage && !currentPage.isClosed()) {
317
+ await deferredAdapter.stop?.({ page: currentPage }).catch(() => {
318
+ // Cleanup should be best-effort when process is terminating.
319
+ });
320
+ }
321
+ pageGatewayResourceCleanup?.();
155
322
  pageLifecycleCleanup?.();
156
- await context?.close().catch(() => {
157
- // Cleanup should be best-effort when process is terminating.
158
- });
323
+ if (browser) {
324
+ await browser.close().catch(() => {
325
+ // Cleanup should be best-effort when process is terminating.
326
+ });
327
+ }
328
+ else {
329
+ await context?.close().catch(() => {
330
+ // Cleanup should be best-effort when process is terminating.
331
+ });
332
+ }
159
333
  if (profileDirFromTemp) {
160
334
  await rm(userDataDir, { recursive: true, force: true }).catch(() => {
161
335
  // Cleanup should be best-effort when process is terminating.
@@ -169,6 +343,56 @@ export async function startLocalMcpRuntime(options) {
169
343
  if (fallbackAdapterFactory) {
170
344
  gatewayOptions.fallbackAdapter = fallbackAdapterFactory();
171
345
  }
346
+ const authPolicy = resolveAuthPolicy(site.manifest);
347
+ const authProbeTool = authPolicy.authProbeTool;
348
+ const deferBridgeUntilAuthenticated = authPolicy.mode === "bootstrap_then_attach" &&
349
+ authPolicy.allowAnonymousTools &&
350
+ typeof authProbeTool === "string" &&
351
+ authProbeTool.length > 0 &&
352
+ typeof fallbackAdapterFactory === "function";
353
+ let deferredAdapter;
354
+ let deferredAdapterStarted = false;
355
+ const ensureDeferredAdapterStarted = async (page) => {
356
+ if (!deferBridgeUntilAuthenticated) {
357
+ return undefined;
358
+ }
359
+ if (!deferredAdapter && fallbackAdapterFactory) {
360
+ deferredAdapter = fallbackAdapterFactory();
361
+ }
362
+ if (!deferredAdapter) {
363
+ return undefined;
364
+ }
365
+ if (!deferredAdapterStarted) {
366
+ await deferredAdapter.start?.({ page });
367
+ deferredAdapterStarted = true;
368
+ }
369
+ return deferredAdapter;
370
+ };
371
+ const callDeferredAdapterTool = async (page, name, input) => {
372
+ const adapter = await ensureDeferredAdapterStarted(page);
373
+ if (!adapter) {
374
+ throw new Error("SESSION_NOT_AVAILABLE: fallback adapter is unavailable");
375
+ }
376
+ return await adapter.callTool({ name, input }, { page });
377
+ };
378
+ const listDeferredAdapterTools = async (page) => {
379
+ const adapter = await ensureDeferredAdapterStarted(page);
380
+ if (!adapter) {
381
+ return [];
382
+ }
383
+ const tools = await adapter.listTools({ page });
384
+ return tools.map((tool) => ({
385
+ ...tool,
386
+ inputSchema: tool.inputSchema ?? { type: "object" },
387
+ }));
388
+ };
389
+ const shouldDeferGatewayCreation = async (page) => {
390
+ if (!deferBridgeUntilAuthenticated || !authProbeTool) {
391
+ return false;
392
+ }
393
+ const result = await callDeferredAdapterTool(page, authProbeTool, {});
394
+ return shouldDeferBridgeForAuthState(readAuthState(result));
395
+ };
172
396
  const initializePageSession = async (navigate = true) => {
173
397
  if (!context) {
174
398
  throw new Error("SESSION_NOT_AVAILABLE: browser context is unavailable");
@@ -177,7 +401,7 @@ export async function startLocalMcpRuntime(options) {
177
401
  // Session replacement should be best-effort.
178
402
  });
179
403
  currentGatewaySession = undefined;
180
- const reusablePage = context.pages().find((entry) => !entry.isClosed());
404
+ const reusablePage = selectPreferredPage(context.pages(), targetUrl, site.manifest.hostPatterns);
181
405
  currentPage = reusablePage ?? (await context.newPage());
182
406
  pageLifecycleCleanup?.();
183
407
  const pageForEvents = currentPage;
@@ -191,7 +415,7 @@ export async function startLocalMcpRuntime(options) {
191
415
  return;
192
416
  }
193
417
  const openPageCount = context?.pages().filter((entry) => !entry.isClosed()).length ?? 0;
194
- if (shouldEndOwnerSessionAfterPageClose(headless, openPageCount)) {
418
+ if (shouldEndOwnerSessionAfterPageClose(currentPresentationMode, openPageCount)) {
195
419
  signalOwnerSessionEnded();
196
420
  }
197
421
  });
@@ -210,7 +434,7 @@ export async function startLocalMcpRuntime(options) {
210
434
  };
211
435
  if (navigate) {
212
436
  try {
213
- await currentPage.goto(targetUrl, {
437
+ await pageForEvents.goto(targetUrl, {
214
438
  waitUntil: "domcontentloaded",
215
439
  timeout: NAVIGATION_TIMEOUT_MS,
216
440
  });
@@ -219,10 +443,23 @@ export async function startLocalMcpRuntime(options) {
219
443
  throw mapNavigationError(error, targetUrl, "goto");
220
444
  }
221
445
  }
222
- currentGatewaySession = await createWebMcpPageGateway(currentPage, gatewayOptions);
446
+ if (await shouldDeferGatewayCreation(pageForEvents)) {
447
+ pageGatewayResourceCleanup?.();
448
+ pageGatewayResourceCleanup = undefined;
449
+ currentMode = deferredAdapter ? "adapter-shim" : "polyfill";
450
+ gatewayStale = false;
451
+ return;
452
+ }
453
+ currentGatewaySession = await createWebMcpPageGateway(pageForEvents, gatewayOptions);
454
+ pageGatewayResourceCleanup?.();
455
+ pageGatewayResourceCleanup = currentGatewaySession.onResourceUpdated((uri) => {
456
+ for (const listener of resourceUpdatedListeners) {
457
+ listener(uri);
458
+ }
459
+ });
223
460
  if (navigate && currentGatewaySession.mode === "polyfill") {
224
461
  try {
225
- await currentPage.reload({
462
+ await pageForEvents.reload({
226
463
  waitUntil: "domcontentloaded",
227
464
  timeout: NAVIGATION_TIMEOUT_MS,
228
465
  });
@@ -274,16 +511,38 @@ export async function startLocalMcpRuntime(options) {
274
511
  return await operation();
275
512
  }
276
513
  };
514
+ const maybeEnsureGatewaySession = async () => {
515
+ if (!currentPage || currentPage.isClosed()) {
516
+ throw new Error("SESSION_NOT_AVAILABLE: current page is closed");
517
+ }
518
+ if (currentGatewaySession && !gatewayStale) {
519
+ return true;
520
+ }
521
+ await rebuildGatewaySession();
522
+ return Boolean(currentGatewaySession);
523
+ };
277
524
  try {
278
- const launchOptions = {
279
- headless,
280
- viewport: null,
281
- };
282
- if (browserChannel) {
283
- launchOptions.channel = browserChannel;
525
+ if (browserUrl) {
526
+ const attachedSession = await connectToExternalBrowserContext(browserUrl);
527
+ browser = attachedSession.browser;
528
+ context = attachedSession.context;
529
+ }
530
+ else {
531
+ const launchOptions = browserEngine === "chromium"
532
+ ? createChromiumLaunchOptions(preferredPresentationMode, browserChannel, options.chromiumLoginWorkaround)
533
+ : {
534
+ headless: preferredPresentationMode === "headless",
535
+ viewport: null,
536
+ };
537
+ context = await launchPersistentContextWithRetry(browserType, userDataDir, launchOptions);
284
538
  }
285
- context = await browserType.launchPersistentContext(userDataDir, launchOptions);
286
539
  await initializePageSession();
540
+ if (browserUrl && context && currentPage && options.browserUrlOrigin !== "managed") {
541
+ currentPresentationMode = await detectExternalPresentationMode(context, currentPage, preferredPresentationMode);
542
+ }
543
+ else {
544
+ currentPresentationMode = preferredPresentationMode;
545
+ }
287
546
  let closed = false;
288
547
  const close = async () => {
289
548
  if (closed) {
@@ -294,8 +553,8 @@ export async function startLocalMcpRuntime(options) {
294
553
  await cleanup();
295
554
  };
296
555
  const openWindow = async () => {
297
- if (headless) {
298
- throw new Error("UNSUPPORTED_IN_HEADLESS_SESSION: bridge.open requires a headed local-mcp session. Start the bridge with --no-headless.");
556
+ if (currentPresentationMode === "headless") {
557
+ throw new Error("UNSUPPORTED_IN_HEADLESS_SESSION: bridge.open requires a headed browser session. For managed sessions, use bridge.session.mode.set({ mode: \"headed\" }) or start the bridge with --no-headless. For external attach sessions, connect to a headed external browser instead of a headless one.");
299
558
  }
300
559
  if (!currentPage || currentPage.isClosed()) {
301
560
  await initializePageSession(true);
@@ -305,25 +564,53 @@ export async function startLocalMcpRuntime(options) {
305
564
  await currentPage.bringToFront();
306
565
  return "opened";
307
566
  }
308
- if (gatewayStale || !currentGatewaySession) {
309
- await rebuildGatewaySession();
310
- }
567
+ await maybeEnsureGatewaySession();
311
568
  await currentPage.bringToFront();
312
569
  return "focused";
313
570
  };
314
571
  const gateway = {
315
572
  listTools: async () => {
316
- if (!currentGatewaySession || !currentPage || currentPage.isClosed()) {
573
+ if (!currentPage || currentPage.isClosed()) {
317
574
  throw new Error("SESSION_NOT_AVAILABLE: current page is closed");
318
575
  }
576
+ if (!(await maybeEnsureGatewaySession())) {
577
+ return await listDeferredAdapterTools(currentPage);
578
+ }
319
579
  return await withGatewayRecovery(async () => await currentGatewaySession.listTools());
320
580
  },
321
581
  callTool: async (name, input) => {
322
- if (!currentGatewaySession || !currentPage || currentPage.isClosed()) {
582
+ if (!currentPage || currentPage.isClosed()) {
323
583
  throw new Error("SESSION_NOT_AVAILABLE: current page is closed");
324
584
  }
585
+ if (!(await maybeEnsureGatewaySession())) {
586
+ return await callDeferredAdapterTool(currentPage, name, input);
587
+ }
325
588
  return await withGatewayRecovery(async () => await currentGatewaySession.callTool(name, input));
326
589
  },
590
+ listResources: async () => {
591
+ if (!currentPage || currentPage.isClosed()) {
592
+ throw new Error("SESSION_NOT_AVAILABLE: current page is closed");
593
+ }
594
+ if (!(await maybeEnsureGatewaySession())) {
595
+ return [];
596
+ }
597
+ return await withGatewayRecovery(async () => await currentGatewaySession.listResources());
598
+ },
599
+ readResource: async (uri) => {
600
+ if (!currentPage || currentPage.isClosed()) {
601
+ throw new Error("SESSION_NOT_AVAILABLE: current page is closed");
602
+ }
603
+ if (!(await maybeEnsureGatewaySession())) {
604
+ throw new Error(`RESOURCE_NOT_FOUND: ${uri}`);
605
+ }
606
+ return await withGatewayRecovery(async () => await currentGatewaySession.readResource(uri));
607
+ },
608
+ onResourceUpdated: (listener) => {
609
+ resourceUpdatedListeners.add(listener);
610
+ return () => {
611
+ resourceUpdatedListeners.delete(listener);
612
+ };
613
+ },
327
614
  };
328
615
  return {
329
616
  get site() {
@@ -333,10 +620,13 @@ export async function startLocalMcpRuntime(options) {
333
620
  get targetUrl() {
334
621
  return targetUrl;
335
622
  },
623
+ controlMode,
336
624
  get mode() {
337
625
  return currentMode;
338
626
  },
339
- headless,
627
+ get presentationMode() {
628
+ return currentPresentationMode;
629
+ },
340
630
  get page() {
341
631
  return currentPage;
342
632
  },
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
package/dist/server.d.ts CHANGED
@@ -3,20 +3,43 @@
3
3
  * It depends on the modelcontextprotocol/sdk server and stdio transport so MCP framing and lifecycle are handled by the official implementation.
4
4
  */
5
5
  import type { JsonValue } from "@webmcp-bridge/core";
6
- import type { WebMcpToolDefinition } from "@webmcp-bridge/playwright";
6
+ import type { WebMcpResourceDefinition, WebMcpToolDefinition } from "@webmcp-bridge/playwright";
7
7
  import type { Readable, Writable } from "node:stream";
8
+ import type { BridgeAuthState, BridgeControlMode, BridgePresentationMode, BridgeSessionOwnership, BridgeSessionState } from "./session.js";
8
9
  export type LocalMcpGateway = {
9
10
  listTools: () => Promise<ReadonlyArray<WebMcpToolDefinition>>;
10
11
  callTool: (name: string, input: Record<string, unknown>) => Promise<JsonValue>;
12
+ listResources: () => Promise<ReadonlyArray<WebMcpResourceDefinition>>;
13
+ readResource: (uri: string) => Promise<JsonValue>;
14
+ onResourceUpdated: (listener: (uri: string) => void) => () => void;
15
+ };
16
+ export type LocalBridgeState = {
17
+ site: string;
18
+ targetUrl: string;
19
+ controlMode: BridgeControlMode;
20
+ browserUrl?: string;
21
+ mode: "native" | "polyfill" | "adapter-shim" | "control-only";
22
+ presentationMode: BridgePresentationMode;
23
+ preferredPresentationMode: BridgePresentationMode;
24
+ authPolicyMode: "none" | "bootstrap_then_attach";
25
+ authState: BridgeAuthState;
26
+ sessionState: BridgeSessionState;
27
+ ownership: BridgeSessionOwnership;
28
+ profilePath?: string;
29
+ browserPid?: number;
30
+ lastBackupPath?: string;
31
+ };
32
+ export type LocalBridgePresentationModeSetOptions = {
33
+ presentationMode: BridgePresentationMode;
11
34
  };
12
35
  export type LocalBridgeControl = {
13
- getState: () => {
14
- site: string;
15
- targetUrl: string;
16
- mode: "native" | "polyfill" | "adapter-shim";
17
- headless: boolean;
18
- };
36
+ getState: () => LocalBridgeState;
19
37
  openWindow: () => Promise<"focused" | "opened">;
38
+ bootstrapSession: () => Promise<LocalBridgeState>;
39
+ attachSession: (browserUrl?: string) => Promise<LocalBridgeState>;
40
+ getPresentationMode: () => BridgePresentationMode;
41
+ setPresentationMode: (options: LocalBridgePresentationModeSetOptions) => Promise<LocalBridgeState>;
42
+ resetProfile: () => Promise<LocalBridgeState>;
20
43
  closeBridge: () => Promise<void>;
21
44
  };
22
45
  export type LocalMcpStdioServerOptions = {
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAQrD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGtD,MAAM,MAAM,eAAe,GAAG;IAC5B,SAAS,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAC9D,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;CAChF,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,MAAM;QACd,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,QAAQ,GAAG,UAAU,GAAG,cAAc,CAAC;QAC7C,QAAQ,EAAE,OAAO,CAAC;KACnB,CAAC;IACF,UAAU,EAAE,MAAM,OAAO,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAC;IAChD,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,OAAO,EAAE,eAAe,CAAC;IACzB,aAAa,EAAE,kBAAkB,CAAC;IAClC,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,MAAM,CAAC,EAAE,QAAQ,CAAC;IAClB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B,CAAC;AA8QF,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,0BAA0B,GAAG,mBAAmB,CAElG"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}