claude-chrome-parallel 3.0.3 → 3.4.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.
Files changed (315) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +398 -464
  3. package/assets/demo.svg +278 -173
  4. package/dist/cdp/client.d.ts +60 -2
  5. package/dist/cdp/client.d.ts.map +1 -1
  6. package/dist/cdp/client.js +344 -5
  7. package/dist/cdp/client.js.map +1 -1
  8. package/dist/cdp/connection-pool.d.ts.map +1 -1
  9. package/dist/cdp/connection-pool.js +20 -4
  10. package/dist/cdp/connection-pool.js.map +1 -1
  11. package/dist/chrome/launcher.d.ts +11 -0
  12. package/dist/chrome/launcher.d.ts.map +1 -1
  13. package/dist/chrome/launcher.js +124 -10
  14. package/dist/chrome/launcher.js.map +1 -1
  15. package/dist/chrome/pool.d.ts +54 -0
  16. package/dist/chrome/pool.d.ts.map +1 -0
  17. package/dist/chrome/pool.js +301 -0
  18. package/dist/chrome/pool.js.map +1 -0
  19. package/dist/chrome/profile-detector.d.ts +52 -0
  20. package/dist/chrome/profile-detector.d.ts.map +1 -0
  21. package/dist/chrome/profile-detector.js +246 -0
  22. package/dist/chrome/profile-detector.js.map +1 -0
  23. package/dist/cli/claude-session.js +15 -15
  24. package/dist/cli/index.js +162 -37
  25. package/dist/cli/index.js.map +1 -1
  26. package/dist/cli/update-check.d.ts +9 -0
  27. package/dist/cli/update-check.js +141 -0
  28. package/dist/cli/update-check.js.map +1 -0
  29. package/dist/config/global.d.ts +31 -0
  30. package/dist/config/global.d.ts.map +1 -1
  31. package/dist/config/global.js.map +1 -1
  32. package/dist/dashboard/activity-tracker.d.ts +60 -0
  33. package/dist/dashboard/activity-tracker.d.ts.map +1 -0
  34. package/dist/dashboard/activity-tracker.js +178 -0
  35. package/dist/dashboard/activity-tracker.js.map +1 -0
  36. package/dist/dashboard/ansi.d.ts +117 -0
  37. package/dist/dashboard/ansi.d.ts.map +1 -0
  38. package/dist/dashboard/ansi.js +199 -0
  39. package/dist/dashboard/ansi.js.map +1 -0
  40. package/dist/dashboard/index.d.ts +110 -0
  41. package/dist/dashboard/index.d.ts.map +1 -0
  42. package/dist/dashboard/index.js +412 -0
  43. package/dist/dashboard/index.js.map +1 -0
  44. package/dist/dashboard/keyboard-handler.d.ts +43 -0
  45. package/dist/dashboard/keyboard-handler.d.ts.map +1 -0
  46. package/dist/dashboard/keyboard-handler.js +215 -0
  47. package/dist/dashboard/keyboard-handler.js.map +1 -0
  48. package/dist/dashboard/operation-controller.d.ts +76 -0
  49. package/dist/dashboard/operation-controller.d.ts.map +1 -0
  50. package/dist/dashboard/operation-controller.js +167 -0
  51. package/dist/dashboard/operation-controller.js.map +1 -0
  52. package/dist/dashboard/renderer.d.ts +76 -0
  53. package/dist/dashboard/renderer.d.ts.map +1 -0
  54. package/dist/dashboard/renderer.js +193 -0
  55. package/dist/dashboard/renderer.js.map +1 -0
  56. package/dist/dashboard/types.d.ts +56 -0
  57. package/dist/dashboard/types.d.ts.map +1 -0
  58. package/dist/dashboard/types.js +12 -0
  59. package/dist/dashboard/types.js.map +1 -0
  60. package/dist/dashboard/views/main-view.d.ts +23 -0
  61. package/dist/dashboard/views/main-view.d.ts.map +1 -0
  62. package/dist/dashboard/views/main-view.js +143 -0
  63. package/dist/dashboard/views/main-view.js.map +1 -0
  64. package/dist/dashboard/views/sessions-view.d.ts +22 -0
  65. package/dist/dashboard/views/sessions-view.d.ts.map +1 -0
  66. package/dist/dashboard/views/sessions-view.js +104 -0
  67. package/dist/dashboard/views/sessions-view.js.map +1 -0
  68. package/dist/dashboard/views/tabs-view.d.ts +21 -0
  69. package/dist/dashboard/views/tabs-view.d.ts.map +1 -0
  70. package/dist/dashboard/views/tabs-view.js +92 -0
  71. package/dist/dashboard/views/tabs-view.js.map +1 -0
  72. package/dist/hints/hint-engine.d.ts +65 -0
  73. package/dist/hints/hint-engine.d.ts.map +1 -0
  74. package/dist/hints/hint-engine.js +156 -0
  75. package/dist/hints/hint-engine.js.map +1 -0
  76. package/dist/hints/index.d.ts +8 -0
  77. package/dist/hints/index.d.ts.map +1 -0
  78. package/dist/hints/index.js +11 -0
  79. package/dist/hints/index.js.map +1 -0
  80. package/dist/hints/pattern-learner.d.ts +76 -0
  81. package/dist/hints/pattern-learner.d.ts.map +1 -0
  82. package/dist/hints/pattern-learner.js +254 -0
  83. package/dist/hints/pattern-learner.js.map +1 -0
  84. package/dist/hints/rules/composite-suggestions.d.ts +6 -0
  85. package/dist/hints/rules/composite-suggestions.d.ts.map +1 -0
  86. package/dist/hints/rules/composite-suggestions.js +66 -0
  87. package/dist/hints/rules/composite-suggestions.js.map +1 -0
  88. package/dist/hints/rules/error-recovery.d.ts +7 -0
  89. package/dist/hints/rules/error-recovery.d.ts.map +1 -0
  90. package/dist/hints/rules/error-recovery.js +47 -0
  91. package/dist/hints/rules/error-recovery.js.map +1 -0
  92. package/dist/hints/rules/learned-rules.d.ts +13 -0
  93. package/dist/hints/rules/learned-rules.d.ts.map +1 -0
  94. package/dist/hints/rules/learned-rules.js +27 -0
  95. package/dist/hints/rules/learned-rules.js.map +1 -0
  96. package/dist/hints/rules/repetition-detection.d.ts +7 -0
  97. package/dist/hints/rules/repetition-detection.d.ts.map +1 -0
  98. package/dist/hints/rules/repetition-detection.js +82 -0
  99. package/dist/hints/rules/repetition-detection.js.map +1 -0
  100. package/dist/hints/rules/sequence-detection.d.ts +6 -0
  101. package/dist/hints/rules/sequence-detection.d.ts.map +1 -0
  102. package/dist/hints/rules/sequence-detection.js +61 -0
  103. package/dist/hints/rules/sequence-detection.js.map +1 -0
  104. package/dist/hints/rules/success-hints.d.ts +6 -0
  105. package/dist/hints/rules/success-hints.d.ts.map +1 -0
  106. package/dist/hints/rules/success-hints.js +62 -0
  107. package/dist/hints/rules/success-hints.js.map +1 -0
  108. package/dist/index.js +190 -55
  109. package/dist/index.js.map +1 -1
  110. package/dist/lightpanda/launcher.d.ts +58 -0
  111. package/dist/lightpanda/launcher.d.ts.map +1 -0
  112. package/dist/lightpanda/launcher.js +199 -0
  113. package/dist/lightpanda/launcher.js.map +1 -0
  114. package/dist/mcp-server.d.ts +38 -1
  115. package/dist/mcp-server.d.ts.map +1 -1
  116. package/dist/mcp-server.js +220 -6
  117. package/dist/mcp-server.js.map +1 -1
  118. package/dist/orchestration/state-manager.js +46 -46
  119. package/dist/orchestration/workflow-engine.d.ts +1 -0
  120. package/dist/orchestration/workflow-engine.d.ts.map +1 -1
  121. package/dist/orchestration/workflow-engine.js +112 -114
  122. package/dist/orchestration/workflow-engine.js.map +1 -1
  123. package/dist/resources/usage-guide.d.ts +13 -0
  124. package/dist/resources/usage-guide.d.ts.map +1 -0
  125. package/dist/resources/usage-guide.js +101 -0
  126. package/dist/resources/usage-guide.js.map +1 -0
  127. package/dist/router/browser-router.d.ts +51 -0
  128. package/dist/router/browser-router.d.ts.map +1 -0
  129. package/dist/router/browser-router.js +178 -0
  130. package/dist/router/browser-router.js.map +1 -0
  131. package/dist/router/cookie-sync.d.ts +48 -0
  132. package/dist/router/cookie-sync.d.ts.map +1 -0
  133. package/dist/router/cookie-sync.js +106 -0
  134. package/dist/router/cookie-sync.js.map +1 -0
  135. package/dist/router/index.d.ts +5 -0
  136. package/dist/router/index.d.ts.map +1 -0
  137. package/dist/router/index.js +10 -0
  138. package/dist/router/index.js.map +1 -0
  139. package/dist/router/tool-routing-registry.d.ts +21 -0
  140. package/dist/router/tool-routing-registry.d.ts.map +1 -0
  141. package/dist/router/tool-routing-registry.js +90 -0
  142. package/dist/router/tool-routing-registry.js.map +1 -0
  143. package/dist/session-manager.d.ts +41 -1
  144. package/dist/session-manager.d.ts.map +1 -1
  145. package/dist/session-manager.js +216 -21
  146. package/dist/session-manager.js.map +1 -1
  147. package/dist/tools/click-element.d.ts +8 -0
  148. package/dist/tools/click-element.d.ts.map +1 -0
  149. package/dist/tools/click-element.js +383 -0
  150. package/dist/tools/click-element.js.map +1 -0
  151. package/dist/tools/computer.d.ts.map +1 -1
  152. package/dist/tools/computer.js +198 -34
  153. package/dist/tools/computer.js.map +1 -1
  154. package/dist/tools/console-capture.d.ts +6 -0
  155. package/dist/tools/console-capture.d.ts.map +1 -0
  156. package/dist/tools/console-capture.js +320 -0
  157. package/dist/tools/console-capture.js.map +1 -0
  158. package/dist/tools/cookies.d.ts +6 -0
  159. package/dist/tools/cookies.d.ts.map +1 -0
  160. package/dist/tools/cookies.js +263 -0
  161. package/dist/tools/cookies.js.map +1 -0
  162. package/dist/tools/drag-drop.d.ts +6 -0
  163. package/dist/tools/drag-drop.d.ts.map +1 -0
  164. package/dist/tools/drag-drop.js +252 -0
  165. package/dist/tools/drag-drop.js.map +1 -0
  166. package/dist/tools/emulate-device.d.ts +6 -0
  167. package/dist/tools/emulate-device.d.ts.map +1 -0
  168. package/dist/tools/emulate-device.js +221 -0
  169. package/dist/tools/emulate-device.js.map +1 -0
  170. package/dist/tools/file-upload.d.ts +6 -0
  171. package/dist/tools/file-upload.d.ts.map +1 -0
  172. package/dist/tools/file-upload.js +208 -0
  173. package/dist/tools/file-upload.js.map +1 -0
  174. package/dist/tools/fill-form.d.ts +8 -0
  175. package/dist/tools/fill-form.d.ts.map +1 -0
  176. package/dist/tools/fill-form.js +342 -0
  177. package/dist/tools/fill-form.js.map +1 -0
  178. package/dist/tools/find.d.ts.map +1 -1
  179. package/dist/tools/find.js +153 -65
  180. package/dist/tools/find.js.map +1 -1
  181. package/dist/tools/form-input.js +52 -52
  182. package/dist/tools/form-input.js.map +1 -1
  183. package/dist/tools/geolocation.d.ts +6 -0
  184. package/dist/tools/geolocation.d.ts.map +1 -0
  185. package/dist/tools/geolocation.js +172 -0
  186. package/dist/tools/geolocation.js.map +1 -0
  187. package/dist/tools/http-auth.d.ts +6 -0
  188. package/dist/tools/http-auth.d.ts.map +1 -0
  189. package/dist/tools/http-auth.js +136 -0
  190. package/dist/tools/http-auth.js.map +1 -0
  191. package/dist/tools/index.d.ts.map +1 -1
  192. package/dist/tools/index.js +50 -0
  193. package/dist/tools/index.js.map +1 -1
  194. package/dist/tools/javascript.js +1 -1
  195. package/dist/tools/javascript.js.map +1 -1
  196. package/dist/tools/navigate.d.ts.map +1 -1
  197. package/dist/tools/navigate.js +5 -2
  198. package/dist/tools/navigate.js.map +1 -1
  199. package/dist/tools/network.js +4 -4
  200. package/dist/tools/network.js.map +1 -1
  201. package/dist/tools/orchestration.d.ts.map +1 -1
  202. package/dist/tools/orchestration.js +13 -8
  203. package/dist/tools/orchestration.js.map +1 -1
  204. package/dist/tools/page-content.d.ts +6 -0
  205. package/dist/tools/page-content.d.ts.map +1 -0
  206. package/dist/tools/page-content.js +120 -0
  207. package/dist/tools/page-content.js.map +1 -0
  208. package/dist/tools/page-pdf.d.ts +6 -0
  209. package/dist/tools/page-pdf.d.ts.map +1 -0
  210. package/dist/tools/page-pdf.js +245 -0
  211. package/dist/tools/page-pdf.js.map +1 -0
  212. package/dist/tools/page-reload.d.ts +6 -0
  213. package/dist/tools/page-reload.d.ts.map +1 -0
  214. package/dist/tools/page-reload.js +89 -0
  215. package/dist/tools/page-reload.js.map +1 -0
  216. package/dist/tools/performance-metrics.d.ts +6 -0
  217. package/dist/tools/performance-metrics.d.ts.map +1 -0
  218. package/dist/tools/performance-metrics.js +158 -0
  219. package/dist/tools/performance-metrics.js.map +1 -0
  220. package/dist/tools/read-page.d.ts.map +1 -1
  221. package/dist/tools/read-page.js +4 -2
  222. package/dist/tools/read-page.js.map +1 -1
  223. package/dist/tools/request-intercept.d.ts +6 -0
  224. package/dist/tools/request-intercept.d.ts.map +1 -0
  225. package/dist/tools/request-intercept.js +439 -0
  226. package/dist/tools/request-intercept.js.map +1 -0
  227. package/dist/tools/selector-query.d.ts +6 -0
  228. package/dist/tools/selector-query.d.ts.map +1 -0
  229. package/dist/tools/selector-query.js +206 -0
  230. package/dist/tools/selector-query.js.map +1 -0
  231. package/dist/tools/storage.d.ts +6 -0
  232. package/dist/tools/storage.d.ts.map +1 -0
  233. package/dist/tools/storage.js +264 -0
  234. package/dist/tools/storage.js.map +1 -0
  235. package/dist/tools/tabs-close.d.ts +6 -0
  236. package/dist/tools/tabs-close.d.ts.map +1 -0
  237. package/dist/tools/tabs-close.js +124 -0
  238. package/dist/tools/tabs-close.js.map +1 -0
  239. package/dist/tools/tabs-context.js +1 -1
  240. package/dist/tools/tabs-context.js.map +1 -1
  241. package/dist/tools/user-agent.d.ts +6 -0
  242. package/dist/tools/user-agent.d.ts.map +1 -0
  243. package/dist/tools/user-agent.js +128 -0
  244. package/dist/tools/user-agent.js.map +1 -0
  245. package/dist/tools/wait-and-click.d.ts +8 -0
  246. package/dist/tools/wait-and-click.d.ts.map +1 -0
  247. package/dist/tools/wait-and-click.js +290 -0
  248. package/dist/tools/wait-and-click.js.map +1 -0
  249. package/dist/tools/wait-for.d.ts +6 -0
  250. package/dist/tools/wait-for.d.ts.map +1 -0
  251. package/dist/tools/wait-for.js +248 -0
  252. package/dist/tools/wait-for.js.map +1 -0
  253. package/dist/tools/xpath-query.d.ts +6 -0
  254. package/dist/tools/xpath-query.d.ts.map +1 -0
  255. package/dist/tools/xpath-query.js +230 -0
  256. package/dist/tools/xpath-query.js.map +1 -0
  257. package/dist/types/browser-backend.d.ts +30 -0
  258. package/dist/types/browser-backend.d.ts.map +1 -0
  259. package/dist/types/browser-backend.js +9 -0
  260. package/dist/types/browser-backend.js.map +1 -0
  261. package/dist/types/profile.d.ts +76 -0
  262. package/dist/types/profile.d.ts.map +1 -0
  263. package/dist/types/profile.js +35 -0
  264. package/dist/types/profile.js.map +1 -0
  265. package/dist/types/session.d.ts +7 -3
  266. package/dist/types/session.d.ts.map +1 -1
  267. package/package.json +78 -75
  268. package/dist/master/index.d.ts +0 -18
  269. package/dist/master/index.d.ts.map +0 -1
  270. package/dist/master/index.js +0 -75
  271. package/dist/master/index.js.map +0 -1
  272. package/dist/master/ipc-server.d.ts +0 -21
  273. package/dist/master/ipc-server.d.ts.map +0 -1
  274. package/dist/master/ipc-server.js +0 -175
  275. package/dist/master/ipc-server.js.map +0 -1
  276. package/dist/master/request-handler.d.ts +0 -17
  277. package/dist/master/request-handler.d.ts.map +0 -1
  278. package/dist/master/request-handler.js +0 -134
  279. package/dist/master/request-handler.js.map +0 -1
  280. package/dist/master/session-registry.d.ts +0 -120
  281. package/dist/master/session-registry.d.ts.map +0 -1
  282. package/dist/master/session-registry.js +0 -247
  283. package/dist/master/session-registry.js.map +0 -1
  284. package/dist/shared/ipc-constants.d.ts +0 -16
  285. package/dist/shared/ipc-constants.d.ts.map +0 -1
  286. package/dist/shared/ipc-constants.js +0 -66
  287. package/dist/shared/ipc-constants.js.map +0 -1
  288. package/dist/shared/ipc-protocol.d.ts +0 -33
  289. package/dist/shared/ipc-protocol.d.ts.map +0 -1
  290. package/dist/shared/ipc-protocol.js +0 -20
  291. package/dist/shared/ipc-protocol.js.map +0 -1
  292. package/dist/worker/auto-master.d.ts +0 -24
  293. package/dist/worker/auto-master.d.ts.map +0 -1
  294. package/dist/worker/auto-master.js +0 -135
  295. package/dist/worker/auto-master.js.map +0 -1
  296. package/dist/worker/index.d.ts +0 -25
  297. package/dist/worker/index.d.ts.map +0 -1
  298. package/dist/worker/index.js +0 -93
  299. package/dist/worker/index.js.map +0 -1
  300. package/dist/worker/ipc-client.d.ts +0 -26
  301. package/dist/worker/ipc-client.d.ts.map +0 -1
  302. package/dist/worker/ipc-client.js +0 -211
  303. package/dist/worker/ipc-client.js.map +0 -1
  304. package/dist/worker/remote-session-manager.d.ts +0 -114
  305. package/dist/worker/remote-session-manager.d.ts.map +0 -1
  306. package/dist/worker/remote-session-manager.js +0 -151
  307. package/dist/worker/remote-session-manager.js.map +0 -1
  308. package/dist/worker/tools.d.ts +0 -7
  309. package/dist/worker/tools.d.ts.map +0 -1
  310. package/dist/worker/tools.js +0 -340
  311. package/dist/worker/tools.js.map +0 -1
  312. package/dist/worker/worker-mcp-server.d.ts +0 -70
  313. package/dist/worker/worker-mcp-server.d.ts.map +0 -1
  314. package/dist/worker/worker-mcp-server.js +0 -295
  315. package/dist/worker/worker-mcp-server.js.map +0 -1
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ /**
3
+ * Chrome Profile Types - Type definitions for profile management
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ProfileNotFoundError = exports.ProfileInUseError = void 0;
7
+ /**
8
+ * Error thrown when profile is already in use
9
+ */
10
+ class ProfileInUseError extends Error {
11
+ profileId;
12
+ profilePath;
13
+ constructor(profileId, profilePath) {
14
+ super(`Profile "${profileId}" is already in use. Please close Chrome or use a different profile.`);
15
+ this.profileId = profileId;
16
+ this.profilePath = profilePath;
17
+ this.name = 'ProfileInUseError';
18
+ }
19
+ }
20
+ exports.ProfileInUseError = ProfileInUseError;
21
+ /**
22
+ * Error thrown when profile is not found
23
+ */
24
+ class ProfileNotFoundError extends Error {
25
+ profileId;
26
+ availableProfiles;
27
+ constructor(profileId, availableProfiles) {
28
+ super(`Profile "${profileId}" not found. Available profiles: ${availableProfiles.join(', ') || 'none'}`);
29
+ this.profileId = profileId;
30
+ this.availableProfiles = availableProfiles;
31
+ this.name = 'ProfileNotFoundError';
32
+ }
33
+ }
34
+ exports.ProfileNotFoundError = ProfileNotFoundError;
35
+ //# sourceMappingURL=profile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile.js","sourceRoot":"","sources":["../../src/types/profile.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AA+DH;;GAEG;AACH,MAAa,iBAAkB,SAAQ,KAAK;IAExB;IACA;IAFlB,YACkB,SAAiB,EACjB,WAAmB;QAEnC,KAAK,CAAC,YAAY,SAAS,sEAAsE,CAAC,CAAC;QAHnF,cAAS,GAAT,SAAS,CAAQ;QACjB,gBAAW,GAAX,WAAW,CAAQ;QAGnC,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AARD,8CAQC;AAED;;GAEG;AACH,MAAa,oBAAqB,SAAQ,KAAK;IAE3B;IACA;IAFlB,YACkB,SAAiB,EACjB,iBAA2B;QAE3C,KAAK,CACH,YAAY,SAAS,oCAAoC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,EAAE,CAClG,CAAC;QALc,cAAS,GAAT,SAAS,CAAQ;QACjB,sBAAiB,GAAjB,iBAAiB,CAAU;QAK3C,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAVD,oDAUC"}
@@ -11,9 +11,11 @@ export interface Worker {
11
11
  id: string;
12
12
  name: string;
13
13
  targets: Set<string>;
14
- context: BrowserContext;
14
+ context: BrowserContext | null;
15
15
  createdAt: number;
16
16
  lastActivityAt: number;
17
+ port?: number;
18
+ poolOrigin?: string;
17
19
  }
