claude-chrome-parallel 1.0.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 (395) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +501 -0
  3. package/assets/demo.svg +278 -0
  4. package/dist/cdp/client.d.ts +218 -0
  5. package/dist/cdp/client.d.ts.map +1 -0
  6. package/dist/cdp/client.js +797 -0
  7. package/dist/cdp/client.js.map +1 -0
  8. package/dist/cdp/connection-pool.d.ts +125 -0
  9. package/dist/cdp/connection-pool.d.ts.map +1 -0
  10. package/dist/cdp/connection-pool.js +443 -0
  11. package/dist/cdp/connection-pool.js.map +1 -0
  12. package/dist/cdp/screenshot-scheduler.d.ts +54 -0
  13. package/dist/cdp/screenshot-scheduler.d.ts.map +1 -0
  14. package/dist/cdp/screenshot-scheduler.js +87 -0
  15. package/dist/cdp/screenshot-scheduler.js.map +1 -0
  16. package/dist/chrome/launcher.d.ts +55 -0
  17. package/dist/chrome/launcher.d.ts.map +1 -0
  18. package/dist/chrome/launcher.js +383 -0
  19. package/dist/chrome/launcher.js.map +1 -0
  20. package/dist/chrome/pool.d.ts +54 -0
  21. package/dist/chrome/pool.d.ts.map +1 -0
  22. package/dist/chrome/pool.js +301 -0
  23. package/dist/chrome/pool.js.map +1 -0
  24. package/dist/chrome/profile-detector.d.ts +52 -0
  25. package/dist/chrome/profile-detector.d.ts.map +1 -0
  26. package/dist/chrome/profile-detector.js +246 -0
  27. package/dist/chrome/profile-detector.js.map +1 -0
  28. package/dist/cli/claude-session.d.ts +11 -0
  29. package/dist/cli/claude-session.js +349 -0
  30. package/dist/cli/claude-session.js.map +1 -0
  31. package/dist/cli/index.d.ts +14 -0
  32. package/dist/cli/index.js +858 -0
  33. package/dist/cli/index.js.map +1 -0
  34. package/dist/cli/install.d.ts +16 -0
  35. package/dist/cli/install.js +185 -0
  36. package/dist/cli/install.js.map +1 -0
  37. package/dist/cli/uninstall.d.ts +7 -0
  38. package/dist/cli/uninstall.js +126 -0
  39. package/dist/cli/uninstall.js.map +1 -0
  40. package/dist/cli/update-check.d.ts +9 -0
  41. package/dist/cli/update-check.js +141 -0
  42. package/dist/cli/update-check.js.map +1 -0
  43. package/dist/config/config-recovery.d.ts +69 -0
  44. package/dist/config/config-recovery.d.ts.map +1 -0
  45. package/dist/config/config-recovery.js +302 -0
  46. package/dist/config/config-recovery.js.map +1 -0
  47. package/dist/config/global.d.ts +49 -0
  48. package/dist/config/global.d.ts.map +1 -0
  49. package/dist/config/global.js +24 -0
  50. package/dist/config/global.js.map +1 -0
  51. package/dist/config/index.d.ts +7 -0
  52. package/dist/config/index.d.ts.map +1 -0
  53. package/dist/config/index.js +23 -0
  54. package/dist/config/index.js.map +1 -0
  55. package/dist/config/session-isolator.d.ts +76 -0
  56. package/dist/config/session-isolator.d.ts.map +1 -0
  57. package/dist/config/session-isolator.js +268 -0
  58. package/dist/config/session-isolator.js.map +1 -0
  59. package/dist/dashboard/activity-tracker.d.ts +76 -0
  60. package/dist/dashboard/activity-tracker.d.ts.map +1 -0
  61. package/dist/dashboard/activity-tracker.js +219 -0
  62. package/dist/dashboard/activity-tracker.js.map +1 -0
  63. package/dist/dashboard/ansi.d.ts +117 -0
  64. package/dist/dashboard/ansi.d.ts.map +1 -0
  65. package/dist/dashboard/ansi.js +199 -0
  66. package/dist/dashboard/ansi.js.map +1 -0
  67. package/dist/dashboard/index.d.ts +110 -0
  68. package/dist/dashboard/index.d.ts.map +1 -0
  69. package/dist/dashboard/index.js +412 -0
  70. package/dist/dashboard/index.js.map +1 -0
  71. package/dist/dashboard/keyboard-handler.d.ts +43 -0
  72. package/dist/dashboard/keyboard-handler.d.ts.map +1 -0
  73. package/dist/dashboard/keyboard-handler.js +215 -0
  74. package/dist/dashboard/keyboard-handler.js.map +1 -0
  75. package/dist/dashboard/operation-controller.d.ts +76 -0
  76. package/dist/dashboard/operation-controller.d.ts.map +1 -0
  77. package/dist/dashboard/operation-controller.js +167 -0
  78. package/dist/dashboard/operation-controller.js.map +1 -0
  79. package/dist/dashboard/renderer.d.ts +76 -0
  80. package/dist/dashboard/renderer.d.ts.map +1 -0
  81. package/dist/dashboard/renderer.js +193 -0
  82. package/dist/dashboard/renderer.js.map +1 -0
  83. package/dist/dashboard/types.d.ts +56 -0
  84. package/dist/dashboard/types.d.ts.map +1 -0
  85. package/dist/dashboard/types.js +12 -0
  86. package/dist/dashboard/types.js.map +1 -0
  87. package/dist/dashboard/views/main-view.d.ts +23 -0
  88. package/dist/dashboard/views/main-view.d.ts.map +1 -0
  89. package/dist/dashboard/views/main-view.js +143 -0
  90. package/dist/dashboard/views/main-view.js.map +1 -0
  91. package/dist/dashboard/views/sessions-view.d.ts +22 -0
  92. package/dist/dashboard/views/sessions-view.d.ts.map +1 -0
  93. package/dist/dashboard/views/sessions-view.js +104 -0
  94. package/dist/dashboard/views/sessions-view.js.map +1 -0
  95. package/dist/dashboard/views/tabs-view.d.ts +21 -0
  96. package/dist/dashboard/views/tabs-view.d.ts.map +1 -0
  97. package/dist/dashboard/views/tabs-view.js +92 -0
  98. package/dist/dashboard/views/tabs-view.js.map +1 -0
  99. package/dist/hints/hint-engine.d.ts +77 -0
  100. package/dist/hints/hint-engine.d.ts.map +1 -0
  101. package/dist/hints/hint-engine.js +191 -0
  102. package/dist/hints/hint-engine.js.map +1 -0
  103. package/dist/hints/index.d.ts +8 -0
  104. package/dist/hints/index.d.ts.map +1 -0
  105. package/dist/hints/index.js +11 -0
  106. package/dist/hints/index.js.map +1 -0
  107. package/dist/hints/pattern-learner.d.ts +76 -0
  108. package/dist/hints/pattern-learner.d.ts.map +1 -0
  109. package/dist/hints/pattern-learner.js +254 -0
  110. package/dist/hints/pattern-learner.js.map +1 -0
  111. package/dist/hints/rules/composite-suggestions.d.ts +6 -0
  112. package/dist/hints/rules/composite-suggestions.d.ts.map +1 -0
  113. package/dist/hints/rules/composite-suggestions.js +66 -0
  114. package/dist/hints/rules/composite-suggestions.js.map +1 -0
  115. package/dist/hints/rules/error-recovery.d.ts +7 -0
  116. package/dist/hints/rules/error-recovery.d.ts.map +1 -0
  117. package/dist/hints/rules/error-recovery.js +55 -0
  118. package/dist/hints/rules/error-recovery.js.map +1 -0
  119. package/dist/hints/rules/learned-rules.d.ts +13 -0
  120. package/dist/hints/rules/learned-rules.d.ts.map +1 -0
  121. package/dist/hints/rules/learned-rules.js +27 -0
  122. package/dist/hints/rules/learned-rules.js.map +1 -0
  123. package/dist/hints/rules/repetition-detection.d.ts +7 -0
  124. package/dist/hints/rules/repetition-detection.d.ts.map +1 -0
  125. package/dist/hints/rules/repetition-detection.js +82 -0
  126. package/dist/hints/rules/repetition-detection.js.map +1 -0
  127. package/dist/hints/rules/sequence-detection.d.ts +6 -0
  128. package/dist/hints/rules/sequence-detection.d.ts.map +1 -0
  129. package/dist/hints/rules/sequence-detection.js +89 -0
  130. package/dist/hints/rules/sequence-detection.js.map +1 -0
  131. package/dist/hints/rules/success-hints.d.ts +6 -0
  132. package/dist/hints/rules/success-hints.d.ts.map +1 -0
  133. package/dist/hints/rules/success-hints.js +62 -0
  134. package/dist/hints/rules/success-hints.js.map +1 -0
  135. package/dist/index.d.ts +10 -0
  136. package/dist/index.d.ts.map +1 -0
  137. package/dist/index.js +272 -0
  138. package/dist/index.js.map +1 -0
  139. package/dist/lightpanda/launcher.d.ts +58 -0
  140. package/dist/lightpanda/launcher.d.ts.map +1 -0
  141. package/dist/lightpanda/launcher.js +199 -0
  142. package/dist/lightpanda/launcher.js.map +1 -0
  143. package/dist/mcp-server.d.ts +129 -0
  144. package/dist/mcp-server.d.ts.map +1 -0
  145. package/dist/mcp-server.js +641 -0
  146. package/dist/mcp-server.js.map +1 -0
  147. package/dist/memory/domain-memory.d.ts +68 -0
  148. package/dist/memory/domain-memory.d.ts.map +1 -0
  149. package/dist/memory/domain-memory.js +227 -0
  150. package/dist/memory/domain-memory.js.map +1 -0
  151. package/dist/orchestration/plan-executor.d.ts +19 -0
  152. package/dist/orchestration/plan-executor.d.ts.map +1 -0
  153. package/dist/orchestration/plan-executor.js +284 -0
  154. package/dist/orchestration/plan-executor.js.map +1 -0
  155. package/dist/orchestration/plan-registry.d.ts +55 -0
  156. package/dist/orchestration/plan-registry.d.ts.map +1 -0
  157. package/dist/orchestration/plan-registry.js +255 -0
  158. package/dist/orchestration/plan-registry.js.map +1 -0
  159. package/dist/orchestration/state-manager.d.ts +127 -0
  160. package/dist/orchestration/state-manager.d.ts.map +1 -0
  161. package/dist/orchestration/state-manager.js +438 -0
  162. package/dist/orchestration/state-manager.js.map +1 -0
  163. package/dist/orchestration/workflow-engine.d.ts +162 -0
  164. package/dist/orchestration/workflow-engine.d.ts.map +1 -0
  165. package/dist/orchestration/workflow-engine.js +731 -0
  166. package/dist/orchestration/workflow-engine.js.map +1 -0
  167. package/dist/resources/usage-guide.d.ts +13 -0
  168. package/dist/resources/usage-guide.d.ts.map +1 -0
  169. package/dist/resources/usage-guide.js +101 -0
  170. package/dist/resources/usage-guide.js.map +1 -0
  171. package/dist/router/browser-router.d.ts +51 -0
  172. package/dist/router/browser-router.d.ts.map +1 -0
  173. package/dist/router/browser-router.js +178 -0
  174. package/dist/router/browser-router.js.map +1 -0
  175. package/dist/router/cookie-sync.d.ts +48 -0
  176. package/dist/router/cookie-sync.d.ts.map +1 -0
  177. package/dist/router/cookie-sync.js +106 -0
  178. package/dist/router/cookie-sync.js.map +1 -0
  179. package/dist/router/index.d.ts +5 -0
  180. package/dist/router/index.d.ts.map +1 -0
  181. package/dist/router/index.js +10 -0
  182. package/dist/router/index.js.map +1 -0
  183. package/dist/router/tool-routing-registry.d.ts +21 -0
  184. package/dist/router/tool-routing-registry.d.ts.map +1 -0
  185. package/dist/router/tool-routing-registry.js +90 -0
  186. package/dist/router/tool-routing-registry.js.map +1 -0
  187. package/dist/session-manager.d.ts +251 -0
  188. package/dist/session-manager.d.ts.map +1 -0
  189. package/dist/session-manager.js +912 -0
  190. package/dist/session-manager.js.map +1 -0
  191. package/dist/tools/batch-execute.d.ts +11 -0
  192. package/dist/tools/batch-execute.d.ts.map +1 -0
  193. package/dist/tools/batch-execute.js +226 -0
  194. package/dist/tools/batch-execute.js.map +1 -0
  195. package/dist/tools/click-element.d.ts +8 -0
  196. package/dist/tools/click-element.d.ts.map +1 -0
  197. package/dist/tools/click-element.js +455 -0
  198. package/dist/tools/click-element.js.map +1 -0
  199. package/dist/tools/computer.d.ts +6 -0
  200. package/dist/tools/computer.d.ts.map +1 -0
  201. package/dist/tools/computer.js +638 -0
  202. package/dist/tools/computer.js.map +1 -0
  203. package/dist/tools/console-capture.d.ts +6 -0
  204. package/dist/tools/console-capture.d.ts.map +1 -0
  205. package/dist/tools/console-capture.js +320 -0
  206. package/dist/tools/console-capture.js.map +1 -0
  207. package/dist/tools/cookies.d.ts +6 -0
  208. package/dist/tools/cookies.d.ts.map +1 -0
  209. package/dist/tools/cookies.js +263 -0
  210. package/dist/tools/cookies.js.map +1 -0
  211. package/dist/tools/drag-drop.d.ts +6 -0
  212. package/dist/tools/drag-drop.d.ts.map +1 -0
  213. package/dist/tools/drag-drop.js +252 -0
  214. package/dist/tools/drag-drop.js.map +1 -0
  215. package/dist/tools/emulate-device.d.ts +6 -0
  216. package/dist/tools/emulate-device.d.ts.map +1 -0
  217. package/dist/tools/emulate-device.js +221 -0
  218. package/dist/tools/emulate-device.js.map +1 -0
  219. package/dist/tools/file-upload.d.ts +6 -0
  220. package/dist/tools/file-upload.d.ts.map +1 -0
  221. package/dist/tools/file-upload.js +208 -0
  222. package/dist/tools/file-upload.js.map +1 -0
  223. package/dist/tools/fill-form.d.ts +8 -0
  224. package/dist/tools/fill-form.d.ts.map +1 -0
  225. package/dist/tools/fill-form.js +342 -0
  226. package/dist/tools/fill-form.js.map +1 -0
  227. package/dist/tools/find.d.ts +6 -0
  228. package/dist/tools/find.d.ts.map +1 -0
  229. package/dist/tools/find.js +330 -0
  230. package/dist/tools/find.js.map +1 -0
  231. package/dist/tools/form-input.d.ts +6 -0
  232. package/dist/tools/form-input.d.ts.map +1 -0
  233. package/dist/tools/form-input.js +181 -0
  234. package/dist/tools/form-input.js.map +1 -0
  235. package/dist/tools/geolocation.d.ts +6 -0
  236. package/dist/tools/geolocation.d.ts.map +1 -0
  237. package/dist/tools/geolocation.js +172 -0
  238. package/dist/tools/geolocation.js.map +1 -0
  239. package/dist/tools/http-auth.d.ts +6 -0
  240. package/dist/tools/http-auth.d.ts.map +1 -0
  241. package/dist/tools/http-auth.js +136 -0
  242. package/dist/tools/http-auth.js.map +1 -0
  243. package/dist/tools/index.d.ts +6 -0
  244. package/dist/tools/index.d.ts.map +1 -0
  245. package/dist/tools/index.js +104 -0
  246. package/dist/tools/index.js.map +1 -0
  247. package/dist/tools/javascript.d.ts +6 -0
  248. package/dist/tools/javascript.d.ts.map +1 -0
  249. package/dist/tools/javascript.js +138 -0
  250. package/dist/tools/javascript.js.map +1 -0
  251. package/dist/tools/lightweight-scroll.d.ts +11 -0
  252. package/dist/tools/lightweight-scroll.d.ts.map +1 -0
  253. package/dist/tools/lightweight-scroll.js +266 -0
  254. package/dist/tools/lightweight-scroll.js.map +1 -0
  255. package/dist/tools/memory.d.ts +10 -0
  256. package/dist/tools/memory.d.ts.map +1 -0
  257. package/dist/tools/memory.js +141 -0
  258. package/dist/tools/memory.js.map +1 -0
  259. package/dist/tools/navigate.d.ts +6 -0
  260. package/dist/tools/navigate.d.ts.map +1 -0
  261. package/dist/tools/navigate.js +241 -0
  262. package/dist/tools/navigate.js.map +1 -0
  263. package/dist/tools/network.d.ts +6 -0
  264. package/dist/tools/network.d.ts.map +1 -0
  265. package/dist/tools/network.js +215 -0
  266. package/dist/tools/network.js.map +1 -0
  267. package/dist/tools/orchestration.d.ts +6 -0
  268. package/dist/tools/orchestration.d.ts.map +1 -0
  269. package/dist/tools/orchestration.js +746 -0
  270. package/dist/tools/orchestration.js.map +1 -0
  271. package/dist/tools/page-content.d.ts +6 -0
  272. package/dist/tools/page-content.d.ts.map +1 -0
  273. package/dist/tools/page-content.js +120 -0
  274. package/dist/tools/page-content.js.map +1 -0
  275. package/dist/tools/page-pdf.d.ts +6 -0
  276. package/dist/tools/page-pdf.d.ts.map +1 -0
  277. package/dist/tools/page-pdf.js +245 -0
  278. package/dist/tools/page-pdf.js.map +1 -0
  279. package/dist/tools/page-reload.d.ts +6 -0
  280. package/dist/tools/page-reload.d.ts.map +1 -0
  281. package/dist/tools/page-reload.js +89 -0
  282. package/dist/tools/page-reload.js.map +1 -0
  283. package/dist/tools/performance-metrics.d.ts +6 -0
  284. package/dist/tools/performance-metrics.d.ts.map +1 -0
  285. package/dist/tools/performance-metrics.js +158 -0
  286. package/dist/tools/performance-metrics.js.map +1 -0
  287. package/dist/tools/read-page.d.ts +6 -0
  288. package/dist/tools/read-page.d.ts.map +1 -0
  289. package/dist/tools/read-page.js +287 -0
  290. package/dist/tools/read-page.js.map +1 -0
  291. package/dist/tools/request-intercept.d.ts +6 -0
  292. package/dist/tools/request-intercept.d.ts.map +1 -0
  293. package/dist/tools/request-intercept.js +439 -0
  294. package/dist/tools/request-intercept.js.map +1 -0
  295. package/dist/tools/selector-query.d.ts +6 -0
  296. package/dist/tools/selector-query.d.ts.map +1 -0
  297. package/dist/tools/selector-query.js +206 -0
  298. package/dist/tools/selector-query.js.map +1 -0
  299. package/dist/tools/shutdown.d.ts +12 -0
  300. package/dist/tools/shutdown.d.ts.map +1 -0
  301. package/dist/tools/shutdown.js +120 -0
  302. package/dist/tools/shutdown.js.map +1 -0
  303. package/dist/tools/storage.d.ts +6 -0
  304. package/dist/tools/storage.d.ts.map +1 -0
  305. package/dist/tools/storage.js +264 -0
  306. package/dist/tools/storage.js.map +1 -0
  307. package/dist/tools/tabs-close.d.ts +6 -0
  308. package/dist/tools/tabs-close.d.ts.map +1 -0
  309. package/dist/tools/tabs-close.js +124 -0
  310. package/dist/tools/tabs-close.js.map +1 -0
  311. package/dist/tools/tabs-context.d.ts +6 -0
  312. package/dist/tools/tabs-context.d.ts.map +1 -0
  313. package/dist/tools/tabs-context.js +92 -0
  314. package/dist/tools/tabs-context.js.map +1 -0
  315. package/dist/tools/tabs-create.d.ts +6 -0
  316. package/dist/tools/tabs-create.d.ts.map +1 -0
  317. package/dist/tools/tabs-create.js +73 -0
  318. package/dist/tools/tabs-create.js.map +1 -0
  319. package/dist/tools/user-agent.d.ts +6 -0
  320. package/dist/tools/user-agent.d.ts.map +1 -0
  321. package/dist/tools/user-agent.js +128 -0
  322. package/dist/tools/user-agent.js.map +1 -0
  323. package/dist/tools/wait-and-click.d.ts +8 -0
  324. package/dist/tools/wait-and-click.d.ts.map +1 -0
  325. package/dist/tools/wait-and-click.js +290 -0
  326. package/dist/tools/wait-and-click.js.map +1 -0
  327. package/dist/tools/wait-for.d.ts +6 -0
  328. package/dist/tools/wait-for.d.ts.map +1 -0
  329. package/dist/tools/wait-for.js +248 -0
  330. package/dist/tools/wait-for.js.map +1 -0
  331. package/dist/tools/worker-create.d.ts +7 -0
  332. package/dist/tools/worker-create.d.ts.map +1 -0
  333. package/dist/tools/worker-create.js +62 -0
  334. package/dist/tools/worker-create.js.map +1 -0
  335. package/dist/tools/worker-delete.d.ts +6 -0
  336. package/dist/tools/worker-delete.d.ts.map +1 -0
  337. package/dist/tools/worker-delete.js +80 -0
  338. package/dist/tools/worker-delete.js.map +1 -0
  339. package/dist/tools/worker-list.d.ts +6 -0
  340. package/dist/tools/worker-list.d.ts.map +1 -0
  341. package/dist/tools/worker-list.js +67 -0
  342. package/dist/tools/worker-list.js.map +1 -0
  343. package/dist/tools/xpath-query.d.ts +6 -0
  344. package/dist/tools/xpath-query.d.ts.map +1 -0
  345. package/dist/tools/xpath-query.js +230 -0
  346. package/dist/tools/xpath-query.js.map +1 -0
  347. package/dist/types/browser-backend.d.ts +30 -0
  348. package/dist/types/browser-backend.d.ts.map +1 -0
  349. package/dist/types/browser-backend.js +9 -0
  350. package/dist/types/browser-backend.js.map +1 -0
  351. package/dist/types/index.d.ts +3 -0
  352. package/dist/types/index.d.ts.map +1 -0
  353. package/dist/types/index.js +19 -0
  354. package/dist/types/index.js.map +1 -0
  355. package/dist/types/mcp.d.ts +54 -0
  356. package/dist/types/mcp.d.ts.map +1 -0
  357. package/dist/types/mcp.js +14 -0
  358. package/dist/types/mcp.js.map +1 -0
  359. package/dist/types/plan-cache.d.ts +121 -0
  360. package/dist/types/plan-cache.d.ts.map +1 -0
  361. package/dist/types/plan-cache.js +9 -0
  362. package/dist/types/plan-cache.js.map +1 -0
  363. package/dist/types/profile.d.ts +76 -0
  364. package/dist/types/profile.d.ts.map +1 -0
  365. package/dist/types/profile.js +35 -0
  366. package/dist/types/profile.js.map +1 -0
  367. package/dist/types/session.d.ts +65 -0
  368. package/dist/types/session.d.ts.map +1 -0
  369. package/dist/types/session.js +6 -0
  370. package/dist/types/session.js.map +1 -0
  371. package/dist/types/tool-manifest.d.ts +52 -0
  372. package/dist/types/tool-manifest.d.ts.map +1 -0
  373. package/dist/types/tool-manifest.js +37 -0
  374. package/dist/types/tool-manifest.js.map +1 -0
  375. package/dist/utils/atomic-file.d.ts +50 -0
  376. package/dist/utils/atomic-file.d.ts.map +1 -0
  377. package/dist/utils/atomic-file.js +217 -0
  378. package/dist/utils/atomic-file.js.map +1 -0
  379. package/dist/utils/index.d.ts +6 -0
  380. package/dist/utils/index.d.ts.map +1 -0
  381. package/dist/utils/index.js +22 -0
  382. package/dist/utils/index.js.map +1 -0
  383. package/dist/utils/json-validator.d.ts +40 -0
  384. package/dist/utils/json-validator.d.ts.map +1 -0
  385. package/dist/utils/json-validator.js +295 -0
  386. package/dist/utils/json-validator.js.map +1 -0
  387. package/dist/utils/ref-id-manager.d.ts +26 -0
  388. package/dist/utils/ref-id-manager.d.ts.map +1 -0
  389. package/dist/utils/ref-id-manager.js +81 -0
  390. package/dist/utils/ref-id-manager.js.map +1 -0
  391. package/dist/utils/request-queue.d.ts +37 -0
  392. package/dist/utils/request-queue.d.ts.map +1 -0
  393. package/dist/utils/request-queue.js +110 -0
  394. package/dist/utils/request-queue.js.map +1 -0
  395. package/package.json +78 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-engine.js","sourceRoot":"","sources":["../../src/orchestration/workflow-engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Usage Guide Resource - Provides guidance on when to use browser automation
