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
@@ -1,20 +0,0 @@
1
- "use strict";
2
- /**
3
- * IPC Protocol - Message types for Master-Worker communication
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.IPCErrorCodes = void 0;
7
- // Error codes
8
- exports.IPCErrorCodes = {
9
- PARSE_ERROR: -32700,
10
- INVALID_REQUEST: -32600,
11
- METHOD_NOT_FOUND: -32601,
12
- INVALID_PARAMS: -32602,
13
- INTERNAL_ERROR: -32603,
14
- SESSION_NOT_FOUND: -40001,
15
- TARGET_NOT_FOUND: -40002,
16
- OWNERSHIP_VIOLATION: -40003,
17
- CHROME_NOT_CONNECTED: -40004,
18
- TIMEOUT: -40005,
19
- };
20
- //# sourceMappingURL=ipc-protocol.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ipc-protocol.js","sourceRoot":"","sources":["../../src/shared/ipc-protocol.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAuDH,cAAc;AACD,QAAA,aAAa,GAAG;IAC3B,WAAW,EAAE,CAAC,KAAK;IACnB,eAAe,EAAE,CAAC,KAAK;IACvB,gBAAgB,EAAE,CAAC,KAAK;IACxB,cAAc,EAAE,CAAC,KAAK;IACtB,cAAc,EAAE,CAAC,KAAK;IACtB,iBAAiB,EAAE,CAAC,KAAK;IACzB,gBAAgB,EAAE,CAAC,KAAK;IACxB,mBAAmB,EAAE,CAAC,KAAK;IAC3B,oBAAoB,EAAE,CAAC,KAAK;IAC5B,OAAO,EAAE,CAAC,KAAK;CACP,CAAC"}
@@ -1,24 +0,0 @@
1
- /**
2
- * Auto Master - Automatically starts Master process if not running
3
- */
4
- /**
5
- * Check if Master is running by attempting to connect
6
- */
7
- export declare function isMasterRunning(): Promise<boolean>;
8
- /**
9
- * Start Master process in background
10
- */
11
- export declare function startMasterProcess(): Promise<void>;
12
- /**
13
- * Wait for Master to become available
14
- */
15
- export declare function waitForMaster(timeout?: number): Promise<void>;
16
- /**
17
- * Ensure Master is running, start if not
18
- */
19
- export declare function ensureMaster(): Promise<void>;
20
- /**
21
- * Stop the Master process if we started it
22
- */
23
- export declare function stopMasterProcess(): void;
24
- //# sourceMappingURL=auto-master.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auto-master.d.ts","sourceRoot":"","sources":["../../src/worker/auto-master.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC,CAqBxD;AAED;;GAEG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAmCxD;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,OAAO,GAAE,MAA6B,GAAG,OAAO,CAAC,IAAI,CAAC,CAYzF;AAED;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAOlD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAKxC"}
@@ -1,135 +0,0 @@
1
- "use strict";
2
- /**
3
- * Auto Master - Automatically starts Master process if not running
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.isMasterRunning = isMasterRunning;
40
- exports.startMasterProcess = startMasterProcess;
41
- exports.waitForMaster = waitForMaster;
42
- exports.ensureMaster = ensureMaster;
43
- exports.stopMasterProcess = stopMasterProcess;
44
- const net = __importStar(require("net"));
45
- const child_process_1 = require("child_process");
46
- const path = __importStar(require("path"));
47
- const ipc_constants_1 = require("../shared/ipc-constants");
48
- let masterProcess = null;
49
- /**
50
- * Check if Master is running by attempting to connect
51
- */
52
- async function isMasterRunning() {
53
- return new Promise((resolve) => {
54
- const socket = net.createConnection((0, ipc_constants_1.getIPCPath)());
55
- const timeout = setTimeout(() => {
56
- socket.destroy();
57
- resolve(false);
58
- }, 1000);
59
- socket.on('connect', () => {
60
- clearTimeout(timeout);
61
- socket.destroy();
62
- resolve(true);
63
- });
64
- socket.on('error', () => {
65
- clearTimeout(timeout);
66
- socket.destroy();
67
- resolve(false);
68
- });
69
- });
70
- }
71
- /**
72
- * Start Master process in background
73
- */
74
- async function startMasterProcess() {
75
- console.error('[AutoMaster] Starting Master process...');
76
- // Path to the compiled master module - use the main entry with --master flag
77
- const entryPath = path.join(__dirname, '..', 'index.js');
78
- masterProcess = (0, child_process_1.spawn)(process.execPath, [entryPath, 'serve', '--master'], {
79
- detached: true,
80
- stdio: ['ignore', 'pipe', 'pipe'],
81
- env: process.env,
82
- });
83
- // Don't keep parent process alive
84
- masterProcess.unref();
85
- // Log master output for debugging
86
- masterProcess.stdout?.on('data', (data) => {
87
- console.error(`[Master stdout] ${data.toString().trim()}`);
88
- });
89
- masterProcess.stderr?.on('data', (data) => {
90
- console.error(`[Master stderr] ${data.toString().trim()}`);
91
- });
92
- masterProcess.on('error', (error) => {
93
- console.error('[AutoMaster] Failed to start Master:', error);
94
- });
95
- masterProcess.on('exit', (code) => {
96
- console.error(`[AutoMaster] Master exited with code ${code}`);
97
- masterProcess = null;
98
- });
99
- // Wait for Master to be ready
100
- await waitForMaster();
101
- }
102
- /**
103
- * Wait for Master to become available
104
- */
105
- async function waitForMaster(timeout = ipc_constants_1.MASTER_START_TIMEOUT) {
106
- const startTime = Date.now();
107
- while (Date.now() - startTime < timeout) {
108
- if (await isMasterRunning()) {
109
- console.error('[AutoMaster] Master is ready');
110
- return;
111
- }
112
- await new Promise(resolve => setTimeout(resolve, 200));
113
- }
114
- throw new Error(`Master did not start within ${timeout}ms`);
115
- }
116
- /**
117
- * Ensure Master is running, start if not
118
- */
119
- async function ensureMaster() {
120
- if (await isMasterRunning()) {
121
- console.error('[AutoMaster] Master already running');
122
- return;
123
- }
124
- await startMasterProcess();
125
- }
126
- /**
127
- * Stop the Master process if we started it
128
- */
129
- function stopMasterProcess() {
130
- if (masterProcess) {
131
- masterProcess.kill();
132
- masterProcess = null;
133
- }
134
- }
135
- //# sourceMappingURL=auto-master.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auto-master.js","sourceRoot":"","sources":["../../src/worker/auto-master.ts"],"names":[],"mappings":"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"}
@@ -1,25 +0,0 @@
1
- /**
2
- * Worker Process - MCP server that connects to Master for Chrome operations
3
- */
4
- import { IPCClient } from './ipc-client';
5
- import { RemoteSessionManager } from './remote-session-manager';
6
- export interface WorkerOptions {
7
- autoStartMaster?: boolean;
8
- }
9
- export declare class Worker {
10
- private ipcClient;
11
- private sessionManager;
12
- private running;
13
- start(options?: WorkerOptions): Promise<{
14
- sessionManager: RemoteSessionManager;
15
- }>;
16
- stop(): Promise<void>;
17
- isRunning(): boolean;
18
- getSessionManager(): RemoteSessionManager | null;
19
- getIPCClient(): IPCClient | null;
20
- }
21
- export declare function getWorker(): Worker;
22
- export declare function getRemoteSessionManager(): RemoteSessionManager | null;
23
- export declare function setRemoteSessionManager(manager: RemoteSessionManager): void;
24
- export declare function startWorker(): Promise<RemoteSessionManager>;
25
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/worker/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAGhE,MAAM,WAAW,aAAa;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,qBAAa,MAAM;IACjB,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,cAAc,CAAqC;IAC3D,OAAO,CAAC,OAAO,CAAS;IAElB,KAAK,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC;QAAE,cAAc,EAAE,oBAAoB,CAAA;KAAE,CAAC;IA0CrF,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAa3B,SAAS,IAAI,OAAO;IAIpB,iBAAiB,IAAI,oBAAoB,GAAG,IAAI;IAIhD,YAAY,IAAI,SAAS,GAAG,IAAI;CAGjC;AAMD,wBAAgB,SAAS,IAAI,MAAM,CAKlC;AAED,wBAAgB,uBAAuB,IAAI,oBAAoB,GAAG,IAAI,CAErE;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAE3E;AAED,wBAAsB,WAAW,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAKjE"}
@@ -1,93 +0,0 @@
1
- "use strict";
2
- /**
3
- * Worker Process - MCP server that connects to Master for Chrome operations
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Worker = void 0;
7
- exports.getWorker = getWorker;
8
- exports.getRemoteSessionManager = getRemoteSessionManager;
9
- exports.setRemoteSessionManager = setRemoteSessionManager;
10
- exports.startWorker = startWorker;
11
- const ipc_client_1 = require("./ipc-client");
12
- const remote_session_manager_1 = require("./remote-session-manager");
13
- const auto_master_1 = require("./auto-master");
14
- class Worker {
15
- ipcClient = null;
16
- sessionManager = null;
17
- running = false;
18
- async start(options = {}) {
19
- console.error('[Worker] Starting...');
20
- try {
21
- // Ensure Master is running
22
- if (options.autoStartMaster !== false) {
23
- await (0, auto_master_1.ensureMaster)();
24
- }
25
- // Connect to Master
26
- this.ipcClient = new ipc_client_1.IPCClient();
27
- await this.ipcClient.connect();
28
- // Set up reconnection handling
29
- this.ipcClient.on('disconnect', () => {
30
- console.error('[Worker] Disconnected from Master');
31
- });
32
- this.ipcClient.on('reconnect', () => {
33
- console.error('[Worker] Reconnected to Master');
34
- });
35
- this.ipcClient.on('reconnect_failed', () => {
36
- console.error('[Worker] Failed to reconnect to Master');
37
- this.stop();
38
- });
39
- // Create remote session manager
40
- this.sessionManager = new remote_session_manager_1.RemoteSessionManager(this.ipcClient);
41
- this.running = true;
42
- console.error('[Worker] Connected to Master');
43
- return { sessionManager: this.sessionManager };
44
- }
45
- catch (error) {
46
- console.error('[Worker] Startup failed:', error);
47
- await this.stop();
48
- throw error;
49
- }
50
- }
51
- async stop() {
52
- console.error('[Worker] Shutting down...');
53
- this.running = false;
54
- if (this.ipcClient) {
55
- await this.ipcClient.disconnect();
56
- this.ipcClient = null;
57
- }
58
- this.sessionManager = null;
59
- console.error('[Worker] Stopped');
60
- }
61
- isRunning() {
62
- return this.running;
63
- }
64
- getSessionManager() {
65
- return this.sessionManager;
66
- }
67
- getIPCClient() {
68
- return this.ipcClient;
69
- }
70
- }
71
- exports.Worker = Worker;
72
- // Singleton instance for use by tools
73
- let workerInstance = null;
74
- let remoteSessionManager = null;
75
- function getWorker() {
76
- if (!workerInstance) {
77
- workerInstance = new Worker();
78
- }
79
- return workerInstance;
80
- }
81
- function getRemoteSessionManager() {
82
- return remoteSessionManager;
83
- }
84
- function setRemoteSessionManager(manager) {
85
- remoteSessionManager = manager;
86
- }
87
- async function startWorker() {
88
- const worker = getWorker();
89
- const { sessionManager } = await worker.start();
90
- setRemoteSessionManager(sessionManager);
91
- return sessionManager;
92
- }
93
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/worker/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAuFH,8BAKC;AAED,0DAEC;AAED,0DAEC;AAED,kCAKC;AAzGD,6CAAyC;AACzC,qEAAgE;AAChE,+CAA6C;AAM7C,MAAa,MAAM;IACT,SAAS,GAAqB,IAAI,CAAC;IACnC,cAAc,GAAgC,IAAI,CAAC;IACnD,OAAO,GAAG,KAAK,CAAC;IAExB,KAAK,CAAC,KAAK,CAAC,UAAyB,EAAE;QACrC,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAEtC,IAAI,CAAC;YACH,2BAA2B;YAC3B,IAAI,OAAO,CAAC,eAAe,KAAK,KAAK,EAAE,CAAC;gBACtC,MAAM,IAAA,0BAAY,GAAE,CAAC;YACvB,CAAC;YAED,oBAAoB;YACpB,IAAI,CAAC,SAAS,GAAG,IAAI,sBAAS,EAAE,CAAC;YACjC,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YAE/B,+BAA+B;YAC/B,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE;gBACnC,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;YACrD,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE;gBAClC,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAClD,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,kBAAkB,EAAE,GAAG,EAAE;gBACzC,OAAO,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;gBACxD,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,CAAC,CAAC,CAAC;YAEH,gCAAgC;YAChC,IAAI,CAAC,cAAc,GAAG,IAAI,6CAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAE/D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAE9C,OAAO,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC;QAEjD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;YACjD,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI;QACR,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC3C,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QAErB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;YAClC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC;QAED,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACpC,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;CACF;AAvED,wBAuEC;AAED,sCAAsC;AACtC,IAAI,cAAc,GAAkB,IAAI,CAAC;AACzC,IAAI,oBAAoB,GAAgC,IAAI,CAAC;AAE7D,SAAgB,SAAS;IACvB,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,cAAc,GAAG,IAAI,MAAM,EAAE,CAAC;IAChC,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,SAAgB,uBAAuB;IACrC,OAAO,oBAAoB,CAAC;AAC9B,CAAC;AAED,SAAgB,uBAAuB,CAAC,OAA6B;IACnE,oBAAoB,GAAG,OAAO,CAAC;AACjC,CAAC;AAEM,KAAK,UAAU,WAAW;IAC/B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IAChD,uBAAuB,CAAC,cAAc,CAAC,CAAC;IACxC,OAAO,cAAc,CAAC;AACxB,CAAC"}
@@ -1,26 +0,0 @@
1
- /**
2
- * IPC Client - Connects Worker to Master via Named Pipe / Unix Socket
3
- */
4
- import { EventEmitter } from 'events';
5
- import { IPCMethod } from '../shared/ipc-protocol';
6
- export declare class IPCClient extends EventEmitter {
7
- private socket;
8
- private workerId;
9
- private buffer;
10
- private pendingRequests;
11
- private connected;
12
- private reconnecting;
13
- private reconnectAttempts;
14
- private requestCounter;
15
- private ipcPath;
16
- constructor();
17
- connect(): Promise<void>;
18
- private handleData;
19
- private handleResponse;
20
- call<T>(method: IPCMethod, params: Record<string, unknown>): Promise<T>;
21
- private attemptReconnect;
22
- disconnect(): Promise<void>;
23
- isConnected(): boolean;
24
- getWorkerId(): string | null;
25
- }
26
- //# sourceMappingURL=ipc-client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ipc-client.d.ts","sourceRoot":"","sources":["../../src/worker/ipc-client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAA2B,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAe5E,qBAAa,SAAU,SAAQ,YAAY;IACzC,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,eAAe,CAA0C;IACjE,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,OAAO,CAAS;;IAOlB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAmE9B,OAAO,CAAC,UAAU;IAmBlB,OAAO,CAAC,cAAc;IAiBhB,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;YA+B/D,gBAAgB;IAuBxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAiBjC,WAAW,IAAI,OAAO;IAItB,WAAW,IAAI,MAAM,GAAG,IAAI;CAG7B"}
@@ -1,211 +0,0 @@
1
- "use strict";
2
- /**
3
- * IPC Client - Connects Worker to Master via Named Pipe / Unix Socket
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.IPCClient = void 0;
40
- const net = __importStar(require("net"));
41
- const events_1 = require("events");
42
- const ipc_constants_1 = require("../shared/ipc-constants");
43
- class IPCClient extends events_1.EventEmitter {
44
- socket = null;
45
- workerId = null;
46
- buffer = '';
47
- pendingRequests = new Map();
48
- connected = false;
49
- reconnecting = false;
50
- reconnectAttempts = 0;
51
- requestCounter = 0;
52
- ipcPath;
53
- constructor() {
54
- super();
55
- this.ipcPath = (0, ipc_constants_1.getIPCPath)();
56
- }
57
- async connect() {
58
- return new Promise((resolve, reject) => {
59
- const timeout = setTimeout(() => {
60
- if (this.socket) {
61
- this.socket.destroy();
62
- }
63
- reject(new Error('Connection timeout'));
64
- }, ipc_constants_1.IPC_CONNECT_TIMEOUT);
65
- this.socket = net.createConnection(this.ipcPath, () => {
66
- console.error(`[IPCClient] Connected to Master at ${this.ipcPath}`);
67
- });
68
- // Wait for worker ID from Master
69
- const initHandler = (data) => {
70
- this.buffer += data.toString();
71
- const newlineIndex = this.buffer.indexOf('\n');
72
- if (newlineIndex !== -1) {
73
- const messageStr = this.buffer.slice(0, newlineIndex);
74
- this.buffer = this.buffer.slice(newlineIndex + 1);
75
- try {
76
- const message = JSON.parse(messageStr);
77
- if (message.id === 'init' && message.result) {
78
- const result = message.result;
79
- this.workerId = result.workerId;
80
- this.connected = true;
81
- this.reconnectAttempts = 0;
82
- clearTimeout(timeout);
83
- console.error(`[IPCClient] Registered as worker: ${this.workerId}`);
84
- // Switch to normal data handler
85
- this.socket.off('data', initHandler);
86
- this.socket.on('data', (d) => this.handleData(d));
87
- resolve();
88
- }
89
- }
90
- catch (error) {
91
- // Not the init message yet
92
- }
93
- }
94
- };
95
- this.socket.on('data', initHandler);
96
- this.socket.on('close', () => {
97
- console.error('[IPCClient] Connection closed');
98
- this.connected = false;
99
- this.emit('disconnect');
100
- if (!this.reconnecting) {
101
- this.attemptReconnect();
102
- }
103
- });
104
- this.socket.on('error', (error) => {
105
- console.error('[IPCClient] Socket error:', error);
106
- if (!this.connected) {
107
- clearTimeout(timeout);
108
- reject(error);
109
- }
110
- });
111
- });
112
- }
113
- handleData(data) {
114
- this.buffer += data.toString();
115
- let newlineIndex;
116
- while ((newlineIndex = this.buffer.indexOf('\n')) !== -1) {
117
- const messageStr = this.buffer.slice(0, newlineIndex);
118
- this.buffer = this.buffer.slice(newlineIndex + 1);
119
- if (messageStr.trim()) {
120
- try {
121
- const response = JSON.parse(messageStr);
122
- this.handleResponse(response);
123
- }
124
- catch (error) {
125
- console.error('[IPCClient] Failed to parse message:', error);
126
- }
127
- }
128
- }
129
- }
130
- handleResponse(response) {
131
- const pending = this.pendingRequests.get(response.id);
132
- if (!pending) {
133
- console.error(`[IPCClient] No pending request for ID: ${response.id}`);
134
- return;
135
- }
136
- clearTimeout(pending.timeout);
137
- this.pendingRequests.delete(response.id);
138
- if (response.error) {
139
- pending.reject(new Error(response.error.message));
140
- }
141
- else {
142
- pending.resolve(response.result);
143
- }
144
- }
145
- async call(method, params) {
146
- if (!this.connected || !this.socket || !this.workerId) {
147
- throw new Error('Not connected to Master');
148
- }
149
- const id = `req-${++this.requestCounter}`;
150
- return new Promise((resolve, reject) => {
151
- const timeout = setTimeout(() => {
152
- this.pendingRequests.delete(id);
153
- reject(new Error(`Request timeout for ${method}`));
154
- }, ipc_constants_1.IPC_REQUEST_TIMEOUT);
155
- this.pendingRequests.set(id, {
156
- resolve: resolve,
157
- reject,
158
- timeout,
159
- });
160
- const request = {
161
- id,
162
- method,
163
- params,
164
- workerId: this.workerId,
165
- };
166
- const message = JSON.stringify(request) + '\n';
167
- this.socket.write(message);
168
- });
169
- }
170
- async attemptReconnect() {
171
- this.reconnecting = true;
172
- while (this.reconnectAttempts < ipc_constants_1.WORKER_RECONNECT_ATTEMPTS) {
173
- this.reconnectAttempts++;
174
- console.error(`[IPCClient] Reconnection attempt ${this.reconnectAttempts}/${ipc_constants_1.WORKER_RECONNECT_ATTEMPTS}`);
175
- try {
176
- await new Promise(resolve => setTimeout(resolve, ipc_constants_1.WORKER_RECONNECT_DELAY));
177
- await this.connect();
178
- this.reconnecting = false;
179
- this.emit('reconnect');
180
- return;
181
- }
182
- catch (error) {
183
- console.error('[IPCClient] Reconnection failed:', error);
184
- }
185
- }
186
- this.reconnecting = false;
187
- console.error('[IPCClient] All reconnection attempts failed');
188
- this.emit('reconnect_failed');
189
- }
190
- async disconnect() {
191
- this.connected = false;
192
- for (const [id, pending] of this.pendingRequests) {
193
- clearTimeout(pending.timeout);
194
- pending.reject(new Error('Disconnected'));
195
- }
196
- this.pendingRequests.clear();
197
- if (this.socket) {
198
- this.socket.destroy();
199
- this.socket = null;
200
- }
201
- this.workerId = null;
202
- }
203
- isConnected() {
204
- return this.connected;
205
- }
206
- getWorkerId() {
207
- return this.workerId;
208
- }
209
- }
210
- exports.IPCClient = IPCClient;
211
- //# sourceMappingURL=ipc-client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ipc-client.js","sourceRoot":"","sources":["../../src/worker/ipc-client.ts"],"names":[],"mappings":"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"}