openchrome-mcp 1.2.4 → 1.2.5
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/cdp/client.d.ts.map +1 -1
- package/dist/cdp/client.js +9 -0
- package/dist/cdp/client.js.map +1 -1
- package/dist/chrome/launcher.d.ts +32 -15
- package/dist/chrome/launcher.d.ts.map +1 -1
- package/dist/chrome/launcher.js +136 -116
- package/dist/chrome/launcher.js.map +1 -1
- package/dist/chrome/profile-manager.d.ts +108 -0
- package/dist/chrome/profile-manager.d.ts.map +1 -0
- package/dist/chrome/profile-manager.js +372 -0
- package/dist/chrome/profile-manager.js.map +1 -0
- package/dist/chrome/sqlite-cookie-copy.d.ts +46 -0
- package/dist/chrome/sqlite-cookie-copy.d.ts.map +1 -0
- package/dist/chrome/sqlite-cookie-copy.js +145 -0
- package/dist/chrome/sqlite-cookie-copy.js.map +1 -0
- package/dist/cli/claude-session.js +0 -0
- package/dist/cli/index.js +0 -0
- package/dist/config/defaults.d.ts +4 -0
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +5 -1
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/global.d.ts +2 -0
- package/dist/config/global.d.ts.map +1 -1
- package/dist/config/global.js.map +1 -1
- package/dist/hints/hint-engine.d.ts +36 -2
- package/dist/hints/hint-engine.d.ts.map +1 -1
- package/dist/hints/hint-engine.js +96 -27
- package/dist/hints/hint-engine.js.map +1 -1
- package/dist/hints/index.d.ts +1 -1
- package/dist/hints/index.d.ts.map +1 -1
- package/dist/hints/rules/repetition-detection.d.ts.map +1 -1
- package/dist/hints/rules/repetition-detection.js +21 -0
- package/dist/hints/rules/repetition-detection.js.map +1 -1
- package/dist/index.js +17 -1
- package/dist/index.js.map +1 -1
- package/dist/mcp-server.d.ts +12 -1
- package/dist/mcp-server.d.ts.map +1 -1
- package/dist/mcp-server.js +162 -20
- package/dist/mcp-server.js.map +1 -1
- package/dist/resources/usage-guide.d.ts +1 -1
- package/dist/resources/usage-guide.d.ts.map +1 -1
- package/dist/resources/usage-guide.js +22 -0
- package/dist/resources/usage-guide.js.map +1 -1
- package/dist/session-manager.d.ts +4 -0
- package/dist/session-manager.d.ts.map +1 -1
- package/dist/session-manager.js +56 -0
- package/dist/session-manager.js.map +1 -1
- package/dist/tools/click-element.d.ts.map +1 -1
- package/dist/tools/click-element.js +6 -2
- package/dist/tools/click-element.js.map +1 -1
- package/dist/tools/computer.d.ts.map +1 -1
- package/dist/tools/computer.js +32 -3
- package/dist/tools/computer.js.map +1 -1
- package/dist/tools/find.d.ts.map +1 -1
- package/dist/tools/find.js +16 -6
- package/dist/tools/find.js.map +1 -1
- package/dist/tools/form-input.d.ts.map +1 -1
- package/dist/tools/form-input.js +20 -0
- package/dist/tools/form-input.js.map +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +2 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/javascript.d.ts.map +1 -1
- package/dist/tools/javascript.js +38 -2
- package/dist/tools/javascript.js.map +1 -1
- package/dist/tools/navigate.d.ts.map +1 -1
- package/dist/tools/navigate.js +27 -0
- package/dist/tools/navigate.js.map +1 -1
- package/dist/tools/profile-status.d.ts +10 -0
- package/dist/tools/profile-status.d.ts.map +1 -0
- package/dist/tools/profile-status.js +101 -0
- package/dist/tools/profile-status.js.map +1 -0
- package/dist/tools/wait-and-click.d.ts.map +1 -1
- package/dist/tools/wait-and-click.js +3 -1
- package/dist/tools/wait-and-click.js.map +1 -1
- package/dist/utils/format-age.d.ts +5 -0
- package/dist/utils/format-age.d.ts.map +1 -0
- package/dist/utils/format-age.js +15 -0
- package/dist/utils/format-age.js.map +1 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/pid-manager.d.ts +6 -0
- package/dist/utils/pid-manager.d.ts.map +1 -0
- package/dist/utils/pid-manager.js +132 -0
- package/dist/utils/pid-manager.js.map +1 -0
- package/dist/utils/ref-id-manager.d.ts +19 -1
- package/dist/utils/ref-id-manager.d.ts.map +1 -1
- package/dist/utils/ref-id-manager.js +49 -2
- package/dist/utils/ref-id-manager.js.map +1 -1
- package/package.json +4 -1
- package/dist/chrome/profile-detector.d.ts +0 -52
- package/dist/chrome/profile-detector.d.ts.map +0 -1
- package/dist/chrome/profile-detector.js +0 -246
- package/dist/chrome/profile-detector.js.map +0 -1
- package/dist/hints/rules/dom-mode-suggestion.d.ts +0 -6
- package/dist/hints/rules/dom-mode-suggestion.d.ts.map +0 -1
- package/dist/hints/rules/dom-mode-suggestion.js +0 -24
- package/dist/hints/rules/dom-mode-suggestion.js.map +0 -1
- package/dist/types/profile.d.ts +0 -76
- package/dist/types/profile.d.ts.map +0 -1
- package/dist/types/profile.js +0 -35
- package/dist/types/profile.js.map +0 -1
package/dist/cdp/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/cdp/client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAkB,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAkB9F,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,oEAAoE;IACpE,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,MAAM,eAAe,GAAG,cAAc,GAAG,YAAY,GAAG,WAAW,GAAG,cAAc,CAAC;AAE3F,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,WAAW,GAAG,cAAc,GAAG,cAAc,GAAG,kBAAkB,CAAC;IACzE,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAQD,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,QAAQ,CAAsC;IACtD,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,eAAe,CAAmC;IAC1D,OAAO,CAAC,cAAc,CAA4C;IAClE,OAAO,CAAC,wBAAwB,CAAsC;IACtE,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,UAAU,CAAU;IAC5B,OAAO,CAAC,iBAAiB,CAAmE;IAC5F,OAAO,CAAC,eAAe,CAAyE;IAChG,OAAO,CAAC,aAAa,CAAgC;IACrD,OAAO,CAAC,mBAAmB,CAAkD;IAC7E,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAU;gBAEtC,OAAO,GAAE,gBAAqB;IAU1C;;OAEG;IACH,kBAAkB,IAAI,eAAe;IAIrC;;OAEG;IACH,qBAAqB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,GAAG,IAAI;IAIvE;;OAEG;IACH,wBAAwB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,GAAG,IAAI;IAO1E;;OAEG;IACH,0BAA0B,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAItE;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAoBzB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAU3B;;OAEG;IACH,OAAO,CAAC,cAAc;IAOtB;;OAEG;IACH,OAAO,CAAC,aAAa;IAOrB;;OAEG;YACW,eAAe;IAoB7B;;OAEG;YACW,gBAAgB;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/cdp/client.ts"],"names":[],"mappings":"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"}
|
package/dist/cdp/client.js
CHANGED
|
@@ -156,6 +156,7 @@ class CDPClient {
|
|
|
156
156
|
if (this.connectionState === 'reconnecting') {
|
|
157
157
|
return; // Already reconnecting
|
|
158
158
|
}
|
|
159
|
+
this.reconnectAttempts = 0; // Reset counter on each new disconnect event
|
|
159
160
|
this.connectionState = 'reconnecting';
|
|
160
161
|
this.emitConnectionEvent({
|
|
161
162
|
type: 'disconnected',
|
|
@@ -165,6 +166,11 @@ class CDPClient {
|
|
|
165
166
|
this.sessions.clear();
|
|
166
167
|
this.targetIdIndex.clear();
|
|
167
168
|
this.inFlightCookieScans.clear();
|
|
169
|
+
// Remove old browser listeners before nulling reference
|
|
170
|
+
if (this.browser) {
|
|
171
|
+
this.browser.removeAllListeners('disconnected');
|
|
172
|
+
this.browser.removeAllListeners('targetdestroyed');
|
|
173
|
+
}
|
|
168
174
|
this.browser = null;
|
|
169
175
|
// Attempt reconnection
|
|
170
176
|
while (this.reconnectAttempts < this.maxReconnectAttempts) {
|
|
@@ -271,6 +277,7 @@ class CDPClient {
|
|
|
271
277
|
if (this.browser) {
|
|
272
278
|
try {
|
|
273
279
|
this.browser.removeAllListeners('disconnected');
|
|
280
|
+
this.browser.removeAllListeners('targetdestroyed');
|
|
274
281
|
await this.browser.disconnect();
|
|
275
282
|
}
|
|
276
283
|
catch {
|
|
@@ -291,6 +298,8 @@ class CDPClient {
|
|
|
291
298
|
this.stopHeartbeat();
|
|
292
299
|
if (this.browser) {
|
|
293
300
|
try {
|
|
301
|
+
this.browser.removeAllListeners('disconnected');
|
|
302
|
+
this.browser.removeAllListeners('targetdestroyed');
|
|
294
303
|
await this.browser.disconnect();
|
|
295
304
|
}
|
|
296
305
|
catch {
|
package/dist/cdp/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/cdp/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/cdp/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,11 +2,14 @@
|
|
|
2
2
|
* Chrome Launcher - Manages Chrome process with remote debugging
|
|
3
3
|
*/
|
|
4
4
|
import { ChildProcess } from 'child_process';
|
|
5
|
+
import type { ProfileType } from './profile-manager';
|
|
6
|
+
export type { ProfileType } from './profile-manager';
|
|
5
7
|
export interface ChromeInstance {
|
|
6
8
|
wsEndpoint: string;
|
|
7
9
|
httpEndpoint: string;
|
|
8
10
|
process?: ChildProcess;
|
|
9
11
|
userDataDir?: string;
|
|
12
|
+
profileType?: ProfileType;
|
|
10
13
|
}
|
|
11
14
|
export interface LaunchOptions {
|
|
12
15
|
port?: number;
|
|
@@ -16,11 +19,22 @@ export interface LaunchOptions {
|
|
|
16
19
|
autoLaunch?: boolean;
|
|
17
20
|
/** If true, force using a temp directory instead of real Chrome profile */
|
|
18
21
|
useTempProfile?: boolean;
|
|
22
|
+
/** If true, quit running Chrome to reuse the real profile (default: false — uses temp profile instead) */
|
|
23
|
+
restartChrome?: boolean;
|
|
24
|
+
}
|
|
25
|
+
export interface ProfileState {
|
|
26
|
+
type: ProfileType;
|
|
27
|
+
cookieCopiedAt?: number;
|
|
28
|
+
extensionsAvailable: boolean;
|
|
29
|
+
sourceProfile?: string;
|
|
30
|
+
userDataDir?: string;
|
|
19
31
|
}
|
|
20
32
|
export declare class ChromeLauncher {
|
|
21
33
|
private instance;
|
|
22
34
|
private port;
|
|
23
|
-
private
|
|
35
|
+
private profileManager;
|
|
36
|
+
private currentProfileType;
|
|
37
|
+
private profileState;
|
|
24
38
|
constructor(port?: number);
|
|
25
39
|
/**
|
|
26
40
|
* Ensure Chrome with remote debugging is available
|
|
@@ -43,24 +57,27 @@ export declare class ChromeLauncher {
|
|
|
43
57
|
*/
|
|
44
58
|
isConnected(): boolean;
|
|
45
59
|
/**
|
|
46
|
-
* Get the
|
|
60
|
+
* Get the port this launcher is configured for
|
|
47
61
|
*/
|
|
48
|
-
|
|
62
|
+
getPort(): number;
|
|
63
|
+
/**
|
|
64
|
+
* Get the current profile type. Useful for MCP consumers to understand
|
|
65
|
+
* what capabilities are available (e.g., extensions only with 'real' profile).
|
|
66
|
+
*/
|
|
67
|
+
getProfileType(): ProfileType | undefined;
|
|
49
68
|
/**
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
* the user's existing authentication and cookies.
|
|
53
|
-
*
|
|
54
|
-
* Cookie decryption by platform:
|
|
55
|
-
* - macOS: Chrome uses Keychain key "Chrome Safe Storage". Same binary + same user = works.
|
|
56
|
-
* - Linux: Chrome uses gnome-keyring or kwallet. Same user session = works.
|
|
57
|
-
* - Windows: Chrome uses DPAPI tied to user account. Same user = works.
|
|
58
|
-
* In all cases, launching the same Chrome binary as the same OS user allows
|
|
59
|
-
* the new instance to decrypt the copied cookies.
|
|
69
|
+
* Get the current profile state.
|
|
70
|
+
* Describes what type of Chrome profile is in use and its capabilities.
|
|
60
71
|
*/
|
|
61
|
-
|
|
72
|
+
getProfileState(): ProfileState;
|
|
73
|
+
/**
|
|
74
|
+
* Get the real Chrome profile directory for the current platform
|
|
75
|
+
*/
|
|
76
|
+
private getRealChromeProfileDir;
|
|
62
77
|
/**
|
|
63
|
-
* Check if a Chrome profile directory is locked by another Chrome instance
|
|
78
|
+
* Check if a Chrome profile directory is locked by another Chrome instance.
|
|
79
|
+
* On Unix, validates SingletonLock symlink targets by checking if the PID is alive,
|
|
80
|
+
* so stale lock files from crashed Chrome instances are correctly ignored.
|
|
64
81
|
*/
|
|
65
82
|
private isProfileLocked;
|
|
66
83
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launcher.d.ts","sourceRoot":"","sources":["../../src/chrome/launcher.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAS,YAAY,EAAY,MAAM,eAAe,CAAC;AAQ9D,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"launcher.d.ts","sourceRoot":"","sources":["../../src/chrome/launcher.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAS,YAAY,EAAY,MAAM,eAAe,CAAC;AAQ9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,2EAA2E;IAC3E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,2EAA2E;IAC3E,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,0GAA0G;IAC1G,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAuJD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,WAAW,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,cAAc,CAAwB;IAC9C,OAAO,CAAC,kBAAkB,CAA0B;IACpD,OAAO,CAAC,YAAY,CAGlB;gBAEU,IAAI,GAAE,MAAqB;IAIvC;;OAEG;IACG,YAAY,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,cAAc,CAAC;IAsNxE;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;IAOzC;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;IAOtC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA8B5B;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;OAEG;IACH,OAAO,IAAI,MAAM;IAIjB;;;OAGG;IACH,cAAc,IAAI,WAAW,GAAG,SAAS;IAIzC;;;OAGG;IACH,eAAe,IAAI,YAAY;IAI/B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAyB/B;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAsDvB;;OAEG;IACH,OAAO,CAAC,eAAe;IA2BvB;;;OAGG;YACW,iBAAiB;IAkC/B;;;OAGG;YACW,oBAAoB;CAkBnC;AAKD,wBAAgB,iBAAiB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,cAAc,CAS/D"}
|
package/dist/chrome/launcher.js
CHANGED
|
@@ -45,6 +45,7 @@ const os = __importStar(require("os"));
|
|
|
45
45
|
const http = __importStar(require("http"));
|
|
46
46
|
const global_1 = require("../config/global");
|
|
47
47
|
const defaults_1 = require("../config/defaults");
|
|
48
|
+
const profile_manager_1 = require("./profile-manager");
|
|
48
49
|
const DEFAULT_PORT = 9222;
|
|
49
50
|
/**
|
|
50
51
|
* Find Chrome executable path based on platform
|
|
@@ -163,11 +164,17 @@ async function checkDebugPort(port) {
|
|
|
163
164
|
});
|
|
164
165
|
}
|
|
165
166
|
/**
|
|
166
|
-
* Wait for debug port to become available
|
|
167
|
+
* Wait for debug port to become available.
|
|
168
|
+
* Optionally accepts a chromeProcess to fast-fail if Chrome exits before the port opens.
|
|
167
169
|
*/
|
|
168
|
-
async function waitForDebugPort(port, timeout = 30000) {
|
|
170
|
+
async function waitForDebugPort(port, timeout = 30000, chromeProcess) {
|
|
169
171
|
const startTime = Date.now();
|
|
170
172
|
while (Date.now() - startTime < timeout) {
|
|
173
|
+
// Fast-fail if the spawned Chrome process has already exited
|
|
174
|
+
if (chromeProcess && chromeProcess.exitCode !== null) {
|
|
175
|
+
throw new Error(`Chrome exited with code ${chromeProcess.exitCode} before debug port ${port} became available. ` +
|
|
176
|
+
`Likely cause: --user-data-dir is locked by another Chrome instance.`);
|
|
177
|
+
}
|
|
171
178
|
const wsEndpoint = await checkDebugPort(port);
|
|
172
179
|
if (wsEndpoint) {
|
|
173
180
|
return wsEndpoint;
|
|
@@ -179,7 +186,12 @@ async function waitForDebugPort(port, timeout = 30000) {
|
|
|
179
186
|
class ChromeLauncher {
|
|
180
187
|
instance = null;
|
|
181
188
|
port;
|
|
182
|
-
|
|
189
|
+
profileManager = new profile_manager_1.ProfileManager();
|
|
190
|
+
currentProfileType;
|
|
191
|
+
profileState = {
|
|
192
|
+
type: 'real',
|
|
193
|
+
extensionsAvailable: true,
|
|
194
|
+
};
|
|
183
195
|
constructor(port = DEFAULT_PORT) {
|
|
184
196
|
this.port = port;
|
|
185
197
|
}
|
|
@@ -199,14 +211,18 @@ class ChromeLauncher {
|
|
|
199
211
|
console.error('[ChromeLauncher] Cached instance is stale, refreshing...');
|
|
200
212
|
this.instance = null;
|
|
201
213
|
}
|
|
202
|
-
// Check if Chrome is already running with debug port
|
|
203
|
-
|
|
214
|
+
// Check if Chrome is already running with debug port.
|
|
215
|
+
// Use a brief retry window (5s) instead of a single-shot check, because Chrome
|
|
216
|
+
// may still be binding the debug port during startup (1-5s window).
|
|
217
|
+
const existingWs = await waitForDebugPort(port, 5000).catch(() => null);
|
|
204
218
|
if (existingWs) {
|
|
205
219
|
console.error(`[ChromeLauncher] Found existing Chrome on port ${port}`);
|
|
206
220
|
this.instance = {
|
|
207
221
|
wsEndpoint: existingWs,
|
|
208
222
|
httpEndpoint: `http://127.0.0.1:${port}`,
|
|
209
223
|
};
|
|
224
|
+
// Attached to user-started Chrome — assume real profile
|
|
225
|
+
this.profileState = { type: 'real', extensionsAvailable: true };
|
|
210
226
|
return this.instance;
|
|
211
227
|
}
|
|
212
228
|
// If autoLaunch is false (default), don't start Chrome automatically
|
|
@@ -216,13 +232,13 @@ class ChromeLauncher {
|
|
|
216
232
|
` chrome --remote-debugging-port=${port}\n\n` +
|
|
217
233
|
`Or use --auto-launch flag to start Chrome automatically.`);
|
|
218
234
|
}
|
|
219
|
-
// Graceful restart:
|
|
220
|
-
//
|
|
221
|
-
|
|
222
|
-
if (!options.useTempProfile) {
|
|
235
|
+
// Graceful restart: only when explicitly opted in via --restart-chrome flag.
|
|
236
|
+
// Default behavior: skip restart, fall through to temp profile + cookie copy.
|
|
237
|
+
const restartChrome = options.restartChrome ?? (0, global_1.getGlobalConfig)().restartChrome ?? false;
|
|
238
|
+
if (!options.useTempProfile && restartChrome) {
|
|
223
239
|
const realProfileDir = this.getRealChromeProfileDir();
|
|
224
240
|
if (realProfileDir && this.isProfileLocked(realProfileDir) && this.isChromeRunning()) {
|
|
225
|
-
console.error('[ChromeLauncher]
|
|
241
|
+
console.error('[ChromeLauncher] --restart-chrome: attempting graceful restart...');
|
|
226
242
|
const unlocked = await this.quitAndUnlockProfile(realProfileDir);
|
|
227
243
|
if (unlocked) {
|
|
228
244
|
console.error('[ChromeLauncher] Chrome quit successfully, profile unlocked. Relaunching with debug port...');
|
|
@@ -230,8 +246,6 @@ class ChromeLauncher {
|
|
|
230
246
|
else {
|
|
231
247
|
console.error('[ChromeLauncher] Graceful restart failed, falling back to temp profile...');
|
|
232
248
|
}
|
|
233
|
-
// On success: existing launch logic below detects unlocked profile
|
|
234
|
-
// On failure: falls through to existing temp-profile path
|
|
235
249
|
}
|
|
236
250
|
}
|
|
237
251
|
// Launch new Chrome instance
|
|
@@ -261,44 +275,54 @@ class ChromeLauncher {
|
|
|
261
275
|
if (!chromePath) {
|
|
262
276
|
throw new Error('Chrome not found. Please install Google Chrome or set CHROME_PATH environment variable.');
|
|
263
277
|
}
|
|
264
|
-
//
|
|
265
|
-
//
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
//
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
278
|
+
// Resolve which profile directory to use via ProfileManager.
|
|
279
|
+
// Priority: explicit > temp/headless > real unlocked > persistent (with sync) > persistent (no sync)
|
|
280
|
+
const realProfileDir = this.getRealChromeProfileDir();
|
|
281
|
+
const explicitUserDataDir = options.userDataDir || globalConfig.userDataDir;
|
|
282
|
+
// Skip expensive isProfileLocked check when result won't be used
|
|
283
|
+
const isLocked = (!explicitUserDataDir && !options.useTempProfile && !usingHeadlessShell && realProfileDir)
|
|
284
|
+
? this.isProfileLocked(realProfileDir)
|
|
285
|
+
: false;
|
|
286
|
+
const resolution = this.profileManager.resolveProfile({
|
|
287
|
+
realProfileDir,
|
|
288
|
+
isProfileLocked: isLocked,
|
|
289
|
+
explicitUserDataDir,
|
|
290
|
+
useTempProfile: options.useTempProfile,
|
|
291
|
+
usingHeadlessShell,
|
|
292
|
+
});
|
|
293
|
+
const userDataDir = resolution.userDataDir;
|
|
294
|
+
const profileType = resolution.profileType;
|
|
295
|
+
this.currentProfileType = profileType;
|
|
296
|
+
// Track profile state for MCP consumers
|
|
297
|
+
this.profileState = {
|
|
298
|
+
type: profileType,
|
|
299
|
+
extensionsAvailable: profileType === 'real' || profileType === 'explicit',
|
|
300
|
+
...(resolution.syncPerformed && { cookieCopiedAt: Date.now() }),
|
|
301
|
+
...(realProfileDir && profileType === 'persistent' && { sourceProfile: realProfileDir }),
|
|
302
|
+
userDataDir,
|
|
303
|
+
};
|
|
304
|
+
if (resolution.syncPerformed) {
|
|
305
|
+
console.error(`[ChromeLauncher] Using persistent profile with fresh cookie sync: ${userDataDir}`);
|
|
290
306
|
}
|
|
291
|
-
if (
|
|
292
|
-
|
|
293
|
-
|
|
307
|
+
else if (profileType === 'persistent') {
|
|
308
|
+
console.error(`[ChromeLauncher] Using persistent profile (cookies fresh): ${userDataDir}`);
|
|
309
|
+
}
|
|
310
|
+
else if (profileType === 'real') {
|
|
311
|
+
console.error(`[ChromeLauncher] Using real Chrome profile: ${userDataDir}`);
|
|
312
|
+
}
|
|
313
|
+
else if (profileType === 'temp') {
|
|
294
314
|
console.error(`[ChromeLauncher] Using temp profile: ${userDataDir}`);
|
|
295
315
|
}
|
|
316
|
+
else {
|
|
317
|
+
console.error(`[ChromeLauncher] Using explicit profile: ${userDataDir}`);
|
|
318
|
+
}
|
|
296
319
|
fs.mkdirSync(userDataDir, { recursive: true });
|
|
297
320
|
const args = [
|
|
298
321
|
`--remote-debugging-port=${port}`,
|
|
299
322
|
`--user-data-dir=${userDataDir}`,
|
|
300
323
|
'--no-first-run',
|
|
301
324
|
'--no-default-browser-check',
|
|
325
|
+
'--no-restore-last-session',
|
|
302
326
|
// IMPORTANT: Start maximized for proper debugging experience
|
|
303
327
|
'--start-maximized',
|
|
304
328
|
// Fallback window size if maximize doesn't work
|
|
@@ -311,8 +335,8 @@ class ChromeLauncher {
|
|
|
311
335
|
'--disable-backgrounding-occluded-windows',
|
|
312
336
|
'--disable-ipc-flooding-protection',
|
|
313
337
|
];
|
|
314
|
-
// Only disable background features for
|
|
315
|
-
if (
|
|
338
|
+
// Only disable background features for non-real profiles
|
|
339
|
+
if (profileType !== 'real') {
|
|
316
340
|
args.push('--disable-background-networking', '--disable-sync', '--disable-translate', '--metrics-recording-only', '--disable-extensions', '--disable-component-extensions-with-background-pages', '--disable-default-apps');
|
|
317
341
|
}
|
|
318
342
|
// Headless mode: explicit option > global config (default when auto-launch)
|
|
@@ -341,13 +365,18 @@ class ChromeLauncher {
|
|
|
341
365
|
// Note: On Windows, detached processes create a new process group.
|
|
342
366
|
// Killing the root process may not clean up child processes (renderers, GPU).
|
|
343
367
|
// The oc_stop tool handles this via session/pool cleanup before process kill.
|
|
344
|
-
//
|
|
345
|
-
|
|
368
|
+
// Log Chrome process exit for immediate diagnostics
|
|
369
|
+
chromeProcess.once('exit', (code, signal) => {
|
|
370
|
+
console.error(`[ChromeLauncher] Chrome process exited (code: ${code}, signal: ${signal})`);
|
|
371
|
+
});
|
|
372
|
+
// Wait for debug port — pass chromeProcess for fast-fail on premature exit
|
|
373
|
+
const wsEndpoint = await waitForDebugPort(port, 30000, chromeProcess);
|
|
346
374
|
this.instance = {
|
|
347
375
|
wsEndpoint,
|
|
348
376
|
httpEndpoint: `http://127.0.0.1:${port}`,
|
|
349
377
|
process: chromeProcess,
|
|
350
378
|
userDataDir,
|
|
379
|
+
profileType,
|
|
351
380
|
};
|
|
352
381
|
console.error(`[ChromeLauncher] Chrome ready at ${wsEndpoint}`);
|
|
353
382
|
return this.instance;
|
|
@@ -390,10 +419,12 @@ class ChromeLauncher {
|
|
|
390
419
|
else {
|
|
391
420
|
this.instance.process.kill();
|
|
392
421
|
}
|
|
393
|
-
// Clean up user data dir
|
|
394
|
-
|
|
422
|
+
// Clean up user data dir — only delete temp profiles.
|
|
423
|
+
// Persistent profiles survive across sessions; real/explicit profiles are never ours to delete.
|
|
424
|
+
if (this.instance.userDataDir && this.currentProfileType === 'temp') {
|
|
395
425
|
try {
|
|
396
426
|
fs.rmSync(this.instance.userDataDir, { recursive: true, force: true });
|
|
427
|
+
console.error(`[ChromeLauncher] Cleaned up temp profile: ${this.instance.userDataDir}`);
|
|
397
428
|
}
|
|
398
429
|
catch {
|
|
399
430
|
// Ignore cleanup errors
|
|
@@ -408,6 +439,26 @@ class ChromeLauncher {
|
|
|
408
439
|
isConnected() {
|
|
409
440
|
return this.instance !== null;
|
|
410
441
|
}
|
|
442
|
+
/**
|
|
443
|
+
* Get the port this launcher is configured for
|
|
444
|
+
*/
|
|
445
|
+
getPort() {
|
|
446
|
+
return this.port;
|
|
447
|
+
}
|
|
448
|
+
/**
|
|
449
|
+
* Get the current profile type. Useful for MCP consumers to understand
|
|
450
|
+
* what capabilities are available (e.g., extensions only with 'real' profile).
|
|
451
|
+
*/
|
|
452
|
+
getProfileType() {
|
|
453
|
+
return this.currentProfileType;
|
|
454
|
+
}
|
|
455
|
+
/**
|
|
456
|
+
* Get the current profile state.
|
|
457
|
+
* Describes what type of Chrome profile is in use and its capabilities.
|
|
458
|
+
*/
|
|
459
|
+
getProfileState() {
|
|
460
|
+
return { ...this.profileState };
|
|
461
|
+
}
|
|
411
462
|
/**
|
|
412
463
|
* Get the real Chrome profile directory for the current platform
|
|
413
464
|
*/
|
|
@@ -439,71 +490,9 @@ class ChromeLauncher {
|
|
|
439
490
|
return null;
|
|
440
491
|
}
|
|
441
492
|
/**
|
|
442
|
-
*
|
|
443
|
-
*
|
|
444
|
-
*
|
|
445
|
-
*
|
|
446
|
-
* Cookie decryption by platform:
|
|
447
|
-
* - macOS: Chrome uses Keychain key "Chrome Safe Storage". Same binary + same user = works.
|
|
448
|
-
* - Linux: Chrome uses gnome-keyring or kwallet. Same user session = works.
|
|
449
|
-
* - Windows: Chrome uses DPAPI tied to user account. Same user = works.
|
|
450
|
-
* In all cases, launching the same Chrome binary as the same OS user allows
|
|
451
|
-
* the new instance to decrypt the copied cookies.
|
|
452
|
-
*/
|
|
453
|
-
copyEssentialProfileData(sourceDir, destDir) {
|
|
454
|
-
try {
|
|
455
|
-
const destDefault = path.join(destDir, 'Default');
|
|
456
|
-
fs.mkdirSync(destDefault, { recursive: true });
|
|
457
|
-
// Copy Local State (contains OS crypt config, encryption key references)
|
|
458
|
-
const localStateSrc = path.join(sourceDir, 'Local State');
|
|
459
|
-
if (fs.existsSync(localStateSrc)) {
|
|
460
|
-
fs.copyFileSync(localStateSrc, path.join(destDir, 'Local State'));
|
|
461
|
-
}
|
|
462
|
-
// Copy cookie database files from Default profile.
|
|
463
|
-
// Chrome uses SQLite WAL mode, so we copy in order: main DB → WAL → SHM → journal.
|
|
464
|
-
// If the main DB copy races with a Chrome write, the WAL file provides recovery.
|
|
465
|
-
// This is safe for read-only consumption by the new Chrome instance.
|
|
466
|
-
const cookieFiles = ['Cookies', 'Cookies-wal', 'Cookies-shm', 'Cookies-journal'];
|
|
467
|
-
let copiedCount = 0;
|
|
468
|
-
for (const file of cookieFiles) {
|
|
469
|
-
const src = path.join(sourceDir, 'Default', file);
|
|
470
|
-
if (fs.existsSync(src)) {
|
|
471
|
-
try {
|
|
472
|
-
fs.copyFileSync(src, path.join(destDefault, file));
|
|
473
|
-
copiedCount++;
|
|
474
|
-
}
|
|
475
|
-
catch {
|
|
476
|
-
// Individual file copy failure is non-fatal (e.g., WAL may not exist)
|
|
477
|
-
}
|
|
478
|
-
}
|
|
479
|
-
}
|
|
480
|
-
// Copy and patch Preferences to prevent "Chrome didn't shut down correctly" prompt.
|
|
481
|
-
// The source Preferences has exit_type:"Crashed" while Chrome is running.
|
|
482
|
-
const prefsSrc = path.join(sourceDir, 'Default', 'Preferences');
|
|
483
|
-
if (fs.existsSync(prefsSrc)) {
|
|
484
|
-
try {
|
|
485
|
-
const prefsContent = fs.readFileSync(prefsSrc, 'utf8');
|
|
486
|
-
const prefs = JSON.parse(prefsContent);
|
|
487
|
-
// Patch exit_type to Normal so Chrome doesn't show recovery prompt
|
|
488
|
-
if (prefs.profile) {
|
|
489
|
-
prefs.profile.exit_type = 'Normal';
|
|
490
|
-
prefs.profile.exited_cleanly = true;
|
|
491
|
-
}
|
|
492
|
-
fs.writeFileSync(path.join(destDefault, 'Preferences'), JSON.stringify(prefs));
|
|
493
|
-
}
|
|
494
|
-
catch {
|
|
495
|
-
// JSON parse failed — skip Preferences entirely.
|
|
496
|
-
// Chrome will create fresh defaults rather than showing a crash recovery prompt.
|
|
497
|
-
}
|
|
498
|
-
}
|
|
499
|
-
console.error(`[ChromeLauncher] Copied essential profile data (${copiedCount} cookie files) from locked profile`);
|
|
500
|
-
}
|
|
501
|
-
catch (err) {
|
|
502
|
-
console.error(`[ChromeLauncher] Failed to copy profile data (non-fatal):`, err);
|
|
503
|
-
}
|
|
504
|
-
}
|
|
505
|
-
/**
|
|
506
|
-
* Check if a Chrome profile directory is locked by another Chrome instance
|
|
493
|
+
* Check if a Chrome profile directory is locked by another Chrome instance.
|
|
494
|
+
* On Unix, validates SingletonLock symlink targets by checking if the PID is alive,
|
|
495
|
+
* so stale lock files from crashed Chrome instances are correctly ignored.
|
|
507
496
|
*/
|
|
508
497
|
isProfileLocked(profileDir) {
|
|
509
498
|
if (os.platform() === 'win32') {
|
|
@@ -515,17 +504,44 @@ class ChromeLauncher {
|
|
|
515
504
|
}
|
|
516
505
|
return false;
|
|
517
506
|
}
|
|
518
|
-
// Unix: Chrome uses SingletonLock
|
|
507
|
+
// Unix: Chrome uses SingletonLock (symlink to "hostname-pid"), SingletonSocket, SingletonCookie
|
|
519
508
|
const lockFiles = [
|
|
520
509
|
path.join(profileDir, 'SingletonLock'),
|
|
521
510
|
path.join(profileDir, 'SingletonSocket'),
|
|
522
511
|
path.join(profileDir, 'SingletonCookie'),
|
|
523
512
|
];
|
|
524
513
|
for (const lockFile of lockFiles) {
|
|
525
|
-
|
|
514
|
+
// Use lstatSync instead of existsSync because SingletonLock is a dangling symlink
|
|
515
|
+
// (target "hostname-pid" doesn't exist as a file), and existsSync follows symlinks.
|
|
516
|
+
try {
|
|
517
|
+
const stats = fs.lstatSync(lockFile);
|
|
518
|
+
// For symlinks (SingletonLock), validate the PID is still alive
|
|
519
|
+
if (stats.isSymbolicLink()) {
|
|
520
|
+
try {
|
|
521
|
+
const target = fs.readlinkSync(lockFile);
|
|
522
|
+
const pid = parseInt(target.split('-').pop(), 10);
|
|
523
|
+
if (!isNaN(pid) && pid > 0) {
|
|
524
|
+
try {
|
|
525
|
+
process.kill(pid, 0); // Signal 0: check if process exists without killing
|
|
526
|
+
}
|
|
527
|
+
catch {
|
|
528
|
+
// PID not alive → stale lock file left by crashed Chrome, skip it
|
|
529
|
+
console.error(`[ChromeLauncher] Stale lock ignored: ${lockFile} (PID ${pid} not alive)`);
|
|
530
|
+
continue;
|
|
531
|
+
}
|
|
532
|
+
}
|
|
533
|
+
}
|
|
534
|
+
catch {
|
|
535
|
+
// readlinkSync failed — can't validate, assume locked for safety
|
|
536
|
+
}
|
|
537
|
+
}
|
|
526
538
|
console.error(`[ChromeLauncher] Profile locked: ${lockFile} exists`);
|
|
527
539
|
return true;
|
|
528
540
|
}
|
|
541
|
+
catch {
|
|
542
|
+
// lstatSync throws if file doesn't exist → not locked by this file
|
|
543
|
+
continue;
|
|
544
|
+
}
|
|
529
545
|
}
|
|
530
546
|
return false;
|
|
531
547
|
}
|
|
@@ -626,8 +642,12 @@ exports.ChromeLauncher = ChromeLauncher;
|
|
|
626
642
|
// Singleton instance
|
|
627
643
|
let launcherInstance = null;
|
|
628
644
|
function getChromeLauncher(port) {
|
|
629
|
-
|
|
630
|
-
|
|
645
|
+
const resolvedPort = port || DEFAULT_PORT;
|
|
646
|
+
if (!launcherInstance || launcherInstance.getPort() !== resolvedPort) {
|
|
647
|
+
if (launcherInstance) {
|
|
648
|
+
console.error(`[ChromeLauncher] Replacing singleton (port ${launcherInstance.getPort()} → ${resolvedPort})`);
|
|
649
|
+
}
|
|
650
|
+
launcherInstance = new ChromeLauncher(resolvedPort);
|
|
631
651
|
}
|
|
632
652
|
return launcherInstance;
|
|
633
653
|
}
|