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,114 +0,0 @@
1
- /**
2
- * Remote Session Manager - Proxies session operations to Master via IPC
3
- * Provides the same interface as SessionManager but delegates to Master
4
- */
5
- import { IPCClient } from './ipc-client';
6
- export declare class RemoteSessionManager {
7
- private ipc;
8
- private currentSessionId;
9
- constructor(ipc: IPCClient);
10
- /**
11
- * Ensure we have a session
12
- */
13
- ensureSession(): Promise<string>;
14
- /**
15
- * Create a new session
16
- */
17
- createSession(options?: {
18
- name?: string;
19
- }): Promise<{
20
- id: string;
21
- name: string;
22
- }>;
23
- /**
24
- * Get session info
25
- */
26
- getSession(sessionId: string): Promise<unknown>;
27
- /**
28
- * List all sessions
29
- */
30
- listSessions(): Promise<unknown>;
31
- /**
32
- * Delete a session
33
- */
34
- deleteSession(sessionId: string): Promise<void>;
35
- /**
36
- * Create a new target (tab)
37
- */
38
- createTarget(sessionId: string, url?: string): Promise<{
39
- targetId: string;
40
- url: string;
41
- title: string;
42
- }>;
43
- /**
44
- * List targets for a session
45
- */
46
- listTargets(sessionId: string): Promise<unknown>;
47
- /**
48
- * Close a target
49
- */
50
- closeTarget(sessionId: string, targetId: string): Promise<void>;
51
- /**
52
- * Navigate a page
53
- */
54
- navigate(sessionId: string, targetId: string, url: string, options?: {
55
- waitUntil?: string;
56
- timeout?: number;
57
- }): Promise<void>;
58
- /**
59
- * Take a screenshot
60
- */
61
- screenshot(sessionId: string, targetId: string, options?: {
62
- format?: string;
63
- quality?: number;
64
- fullPage?: boolean;
65
- }): Promise<string>;
66
- /**
67
- * Evaluate JavaScript
68
- */
69
- evaluate<T>(sessionId: string, targetId: string, script: string): Promise<T>;
70
- /**
71
- * Click at coordinates
72
- */
73
- click(sessionId: string, targetId: string, x: number, y: number): Promise<void>;
74
- /**
75
- * Type text
76
- */
77
- type(sessionId: string, targetId: string, text: string): Promise<void>;
78
- /**
79
- * Scroll
80
- */
81
- scroll(sessionId: string, targetId: string, x: number, y: number, direction: string, amount: number): Promise<void>;
82
- /**
83
- * Execute CDP command
84
- */
85
- executeCDP<T>(sessionId: string, targetId: string, method: string, params?: Record<string, unknown>): Promise<T>;
86
- /**
87
- * Get accessibility tree
88
- */
89
- getAccessibilityTree(sessionId: string, targetId: string): Promise<unknown>;
90
- /**
91
- * Set ref
92
- */
93
- setRef(sessionId: string, targetId: string, refId: string, backendNodeId: number, nodeInfo: {
94
- role: string;
95
- name: string;
96
- }): Promise<void>;
97
- /**
98
- * Get ref
99
- */
100
- getRef(sessionId: string, targetId: string, refId: string): Promise<unknown>;
101
- /**
102
- * Clear refs
103
- */
104
- clearRefs(sessionId: string, targetId?: string): Promise<void>;
105
- /**
106
- * Get current session ID
107
- */
108
- getCurrentSessionId(): string | null;
109
- /**
110
- * Set current session ID
111
- */
112
- setCurrentSessionId(sessionId: string): void;
113
- }
114
- //# sourceMappingURL=remote-session-manager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"remote-session-manager.d.ts","sourceRoot":"","sources":["../../src/worker/remote-session-manager.ts"],"names":[],"mappings":"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"}
@@ -1,151 +0,0 @@
1
- "use strict";
2
- /**
3
- * Remote Session Manager - Proxies session operations to Master via IPC
4
- * Provides the same interface as SessionManager but delegates to Master
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.RemoteSessionManager = void 0;
8
- class RemoteSessionManager {
9
- ipc;
10
- currentSessionId = null;
11
- constructor(ipc) {
12
- this.ipc = ipc;
13
- }
14
- /**
15
- * Ensure we have a session
16
- */
17
- async ensureSession() {
18
- if (!this.currentSessionId) {
19
- const result = await this.createSession();
20
- this.currentSessionId = result.id;
21
- }
22
- return this.currentSessionId;
23
- }
24
- /**
25
- * Create a new session
26
- */
27
- async createSession(options) {
28
- const result = await this.ipc.call('session/create', options || {});
29
- this.currentSessionId = result.id;
30
- return result;
31
- }
32
- /**
33
- * Get session info
34
- */
35
- async getSession(sessionId) {
36
- return this.ipc.call('session/get', { sessionId });
37
- }
38
- /**
39
- * List all sessions
40
- */
41
- async listSessions() {
42
- return this.ipc.call('session/list', {});
43
- }
44
- /**
45
- * Delete a session
46
- */
47
- async deleteSession(sessionId) {
48
- await this.ipc.call('session/delete', { sessionId });
49
- if (this.currentSessionId === sessionId) {
50
- this.currentSessionId = null;
51
- }
52
- }
53
- /**
54
- * Create a new target (tab)
55
- */
56
- async createTarget(sessionId, url) {
57
- return this.ipc.call('tabs/create', { sessionId, url });
58
- }
59
- /**
60
- * List targets for a session
61
- */
62
- async listTargets(sessionId) {
63
- return this.ipc.call('tabs/list', { sessionId });
64
- }
65
- /**
66
- * Close a target
67
- */
68
- async closeTarget(sessionId, targetId) {
69
- await this.ipc.call('tabs/close', { sessionId, targetId });
70
- }
71
- /**
72
- * Navigate a page
73
- */
74
- async navigate(sessionId, targetId, url, options) {
75
- await this.ipc.call('page/navigate', { sessionId, targetId, url, options });
76
- }
77
- /**
78
- * Take a screenshot
79
- */
80
- async screenshot(sessionId, targetId, options) {
81
- return this.ipc.call('page/screenshot', { sessionId, targetId, options });
82
- }
83
- /**
84
- * Evaluate JavaScript
85
- */
86
- async evaluate(sessionId, targetId, script) {
87
- return this.ipc.call('page/evaluate', { sessionId, targetId, script });
88
- }
89
- /**
90
- * Click at coordinates
91
- */
92
- async click(sessionId, targetId, x, y) {
93
- await this.ipc.call('page/click', { sessionId, targetId, x, y });
94
- }
95
- /**
96
- * Type text
97
- */
98
- async type(sessionId, targetId, text) {
99
- await this.ipc.call('page/type', { sessionId, targetId, text });
100
- }
101
- /**
102
- * Scroll
103
- */
104
- async scroll(sessionId, targetId, x, y, direction, amount) {
105
- await this.ipc.call('page/scroll', { sessionId, targetId, x, y, direction, amount });
106
- }
107
- /**
108
- * Execute CDP command
109
- */
110
- async executeCDP(sessionId, targetId, method, params) {
111
- return this.ipc.call('cdp/execute', { sessionId, targetId, method, params });
112
- }
113
- /**
114
- * Get accessibility tree
115
- */
116
- async getAccessibilityTree(sessionId, targetId) {
117
- return this.ipc.call('page/getAccessibilityTree', { sessionId, targetId });
118
- }
119
- /**
120
- * Set ref
121
- */
122
- async setRef(sessionId, targetId, refId, backendNodeId, nodeInfo) {
123
- await this.ipc.call('refs/set', { sessionId, targetId, refId, backendNodeId, nodeInfo });
124
- }
125
- /**
126
- * Get ref
127
- */
128
- async getRef(sessionId, targetId, refId) {
129
- return this.ipc.call('refs/get', { sessionId, targetId, refId });
130
- }
131
- /**
132
- * Clear refs
133
- */
134
- async clearRefs(sessionId, targetId) {
135
- await this.ipc.call('refs/clear', { sessionId, targetId });
136
- }
137
- /**
138
- * Get current session ID
139
- */
140
- getCurrentSessionId() {
141
- return this.currentSessionId;
142
- }
143
- /**
144
- * Set current session ID
145
- */
146
- setCurrentSessionId(sessionId) {
147
- this.currentSessionId = sessionId;
148
- }
149
- }
150
- exports.RemoteSessionManager = RemoteSessionManager;
151
- //# sourceMappingURL=remote-session-manager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"remote-session-manager.js","sourceRoot":"","sources":["../../src/worker/remote-session-manager.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- /**
2
- * Worker Tools - MCP tools that work with RemoteSessionManager
3
- */
4
- import { WorkerMCPServer } from './worker-mcp-server';
5
- export declare function setServerInstance(server: WorkerMCPServer): void;
6
- export declare function registerWorkerTools(server: WorkerMCPServer): void;
7
- //# sourceMappingURL=tools.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/worker/tools.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAOtD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,CAE/D;AAsVD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,CAajE"}
@@ -1,340 +0,0 @@
1
- "use strict";
2
- /**
3
- * Worker Tools - MCP tools that work with RemoteSessionManager
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.setServerInstance = setServerInstance;
7
- exports.registerWorkerTools = registerWorkerTools;
8
- // Get session manager from the server context
9
- let serverInstance = null;
10
- function setServerInstance(server) {
11
- serverInstance = server;
12
- }
13
- function getSessionManager() {
14
- if (!serverInstance) {
15
- throw new Error('Server instance not set');
16
- }
17
- return serverInstance.getSessionManager();
18
- }
19
- // ============= Navigate Tool =============
20
- const navigateDefinition = {
21
- name: 'navigate',
22
- description: 'Navigate to a URL, or go forward/back in browser history.',
23
- inputSchema: {
24
- type: 'object',
25
- properties: {
26
- tabId: { type: 'string', description: 'Tab ID to navigate' },
27
- url: { type: 'string', description: 'URL to navigate to, or "back"/"forward"' },
28
- },
29
- required: ['url', 'tabId'],
30
- },
31
- };
32
- const navigateHandler = async (sessionId, args) => {
33
- const tabId = args.tabId;
34
- const url = args.url;
35
- const sm = getSessionManager();
36
- try {
37
- if (url === 'back' || url === 'forward') {
38
- await sm.evaluate(sessionId, tabId, url === 'back' ? 'history.back()' : 'history.forward()');
39
- return { content: [{ type: 'text', text: `Navigated ${url}` }] };
40
- }
41
- let targetUrl = url;
42
- if (!targetUrl.startsWith('http://') && !targetUrl.startsWith('https://')) {
43
- targetUrl = 'https://' + targetUrl;
44
- }
45
- await sm.navigate(sessionId, tabId, targetUrl);
46
- return { content: [{ type: 'text', text: `Navigated to ${targetUrl}` }] };
47
- }
48
- catch (error) {
49
- return { content: [{ type: 'text', text: `Error: ${error.message}` }], isError: true };
50
- }
51
- };
52
- // ============= Tabs Context Tool =============
53
- const tabsContextDefinition = {
54
- name: 'tabs_context_mcp',
55
- description: 'Get context information about available tabs',
56
- inputSchema: {
57
- type: 'object',
58
- properties: {
59
- createIfEmpty: { type: 'boolean', description: 'Create a new tab if none exist' },
60
- },
61
- },
62
- };
63
- const tabsContextHandler = async (sessionId, args) => {
64
- const createIfEmpty = args.createIfEmpty;
65
- const sm = getSessionManager();
66
- try {
67
- let targets = await sm.listTargets(sessionId);
68
- if (targets.length === 0 && createIfEmpty) {
69
- const newTarget = await sm.createTarget(sessionId);
70
- targets = [newTarget];
71
- }
72
- return {
73
- content: [{
74
- type: 'text',
75
- text: JSON.stringify({
76
- sessionId,
77
- tabs: targets.map(t => ({ id: t.targetId, url: t.url, title: t.title })),
78
- }, null, 2),
79
- }],
80
- };
81
- }
82
- catch (error) {
83
- return { content: [{ type: 'text', text: `Error: ${error.message}` }], isError: true };
84
- }
85
- };
86
- // ============= Tabs Create Tool =============
87
- const tabsCreateDefinition = {
88
- name: 'tabs_create_mcp',
89
- description: 'Create a new tab',
90
- inputSchema: {
91
- type: 'object',
92
- properties: {
93
- url: { type: 'string', description: 'Optional URL to navigate to' },
94
- },
95
- },
96
- };
97
- const tabsCreateHandler = async (sessionId, args) => {
98
- const url = args.url;
99
- const sm = getSessionManager();
100
- try {
101
- const target = await sm.createTarget(sessionId, url);
102
- return {
103
- content: [{
104
- type: 'text',
105
- text: JSON.stringify({ id: target.targetId, url: target.url, title: target.title }, null, 2),
106
- }],
107
- };
108
- }
109
- catch (error) {
110
- return { content: [{ type: 'text', text: `Error: ${error.message}` }], isError: true };
111
- }
112
- };
113
- // ============= Computer Tool =============
114
- const computerDefinition = {
115
- name: 'computer',
116
- description: 'Screenshots, mouse/keyboard, scrolling',
117
- inputSchema: {
118
- type: 'object',
119
- properties: {
120
- tabId: { type: 'string', description: 'Tab ID' },
121
- action: {
122
- type: 'string',
123
- enum: ['screenshot', 'left_click', 'right_click', 'double_click', 'type', 'key', 'scroll', 'wait'],
124
- },
125
- coordinate: { type: 'array', items: { type: 'number' }, description: '[x, y] for click/scroll' },
126
- text: { type: 'string', description: 'Text to type or key to press' },
127
- scroll_direction: { type: 'string', enum: ['up', 'down', 'left', 'right'] },
128
- scroll_amount: { type: 'number', minimum: 1, maximum: 10 },
129
- duration: { type: 'number', minimum: 0, maximum: 30 },
130
- },
131
- required: ['tabId', 'action'],
132
- },
133
- };
134
- const computerHandler = async (sessionId, args) => {
135
- const tabId = args.tabId;
136
- const action = args.action;
137
- const sm = getSessionManager();
138
- try {
139
- switch (action) {
140
- case 'screenshot': {
141
- const base64 = await sm.screenshot(sessionId, tabId, { format: 'png' });
142
- return { content: [{ type: 'image', data: base64, mimeType: 'image/png' }] };
143
- }
144
- case 'left_click':
145
- case 'right_click':
146
- case 'double_click': {
147
- const coord = args.coordinate;
148
- if (!coord)
149
- return { content: [{ type: 'text', text: 'coordinate required' }], isError: true };
150
- await sm.click(sessionId, tabId, coord[0], coord[1]);
151
- return { content: [{ type: 'text', text: `Clicked at (${coord[0]}, ${coord[1]})` }] };
152
- }
153
- case 'type': {
154
- const text = args.text;
155
- if (!text)
156
- return { content: [{ type: 'text', text: 'text required' }], isError: true };
157
- await sm.type(sessionId, tabId, text);
158
- return { content: [{ type: 'text', text: `Typed: ${text}` }] };
159
- }
160
- case 'key': {
161
- const key = args.text;
162
- if (!key)
163
- return { content: [{ type: 'text', text: 'key required' }], isError: true };
164
- await sm.evaluate(sessionId, tabId, `
165
- document.dispatchEvent(new KeyboardEvent('keydown', { key: '${key}' }));
166
- document.dispatchEvent(new KeyboardEvent('keyup', { key: '${key}' }));
167
- `);
168
- return { content: [{ type: 'text', text: `Pressed: ${key}` }] };
169
- }
170
- case 'scroll': {
171
- const dir = args.scroll_direction;
172
- const amount = args.scroll_amount || 3;
173
- const coord = args.coordinate || [0, 0];
174
- await sm.scroll(sessionId, tabId, coord[0], coord[1], dir, amount);
175
- return { content: [{ type: 'text', text: `Scrolled ${dir} by ${amount}` }] };
176
- }
177
- case 'wait': {
178
- const duration = args.duration || 1;
179
- await new Promise(r => setTimeout(r, duration * 1000));
180
- return { content: [{ type: 'text', text: `Waited ${duration}s` }] };
181
- }
182
- default:
183
- return { content: [{ type: 'text', text: `Unknown action: ${action}` }], isError: true };
184
- }
185
- }
186
- catch (error) {
187
- return { content: [{ type: 'text', text: `Error: ${error.message}` }], isError: true };
188
- }
189
- };
190
- // ============= Read Page Tool =============
191
- const readPageDefinition = {
192
- name: 'read_page',
193
- description: 'Get accessibility tree of the page',
194
- inputSchema: {
195
- type: 'object',
196
- properties: {
197
- tabId: { type: 'string', description: 'Tab ID' },
198
- depth: { type: 'number', description: 'Max depth (default: 15)' },
199
- filter: { type: 'string', enum: ['interactive', 'all'] },
200
- },
201
- required: ['tabId'],
202
- },
203
- };
204
- const readPageHandler = async (sessionId, args) => {
205
- const tabId = args.tabId;
206
- const sm = getSessionManager();
207
- try {
208
- const tree = await sm.getAccessibilityTree(sessionId, tabId);
209
- // Simple formatting
210
- const text = JSON.stringify(tree, null, 2).slice(0, 50000);
211
- return { content: [{ type: 'text', text }] };
212
- }
213
- catch (error) {
214
- return { content: [{ type: 'text', text: `Error: ${error.message}` }], isError: true };
215
- }
216
- };
217
- // ============= Find Tool =============
218
- const findDefinition = {
219
- name: 'find',
220
- description: 'Find elements by natural language description',
221
- inputSchema: {
222
- type: 'object',
223
- properties: {
224
- tabId: { type: 'string', description: 'Tab ID' },
225
- query: { type: 'string', description: 'What to find' },
226
- },
227
- required: ['tabId', 'query'],
228
- },
229
- };
230
- const findHandler = async (sessionId, args) => {
231
- const tabId = args.tabId;
232
- const query = args.query;
233
- const sm = getSessionManager();
234
- try {
235
- // Use JavaScript to find elements
236
- const result = await sm.evaluate(sessionId, tabId, `
237
- (function() {
238
- const query = "${query.replace(/"/g, '\\"')}".toLowerCase();
239
- const matches = [];
240
- const walker = document.createTreeWalker(document.body, NodeFilter.SHOW_ELEMENT);
241
- let node;
242
- while ((node = walker.nextNode()) && matches.length < 20) {
243
- const text = (node.textContent || '').toLowerCase();
244
- const ariaLabel = (node.getAttribute('aria-label') || '').toLowerCase();
245
- const role = node.getAttribute('role') || node.tagName.toLowerCase();
246
- if (text.includes(query) || ariaLabel.includes(query) || role.includes(query)) {
247
- const rect = node.getBoundingClientRect();
248
- if (rect.width > 0 && rect.height > 0) {
249
- matches.push({
250
- tag: node.tagName,
251
- text: (node.textContent || '').slice(0, 50),
252
- x: Math.round(rect.x + rect.width/2),
253
- y: Math.round(rect.y + rect.height/2)
254
- });
255
- }
256
- }
257
- }
258
- return matches;
259
- })()
260
- `);
261
- return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] };
262
- }
263
- catch (error) {
264
- return { content: [{ type: 'text', text: `Error: ${error.message}` }], isError: true };
265
- }
266
- };
267
- // ============= Form Input Tool =============
268
- const formInputDefinition = {
269
- name: 'form_input',
270
- description: 'Set form values',
271
- inputSchema: {
272
- type: 'object',
273
- properties: {
274
- tabId: { type: 'string', description: 'Tab ID' },
275
- ref: { type: 'string', description: 'Element ref ID' },
276
- value: { type: 'string', description: 'Value to set' },
277
- },
278
- required: ['tabId', 'ref', 'value'],
279
- },
280
- };
281
- const formInputHandler = async (sessionId, args) => {
282
- const tabId = args.tabId;
283
- const value = args.value;
284
- const sm = getSessionManager();
285
- try {
286
- // For now, use a simple approach with focused element
287
- await sm.evaluate(sessionId, tabId, `
288
- const el = document.activeElement;
289
- if (el && (el.tagName === 'INPUT' || el.tagName === 'TEXTAREA')) {
290
- el.value = "${value.replace(/"/g, '\\"')}";
291
- el.dispatchEvent(new Event('input', { bubbles: true }));
292
- el.dispatchEvent(new Event('change', { bubbles: true }));
293
- }
294
- `);
295
- return { content: [{ type: 'text', text: `Set value: ${value}` }] };
296
- }
297
- catch (error) {
298
- return { content: [{ type: 'text', text: `Error: ${error.message}` }], isError: true };
299
- }
300
- };
301
- // ============= JavaScript Tool =============
302
- const javascriptDefinition = {
303
- name: 'javascript_tool',
304
- description: 'Execute JavaScript in page context',
305
- inputSchema: {
306
- type: 'object',
307
- properties: {
308
- tabId: { type: 'string', description: 'Tab ID' },
309
- text: { type: 'string', description: 'JavaScript code' },
310
- },
311
- required: ['tabId', 'text'],
312
- },
313
- };
314
- const javascriptHandler = async (sessionId, args) => {
315
- const tabId = args.tabId;
316
- const code = args.text;
317
- const sm = getSessionManager();
318
- try {
319
- const result = await sm.evaluate(sessionId, tabId, code);
320
- const output = result === undefined ? 'undefined' : JSON.stringify(result, null, 2);
321
- return { content: [{ type: 'text', text: output }] };
322
- }
323
- catch (error) {
324
- return { content: [{ type: 'text', text: `Error: ${error.message}` }], isError: true };
325
- }
326
- };
327
- // ============= Register All Tools =============
328
- function registerWorkerTools(server) {
329
- setServerInstance(server);
330
- server.registerTool('navigate', navigateHandler, navigateDefinition);
331
- server.registerTool('tabs_context_mcp', tabsContextHandler, tabsContextDefinition);
332
- server.registerTool('tabs_create_mcp', tabsCreateHandler, tabsCreateDefinition);
333
- server.registerTool('computer', computerHandler, computerDefinition);
334
- server.registerTool('read_page', readPageHandler, readPageDefinition);
335
- server.registerTool('find', findHandler, findDefinition);
336
- server.registerTool('form_input', formInputHandler, formInputDefinition);
337
- server.registerTool('javascript_tool', javascriptHandler, javascriptDefinition);
338
- console.error('[WorkerTools] Registered 8 tools');
339
- }
340
- //# sourceMappingURL=tools.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/worker/tools.ts"],"names":[],"mappings":"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"}