@eddym06/custom-chrome-mcp 1.0.3 → 1.0.8

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.
Files changed (41) hide show
  1. package/dist/chrome-connector.d.ts +21 -4
  2. package/dist/chrome-connector.d.ts.map +1 -1
  3. package/dist/chrome-connector.js +368 -52
  4. package/dist/chrome-connector.js.map +1 -1
  5. package/dist/index.js +47 -11
  6. package/dist/index.js.map +1 -1
  7. package/dist/tools/anti-detection.d.ts.map +1 -1
  8. package/dist/tools/anti-detection.js +8 -3
  9. package/dist/tools/anti-detection.js.map +1 -1
  10. package/dist/tools/capture.d.ts +8 -8
  11. package/dist/tools/capture.d.ts.map +1 -1
  12. package/dist/tools/capture.js +13 -8
  13. package/dist/tools/capture.js.map +1 -1
  14. package/dist/tools/interaction.d.ts +8 -48
  15. package/dist/tools/interaction.d.ts.map +1 -1
  16. package/dist/tools/interaction.js +29 -17
  17. package/dist/tools/interaction.js.map +1 -1
  18. package/dist/tools/navigation.d.ts.map +1 -1
  19. package/dist/tools/navigation.js +35 -9
  20. package/dist/tools/navigation.js.map +1 -1
  21. package/dist/tools/playwright-launcher.d.ts +1 -1
  22. package/dist/tools/playwright-launcher.js +2 -2
  23. package/dist/tools/playwright-launcher.js.map +1 -1
  24. package/dist/tools/service-worker.d.ts +2 -2
  25. package/dist/tools/service-worker.d.ts.map +1 -1
  26. package/dist/tools/service-worker.js +12 -2
  27. package/dist/tools/service-worker.js.map +1 -1
  28. package/dist/tools/session.d.ts.map +1 -1
  29. package/dist/tools/session.js +14 -5
  30. package/dist/tools/session.js.map +1 -1
  31. package/dist/tools/system.d.ts +2 -2
  32. package/dist/tools/system.d.ts.map +1 -1
  33. package/dist/tools/system.js +6 -2
  34. package/dist/tools/system.js.map +1 -1
  35. package/dist/utils/helpers.d.ts +4 -0
  36. package/dist/utils/helpers.d.ts.map +1 -1
  37. package/dist/utils/helpers.js +20 -0
  38. package/dist/utils/helpers.js.map +1 -1
  39. package/package.json +4 -1
  40. package/.npmrc.example +0 -2
  41. package/test-playwright.js +0 -57
