openchrome-mcp 1.2.3 → 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.
Files changed (107) hide show
  1. package/dist/cdp/client.d.ts.map +1 -1
  2. package/dist/cdp/client.js +10 -0
  3. package/dist/cdp/client.js.map +1 -1
  4. package/dist/chrome/launcher.d.ts +32 -15
  5. package/dist/chrome/launcher.d.ts.map +1 -1
  6. package/dist/chrome/launcher.js +136 -116
  7. package/dist/chrome/launcher.js.map +1 -1
  8. package/dist/chrome/profile-manager.d.ts +108 -0
  9. package/dist/chrome/profile-manager.d.ts.map +1 -0
  10. package/dist/chrome/profile-manager.js +372 -0
  11. package/dist/chrome/profile-manager.js.map +1 -0
  12. package/dist/chrome/sqlite-cookie-copy.d.ts +46 -0
  13. package/dist/chrome/sqlite-cookie-copy.d.ts.map +1 -0
  14. package/dist/chrome/sqlite-cookie-copy.js +145 -0
  15. package/dist/chrome/sqlite-cookie-copy.js.map +1 -0
  16. package/dist/cli/claude-session.js +0 -0
  17. package/dist/cli/index.js +0 -0
  18. package/dist/config/defaults.d.ts +8 -0
  19. package/dist/config/defaults.d.ts.map +1 -1
  20. package/dist/config/defaults.js +9 -1
  21. package/dist/config/defaults.js.map +1 -1
  22. package/dist/config/global.d.ts +2 -0
  23. package/dist/config/global.d.ts.map +1 -1
  24. package/dist/config/global.js.map +1 -1
  25. package/dist/hints/hint-engine.d.ts +36 -2
  26. package/dist/hints/hint-engine.d.ts.map +1 -1
  27. package/dist/hints/hint-engine.js +96 -27
  28. package/dist/hints/hint-engine.js.map +1 -1
  29. package/dist/hints/index.d.ts +1 -1
  30. package/dist/hints/index.d.ts.map +1 -1
  31. package/dist/hints/rules/error-recovery.d.ts.map +1 -1
  32. package/dist/hints/rules/error-recovery.js +5 -1
  33. package/dist/hints/rules/error-recovery.js.map +1 -1
  34. package/dist/hints/rules/repetition-detection.d.ts.map +1 -1
  35. package/dist/hints/rules/repetition-detection.js +42 -0
  36. package/dist/hints/rules/repetition-detection.js.map +1 -1
  37. package/dist/index.js +17 -1
  38. package/dist/index.js.map +1 -1
  39. package/dist/mcp-server.d.ts +12 -1
  40. package/dist/mcp-server.d.ts.map +1 -1
  41. package/dist/mcp-server.js +162 -20
  42. package/dist/mcp-server.js.map +1 -1
  43. package/dist/resources/usage-guide.d.ts +1 -1
  44. package/dist/resources/usage-guide.d.ts.map +1 -1
  45. package/dist/resources/usage-guide.js +22 -0
  46. package/dist/resources/usage-guide.js.map +1 -1
  47. package/dist/session-manager.d.ts +4 -0
  48. package/dist/session-manager.d.ts.map +1 -1
  49. package/dist/session-manager.js +56 -0
  50. package/dist/session-manager.js.map +1 -1
  51. package/dist/tools/click-element.d.ts.map +1 -1
  52. package/dist/tools/click-element.js +6 -2
  53. package/dist/tools/click-element.js.map +1 -1
  54. package/dist/tools/computer.d.ts.map +1 -1
  55. package/dist/tools/computer.js +101 -32
  56. package/dist/tools/computer.js.map +1 -1
  57. package/dist/tools/find.d.ts.map +1 -1
  58. package/dist/tools/find.js +16 -6
  59. package/dist/tools/find.js.map +1 -1
  60. package/dist/tools/form-input.d.ts.map +1 -1
  61. package/dist/tools/form-input.js +20 -0
  62. package/dist/tools/form-input.js.map +1 -1
  63. package/dist/tools/index.d.ts.map +1 -1
  64. package/dist/tools/index.js +2 -0
  65. package/dist/tools/index.js.map +1 -1
  66. package/dist/tools/javascript.d.ts.map +1 -1
  67. package/dist/tools/javascript.js +38 -2
  68. package/dist/tools/javascript.js.map +1 -1
  69. package/dist/tools/navigate.d.ts.map +1 -1
  70. package/dist/tools/navigate.js +27 -0
  71. package/dist/tools/navigate.js.map +1 -1
  72. package/dist/tools/profile-status.d.ts +10 -0
  73. package/dist/tools/profile-status.d.ts.map +1 -0
  74. package/dist/tools/profile-status.js +101 -0
  75. package/dist/tools/profile-status.js.map +1 -0
  76. package/dist/tools/wait-and-click.d.ts.map +1 -1
  77. package/dist/tools/wait-and-click.js +3 -1
  78. package/dist/tools/wait-and-click.js.map +1 -1
  79. package/dist/utils/format-age.d.ts +5 -0
  80. package/dist/utils/format-age.d.ts.map +1 -0
  81. package/dist/utils/format-age.js +15 -0
  82. package/dist/utils/format-age.js.map +1 -0
  83. package/dist/utils/index.d.ts +1 -0
  84. package/dist/utils/index.d.ts.map +1 -1
  85. package/dist/utils/index.js +1 -0
  86. package/dist/utils/index.js.map +1 -1
  87. package/dist/utils/pid-manager.d.ts +6 -0
  88. package/dist/utils/pid-manager.d.ts.map +1 -0
  89. package/dist/utils/pid-manager.js +132 -0
  90. package/dist/utils/pid-manager.js.map +1 -0
  91. package/dist/utils/ref-id-manager.d.ts +19 -1
  92. package/dist/utils/ref-id-manager.d.ts.map +1 -1
  93. package/dist/utils/ref-id-manager.js +49 -2
  94. package/dist/utils/ref-id-manager.js.map +1 -1
  95. package/package.json +4 -1
  96. package/dist/chrome/profile-detector.d.ts +0 -52
  97. package/dist/chrome/profile-detector.d.ts.map +0 -1
  98. package/dist/chrome/profile-detector.js +0 -246
  99. package/dist/chrome/profile-detector.js.map +0 -1
  100. package/dist/hints/rules/dom-mode-suggestion.d.ts +0 -6
  101. package/dist/hints/rules/dom-mode-suggestion.d.ts.map +0 -1
  102. package/dist/hints/rules/dom-mode-suggestion.js +0 -24
  103. package/dist/hints/rules/dom-mode-suggestion.js.map +0 -1
  104. package/dist/types/profile.d.ts +0 -76
  105. package/dist/types/profile.d.ts.map +0 -1
  106. package/dist/types/profile.js +0 -35
  107. package/dist/types/profile.js.map +0 -1