3
+ */
4
+ export interface MCPResourceDefinition {
5
+ uri: string;
6
+ name: string;
7
+ description: string;
8
+ mimeType: string;
9
+ }
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 chrome-parallel 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";
12
+ export declare function getUsageGuideContent(): string;
13
+ //# sourceMappingURL=usage-guide.d.ts.map
@@ -0,0 +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,unFAmF7B,CAAC;AAEF,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C"}
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ /**
3
+ * Usage Guide Resource - Provides guidance on when to use browser automation
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.usageGuideContent = exports.usageGuideResource = void 0;
7
+ exports.getUsageGuideContent = getUsageGuideContent;
8
+ exports.usageGuideResource = {
9
+ uri: 'chrome-parallel://usage-guide',
10
+ name: 'browser-usage-guide',
11
+ description: 'Guidelines on when to use browser automation vs alternatives',
12
+ mimeType: 'text/plain',
13
+ };
14
+ exports.usageGuideContent = `
15
+ # Browser Automation Usage Guide
16
+
17
+ ## When to Use Browser Tools
18
+
19
+ Use chrome-parallel browser tools ONLY when:
20
+
21
+ 1. **User explicitly requests browser/UI interaction**
22
+ - Keywords: "browser", "site", "page", "screenshot", "click", "UI"
23
+ - Example: "Take a screenshot of the login page"
24
+
25
+ 2. **Visual verification is required**
26
+ - Checking how a page looks
27
+ - Verifying UI elements are displayed correctly
28
+ - Taking screenshots for documentation
29
+
30
+ 3. **No programmatic alternative exists**
31
+ - The website has no API
32
+ - The action requires JavaScript execution
33
+ - Authentication flows that can't be bypassed
34
+
35
+ 4. **Real user interaction simulation is needed**
36
+ - Form filling with dynamic validation
37
+ - Multi-step workflows with JS-heavy pages
38
+ - Testing actual user experience
39
+
40
+ ## When to PREFER Alternatives
41
+
42
+ ### Data Issues → Use Database Directly
43
+ - Problem: "User's data is wrong in the system"
44
+ - BAD: Navigate to admin panel → Find user → Edit form → Submit
45
+ - GOOD: Direct SQL/DB query to fix the data
46
+
47
+ ### API Issues → Use curl/fetch/API client
48
+ - Problem: "API returns wrong response"
49
+ - BAD: Open browser → Navigate to endpoint → Check response
50
+ - GOOD: \`curl -X GET https://api.example.com/endpoint\`
51
+
52
+ ### Code Bugs → Analyze and Fix Code
53
+ - Problem: "Button click doesn't work"
54
+ - BAD: Open browser → Try clicking → Debug visually
55
+ - GOOD: Read the code → Find the bug → Fix it directly
56
+
57
+ ### Configuration Issues → Edit Config Files
58
+ - Problem: "Wrong setting in the application"
59
+ - BAD: Navigate to settings page → Change UI value
60
+ - GOOD: Edit the configuration file directly
61
+
62
+ ## Decision Flowchart
63
+
64
+ \`\`\`
65
+ User Request
66
+
67
+
68
+ Is it about data? ──YES──► Use DB query
69
+ │NO
70
+
71
+ Is it about API? ──YES──► Use curl/API client
72
+ │NO
73
+
74
+ Is it about code? ──YES──► Read/fix code directly
75
+ │NO
76
+
77
+ Did user explicitly ──NO──► Ask for clarification
78
+ mention browser/UI?
79
+ │YES
80
+
81
+ Use browser tools
82
+ \`\`\`
83
+
84
+ ## Cost Comparison
85
+
86
+ | Approach | Time | Reliability | Context Usage |
87
+ |----------|------|-------------|---------------|
88
+ | DB Query | ~1s | High | Low |
89
+ | API Call | ~2s | High | Low |
90
+ | Code Fix | ~5s | High | Low |
91
+ | Browser Automation | ~30s+ | Medium | High |
92
+
93
+ ## Summary
94
+
95
+ Browser automation is a powerful tool, but it should be your LAST resort.
96
+ Always consider simpler, faster, more reliable alternatives first.
97
+ `;
98
+ function getUsageGuideContent() {
99
+ return exports.usageGuideContent.trim();
100
+ }
101
+ //# sourceMappingURL=usage-guide.js.map
@@ -0,0 +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,+BAA+B;IACpC,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"}
@@ -0,0 +1,51 @@
1
+ import type { Page } from 'puppeteer-core';
2
+ import { BrowserBackend, HybridConfig, RouterStats, EscalationResult } from '../types/browser-backend';
3
+ export interface RouteResult {
4
+ backend: BrowserBackend;
5
+ page: Page;
6
+ fallback: boolean;
7
+ }
8
+ export declare class BrowserRouter {
9
+ private config;
10
+ private launcher;
11
+ private cookieSync;
12
+ private stats;
13
+ private consecutiveFailures;
14
+ private circuitOpen;
15
+ private circuitOpenedAt;
16
+ constructor(config: HybridConfig);
17
+ /**
18
+ * Route a tool request to the appropriate backend.
19
+ *
20
+ * Decision order:
21
+ * 1. Hybrid disabled → always Chrome
22
+ * 2. Visual tool → always Chrome
23
+ * 3. Circuit breaker open and cooldown not expired → Chrome (increment circuitBreakerTrips)
24
+ * 4. Circuit breaker open and cooldown expired → reset, try LP
25
+ * 5. LP page provided and page is healthy → LP
26
+ * 6. LP page missing or unhealthy → fallback to Chrome, record failure
27
+ */
28
+ route(toolName: string, chromePage: Page, lightpandaPage?: Page | null): Promise<RouteResult>;
29
+ /**
30
+ * Escalate from Lightpanda to Chrome.
31
+ * - Gets current URL from LP page
32
+ * - Syncs cookies LP → Chrome
33
+ * - Navigates Chrome to same URL
34
+ */
35
+ escalate(lightpandaPage: Page, chromePage: Page): Promise<EscalationResult>;
36
+ /** Get routing statistics */
37
+ getStats(): RouterStats;
38
+ /** Reset statistics */
39
+ resetStats(): void;
40
+ /** Check if circuit breaker is currently open */
41
+ isCircuitOpen(): boolean;
42
+ /** Initialize launcher and connect to Lightpanda */
43
+ initialize(): Promise<void>;
44
+ /** Cleanup resources */
45
+ cleanup(): Promise<void>;
46
+ private recordSuccess;
47
+ private recordFailure;
48
+ /** Returns true if the circuit breaker should cause LP to be skipped */
49
+ private checkCircuitBreaker;
50
+ }
51
+ //# sourceMappingURL=browser-router.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser-router.d.ts","sourceRoot":"","sources":["../../src/router/browser-router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EACL,cAAc,EACd,YAAY,EACZ,WAAW,EACX,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AAKlC,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,cAAc,CAAC;IACxB,IAAI,EAAE,IAAI,CAAC;IACX,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,QAAQ,CAAmC;IACnD,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,KAAK,CAAc;IAG3B,OAAO,CAAC,mBAAmB,CAAa;IACxC,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,eAAe,CAAa;gBAExB,MAAM,EAAE,YAAY;IAWhC;;;;;;;;;;OAUG;IACG,KAAK,CACT,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,IAAI,EAChB,cAAc,CAAC,EAAE,IAAI,GAAG,IAAI,GAC3B,OAAO,CAAC,WAAW,CAAC;IAsDvB;;;;;OAKG;IACG,QAAQ,CAAC,cAAc,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA0BjF,6BAA6B;IAC7B,QAAQ,IAAI,WAAW;IAIvB,uBAAuB;IACvB,UAAU,IAAI,IAAI;IASlB,iDAAiD;IACjD,aAAa,IAAI,OAAO;IAIxB,oDAAoD;IAC9C,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAajC,wBAAwB;IAClB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAY9B,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,aAAa;IAYrB,wEAAwE;IACxE,OAAO,CAAC,mBAAmB;CAgB5B"}
@@ -0,0 +1,178 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BrowserRouter = void 0;
4
+ const browser_backend_1 = require("../types/browser-backend");
5
+ const tool_routing_registry_1 = require("./tool-routing-registry");
6
+ const launcher_1 = require("../lightpanda/launcher");
7
+ const cookie_sync_1 = require("./cookie-sync");
8
+ class BrowserRouter {
9
+ config;
10
+ launcher = null;
11
+ cookieSync;
12
+ stats;
13
+ // Circuit breaker state
14
+ consecutiveFailures = 0;
15
+ circuitOpen = false;
16
+ circuitOpenedAt = 0;
17
+ constructor(config) {
18
+ this.config = config;
19
+ this.cookieSync = new cookie_sync_1.CookieSync({ intervalMs: config.cookieSync.intervalMs });
20
+ this.stats = {
21
+ chromeRequests: 0,
22
+ lightpandaRequests: 0,
23
+ fallbacks: 0,
24
+ circuitBreakerTrips: 0,
25
+ };
26
+ }
27
+ /**
28
+ * Route a tool request to the appropriate backend.
29
+ *
30
+ * Decision order:
31
+ * 1. Hybrid disabled → always Chrome
32
+ * 2. Visual tool → always Chrome
33
+ * 3. Circuit breaker open and cooldown not expired → Chrome (increment circuitBreakerTrips)
34
+ * 4. Circuit breaker open and cooldown expired → reset, try LP
35
+ * 5. LP page provided and page is healthy → LP
36
+ * 6. LP page missing or unhealthy → fallback to Chrome, record failure
37
+ */
38
+ async route(toolName, chromePage, lightpandaPage) {
39
+ // 1. Hybrid disabled
40
+ if (!this.config.enabled) {
41
+ this.stats.chromeRequests++;
42
+ return { backend: browser_backend_1.BrowserBackend.CHROME, page: chromePage, fallback: false };
43
+ }
44
+ // 2. Visual tool always goes to Chrome
45
+ if (tool_routing_registry_1.ToolRoutingRegistry.isVisualTool(toolName)) {
46
+ this.stats.chromeRequests++;
47
+ return { backend: browser_backend_1.BrowserBackend.CHROME, page: chromePage, fallback: false };
48
+ }
49
+ // 3 & 4. Check circuit breaker
50
+ if (this.circuitOpen) {
51
+ const cooldownExpired = Date.now() - this.circuitOpenedAt >= this.config.circuitBreaker.cooldownMs;
52
+ if (!cooldownExpired) {
53
+ // Circuit still open → serve from Chrome
54
+ this.stats.chromeRequests++;
55
+ this.stats.circuitBreakerTrips++;
56
+ return { backend: browser_backend_1.BrowserBackend.CHROME, page: chromePage, fallback: false };
57
+ }
58
+ // Cooldown expired → reset circuit and allow LP attempt
59
+ this.circuitOpen = false;
60
+ this.consecutiveFailures = 0;
61
+ }
62
+ // 5. Attempt Lightpanda
63
+ if (lightpandaPage != null) {
64
+ let pageHealthy = false;
65
+ try {
66
+ pageHealthy = !lightpandaPage.isClosed();
67
+ }
68
+ catch {
69
+ // isClosed() threw → page is not usable
70
+ pageHealthy = false;
71
+ }
72
+ if (pageHealthy) {
73
+ this.stats.lightpandaRequests++;
74
+ this.recordSuccess();
75
+ return { backend: browser_backend_1.BrowserBackend.LIGHTPANDA, page: lightpandaPage, fallback: false };
76
+ }
77
+ }
78
+ // 6. Fallback to Chrome
79
+ this.stats.chromeRequests++;
80
+ this.stats.fallbacks++;
81
+ this.recordFailure();
82
+ return { backend: browser_backend_1.BrowserBackend.CHROME, page: chromePage, fallback: true };
83
+ }
84
+ /**
85
+ * Escalate from Lightpanda to Chrome.
86
+ * - Gets current URL from LP page
87
+ * - Syncs cookies LP → Chrome
88
+ * - Navigates Chrome to same URL
89
+ */
90
+ async escalate(lightpandaPage, chromePage) {
91
+ const url = lightpandaPage.url();
92
+ let cookiesSynced = false;
93
+ try {
94
+ const count = await this.cookieSync.lightpandaToChrome(lightpandaPage, chromePage);
95
+ cookiesSynced = count >= 0; // lightpandaToChrome returns count (0 is still "synced" successfully)
96
+ }
97
+ catch {
98
+ cookiesSynced = false;
99
+ }
100
+ try {
101
+ await chromePage.goto(url);
102
+ }
103
+ catch {
104
+ // best-effort navigation
105
+ }
106
+ return {
107
+ success: true,
108
+ previousBackend: browser_backend_1.BrowserBackend.LIGHTPANDA,
109
+ newBackend: browser_backend_1.BrowserBackend.CHROME,
110
+ cookiesSynced,
111
+ url,
112
+ };
113
+ }
114
+ /** Get routing statistics */
115
+ getStats() {
116
+ return { ...this.stats };
117
+ }
118
+ /** Reset statistics */
119
+ resetStats() {
120
+ this.stats = {
121
+ chromeRequests: 0,
122
+ lightpandaRequests: 0,
123
+ fallbacks: 0,
124
+ circuitBreakerTrips: 0,
125
+ };
126
+ }
127
+ /** Check if circuit breaker is currently open */
128
+ isCircuitOpen() {
129
+ return this.circuitOpen;
130
+ }
131
+ /** Initialize launcher and connect to Lightpanda */
132
+ async initialize() {
133
+ if (!this.config.enabled) {
134
+ return;
135
+ }
136
+ this.launcher = new launcher_1.LightpandaLauncher({
137
+ port: this.config.lightpandaPort,
138
+ });
139
+ await this.launcher.start();
140
+ await this.launcher.connect();
141
+ }
142
+ /** Cleanup resources */
143
+ async cleanup() {
144
+ this.cookieSync.cleanup();
145
+ if (this.launcher) {
146
+ await this.launcher.disconnect();
147
+ await this.launcher.stop();
148
+ this.launcher = null;
149
+ }
150
+ }
151
+ // ─── Private helpers ──────────────────────────────────────────────────────
152
+ recordSuccess() {
153
+ this.consecutiveFailures = 0;
154
+ }
155
+ recordFailure() {
156
+ this.consecutiveFailures++;
157
+ if (!this.circuitOpen &&
158
+ this.consecutiveFailures >= this.config.circuitBreaker.maxFailures) {
159
+ this.circuitOpen = true;
160
+ this.circuitOpenedAt = Date.now();
161
+ }
162
+ }
163
+ /** Returns true if the circuit breaker should cause LP to be skipped */
164
+ checkCircuitBreaker() {
165
+ if (!this.circuitOpen) {
166
+ return false;
167
+ }
168
+ const cooldownExpired = Date.now() - this.circuitOpenedAt >= this.config.circuitBreaker.cooldownMs;
169
+ if (cooldownExpired) {
170
+ this.circuitOpen = false;
171
+ this.consecutiveFailures = 0;
172
+ return false;
173
+ }
174
+ return true;
175
+ }
176
+ }
177
+ exports.BrowserRouter = BrowserRouter;
178
+ //# sourceMappingURL=browser-router.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser-router.js","sourceRoot":"","sources":["../../src/router/browser-router.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ import type { Page } from 'puppeteer-core';
2
+ export interface CookieSyncConfig {
3
+ /** Interval between periodic syncs in milliseconds. Default: 5000 */
4
+ intervalMs: number;
5
+ }
6
+ /**
7
+ * CookieSync handles bidirectional cookie synchronisation between Chrome and
8
+ * Lightpanda pages. All operations are best-effort – errors are caught and
9
+ * logged but never thrown so callers are not disrupted.
10
+ */
11
+ export declare class CookieSync {
12
+ private syncTimer;
13
+ private readonly intervalMs;
14
+ constructor(config?: Partial<CookieSyncConfig>);
15
+ /**
16
+ * Core sync primitive. Reads cookies from `source`, optionally filters by
17
+ * `domain`, then writes them to `target`.
18
+ *
19
+ * @returns Number of cookies actually synced, or 0 on error.
20
+ */
21
+ syncCookies(source: Page, target: Page, domain?: string): Promise<number>;
22
+ /**
23
+ * Sync cookies from Chrome to Lightpanda (e.g. before delegating a task).
24
+ */
25
+ chromeToLightpanda(chromePage: Page, lightpandaPage: Page, domain?: string): Promise<number>;
26
+ /**
27
+ * Sync cookies from Lightpanda back to Chrome on escalation.
28
+ * Uses a MERGE strategy – only cookies not already present in Chrome are
29
+ * added; existing Chrome cookies are never overwritten.
30
+ *
31
+ * @returns Number of new cookies added to Chrome.
32
+ */
33
+ lightpandaToChrome(lightpandaPage: Page, chromePage: Page): Promise<number>;
34
+ /**
35
+ * Start a periodic background sync from `source` to `target`.
36
+ * The timer is unref'd so it will not prevent process exit.
37
+ */
38
+ startPeriodicSync(source: Page, target: Page, domain?: string): void;
39
+ /**
40
+ * Stop the periodic sync timer if one is running.
41
+ */
42
+ stopPeriodicSync(): void;
43
+ /**
44
+ * Alias for stopPeriodicSync – stops the timer and releases resources.
45
+ */
46
+ cleanup(): void;
47
+ }
48
+ //# sourceMappingURL=cookie-sync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cookie-sync.d.ts","sourceRoot":"","sources":["../../src/router/cookie-sync.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAuB,MAAM,gBAAgB,CAAC;AAEhE,MAAM,WAAW,gBAAgB;IAC/B,qEAAqE;IACrE,UAAU,EAAE,MAAM,CAAC;CACpB;AAID;;;;GAIG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,SAAS,CAA+B;IAChD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;gBAExB,MAAM,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC;IAI9C;;;;;OAKG;IACG,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAoB/E;;OAEG;IACG,kBAAkB,CACtB,UAAU,EAAE,IAAI,EAChB,cAAc,EAAE,IAAI,EACpB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC;IAIlB;;;;;;OAMG;IACG,kBAAkB,CAAC,cAAc,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;IA4BjF;;;OAGG;IACH,iBAAiB,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAiBpE;;OAEG;IACH,gBAAgB,IAAI,IAAI;IAOxB;;OAEG;IACH,OAAO,IAAI,IAAI;CAGhB"}
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CookieSync = void 0;
4
+ const DEFAULT_INTERVAL_MS = 5000;
5
+ /**
6
+ * CookieSync handles bidirectional cookie synchronisation between Chrome and
7
+ * Lightpanda pages. All operations are best-effort – errors are caught and
8
+ * logged but never thrown so callers are not disrupted.
9
+ */
10
+ class CookieSync {
11
+ syncTimer = null;
12
+ intervalMs;
13
+ constructor(config) {
14
+ this.intervalMs = config?.intervalMs ?? DEFAULT_INTERVAL_MS;
15
+ }
16
+ /**
17
+ * Core sync primitive. Reads cookies from `source`, optionally filters by
18
+ * `domain`, then writes them to `target`.
19
+ *
20
+ * @returns Number of cookies actually synced, or 0 on error.
21
+ */
22
+ async syncCookies(source, target, domain) {
23
+ try {
24
+ let cookies = await source.cookies();
25
+ if (domain) {
26
+ cookies = cookies.filter((c) => c.domain === domain || c.domain === `.${domain}`);
27
+ }
28
+ if (cookies.length === 0) {
29
+ return 0;
30
+ }
31
+ await target.setCookie(...cookies);
32
+ return cookies.length;
33
+ }
34
+ catch (err) {
35
+ console.error('[CookieSync] syncCookies error:', err);
36
+ return 0;
37
+ }
38
+ }
39
+ /**
40
+ * Sync cookies from Chrome to Lightpanda (e.g. before delegating a task).
41
+ */
42
+ async chromeToLightpanda(chromePage, lightpandaPage, domain) {
43
+ return this.syncCookies(chromePage, lightpandaPage, domain);
44
+ }
45
+ /**
46
+ * Sync cookies from Lightpanda back to Chrome on escalation.
47
+ * Uses a MERGE strategy – only cookies not already present in Chrome are
48
+ * added; existing Chrome cookies are never overwritten.
49
+ *
50
+ * @returns Number of new cookies added to Chrome.
51
+ */
52
+ async lightpandaToChrome(lightpandaPage, chromePage) {
53
+ try {
54
+ const [lpCookies, chromeCookies] = await Promise.all([
55
+ lightpandaPage.cookies(),
56
+ chromePage.cookies(),
57
+ ]);
58
+ // Build a set of existing Chrome cookie keys for fast lookup
59
+ const existingKeys = new Set(chromeCookies.map((c) => `${c.name}::${c.domain}::${c.path}`));
60
+ const newCookies = lpCookies.filter((c) => !existingKeys.has(`${c.name}::${c.domain}::${c.path}`));
61
+ if (newCookies.length === 0) {
62
+ return 0;
63
+ }
64
+ await chromePage.setCookie(...newCookies);
65
+ return newCookies.length;
66
+ }
67
+ catch (err) {
68
+ console.error('[CookieSync] lightpandaToChrome error:', err);
69
+ return 0;
70
+ }
71
+ }
72
+ /**
73
+ * Start a periodic background sync from `source` to `target`.
74
+ * The timer is unref'd so it will not prevent process exit.
75
+ */
76
+ startPeriodicSync(source, target, domain) {
77
+ this.stopPeriodicSync();
78
+ const timer = setInterval(() => {
79
+ this.syncCookies(source, target, domain).catch((err) => {
80
+ console.error('[CookieSync] periodic sync error:', err);
81
+ });
82
+ }, this.intervalMs);
83
+ // Do not block process exit
84
+ if (typeof timer.unref === 'function') {
85
+ timer.unref();
86
+ }
87
+ this.syncTimer = timer;
88
+ }
89
+ /**
90
+ * Stop the periodic sync timer if one is running.
91
+ */
92
+ stopPeriodicSync() {
93
+ if (this.syncTimer !== null) {
94
+ clearInterval(this.syncTimer);
95
+ this.syncTimer = null;
96
+ }
97
+ }
98
+ /**
99
+ * Alias for stopPeriodicSync – stops the timer and releases resources.
100
+ */
101
+ cleanup() {
102
+ this.stopPeriodicSync();
103
+ }
104
+ }
105
+ exports.CookieSync = CookieSync;
106
+ //# sourceMappingURL=cookie-sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cookie-sync.js","sourceRoot":"","sources":["../../src/router/cookie-sync.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export { BrowserRouter } from './browser-router';
2
+ export type { RouteResult } from './browser-router';
3
+ export { ToolRoutingRegistry } from './tool-routing-registry';
4
+ export { CookieSync } from './cookie-sync';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/router/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CookieSync = exports.ToolRoutingRegistry = exports.BrowserRouter = void 0;
4
+ var browser_router_1 = require("./browser-router");
5
+ Object.defineProperty(exports, "BrowserRouter", { enumerable: true, get: function () { return browser_router_1.BrowserRouter; } });
6
+ var tool_routing_registry_1 = require("./tool-routing-registry");
7
+ Object.defineProperty(exports, "ToolRoutingRegistry", { enumerable: true, get: function () { return tool_routing_registry_1.ToolRoutingRegistry; } });
8
+ var cookie_sync_1 = require("./cookie-sync");
9
+ Object.defineProperty(exports, "CookieSync", { enumerable: true, get: function () { return cookie_sync_1.CookieSync; } });
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/router/index.ts"],"names":[],"mappings":";;;AAAA,mDAAiD;AAAxC,+GAAA,aAAa,OAAA;AAEtB,iEAA8D;AAArD,4HAAA,mBAAmB,OAAA;AAC5B,6CAA2C;AAAlC,yGAAA,UAAU,OAAA"}
@@ -0,0 +1,21 @@
1
+ import type { ToolRouting } from '../types/browser-backend';
2
+ export declare class ToolRoutingRegistry {
3
+ /**
4
+ * Returns the routing preference for a given tool name.
5
+ * Unknown tools default to 'chrome-only' as a safe fallback.
6
+ */
7
+ static getRouting(toolName: string): ToolRouting;
8
+ /**
9
+ * Returns true if the tool requires Chrome (screenshot/PDF capability).
10
+ */
11
+ static isVisualTool(toolName: string): boolean;
12
+ /**
13
+ * Returns the list of all chrome-only tool names.
14
+ */
15
+ static getChromeOnlyTools(): string[];
16
+ /**
17
+ * Returns the list of all prefer-lightpanda tool names.
18
+ */
19
+ static getPreferLightpandaTools(): string[];
20
+ }
21
+ //# sourceMappingURL=tool-routing-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-routing-registry.d.ts","sourceRoot":"","sources":["../../src/router/tool-routing-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAiE5D,qBAAa,mBAAmB;IAC9B;;;OAGG;IACH,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW;IAIhD;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAI9C;;OAEG;IACH,MAAM,CAAC,kBAAkB,IAAI,MAAM,EAAE;IAMrC;;OAEG;IACH,MAAM,CAAC,wBAAwB,IAAI,MAAM,EAAE;CAK5C"}