18
20
  export interface WorkerInfo {
19
21
  id: string;
@@ -25,6 +27,8 @@ export interface WorkerInfo {
25
27
  export interface WorkerCreateOptions {
26
28
  id?: string;
27
29
  name?: string;
30
+ shareCookies?: boolean;
31
+ targetUrl?: string;
28
32
  }
29
33
  export interface Session {
30
34
  id: string;
@@ -36,7 +40,7 @@ export interface Session {
36
40
  lastActivityAt: number;
37
41
  name: string;
38
42
  targets: Set<string>;
39
- context?: BrowserContext;
43
+ context?: BrowserContext | null;
40
44
  }
41
45
  export interface SessionInfo {
42
46
  id: string;
@@ -52,7 +56,7 @@ export interface SessionCreateOptions {
52
56
  name?: string;
53
57
  }
54
58
  export interface SessionEvent {
55
- type: 'session:created' | 'session:deleted' | 'session:target-added' | 'session:target-removed' | 'worker:created' | 'worker:deleted';
59
+ type: 'session:created' | 'session:deleted' | 'session:target-added' | 'session:target-removed' | 'session:target-closed' | 'worker:created' | 'worker:deleted';
56
60
  sessionId: string;
57
61
  targetId?: string;
58
62
  workerId?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/types/session.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD;;;;GAIG;AACH,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACrB,OAAO,EAAE,cAAc,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,uEAAuE;IACvE,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,iDAAiD;IACjD,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IAEb,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACrB,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,iBAAiB,GAAG,iBAAiB,GAAG,sBAAsB,GAAG,wBAAwB,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;IACtI,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/types/session.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD;;;;GAIG;AACH,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACrB,OAAO,EAAE,cAAc,GAAG,IAAI,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,uEAAuE;IACvE,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,iDAAiD;IACjD,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IAEb,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACrB,OAAO,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;CACjC;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,iBAAiB,GAAG,iBAAiB,GAAG,sBAAsB,GAAG,wBAAwB,GAAG,uBAAuB,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;IAChK,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB"}
package/package.json CHANGED
@@ -1,75 +1,78 @@
1
- {
2
- "name": "claude-chrome-parallel",
3
- "version": "3.0.3",
4
- "description": "MCP server for parallel Claude Code browser sessions - no more 'Detached' errors",
5
- "main": "dist/index.js",
6
- "bin": {
7
- "claude-chrome-parallel": "./dist/cli/index.js",
8
- "ccp": "./dist/cli/index.js",
9
- "claude-session": "./dist/cli/claude-session.js"
10
- },
11
- "scripts": {
12
- "build": "tsc -p tsconfig.cli.json && tsc -p tsconfig.json",
13
- "build:cli": "tsc -p tsconfig.cli.json",
14
- "build:src": "tsc -p tsconfig.json",
15
- "dev": "tsc -p tsconfig.cli.json --watch",
16
- "start": "node dist/cli/index.js serve",
17
- "check": "node dist/cli/index.js check",
18
- "test": "jest",
19
- "test:coverage": "jest --coverage",
20
- "lint": "eslint src --ext .ts",
21
- "clean": "rimraf dist",
22
- "prepare": "npm run build"
23
- },
24
- "keywords": [
25
- "claude",
26
- "claude-code",
27
- "mcp",
28
- "browser-automation",
29
- "parallel-sessions",
30
- "puppeteer",
31
- "chrome"
32
- ],
33
- "author": "",
34
- "license": "MIT",
35
- "repository": {
36
- "type": "git",
37
- "url": "git+https://github.com/shaun0927/claude-chrome-parallel.git"
38
- },
39
- "bugs": {
40
- "url": "https://github.com/shaun0927/claude-chrome-parallel/issues"
41
- },
42
- "homepage": "https://github.com/shaun0927/claude-chrome-parallel#readme",
43
- "devDependencies": {
44
- "@types/chrome": "^0.1.36",
45
- "@types/jest": "^29.5.0",
46
- "@types/node": "^20.0.0",
47
- "@types/proper-lockfile": "^4.1.4",
48
- "@types/uuid": "^9.0.8",
49
- "@types/write-file-atomic": "^4.0.3",
50
- "@typescript-eslint/eslint-plugin": "^7.0.0",
51
- "@typescript-eslint/parser": "^7.0.0",
52
- "eslint": "^8.57.0",
53
- "jest": "^29.7.0",
54
- "rimraf": "^5.0.0",
55
- "ts-jest": "^29.1.0",
56
- "ts-node": "^10.9.2",
57
- "typescript": "^5.4.0"
58
- },
59
- "dependencies": {
60
- "commander": "^12.0.0",
61
- "proper-lockfile": "^4.1.2",
62
- "puppeteer-core": "^23.11.1",
63
- "uuid": "^9.0.0",
64
- "write-file-atomic": "^5.0.1"
65
- },
66
- "engines": {
67
- "node": ">=18.0.0"
68
- },
69
- "files": [
70
- "dist",
71
- "assets",
72
- "README.md",
73
- "LICENSE"
74
- ]
75
- }
1
+ {
2
+ "name": "claude-chrome-parallel",
3
+ "version": "3.4.0",
4
+ "description": "Ultrafast parallel browser MCP. Say 'ccp' and Claude automates your Chrome.",
5
+ "main": "dist/index.js",
6
+ "bin": {
7
+ "claude-chrome-parallel": "./dist/cli/index.js",
8
+ "ccp": "./dist/cli/index.js",
9
+ "claude-session": "./dist/cli/claude-session.js"
10
+ },
11
+ "scripts": {
12
+ "build": "tsc -p tsconfig.cli.json && tsc -p tsconfig.json",
13
+ "build:cli": "tsc -p tsconfig.cli.json",
14
+ "build:src": "tsc -p tsconfig.json",
15
+ "dev": "tsc -p tsconfig.cli.json --watch",
16
+ "start": "node dist/cli/index.js serve",
17
+ "check": "node dist/cli/index.js check",
18
+ "test": "jest",
19
+ "test:coverage": "jest --coverage",
20
+ "lint": "eslint src --ext .ts",
21
+ "clean": "rimraf dist",
22
+ "prepare": "npm run build"
23
+ },
24
+ "keywords": [
25
+ "claude",
26
+ "claude-code",
27
+ "mcp",
28
+ "mcp-server",
29
+ "ccp",
30
+ "browser-automation",
31
+ "parallel-sessions",
32
+ "cdp",
33
+ "chrome",
34
+ "chrome-devtools-protocol"
35
+ ],
36
+ "author": "shaun0927",
37
+ "license": "MIT",
38
+ "repository": {
39
+ "type": "git",
40
+ "url": "git+https://github.com/shaun0927/claude-chrome-parallel.git"
41
+ },
42
+ "bugs": {
43
+ "url": "https://github.com/shaun0927/claude-chrome-parallel/issues"
44
+ },
45
+ "homepage": "https://github.com/shaun0927/claude-chrome-parallel#readme",
46
+ "devDependencies": {
47
+ "@types/chrome": "^0.1.36",
48
+ "@types/jest": "^29.5.0",
49
+ "@types/node": "^20.0.0",
50
+ "@types/proper-lockfile": "^4.1.4",
51
+ "@types/uuid": "^9.0.8",
52
+ "@types/write-file-atomic": "^4.0.3",
53
+ "@typescript-eslint/eslint-plugin": "^7.0.0",
54
+ "@typescript-eslint/parser": "^7.0.0",
55
+ "eslint": "^8.57.0",
56
+ "jest": "^29.7.0",
57
+ "rimraf": "^5.0.0",
58
+ "ts-jest": "^29.1.0",
59
+ "ts-node": "^10.9.2",
60
+ "typescript": "^5.4.0"
61
+ },
62
+ "dependencies": {
63
+ "commander": "^12.0.0",
64
+ "proper-lockfile": "^4.1.2",
65
+ "puppeteer-core": "^23.11.1",
66
+ "uuid": "^9.0.0",
67
+ "write-file-atomic": "^5.0.1"
68
+ },
69
+ "engines": {
70
+ "node": ">=18.0.0"
71
+ },
72
+ "files": [
73
+ "dist",
74
+ "assets",
75
+ "README.md",
76
+ "LICENSE"
77
+ ]
78
+ }
@@ -1,18 +0,0 @@
1
- /**
2
- * Master Process - Central manager for Chrome connections and sessions
3
- */
4
- export interface MasterOptions {
5
- port?: number;
6
- }
7
- export declare class Master {
8
- private registry;
9
- private ipcServer;
10
- private requestHandler;
11
- private running;
12
- start(options?: MasterOptions): Promise<void>;
13
- stop(): Promise<void>;
14
- isRunning(): boolean;
15
- getStats(): object;
16
- }
17
- export declare function startMaster(port?: number): Promise<void>;
18
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/master/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,MAAM;IACjB,OAAO,CAAC,QAAQ,CAAgC;IAChD,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,OAAO,CAAS;IAElB,KAAK,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAgCjD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAe3B,SAAS,IAAI,OAAO;IAIpB,QAAQ,IAAI,MAAM;CAOnB;AAGD,wBAAsB,WAAW,CAAC,IAAI,GAAE,MAA4B,GAAG,OAAO,CAAC,IAAI,CAAC,CASnF"}
@@ -1,75 +0,0 @@
1
- "use strict";
2
- /**
3
- * Master Process - Central manager for Chrome connections and sessions
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Master = void 0;
7
- exports.startMaster = startMaster;
8
- const session_registry_1 = require("./session-registry");
9
- const ipc_server_1 = require("./ipc-server");
10
- const request_handler_1 = require("./request-handler");
11
- const ipc_constants_1 = require("../shared/ipc-constants");
12
- class Master {
13
- registry = null;
14
- ipcServer = null;
15
- requestHandler = null;
16
- running = false;
17
- async start(options = {}) {
18
- const port = options.port ?? ipc_constants_1.DEFAULT_CHROME_PORT;
19
- console.error('[Master] Starting...');
20
- console.error(`[Master] Chrome port: ${port}`);
21
- try {
22
- // Create session registry (will connect to Chrome)
23
- this.registry = new session_registry_1.SessionRegistry();
24
- await this.registry.ensureConnected();
25
- // Start IPC server
26
- this.ipcServer = new ipc_server_1.IPCServer();
27
- await this.ipcServer.listen();
28
- // Set up request handler
29
- this.requestHandler = new request_handler_1.RequestHandler(this.registry, this.ipcServer);
30
- this.running = true;
31
- console.error('[Master] Ready for workers');
32
- // Handle shutdown signals
33
- process.on('SIGINT', () => this.stop());
34
- process.on('SIGTERM', () => this.stop());
35
- }
36
- catch (error) {
37
- console.error('[Master] Startup failed:', error);
38
- await this.stop();
39
- throw error;
40
- }
41
- }
42
- async stop() {
43
- console.error('[Master] Shutting down...');
44
- this.running = false;
45
- if (this.ipcServer) {
46
- await this.ipcServer.close();
47
- this.ipcServer = null;
48
- }
49
- this.registry = null;
50
- this.requestHandler = null;
51
- console.error('[Master] Stopped');
52
- }
53
- isRunning() {
54
- return this.running;
55
- }
56
- getStats() {
57
- return {
58
- running: this.running,
59
- workers: this.ipcServer?.getWorkerIds().length ?? 0,
60
- ...this.registry?.getStats(),
61
- };
62
- }
63
- }
64
- exports.Master = Master;
65
- // Entry point function
66
- async function startMaster(port = ipc_constants_1.DEFAULT_CHROME_PORT) {
67
- const master = new Master();
68
- await master.start({ port });
69
- // Keep process alive and log stats periodically
70
- setInterval(() => {
71
- const stats = master.getStats();
72
- console.error(`[Master] Stats: ${JSON.stringify(stats)}`);
73
- }, 60000);
74
- }
75
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/master/index.ts"],"names":[],"mappings":"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"}
@@ -1,21 +0,0 @@
1
- /**
2
- * IPC Server - Named Pipe / Unix Socket server for Master process
3
- */
4
- import { EventEmitter } from 'events';
5
- import { IPCResponse } from '../shared/ipc-protocol';
6
- export declare class IPCServer extends EventEmitter {
7
- private server;
8
- private workers;
9
- private ipcPath;
10
- private workerCounter;
11
- constructor();
12
- listen(): Promise<void>;
13
- private handleConnection;
14
- private handleData;
15
- sendToWorker(workerId: string, response: IPCResponse): void;
16
- broadcast(response: IPCResponse): void;
17
- getWorkerIds(): string[];
18
- isWorkerConnected(workerId: string): boolean;
19
- close(): Promise<void>;
20
- }
21
- //# sourceMappingURL=ipc-server.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ipc-server.d.ts","sourceRoot":"","sources":["../../src/master/ipc-server.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAc,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAUjE,qBAAa,SAAU,SAAQ,YAAY;IACzC,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,OAAO,CAA4C;IAC3D,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,aAAa,CAAK;;IAOpB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAuB7B,OAAO,CAAC,gBAAgB;IAmCxB,OAAO,CAAC,UAAU;IAyBlB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,GAAG,IAAI;IAe3D,SAAS,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI;IAMtC,YAAY,IAAI,MAAM,EAAE;IAIxB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAItC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CA2B7B"}
@@ -1,175 +0,0 @@
1
- "use strict";
2
- /**
3
- * IPC Server - Named Pipe / Unix Socket server for Master process
4
- */
5
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- var desc = Object.getOwnPropertyDescriptor(m, k);
8
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
- desc = { enumerable: true, get: function() { return m[k]; } };
10
- }
11
- Object.defineProperty(o, k2, desc);
12
- }) : (function(o, m, k, k2) {
13
- if (k2 === undefined) k2 = k;
14
- o[k2] = m[k];
15
- }));
16
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
- Object.defineProperty(o, "default", { enumerable: true, value: v });
18
- }) : function(o, v) {
19
- o["default"] = v;
20
- });
21
- var __importStar = (this && this.__importStar) || (function () {
22
- var ownKeys = function(o) {
23
- ownKeys = Object.getOwnPropertyNames || function (o) {
24
- var ar = [];
25
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
- return ar;
27
- };
28
- return ownKeys(o);
29
- };
30
- return function (mod) {
31
- if (mod && mod.__esModule) return mod;
32
- var result = {};
33
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
- __setModuleDefault(result, mod);
35
- return result;
36
- };
37
- })();
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.IPCServer = void 0;
40
- const net = __importStar(require("net"));
41
- const fs = __importStar(require("fs"));
42
- const events_1 = require("events");
43
- const ipc_constants_1 = require("../shared/ipc-constants");
44
- class IPCServer extends events_1.EventEmitter {
45
- server = null;
46
- workers = new Map();
47
- ipcPath;
48
- workerCounter = 0;
49
- constructor() {
50
- super();
51
- this.ipcPath = (0, ipc_constants_1.getIPCPath)();
52
- }
53
- async listen() {
54
- // Clean up existing socket file on Unix
55
- if (process.platform !== 'win32' && fs.existsSync(ipc_constants_1.UNIX_SOCKET_PATH)) {
56
- fs.unlinkSync(ipc_constants_1.UNIX_SOCKET_PATH);
57
- }
58
- return new Promise((resolve, reject) => {
59
- this.server = net.createServer((socket) => {
60
- this.handleConnection(socket);
61
- });
62
- this.server.on('error', (error) => {
63
- console.error('[IPCServer] Server error:', error);
64
- reject(error);
65
- });
66
- this.server.listen(this.ipcPath, () => {
67
- console.error(`[IPCServer] Listening on ${this.ipcPath}`);
68
- resolve();
69
- });
70
- });
71
- }
72
- handleConnection(socket) {
73
- const workerId = `worker-${++this.workerCounter}`;
74
- const connection = {
75
- id: workerId,
76
- socket,
77
- buffer: '',
78
- lastHeartbeat: Date.now(),
79
- };
80
- this.workers.set(workerId, connection);
81
- console.error(`[IPCServer] Worker connected: ${workerId}`);
82
- // Send worker ID to the worker
83
- this.sendToWorker(workerId, {
84
- id: 'init',
85
- result: { workerId },
86
- });
87
- socket.on('data', (data) => {
88
- this.handleData(workerId, data);
89
- });
90
- socket.on('close', () => {
91
- console.error(`[IPCServer] Worker disconnected: ${workerId}`);
92
- this.workers.delete(workerId);
93
- this.emit('disconnect', workerId);
94
- });
95
- socket.on('error', (error) => {
96
- console.error(`[IPCServer] Socket error for worker ${workerId}:`, error);
97
- });
98
- this.emit('connection', workerId);
99
- }
100
- handleData(workerId, data) {
101
- const connection = this.workers.get(workerId);
102
- if (!connection)
103
- return;
104
- connection.buffer += data.toString();
105
- // Process complete messages (newline-delimited JSON)
106
- let newlineIndex;
107
- while ((newlineIndex = connection.buffer.indexOf('\n')) !== -1) {
108
- const messageStr = connection.buffer.slice(0, newlineIndex);
109
- connection.buffer = connection.buffer.slice(newlineIndex + 1);
110
- if (messageStr.trim()) {
111
- try {
112
- const request = JSON.parse(messageStr);
113
- request.workerId = workerId;
114
- connection.lastHeartbeat = Date.now();
115
- this.emit('request', request);
116
- }
117
- catch (error) {
118
- console.error('[IPCServer] Failed to parse message:', error);
119
- }
120
- }
121
- }
122
- }
123
- sendToWorker(workerId, response) {
124
- const connection = this.workers.get(workerId);
125
- if (!connection) {
126
- console.error(`[IPCServer] Worker not found: ${workerId}`);
127
- return;
128
- }
129
- try {
130
- const message = JSON.stringify(response) + '\n';
131
- connection.socket.write(message);
132
- }
133
- catch (error) {
134
- console.error(`[IPCServer] Failed to send to worker ${workerId}:`, error);
135
- }
136
- }
137
- broadcast(response) {
138
- for (const workerId of this.workers.keys()) {
139
- this.sendToWorker(workerId, response);
140
- }
141
- }
142
- getWorkerIds() {
143
- return Array.from(this.workers.keys());
144
- }
145
- isWorkerConnected(workerId) {
146
- return this.workers.has(workerId);
147
- }
148
- async close() {
149
- // Close all worker connections
150
- for (const connection of this.workers.values()) {
151
- connection.socket.destroy();
152
- }
153
- this.workers.clear();
154
- // Close server
155
- if (this.server) {
156
- return new Promise((resolve) => {
157
- this.server.close(() => {
158
- this.server = null;
159
- // Clean up socket file on Unix
160
- if (process.platform !== 'win32' && fs.existsSync(ipc_constants_1.UNIX_SOCKET_PATH)) {
161
- try {
162
- fs.unlinkSync(ipc_constants_1.UNIX_SOCKET_PATH);
163
- }
164
- catch {
165
- // Ignore
166
- }
167
- }
168
- resolve();
169
- });
170
- });
171
- }
172
- }
173
- }
174
- exports.IPCServer = IPCServer;
175
- //# sourceMappingURL=ipc-server.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ipc-server.js","sourceRoot":"","sources":["../../src/master/ipc-server.ts"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- /**
2
- * Request Handler - Routes IPC requests to session registry methods
3
- */
4
- import { SessionRegistry } from './session-registry';
5
- import { IPCServer } from './ipc-server';
6
- export declare class RequestHandler {
7
- private registry;
8
- private server;
9
- constructor(registry: SessionRegistry, server: IPCServer);
10
- private handleRequest;
11
- private dispatch;
12
- private sendResponse;
13
- private sendError;
14
- private getErrorCode;
15
- private handleWorkerDisconnect;
16
- }
17
- //# sourceMappingURL=request-handler.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"request-handler.d.ts","sourceRoot":"","sources":["../../src/master/request-handler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,qBAAa,cAAc;IAEvB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,MAAM;gBADN,QAAQ,EAAE,eAAe,EACzB,MAAM,EAAE,SAAS;YAMb,aAAa;YAYb,QAAQ;IAoJtB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,SAAS;IAYjB,OAAO,CAAC,YAAY;YAsBN,sBAAsB;CAIrC"}