@eddym06/custom-chrome-mcp 1.0.4 → 1.1.0
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/CONDITIONAL_DESCRIPTIONS.md +174 -0
- package/FUTURE_FEATURES.txt +1503 -0
- package/README.md +300 -3
- package/TEST_WORKFLOW.md +311 -0
- package/USAGE_GUIDE.md +393 -0
- package/demo_features.ts +115 -0
- package/dist/chrome-connector.d.ts +31 -4
- package/dist/chrome-connector.d.ts.map +1 -1
- package/dist/chrome-connector.js +402 -53
- package/dist/chrome-connector.js.map +1 -1
- package/dist/index.js +69 -12
- package/dist/index.js.map +1 -1
- package/dist/tests/execute-script-tests.d.ts +62 -0
- package/dist/tests/execute-script-tests.d.ts.map +1 -0
- package/dist/tests/execute-script-tests.js +280 -0
- package/dist/tests/execute-script-tests.js.map +1 -0
- package/dist/tests/run-execute-tests.d.ts +7 -0
- package/dist/tests/run-execute-tests.d.ts.map +1 -0
- package/dist/tests/run-execute-tests.js +88 -0
- package/dist/tests/run-execute-tests.js.map +1 -0
- package/dist/tools/advanced-network.backup.d.ts +245 -0
- package/dist/tools/advanced-network.backup.d.ts.map +1 -0
- package/dist/tools/advanced-network.backup.js +996 -0
- package/dist/tools/advanced-network.backup.js.map +1 -0
- package/dist/tools/advanced-network.d.ts +580 -0
- package/dist/tools/advanced-network.d.ts.map +1 -0
- package/dist/tools/advanced-network.js +1325 -0
- package/dist/tools/advanced-network.js.map +1 -0
- package/dist/tools/anti-detection.d.ts.map +1 -1
- package/dist/tools/anti-detection.js +13 -8
- package/dist/tools/anti-detection.js.map +1 -1
- package/dist/tools/capture.d.ts +15 -9
- package/dist/tools/capture.d.ts.map +1 -1
- package/dist/tools/capture.js +21 -12
- package/dist/tools/capture.js.map +1 -1
- package/dist/tools/interaction.d.ts +84 -10
- package/dist/tools/interaction.d.ts.map +1 -1
- package/dist/tools/interaction.js +88 -33
- package/dist/tools/interaction.js.map +1 -1
- package/dist/tools/navigation.d.ts.map +1 -1
- package/dist/tools/navigation.js +43 -21
- package/dist/tools/navigation.js.map +1 -1
- package/dist/tools/network-accessibility.d.ts +67 -0
- package/dist/tools/network-accessibility.d.ts.map +1 -0
- package/dist/tools/network-accessibility.js +367 -0
- package/dist/tools/network-accessibility.js.map +1 -0
- package/dist/tools/playwright-launcher.d.ts +1 -1
- package/dist/tools/playwright-launcher.js +6 -6
- package/dist/tools/playwright-launcher.js.map +1 -1
- package/dist/tools/service-worker.d.ts +2 -2
- package/dist/tools/service-worker.d.ts.map +1 -1
- package/dist/tools/service-worker.js +22 -12
- package/dist/tools/service-worker.js.map +1 -1
- package/dist/tools/session.d.ts.map +1 -1
- package/dist/tools/session.js +23 -14
- package/dist/tools/session.js.map +1 -1
- package/dist/tools/system.d.ts +2 -2
- package/dist/tools/system.d.ts.map +1 -1
- package/dist/tools/system.js +9 -5
- package/dist/tools/system.js.map +1 -1
- package/dist/utils/truncate.d.ts +29 -0
- package/dist/utils/truncate.d.ts.map +1 -0
- package/dist/utils/truncate.js +46 -0
- package/dist/utils/truncate.js.map +1 -0
- package/dist/verify-tools.d.ts +7 -0
- package/dist/verify-tools.d.ts.map +1 -0
- package/dist/verify-tools.js +137 -0
- package/dist/verify-tools.js.map +1 -0
- package/package.json +3 -3
- package/recordings/demo_recording.har +3036 -0
- package/.npmrc.example +0 -2
- package/test-playwright.js +0 -57
package/dist/chrome-connector.js
CHANGED
|
@@ -17,6 +17,7 @@ export class ChromeConnector {
|
|
|
17
17
|
currentTabId = null;
|
|
18
18
|
browserContext = null;
|
|
19
19
|
chromeProcess = null;
|
|
20
|
+
persistentClients = new Map(); // Persistent clients for interceptors
|
|
20
21
|
constructor(port = 9222) {
|
|
21
22
|
this.port = port;
|
|
22
23
|
}
|
|
@@ -27,8 +28,18 @@ export class ChromeConnector {
|
|
|
27
28
|
const platform = os.platform();
|
|
28
29
|
switch (platform) {
|
|
29
30
|
case 'win32':
|
|
31
|
+
const commonPaths = [
|
|
32
|
+
'C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe',
|
|
33
|
+
'C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe',
|
|
34
|
+
`${process.env.LOCALAPPDATA}\\Google\\Chrome\\Application\\chrome.exe`
|
|
35
|
+
];
|
|
36
|
+
let executable = commonPaths.find(p => fs.existsSync(p));
|
|
37
|
+
if (!executable) {
|
|
38
|
+
executable = commonPaths[0];
|
|
39
|
+
console.error('⚠️ Could not find Chrome in common locations. Using default:', executable);
|
|
40
|
+
}
|
|
30
41
|
return {
|
|
31
|
-
executable
|
|
42
|
+
executable,
|
|
32
43
|
userDataDir: `${process.env.LOCALAPPDATA}\\Google\\Chrome\\User Data`
|
|
33
44
|
};
|
|
34
45
|
case 'darwin':
|
|
@@ -130,6 +141,38 @@ export class ChromeConnector {
|
|
|
130
141
|
// Check if port is open
|
|
131
142
|
await this.connect();
|
|
132
143
|
console.error(`✅ Detected and connected to existing Chrome on port ${this.port}`);
|
|
144
|
+
// CHECK: If connected but no pages are open, it might be a background process or invisible.
|
|
145
|
+
// We should try to ensure a window is visible.
|
|
146
|
+
const tabs = await this.listTabs();
|
|
147
|
+
const hasPages = tabs.some(t => t.type === 'page');
|
|
148
|
+
if (!hasPages) {
|
|
149
|
+
console.error('⚠️ Connection active but no open pages found (possible background process). Opening new tab to ensure visibility...');
|
|
150
|
+
try {
|
|
151
|
+
await this.connection?.client.Target.createTarget({ url: 'about:blank' });
|
|
152
|
+
}
|
|
153
|
+
catch (createErr) {
|
|
154
|
+
console.error('❌ Failed to create new target in existing instance:', createErr);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
// Force activation of the first page to ensure window is visible/foreground
|
|
158
|
+
try {
|
|
159
|
+
const currentTabs = await this.listTabs();
|
|
160
|
+
const page = currentTabs.find(t => t.type === 'page');
|
|
161
|
+
if (page) {
|
|
162
|
+
await this.ensureWindowVisible(page.id); // NEW HELPER
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
catch (activateErr) {
|
|
166
|
+
console.error('⚠️ Could not activate window:', activateErr);
|
|
167
|
+
}
|
|
168
|
+
// Verify network connectivity (as requested by user) even for existing instances
|
|
169
|
+
try {
|
|
170
|
+
const { stdout: pingOutput } = await execAsync('ping -n 1 google.com');
|
|
171
|
+
if (pingOutput.includes('TTL=') || pingOutput.includes('tiempo=')) {
|
|
172
|
+
console.error('✅ Network connectivity verified');
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
catch (e) { /* ignore ping failure */ }
|
|
133
176
|
return;
|
|
134
177
|
}
|
|
135
178
|
catch (e) {
|
|
@@ -170,74 +213,173 @@ export class ChromeConnector {
|
|
|
170
213
|
'--password-store=basic'
|
|
171
214
|
];
|
|
172
215
|
console.error(` Args: ${JSON.stringify(args)}`);
|
|
173
|
-
//
|
|
174
|
-
|
|
216
|
+
// Use standard spawn with file logging for detachment + debug
|
|
217
|
+
const logFile = path.join(os.tmpdir(), 'chrome-mcp-debug.log');
|
|
218
|
+
// Ensure we can write to log file
|
|
219
|
+
try {
|
|
220
|
+
fs.writeFileSync(logFile, '');
|
|
221
|
+
}
|
|
222
|
+
catch (e) { }
|
|
223
|
+
console.error(` Logging to: ${logFile}`);
|
|
224
|
+
// Keep Chrome as a child process - it will survive as long as the MCP server is running
|
|
225
|
+
const out = fs.openSync(logFile, 'a');
|
|
226
|
+
const err = fs.openSync(logFile, 'a');
|
|
175
227
|
this.chromeProcess = spawn(executablePath, args, {
|
|
176
|
-
detached:
|
|
177
|
-
stdio: ['ignore',
|
|
228
|
+
detached: false, // Keep as child
|
|
229
|
+
stdio: ['ignore', out, err],
|
|
178
230
|
windowsHide: false
|
|
179
231
|
});
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
this.chromeProcess
|
|
183
|
-
|
|
184
|
-
console.error(`Chrome Err: ${data.toString()}`);
|
|
185
|
-
});
|
|
186
|
-
}
|
|
187
|
-
const processExited = new Promise((_, reject) => {
|
|
188
|
-
this.chromeProcess?.on('exit', (code) => {
|
|
189
|
-
if (code !== 0) {
|
|
190
|
-
reject(new Error(`Chrome process exited immediately with code ${code}. Logs: ${startupLogs}`));
|
|
191
|
-
}
|
|
192
|
-
});
|
|
193
|
-
this.chromeProcess?.on('error', (err) => {
|
|
194
|
-
reject(new Error(`Failed to spawn Chrome process: ${err.message}`));
|
|
195
|
-
});
|
|
232
|
+
// Setup process death detection
|
|
233
|
+
this.chromeProcess.on('exit', (code, signal) => {
|
|
234
|
+
console.error(`⚠️ Chrome process died (PID: ${this.chromeProcess?.pid}, code: ${code}, signal: ${signal})`);
|
|
235
|
+
this.handleProcessDeath();
|
|
196
236
|
});
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
237
|
+
this.chromeProcess.on('error', (err) => {
|
|
238
|
+
console.error(`⚠️ Chrome process error:`, err);
|
|
239
|
+
this.handleProcessDeath();
|
|
240
|
+
});
|
|
241
|
+
// Don't call unref() - keep the process attached to the MCP server
|
|
242
|
+
console.error(`✅ Chrome process spawned (PID: ${this.chromeProcess.pid})`);
|
|
243
|
+
// Close file descriptors after Chrome has started
|
|
244
|
+
setTimeout(() => {
|
|
245
|
+
try {
|
|
246
|
+
fs.closeSync(out);
|
|
247
|
+
fs.closeSync(err);
|
|
248
|
+
}
|
|
249
|
+
catch (e) { }
|
|
250
|
+
}, 5000);
|
|
251
|
+
// ENHANCED VERIFICATION SYSTEM
|
|
252
|
+
// Wait 3 seconds before starting verification
|
|
253
|
+
console.error('⏳ Waiting 3 seconds for Chrome to fully initialize...');
|
|
254
|
+
await new Promise(r => setTimeout(r, 3000));
|
|
255
|
+
// Step 1: Verify process is still running via system command
|
|
256
|
+
console.error('🔍 Step 1: Verifying Chrome process is running...');
|
|
257
|
+
// Wait for Chrome to initialize
|
|
258
|
+
const waitTime = 3000;
|
|
259
|
+
console.error(`⏳ Waiting ${waitTime}ms for process to settle...`);
|
|
260
|
+
await new Promise(r => setTimeout(r, waitTime));
|
|
261
|
+
// Verify process is still running
|
|
262
|
+
if (this.chromeProcess && this.chromeProcess.pid) {
|
|
263
|
+
try {
|
|
264
|
+
const platform = os.platform();
|
|
265
|
+
let processCheckCmd;
|
|
266
|
+
if (platform === 'win32') {
|
|
267
|
+
processCheckCmd = `powershell -Command "Get-Process -Id ${this.chromeProcess.pid} -ErrorAction SilentlyContinue | Where-Object { $_.MainWindowHandle -ne 0 } | Select-Object -ExpandProperty ProcessName"`;
|
|
268
|
+
}
|
|
269
|
+
else {
|
|
270
|
+
processCheckCmd = `ps -p ${this.chromeProcess.pid} -o comm=`;
|
|
271
|
+
}
|
|
272
|
+
const { stdout } = await execAsync(processCheckCmd);
|
|
273
|
+
const processName = stdout.trim();
|
|
274
|
+
if (processName) {
|
|
275
|
+
console.error(`✅ Process verified: ${processName} (PID: ${this.chromeProcess.pid})`);
|
|
276
|
+
}
|
|
277
|
+
else {
|
|
278
|
+
throw new Error('Process not found in system');
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
catch (procErr) {
|
|
282
|
+
throw new Error(`Chrome process verification failed: ${procErr.message}`);
|
|
283
|
+
}
|
|
203
284
|
}
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
285
|
+
// Step 2: Verify port is listening
|
|
286
|
+
console.error(`🔍 Step 2: Verifying CDP port ${this.port} is listening...`);
|
|
287
|
+
try {
|
|
288
|
+
const platform = os.platform();
|
|
289
|
+
let portCheckCmd;
|
|
290
|
+
if (platform === 'win32') {
|
|
291
|
+
portCheckCmd = `powershell -Command "netstat -ano | Select-String ':${this.port}' | Select-String 'LISTENING'"`;
|
|
292
|
+
}
|
|
293
|
+
else {
|
|
294
|
+
portCheckCmd = `lsof -i :${this.port} | grep LISTEN || netstat -an | grep ${this.port}`;
|
|
295
|
+
}
|
|
296
|
+
const { stdout: portOutput } = await execAsync(portCheckCmd);
|
|
297
|
+
if (portOutput.trim()) {
|
|
298
|
+
console.error(`✅ Port ${this.port} is listening`);
|
|
299
|
+
}
|
|
300
|
+
else {
|
|
301
|
+
throw new Error('Port not listening');
|
|
302
|
+
}
|
|
207
303
|
}
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
if (this.chromeProcess.stderr) {
|
|
211
|
-
this.chromeProcess.stderr.destroy();
|
|
304
|
+
catch (portErr) {
|
|
305
|
+
console.error(`⚠️ Port check inconclusive, proceeding with CDP connection test...`);
|
|
212
306
|
}
|
|
213
|
-
|
|
214
|
-
|
|
307
|
+
// Step 3: Connect to CDP with retries
|
|
308
|
+
console.error('🔍 Step 3: Connecting to CDP...');
|
|
215
309
|
let connected = false;
|
|
216
|
-
for (let i = 0; i <
|
|
310
|
+
for (let i = 0; i < 8; i++) {
|
|
217
311
|
try {
|
|
218
312
|
await this.connect();
|
|
219
313
|
connected = true;
|
|
314
|
+
console.error(`✅ CDP connection established (attempt ${i + 1})`);
|
|
220
315
|
break;
|
|
221
316
|
}
|
|
222
317
|
catch (e) {
|
|
223
|
-
console.error(`
|
|
318
|
+
console.error(` Attempt ${i + 1}/8 failed. Retrying in 1s...`);
|
|
224
319
|
await new Promise(r => setTimeout(r, 1000));
|
|
225
320
|
}
|
|
226
321
|
}
|
|
227
322
|
if (!connected) {
|
|
228
|
-
|
|
323
|
+
let logs = 'Check log file';
|
|
324
|
+
try {
|
|
325
|
+
logs = fs.readFileSync(logFile, 'utf8');
|
|
326
|
+
}
|
|
327
|
+
catch (e) { }
|
|
328
|
+
throw new Error(`Chrome process is running (PID ${this.chromeProcess.pid}) but CDP port ${this.port} is not accessible after 15s. Logs: ${logs}`);
|
|
229
329
|
}
|
|
230
|
-
//
|
|
330
|
+
// Step 4: Verify browser is responsive (can list targets)
|
|
331
|
+
console.error('🔍 Step 4: Verifying browser responsiveness...');
|
|
231
332
|
try {
|
|
232
|
-
|
|
233
|
-
console.error(`✅
|
|
333
|
+
let targets = await this.listTabs();
|
|
334
|
+
console.error(`✅ Browser responsive: Found ${targets.length} targets`);
|
|
234
335
|
if (targets.length === 0) {
|
|
235
|
-
console.error('⚠️ Warning: Browser running but no targets found.');
|
|
336
|
+
console.error('⚠️ Warning: Browser running but no targets found. Creating initial tab...');
|
|
337
|
+
try {
|
|
338
|
+
await this.connection?.client.Target.createTarget({ url: 'about:blank' });
|
|
339
|
+
console.error('✅ Initial tab created');
|
|
340
|
+
targets = await this.listTabs(); // Refresh targets
|
|
341
|
+
}
|
|
342
|
+
catch (createErr) {
|
|
343
|
+
console.error('⚠️ Could not create initial tab:', createErr);
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
// Force activation of the first page to ensure window is visible/foreground
|
|
347
|
+
const page = targets.find(t => t.type === 'page');
|
|
348
|
+
if (page) {
|
|
349
|
+
try {
|
|
350
|
+
await this.ensureWindowVisible(page.id); // NEW HELPER
|
|
351
|
+
// Inject visual feedback (UX)
|
|
352
|
+
await this.injectConnectionStatus(page.id);
|
|
353
|
+
}
|
|
354
|
+
catch (activateErr) {
|
|
355
|
+
console.error('⚠️ Could not activate window:', activateErr);
|
|
356
|
+
}
|
|
236
357
|
}
|
|
237
358
|
}
|
|
238
359
|
catch (verErr) {
|
|
239
360
|
console.error('⚠️ Warning: Could not verify targets listing:', verErr);
|
|
240
361
|
}
|
|
362
|
+
// Step 5: Verify network connectivity and Chrome window visibility
|
|
363
|
+
console.error('🔍 Step 5: Verifying network connectivity and browser visibility...');
|
|
364
|
+
try {
|
|
365
|
+
// Test network connectivity with ping
|
|
366
|
+
const { stdout: pingOutput } = await execAsync('ping -n 2 google.com');
|
|
367
|
+
if (pingOutput.includes('TTL=') || pingOutput.includes('tiempo=')) {
|
|
368
|
+
console.error('✅ Network connectivity verified (google.com reachable)');
|
|
369
|
+
}
|
|
370
|
+
else {
|
|
371
|
+
console.error('⚠️ Network connectivity test inconclusive');
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
catch (pingErr) {
|
|
375
|
+
console.error('⚠️ Network test failed (this may be normal if offline):', pingErr.message);
|
|
376
|
+
}
|
|
377
|
+
console.error('');
|
|
378
|
+
console.error('🎉 Chrome launch verification complete!');
|
|
379
|
+
console.error(` Process: Running (PID ${this.chromeProcess.pid})`);
|
|
380
|
+
console.error(` Port: ${this.port}`);
|
|
381
|
+
console.error(` CDP: Connected`);
|
|
382
|
+
console.error(` Status: Ready`);
|
|
241
383
|
// Optional: Try to attach Playwright over CDP for advanced features if needed
|
|
242
384
|
try {
|
|
243
385
|
const browser = await chromium.connectOverCDP(`http://localhost:${this.port}`);
|
|
@@ -249,6 +391,35 @@ export class ChromeConnector {
|
|
|
249
391
|
console.error('⚠️ Could not attach Playwright wrapper (CDP still works):', pwError.message);
|
|
250
392
|
}
|
|
251
393
|
}
|
|
394
|
+
/**
|
|
395
|
+
* Handle Chrome process death - cleanup internal state
|
|
396
|
+
*/
|
|
397
|
+
handleProcessDeath() {
|
|
398
|
+
console.error('🧹 Cleaning up internal state due to Chrome process death...');
|
|
399
|
+
// Clear connection
|
|
400
|
+
if (this.connection) {
|
|
401
|
+
try {
|
|
402
|
+
this.connection.client.close().catch(() => { });
|
|
403
|
+
}
|
|
404
|
+
catch (e) { }
|
|
405
|
+
this.connection = null;
|
|
406
|
+
}
|
|
407
|
+
// Clear browser context
|
|
408
|
+
if (this.browserContext) {
|
|
409
|
+
try {
|
|
410
|
+
const browser = this.browserContext.browser();
|
|
411
|
+
if (browser) {
|
|
412
|
+
browser.close().catch(() => { });
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
catch (e) { }
|
|
416
|
+
this.browserContext = null;
|
|
417
|
+
}
|
|
418
|
+
// Clear process reference
|
|
419
|
+
this.chromeProcess = null;
|
|
420
|
+
this.currentTabId = null;
|
|
421
|
+
console.error('✅ Internal state cleared. Ready for new launch.');
|
|
422
|
+
}
|
|
252
423
|
/**
|
|
253
424
|
* Disconnect from Chrome and close Playwright browser
|
|
254
425
|
*/
|
|
@@ -316,6 +487,38 @@ export class ChromeConnector {
|
|
|
316
487
|
isConnected() {
|
|
317
488
|
return this.connection?.connected ?? false;
|
|
318
489
|
}
|
|
490
|
+
/**
|
|
491
|
+
* Get the CDP port number
|
|
492
|
+
*/
|
|
493
|
+
getPort() {
|
|
494
|
+
return this.port;
|
|
495
|
+
}
|
|
496
|
+
/**
|
|
497
|
+
* Verify Chrome is alive and connected to port 9222
|
|
498
|
+
* Throws error if connection is dead
|
|
499
|
+
*/
|
|
500
|
+
async verifyConnection() {
|
|
501
|
+
// Check if we think we're connected
|
|
502
|
+
if (!this.connection?.connected) {
|
|
503
|
+
throw new Error('Not connected to Chrome. Launch Chrome first using launch_chrome_with_profile.');
|
|
504
|
+
}
|
|
505
|
+
// Verify port is actually accessible
|
|
506
|
+
try {
|
|
507
|
+
const targets = await CDP.List({ port: this.port });
|
|
508
|
+
if (!targets || targets.length === 0) {
|
|
509
|
+
throw new Error('Chrome CDP is accessible but no targets found');
|
|
510
|
+
}
|
|
511
|
+
console.error(`✅ Connection verified: ${targets.length} targets on port ${this.port}`);
|
|
512
|
+
}
|
|
513
|
+
catch (error) {
|
|
514
|
+
const err = error;
|
|
515
|
+
// Connection is dead - clean up
|
|
516
|
+
this.handleProcessDeath();
|
|
517
|
+
throw new Error(`Chrome connection is dead (port ${this.port} not responding). ` +
|
|
518
|
+
`Chrome may have been killed externally. Please launch Chrome again. ` +
|
|
519
|
+
`Error: ${err.message}`);
|
|
520
|
+
}
|
|
521
|
+
}
|
|
319
522
|
/**
|
|
320
523
|
* List all open tabs and targets (including service workers)
|
|
321
524
|
*/
|
|
@@ -393,16 +596,17 @@ export class ChromeConnector {
|
|
|
393
596
|
const target = tabId || this.currentTabId;
|
|
394
597
|
if (!target) {
|
|
395
598
|
// Get the first available tab
|
|
396
|
-
// If this fails, it means Chrome is definitely not
|
|
599
|
+
// If this fails, it means Chrome is definitely not connected
|
|
397
600
|
let tabs;
|
|
398
601
|
try {
|
|
399
602
|
tabs = await this.listTabs();
|
|
400
603
|
}
|
|
401
604
|
catch (e) {
|
|
402
|
-
|
|
605
|
+
console.error(`Debug: listTabs failed on port ${this.port}. Error: ${e.message}`);
|
|
606
|
+
throw new Error(`Connection failed on port ${this.port}. Is Chrome running? Original Error: ${e.message}`);
|
|
403
607
|
}
|
|
404
608
|
if (tabs.length === 0) {
|
|
405
|
-
throw new Error(
|
|
609
|
+
throw new Error(`Chrome is accessible on port ${this.port} but has no open tabs/pages.`);
|
|
406
610
|
}
|
|
407
611
|
return await CDP({ port: this.port, target: tabs[0].id });
|
|
408
612
|
}
|
|
@@ -411,7 +615,7 @@ export class ChromeConnector {
|
|
|
411
615
|
catch (error) {
|
|
412
616
|
const err = error;
|
|
413
617
|
if (err.message && (err.message.includes('ECONNREFUSED') || err.message.includes('connect'))) {
|
|
414
|
-
throw new Error(
|
|
618
|
+
throw new Error(`Chrome connection refused on port ${this.port}. The browser might have closed or blocked the connection. Error: ${err.message}`);
|
|
415
619
|
}
|
|
416
620
|
throw new Error(`Failed to get tab client: ${err.message}`);
|
|
417
621
|
}
|
|
@@ -441,12 +645,6 @@ export class ChromeConnector {
|
|
|
441
645
|
throw new Error(`Failed to get Chrome version: ${error.message}`);
|
|
442
646
|
}
|
|
443
647
|
}
|
|
444
|
-
/**
|
|
445
|
-
* Get current port
|
|
446
|
-
*/
|
|
447
|
-
getPort() {
|
|
448
|
-
return this.port;
|
|
449
|
-
}
|
|
450
648
|
/**
|
|
451
649
|
* Set current tab
|
|
452
650
|
*/
|
|
@@ -459,5 +657,156 @@ export class ChromeConnector {
|
|
|
459
657
|
getCurrentTabId() {
|
|
460
658
|
return this.currentTabId;
|
|
461
659
|
}
|
|
660
|
+
/**
|
|
661
|
+
* Get or create a persistent client for interceptors
|
|
662
|
+
* These clients stay alive for the entire session
|
|
663
|
+
*/
|
|
664
|
+
async getPersistentClient(tabId) {
|
|
665
|
+
const effectiveTabId = tabId || 'default';
|
|
666
|
+
// Return existing persistent client if available
|
|
667
|
+
if (this.persistentClients.has(effectiveTabId)) {
|
|
668
|
+
return this.persistentClients.get(effectiveTabId);
|
|
669
|
+
}
|
|
670
|
+
// Create new persistent client using same logic as getTabClient
|
|
671
|
+
const target = tabId || this.currentTabId;
|
|
672
|
+
let targetId = target;
|
|
673
|
+
if (!targetId) {
|
|
674
|
+
const tabs = await this.listTabs();
|
|
675
|
+
if (tabs.length === 0) {
|
|
676
|
+
throw new Error('No open tabs available');
|
|
677
|
+
}
|
|
678
|
+
targetId = tabs[0].id;
|
|
679
|
+
}
|
|
680
|
+
const client = await CDP({ port: this.port, target: targetId });
|
|
681
|
+
// Store it persistently
|
|
682
|
+
this.persistentClients.set(effectiveTabId, client);
|
|
683
|
+
console.error(`[Persistent Client] Created for tab: ${effectiveTabId}`);
|
|
684
|
+
return client;
|
|
685
|
+
}
|
|
686
|
+
/**
|
|
687
|
+
* Close persistent client (used when disabling interceptors)
|
|
688
|
+
*/
|
|
689
|
+
async closePersistentClient(tabId) {
|
|
690
|
+
const effectiveTabId = tabId || 'default';
|
|
691
|
+
if (this.persistentClients.has(effectiveTabId)) {
|
|
692
|
+
const client = this.persistentClients.get(effectiveTabId);
|
|
693
|
+
try {
|
|
694
|
+
await client.close();
|
|
695
|
+
}
|
|
696
|
+
catch (e) {
|
|
697
|
+
console.error(`[Persistent Client] Error closing client:`, e);
|
|
698
|
+
}
|
|
699
|
+
this.persistentClients.delete(effectiveTabId);
|
|
700
|
+
console.error(`[Persistent Client] Closed for tab: ${effectiveTabId}`);
|
|
701
|
+
}
|
|
702
|
+
}
|
|
703
|
+
/**
|
|
704
|
+
* Helper to inject a visual connection status toast into the page
|
|
705
|
+
*/
|
|
706
|
+
async injectConnectionStatus(targetId) {
|
|
707
|
+
try {
|
|
708
|
+
const client = await this.getTabClient(targetId);
|
|
709
|
+
await client.Runtime.evaluate({
|
|
710
|
+
expression: `
|
|
711
|
+
(function() {
|
|
712
|
+
try {
|
|
713
|
+
const id = 'mcp-status-toast';
|
|
714
|
+
const existing = document.getElementById(id);
|
|
715
|
+
if(existing) existing.remove();
|
|
716
|
+
const div = document.createElement('div');
|
|
717
|
+
div.id = id;
|
|
718
|
+
div.innerHTML = "🤖 MCP Agent Conectado";
|
|
719
|
+
div.style = "position:fixed;bottom:20px;right:20px;background:#22c55e;color:white;padding:12px 24px;z-index:2147483647;border-radius:8px;font-family:system-ui,sans-serif;font-weight:bold;box-shadow:0 4px 12px rgba(0,0,0,0.15);transition:opacity 0.5s ease;pointer-events:none;";
|
|
720
|
+
document.body.appendChild(div);
|
|
721
|
+
setTimeout(() => {
|
|
722
|
+
div.style.opacity = '0';
|
|
723
|
+
setTimeout(() => div.remove(), 500);
|
|
724
|
+
}, 5000);
|
|
725
|
+
} catch(e){}
|
|
726
|
+
})()
|
|
727
|
+
`
|
|
728
|
+
});
|
|
729
|
+
}
|
|
730
|
+
catch (e) { /* ignore injection errors */ }
|
|
731
|
+
}
|
|
732
|
+
/**
|
|
733
|
+
* Helper to ensure a specific target's window is visible and restored
|
|
734
|
+
*/
|
|
735
|
+
async ensureWindowVisible(targetId) {
|
|
736
|
+
try {
|
|
737
|
+
const client = this.getConnection().client;
|
|
738
|
+
// 1. Activate using Target domain
|
|
739
|
+
await client.Target.activateTarget({ targetId });
|
|
740
|
+
console.error('✅ Target activated');
|
|
741
|
+
// 2. Try to get window state using Browser domain (if supported)
|
|
742
|
+
try {
|
|
743
|
+
// Get window for target
|
|
744
|
+
const { windowId, bounds } = await client.Browser.getWindowForTarget({ targetId });
|
|
745
|
+
// Check for negative/impossible coordinates (common multi-monitor issue)
|
|
746
|
+
const isOffScreen = (bounds.left !== undefined && bounds.left < 0) ||
|
|
747
|
+
(bounds.top !== undefined && bounds.top < 0);
|
|
748
|
+
if (isOffScreen) {
|
|
749
|
+
console.error('⚠️ Window detected off-screen. Recentering...');
|
|
750
|
+
await client.Browser.setWindowBounds({
|
|
751
|
+
windowId,
|
|
752
|
+
bounds: { left: 100, top: 100, width: 1280, height: 720, windowState: 'normal' }
|
|
753
|
+
});
|
|
754
|
+
console.error('✅ Window recentered');
|
|
755
|
+
}
|
|
756
|
+
else if (bounds.windowState === 'minimized' || bounds.windowState === 'hidden') {
|
|
757
|
+
console.error(`⚠️ Window is ${bounds.windowState}, restoring...`);
|
|
758
|
+
await client.Browser.setWindowBounds({
|
|
759
|
+
windowId,
|
|
760
|
+
bounds: { windowState: 'normal' }
|
|
761
|
+
});
|
|
762
|
+
console.error('✅ Window restored to normal state');
|
|
763
|
+
}
|
|
764
|
+
else {
|
|
765
|
+
// If it's already normal/maximized/fullscreen, still good to ensure focus
|
|
766
|
+
console.error(`Status: Window state is '${bounds.windowState}'`);
|
|
767
|
+
}
|
|
768
|
+
}
|
|
769
|
+
catch (browserErr) {
|
|
770
|
+
// Browser domain might not be fully supported in all versions or contexts
|
|
771
|
+
console.error('⚠️ Could not check window state via Browser domain (optional):', browserErr.message);
|
|
772
|
+
}
|
|
773
|
+
// 3. Fallback: Windows specific PowerShell to force window to front
|
|
774
|
+
if (os.platform() === 'win32') {
|
|
775
|
+
let pid = this.chromeProcess?.pid;
|
|
776
|
+
// If we don't have PID (we connected to existing instance), try to get it via CDP SystemInfo
|
|
777
|
+
if (!pid) {
|
|
778
|
+
try {
|
|
779
|
+
const sysInfo = await client.SystemInfo.getProcessInfo();
|
|
780
|
+
// find browser process
|
|
781
|
+
const browserProc = sysInfo.processInfo.find((p) => p.type === 'browser');
|
|
782
|
+
if (browserProc) {
|
|
783
|
+
pid = browserProc.id;
|
|
784
|
+
console.error(`Status: Identified Chrome PID ${pid} via CDP`);
|
|
785
|
+
}
|
|
786
|
+
}
|
|
787
|
+
catch (e) {
|
|
788
|
+
// SystemInfo might not be available
|
|
789
|
+
}
|
|
790
|
+
}
|
|
791
|
+
if (pid) {
|
|
792
|
+
const psCmd = `
|
|
793
|
+
Add-Type -AssemblyName Microsoft.VisualBasic
|
|
794
|
+
[Microsoft.VisualBasic.Interaction]::AppActivate(${pid})
|
|
795
|
+
`;
|
|
796
|
+
try {
|
|
797
|
+
// We use execAsync to run the powershell command
|
|
798
|
+
await execAsync(`powershell -Command "${psCmd}"`);
|
|
799
|
+
console.error('✅ Windows API Activate executed (Foreground Forced)');
|
|
800
|
+
}
|
|
801
|
+
catch (psErr) {
|
|
802
|
+
console.error('⚠️ Windows API Activate failed:', psErr.message);
|
|
803
|
+
}
|
|
804
|
+
}
|
|
805
|
+
}
|
|
806
|
+
}
|
|
807
|
+
catch (e) {
|
|
808
|
+
console.error('⚠️ Ensure Window Visible failed:', e.message);
|
|
809
|
+
}
|
|
810
|
+
}
|
|
462
811
|
}
|
|
463
812
|
//# sourceMappingURL=chrome-connector.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chrome-connector.js","sourceRoot":"","sources":["../src/chrome-connector.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"chrome-connector.js","sourceRoot":"","sources":["../src/chrome-connector.ts"],"names":[],"mappings":"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"}
|