cdp-mcp-server 5.0.2 → 5.0.3
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 +31 -0
- package/dist/config.js +4 -0
- package/dist/config.js.map +1 -1
- package/dist/connection/browser-discovery.d.ts +41 -4
- package/dist/connection/browser-discovery.js +125 -8
- package/dist/connection/browser-discovery.js.map +1 -1
- package/dist/connection/health-monitor.d.ts +22 -0
- package/dist/connection/health-monitor.js +155 -28
- package/dist/connection/health-monitor.js.map +1 -1
- package/dist/connection/index.d.ts +3 -3
- package/dist/connection/index.js +1 -1
- package/dist/connection/index.js.map +1 -1
- package/dist/index.js +10 -3
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +4 -0
- package/dist/utils/connect-diagnostics.d.ts +46 -0
- package/dist/utils/connect-diagnostics.js +124 -0
- package/dist/utils/connect-diagnostics.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -40,6 +40,37 @@ JSON output.
|
|
|
40
40
|
The server auto-connects to Chrome on your first tool call. Edge and Brave
|
|
41
41
|
work the same way (same protocol).
|
|
42
42
|
|
|
43
|
+
## Troubleshooting
|
|
44
|
+
|
|
45
|
+
Connect errors name the exact failure mode and print the exact fix:
|
|
46
|
+
|
|
47
|
+
- `no browser with debugging enabled` — nothing listening on any debug port,
|
|
48
|
+
no browser processes found: launch with `--remote-debugging-port=9222`
|
|
49
|
+
plus an explicit `--user-data-dir`
|
|
50
|
+
- Browser running but launched without the flag — same guidance; Chrome/Brave
|
|
51
|
+
153+ can instead enable `chrome://inspect/#remote-debugging`
|
|
52
|
+
("Allow remote debugging for this browser instance")
|
|
53
|
+
- Port bound but `/json/version` returns 404 — gated remote-debugging is
|
|
54
|
+
active: click **Allow** on Chrome's permission dialog when the server
|
|
55
|
+
connects (needs a visible browser window), or relaunch with the flag +
|
|
56
|
+
explicit non-default `--user-data-dir`
|
|
57
|
+
- Flag given but connection refused (Chrome 136+ default-profile restriction)
|
|
58
|
+
— pair `--remote-debugging-port` with an explicit **non-default**
|
|
59
|
+
`--user-data-dir` (Chrome for Testing exempt)
|
|
60
|
+
|
|
61
|
+
Discovery scans running browser processes' command lines for the port and
|
|
62
|
+
profile directory (portable/custom installs need zero configuration; full
|
|
63
|
+
command lines are never logged — disable with `CDP_PROCESS_SCAN=false`), and
|
|
64
|
+
can connect via the `chrome://inspect` toggle by reading `DevToolsActivePort`.
|
|
65
|
+
`ping`/`status` report the connection mode (`legacy` | `approval`).
|
|
66
|
+
|
|
67
|
+
## Environment variables
|
|
68
|
+
|
|
69
|
+
| Variable | Default | Description |
|
|
70
|
+
|----------|---------|-------------|
|
|
71
|
+
| `CDP_PROCESS_SCAN` | `true` | Scan running browser processes' command lines for `--user-data-dir` / `--remote-debugging-port` |
|
|
72
|
+
| `CDP_USER_DATA` | — | Extra User Data directory checked first during discovery |
|
|
73
|
+
|
|
43
74
|
## Highlights
|
|
44
75
|
|
|
45
76
|
- Stable element refs that survive DOM changes
|
package/dist/config.js
CHANGED
|
@@ -29,6 +29,10 @@ export function loadConfig() {
|
|
|
29
29
|
maxTempFiles: 50,
|
|
30
30
|
maxTempAgeMs: 30 * 60 * 1000, // 30 minutes
|
|
31
31
|
autoConnectProfile: process.env.CDP_PROFILE || '',
|
|
32
|
+
/** Extra User Data dir checked first during discovery (CDP_USER_DATA). */
|
|
33
|
+
userDataDir: process.env.CDP_USER_DATA || '',
|
|
34
|
+
/** Process command-line scan on discovery failure (default ON). */
|
|
35
|
+
processScan: process.env.CDP_PROCESS_SCAN !== 'false',
|
|
32
36
|
slimMode: process.env.CDP_SLIM_MODE === 'true',
|
|
33
37
|
};
|
|
34
38
|
}
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;;;;GAMG;AACH,MAAM,UAAU,UAAU;IACxB,OAAO;QACL,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,WAAW;QAC5C,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,MAAM,EAAE,EAAE,CAAC;QAErD,kBAAkB;QAClB,aAAa,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,OAAO,EAAE,EAAE,CAAC;QACtE,iBAAiB,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,OAAO,EAAE,EAAE,CAAC;QAC9E,eAAe,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,OAAO,EAAE,EAAE,CAAC;QAC1E,aAAa,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,OAAO,EAAE,EAAE,CAAC;QAE/D,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,QAAQ,EAAE,EAAE,CAAC;QACjE,eAAe,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,OAAO,EAAE,EAAE,CAAC;QAE1E,mEAAmE;QACnE,sBAAsB,EACnB,OAAO,CAAC,GAAG,CAAC,oBAAwC,IAAI,QAAQ;QAEnE,YAAY,EAAE,MAAM;QACpB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,EAAE,sBAAsB;QAC/D,YAAY,EAAE,EAAE;QAChB,YAAY,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,aAAa;QAE3C,kBAAkB,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE;QAEjD,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,MAAM;KAC/C,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;;;;GAMG;AACH,MAAM,UAAU,UAAU;IACxB,OAAO;QACL,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,WAAW;QAC5C,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,MAAM,EAAE,EAAE,CAAC;QAErD,kBAAkB;QAClB,aAAa,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,OAAO,EAAE,EAAE,CAAC;QACtE,iBAAiB,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,OAAO,EAAE,EAAE,CAAC;QAC9E,eAAe,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,OAAO,EAAE,EAAE,CAAC;QAC1E,aAAa,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,OAAO,EAAE,EAAE,CAAC;QAE/D,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,QAAQ,EAAE,EAAE,CAAC;QACjE,eAAe,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,OAAO,EAAE,EAAE,CAAC;QAE1E,mEAAmE;QACnE,sBAAsB,EACnB,OAAO,CAAC,GAAG,CAAC,oBAAwC,IAAI,QAAQ;QAEnE,YAAY,EAAE,MAAM;QACpB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,EAAE,sBAAsB;QAC/D,YAAY,EAAE,EAAE;QAChB,YAAY,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,aAAa;QAE3C,kBAAkB,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE;QAEjD,0EAA0E;QAC1E,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE;QAE5C,mEAAmE;QACnE,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,OAAO;QAErD,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,MAAM;KAC/C,CAAC;AACJ,CAAC"}
|
|
@@ -23,22 +23,59 @@ export type { BrowserInstance, ProfileInfo };
|
|
|
23
23
|
export declare function discoverBrowserInstances(opts?: DiscoverOptions): BrowserInstance[];
|
|
24
24
|
/**
|
|
25
25
|
* Resolve the WebSocket URL by scanning known User Data directories
|
|
26
|
-
* for a DevToolsActivePort file. Falls back to
|
|
27
|
-
*
|
|
26
|
+
* for a DevToolsActivePort file. Falls back to constructing a URL
|
|
27
|
+
* (caller should try /json/version at runtime) (P0-3).
|
|
28
28
|
*
|
|
29
29
|
* @param overrideDir User Data dir override (e.g. from `browser.connect`)
|
|
30
|
+
* @param extraPaths Additional dirs to check first (CDP_USER_DATA,
|
|
31
|
+
* process-scan results — configured upstream)
|
|
30
32
|
* @param fallbackHost Default host (from config)
|
|
31
33
|
* @param fallbackPort Default port (from config)
|
|
32
34
|
*/
|
|
33
|
-
export declare function resolveWsUrl(overrideDir: string | null, fallbackHost: string, fallbackPort: number): WsUrlResult;
|
|
35
|
+
export declare function resolveWsUrl(overrideDir: string | null, extraPaths: string[], fallbackHost: string, fallbackPort: number): WsUrlResult;
|
|
34
36
|
/**
|
|
35
37
|
* Async variant that queries /json/version when file-based discovery fails.
|
|
36
38
|
* P0-3 fix: Uses the HTTP endpoint to get the correct WebSocket URL
|
|
37
39
|
* instead of guessing.
|
|
38
40
|
*/
|
|
39
|
-
export declare function resolveWsUrlAsync(overrideDir: string | null, fallbackHost: string, fallbackPort: number): Promise<WsUrlResult>;
|
|
41
|
+
export declare function resolveWsUrlAsync(overrideDir: string | null, extraPaths: string[], fallbackHost: string, fallbackPort: number): Promise<WsUrlResult>;
|
|
40
42
|
/**
|
|
41
43
|
* Find the best matching instance given user input (name, port, or path).
|
|
42
44
|
* Returns null if no match is found.
|
|
43
45
|
*/
|
|
44
46
|
export declare function findBestInstance(instances: BrowserInstance[], input: string): BrowserInstance | null;
|
|
47
|
+
export interface CommandLineInfo {
|
|
48
|
+
/** Recognized browser basename (e.g. 'brave'), if the line is a browser. */
|
|
49
|
+
browserName?: string;
|
|
50
|
+
/** Extracted --user-data-dir value, if present. */
|
|
51
|
+
userDataDir?: string;
|
|
52
|
+
/** Extracted --remote-debugging-port value, if present. */
|
|
53
|
+
port?: number;
|
|
54
|
+
}
|
|
55
|
+
export interface ProcessScanResult {
|
|
56
|
+
/** Discovered User Data dirs (deduped, order-stable). */
|
|
57
|
+
userDataDirs: string[];
|
|
58
|
+
/** Discovered debug ports (deduped). */
|
|
59
|
+
ports: number[];
|
|
60
|
+
/** Recognized browser basenames seen running (deduped). */
|
|
61
|
+
browsersRunning: string[];
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Parse one process command line. Extracts ONLY the two flags we need —
|
|
65
|
+
* full command lines are never returned or logged (privacy rule).
|
|
66
|
+
*/
|
|
67
|
+
export declare function parseBrowserCommandLine(cmd: string): CommandLineInfo;
|
|
68
|
+
type ProcessRunner = (file: string, args: string[], timeoutMs: number) => Promise<string>;
|
|
69
|
+
/**
|
|
70
|
+
* Scan running Chromium-family browser processes for their launch flags.
|
|
71
|
+
* Read-only, same-user, non-elevated. Returns ONLY extracted fields —
|
|
72
|
+
* never raw command lines (privacy rule).
|
|
73
|
+
*
|
|
74
|
+
* Controlled by `CDP_PROCESS_SCAN` (default ON, `false` disables) —
|
|
75
|
+
* enforced by the caller.
|
|
76
|
+
*/
|
|
77
|
+
export declare function scanBrowserProcesses(opts?: {
|
|
78
|
+
timeoutMs?: number;
|
|
79
|
+
runner?: ProcessRunner;
|
|
80
|
+
os?: string;
|
|
81
|
+
}): Promise<ProcessScanResult>;
|
|
@@ -4,14 +4,16 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Extracted from `discoverChromeInstances` and `getWsUrl` in server.js.
|
|
6
6
|
*/
|
|
7
|
+
import { execFile } from 'child_process';
|
|
7
8
|
import { readFileSync } from 'fs';
|
|
8
|
-
import { join } from 'path';
|
|
9
|
+
import { join, basename } from 'path';
|
|
9
10
|
import { platform, homedir } from 'os';
|
|
10
11
|
function getBrowserCandidates() {
|
|
11
12
|
const os = platform();
|
|
12
13
|
const home = homedir();
|
|
13
14
|
if (os === 'win32') {
|
|
14
15
|
const local = process.env.LOCALAPPDATA || join(home, 'AppData', 'Local');
|
|
16
|
+
const roaming = process.env.APPDATA || join(home, 'AppData', 'Roaming');
|
|
15
17
|
return [
|
|
16
18
|
{ name: 'Chrome', path: join(local, 'Google', 'Chrome', 'User Data') },
|
|
17
19
|
{ name: 'Chrome Beta', path: join(local, 'Google', 'Chrome Beta', 'User Data') },
|
|
@@ -19,6 +21,8 @@ function getBrowserCandidates() {
|
|
|
19
21
|
{ name: 'Chromium', path: join(local, 'Chromium', 'User Data') },
|
|
20
22
|
{ name: 'Edge', path: join(local, 'Microsoft', 'Edge', 'User Data') },
|
|
21
23
|
{ name: 'Brave', path: join(local, 'BraveSoftware', 'Brave-Browser', 'User Data') },
|
|
24
|
+
{ name: 'Vivaldi', path: join(local, 'Vivaldi', 'User Data') },
|
|
25
|
+
{ name: 'Opera', path: join(roaming, 'Opera Software', 'Opera Stable') },
|
|
22
26
|
];
|
|
23
27
|
}
|
|
24
28
|
else if (os === 'darwin') {
|
|
@@ -29,6 +33,8 @@ function getBrowserCandidates() {
|
|
|
29
33
|
{ name: 'Chromium', path: join(appSupport, 'Chromium') },
|
|
30
34
|
{ name: 'Edge', path: join(appSupport, 'Microsoft Edge') },
|
|
31
35
|
{ name: 'Brave', path: join(appSupport, 'BraveSoftware', 'Brave-Browser') },
|
|
36
|
+
{ name: 'Vivaldi', path: join(appSupport, 'Vivaldi') },
|
|
37
|
+
{ name: 'Opera', path: join(appSupport, 'com.operasoftware.Opera') },
|
|
32
38
|
];
|
|
33
39
|
}
|
|
34
40
|
else {
|
|
@@ -38,6 +44,8 @@ function getBrowserCandidates() {
|
|
|
38
44
|
{ name: 'Chromium', path: join(home, '.config', 'chromium') },
|
|
39
45
|
{ name: 'Edge', path: join(home, '.config', 'microsoft-edge') },
|
|
40
46
|
{ name: 'Brave', path: join(home, '.config', 'BraveSoftware', 'Brave-Browser') },
|
|
47
|
+
{ name: 'Vivaldi', path: join(home, '.config', 'vivaldi') },
|
|
48
|
+
{ name: 'Opera', path: join(home, '.config', 'opera') },
|
|
41
49
|
];
|
|
42
50
|
}
|
|
43
51
|
}
|
|
@@ -107,19 +115,22 @@ export function discoverBrowserInstances(opts = {}) {
|
|
|
107
115
|
}
|
|
108
116
|
/**
|
|
109
117
|
* Resolve the WebSocket URL by scanning known User Data directories
|
|
110
|
-
* for a DevToolsActivePort file. Falls back to
|
|
111
|
-
*
|
|
118
|
+
* for a DevToolsActivePort file. Falls back to constructing a URL
|
|
119
|
+
* (caller should try /json/version at runtime) (P0-3).
|
|
112
120
|
*
|
|
113
121
|
* @param overrideDir User Data dir override (e.g. from `browser.connect`)
|
|
122
|
+
* @param extraPaths Additional dirs to check first (CDP_USER_DATA,
|
|
123
|
+
* process-scan results — configured upstream)
|
|
114
124
|
* @param fallbackHost Default host (from config)
|
|
115
125
|
* @param fallbackPort Default port (from config)
|
|
116
126
|
*/
|
|
117
|
-
export function resolveWsUrl(overrideDir, fallbackHost, fallbackPort) {
|
|
127
|
+
export function resolveWsUrl(overrideDir, extraPaths, fallbackHost, fallbackPort) {
|
|
118
128
|
const extra = [];
|
|
119
129
|
if (overrideDir)
|
|
120
130
|
extra.push(overrideDir);
|
|
121
|
-
|
|
122
|
-
|
|
131
|
+
for (const p of extraPaths)
|
|
132
|
+
if (p)
|
|
133
|
+
extra.push(p);
|
|
123
134
|
const candidates = getCandidates(extra);
|
|
124
135
|
for (const { path: udPath } of candidates) {
|
|
125
136
|
const portInfo = readPortFile(udPath);
|
|
@@ -141,9 +152,9 @@ export function resolveWsUrl(overrideDir, fallbackHost, fallbackPort) {
|
|
|
141
152
|
* P0-3 fix: Uses the HTTP endpoint to get the correct WebSocket URL
|
|
142
153
|
* instead of guessing.
|
|
143
154
|
*/
|
|
144
|
-
export async function resolveWsUrlAsync(overrideDir, fallbackHost, fallbackPort) {
|
|
155
|
+
export async function resolveWsUrlAsync(overrideDir, extraPaths, fallbackHost, fallbackPort) {
|
|
145
156
|
// Try synchronous file-based discovery first
|
|
146
|
-
const syncResult = resolveWsUrl(overrideDir, fallbackHost, fallbackPort);
|
|
157
|
+
const syncResult = resolveWsUrl(overrideDir, extraPaths, fallbackHost, fallbackPort);
|
|
147
158
|
if (syncResult.userDataDir)
|
|
148
159
|
return syncResult;
|
|
149
160
|
// File-based discovery failed — try HTTP /json/version endpoint
|
|
@@ -173,4 +184,110 @@ export function findBestInstance(instances, input) {
|
|
|
173
184
|
i.port.toString() === needle ||
|
|
174
185
|
i.userDataDir.toLowerCase() === needle) ?? null);
|
|
175
186
|
}
|
|
187
|
+
// ─── Process Command-Line Scan (5.0.3) ──────────────────────────────
|
|
188
|
+
/** Chromium-family browser executables we recognize (basename, lowercase, no ext). */
|
|
189
|
+
const KNOWN_BROWSERS = [
|
|
190
|
+
'chrome',
|
|
191
|
+
'brave',
|
|
192
|
+
'msedge',
|
|
193
|
+
'chromium',
|
|
194
|
+
'vivaldi',
|
|
195
|
+
'opera',
|
|
196
|
+
];
|
|
197
|
+
/**
|
|
198
|
+
* Parse one process command line. Extracts ONLY the two flags we need —
|
|
199
|
+
* full command lines are never returned or logged (privacy rule).
|
|
200
|
+
*/
|
|
201
|
+
export function parseBrowserCommandLine(cmd) {
|
|
202
|
+
// Executable may be quoted ("C:\Program Files\...\chrome.exe")
|
|
203
|
+
const exeMatch = cmd.match(/^\s*(?:"([^"]+)"|'([^']+)'|(\S+))/);
|
|
204
|
+
const firstToken = (exeMatch
|
|
205
|
+
? exeMatch[1] ?? exeMatch[2] ?? exeMatch[3]
|
|
206
|
+
: '').toLowerCase();
|
|
207
|
+
const base = basename(firstToken).replace(/\.exe$/, '');
|
|
208
|
+
const browserName = KNOWN_BROWSERS.find((n) => base === n || base.startsWith(`${n}-`));
|
|
209
|
+
const info = {};
|
|
210
|
+
if (!browserName)
|
|
211
|
+
return info;
|
|
212
|
+
info.browserName = browserName;
|
|
213
|
+
const dirMatch = cmd.match(/--user-data-dir=(?:"([^"]+)"|'([^']+)'|([^\s]+))/);
|
|
214
|
+
if (dirMatch)
|
|
215
|
+
info.userDataDir = dirMatch[1] ?? dirMatch[2] ?? dirMatch[3];
|
|
216
|
+
const portMatch = cmd.match(/--remote-debugging-port=(\d+)/);
|
|
217
|
+
if (portMatch)
|
|
218
|
+
info.port = parseInt(portMatch[1], 10);
|
|
219
|
+
return info;
|
|
220
|
+
}
|
|
221
|
+
function defaultRunner(file, args, timeoutMs) {
|
|
222
|
+
return new Promise((resolve, reject) => {
|
|
223
|
+
execFile(file, args, { timeout: timeoutMs, windowsHide: true }, (err, stdout) => {
|
|
224
|
+
if (err)
|
|
225
|
+
reject(err);
|
|
226
|
+
else
|
|
227
|
+
resolve(stdout);
|
|
228
|
+
});
|
|
229
|
+
});
|
|
230
|
+
}
|
|
231
|
+
function buildProcessQueryCommand(os) {
|
|
232
|
+
if (os === 'win32') {
|
|
233
|
+
const filter = ["Name='chrome.exe'", "Name='brave.exe'", "Name='msedge.exe'",
|
|
234
|
+
"Name='chromium.exe'", "Name='vivaldi.exe'", "Name='opera.exe'"].join(' OR ');
|
|
235
|
+
return {
|
|
236
|
+
file: 'powershell.exe',
|
|
237
|
+
args: [
|
|
238
|
+
'-NoProfile',
|
|
239
|
+
'-NonInteractive',
|
|
240
|
+
'-Command',
|
|
241
|
+
`Get-CimInstance Win32_Process -Filter "${filter}" | Select-Object -ExpandProperty CommandLine`,
|
|
242
|
+
],
|
|
243
|
+
};
|
|
244
|
+
}
|
|
245
|
+
// macOS + Linux: ps is universal enough for same-user processes
|
|
246
|
+
return { file: 'ps', args: ['-axo', 'command'] };
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Scan running Chromium-family browser processes for their launch flags.
|
|
250
|
+
* Read-only, same-user, non-elevated. Returns ONLY extracted fields —
|
|
251
|
+
* never raw command lines (privacy rule).
|
|
252
|
+
*
|
|
253
|
+
* Controlled by `CDP_PROCESS_SCAN` (default ON, `false` disables) —
|
|
254
|
+
* enforced by the caller.
|
|
255
|
+
*/
|
|
256
|
+
export async function scanBrowserProcesses(opts = {}) {
|
|
257
|
+
const timeoutMs = opts.timeoutMs ?? 5000;
|
|
258
|
+
const runner = opts.runner ?? defaultRunner;
|
|
259
|
+
const os = opts.os ?? platform();
|
|
260
|
+
const result = {
|
|
261
|
+
userDataDirs: [],
|
|
262
|
+
ports: [],
|
|
263
|
+
browsersRunning: [],
|
|
264
|
+
};
|
|
265
|
+
const { file, args } = buildProcessQueryCommand(os);
|
|
266
|
+
let stdout;
|
|
267
|
+
try {
|
|
268
|
+
stdout = await runner(file, args, timeoutMs);
|
|
269
|
+
}
|
|
270
|
+
catch {
|
|
271
|
+
return result; // non-fatal: scan is best-effort
|
|
272
|
+
}
|
|
273
|
+
const dirs = new Set();
|
|
274
|
+
const ports = new Set();
|
|
275
|
+
const names = new Set();
|
|
276
|
+
for (const line of stdout.split(/\r?\n/)) {
|
|
277
|
+
if (!line.trim())
|
|
278
|
+
continue;
|
|
279
|
+
const info = parseBrowserCommandLine(line);
|
|
280
|
+
if (!info.browserName)
|
|
281
|
+
continue;
|
|
282
|
+
names.add(info.browserName);
|
|
283
|
+
if (info.userDataDir)
|
|
284
|
+
dirs.add(info.userDataDir);
|
|
285
|
+
if (info.port !== undefined)
|
|
286
|
+
ports.add(info.port);
|
|
287
|
+
}
|
|
288
|
+
result.userDataDirs = [...dirs];
|
|
289
|
+
result.ports = [...ports];
|
|
290
|
+
result.browsersRunning = [...names];
|
|
291
|
+
return result;
|
|
292
|
+
}
|
|
176
293
|
//# sourceMappingURL=browser-discovery.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-discovery.js","sourceRoot":"","sources":["../../src/connection/browser-discovery.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"browser-discovery.js","sourceRoot":"","sources":["../../src/connection/browser-discovery.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
* 3. Lazy auto-connect on first tool call (Fix 8)
|
|
8
8
|
*/
|
|
9
9
|
import type { CDPClient } from './cdp-client.js';
|
|
10
|
+
import { discoverBrowserInstances, scanBrowserProcesses } from './browser-discovery.js';
|
|
10
11
|
export type HealthStatus = 'disconnected' | 'connected' | 'unhealthy' | 'dead' | 'error';
|
|
11
12
|
export interface HealthState {
|
|
12
13
|
status: HealthStatus;
|
|
@@ -33,7 +34,16 @@ export interface HealthMonitorOptions {
|
|
|
33
34
|
overrideUserDataDir?: string | null;
|
|
34
35
|
/** Preferred Chrome profile for auto-connect (from CDP_PROFILE env). */
|
|
35
36
|
preferredProfile?: string;
|
|
37
|
+
/** Extra User Data dirs to check first (CDP_USER_DATA). */
|
|
38
|
+
extraUserDataDirs?: string[];
|
|
39
|
+
/** Process command-line scan on discovery failure (CDP_PROCESS_SCAN, default true). */
|
|
40
|
+
processScan?: boolean;
|
|
41
|
+
/** Injected process scanner (tests). Defaults to scanBrowserProcesses. */
|
|
42
|
+
scanFn?: typeof scanBrowserProcesses;
|
|
43
|
+
/** Injected instance discovery (tests). Defaults to discoverBrowserInstances. */
|
|
44
|
+
discoverFn?: typeof discoverBrowserInstances;
|
|
36
45
|
}
|
|
46
|
+
export type ConnectionMode = 'legacy' | 'approval' | 'unknown';
|
|
37
47
|
export declare class HealthMonitor {
|
|
38
48
|
private client;
|
|
39
49
|
private timer;
|
|
@@ -43,6 +53,8 @@ export declare class HealthMonitor {
|
|
|
43
53
|
private lastGoodWsUrl;
|
|
44
54
|
/** When true, onDisconnect() skips auto-reconnect (P1-4: browser.connect race). */
|
|
45
55
|
suppressAutoReconnect: boolean;
|
|
56
|
+
/** How the current connection was established (5.0.3). */
|
|
57
|
+
connectionMode: ConnectionMode;
|
|
46
58
|
private pingIntervalMs;
|
|
47
59
|
private pongTimeoutMs;
|
|
48
60
|
private maxMissedPongs;
|
|
@@ -52,6 +64,10 @@ export declare class HealthMonitor {
|
|
|
52
64
|
private cdpPort;
|
|
53
65
|
private overrideUserDataDir;
|
|
54
66
|
private preferredProfile;
|
|
67
|
+
private extraUserDataDirs;
|
|
68
|
+
private processScan;
|
|
69
|
+
private scanFn;
|
|
70
|
+
private discoverFn;
|
|
55
71
|
readonly health: HealthState;
|
|
56
72
|
constructor(client: CDPClient, opts?: HealthMonitorOptions);
|
|
57
73
|
/** Start the periodic health-check timer. */
|
|
@@ -75,6 +91,12 @@ export declare class HealthMonitor {
|
|
|
75
91
|
autoConnect(): Promise<void>;
|
|
76
92
|
/** Internal auto-connect implementation. */
|
|
77
93
|
private _doAutoConnect;
|
|
94
|
+
/**
|
|
95
|
+
* After a successful connect via the file-based path, detect whether the
|
|
96
|
+
* browser is a legacy CDP server or the gated/approval-mode server by
|
|
97
|
+
* probing /json/version (which only legacy servers answer).
|
|
98
|
+
*/
|
|
99
|
+
private _detectMode;
|
|
78
100
|
/** Update the override directory (e.g. after `browser.connect`). */
|
|
79
101
|
setOverrideUserDataDir(dir: string | null): void;
|
|
80
102
|
private _ping;
|
|
@@ -7,9 +7,9 @@
|
|
|
7
7
|
* 3. Lazy auto-connect on first tool call (Fix 8)
|
|
8
8
|
*/
|
|
9
9
|
import WebSocket from 'ws';
|
|
10
|
-
import { discoverBrowserInstances, resolveWsUrlAsync, findBestInstance, } from './browser-discovery.js';
|
|
10
|
+
import { discoverBrowserInstances, resolveWsUrlAsync, findBestInstance, scanBrowserProcesses, } from './browser-discovery.js';
|
|
11
11
|
import { ActionableError } from '../utils/error-handler.js';
|
|
12
|
-
|
|
12
|
+
import { classifyConnectFailure, } from '../utils/connect-diagnostics.js';
|
|
13
13
|
export class HealthMonitor {
|
|
14
14
|
client;
|
|
15
15
|
timer = null;
|
|
@@ -19,6 +19,8 @@ export class HealthMonitor {
|
|
|
19
19
|
lastGoodWsUrl = null;
|
|
20
20
|
/** When true, onDisconnect() skips auto-reconnect (P1-4: browser.connect race). */
|
|
21
21
|
suppressAutoReconnect = false;
|
|
22
|
+
/** How the current connection was established (5.0.3). */
|
|
23
|
+
connectionMode = 'unknown';
|
|
22
24
|
// Options (with defaults)
|
|
23
25
|
pingIntervalMs;
|
|
24
26
|
pongTimeoutMs;
|
|
@@ -29,6 +31,10 @@ export class HealthMonitor {
|
|
|
29
31
|
cdpPort;
|
|
30
32
|
overrideUserDataDir;
|
|
31
33
|
preferredProfile;
|
|
34
|
+
extraUserDataDirs;
|
|
35
|
+
processScan;
|
|
36
|
+
scanFn;
|
|
37
|
+
discoverFn;
|
|
32
38
|
// Observable health state
|
|
33
39
|
health = {
|
|
34
40
|
status: 'disconnected',
|
|
@@ -47,6 +53,10 @@ export class HealthMonitor {
|
|
|
47
53
|
this.cdpPort = opts.cdpPort ?? 9222;
|
|
48
54
|
this.overrideUserDataDir = opts.overrideUserDataDir ?? null;
|
|
49
55
|
this.preferredProfile = opts.preferredProfile ?? '';
|
|
56
|
+
this.extraUserDataDirs = opts.extraUserDataDirs ?? [];
|
|
57
|
+
this.processScan = opts.processScan ?? true;
|
|
58
|
+
this.scanFn = opts.scanFn ?? scanBrowserProcesses;
|
|
59
|
+
this.discoverFn = opts.discoverFn ?? discoverBrowserInstances;
|
|
50
60
|
}
|
|
51
61
|
// ── Lifecycle ───────────────────────────────────────────────────
|
|
52
62
|
/** Start the periodic health-check timer. */
|
|
@@ -86,7 +96,7 @@ export class HealthMonitor {
|
|
|
86
96
|
const delay = this.reconnectBaseDelayMs * Math.pow(2, this.reconnectAttempts - 1);
|
|
87
97
|
await this._sleep(delay);
|
|
88
98
|
try {
|
|
89
|
-
const { wsUrl } = await resolveWsUrlAsync(this.overrideUserDataDir, this.cdpHost, this.cdpPort);
|
|
99
|
+
const { wsUrl } = await resolveWsUrlAsync(this.overrideUserDataDir, this.extraUserDataDirs, this.cdpHost, this.cdpPort);
|
|
90
100
|
await this.client.connect(wsUrl);
|
|
91
101
|
this.lastGoodWsUrl = wsUrl;
|
|
92
102
|
this.onConnected();
|
|
@@ -120,14 +130,21 @@ export class HealthMonitor {
|
|
|
120
130
|
}
|
|
121
131
|
/** Internal auto-connect implementation. */
|
|
122
132
|
async _doAutoConnect() {
|
|
133
|
+
const probes = [];
|
|
134
|
+
const connectErrors = [];
|
|
135
|
+
let portFilesFound = 0;
|
|
136
|
+
let scan = null;
|
|
123
137
|
// Strategy 1: Try last known good connection
|
|
124
138
|
if (this.lastGoodWsUrl) {
|
|
125
139
|
try {
|
|
126
140
|
await this.client.connect(this.lastGoodWsUrl);
|
|
127
141
|
this.onConnected();
|
|
142
|
+
this.connectionMode = await this._detectMode();
|
|
128
143
|
return;
|
|
129
144
|
}
|
|
130
|
-
catch {
|
|
145
|
+
catch (e) {
|
|
146
|
+
connectErrors.push(errText(e));
|
|
147
|
+
}
|
|
131
148
|
}
|
|
132
149
|
// Strategy 2: Probe common debugging ports via HTTP /json/version
|
|
133
150
|
const COMMON_PORTS = [this.cdpPort, 9222, 9229, 9333, 9515];
|
|
@@ -137,41 +154,145 @@ export class HealthMonitor {
|
|
|
137
154
|
const resp = await fetch(`http://${this.cdpHost}:${port}/json/version`, {
|
|
138
155
|
signal: AbortSignal.timeout(2000),
|
|
139
156
|
});
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
await
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
157
|
+
if (resp.ok) {
|
|
158
|
+
probes.push({ port, outcome: 'ok', status: resp.status });
|
|
159
|
+
const data = (await resp.json());
|
|
160
|
+
if (data.webSocketDebuggerUrl) {
|
|
161
|
+
await this.client.connect(data.webSocketDebuggerUrl);
|
|
162
|
+
this.lastGoodWsUrl = data.webSocketDebuggerUrl;
|
|
163
|
+
this.onConnected();
|
|
164
|
+
this.connectionMode = 'legacy';
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
else {
|
|
169
|
+
probes.push({
|
|
170
|
+
port,
|
|
171
|
+
outcome: resp.status === 404 ? 'not_found' : 'error',
|
|
172
|
+
status: resp.status,
|
|
173
|
+
});
|
|
146
174
|
}
|
|
147
175
|
}
|
|
148
|
-
catch {
|
|
149
|
-
|
|
176
|
+
catch (e) {
|
|
177
|
+
probes.push({ port, outcome: 'refused', detail: errText(e) });
|
|
150
178
|
}
|
|
151
179
|
}
|
|
152
|
-
// Strategy 3: File-based discovery (DevToolsActivePort)
|
|
153
|
-
|
|
154
|
-
|
|
180
|
+
// Strategy 3: File-based discovery (DevToolsActivePort). The port file
|
|
181
|
+
// points at /devtools/browser/<uuid> — the same WS endpoint the gated
|
|
182
|
+
// approval-mode server exposes — so a connect here succeeds where HTTP
|
|
183
|
+
// discovery 404s (approval mode), and the user gets a permission dialog.
|
|
184
|
+
const tryFileDiscovery = async (extraDirs) => {
|
|
185
|
+
const instances = this.discoverFn({ extraPaths: extraDirs });
|
|
186
|
+
portFilesFound += instances.length;
|
|
187
|
+
if (instances.length === 0)
|
|
188
|
+
return false;
|
|
155
189
|
const best = this.preferredProfile
|
|
156
190
|
? findBestInstance(instances, this.preferredProfile)
|
|
157
191
|
: instances[0];
|
|
158
|
-
if (best)
|
|
192
|
+
if (!best)
|
|
193
|
+
return false;
|
|
194
|
+
try {
|
|
195
|
+
await this.client.connect(best.wsUrl);
|
|
196
|
+
this.lastGoodWsUrl = best.wsUrl;
|
|
197
|
+
this.overrideUserDataDir = best.userDataDir;
|
|
198
|
+
this.onConnected();
|
|
199
|
+
this.connectionMode = await this._detectMode();
|
|
200
|
+
return true;
|
|
201
|
+
}
|
|
202
|
+
catch (e) {
|
|
203
|
+
connectErrors.push(errText(e));
|
|
204
|
+
return false;
|
|
205
|
+
}
|
|
206
|
+
};
|
|
207
|
+
if (await tryFileDiscovery(this.extraUserDataDirs))
|
|
208
|
+
return;
|
|
209
|
+
// Strategy 4: Process command-line scan (default ON) — finds
|
|
210
|
+
// portable/custom browser data dirs and debug ports, then retries the
|
|
211
|
+
// HTTP probe and file discovery with enriched inputs.
|
|
212
|
+
if (this.processScan) {
|
|
213
|
+
scan = await this.scanFn();
|
|
214
|
+
const enrichedPorts = scan.ports.filter((p) => !uniquePorts.includes(p));
|
|
215
|
+
for (const port of enrichedPorts) {
|
|
159
216
|
try {
|
|
160
|
-
await this.
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
217
|
+
const resp = await fetch(`http://${this.cdpHost}:${port}/json/version`, {
|
|
218
|
+
signal: AbortSignal.timeout(2000),
|
|
219
|
+
});
|
|
220
|
+
if (resp.ok) {
|
|
221
|
+
probes.push({ port, outcome: 'ok', status: resp.status });
|
|
222
|
+
const data = (await resp.json());
|
|
223
|
+
if (data.webSocketDebuggerUrl) {
|
|
224
|
+
await this.client.connect(data.webSocketDebuggerUrl);
|
|
225
|
+
this.lastGoodWsUrl = data.webSocketDebuggerUrl;
|
|
226
|
+
this.onConnected();
|
|
227
|
+
this.connectionMode = 'legacy';
|
|
228
|
+
return;
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
else {
|
|
232
|
+
probes.push({
|
|
233
|
+
port,
|
|
234
|
+
outcome: resp.status === 404 ? 'not_found' : 'error',
|
|
235
|
+
status: resp.status,
|
|
236
|
+
});
|
|
237
|
+
}
|
|
165
238
|
}
|
|
166
|
-
catch {
|
|
239
|
+
catch (e) {
|
|
240
|
+
probes.push({ port, outcome: 'refused', detail: errText(e) });
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
if (scan.userDataDirs.length > 0 &&
|
|
244
|
+
(await tryFileDiscovery(scan.userDataDirs))) {
|
|
245
|
+
return;
|
|
167
246
|
}
|
|
168
247
|
}
|
|
169
|
-
// All strategies failed — throw actionable error
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
248
|
+
// All strategies failed — classify and throw an actionable error
|
|
249
|
+
const processInfo = scan
|
|
250
|
+
? {
|
|
251
|
+
browsersRunning: scan.browsersRunning,
|
|
252
|
+
flagPresent: scan.ports.length > 0,
|
|
253
|
+
}
|
|
254
|
+
: null;
|
|
255
|
+
const diagnosis = classifyConnectFailure({
|
|
256
|
+
probes,
|
|
257
|
+
portFilesFound,
|
|
258
|
+
connectErrors,
|
|
259
|
+
processInfo,
|
|
260
|
+
host: this.cdpHost,
|
|
261
|
+
primaryPort: this.cdpPort,
|
|
262
|
+
});
|
|
263
|
+
throw new ActionableError(diagnosis.headline, diagnosis.fix, {
|
|
264
|
+
kind: diagnosis.kind,
|
|
265
|
+
probes,
|
|
266
|
+
});
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* After a successful connect via the file-based path, detect whether the
|
|
270
|
+
* browser is a legacy CDP server or the gated/approval-mode server by
|
|
271
|
+
* probing /json/version (which only legacy servers answer).
|
|
272
|
+
*/
|
|
273
|
+
async _detectMode() {
|
|
274
|
+
let host = this.cdpHost;
|
|
275
|
+
let port = this.cdpPort;
|
|
276
|
+
const url = this.client.url;
|
|
277
|
+
if (url) {
|
|
278
|
+
try {
|
|
279
|
+
const parsed = new URL(url);
|
|
280
|
+
host = parsed.hostname || host;
|
|
281
|
+
port = parseInt(parsed.port || String(this.cdpPort), 10);
|
|
282
|
+
}
|
|
283
|
+
catch { /* keep defaults */ }
|
|
284
|
+
}
|
|
285
|
+
try {
|
|
286
|
+
const resp = await fetch(`http://${host}:${port}/json/version`, {
|
|
287
|
+
signal: AbortSignal.timeout(2000),
|
|
288
|
+
});
|
|
289
|
+
return resp.ok ? 'legacy' : 'approval';
|
|
290
|
+
}
|
|
291
|
+
catch {
|
|
292
|
+
// Legacy servers always answer /json/version; failure + live WS
|
|
293
|
+
// strongly suggests approval mode, but stay honest.
|
|
294
|
+
return 'approval';
|
|
295
|
+
}
|
|
175
296
|
}
|
|
176
297
|
/** Update the override directory (e.g. after `browser.connect`). */
|
|
177
298
|
setOverrideUserDataDir(dir) {
|
|
@@ -216,4 +337,10 @@ export class HealthMonitor {
|
|
|
216
337
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
217
338
|
}
|
|
218
339
|
}
|
|
340
|
+
/** Extract a short error message from an unknown thrown value. */
|
|
341
|
+
function errText(e) {
|
|
342
|
+
if (e instanceof Error)
|
|
343
|
+
return e.message;
|
|
344
|
+
return String(e);
|
|
345
|
+
}
|
|
219
346
|
//# sourceMappingURL=health-monitor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"health-monitor.js","sourceRoot":"","sources":["../../src/connection/health-monitor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"health-monitor.js","sourceRoot":"","sources":["../../src/connection/health-monitor.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export { CDPClient } from './cdp-client.js';
|
|
5
5
|
export type { ConnectionState, CDPClientOptions } from './cdp-client.js';
|
|
6
|
-
export { discoverBrowserInstances, resolveWsUrl, resolveWsUrlAsync, findBestInstance, } from './browser-discovery.js';
|
|
7
|
-
export type { DiscoverOptions, WsUrlResult } from './browser-discovery.js';
|
|
6
|
+
export { discoverBrowserInstances, resolveWsUrl, resolveWsUrlAsync, findBestInstance, parseBrowserCommandLine, scanBrowserProcesses, } from './browser-discovery.js';
|
|
7
|
+
export type { DiscoverOptions, WsUrlResult, CommandLineInfo, ProcessScanResult, } from './browser-discovery.js';
|
|
8
8
|
export { HealthMonitor } from './health-monitor.js';
|
|
9
|
-
export type { HealthStatus, HealthState, HealthMonitorOptions, } from './health-monitor.js';
|
|
9
|
+
export type { HealthStatus, HealthState, HealthMonitorOptions, ConnectionMode, } from './health-monitor.js';
|
|
10
10
|
export { DomainManager } from './domain-manager.js';
|
|
11
11
|
export { TabSessionService } from './tab-session-service.js';
|
package/dist/connection/index.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Connection module — public surface.
|
|
3
3
|
*/
|
|
4
4
|
export { CDPClient } from './cdp-client.js';
|
|
5
|
-
export { discoverBrowserInstances, resolveWsUrl, resolveWsUrlAsync, findBestInstance, } from './browser-discovery.js';
|
|
5
|
+
export { discoverBrowserInstances, resolveWsUrl, resolveWsUrlAsync, findBestInstance, parseBrowserCommandLine, scanBrowserProcesses, } from './browser-discovery.js';
|
|
6
6
|
export { HealthMonitor } from './health-monitor.js';
|
|
7
7
|
export { DomainManager } from './domain-manager.js';
|
|
8
8
|
export { TabSessionService } from './tab-session-service.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/connection/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,OAAO,EACL,wBAAwB,EACxB,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/connection/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,OAAO,EACL,wBAAwB,EACxB,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,wBAAwB,CAAC;AAQhC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAQpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -50,7 +50,7 @@ import { registerDebugTools } from './tools/debug.js';
|
|
|
50
50
|
import { registerFormTools } from './tools/form.js';
|
|
51
51
|
import { getSlimTools, mapSlimToFull } from './tools/slim-mode.js';
|
|
52
52
|
// ─── Bootstrap ──────────────────────────────────────────────────────
|
|
53
|
-
const VERSION = '5.0.
|
|
53
|
+
const VERSION = '5.0.3';
|
|
54
54
|
const config = loadConfig();
|
|
55
55
|
const cdpClient = new CDPClient({ commandTimeout: config.globalTimeout });
|
|
56
56
|
// Lazy initialization: HealthMonitor is created but doesn't discover browsers
|
|
@@ -58,6 +58,8 @@ const healthMonitor = new HealthMonitor(cdpClient, {
|
|
|
58
58
|
cdpHost: config.cdpHost,
|
|
59
59
|
cdpPort: config.cdpPort,
|
|
60
60
|
preferredProfile: config.autoConnectProfile,
|
|
61
|
+
extraUserDataDirs: config.userDataDir ? [config.userDataDir] : [],
|
|
62
|
+
processScan: config.processScan,
|
|
61
63
|
});
|
|
62
64
|
const domainManager = new DomainManager();
|
|
63
65
|
const tabSessionService = new TabSessionService();
|
|
@@ -444,7 +446,8 @@ registry.register(defineTool({
|
|
|
444
446
|
name: 'ping',
|
|
445
447
|
description: 'Health check. Returns server version and connection status.',
|
|
446
448
|
inputSchema: { type: 'object', properties: {} },
|
|
447
|
-
handler: async () => success(`pong — CDP Browser MCP v${VERSION}\nConnected: ${cdpClient.isConnected}`
|
|
449
|
+
handler: async () => success(`pong — CDP Browser MCP v${VERSION}\nConnected: ${cdpClient.isConnected}` +
|
|
450
|
+
(cdpClient.isConnected ? `\nMode: ${healthMonitor.connectionMode}` : '')),
|
|
448
451
|
}));
|
|
449
452
|
registry.register(defineTool({
|
|
450
453
|
name: 'status',
|
|
@@ -454,6 +457,10 @@ registry.register(defineTool({
|
|
|
454
457
|
const lines = [
|
|
455
458
|
`## CDP Browser MCP Server v${VERSION}`,
|
|
456
459
|
`Connected: ${cdpClient.isConnected}`,
|
|
460
|
+
...(cdpClient.isConnected
|
|
461
|
+
? [`Connection mode: ${healthMonitor.connectionMode}`]
|
|
462
|
+
: []),
|
|
463
|
+
`Process scan: ${config.processScan ? 'on' : 'off'}`,
|
|
457
464
|
`Default timeout: ${config.globalTimeout}ms`,
|
|
458
465
|
`Default cleanup: ${config.defaultCleanupStrategy}`,
|
|
459
466
|
`Session TTL: ${config.sessionTTL}ms`,
|
|
@@ -484,7 +491,7 @@ if (config.slimMode) {
|
|
|
484
491
|
registerFormTools(registry, ctx);
|
|
485
492
|
}
|
|
486
493
|
else {
|
|
487
|
-
// Full mode: all
|
|
494
|
+
// Full mode: all 14 tools
|
|
488
495
|
registerTabsTools(registry, ctx);
|
|
489
496
|
registerPageTools(registry, ctx);
|
|
490
497
|
registerInteractTools(registry, ctx);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -43,6 +43,10 @@ export interface ServerConfig {
|
|
|
43
43
|
maxTempAgeMs: number;
|
|
44
44
|
/** If set, auto-connect to this Chrome instance/profile on startup */
|
|
45
45
|
autoConnectProfile: string;
|
|
46
|
+
/** Extra User Data dir checked first during discovery (CDP_USER_DATA) */
|
|
47
|
+
userDataDir: string;
|
|
48
|
+
/** Process command-line scan on discovery failure (CDP_PROCESS_SCAN, default ON) */
|
|
49
|
+
processScan: boolean;
|
|
46
50
|
/** If true, expose 6 slim tools instead of 15 full tools (for small-context models) */
|
|
47
51
|
slimMode: boolean;
|
|
48
52
|
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Connect-failure diagnostics — classifies why auto-connect failed and
|
|
3
|
+
* produces a kind + human message with the exact fix.
|
|
4
|
+
*
|
|
5
|
+
* Failure signatures (source-verified, see _archive research 2026-10):
|
|
6
|
+
* - TCP refused on every port, no browser processes → no browser / not launched
|
|
7
|
+
* - TCP refused, browser running WITH debug flag → Chrome 136+ default-profile block
|
|
8
|
+
* - Port bound, /json/version → 404 → gated remote-debugging (toggle)
|
|
9
|
+
* - WS rejected with --remote-allow-origins hint → origin allowlist
|
|
10
|
+
* - Port file existed but WS connect failed → approval dialog denied / stale file
|
|
11
|
+
*/
|
|
12
|
+
/** Outcome of probing one HTTP debug port. */
|
|
13
|
+
export type PortProbeOutcome = 'refused' | 'not_found' | 'timeout' | 'ok' | 'error';
|
|
14
|
+
export interface PortProbeEvidence {
|
|
15
|
+
port: number;
|
|
16
|
+
outcome: PortProbeOutcome;
|
|
17
|
+
/** HTTP status code when available (404 for gated mode). */
|
|
18
|
+
status?: number;
|
|
19
|
+
/** Short error detail (error message, never a full stack). */
|
|
20
|
+
detail?: string;
|
|
21
|
+
}
|
|
22
|
+
/** What the (optional) process scan saw on the machine. */
|
|
23
|
+
export interface ProcessInfo {
|
|
24
|
+
/** Browser process names seen running (e.g. 'brave', 'chrome'). */
|
|
25
|
+
browsersRunning: string[];
|
|
26
|
+
/** At least one browser was launched with --remote-debugging-port. */
|
|
27
|
+
flagPresent: boolean;
|
|
28
|
+
}
|
|
29
|
+
export type ConnectFailureKind = 'no_browser' | 'no_debug_flag' | 'm136_default_dir' | 'toggle_mode' | 'approval_denied' | 'origin_blocked' | 'generic';
|
|
30
|
+
export interface ConnectDiagnosis {
|
|
31
|
+
kind: ConnectFailureKind;
|
|
32
|
+
headline: string;
|
|
33
|
+
fix: string;
|
|
34
|
+
}
|
|
35
|
+
export interface ClassifyInput {
|
|
36
|
+
probes: PortProbeEvidence[];
|
|
37
|
+
/** True when file-based discovery found at least one DevToolsActivePort. */
|
|
38
|
+
portFilesFound: number;
|
|
39
|
+
/** Error messages captured from failed WS connect attempts. */
|
|
40
|
+
connectErrors: string[];
|
|
41
|
+
/** Process-scan result, or null when scan disabled/unavailable. */
|
|
42
|
+
processInfo: ProcessInfo | null;
|
|
43
|
+
host: string;
|
|
44
|
+
primaryPort: number;
|
|
45
|
+
}
|
|
46
|
+
export declare function classifyConnectFailure(input: ClassifyInput): ConnectDiagnosis;
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Connect-failure diagnostics — classifies why auto-connect failed and
|
|
3
|
+
* produces a kind + human message with the exact fix.
|
|
4
|
+
*
|
|
5
|
+
* Failure signatures (source-verified, see _archive research 2026-10):
|
|
6
|
+
* - TCP refused on every port, no browser processes → no browser / not launched
|
|
7
|
+
* - TCP refused, browser running WITH debug flag → Chrome 136+ default-profile block
|
|
8
|
+
* - Port bound, /json/version → 404 → gated remote-debugging (toggle)
|
|
9
|
+
* - WS rejected with --remote-allow-origins hint → origin allowlist
|
|
10
|
+
* - Port file existed but WS connect failed → approval dialog denied / stale file
|
|
11
|
+
*/
|
|
12
|
+
// ─── Helpers ────────────────────────────────────────────────────────
|
|
13
|
+
const ANY_BOUND = (probes) => probes.some((p) => p.outcome === 'not_found' || p.outcome === 'ok');
|
|
14
|
+
const ALL_REFUSED = (probes) => probes.length > 0 && probes.every((p) => p.outcome === 'refused');
|
|
15
|
+
function relaunchCommand(host, port) {
|
|
16
|
+
const target = host === '127.0.0.1' || host === 'localhost' ? '' : ` ${host}`;
|
|
17
|
+
return (`& '<browser.exe>' --user-data-dir='<dir>' --remote-debugging-port=${port}${target}`);
|
|
18
|
+
}
|
|
19
|
+
// ─── Classifier ─────────────────────────────────────────────────────
|
|
20
|
+
export function classifyConnectFailure(input) {
|
|
21
|
+
const { probes, portFilesFound, connectErrors, processInfo, host, primaryPort } = input;
|
|
22
|
+
const originError = connectErrors.find((e) => e.includes('--remote-allow-origins'));
|
|
23
|
+
if (originError) {
|
|
24
|
+
return {
|
|
25
|
+
kind: 'origin_blocked',
|
|
26
|
+
headline: 'The browser rejected this WebSocket origin.',
|
|
27
|
+
fix: `Relaunch the browser with:\n` +
|
|
28
|
+
` --remote-allow-origins=${host === '127.0.0.1' ? '*' : host}\n` +
|
|
29
|
+
`Or connect from the same origin the browser expects.`,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
// Most specific: a port file was found and a WS connect was attempted but
|
|
33
|
+
// failed (approval dialog denied, stale file, no visible window).
|
|
34
|
+
if (portFilesFound > 0 && connectErrors.length > 0) {
|
|
35
|
+
return {
|
|
36
|
+
kind: 'approval_denied',
|
|
37
|
+
headline: 'A DevToolsActivePort file was found but the WebSocket connection ' +
|
|
38
|
+
'was rejected.',
|
|
39
|
+
fix: `Likely causes:\n` +
|
|
40
|
+
` 1. The permission dialog was dismissed or no browser window was ` +
|
|
41
|
+
`visible (approval mode auto-denies without a window).\n` +
|
|
42
|
+
` 2. The port file is stale (browser restarted on another port). ` +
|
|
43
|
+
`Retry after the browser settles.\n` +
|
|
44
|
+
` 3. Or relaunch with the flag: ${relaunchCommand(host, primaryPort)}`,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
// Gated remote-debugging: port bound but the legacy HTTP API is absent.
|
|
48
|
+
const gated = probes.find((p) => p.outcome === 'not_found' && p.status === 404);
|
|
49
|
+
if (gated) {
|
|
50
|
+
return {
|
|
51
|
+
kind: 'toggle_mode',
|
|
52
|
+
headline: 'Your browser is running the new gated remote-debugging ' +
|
|
53
|
+
'(chrome://inspect/#remote-debugging toggle). It does not serve the ' +
|
|
54
|
+
'legacy HTTP discovery API.',
|
|
55
|
+
fix: `Do ONE of these:\n` +
|
|
56
|
+
` 1. Look at your browser — a permission dialog may be waiting. ` +
|
|
57
|
+
`Click "Allow" (needs a visible browser window).\n` +
|
|
58
|
+
` 2. Or relaunch with the flag (same data dir keeps your logins):\n` +
|
|
59
|
+
` ${relaunchCommand(host, primaryPort)}\n` +
|
|
60
|
+
` 3. Or keep the toggle and make sure the browser's User Data dir ` +
|
|
61
|
+
`is discoverable (CDP_USER_DATA env or process scan).`,
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
if (ALL_REFUSED(probes)) {
|
|
65
|
+
const browsers = processInfo?.browsersRunning ?? [];
|
|
66
|
+
if (browsers.length === 0) {
|
|
67
|
+
return {
|
|
68
|
+
kind: 'no_browser',
|
|
69
|
+
headline: 'Could not find any browser with remote debugging enabled.',
|
|
70
|
+
fix: `To fix, do ONE of these:\n` +
|
|
71
|
+
` 1. Launch your browser with the debug flag:\n` +
|
|
72
|
+
` ${relaunchCommand(host, primaryPort)}\n` +
|
|
73
|
+
` 2. Or enable the chrome://inspect/#remote-debugging toggle ` +
|
|
74
|
+
`(Chrome/Brave 144+)\n` +
|
|
75
|
+
` 3. Or set CDP_PORT env var if using a non-standard port\n\n` +
|
|
76
|
+
`The server will auto-connect once debugging is enabled.`,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
if (processInfo?.flagPresent) {
|
|
80
|
+
// Flag present but nothing listening → Chrome 136+ default-profile block
|
|
81
|
+
return {
|
|
82
|
+
kind: 'm136_default_dir',
|
|
83
|
+
headline: 'The debug port was requested but Chromium 136+ refuses CDP on the ' +
|
|
84
|
+
'DEFAULT User Data directory.',
|
|
85
|
+
fix: `Relaunch with an explicit NON-DEFAULT data dir (your logins stay ` +
|
|
86
|
+
`if you reuse the same dir):\n` +
|
|
87
|
+
` ${relaunchCommand(host, primaryPort)}\n` +
|
|
88
|
+
`Note: Chrome for Testing is exempt from this restriction.`,
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
return {
|
|
92
|
+
kind: 'no_debug_flag',
|
|
93
|
+
headline: 'A browser is running, but without remote debugging enabled.',
|
|
94
|
+
fix: `Do ONE of these:\n` +
|
|
95
|
+
` 1. Fully exit the browser, then relaunch with:\n` +
|
|
96
|
+
` ${relaunchCommand(host, primaryPort)}\n` +
|
|
97
|
+
` 2. Or enable the chrome://inspect/#remote-debugging toggle ` +
|
|
98
|
+
`(Chrome/Brave 144+) — the server will ask for permission on connect.`,
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
// Port file existed but connect failed without a recognizable signature —
|
|
102
|
+
// handled above; this branch is unreachable but kept for safety.
|
|
103
|
+
if (portFilesFound > 0 && connectErrors.length > 0) {
|
|
104
|
+
return {
|
|
105
|
+
kind: 'approval_denied',
|
|
106
|
+
headline: 'A DevToolsActivePort file was found but the WebSocket connection ' +
|
|
107
|
+
'was rejected.',
|
|
108
|
+
fix: `Likely causes:\n` +
|
|
109
|
+
` 1. The permission dialog was dismissed or no browser window was ` +
|
|
110
|
+
`visible (approval mode auto-denies without a window).\n` +
|
|
111
|
+
` 2. The port file is stale (browser restarted on another port). ` +
|
|
112
|
+
`Retry after the browser settles.\n` +
|
|
113
|
+
` 3. Or relaunch with the flag: ${relaunchCommand(host, primaryPort)}`,
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
return {
|
|
117
|
+
kind: 'generic',
|
|
118
|
+
headline: 'Could not connect to any browser.',
|
|
119
|
+
fix: `Launch the browser with:\n` +
|
|
120
|
+
` ${relaunchCommand(host, primaryPort)}\n` +
|
|
121
|
+
`Or enable the chrome://inspect/#remote-debugging toggle.`,
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=connect-diagnostics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connect-diagnostics.js","sourceRoot":"","sources":["../../src/utils/connect-diagnostics.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED