claude-chrome-parallel 3.4.2 → 3.5.1

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 (49) hide show
  1. package/README.md +1 -1
  2. package/dist/cdp/connection-pool.d.ts +29 -0
  3. package/dist/cdp/connection-pool.d.ts.map +1 -1
  4. package/dist/cdp/connection-pool.js +141 -2
  5. package/dist/cdp/connection-pool.js.map +1 -1
  6. package/dist/cdp/screenshot-scheduler.d.ts +54 -0
  7. package/dist/cdp/screenshot-scheduler.d.ts.map +1 -0
  8. package/dist/cdp/screenshot-scheduler.js +87 -0
  9. package/dist/cdp/screenshot-scheduler.js.map +1 -0
  10. package/dist/hints/rules/error-recovery.d.ts.map +1 -1
  11. package/dist/hints/rules/error-recovery.js +4 -0
  12. package/dist/hints/rules/error-recovery.js.map +1 -1
  13. package/dist/mcp-server.d.ts +5 -1
  14. package/dist/mcp-server.d.ts.map +1 -1
  15. package/dist/mcp-server.js +45 -1
  16. package/dist/mcp-server.js.map +1 -1
  17. package/dist/orchestration/workflow-engine.d.ts +30 -1
  18. package/dist/orchestration/workflow-engine.d.ts.map +1 -1
  19. package/dist/orchestration/workflow-engine.js +160 -4
  20. package/dist/orchestration/workflow-engine.js.map +1 -1
  21. package/dist/session-manager.d.ts +6 -0
  22. package/dist/session-manager.d.ts.map +1 -1
  23. package/dist/session-manager.js +26 -0
  24. package/dist/session-manager.js.map +1 -1
  25. package/dist/tools/batch-execute.d.ts +11 -0
  26. package/dist/tools/batch-execute.d.ts.map +1 -0
  27. package/dist/tools/batch-execute.js +226 -0
  28. package/dist/tools/batch-execute.js.map +1 -0
  29. package/dist/tools/computer.d.ts.map +1 -1
  30. package/dist/tools/computer.js +4 -2
  31. package/dist/tools/computer.js.map +1 -1
  32. package/dist/tools/index.d.ts.map +1 -1
  33. package/dist/tools/index.js +10 -0
  34. package/dist/tools/index.js.map +1 -1
  35. package/dist/tools/lightweight-scroll.d.ts +11 -0
  36. package/dist/tools/lightweight-scroll.d.ts.map +1 -0
  37. package/dist/tools/lightweight-scroll.js +266 -0
  38. package/dist/tools/lightweight-scroll.js.map +1 -0
  39. package/dist/tools/orchestration.d.ts.map +1 -1
  40. package/dist/tools/orchestration.js +123 -10
  41. package/dist/tools/orchestration.js.map +1 -1
  42. package/dist/tools/read-page.d.ts.map +1 -1
  43. package/dist/tools/read-page.js +59 -0
  44. package/dist/tools/read-page.js.map +1 -1
  45. package/dist/tools/shutdown.d.ts +12 -0
  46. package/dist/tools/shutdown.d.ts.map +1 -0
  47. package/dist/tools/shutdown.js +120 -0
  48. package/dist/tools/shutdown.js.map +1 -0
  49. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shutdown.d.ts","sourceRoot":"","sources":["../../src/tools/shutdown.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAiH1C,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAE5D"}
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+ /**
3
+ * Shutdown Tool - Gracefully stop CCP and close Chrome
4
+ *
5
+ * Provides "ccp stop" functionality:
6
+ * 1. Clean up all sessions and workers
7
+ * 2. Shutdown connection pool (close all pooled pages)
8
+ * 3. Disconnect CDP client
9
+ * 4. Kill Chrome process if CCP launched it
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.registerShutdownTool = registerShutdownTool;
13
+ const session_manager_1 = require("../session-manager");
14
+ const connection_pool_1 = require("../cdp/connection-pool");
15
+ const client_1 = require("../cdp/client");
16
+ const launcher_1 = require("../chrome/launcher");
17
+ const definition = {
18
+ name: 'ccp_stop',
19
+ description: 'Gracefully shut down CCP: close all browser sessions, tabs, and the Chrome process. ' +
20
+ 'Use this when you are done with browser automation. Chrome will be re-launched ' +
21
+ 'automatically on the next CCP tool call.',
22
+ inputSchema: {
23
+ type: 'object',
24
+ properties: {
25
+ keepChrome: {
26
+ type: 'boolean',
27
+ description: 'If true, keep Chrome running but disconnect CCP from it (default: false). ' +
28
+ 'When false, Chrome is killed if CCP launched it.',
29
+ },
30
+ },
31
+ required: [],
32
+ },
33
+ };
34
+ const handler = async (_sessionId, args) => {
35
+ const keepChrome = args.keepChrome || false;
36
+ const steps = [];
37
+ const startTime = Date.now();
38
+ try {
39
+ // Step 1: Clean up all sessions (closes workers, tabs, browser contexts)
40
+ const sessionManager = (0, session_manager_1.getSessionManager)();
41
+ const sessionCount = await sessionManager.cleanupAllSessions();
42
+ steps.push(`Cleaned up ${sessionCount} session(s)`);
43
+ // Step 2: Shutdown connection pool (closes all pooled about:blank pages)
44
+ try {
45
+ const pool = (0, connection_pool_1.getCDPConnectionPool)();
46
+ const stats = pool.getStats();
47
+ await pool.shutdown();
48
+ steps.push(`Shutdown connection pool (${stats.availablePages} pooled + ${stats.inUsePages} in-use pages closed)`);
49
+ }
50
+ catch (e) {
51
+ steps.push(`Connection pool: ${e instanceof Error ? e.message : 'already shutdown'}`);
52
+ }
53
+ // Step 3: Disconnect CDP client
54
+ try {
55
+ const cdpClient = (0, client_1.getCDPClient)();
56
+ if (cdpClient.isConnected()) {
57
+ await cdpClient.disconnect();
58
+ steps.push('Disconnected CDP client');
59
+ }
60
+ else {
61
+ steps.push('CDP client: already disconnected');
62
+ }
63
+ }
64
+ catch (e) {
65
+ steps.push(`CDP client: ${e instanceof Error ? e.message : 'error'}`);
66
+ }
67
+ // Step 4: Close Chrome process (if CCP launched it and keepChrome is false)
68
+ if (!keepChrome) {
69
+ try {
70
+ const launcher = (0, launcher_1.getChromeLauncher)();
71
+ if (launcher.isConnected()) {
72
+ await launcher.close();
73
+ steps.push('Chrome process terminated');
74
+ }
75
+ else {
76
+ steps.push('Chrome: no CCP-managed process to terminate');
77
+ }
78
+ }
79
+ catch (e) {
80
+ steps.push(`Chrome: ${e instanceof Error ? e.message : 'error'}`);
81
+ }
82
+ }
83
+ else {
84
+ steps.push('Chrome: kept running (keepChrome=true)');
85
+ }
86
+ const durationMs = Date.now() - startTime;
87
+ return {
88
+ content: [
89
+ {
90
+ type: 'text',
91
+ text: [
92
+ 'CCP stopped successfully.',
93
+ '',
94
+ 'Shutdown steps:',
95
+ ...steps.map((s, i) => ` ${i + 1}. ${s}`),
96
+ '',
97
+ `Total: ${durationMs}ms`,
98
+ '',
99
+ 'Chrome will re-launch automatically on the next CCP tool call.',
100
+ ].join('\n'),
101
+ },
102
+ ],
103
+ };
104
+ }
105
+ catch (error) {
106
+ return {
107
+ content: [
108
+ {
109
+ type: 'text',
110
+ text: `Error during shutdown: ${error instanceof Error ? error.message : String(error)}\n\nPartial steps completed:\n${steps.map((s, i) => ` ${i + 1}. ${s}`).join('\n')}`,
111
+ },
112
+ ],
113
+ isError: true,
114
+ };
115
+ }
116
+ };
117
+ function registerShutdownTool(server) {
118
+ server.registerTool('ccp_stop', handler, definition);
119
+ }
120
+ //# sourceMappingURL=shutdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shutdown.js","sourceRoot":"","sources":["../../src/tools/shutdown.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-chrome-parallel",
3
- "version": "3.4.2",
3
+ "version": "3.5.1",
4
4
  "description": "Ultrafast parallel browser MCP. Say 'ccp' and Claude automates your Chrome.",
5
5
  "main": "dist/index.js",
6
6
  "bin": {