@@ -37,6 +37,7 @@ var __importStar = (this && this.__importStar) || (function () {
37
37
  })();
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.MCPServer = void 0;
40
+ exports.isConnectionError = isConnectionError;
40
41
  exports.setMCPServerOptions = setMCPServerOptions;
41
42
  exports.getMCPServer = getMCPServer;
42
43
  const readline = __importStar(require("readline"));
@@ -46,9 +47,38 @@ const session_manager_1 = require("./session-manager");
46
47
  const index_js_1 = require("./dashboard/index.js");
47
48
  const usage_guide_1 = require("./resources/usage-guide");
48
49
  const hints_1 = require("./hints");
50
+ const format_age_1 = require("./utils/format-age");
49
51
  const connection_pool_1 = require("./cdp/connection-pool");
50
52
  const client_1 = require("./cdp/client");
51
53
  const launcher_1 = require("./chrome/launcher");
54
+ /**
55
+ * Detect if an error is a Chrome/CDP connection error that may be recoverable
56
+ * by reconnecting to the browser.
57
+ */
58
+ function isConnectionError(error) {
59
+ const message = error instanceof Error ? error.message : String(error);
60
+ const patterns = [
61
+ 'not connected to chrome',
62
+ 'call connect() first',
63
+ 'connection closed',
64
+ 'protocol error',
65
+ 'target closed',
66
+ 'session closed',
67
+ 'websocket is not open',
68
+ 'websocket connection closed',
69
+ 'browser has disconnected',
70
+ 'browser disconnected',
71
+ 'execution context was destroyed',
72
+ 'cannot find context with specified id',
73
+ 'inspected target navigated or closed',
74
+ 'cdpsession connection closed',
75
+ ];
76
+ const lowerMessage = message.toLowerCase();
77
+ return patterns.some(pattern => lowerMessage.includes(pattern));
78
+ }
79
+ const RECONNECTION_GUIDANCE = '\n\n⚠️ CONNECTION RECOVERY: The browser connection was lost. ' +
80
+ 'To reconnect, run /mcp in Claude Code. ' +
81
+ 'Do NOT run "claude mcp remove" or "claude mcp add" — this will break the MCP configuration.';
52
82
  class MCPServer {
53
83
  tools = new Map();
54
84
  resources = new Map();
@@ -60,6 +90,7 @@ class MCPServer {
60
90
  operationController = null;
61
91
  hintEngine = null;
62
92
  options;
93
+ profileWarningShown = false;
63
94
  constructor(sessionManager, options = {}) {
64
95
  this.sessionManager = sessionManager || (0, session_manager_1.getSessionManager)();
65
96
  this.options = options;
@@ -100,8 +131,12 @@ class MCPServer {
100
131
  // Handle quit event
101
132
  this.dashboard.on('quit', () => {
102
133
  console.error('[MCPServer] Dashboard quit requested');
103
- this.stop();
104
- process.exit(0);
134
+ this.stop().then(() => {
135
+ process.exit(0);
136
+ }).catch((err) => {
137
+ console.error('[MCPServer] Shutdown error:', err);
138
+ process.exit(1);
139
+ });
105
140
  });
106
141
  // Handle delete session event
107
142
  this.dashboard.on('delete-session', async (sessionId) => {
@@ -177,8 +212,12 @@ class MCPServer {
177
212
  });
178
213
  this.rl.on('close', () => {
179
214
  console.error('[MCPServer] stdin closed, shutting down...');
180
- this.stop();
181
- process.exit(0);
215
+ this.stop().then(() => {
216
+ process.exit(0);
217
+ }).catch((err) => {
218
+ console.error('[MCPServer] Shutdown error:', err);
219
+ process.exit(1);
220
+ });
182
221
  });
183
222
  console.error('[MCPServer] Ready, waiting for requests...');
184
223
  }
@@ -267,6 +306,10 @@ class MCPServer {
267
306
  '',
268
307
  'PARALLEL WORKFLOW EXAMPLE:',
269
308
  ' "compare prices on Amazon, eBay, Walmart" → workflow_init with 3 workers, one per site',
309
+ '',
310
+ 'CONNECTION RECOVERY:',
311
+ '- If a tool returns a connection error, ask the user to run /mcp in Claude Code to reconnect.',
312
+ '- NEVER run "claude mcp remove" or "claude mcp add" to fix connection issues.',
270
313
  ].join('\n'),
271
314
  };
272
315
  }
@@ -352,7 +395,28 @@ class MCPServer {
352
395
  if (this.operationController) {
353
396
  await this.operationController.gate(callId);
354
397
  }
355
- const result = await tool.handler(sessionId, toolArgs);
398
+ let result;
399
+ try {
400
+ result = await tool.handler(sessionId, toolArgs);
401
+ }
402
+ catch (handlerError) {
403
+ if (isConnectionError(handlerError)) {
404
+ // Attempt internal reconnection before surfacing error to LLM
405
+ console.error(`[MCPServer] Connection error during ${toolName}, attempting auto-reconnect...`);
406
+ const cdpClient = (0, client_1.getCDPClient)();
407
+ try {
408
+ await cdpClient.forceReconnect();
409
+ console.error(`[MCPServer] Reconnected, retrying ${toolName}...`);
410
+ result = await tool.handler(sessionId, toolArgs);
411
+ }
412
+ catch (retryError) {
413
+ throw handlerError; // throw ORIGINAL error
414
+ }
415
+ }
416
+ else {
417
+ throw handlerError;
418
+ }
419
+ }
356
420
  // End activity tracking (success)
357
421
  this.activityTracker.endCall(callId, 'success');
358
422
  if (callId) {
@@ -365,15 +429,33 @@ class MCPServer {
365
429
  };
366
430
  }
367
431
  }
432
+ // Inject profile state
433
+ const profileInfo = this.buildProfileInfo();
434
+ if (profileInfo) {
435
+ result._profile = profileInfo.profile;
436
+ if (profileInfo.warning) {
437
+ const content = result.content;
438
+ if (Array.isArray(content)) {
439
+ content.unshift({ type: 'text', text: profileInfo.warning });
440
+ }
441
+ }
442
+ }
368
443
  // Inject proactive hint into both _hint (backward compat) and content[] (guaranteed MCP delivery)
369
444
  if (this.hintEngine) {
370
- const hint = this.hintEngine.getHint(toolName, result, false);
371
- if (hint) {
372
- result._hint = hint;
445
+ const hintResult = this.hintEngine.getHint(toolName, result, false);
446
+ if (hintResult) {
447
+ result._hint = hintResult.hint;
448
+ result._hintMeta = {
449
+ severity: hintResult.severity,
450
+ rule: hintResult.rule,
451
+ fireCount: hintResult.fireCount,
452
+ ...(hintResult.suggestion && { suggestion: hintResult.suggestion }),
453
+ ...(hintResult.context && { context: hintResult.context }),
454
+ };
373
455
  const content = result.content;
374
456
  if (Array.isArray(content)) {
375
457
  // Hint appended after tool result (may follow image blobs for verify:true tools)
376
- content.push({ type: 'text', text: `\n${hint}` });
458
+ content.push({ type: 'text', text: `\n${hintResult.hint}` });
377
459
  }
378
460
  }
379
461
  }
@@ -383,8 +465,12 @@ class MCPServer {
383
465
  const message = error instanceof Error ? error.message : String(error);
384
466
  // End activity tracking (error)
385
467
  this.activityTracker.endCall(callId, 'error', message);
468
+ // Append reconnection guidance for connection errors
469
+ const displayMessage = isConnectionError(error)
470
+ ? message + RECONNECTION_GUIDANCE
471
+ : message;
386
472
  const errResult = {
387
- content: [{ type: 'text', text: `Error: ${message}` }],
473
+ content: [{ type: 'text', text: `Error: ${displayMessage}` }],
388
474
  isError: true,
389
475
  };
390
476
  if (callId) {
@@ -397,13 +483,25 @@ class MCPServer {
397
483
  };
398
484
  }
399
485
  }
486
+ // Inject profile state (no warning on error responses)
487
+ const profileInfoErr = this.buildProfileInfo();
488
+ if (profileInfoErr) {
489
+ errResult._profile = profileInfoErr.profile;
490
+ }
400
491
  // Inject proactive hint for errors into both _hint and content[]
401
492
  if (this.hintEngine) {
402
- const hint = this.hintEngine.getHint(toolName, errResult, true);
403
- if (hint) {
404
- errResult._hint = hint;
493
+ const hintResult = this.hintEngine.getHint(toolName, errResult, true);
494
+ if (hintResult) {
495
+ errResult._hint = hintResult.hint;
496
+ errResult._hintMeta = {
497
+ severity: hintResult.severity,
498
+ rule: hintResult.rule,
499
+ fireCount: hintResult.fireCount,
500
+ ...(hintResult.suggestion && { suggestion: hintResult.suggestion }),
501
+ ...(hintResult.context && { context: hintResult.context }),
502
+ };
405
503
  if (Array.isArray(errResult.content)) {
406
- errResult.content.push({ type: 'text', text: `\n${hint}` });
504
+ errResult.content.push({ type: 'text', text: `\n${hintResult.hint}` });
407
505
  }
408
506
  }
409
507
  }
@@ -553,14 +651,53 @@ class MCPServer {
553
651
  return 'composite';
554
652
  if (['batch_execute', 'lightweight_scroll'].includes(toolName))
555
653
  return 'performance';
556
- if (toolName === 'oc_stop')
654
+ if (toolName === 'oc_stop' || toolName === 'oc_profile_status')
557
655
  return 'lifecycle';
558
656
  return 'interaction';
559
657
  }
658
+ /**
659
+ * Build the _profile metadata object and optional one-time warning.
660
+ * Returns null if profile state cannot be determined (e.g., launcher not initialized).
661
+ */
662
+ buildProfileInfo() {
663
+ try {
664
+ const launcher = (0, launcher_1.getChromeLauncher)();
665
+ const state = launcher.getProfileState();
666
+ const profile = {
667
+ type: state.type,
668
+ extensions: state.extensionsAvailable,
669
+ };
670
+ if (state.cookieCopiedAt) {
671
+ profile.cookieAge = (0, format_age_1.formatAge)(state.cookieCopiedAt);
672
+ }
673
+ let warning = null;
674
+ if (!this.profileWarningShown && state.type !== 'real' && state.type !== 'explicit') {
675
+ const parts = [];
676
+ if (state.type === 'persistent') {
677
+ parts.push('⚠️ Browser running with persistent OpenChrome profile (real Chrome profile is locked).');
678
+ parts.push(`Available: synced cookies${state.cookieCopiedAt ? ` (${(0, format_age_1.formatAge)(state.cookieCopiedAt)})` : ''} — authentication may work`);
679
+ parts.push('Not available: extensions, saved passwords, bookmarks');
680
+ parts.push('Tip: If authentication fails, the cookie sync may be stale. Ask the user to close Chrome.');
681
+ }
682
+ else {
683
+ parts.push('⚠️ Browser running with fresh temporary profile (no user data).');
684
+ parts.push('Not available: cookies, extensions, saved passwords, localStorage, bookmarks');
685
+ parts.push('Tip: The user will need to log in manually to any sites that require authentication.');
686
+ }
687
+ warning = parts.join('\n');
688
+ this.profileWarningShown = true;
689
+ }
690
+ return { profile, warning };
691
+ }
692
+ catch {
693
+ // Launcher may not be initialized yet
694
+ return null;
695
+ }
696
+ }
560
697
  /**
561
698
  * Stop the server and clean up all Chrome resources
562
699
  */
563
- stop() {
700
+ async stop() {
564
701
  // Stop dashboard
565
702
  if (this.dashboard) {
566
703
  this.dashboard.stop();
@@ -569,10 +706,15 @@ class MCPServer {
569
706
  this.rl.close();
570
707
  this.rl = null;
571
708
  }
572
- // Clean up Chrome resources (async, best-effort on exit)
573
- this.cleanup().catch((err) => {
574
- console.error('[MCPServer] Cleanup error:', err);
575
- });
709
+ // Await cleanup with safety timeout to prevent hanging forever
710
+ const timeoutMs = 5000;
711
+ await Promise.race([
712
+ this.cleanup(),
713
+ new Promise((resolve) => setTimeout(() => {
714
+ console.error('[MCPServer] Cleanup timed out after 5s, forcing exit');
715
+ resolve();
716
+ }, timeoutMs)),
717
+ ]);
576
718
  }
577
719
  /**
578
720
  * Clean up all Chrome resources: sessions, connection pool, CDP, and Chrome process
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,6 @@ export interface MCPResourceDefinition {
8
8
  mimeType: string;
9
9
  }
10
10
  export declare const usageGuideResource: MCPResourceDefinition;
11
- export declare const usageGuideContent = "\n# Browser Automation Usage Guide\n\n## When to Use Browser Tools\n\nUse openchrome browser tools ONLY when:\n\n1. **User explicitly requests browser/UI interaction**\n - Keywords: \"browser\", \"site\", \"page\", \"screenshot\", \"click\", \"UI\"\n - Example: \"Take a screenshot of the login page\"\n\n2. **Visual verification is required**\n - Checking how a page looks\n - Verifying UI elements are displayed correctly\n - Taking screenshots for documentation\n\n3. **No programmatic alternative exists**\n - The website has no API\n - The action requires JavaScript execution\n - Authentication flows that can't be bypassed\n\n4. **Real user interaction simulation is needed**\n - Form filling with dynamic validation\n - Multi-step workflows with JS-heavy pages\n - Testing actual user experience\n\n## When to PREFER Alternatives\n\n### Data Issues \u2192 Use Database Directly\n- Problem: \"User's data is wrong in the system\"\n- BAD: Navigate to admin panel \u2192 Find user \u2192 Edit form \u2192 Submit\n- GOOD: Direct SQL/DB query to fix the data\n\n### API Issues \u2192 Use curl/fetch/API client\n- Problem: \"API returns wrong response\"\n- BAD: Open browser \u2192 Navigate to endpoint \u2192 Check response\n- GOOD: `curl -X GET https://api.example.com/endpoint`\n\n### Code Bugs \u2192 Analyze and Fix Code\n- Problem: \"Button click doesn't work\"\n- BAD: Open browser \u2192 Try clicking \u2192 Debug visually\n- GOOD: Read the code \u2192 Find the bug \u2192 Fix it directly\n\n### Configuration Issues \u2192 Edit Config Files\n- Problem: \"Wrong setting in the application\"\n- BAD: Navigate to settings page \u2192 Change UI value\n- GOOD: Edit the configuration file directly\n\n## Decision Flowchart\n\n```\nUser Request\n \u2502\n \u25BC\nIs it about data? \u2500\u2500YES\u2500\u2500\u25BA Use DB query\n \u2502NO\n \u25BC\nIs it about API? \u2500\u2500YES\u2500\u2500\u25BA Use curl/API client\n \u2502NO\n \u25BC\nIs it about code? \u2500\u2500YES\u2500\u2500\u25BA Read/fix code directly\n \u2502NO\n \u25BC\nDid user explicitly \u2500\u2500NO\u2500\u2500\u25BA Ask for clarification\nmention browser/UI?\n \u2502YES\n \u25BC\nUse browser tools\n```\n\n## Cost Comparison\n\n| Approach | Time | Reliability | Context Usage |\n|----------|------|-------------|---------------|\n| DB Query | ~1s | High | Low |\n| API Call | ~2s | High | Low |\n| Code Fix | ~5s | High | Low |\n| Browser Automation | ~30s+ | Medium | High |\n\n## Summary\n\nBrowser automation is a powerful tool, but it should be your LAST resort.\nAlways consider simpler, faster, more reliable alternatives first.\n";
11
+ export declare const usageGuideContent = "\n# Browser Automation Usage Guide\n\n## When to Use Browser Tools\n\nUse openchrome browser tools ONLY when:\n\n1. **User explicitly requests browser/UI interaction**\n - Keywords: \"browser\", \"site\", \"page\", \"screenshot\", \"click\", \"UI\"\n - Example: \"Take a screenshot of the login page\"\n\n2. **Visual verification is required**\n - Checking how a page looks\n - Verifying UI elements are displayed correctly\n - Taking screenshots for documentation\n\n3. **No programmatic alternative exists**\n - The website has no API\n - The action requires JavaScript execution\n - Authentication flows that can't be bypassed\n\n4. **Real user interaction simulation is needed**\n - Form filling with dynamic validation\n - Multi-step workflows with JS-heavy pages\n - Testing actual user experience\n\n## When to PREFER Alternatives\n\n### Data Issues \u2192 Use Database Directly\n- Problem: \"User's data is wrong in the system\"\n- BAD: Navigate to admin panel \u2192 Find user \u2192 Edit form \u2192 Submit\n- GOOD: Direct SQL/DB query to fix the data\n\n### API Issues \u2192 Use curl/fetch/API client\n- Problem: \"API returns wrong response\"\n- BAD: Open browser \u2192 Navigate to endpoint \u2192 Check response\n- GOOD: `curl -X GET https://api.example.com/endpoint`\n\n### Code Bugs \u2192 Analyze and Fix Code\n- Problem: \"Button click doesn't work\"\n- BAD: Open browser \u2192 Try clicking \u2192 Debug visually\n- GOOD: Read the code \u2192 Find the bug \u2192 Fix it directly\n\n### Configuration Issues \u2192 Edit Config Files\n- Problem: \"Wrong setting in the application\"\n- BAD: Navigate to settings page \u2192 Change UI value\n- GOOD: Edit the configuration file directly\n\n## Decision Flowchart\n\n```\nUser Request\n \u2502\n \u25BC\nIs it about data? \u2500\u2500YES\u2500\u2500\u25BA Use DB query\n \u2502NO\n \u25BC\nIs it about API? \u2500\u2500YES\u2500\u2500\u25BA Use curl/API client\n \u2502NO\n \u25BC\nIs it about code? \u2500\u2500YES\u2500\u2500\u25BA Read/fix code directly\n \u2502NO\n \u25BC\nDid user explicitly \u2500\u2500NO\u2500\u2500\u25BA Ask for clarification\nmention browser/UI?\n \u2502YES\n \u25BC\nUse browser tools\n```\n\n## Cost Comparison\n\n| Approach | Time | Reliability | Context Usage |\n|----------|------|-------------|---------------|\n| DB Query | ~1s | High | Low |\n| API Call | ~2s | High | Low |\n| Code Fix | ~5s | High | Low |\n| Browser Automation | ~30s+ | Medium | High |\n\n## Summary\n\nBrowser automation is a powerful tool, but it should be your LAST resort.\nAlways consider simpler, faster, more reliable alternatives first.\n\n\n## Connection Recovery\n\nIf the browser connection is lost during a session:\n\n1. **Ask the user to run /mcp** in Claude Code to reconnect the MCP server\n2. **NEVER run these commands** to fix connection issues:\n - `claude mcp remove openchrome`\n - `claude mcp add openchrome ...`\n These commands break multi-scope MCP configurations.\n\n3. **The MCP server has built-in auto-reconnect**: It will automatically attempt\n to reconnect to Chrome when a connection error is detected. If auto-reconnect\n fails, the error message will include recovery instructions.\n\n### Why NOT to use \"claude mcp remove/add\"\n\nWhen openchrome is configured in both user-level (~/.claude.json) and project-level\n(.claude.json) scopes, running \"claude mcp remove\" without specifying a scope flag\n(-s local or -s user) causes a conflict error. The /mcp command simply reconnects\nto the existing MCP server process without touching configuration.\n";
12
12
  export declare function getUsageGuideContent(): string;
13
13
  //# sourceMappingURL=usage-guide.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"usage-guide.d.ts","sourceRoot":"","sources":["../../src/resources/usage-guide.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,qBAAqB;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,kBAAkB,EAAE,qBAKhC,CAAC;AAEF,eAAO,MAAM,iBAAiB,knFAmF7B,CAAC;AAEF,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C"}
1
+ {"version":3,"file":"usage-guide.d.ts","sourceRoot":"","sources":["../../src/resources/usage-guide.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,qBAAqB;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,kBAAkB,EAAE,qBAKhC,CAAC;AAEF,eAAO,MAAM,iBAAiB,6iHAyG7B,CAAC;AAEF,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C"}
@@ -94,6 +94,28 @@ Use browser tools
94
94
 
95
95
  Browser automation is a powerful tool, but it should be your LAST resort.
96
96
  Always consider simpler, faster, more reliable alternatives first.
97
+
98
+
99
+ ## Connection Recovery
100
+
101
+ If the browser connection is lost during a session:
102
+
103
+ 1. **Ask the user to run /mcp** in Claude Code to reconnect the MCP server
104
+ 2. **NEVER run these commands** to fix connection issues:
105
+ - \`claude mcp remove openchrome\`
106
+ - \`claude mcp add openchrome ...\`
107
+ These commands break multi-scope MCP configurations.
108
+
109
+ 3. **The MCP server has built-in auto-reconnect**: It will automatically attempt
110
+ to reconnect to Chrome when a connection error is detected. If auto-reconnect
111
+ fails, the error message will include recovery instructions.
112
+
113
+ ### Why NOT to use "claude mcp remove/add"
114
+
115
+ When openchrome is configured in both user-level (~/.claude.json) and project-level
116
+ (.claude.json) scopes, running "claude mcp remove" without specifying a scope flag
117
+ (-s local or -s user) causes a conflict error. The /mcp command simply reconnects
118
+ to the existing MCP server process without touching configuration.
97
119
  `;
98
120
  function getUsageGuideContent() {
99
121
  return exports.usageGuideContent.trim();
@@ -1 +1 @@
1
- {"version":3,"file":"usage-guide.js","sourceRoot":"","sources":["../../src/resources/usage-guide.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAqGH,oDAEC;AA9FY,QAAA,kBAAkB,GAA0B;IACvD,GAAG,EAAE,0BAA0B;IAC/B,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EAAE,8DAA8D;IAC3E,QAAQ,EAAE,YAAY;CACvB,CAAC;AAEW,QAAA,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmFhC,CAAC;AAEF,SAAgB,oBAAoB;IAClC,OAAO,yBAAiB,CAAC,IAAI,EAAE,CAAC;AAClC,CAAC"}
1
+ {"version":3,"file":"usage-guide.js","sourceRoot":"","sources":["../../src/resources/usage-guide.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AA2HH,oDAEC;AApHY,QAAA,kBAAkB,GAA0B;IACvD,GAAG,EAAE,0BAA0B;IAC/B,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EAAE,8DAA8D;IAC3E,QAAQ,EAAE,YAAY;CACvB,CAAC;AAEW,QAAA,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyGhC,CAAC;AAEF,SAAgB,oBAAoB;IAClC,OAAO,yBAAiB,CAAC,IAAI,EAAE,CAAC;AAClC,CAAC"}
@@ -20,6 +20,10 @@ export interface SessionManagerConfig {
20
20
  maxSessions?: number;
21
21
  /** Maximum workers per session (default: 20) */
22
22
  maxWorkersPerSession?: number;
23
+ /** Maximum targets (tabs) per worker (default: 5). Oldest closed when exceeded. */
24
+ maxTargetsPerWorker?: number;
25
+ /** Memory pressure threshold in bytes. Below this free memory, aggressive cleanup triggers. (default: 500MB) */
26
+ memoryPressureThreshold?: number;
23
27
  /** Use connection pool for page management (default: false for worker isolation) */
24
28
  useConnectionPool?: boolean;
25
29
  /** Use default browser context (shares cookies/sessions with Chrome profile) */
@@ -1 +1 @@
1
- {"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../src/session-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../src/session-manager.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,39 @@
3
3
  * Session Manager - Manages lifecycle of parallel Claude Code sessions
4
4
  * Supports multiple Workers within a single session for parallel browser operations
5
5
  */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || (function () {
23
+ var ownKeys = function(o) {
24
+ ownKeys = Object.getOwnPropertyNames || function (o) {
25
+ var ar = [];
26
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
+ return ar;
28
+ };
29
+ return ownKeys(o);
30
+ };
31
+ return function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ })();
6
39
  var __importDefault = (this && this.__importDefault) || function (mod) {
7
40
  return (mod && mod.__esModule) ? mod : { "default": mod };
8
41
  };
@@ -19,6 +52,7 @@ const request_queue_1 = require("./utils/request-queue");
19
52
  const ref_id_manager_1 = require("./utils/ref-id-manager");
20
53
  const smart_goto_1 = require("./utils/smart-goto");
21
54
  const defaults_1 = require("./config/defaults");
55
+ const os = __importStar(require("os"));
22
56
  const router_1 = require("./router");
23
57
  const storage_state_1 = require("./storage-state");
24
58
  // Helper to get target ID (internal puppeteer property)
@@ -31,6 +65,8 @@ const DEFAULT_CONFIG = {
31
65
  autoCleanup: true,
32
66
  maxSessions: 100,
33
67
  maxWorkersPerSession: 50,
68
+ maxTargetsPerWorker: defaults_1.DEFAULT_MAX_TARGETS_PER_WORKER,
69
+ memoryPressureThreshold: defaults_1.DEFAULT_MEMORY_PRESSURE_THRESHOLD,
34
70
  useConnectionPool: true, // Enabled by default for faster page creation
35
71
  useDefaultContext: true, // Use Chrome profile's cookies/sessions by default
36
72
  usePool: false, // Disabled by default; enable for multi-Chrome origin isolation
@@ -104,6 +140,16 @@ class SessionManager {
104
140
  console.error(`[SessionManager] Auto-cleanup: removed ${deleted.length} inactive session(s)`);
105
141
  }
106
142
  this.lastCleanupTime = Date.now();
143
+ // Memory pressure monitoring: aggressive cleanup when free RAM is low
144
+ const freeMemory = os.freemem();
145
+ if (freeMemory < this.config.memoryPressureThreshold) {
146
+ console.error(`[SessionManager] Memory pressure detected: ${Math.round(freeMemory / 1024 / 1024)}MB free (threshold: ${Math.round(this.config.memoryPressureThreshold / 1024 / 1024)}MB)`);
147
+ const aggressiveTTL = 5 * 60 * 1000; // 5-minute TTL instead of normal 30-minute
148
+ const aggressiveDeleted = await this.cleanupInactiveSessions(aggressiveTTL);
149
+ if (aggressiveDeleted.length > 0) {
150
+ console.error(`[SessionManager] Memory pressure cleanup: removed ${aggressiveDeleted.length} session(s) (5-min TTL)`);
151
+ }
152
+ }
107
153
  }
108
154
  catch (error) {
109
155
  console.error('[SessionManager] Auto-cleanup error:', error);
@@ -528,6 +574,16 @@ class SessionManager {
528
574
  async createTarget(sessionId, url, workerId) {
529
575
  await this.ensureConnected();
530
576
  const worker = await this.getOrCreateWorker(sessionId, workerId);
577
+ // Enforce per-worker tab limit: close oldest tab when limit reached
578
+ if (worker.targets.size >= this.config.maxTargetsPerWorker) {
579
+ // Set iterates in insertion order (ES2015+), which corresponds to creation order
580
+ // as long as targets are only added (never removed and re-added).
581
+ const oldestTargetId = worker.targets.values().next().value;
582
+ if (oldestTargetId) {
583
+ console.error(`[SessionManager] Worker ${worker.id} reached tab limit (${this.config.maxTargetsPerWorker}), closing oldest tab ${oldestTargetId}`);
584
+ await this.closeTarget(sessionId, oldestTargetId);
585
+ }
586
+ }
531
587
  // Create page — try connection pool first for pre-warmed pages, fall back to direct creation
532
588
  const cdpClient = this.getCDPClientForWorker(sessionId, worker.id);
533
589
  let page;