@@ -44,6 +44,10 @@ export declare class ChromeConnector {
44
44
  * This is more robust for persistent profiles than Playwright's launcher
45
45
  */
46
46
  launchWithProfile(options?: LaunchOptions): Promise<void>;
47
+ /**
48
+ * Handle Chrome process death - cleanup internal state
49
+ */
50
+ private handleProcessDeath;
47
51
  /**
48
52
  * Disconnect from Chrome and close Playwright browser
49
53
  */
@@ -68,6 +72,15 @@ export declare class ChromeConnector {
68
72
  * Check if connected
69
73
  */
70
74
  isConnected(): boolean;
75
+ /**
76
+ * Get the CDP port number
77
+ */
78
+ getPort(): number;
79
+ /**
80
+ * Verify Chrome is alive and connected to port 9222
81
+ * Throws error if connection is dead
82
+ */
83
+ verifyConnection(): Promise<void>;
71
84
  /**
72
85
  * List all open tabs and targets (including service workers)
73
86
  */
@@ -100,10 +113,6 @@ export declare class ChromeConnector {
100
113
  * Get Chrome version info
101
114
  */
102
115
  getVersion(): Promise<any>;
103
- /**
104
- * Get current port
105
- */
106
- getPort(): number;
107
116
  /**
108
117
  * Set current tab
109
118
  */
@@ -112,5 +121,13 @@ export declare class ChromeConnector {
112
121
  * Get current tab ID
113
122
  */
114
123
  getCurrentTabId(): string | null;
124
+ /**
125
+ * Helper to inject a visual connection status toast into the page
126
+ */
127
+ injectConnectionStatus(targetId: string): Promise<void>;
128
+ /**
129
+ * Helper to ensure a specific target's window is visible and restored
130
+ */
131
+ ensureWindowVisible(targetId: string): Promise<void>;
115
132
  }
116
133
  //# sourceMappingURL=chrome-connector.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"chrome-connector.d.ts","sourceRoot":"","sources":["../src/chrome-connector.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAA0B,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AASzE,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,GAAG,CAAC;IACZ,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,UAAU,CAAiC;IACnD,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,aAAa,CAA6B;gBAEtC,IAAI,GAAE,MAAa;IAI/B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAwBxB;;;;OAIG;YACW,mBAAmB;IAuEjC;;;OAGG;IACG,iBAAiB,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAqJnE;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAoBjC;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAuB9B;;OAEG;IACH,iBAAiB,IAAI,cAAc,GAAG,IAAI;IAI1C;;OAEG;IACH,mBAAmB,IAAI,OAAO;IAI9B;;OAEG;IACH,aAAa,IAAI,gBAAgB;IAOjC;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAoBpC;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAK7C;;OAEG;IACG,SAAS,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAe/C;;OAEG;IACG,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ5C;;OAEG;IACG,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAS/C;;OAEG;IACG,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAmBhD;;OAEG;IACG,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAWhF;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC;IAShC;;OAEG;IACH,OAAO,IAAI,MAAM;IAIjB;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIlC;;OAEG;IACH,eAAe,IAAI,MAAM,GAAG,IAAI;CAGjC"}
1
+ {"version":3,"file":"chrome-connector.d.ts","sourceRoot":"","sources":["../src/chrome-connector.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAA0B,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AASzE,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,GAAG,CAAC;IACZ,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,UAAU,CAAiC;IACnD,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,aAAa,CAA6B;gBAEtC,IAAI,GAAE,MAAa;IAI/B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAqCxB;;;;OAIG;YACW,mBAAmB;IAuEjC;;;OAGG;IACG,iBAAiB,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IA4RnE;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA6B1B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAoBjC;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAuB9B;;OAEG;IACH,iBAAiB,IAAI,cAAc,GAAG,IAAI;IAI1C;;OAEG;IACH,mBAAmB,IAAI,OAAO;IAI9B;;OAEG;IACH,aAAa,IAAI,gBAAgB;IAOjC;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;OAEG;IACH,OAAO,IAAI,MAAM;IAIjB;;;OAGG;IACG,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAyBvC;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAoBpC;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAK7C;;OAEG;IACG,SAAS,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAe/C;;OAEG;IACG,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ5C;;OAEG;IACG,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAS/C;;OAEG;IACG,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IA+BhD;;OAEG;IACG,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAWhF;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC;IAShC;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIlC;;OAEG;IACH,eAAe,IAAI,MAAM,GAAG,IAAI;IAIhC;;OAEG;IACG,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0B7D;;OAEG;IACG,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CA+E3D"}
@@ -27,8 +27,18 @@ export class ChromeConnector {
27
27
  const platform = os.platform();
28
28
  switch (platform) {
29
29
  case 'win32':
30
+ const commonPaths = [
31
+ 'C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe',
32
+ 'C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe',
33
+ `${process.env.LOCALAPPDATA}\\Google\\Chrome\\Application\\chrome.exe`
34
+ ];
35
+ let executable = commonPaths.find(p => fs.existsSync(p));
36
+ if (!executable) {
37
+ executable = commonPaths[0];
38
+ console.error('⚠️ Could not find Chrome in common locations. Using default:', executable);
39
+ }
30
40
  return {
31
- executable: 'C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe',
41
+ executable,
32
42
  userDataDir: `${process.env.LOCALAPPDATA}\\Google\\Chrome\\User Data`
33
43
  };
34
44
  case 'darwin':
@@ -130,6 +140,38 @@ export class ChromeConnector {
130
140
  // Check if port is open
131
141
  await this.connect();
132
142
  console.error(`✅ Detected and connected to existing Chrome on port ${this.port}`);
143
+ // CHECK: If connected but no pages are open, it might be a background process or invisible.
144
+ // We should try to ensure a window is visible.
145
+ const tabs = await this.listTabs();
146
+ const hasPages = tabs.some(t => t.type === 'page');
147
+ if (!hasPages) {
148
+ console.error('⚠️ Connection active but no open pages found (possible background process). Opening new tab to ensure visibility...');
149
+ try {
150
+ await this.connection?.client.Target.createTarget({ url: 'about:blank' });
151
+ }
152
+ catch (createErr) {
153
+ console.error('❌ Failed to create new target in existing instance:', createErr);
154
+ }
155
+ }
156
+ // Force activation of the first page to ensure window is visible/foreground
157
+ try {
158
+ const currentTabs = await this.listTabs();
159
+ const page = currentTabs.find(t => t.type === 'page');
160
+ if (page) {
161
+ await this.ensureWindowVisible(page.id); // NEW HELPER
162
+ }
163
+ }
164
+ catch (activateErr) {
165
+ console.error('⚠️ Could not activate window:', activateErr);
166
+ }
167
+ // Verify network connectivity (as requested by user) even for existing instances
168
+ try {
169
+ const { stdout: pingOutput } = await execAsync('ping -n 1 google.com');
170
+ if (pingOutput.includes('TTL=') || pingOutput.includes('tiempo=')) {
171
+ console.error('✅ Network connectivity verified');
172
+ }
173
+ }
174
+ catch (e) { /* ignore ping failure */ }
133
175
  return;
134
176
  }
135
177
  catch (e) {
@@ -170,74 +212,173 @@ export class ChromeConnector {
170
212
  '--password-store=basic'
171
213
  ];
172
214
  console.error(` Args: ${JSON.stringify(args)}`);
173
- // Spawn completely detached process to prevent MCP hang
174
- // Using 'pipe' for stderr to capture launch errors if any
215
+ // Use standard spawn with file logging for detachment + debug
216
+ const logFile = path.join(os.tmpdir(), 'chrome-mcp-debug.log');
217
+ // Ensure we can write to log file
218
+ try {
219
+ fs.writeFileSync(logFile, '');
220
+ }
221
+ catch (e) { }
222
+ console.error(` Logging to: ${logFile}`);
223
+ // Keep Chrome as a child process - it will survive as long as the MCP server is running
224
+ const out = fs.openSync(logFile, 'a');
225
+ const err = fs.openSync(logFile, 'a');
175
226
  this.chromeProcess = spawn(executablePath, args, {
176
- detached: true,
177
- stdio: ['ignore', 'ignore', 'pipe'],
227
+ detached: false, // Keep as child
228
+ stdio: ['ignore', out, err],
178
229
  windowsHide: false
179
230
  });
180
- let startupLogs = '';
181
- if (this.chromeProcess.stderr) {
182
- this.chromeProcess.stderr.on('data', (data) => {
183
- startupLogs += data.toString();
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
- });
231
+ // Setup process death detection
232
+ this.chromeProcess.on('exit', (code, signal) => {
233
+ console.error(`⚠️ Chrome process died (PID: ${this.chromeProcess?.pid}, code: ${code}, signal: ${signal})`);
234
+ this.handleProcessDeath();
196
235
  });
197
- // Race condition: wait for 3s OR for the process to exit
198
- // Increased timeout to 5s for heavy profiles
199
- const timeout = new Promise(resolve => setTimeout(resolve, 5000));
200
- // Wait for either timeout (success) or exit (failure)
201
- try {
202
- await Promise.race([timeout, processExited]);
236
+ this.chromeProcess.on('error', (err) => {
237
+ console.error(`⚠️ Chrome process error:`, err);
238
+ this.handleProcessDeath();
239
+ });
240
+ // Don't call unref() - keep the process attached to the MCP server
241
+ console.error(`✅ Chrome process spawned (PID: ${this.chromeProcess.pid})`);
242
+ // Close file descriptors after Chrome has started
243
+ setTimeout(() => {
244
+ try {
245
+ fs.closeSync(out);
246
+ fs.closeSync(err);
247
+ }
248
+ catch (e) { }
249
+ }, 5000);
250
+ // ENHANCED VERIFICATION SYSTEM
251
+ // Wait 3 seconds before starting verification
252
+ console.error('⏳ Waiting 3 seconds for Chrome to fully initialize...');
253
+ await new Promise(r => setTimeout(r, 3000));
254
+ // Step 1: Verify process is still running via system command
255
+ console.error('🔍 Step 1: Verifying Chrome process is running...');
256
+ // Wait for Chrome to initialize
257
+ const waitTime = 3000;
258
+ console.error(`⏳ Waiting ${waitTime}ms for process to settle...`);
259
+ await new Promise(r => setTimeout(r, waitTime));
260
+ // Verify process is still running
261
+ if (this.chromeProcess && this.chromeProcess.pid) {
262
+ try {
263
+ const platform = os.platform();
264
+ let processCheckCmd;
265
+ if (platform === 'win32') {
266
+ processCheckCmd = `powershell -Command "Get-Process -Id ${this.chromeProcess.pid} -ErrorAction SilentlyContinue | Where-Object { $_.MainWindowHandle -ne 0 } | Select-Object -ExpandProperty ProcessName"`;
267
+ }
268
+ else {
269
+ processCheckCmd = `ps -p ${this.chromeProcess.pid} -o comm=`;
270
+ }
271
+ const { stdout } = await execAsync(processCheckCmd);
272
+ const processName = stdout.trim();
273
+ if (processName) {
274
+ console.error(`✅ Process verified: ${processName} (PID: ${this.chromeProcess.pid})`);
275
+ }
276
+ else {
277
+ throw new Error('Process not found in system');
278
+ }
279
+ }
280
+ catch (procErr) {
281
+ throw new Error(`Chrome process verification failed: ${procErr.message}`);
282
+ }
203
283
  }
204
- catch (e) {
205
- this.chromeProcess = null;
206
- throw e;
284
+ // Step 2: Verify port is listening
285
+ console.error(`🔍 Step 2: Verifying CDP port ${this.port} is listening...`);
286
+ try {
287
+ const platform = os.platform();
288
+ let portCheckCmd;
289
+ if (platform === 'win32') {
290
+ portCheckCmd = `powershell -Command "netstat -ano | Select-String ':${this.port}' | Select-String 'LISTENING'"`;
291
+ }
292
+ else {
293
+ portCheckCmd = `lsof -i :${this.port} | grep LISTEN || netstat -an | grep ${this.port}`;
294
+ }
295
+ const { stdout: portOutput } = await execAsync(portCheckCmd);
296
+ if (portOutput.trim()) {
297
+ console.error(`✅ Port ${this.port} is listening`);
298
+ }
299
+ else {
300
+ throw new Error('Port not listening');
301
+ }
207
302
  }
208
- // If we got here, process didn't crash in the first 5 seconds
209
- this.chromeProcess.unref();
210
- if (this.chromeProcess.stderr) {
211
- this.chromeProcess.stderr.destroy();
303
+ catch (portErr) {
304
+ console.error(`⚠️ Port check inconclusive, proceeding with CDP connection test...`);
212
305
  }
213
- console.error(`✅ Chrome process spawned and stable (PID: ${this.chromeProcess.pid})`);
214
- // Connect to CDP with retries
306
+ // Step 3: Connect to CDP with retries
307
+ console.error('🔍 Step 3: Connecting to CDP...');
215
308
  let connected = false;
216
- for (let i = 0; i < 5; i++) {
309
+ for (let i = 0; i < 8; i++) {
217
310
  try {
218
311
  await this.connect();
219
312
  connected = true;
313
+ console.error(`✅ CDP connection established (attempt ${i + 1})`);
220
314
  break;
221
315
  }
222
316
  catch (e) {
223
- console.error(`Starting CDP connection attempt ${i + 1}/5 failed. Retrying...`);
317
+ console.error(` Attempt ${i + 1}/8 failed. Retrying in 1s...`);
224
318
  await new Promise(r => setTimeout(r, 1000));
225
319
  }
226
320
  }
227
321
  if (!connected) {
228
- throw new Error(`Chrome launched (PID ${this.chromeProcess.pid}) but port ${this.port} is not accessible after 10s. Logs: ${startupLogs}`);
322
+ let logs = 'Check log file';
323
+ try {
324
+ logs = fs.readFileSync(logFile, 'utf8');
325
+ }
326
+ catch (e) { }
327
+ throw new Error(`Chrome process is running (PID ${this.chromeProcess.pid}) but CDP port ${this.port} is not accessible after 15s. Logs: ${logs}`);
229
328
  }
230
- // VERIFICATION: Check if we can actually list targets (proves browser is responsive)
329
+ // Step 4: Verify browser is responsive (can list targets)
330
+ console.error('🔍 Step 4: Verifying browser responsiveness...');
231
331
  try {
232
- const targets = await this.listTabs();
233
- console.error(`✅ Verification: Found ${targets.length} targets.`);
332
+ let targets = await this.listTabs();
333
+ console.error(`✅ Browser responsive: Found ${targets.length} targets`);
234
334
  if (targets.length === 0) {
235
- console.error('⚠️ Warning: Browser running but no targets found.');
335
+ console.error('⚠️ Warning: Browser running but no targets found. Creating initial tab...');
336
+ try {
337
+ await this.connection?.client.Target.createTarget({ url: 'about:blank' });
338
+ console.error('✅ Initial tab created');
339
+ targets = await this.listTabs(); // Refresh targets
340
+ }
341
+ catch (createErr) {
342
+ console.error('⚠️ Could not create initial tab:', createErr);
343
+ }
344
+ }
345
+ // Force activation of the first page to ensure window is visible/foreground
346
+ const page = targets.find(t => t.type === 'page');
347
+ if (page) {
348
+ try {
349
+ await this.ensureWindowVisible(page.id); // NEW HELPER
350
+ // Inject visual feedback (UX)
351
+ await this.injectConnectionStatus(page.id);
352
+ }
353
+ catch (activateErr) {
354
+ console.error('⚠️ Could not activate window:', activateErr);
355
+ }
236
356
  }
237
357
  }
238
358
  catch (verErr) {
239
359
  console.error('⚠️ Warning: Could not verify targets listing:', verErr);
240
360
  }
361
+ // Step 5: Verify network connectivity and Chrome window visibility
362
+ console.error('🔍 Step 5: Verifying network connectivity and browser visibility...');
363
+ try {
364
+ // Test network connectivity with ping
365
+ const { stdout: pingOutput } = await execAsync('ping -n 2 google.com');
366
+ if (pingOutput.includes('TTL=') || pingOutput.includes('tiempo=')) {
367
+ console.error('✅ Network connectivity verified (google.com reachable)');
368
+ }
369
+ else {
370
+ console.error('⚠️ Network connectivity test inconclusive');
371
+ }
372
+ }
373
+ catch (pingErr) {
374
+ console.error('⚠️ Network test failed (this may be normal if offline):', pingErr.message);
375
+ }
376
+ console.error('');
377
+ console.error('🎉 Chrome launch verification complete!');
378
+ console.error(` Process: Running (PID ${this.chromeProcess.pid})`);
379
+ console.error(` Port: ${this.port}`);
380
+ console.error(` CDP: Connected`);
381
+ console.error(` Status: Ready`);
241
382
  // Optional: Try to attach Playwright over CDP for advanced features if needed
242
383
  try {
243
384
  const browser = await chromium.connectOverCDP(`http://localhost:${this.port}`);
@@ -249,6 +390,35 @@ export class ChromeConnector {
249
390
  console.error('⚠️ Could not attach Playwright wrapper (CDP still works):', pwError.message);
250
391
  }
251
392
  }
393
+ /**
394
+ * Handle Chrome process death - cleanup internal state
395
+ */
396
+ handleProcessDeath() {
397
+ console.error('🧹 Cleaning up internal state due to Chrome process death...');
398
+ // Clear connection
399
+ if (this.connection) {
400
+ try {
401
+ this.connection.client.close().catch(() => { });
402
+ }
403
+ catch (e) { }
404
+ this.connection = null;
405
+ }
406
+ // Clear browser context
407
+ if (this.browserContext) {
408
+ try {
409
+ const browser = this.browserContext.browser();
410
+ if (browser) {
411
+ browser.close().catch(() => { });
412
+ }
413
+ }
414
+ catch (e) { }
415
+ this.browserContext = null;
416
+ }
417
+ // Clear process reference
418
+ this.chromeProcess = null;
419
+ this.currentTabId = null;
420
+ console.error('✅ Internal state cleared. Ready for new launch.');
421
+ }
252
422
  /**
253
423
  * Disconnect from Chrome and close Playwright browser
254
424
  */
@@ -316,6 +486,38 @@ export class ChromeConnector {
316
486
  isConnected() {
317
487
  return this.connection?.connected ?? false;
318
488
  }
489
+ /**
490
+ * Get the CDP port number
491
+ */
492
+ getPort() {
493
+ return this.port;
494
+ }
495
+ /**
496
+ * Verify Chrome is alive and connected to port 9222
497
+ * Throws error if connection is dead
498
+ */
499
+ async verifyConnection() {
500
+ // Check if we think we're connected
501
+ if (!this.connection?.connected) {
502
+ throw new Error('Not connected to Chrome. Launch Chrome first using launch_chrome_with_profile.');
503
+ }
504
+ // Verify port is actually accessible
505
+ try {
506
+ const targets = await CDP.List({ port: this.port });
507
+ if (!targets || targets.length === 0) {
508
+ throw new Error('Chrome CDP is accessible but no targets found');
509
+ }
510
+ console.error(`✅ Connection verified: ${targets.length} targets on port ${this.port}`);
511
+ }
512
+ catch (error) {
513
+ const err = error;
514
+ // Connection is dead - clean up
515
+ this.handleProcessDeath();
516
+ throw new Error(`Chrome connection is dead (port ${this.port} not responding). ` +
517
+ `Chrome may have been killed externally. Please launch Chrome again. ` +
518
+ `Error: ${err.message}`);
519
+ }
520
+ }
319
521
  /**
320
522
  * List all open tabs and targets (including service workers)
321
523
  */
@@ -393,16 +595,28 @@ export class ChromeConnector {
393
595
  const target = tabId || this.currentTabId;
394
596
  if (!target) {
395
597
  // Get the first available tab
396
- const tabs = await this.listTabs();
598
+ // If this fails, it means Chrome is definitely not connected
599
+ let tabs;
600
+ try {
601
+ tabs = await this.listTabs();
602
+ }
603
+ catch (e) {
604
+ console.error(`Debug: listTabs failed on port ${this.port}. Error: ${e.message}`);
605
+ throw new Error(`Connection failed on port ${this.port}. Is Chrome running? Original Error: ${e.message}`);
606
+ }
397
607
  if (tabs.length === 0) {
398
- throw new Error('No tabs available');
608
+ throw new Error(`Chrome is accessible on port ${this.port} but has no open tabs/pages.`);
399
609
  }
400
610
  return await CDP({ port: this.port, target: tabs[0].id });
401
611
  }
402
612
  return await CDP({ port: this.port, target });
403
613
  }
404
614
  catch (error) {
405
- throw new Error(`Failed to get tab client: ${error.message}`);
615
+ const err = error;
616
+ if (err.message && (err.message.includes('ECONNREFUSED') || err.message.includes('connect'))) {
617
+ throw new Error(`Chrome connection refused on port ${this.port}. The browser might have closed or blocked the connection. Error: ${err.message}`);
618
+ }
619
+ throw new Error(`Failed to get tab client: ${err.message}`);
406
620
  }
407
621
  }
408
622
  /**
@@ -430,12 +644,6 @@ export class ChromeConnector {
430
644
  throw new Error(`Failed to get Chrome version: ${error.message}`);
431
645
  }
432
646
  }
433
- /**
434
- * Get current port
435
- */
436
- getPort() {
437
- return this.port;
438
- }
439
647
  /**
440
648
  * Set current tab
441
649
  */
@@ -448,5 +656,113 @@ export class ChromeConnector {
448
656
  getCurrentTabId() {
449
657
  return this.currentTabId;
450
658
  }
659
+ /**
660
+ * Helper to inject a visual connection status toast into the page
661
+ */
662
+ async injectConnectionStatus(targetId) {
663
+ try {
664
+ const client = await this.getTabClient(targetId);
665
+ await client.Runtime.evaluate({
666
+ expression: `
667
+ (function() {
668
+ try {
669
+ const id = 'mcp-status-toast';
670
+ const existing = document.getElementById(id);
671
+ if(existing) existing.remove();
672
+ const div = document.createElement('div');
673
+ div.id = id;
674
+ div.innerHTML = "🤖 MCP Agent Conectado";
675
+ 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;";
676
+ document.body.appendChild(div);
677
+ setTimeout(() => {
678
+ div.style.opacity = '0';
679
+ setTimeout(() => div.remove(), 500);
680
+ }, 5000);
681
+ } catch(e){}
682
+ })()
683
+ `
684
+ });
685
+ }
686
+ catch (e) { /* ignore injection errors */ }
687
+ }
688
+ /**
689
+ * Helper to ensure a specific target's window is visible and restored
690
+ */
691
+ async ensureWindowVisible(targetId) {
692
+ try {
693
+ const client = this.getConnection().client;
694
+ // 1. Activate using Target domain
695
+ await client.Target.activateTarget({ targetId });
696
+ console.error('✅ Target activated');
697
+ // 2. Try to get window state using Browser domain (if supported)
698
+ try {
699
+ // Get window for target
700
+ const { windowId, bounds } = await client.Browser.getWindowForTarget({ targetId });
701
+ // Check for negative/impossible coordinates (common multi-monitor issue)
702
+ const isOffScreen = (bounds.left !== undefined && bounds.left < 0) ||
703
+ (bounds.top !== undefined && bounds.top < 0);
704
+ if (isOffScreen) {
705
+ console.error('⚠️ Window detected off-screen. Recentering...');
706
+ await client.Browser.setWindowBounds({
707
+ windowId,
708
+ bounds: { left: 100, top: 100, width: 1280, height: 720, windowState: 'normal' }
709
+ });
710
+ console.error('✅ Window recentered');
711
+ }
712
+ else if (bounds.windowState === 'minimized' || bounds.windowState === 'hidden') {
713
+ console.error(`⚠️ Window is ${bounds.windowState}, restoring...`);
714
+ await client.Browser.setWindowBounds({
715
+ windowId,
716
+ bounds: { windowState: 'normal' }
717
+ });
718
+ console.error('✅ Window restored to normal state');
719
+ }
720
+ else {
721
+ // If it's already normal/maximized/fullscreen, still good to ensure focus
722
+ console.error(`Status: Window state is '${bounds.windowState}'`);
723
+ }
724
+ }
725
+ catch (browserErr) {
726
+ // Browser domain might not be fully supported in all versions or contexts
727
+ console.error('⚠️ Could not check window state via Browser domain (optional):', browserErr.message);
728
+ }
729
+ // 3. Fallback: Windows specific PowerShell to force window to front
730
+ if (os.platform() === 'win32') {
731
+ let pid = this.chromeProcess?.pid;
732
+ // If we don't have PID (we connected to existing instance), try to get it via CDP SystemInfo
733
+ if (!pid) {
734
+ try {
735
+ const sysInfo = await client.SystemInfo.getProcessInfo();
736
+ // find browser process
737
+ const browserProc = sysInfo.processInfo.find((p) => p.type === 'browser');
738
+ if (browserProc) {
739
+ pid = browserProc.id;
740
+ console.error(`Status: Identified Chrome PID ${pid} via CDP`);
741
+ }
742
+ }
743
+ catch (e) {
744
+ // SystemInfo might not be available
745
+ }
746
+ }
747
+ if (pid) {
748
+ const psCmd = `
749
+ Add-Type -AssemblyName Microsoft.VisualBasic
750
+ [Microsoft.VisualBasic.Interaction]::AppActivate(${pid})
751
+ `;
752
+ try {
753
+ // We use execAsync to run the powershell command
754
+ await execAsync(`powershell -Command "${psCmd}"`);
755
+ console.error('✅ Windows API Activate executed (Foreground Forced)');
756
+ }
757
+ catch (psErr) {
758
+ console.error('⚠️ Windows API Activate failed:', psErr.message);
759
+ }
760
+ }
761
+ }
762
+ }
763
+ catch (e) {
764
+ console.error('⚠️ Ensure Window Visible failed:', e.message);
765
+ }
766
+ }
451
767
  }
452
768
  //# sourceMappingURL=chrome-connector.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chrome-connector.js","sourceRoot":"","sources":["../src/chrome-connector.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,GAAG,MAAM,yBAAyB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAqC,MAAM,YAAY,CAAC;AACzE,OAAO,EAAE,KAAK,EAAqB,IAAI,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAEjC,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAuBlC,MAAM,OAAO,eAAe;IAClB,UAAU,GAA4B,IAAI,CAAC;IAC3C,IAAI,CAAS;IACb,YAAY,GAAkB,IAAI,CAAC;IACnC,cAAc,GAA0B,IAAI,CAAC;IAC7C,aAAa,GAAwB,IAAI,CAAC;IAElD,YAAY,OAAe,IAAI;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED;;OAEG;IACK,gBAAgB;QACtB,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;QAE/B,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,OAAO;gBACV,OAAO;oBACL,UAAU,EAAE,4DAA4D;oBACxE,WAAW,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,6BAA6B;iBACtE,CAAC;YACJ,KAAK,QAAQ;gBACX,OAAO;oBACL,UAAU,EAAE,8DAA8D;oBAC1E,WAAW,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,4CAA4C;iBAC7E,CAAC;YACJ,KAAK,OAAO;gBACV,OAAO;oBACL,UAAU,EAAE,wBAAwB;oBACpC,WAAW,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,wBAAwB;iBACzD,CAAC;YACJ;gBACE,MAAM,IAAI,KAAK,CAAC,yBAAyB,QAAQ,EAAE,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,mBAAmB,CAAC,cAAsB,EAAE,WAAmB;QAC3E,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,mBAAmB,CAAC,CAAC;QAC5D,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;QAE/B,2BAA2B;QAC3B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,4CAA4C,OAAO,EAAE,CAAC,CAAC;QACrE,OAAO,CAAC,KAAK,CAAC,gBAAgB,QAAQ,EAAE,CAAC,CAAC;QAC1C,OAAO,CAAC,KAAK,CAAC,cAAc,cAAc,EAAE,CAAC,CAAC;QAE9C,qEAAqE;QACrE,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;QAC/D,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QACzD,IAAI,CAAC;YACD,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC/B,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;YACnD,CAAC;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YAAC,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,CAAC,CAAC,CAAC;QAAC,CAAC;QAExE,iDAAiD;QACjD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;QAC1D,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAEpD,kDAAkD;QAClD,MAAM,WAAW,GAAG;YAChB,OAAO;YACP,YAAY;YACZ,UAAU;YACV,WAAW;YACX,aAAa;YACb,eAAe;YACf,aAAa;YACb,6BAA6B;YAC7B,4BAA4B;SAC/B,CAAC;QAEF,IAAI,GAAW,CAAC;QAEhB,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YACzB,wBAAwB;YACxB,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1D,oGAAoG;YACpG,GAAG,GAAG,aAAa,UAAU,MAAM,WAAW,cAAc,QAAQ,uBAAuB,CAAC;YAE5F,IAAI,CAAC;gBACD,MAAM,SAAS,CAAC,GAAG,CAAC,CAAC;YACzB,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBACd,8DAA8D;gBAC9D,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;oBACb,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;gBACnE,CAAC;YACL,CAAC;QACH,CAAC;aAAM,CAAC;YACN,8BAA8B;YAC9B,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACzE,GAAG,GAAG,sBAAsB,aAAa,KAAK,UAAU,OAAO,WAAW,IAAI,CAAC;YAE/E,IAAI,CAAC;gBACD,MAAM,SAAS,CAAC,GAAG,CAAC,CAAC;gBACrB,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAChD,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBACd,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;YACnE,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,iBAAiB,CAAC,UAAyB,EAAE;QACjD,uBAAuB;QACvB,IAAI,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,CAAC;YAC/B,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;YAC3D,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,wBAAwB;YACxB,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;YACrB,OAAO,CAAC,KAAK,CAAC,uDAAuD,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAClF,OAAO;QACT,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,qBAAqB;QACvB,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAE9C,IAAI,EACF,WAAW,EACX,gBAAgB,GAAG,SAAS,EAC5B,cAAc,GAAG,aAAa,CAAC,UAAU,EAC1C,GAAG,OAAO,CAAC;QAEZ,MAAM,mBAAmB,GAAG,WAAW,IAAI,aAAa,CAAC,WAAW,CAAC;QAErE,0CAA0C;QAC1C,IAAI,gBAAgB,GAAG,mBAAmB,CAAC;QAE3C,iCAAiC;QACjC,0EAA0E;QAC1E,kGAAkG;QAClG,IAAI,gBAAgB,KAAK,SAAS,IAAI,CAAC,WAAW,EAAE,CAAC;YAClD,IAAI,CAAC;gBACD,OAAO,CAAC,KAAK,CAAC,2EAA2E,CAAC,CAAC;gBAC3F,gBAAgB,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,CAAC;YAC7F,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CAAC,sEAAsE,EAAE,GAAG,CAAC,CAAC;gBAC3F,gBAAgB,GAAG,mBAAmB,CAAC;YAC3C,CAAC;QACJ,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAC/C,OAAO,CAAC,KAAK,CAAC,iBAAiB,gBAAgB,EAAE,CAAC,CAAC;QACnD,OAAO,CAAC,KAAK,CAAC,eAAe,gBAAgB,EAAE,CAAC,CAAC;QAEjD,MAAM,IAAI,GAAG;YACX,2BAA2B,IAAI,CAAC,IAAI,EAAE;YACtC,mBAAmB,gBAAgB,EAAE;YACrC,uBAAuB,gBAAgB,EAAE;YACzC,0BAA0B;YAC1B,gBAAgB;YAChB,4BAA4B;YAC5B,+CAA+C;YAC/C,oBAAoB;YACpB,sCAAsC;YACtC,qBAAqB;YACrB,wBAAwB;SACzB,CAAC;QAEF,OAAO,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAElD,wDAAwD;QACxD,0DAA0D;QAC1D,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,cAAc,EAAE,IAAI,EAAE;YAC/C,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC;YACnC,WAAW,EAAE,KAAK;SACnB,CAAC,CAAC;QAEH,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;YAC9B,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;gBAC5C,WAAW,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC/B,OAAO,CAAC,KAAK,CAAC,eAAe,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAClD,CAAC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;YACrD,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;oBACb,MAAM,CAAC,IAAI,KAAK,CAAC,+CAA+C,IAAI,WAAW,WAAW,EAAE,CAAC,CAAC,CAAC;gBACnG,CAAC;YACH,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACtC,MAAM,CAAC,IAAI,KAAK,CAAC,mCAAmC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACtE,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,yDAAyD;QACzD,6CAA6C;QAC7C,MAAM,OAAO,GAAG,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;QAExE,sDAAsD;QACtD,IAAI,CAAC;YACD,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,MAAM,CAAC,CAAC;QACZ,CAAC;QAED,8DAA8D;QAC9D,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;YAC5B,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACxC,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,6CAA6C,IAAI,CAAC,aAAa,CAAC,GAAG,GAAG,CAAC,CAAC;QAEtF,8BAA8B;QAC9B,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACzB,IAAI,CAAC;gBACD,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;gBACrB,SAAS,GAAG,IAAI,CAAC;gBACjB,MAAM;YACV,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,GAAC,CAAC,wBAAwB,CAAC,CAAC;gBAC9E,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;YAChD,CAAC;QACL,CAAC;QAED,IAAI,CAAC,SAAS,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,CAAC,aAAa,CAAC,GAAG,cAAc,IAAI,CAAC,IAAI,uCAAuC,WAAW,EAAE,CAAC,CAAC;QAChJ,CAAC;QAED,qFAAqF;QACrF,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;YACtC,OAAO,CAAC,KAAK,CAAC,yBAAyB,OAAO,CAAC,MAAM,WAAW,CAAC,CAAC;YAElE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;YACrE,CAAC;QACH,CAAC;QAAC,OAAO,MAAM,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,+CAA+C,EAAE,MAAM,CAAC,CAAC;QAC1E,CAAC;QAED,8EAA8E;QAC9E,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,cAAc,CAAC,oBAAoB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAC/E,yFAAyF;YACzF,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;YAC5C,OAAO,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC3D,CAAC;QAAC,OAAO,OAAO,EAAE,CAAC;YACjB,OAAO,CAAC,KAAK,CAAC,2DAA2D,EAAG,OAAiB,CAAC,OAAO,CAAC,CAAC;QACzG,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU;QACd,IAAI,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;YAC5B,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACrC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;YAClC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC7C,CAAC;QAED,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,qDAAqD;YACrD,8BAA8B;YAC9B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC5B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO;QACX,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAE9C,IAAI,CAAC,UAAU,GAAG;gBAChB,MAAM;gBACN,SAAS,EAAE,IAAI;gBACf,IAAI,EAAE,IAAI,CAAC,IAAI;aAChB,CAAC;YAEF,OAAO,CAAC,KAAK,CAAC,iCAAiC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,KAAc,CAAC;YAC3B,MAAM,IAAI,KAAK,CACb,uCAAuC,IAAI,CAAC,IAAI,IAAI;gBACpD,4DAA4D,IAAI,CAAC,IAAI,IAAI;gBACzE,UAAU,GAAG,CAAC,OAAO,EAAE,CACxB,CAAC;QACJ,CAAC;IACH,CAAC;IAID;;OAEG;IACH,iBAAiB;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,mBAAmB;QACjB,OAAO,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,aAAa;QACX,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACpE,CAAC;QACD,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,WAAW;QACT,OAAO,IAAI,CAAC,UAAU,EAAE,SAAS,IAAI,KAAK,CAAC;IAC7C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ;QACZ,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAEpD,kEAAkE;YAClE,6EAA6E;YAC7E,OAAO,OAAO;iBACX,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,gBAAgB,IAAI,CAAC,CAAC,IAAI,KAAK,iBAAiB,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC;iBAC1H,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;gBAChB,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,IAAI,UAAU,EAAE,uCAAuC;gBAC9E,GAAG,EAAE,CAAC,CAAC,GAAG;gBACV,WAAW,EAAE,CAAC,CAAC,WAAW;aAC3B,CAAC,CAAC,CAAC;QACR,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,wBAAyB,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY;QAChB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,GAAY;QAC1B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;YAEvD,OAAO;gBACL,EAAE,EAAE,MAAM,CAAC,EAAE;gBACb,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE;gBACzB,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI,GAAG,IAAI,aAAa;aACxC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,yBAA0B,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,KAAa;QAC1B,IAAI,CAAC;YACH,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAClD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,wBAAyB,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,KAAa;QAC7B,IAAI,CAAC;YACH,MAAM,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YACnD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,2BAA4B,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,KAAc;QAC/B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC;YAE1C,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,8BAA8B;gBAC9B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACnC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACtB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;gBACvC,CAAC;gBACD,OAAO,MAAM,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC5D,CAAC;YAED,OAAO,MAAM,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,6BAA8B,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAAC,MAAc,EAAE,MAAc,EAAE,MAAY;QAC/D,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC;QAE3C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC;YAChE,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,uBAAuB,MAAM,IAAI,MAAM,MAAO,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3F,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU;QACd,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACvD,OAAO,OAAO,CAAC;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,iCAAkC,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,KAAa;QACzB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;CACF"}
1
+ {"version":3,"file":"chrome-connector.js","sourceRoot":"","sources":["../src/chrome-connector.ts"],"names":[],"mappings":"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"}