UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

125 lines • 4.81 kB
/** * @license * Copyright 2026 Google LLC * SPDX-License-Identifier: Apache-2.0 */ export const browserOptions = { autoConnect: { type: 'boolean', description: 'If specified, automatically connects to a browser (Chrome 144+) running locally from the user data directory identified by the channel param (default channel is stable). Requires the remote debugging server to be started in the Chrome instance via chrome://inspect/#remote-debugging.', conflicts: ['isolated', 'executablePath'], default: false, coerce: (value) => { if (!value) { return; } return value; }, }, browserUrl: { type: 'string', description: 'Connect to a running, debuggable Chrome instance (e.g. `http://127.0.0.1:9222`). For more details see: https://github.com/ChromeDevTools/chrome-devtools-mcp/blob/main/docs/advanced-usage.md#connecting-to-a-running-chrome-instance.', alias: 'u', conflicts: ['wsEndpoint'], coerce: (url) => { if (!url) { return; } try { new URL(url); } catch { throw new Error(`Provided browserUrl ${url} is not valid URL.`); } return url; }, }, wsEndpoint: { type: 'string', description: 'WebSocket endpoint to connect to a running Chrome instance (e.g., ws://127.0.0.1:9222/devtools/browser/<id>). Alternative to --browserUrl.', alias: 'w', conflicts: ['browserUrl'], coerce: (url) => { if (!url) { return; } try { const parsed = new URL(url); if (parsed.protocol !== 'ws:' && parsed.protocol !== 'wss:') { throw new Error(`Provided wsEndpoint ${url} must use ws:// or wss:// protocol.`); } return url; } catch (error) { if (error.message.includes('ws://')) { throw error; } throw new Error(`Provided wsEndpoint ${url} is not valid URL.`); } }, }, wsHeaders: { type: 'string', description: 'Custom headers for WebSocket connection in JSON format (e.g., \'{"Authorization":"Bearer token"}\'). Only works with --wsEndpoint.', implies: 'wsEndpoint', coerce: (val) => { if (!val) { return; } try { const parsed = JSON.parse(val); if (typeof parsed !== 'object' || Array.isArray(parsed)) { throw new Error('Headers must be a JSON object'); } return parsed; } catch (error) { throw new Error(`Invalid JSON for wsHeaders: ${error.message}`); } }, }, headless: { type: 'boolean', description: 'Whether to run in headless (no UI) mode.', default: false, }, executablePath: { type: 'string', description: 'Path to custom Chrome executable.', conflicts: ['browserUrl', 'wsEndpoint'], alias: 'e', }, isolated: { type: 'boolean', description: 'If specified, creates a temporary user-data-dir that is automatically cleaned up after the browser is closed. Defaults to false.', }, userDataDir: { type: 'string', description: 'Path to the user data directory for Chrome. Default is $HOME/.cache/chrome-devtools-mcp/chrome-profile$CHANNEL_SUFFIX_IF_NON_STABLE', conflicts: ['browserUrl', 'wsEndpoint', 'isolated'], }, channel: { type: 'string', description: 'Specify a different Chrome channel that should be used. The default is the stable channel version.', choices: ['canary', 'dev', 'beta', 'stable'], conflicts: ['browserUrl', 'wsEndpoint', 'executablePath'], }, proxyServer: { type: 'string', description: `Proxy server configuration for Chrome passed as --proxy-server when launching the browser. See https://www.chromium.org/developers/design-documents/network-settings/ for details.`, }, chromeArg: { type: 'array', string: true, describe: 'Additional arguments for Chrome. Only applies when Chrome is launched by chrome-devtools-mcp.', }, ignoreDefaultChromeArg: { type: 'array', string: true, describe: 'Explicitly disable default arguments for Chrome. Only applies when Chrome is launched by chrome-devtools-mcp.', }, }; export function getBrowserOptions() { return browserOptions; } //# sourceMappingURL=browser-options.js.map