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":"selector-query.js","sourceRoot":"","sources":["../../src/tools/selector-query.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Shutdown Tool - Gracefully stop CCP and close Chrome
3
+ *
4
+ * Provides "ccp stop" functionality:
5
+ * 1. Clean up all sessions and workers
6
+ * 2. Shutdown connection pool (close all pooled pages)
7
+ * 3. Disconnect CDP client
8
+ * 4. Kill Chrome process if CCP launched it
9
+ */
10
+ import { MCPServer } from '../mcp-server';
11
+ export declare function registerShutdownTool(server: MCPServer): void;
12
+ //# sourceMappingURL=shutdown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shutdown.d.ts","sourceRoot":"","sources":["../../src/tools/shutdown.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAiH1C,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAE5D"}
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+ /**
3
+ * Shutdown Tool - Gracefully stop CCP and close Chrome
4
+ *
5
+ * Provides "ccp stop" functionality:
6
+ * 1. Clean up all sessions and workers
7
+ * 2. Shutdown connection pool (close all pooled pages)
8
+ * 3. Disconnect CDP client
9
+ * 4. Kill Chrome process if CCP launched it
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.registerShutdownTool = registerShutdownTool;
13
+ const session_manager_1 = require("../session-manager");
14
+ const connection_pool_1 = require("../cdp/connection-pool");
15
+ const client_1 = require("../cdp/client");
16
+ const launcher_1 = require("../chrome/launcher");
17
+ const definition = {
18
+ name: 'ccp_stop',
19
+ description: 'Gracefully shut down CCP: close all browser sessions, tabs, and the Chrome process. ' +
20
+ 'Use this when you are done with browser automation. Chrome will be re-launched ' +
21
+ 'automatically on the next CCP tool call.',
22
+ inputSchema: {
23
+ type: 'object',
24
+ properties: {
25
+ keepChrome: {
26
+ type: 'boolean',
27
+ description: 'If true, keep Chrome running but disconnect CCP from it (default: false). ' +
28
+ 'When false, Chrome is killed if CCP launched it.',
29
+ },
30
+ },
31
+ required: [],
32
+ },
33
+ };
34
+ const handler = async (_sessionId, args) => {
35
+ const keepChrome = args.keepChrome || false;
36
+ const steps = [];
37
+ const startTime = Date.now();
38
+ try {
39
+ // Step 1: Clean up all sessions (closes workers, tabs, browser contexts)
40
+ const sessionManager = (0, session_manager_1.getSessionManager)();
41
+ const sessionCount = await sessionManager.cleanupAllSessions();
42
+ steps.push(`Cleaned up ${sessionCount} session(s)`);
43
+ // Step 2: Shutdown connection pool (closes all pooled about:blank pages)
44
+ try {
45
+ const pool = (0, connection_pool_1.getCDPConnectionPool)();
46
+ const stats = pool.getStats();
47
+ await pool.shutdown();
48
+ steps.push(`Shutdown connection pool (${stats.availablePages} pooled + ${stats.inUsePages} in-use pages closed)`);
49
+ }
50
+ catch (e) {
51
+ steps.push(`Connection pool: ${e instanceof Error ? e.message : 'already shutdown'}`);
52
+ }
53
+ // Step 3: Disconnect CDP client
54
+ try {
55
+ const cdpClient = (0, client_1.getCDPClient)();
56
+ if (cdpClient.isConnected()) {
57
+ await cdpClient.disconnect();
58
+ steps.push('Disconnected CDP client');
59
+ }
60
+ else {
61
+ steps.push('CDP client: already disconnected');
62
+ }
63
+ }
64
+ catch (e) {
65
+ steps.push(`CDP client: ${e instanceof Error ? e.message : 'error'}`);
66
+ }
67
+ // Step 4: Close Chrome process (if CCP launched it and keepChrome is false)
68
+ if (!keepChrome) {
69
+ try {
70
+ const launcher = (0, launcher_1.getChromeLauncher)();
71
+ if (launcher.isConnected()) {
72
+ await launcher.close();
73
+ steps.push('Chrome process terminated');
74
+ }
75
+ else {
76
+ steps.push('Chrome: no CCP-managed process to terminate');
77
+ }
78
+ }
79
+ catch (e) {
80
+ steps.push(`Chrome: ${e instanceof Error ? e.message : 'error'}`);
81
+ }
82
+ }
83
+ else {
84
+ steps.push('Chrome: kept running (keepChrome=true)');
85
+ }
86
+ const durationMs = Date.now() - startTime;
87
+ return {
88
+ content: [
89
+ {
90
+ type: 'text',
91
+ text: [
92
+ 'CCP stopped successfully.',
93
+ '',
94
+ 'Shutdown steps:',
95
+ ...steps.map((s, i) => ` ${i + 1}. ${s}`),
96
+ '',
97
+ `Total: ${durationMs}ms`,
98
+ '',
99
+ 'Chrome will re-launch automatically on the next CCP tool call.',
100
+ ].join('\n'),
101
+ },
102
+ ],
103
+ };
104
+ }
105
+ catch (error) {
106
+ return {
107
+ content: [
108
+ {
109
+ type: 'text',
110
+ text: `Error during shutdown: ${error instanceof Error ? error.message : String(error)}\n\nPartial steps completed:\n${steps.map((s, i) => ` ${i + 1}. ${s}`).join('\n')}`,
111
+ },
112
+ ],
113
+ isError: true,
114
+ };
115
+ }
116
+ };
117
+ function registerShutdownTool(server) {
118
+ server.registerTool('ccp_stop', handler, definition);
119
+ }
120
+ //# sourceMappingURL=shutdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shutdown.js","sourceRoot":"","sources":["../../src/tools/shutdown.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Storage Tool - Manage localStorage and sessionStorage
3
+ */
4
+ import { MCPServer } from '../mcp-server';
5
+ export declare function registerStorageTool(server: MCPServer): void;
6
+ //# sourceMappingURL=storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/tools/storage.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAsS1C,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAE3D"}
@@ -0,0 +1,264 @@
1
+ "use strict";
2
+ /**
3
+ * Storage Tool - Manage localStorage and sessionStorage
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.registerStorageTool = registerStorageTool;
7
+ const session_manager_1 = require("../session-manager");
8
+ const definition = {
9
+ name: 'storage',
10
+ description: `Manage browser localStorage and sessionStorage.
11
+ Actions:
12
+ - "get": Get a value by key, or all values if no key specified
13
+ - "set": Set a key-value pair
14
+ - "remove": Remove a specific key
15
+ - "clear": Clear all storage
16
+ - "keys": Get all keys`,
17
+ inputSchema: {
18
+ type: 'object',
19
+ properties: {
20
+ tabId: {
21
+ type: 'string',
22
+ description: 'Tab ID to manage storage for',
23
+ },
24
+ storageType: {
25
+ type: 'string',
26
+ enum: ['local', 'session'],
27
+ description: 'Storage type: "local" for localStorage, "session" for sessionStorage',
28
+ },
29
+ action: {
30
+ type: 'string',
31
+ enum: ['get', 'set', 'remove', 'clear', 'keys'],
32
+ description: 'Action to perform',
33
+ },
34
+ key: {
35
+ type: 'string',
36
+ description: 'Storage key (required for set and remove, optional for get)',
37
+ },
38
+ value: {
39
+ type: 'string',
40
+ description: 'Value to store (required for set action). Objects should be JSON stringified.',
41
+ },
42
+ },
43
+ required: ['tabId', 'storageType', 'action'],
44
+ },
45
+ };
46
+ const handler = async (sessionId, args) => {
47
+ const tabId = args.tabId;
48
+ const storageType = args.storageType;
49
+ const action = args.action;
50
+ const key = args.key;
51
+ const value = args.value;
52
+ const sessionManager = (0, session_manager_1.getSessionManager)();
53
+ if (!tabId) {
54
+ return {
55
+ content: [{ type: 'text', text: 'Error: tabId is required' }],
56
+ isError: true,
57
+ };
58
+ }
59
+ if (!storageType || !['local', 'session'].includes(storageType)) {
60
+ return {
61
+ content: [{ type: 'text', text: 'Error: storageType must be "local" or "session"' }],
62
+ isError: true,
63
+ };
64
+ }
65
+ if (!action) {
66
+ return {
67
+ content: [{ type: 'text', text: 'Error: action is required' }],
68
+ isError: true,
69
+ };
70
+ }
71
+ try {
72
+ const page = await sessionManager.getPage(sessionId, tabId, undefined, 'storage');
73
+ if (!page) {
74
+ return {
75
+ content: [{ type: 'text', text: `Error: Tab ${tabId} not found` }],
76
+ isError: true,
77
+ };
78
+ }
79
+ const storageName = storageType === 'local' ? 'localStorage' : 'sessionStorage';
80
+ switch (action) {
81
+ case 'get': {
82
+ if (key) {
83
+ // Get specific key
84
+ const result = await page.evaluate((storage, k) => {
85
+ const s = storage === 'localStorage' ? localStorage : sessionStorage;
86
+ return s.getItem(k);
87
+ }, storageName, key);
88
+ return {
89
+ content: [
90
+ {
91
+ type: 'text',
92
+ text: JSON.stringify({
93
+ action: 'get',
94
+ storageType,
95
+ key,
96
+ value: result,
97
+ exists: result !== null,
98
+ }),
99
+ },
100
+ ],
101
+ };
102
+ }
103
+ else {
104
+ // Get all values
105
+ const result = await page.evaluate((storage) => {
106
+ const s = storage === 'localStorage' ? localStorage : sessionStorage;
107
+ const items = {};
108
+ for (let i = 0; i < s.length; i++) {
109
+ const key = s.key(i);
110
+ if (key) {
111
+ items[key] = s.getItem(key);
112
+ }
113
+ }
114
+ return items;
115
+ }, storageName);
116
+ return {
117
+ content: [
118
+ {
119
+ type: 'text',
120
+ text: JSON.stringify({
121
+ action: 'get',
122
+ storageType,
123
+ items: result,
124
+ count: Object.keys(result).length,
125
+ }),
126
+ },
127
+ ],
128
+ };
129
+ }
130
+ }
131
+ case 'set': {
132
+ if (!key) {
133
+ return {
134
+ content: [{ type: 'text', text: 'Error: key is required for set action' }],
135
+ isError: true,
136
+ };
137
+ }
138
+ if (value === undefined) {
139
+ return {
140
+ content: [{ type: 'text', text: 'Error: value is required for set action' }],
141
+ isError: true,
142
+ };
143
+ }
144
+ await page.evaluate((storage, k, v) => {
145
+ const s = storage === 'localStorage' ? localStorage : sessionStorage;
146
+ s.setItem(k, v);
147
+ }, storageName, key, value);
148
+ return {
149
+ content: [
150
+ {
151
+ type: 'text',
152
+ text: JSON.stringify({
153
+ action: 'set',
154
+ storageType,
155
+ key,
156
+ value,
157
+ message: `Set ${storageName}["${key}"] = "${value}"`,
158
+ }),
159
+ },
160
+ ],
161
+ };
162
+ }
163
+ case 'remove': {
164
+ if (!key) {
165
+ return {
166
+ content: [{ type: 'text', text: 'Error: key is required for remove action' }],
167
+ isError: true,
168
+ };
169
+ }
170
+ await page.evaluate((storage, k) => {
171
+ const s = storage === 'localStorage' ? localStorage : sessionStorage;
172
+ s.removeItem(k);
173
+ }, storageName, key);
174
+ return {
175
+ content: [
176
+ {
177
+ type: 'text',
178
+ text: JSON.stringify({
179
+ action: 'remove',
180
+ storageType,
181
+ key,
182
+ message: `Removed "${key}" from ${storageName}`,
183
+ }),
184
+ },
185
+ ],
186
+ };
187
+ }
188
+ case 'clear': {
189
+ const countBefore = await page.evaluate((storage) => {
190
+ const s = storage === 'localStorage' ? localStorage : sessionStorage;
191
+ return s.length;
192
+ }, storageName);
193
+ await page.evaluate((storage) => {
194
+ const s = storage === 'localStorage' ? localStorage : sessionStorage;
195
+ s.clear();
196
+ }, storageName);
197
+ return {
198
+ content: [
199
+ {
200
+ type: 'text',
201
+ text: JSON.stringify({
202
+ action: 'clear',
203
+ storageType,
204
+ clearedCount: countBefore,
205
+ message: `Cleared ${countBefore} items from ${storageName}`,
206
+ }),
207
+ },
208
+ ],
209
+ };
210
+ }
211
+ case 'keys': {
212
+ const keys = await page.evaluate((storage) => {
213
+ const s = storage === 'localStorage' ? localStorage : sessionStorage;
214
+ const result = [];
215
+ for (let i = 0; i < s.length; i++) {
216
+ const key = s.key(i);
217
+ if (key) {
218
+ result.push(key);
219
+ }
220
+ }
221
+ return result;
222
+ }, storageName);
223
+ return {
224
+ content: [
225
+ {
226
+ type: 'text',
227
+ text: JSON.stringify({
228
+ action: 'keys',
229
+ storageType,
230
+ keys,
231
+ count: keys.length,
232
+ }),
233
+ },
234
+ ],
235
+ };
236
+ }
237
+ default:
238
+ return {
239
+ content: [
240
+ {
241
+ type: 'text',
242
+ text: `Error: Unknown action "${action}". Use: get, set, remove, clear, or keys`,
243
+ },
244
+ ],
245
+ isError: true,
246
+ };
247
+ }
248
+ }
249
+ catch (error) {
250
+ return {
251
+ content: [
252
+ {
253
+ type: 'text',
254
+ text: `Storage error: ${error instanceof Error ? error.message : String(error)}`,
255
+ },
256
+ ],
257
+ isError: true,
258
+ };
259
+ }
260
+ };
261
+ function registerStorageTool(server) {
262
+ server.registerTool('storage', handler, definition);
263
+ }
264
+ //# sourceMappingURL=storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/tools/storage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Tabs Close Tool - Close tabs in the session
3
+ */
4
+ import { MCPServer } from '../mcp-server';
5
+ export declare function registerTabsCloseTool(server: MCPServer): void;
6
+ //# sourceMappingURL=tabs-close.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabs-close.d.ts","sourceRoot":"","sources":["../../src/tools/tabs-close.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAmI1C,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAE7D"}
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+ /**
3
+ * Tabs Close Tool - Close tabs in the session
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.registerTabsCloseTool = registerTabsCloseTool;
7
+ const session_manager_1 = require("../session-manager");
8
+ const definition = {
9
+ name: 'tabs_close',
10
+ description: 'Close one or more tabs. Use tabId to close a specific tab, or workerId to close all tabs in a worker. Helps manage browser resources and prevent tab accumulation.',
11
+ inputSchema: {
12
+ type: 'object',
13
+ properties: {
14
+ tabId: {
15
+ type: 'string',
16
+ description: 'Specific tab ID to close',
17
+ },
18
+ tabIds: {
19
+ type: 'array',
20
+ items: { type: 'string' },
21
+ description: 'Array of tab IDs to close (for batch closing)',
22
+ },
23
+ workerId: {
24
+ type: 'string',
25
+ description: 'Close all tabs in this worker (worker itself is preserved)',
26
+ },
27
+ },
28
+ },
29
+ };
30
+ const handler = async (sessionId, args) => {
31
+ const sessionManager = (0, session_manager_1.getSessionManager)();
32
+ const tabId = args.tabId;
33
+ const tabIds = args.tabIds;
34
+ const workerId = args.workerId;
35
+ // Validate at least one parameter is provided
36
+ if (!tabId && !tabIds && !workerId) {
37
+ return {
38
+ content: [
39
+ {
40
+ type: 'text',
41
+ text: 'Error: Provide tabId, tabIds array, or workerId to close tabs',
42
+ },
43
+ ],
44
+ isError: true,
45
+ };
46
+ }
47
+ try {
48
+ const results = {
49
+ closed: [],
50
+ failed: [],
51
+ message: '',
52
+ };
53
+ // Close specific tab
54
+ if (tabId) {
55
+ const success = await sessionManager.closeTarget(sessionId, tabId);
56
+ if (success) {
57
+ results.closed.push(tabId);
58
+ }
59
+ else {
60
+ results.failed.push(tabId);
61
+ }
62
+ }
63
+ // Close multiple tabs
64
+ if (tabIds && tabIds.length > 0) {
65
+ for (const id of tabIds) {
66
+ const success = await sessionManager.closeTarget(sessionId, id);
67
+ if (success) {
68
+ results.closed.push(id);
69
+ }
70
+ else {
71
+ results.failed.push(id);
72
+ }
73
+ }
74
+ }
75
+ // Close all tabs in a worker
76
+ if (workerId) {
77
+ const closedCount = await sessionManager.closeWorkerTabs(sessionId, workerId);
78
+ results.message = `Closed ${closedCount} tab(s) in worker "${workerId}"`;
79
+ }
80
+ // Build response message
81
+ let responseMessage = '';
82
+ if (results.closed.length > 0) {
83
+ responseMessage += `Closed ${results.closed.length} tab(s)`;
84
+ }
85
+ if (results.failed.length > 0) {
86
+ responseMessage += `${responseMessage ? '. ' : ''}Failed to close ${results.failed.length} tab(s): ${results.failed.join(', ')}`;
87
+ }
88
+ if (results.message) {
89
+ responseMessage += `${responseMessage ? '. ' : ''}${results.message}`;
90
+ }
91
+ if (!responseMessage) {
92
+ responseMessage = 'No tabs closed';
93
+ }
94
+ return {
95
+ content: [
96
+ {
97
+ type: 'text',
98
+ text: JSON.stringify({
99
+ success: results.failed.length === 0,
100
+ closedCount: results.closed.length,
101
+ closed: results.closed,
102
+ failed: results.failed,
103
+ message: responseMessage,
104
+ }, null, 2),
105
+ },
106
+ ],
107
+ };
108
+ }
109
+ catch (error) {
110
+ return {
111
+ content: [
112
+ {
113
+ type: 'text',
114
+ text: `Error closing tabs: ${error instanceof Error ? error.message : String(error)}`,
115
+ },
116
+ ],
117
+ isError: true,
118
+ };
119
+ }
120
+ };
121
+ function registerTabsCloseTool(server) {
122
+ server.registerTool('tabs_close', handler, definition);
123
+ }
124
+ //# sourceMappingURL=tabs-close.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabs-close.js","sourceRoot":"","sources":["../../src/tools/tabs-close.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Tabs Context Tool - Get context about browser tabs
3
+ */
4
+ import { MCPServer } from '../mcp-server';
5
+ export declare function registerTabsContextTool(server: MCPServer): void;
6
+ //# sourceMappingURL=tabs-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabs-context.d.ts","sourceRoot":"","sources":["../../src/tools/tabs-context.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AA0G1C,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAE/D"}