@mseep/clawdcursor 1.5.5

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 (354) hide show
  1. package/CHANGELOG.md +2264 -0
  2. package/LICENSE +21 -0
  3. package/README.md +385 -0
  4. package/SECURITY.md +44 -0
  5. package/SKILL.md +503 -0
  6. package/dist/core/agent-loop/agent.d.ts +42 -0
  7. package/dist/core/agent-loop/agent.js +1023 -0
  8. package/dist/core/agent-loop/agent.js.map +1 -0
  9. package/dist/core/agent-loop/batch-tool.d.ts +25 -0
  10. package/dist/core/agent-loop/batch-tool.js +218 -0
  11. package/dist/core/agent-loop/batch-tool.js.map +1 -0
  12. package/dist/core/agent-loop/coord-scale.d.ts +72 -0
  13. package/dist/core/agent-loop/coord-scale.js +89 -0
  14. package/dist/core/agent-loop/coord-scale.js.map +1 -0
  15. package/dist/core/agent-loop/focus-guard.d.ts +24 -0
  16. package/dist/core/agent-loop/focus-guard.js +29 -0
  17. package/dist/core/agent-loop/focus-guard.js.map +1 -0
  18. package/dist/core/agent-loop/project-mcp.d.ts +97 -0
  19. package/dist/core/agent-loop/project-mcp.js +253 -0
  20. package/dist/core/agent-loop/project-mcp.js.map +1 -0
  21. package/dist/core/agent-loop/prompt.d.ts +45 -0
  22. package/dist/core/agent-loop/prompt.js +426 -0
  23. package/dist/core/agent-loop/prompt.js.map +1 -0
  24. package/dist/core/agent-loop/tool-meta.d.ts +93 -0
  25. package/dist/core/agent-loop/tool-meta.js +651 -0
  26. package/dist/core/agent-loop/tool-meta.js.map +1 -0
  27. package/dist/core/agent-loop/tools.d.ts +38 -0
  28. package/dist/core/agent-loop/tools.js +2134 -0
  29. package/dist/core/agent-loop/tools.js.map +1 -0
  30. package/dist/core/agent-loop/types.d.ts +170 -0
  31. package/dist/core/agent-loop/types.js +12 -0
  32. package/dist/core/agent-loop/types.js.map +1 -0
  33. package/dist/core/agent.d.ts +51 -0
  34. package/dist/core/agent.js +245 -0
  35. package/dist/core/agent.js.map +1 -0
  36. package/dist/core/app-categories.d.ts +67 -0
  37. package/dist/core/app-categories.js +108 -0
  38. package/dist/core/app-categories.js.map +1 -0
  39. package/dist/core/banner.d.ts +70 -0
  40. package/dist/core/banner.js +245 -0
  41. package/dist/core/banner.js.map +1 -0
  42. package/dist/core/classify/capability.d.ts +45 -0
  43. package/dist/core/classify/capability.js +78 -0
  44. package/dist/core/classify/capability.js.map +1 -0
  45. package/dist/core/decompose/llm-decomposer.d.ts +35 -0
  46. package/dist/core/decompose/llm-decomposer.js +156 -0
  47. package/dist/core/decompose/llm-decomposer.js.map +1 -0
  48. package/dist/core/decompose/parser.d.ts +27 -0
  49. package/dist/core/decompose/parser.js +101 -0
  50. package/dist/core/decompose/parser.js.map +1 -0
  51. package/dist/core/observability/correlation.d.ts +19 -0
  52. package/dist/core/observability/correlation.js +36 -0
  53. package/dist/core/observability/correlation.js.map +1 -0
  54. package/dist/core/observability/cost-meter.d.ts +51 -0
  55. package/dist/core/observability/cost-meter.js +134 -0
  56. package/dist/core/observability/cost-meter.js.map +1 -0
  57. package/dist/core/observability/logger.d.ts +61 -0
  58. package/dist/core/observability/logger.js +550 -0
  59. package/dist/core/observability/logger.js.map +1 -0
  60. package/dist/core/router/aliases.d.ts +50 -0
  61. package/dist/core/router/aliases.js +104 -0
  62. package/dist/core/router/aliases.js.map +1 -0
  63. package/dist/core/router/normalize.d.ts +41 -0
  64. package/dist/core/router/normalize.js +80 -0
  65. package/dist/core/router/normalize.js.map +1 -0
  66. package/dist/core/safety.d.ts +126 -0
  67. package/dist/core/safety.js +568 -0
  68. package/dist/core/safety.js.map +1 -0
  69. package/dist/core/sense/a11y-resolver.d.ts +73 -0
  70. package/dist/core/sense/a11y-resolver.js +76 -0
  71. package/dist/core/sense/a11y-resolver.js.map +1 -0
  72. package/dist/core/sense/fingerprint.d.ts +41 -0
  73. package/dist/core/sense/fingerprint.js +123 -0
  74. package/dist/core/sense/fingerprint.js.map +1 -0
  75. package/dist/core/sense/rank.d.ts +70 -0
  76. package/dist/core/sense/rank.js +192 -0
  77. package/dist/core/sense/rank.js.map +1 -0
  78. package/dist/core/sense/reactive-check.d.ts +40 -0
  79. package/dist/core/sense/reactive-check.js +48 -0
  80. package/dist/core/sense/reactive-check.js.map +1 -0
  81. package/dist/core/sense/snapshot.d.ts +19 -0
  82. package/dist/core/sense/snapshot.js +100 -0
  83. package/dist/core/sense/snapshot.js.map +1 -0
  84. package/dist/core/sense/types.d.ts +66 -0
  85. package/dist/core/sense/types.js +9 -0
  86. package/dist/core/sense/types.js.map +1 -0
  87. package/dist/core/sense/ui-map-anchors.d.ts +7 -0
  88. package/dist/core/sense/ui-map-anchors.js +24 -0
  89. package/dist/core/sense/ui-map-anchors.js.map +1 -0
  90. package/dist/core/sense/ui-map-elements.d.ts +5 -0
  91. package/dist/core/sense/ui-map-elements.js +33 -0
  92. package/dist/core/sense/ui-map-elements.js.map +1 -0
  93. package/dist/core/sense/ui-map-find.d.ts +56 -0
  94. package/dist/core/sense/ui-map-find.js +153 -0
  95. package/dist/core/sense/ui-map-find.js.map +1 -0
  96. package/dist/core/sense/ui-map-fuse.d.ts +4 -0
  97. package/dist/core/sense/ui-map-fuse.js +44 -0
  98. package/dist/core/sense/ui-map-fuse.js.map +1 -0
  99. package/dist/core/sense/ui-map-geom.d.ts +3 -0
  100. package/dist/core/sense/ui-map-geom.js +16 -0
  101. package/dist/core/sense/ui-map-geom.js.map +1 -0
  102. package/dist/core/sense/ui-map-holder.d.ts +58 -0
  103. package/dist/core/sense/ui-map-holder.js +87 -0
  104. package/dist/core/sense/ui-map-holder.js.map +1 -0
  105. package/dist/core/sense/ui-map-normalize.d.ts +19 -0
  106. package/dist/core/sense/ui-map-normalize.js +65 -0
  107. package/dist/core/sense/ui-map-normalize.js.map +1 -0
  108. package/dist/core/sense/ui-map-render.d.ts +4 -0
  109. package/dist/core/sense/ui-map-render.js +34 -0
  110. package/dist/core/sense/ui-map-render.js.map +1 -0
  111. package/dist/core/sense/ui-map-resolve.d.ts +41 -0
  112. package/dist/core/sense/ui-map-resolve.js +59 -0
  113. package/dist/core/sense/ui-map-resolve.js.map +1 -0
  114. package/dist/core/sense/ui-map-types.d.ts +66 -0
  115. package/dist/core/sense/ui-map-types.js +11 -0
  116. package/dist/core/sense/ui-map-types.js.map +1 -0
  117. package/dist/core/sense/ui-map.d.ts +29 -0
  118. package/dist/core/sense/ui-map.js +113 -0
  119. package/dist/core/sense/ui-map.js.map +1 -0
  120. package/dist/core/verify/assertions.d.ts +132 -0
  121. package/dist/core/verify/assertions.js +284 -0
  122. package/dist/core/verify/assertions.js.map +1 -0
  123. package/dist/index.d.ts +21 -0
  124. package/dist/index.js +24 -0
  125. package/dist/index.js.map +1 -0
  126. package/dist/llm/browser-config.d.ts +36 -0
  127. package/dist/llm/browser-config.js +83 -0
  128. package/dist/llm/browser-config.js.map +1 -0
  129. package/dist/llm/client.d.ts +268 -0
  130. package/dist/llm/client.js +1094 -0
  131. package/dist/llm/client.js.map +1 -0
  132. package/dist/llm/config.d.ts +79 -0
  133. package/dist/llm/config.js +375 -0
  134. package/dist/llm/config.js.map +1 -0
  135. package/dist/llm/credentials.d.ts +35 -0
  136. package/dist/llm/credentials.js +491 -0
  137. package/dist/llm/credentials.js.map +1 -0
  138. package/dist/llm/external-creds.d.ts +42 -0
  139. package/dist/llm/external-creds.js +169 -0
  140. package/dist/llm/external-creds.js.map +1 -0
  141. package/dist/llm/providers.d.ts +123 -0
  142. package/dist/llm/providers.js +717 -0
  143. package/dist/llm/providers.js.map +1 -0
  144. package/dist/paths.d.ts +31 -0
  145. package/dist/paths.js +147 -0
  146. package/dist/paths.js.map +1 -0
  147. package/dist/platform/accessibility.d.ts +139 -0
  148. package/dist/platform/accessibility.js +670 -0
  149. package/dist/platform/accessibility.js.map +1 -0
  150. package/dist/platform/cdp-driver.d.ts +318 -0
  151. package/dist/platform/cdp-driver.js +1179 -0
  152. package/dist/platform/cdp-driver.js.map +1 -0
  153. package/dist/platform/index.d.ts +11 -0
  154. package/dist/platform/index.js +69 -0
  155. package/dist/platform/index.js.map +1 -0
  156. package/dist/platform/keys.d.ts +17 -0
  157. package/dist/platform/keys.js +129 -0
  158. package/dist/platform/keys.js.map +1 -0
  159. package/dist/platform/launch-poll.d.ts +101 -0
  160. package/dist/platform/launch-poll.js +177 -0
  161. package/dist/platform/launch-poll.js.map +1 -0
  162. package/dist/platform/linux.d.ts +173 -0
  163. package/dist/platform/linux.js +1253 -0
  164. package/dist/platform/linux.js.map +1 -0
  165. package/dist/platform/macos.d.ts +136 -0
  166. package/dist/platform/macos.js +976 -0
  167. package/dist/platform/macos.js.map +1 -0
  168. package/dist/platform/native-desktop.d.ts +145 -0
  169. package/dist/platform/native-desktop.js +936 -0
  170. package/dist/platform/native-desktop.js.map +1 -0
  171. package/dist/platform/native-helper.d.ts +130 -0
  172. package/dist/platform/native-helper.js +592 -0
  173. package/dist/platform/native-helper.js.map +1 -0
  174. package/dist/platform/ocr-engine.d.ts +78 -0
  175. package/dist/platform/ocr-engine.js +363 -0
  176. package/dist/platform/ocr-engine.js.map +1 -0
  177. package/dist/platform/ps-runner.d.ts +28 -0
  178. package/dist/platform/ps-runner.js +228 -0
  179. package/dist/platform/ps-runner.js.map +1 -0
  180. package/dist/platform/types.d.ts +397 -0
  181. package/dist/platform/types.js +15 -0
  182. package/dist/platform/types.js.map +1 -0
  183. package/dist/platform/uri-handler.d.ts +75 -0
  184. package/dist/platform/uri-handler.js +273 -0
  185. package/dist/platform/uri-handler.js.map +1 -0
  186. package/dist/platform/wayland-backend.d.ts +53 -0
  187. package/dist/platform/wayland-backend.js +348 -0
  188. package/dist/platform/wayland-backend.js.map +1 -0
  189. package/dist/platform/windows.d.ts +232 -0
  190. package/dist/platform/windows.js +1210 -0
  191. package/dist/platform/windows.js.map +1 -0
  192. package/dist/postbuild.d.ts +10 -0
  193. package/dist/postbuild.js +98 -0
  194. package/dist/postbuild.js.map +1 -0
  195. package/dist/schema/snapshot.d.ts +33 -0
  196. package/dist/schema/snapshot.js +90 -0
  197. package/dist/schema/snapshot.js.map +1 -0
  198. package/dist/shortcuts.d.ts +30 -0
  199. package/dist/shortcuts.js +261 -0
  200. package/dist/shortcuts.js.map +1 -0
  201. package/dist/surface/cli.d.ts +7 -0
  202. package/dist/surface/cli.js +1556 -0
  203. package/dist/surface/cli.js.map +1 -0
  204. package/dist/surface/dashboard.d.ts +8 -0
  205. package/dist/surface/dashboard.js +1193 -0
  206. package/dist/surface/dashboard.js.map +1 -0
  207. package/dist/surface/doctor.d.ts +29 -0
  208. package/dist/surface/doctor.js +1514 -0
  209. package/dist/surface/doctor.js.map +1 -0
  210. package/dist/surface/format.d.ts +10 -0
  211. package/dist/surface/format.js +37 -0
  212. package/dist/surface/format.js.map +1 -0
  213. package/dist/surface/http-utility.d.ts +65 -0
  214. package/dist/surface/http-utility.js +336 -0
  215. package/dist/surface/http-utility.js.map +1 -0
  216. package/dist/surface/mcp-server.d.ts +91 -0
  217. package/dist/surface/mcp-server.js +280 -0
  218. package/dist/surface/mcp-server.js.map +1 -0
  219. package/dist/surface/onboarding.d.ts +15 -0
  220. package/dist/surface/onboarding.js +184 -0
  221. package/dist/surface/onboarding.js.map +1 -0
  222. package/dist/surface/pidfile.d.ts +79 -0
  223. package/dist/surface/pidfile.js +263 -0
  224. package/dist/surface/pidfile.js.map +1 -0
  225. package/dist/surface/readiness.d.ts +45 -0
  226. package/dist/surface/readiness.js +230 -0
  227. package/dist/surface/readiness.js.map +1 -0
  228. package/dist/surface/report.d.ts +68 -0
  229. package/dist/surface/report.js +341 -0
  230. package/dist/surface/report.js.map +1 -0
  231. package/dist/surface/skill-register.d.ts +14 -0
  232. package/dist/surface/skill-register.js +150 -0
  233. package/dist/surface/skill-register.js.map +1 -0
  234. package/dist/surface/version.d.ts +6 -0
  235. package/dist/surface/version.js +27 -0
  236. package/dist/surface/version.js.map +1 -0
  237. package/dist/tools/a11y.d.ts +8 -0
  238. package/dist/tools/a11y.js +545 -0
  239. package/dist/tools/a11y.js.map +1 -0
  240. package/dist/tools/a11y_depth.d.ts +19 -0
  241. package/dist/tools/a11y_depth.js +455 -0
  242. package/dist/tools/a11y_depth.js.map +1 -0
  243. package/dist/tools/agent.d.ts +15 -0
  244. package/dist/tools/agent.js +248 -0
  245. package/dist/tools/agent.js.map +1 -0
  246. package/dist/tools/batch.d.ts +46 -0
  247. package/dist/tools/batch.js +230 -0
  248. package/dist/tools/batch.js.map +1 -0
  249. package/dist/tools/cdp.d.ts +8 -0
  250. package/dist/tools/cdp.js +233 -0
  251. package/dist/tools/cdp.js.map +1 -0
  252. package/dist/tools/compact.d.ts +63 -0
  253. package/dist/tools/compact.js +418 -0
  254. package/dist/tools/compact.js.map +1 -0
  255. package/dist/tools/cost-class.d.ts +38 -0
  256. package/dist/tools/cost-class.js +117 -0
  257. package/dist/tools/cost-class.js.map +1 -0
  258. package/dist/tools/desktop.d.ts +9 -0
  259. package/dist/tools/desktop.js +346 -0
  260. package/dist/tools/desktop.js.map +1 -0
  261. package/dist/tools/electron_bridge.d.ts +41 -0
  262. package/dist/tools/electron_bridge.js +261 -0
  263. package/dist/tools/electron_bridge.js.map +1 -0
  264. package/dist/tools/extras.d.ts +22 -0
  265. package/dist/tools/extras.js +942 -0
  266. package/dist/tools/extras.js.map +1 -0
  267. package/dist/tools/favorites.d.ts +13 -0
  268. package/dist/tools/favorites.js +137 -0
  269. package/dist/tools/favorites.js.map +1 -0
  270. package/dist/tools/introspection.d.ts +13 -0
  271. package/dist/tools/introspection.js +55 -0
  272. package/dist/tools/introspection.js.map +1 -0
  273. package/dist/tools/ocr.d.ts +8 -0
  274. package/dist/tools/ocr.js +66 -0
  275. package/dist/tools/ocr.js.map +1 -0
  276. package/dist/tools/orchestration.d.ts +7 -0
  277. package/dist/tools/orchestration.js +377 -0
  278. package/dist/tools/orchestration.js.map +1 -0
  279. package/dist/tools/playbooks/extract-compose.d.ts +22 -0
  280. package/dist/tools/playbooks/extract-compose.js +85 -0
  281. package/dist/tools/playbooks/extract-compose.js.map +1 -0
  282. package/dist/tools/playbooks/find-replace.d.ts +11 -0
  283. package/dist/tools/playbooks/find-replace.js +56 -0
  284. package/dist/tools/playbooks/find-replace.js.map +1 -0
  285. package/dist/tools/playbooks/index.d.ts +63 -0
  286. package/dist/tools/playbooks/index.js +70 -0
  287. package/dist/tools/playbooks/index.js.map +1 -0
  288. package/dist/tools/playbooks/keys-blocklist.d.ts +24 -0
  289. package/dist/tools/playbooks/keys-blocklist.js +89 -0
  290. package/dist/tools/playbooks/keys-blocklist.js.map +1 -0
  291. package/dist/tools/registry.d.ts +40 -0
  292. package/dist/tools/registry.js +560 -0
  293. package/dist/tools/registry.js.map +1 -0
  294. package/dist/tools/safety-gate.d.ts +16 -0
  295. package/dist/tools/safety-gate.js +70 -0
  296. package/dist/tools/safety-gate.js.map +1 -0
  297. package/dist/tools/scheduler.d.ts +76 -0
  298. package/dist/tools/scheduler.js +413 -0
  299. package/dist/tools/scheduler.js.map +1 -0
  300. package/dist/tools/shortcuts.d.ts +13 -0
  301. package/dist/tools/shortcuts.js +205 -0
  302. package/dist/tools/shortcuts.js.map +1 -0
  303. package/dist/tools/smart.d.ts +15 -0
  304. package/dist/tools/smart.js +785 -0
  305. package/dist/tools/smart.js.map +1 -0
  306. package/dist/tools/types.d.ts +174 -0
  307. package/dist/tools/types.js +67 -0
  308. package/dist/tools/types.js.map +1 -0
  309. package/dist/tools/window-text.d.ts +15 -0
  310. package/dist/tools/window-text.js +39 -0
  311. package/dist/tools/window-text.js.map +1 -0
  312. package/dist/types.d.ts +122 -0
  313. package/dist/types.js +41 -0
  314. package/dist/types.js.map +1 -0
  315. package/native/Package.swift +38 -0
  316. package/native/README.md +113 -0
  317. package/native/Sources/ClawdCursorHelper/main.swift +602 -0
  318. package/native/Sources/ClawdCursorHost/main.swift +182 -0
  319. package/native/Sources/PermissionCheck/main.swift +53 -0
  320. package/native/Sources/ScreenshotHelper/main.swift +219 -0
  321. package/native/build.sh +139 -0
  322. package/native/entitlements.plist +12 -0
  323. package/package.json +115 -0
  324. package/scripts/banner.ps1 +112 -0
  325. package/scripts/coord-accuracy.ps1 +140 -0
  326. package/scripts/coord-uwp.ps1 +80 -0
  327. package/scripts/edge-glow.ps1 +180 -0
  328. package/scripts/find-element.ps1 +198 -0
  329. package/scripts/get-foreground-window.ps1 +71 -0
  330. package/scripts/get-screen-context.ps1 +183 -0
  331. package/scripts/get-windows.ps1 +66 -0
  332. package/scripts/install-panic-hotkey.ps1 +46 -0
  333. package/scripts/interact-element.ps1 +431 -0
  334. package/scripts/invoke-element.ps1 +314 -0
  335. package/scripts/linux/atspi-bridge.py +356 -0
  336. package/scripts/linux/ocr-recognize.py +154 -0
  337. package/scripts/mac/_window-picker.jxa +163 -0
  338. package/scripts/mac/find-element.jxa +0 -0
  339. package/scripts/mac/find-element.sh +161 -0
  340. package/scripts/mac/focus-window.jxa +284 -0
  341. package/scripts/mac/get-focused-element.jxa +102 -0
  342. package/scripts/mac/get-foreground-window.jxa +173 -0
  343. package/scripts/mac/get-screen-context.jxa +197 -0
  344. package/scripts/mac/get-ui-tree.sh +141 -0
  345. package/scripts/mac/get-windows.jxa +117 -0
  346. package/scripts/mac/interact-element.sh +235 -0
  347. package/scripts/mac/invoke-element.jxa +408 -0
  348. package/scripts/mac/ocr-recognize.swift +124 -0
  349. package/scripts/ocr-recognize.ps1 +102 -0
  350. package/scripts/postinstall-native.js +48 -0
  351. package/scripts/ps-bridge.ps1 +830 -0
  352. package/scripts/smoke-mcp.ps1 +119 -0
  353. package/scripts/sync-version.ts +178 -0
  354. package/scripts/verify-install.js +81 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accessibility.js","sourceRoot":"","sources":["../../src/platform/accessibility.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,318 @@
1
+ /**
2
+ * CDPDriver — Chrome DevTools Protocol driver for browser DOM interaction.
3
+ *
4
+ * This solves the "Gmail compose problem" and similar web-app challenges:
5
+ * Windows UI Automation sees browser content as a monolithic "Document" or
6
+ * "Pane" element — it can't reach individual DOM elements like input fields,
7
+ * buttons, or content-editable divs inside web pages.
8
+ *
9
+ * CDPDriver connects to Chrome/Edge via the DevTools Protocol and provides:
10
+ * - DOM element queries by CSS selector, XPath, ARIA role, text content
11
+ * - Click, type, focus, select on DOM elements
12
+ * - Form filling by label text (finds the input associated with a label)
13
+ * - Page state queries (URL, title, ready state)
14
+ * - Script evaluation for custom interactions
15
+ *
16
+ * Architecture:
17
+ * ┌─────────────────────────────┐
18
+ * │ UIDriver (native UI) │ ← Windows UI Automation
19
+ * ├─────────────────────────────┤
20
+ * │ CDPDriver (browser DOM) │ ← This module (CDP)
21
+ * ├─────────────────────────────┤
22
+ * │ Browser tools (CDP) │ ← Pipeline browser MCP surface
23
+ * └─────────────────────────────┘
24
+ *
25
+ * Connection:
26
+ * Edge/Chrome must be launched with --remote-debugging-port=9223
27
+ * Or connect to an existing Playwright-managed browser's CDP endpoint.
28
+ *
29
+ * Usage:
30
+ * const cdp = new CDPDriver();
31
+ * await cdp.connect(); // connects to Edge/Chrome on port 9223
32
+ *
33
+ * // Click a button by text
34
+ * await cdp.clickByText('Compose');
35
+ *
36
+ * // Type into a Gmail field
37
+ * await cdp.typeInField('[aria-label="To"]', 'user@example.com');
38
+ *
39
+ * // Fill a form by label
40
+ * await cdp.fillFormByLabels({ 'Subject': 'Hello', 'To': 'user@example.com' });
41
+ *
42
+ * // Query elements
43
+ * const results = await cdp.querySelectorAll('button');
44
+ */
45
+ import { type Page } from 'playwright';
46
+ /** Information about a DOM element */
47
+ export interface DOMElementInfo {
48
+ /** CSS selector that uniquely identifies this element */
49
+ selector: string;
50
+ /** Tag name (e.g. 'button', 'input', 'div') */
51
+ tagName: string;
52
+ /** Inner text content (truncated) */
53
+ text: string;
54
+ /** Element's id attribute */
55
+ id: string;
56
+ /** Element's class attribute */
57
+ className: string;
58
+ /** ARIA role */
59
+ role: string;
60
+ /** ARIA label */
61
+ ariaLabel: string;
62
+ /** Input type (for input elements) */
63
+ type: string;
64
+ /** Placeholder text */
65
+ placeholder: string;
66
+ /** Element's name attribute */
67
+ name: string;
68
+ /** Bounding rect in viewport coordinates */
69
+ bounds: {
70
+ x: number;
71
+ y: number;
72
+ width: number;
73
+ height: number;
74
+ };
75
+ /** Whether the element is visible */
76
+ isVisible: boolean;
77
+ /** Whether the element is enabled (not disabled) */
78
+ isEnabled: boolean;
79
+ }
80
+ /** Result of a CDP interaction */
81
+ export interface CDPInteractionResult {
82
+ success: boolean;
83
+ method?: string;
84
+ value?: string;
85
+ error?: string;
86
+ /** Number of elements matched (for queries) */
87
+ matchCount?: number;
88
+ }
89
+ /**
90
+ * CDPDriver — interact with web page DOM elements via Chrome DevTools Protocol.
91
+ *
92
+ * Uses Playwright's CDP connection under the hood, so it works with any
93
+ * Chromium-based browser launched with --remote-debugging-port. You can
94
+ * also share a Page object directly.
95
+ */
96
+ export declare class CDPDriver {
97
+ private browser;
98
+ private activePage;
99
+ private connected;
100
+ private cdpPort;
101
+ private ownsBrowser;
102
+ private cursorInjected;
103
+ private connectionMode;
104
+ private agentTab;
105
+ /** How the live connection was established (see connectionMode). */
106
+ getConnectionMode(): 'dedicated' | 'attached' | 'unknown';
107
+ /**
108
+ * @param cdpPort CDP debugging port (default 9223)
109
+ */
110
+ constructor(cdpPort?: number);
111
+ /**
112
+ * Connect to an existing Chrome/Edge instance via CDP.
113
+ *
114
+ * The browser must be launched with:
115
+ * msedge.exe --remote-debugging-port=9223
116
+ * chrome.exe --remote-debugging-port=9223
117
+ *
118
+ * @param port Override the port for this attempt (defaults to the
119
+ * constructor port). Ownership is encoded in the port: AGENT_CDP_PORT is
120
+ * only ever used by our own dedicated-profile launcher, so connecting
121
+ * there means 'dedicated'; any other port means we attached to a browser
122
+ * someone else put on the wire → 'attached'.
123
+ * @returns true if connected successfully
124
+ */
125
+ connect(port?: number): Promise<boolean>;
126
+ /**
127
+ * Ensure a CDP connection exists WITHOUT disturbing the user's own browser.
128
+ *
129
+ * Ownership is encoded in the PORT (root-cause fix 2026-06-11 — a single
130
+ * shared port meant the driver could not tell its own dedicated instance
131
+ * from the user's browser, and a lingering agent instance the user had
132
+ * adopted got its tabs hijacked):
133
+ *
134
+ * 1. Already connected → done.
135
+ * 2. Attach on AGENT_CDP_PORT — only our own dedicated-profile launcher
136
+ * ever uses that port, so this is OUR instance → 'dedicated'.
137
+ * 3. Attach on the user port (constructor port, default 9223) — a browser
138
+ * the USER put on the wire (their own flags, relaunch_with_cdp, the
139
+ * relay) → 'attached'; navigation gets new-tab discipline.
140
+ * 4. If `launch` is allowed, spawn the SYSTEM browser on AGENT_CDP_PORT
141
+ * with a dedicated `--user-data-dir`. Chromium keys its single-instance
142
+ * lock on the profile directory, so this starts a SEPARATE process that
143
+ * never closes, reuses, or steals focus from the user's windows. The
144
+ * blank tab is labeled "ClawdCursor — agent browser" so the window is
145
+ * recognizable and doesn't get silently adopted as a personal browser.
146
+ *
147
+ * @param opts.launch Allow launching a dedicated instance (default false → attach-only).
148
+ * @param opts.exePaths Candidate browser executables, in priority order.
149
+ */
150
+ ensureConnected(opts?: {
151
+ launch?: boolean;
152
+ exePaths?: string[];
153
+ }): Promise<boolean>;
154
+ /**
155
+ * Stamp the dedicated instance's blank tab so the WINDOW is identifiable in
156
+ * the taskbar / Alt-Tab as the agent's, not a second personal browser. The
157
+ * 2026-06-11 incident started exactly this way: an unlabeled agent instance
158
+ * lingered, the user adopted it for music, and a later attach drove their tab.
159
+ */
160
+ private labelAgentBrowser;
161
+ /** Navigate the active page to a URL (waits for DOM content to load). */
162
+ navigate(url: string): Promise<CDPInteractionResult>;
163
+ /**
164
+ * Attach to an existing Playwright Page object.
165
+ * Use this when an outer caller already holds a CDP connection — avoid duplicate CDP connections.
166
+ */
167
+ attachToPage(page: Page): void;
168
+ /**
169
+ * Switch to a tab whose URL contains the given substring.
170
+ * Useful after navigation when the agent needs to find a specific page.
171
+ */
172
+ switchToTabByUrl(urlSubstring: string): Promise<boolean>;
173
+ /** Check if we're connected and the page is still alive */
174
+ isConnected(): Promise<boolean>;
175
+ /**
176
+ * Switch to a different tab by URL substring or title substring.
177
+ */
178
+ switchTab(urlOrTitleSubstring: string): Promise<boolean>;
179
+ /**
180
+ * Query elements by CSS selector.
181
+ * Returns info about all matching elements.
182
+ */
183
+ querySelectorAll(selector: string, maxResults?: number): Promise<DOMElementInfo[]>;
184
+ /**
185
+ * Find a single element by CSS selector.
186
+ */
187
+ querySelector(selector: string): Promise<DOMElementInfo | null>;
188
+ /**
189
+ * Find elements by their visible text content.
190
+ * Useful for clicking buttons like "Compose", "Send", "Save Draft".
191
+ *
192
+ * @param text Text to search for (case-insensitive, partial match)
193
+ * @param tagFilter Optional tag name filter (e.g., 'button', 'a', 'div')
194
+ */
195
+ findByText(text: string, tagFilter?: string): Promise<DOMElementInfo[]>;
196
+ /**
197
+ * Find form fields by their associated label text.
198
+ * Handles both <label for="..."> and label wrapping the input.
199
+ */
200
+ findFieldByLabel(labelText: string): Promise<DOMElementInfo | null>;
201
+ /**
202
+ * Click an element by CSS selector.
203
+ * Uses JS dispatchEvent (reliable on background CDP tabs with 0x0 viewport).
204
+ * Falls back to Playwright click if JS dispatch doesn't work.
205
+ */
206
+ click(selector: string): Promise<CDPInteractionResult>;
207
+ /**
208
+ * Click an element by its visible text content.
209
+ *
210
+ * This is the most natural way to interact with web UIs:
211
+ * await cdp.clickByText('Compose');
212
+ * await cdp.clickByText('Send');
213
+ * await cdp.clickByText('Discard');
214
+ */
215
+ clickByText(text: string): Promise<CDPInteractionResult>;
216
+ /**
217
+ * Type text into a field identified by CSS selector.
218
+ *
219
+ * Clears the field first (select all + delete), then types.
220
+ * For content-editable divs (like Gmail compose body), uses fill() which
221
+ * works better than type() for non-input elements.
222
+ */
223
+ typeInField(selector: string, text: string): Promise<CDPInteractionResult>;
224
+ /**
225
+ * Type into a field found by its label or aria-label.
226
+ *
227
+ * This is the most user-friendly way to fill forms:
228
+ * await cdp.typeByLabel('To', 'user@example.com');
229
+ * await cdp.typeByLabel('Subject', 'Meeting notes');
230
+ */
231
+ typeByLabel(label: string, text: string): Promise<CDPInteractionResult>;
232
+ /**
233
+ * Fill a form by mapping label text → value.
234
+ *
235
+ * Example (Gmail compose):
236
+ * await cdp.fillFormByLabels({
237
+ * 'To': 'friend@gmail.com',
238
+ * 'Subject': 'Hello!',
239
+ * 'Message Body': 'How are you doing?'
240
+ * });
241
+ */
242
+ fillFormByLabels(fields: Record<string, string>): Promise<{
243
+ success: boolean;
244
+ results: Record<string, CDPInteractionResult>;
245
+ }>;
246
+ /**
247
+ * Focus an element by CSS selector.
248
+ */
249
+ focus(selector: string): Promise<CDPInteractionResult>;
250
+ /**
251
+ * Select an option in a <select> dropdown.
252
+ *
253
+ * @param selector CSS selector for the <select> element
254
+ * @param valueOrLabel Option value or visible text to select
255
+ */
256
+ selectOption(selector: string, valueOrLabel: string): Promise<CDPInteractionResult>;
257
+ /**
258
+ * Press a keyboard key (while the page has focus).
259
+ */
260
+ pressKey(key: string): Promise<CDPInteractionResult>;
261
+ /** Get current page URL */
262
+ getUrl(): Promise<string | null>;
263
+ /** Get current page title */
264
+ getTitle(): Promise<string | null>;
265
+ /**
266
+ * Get a text summary of the visible, interactive elements on the page.
267
+ * Useful for building context for an LLM without screenshots.
268
+ */
269
+ getInteractiveElements(): Promise<DOMElementInfo[]>;
270
+ /**
271
+ * Get a text representation of the page's interactive elements.
272
+ * Formatted for LLM consumption — compact, informative.
273
+ */
274
+ getPageContext(): Promise<string>;
275
+ /**
276
+ * Read text content from a DOM element (safe, parameterized — no CSS injection risk).
277
+ * @param selector CSS selector for the target element (default: 'body')
278
+ * @param maxLength Maximum characters to return (default: 3000)
279
+ */
280
+ readText(selector?: string, maxLength?: number): Promise<string>;
281
+ /**
282
+ * Read the current value of a form field (safe, parameterized — no CSS injection risk).
283
+ * @param selector CSS selector for the input/textarea element
284
+ */
285
+ readFieldValue(selector: string): Promise<string>;
286
+ /**
287
+ * Evaluate arbitrary JavaScript in the page context.
288
+ * Use this for custom interactions not covered by the standard methods.
289
+ *
290
+ * @param script JavaScript code to evaluate
291
+ * @returns The return value of the script, serialized
292
+ */
293
+ evaluate<T = any>(script: string): Promise<T>;
294
+ /**
295
+ * Wait for a selector to appear on the page.
296
+ */
297
+ waitForSelector(selector: string, timeoutMs?: number): Promise<CDPInteractionResult>;
298
+ /**
299
+ * Wait for navigation to complete (e.g., after clicking a link).
300
+ */
301
+ waitForNavigation(timeoutMs?: number): Promise<CDPInteractionResult>;
302
+ /**
303
+ * Disconnect from the browser.
304
+ * Only closes the CDP connection if we own it — doesn't close the user's browser.
305
+ */
306
+ disconnect(): Promise<void>;
307
+ /** Get the underlying Playwright Page (for advanced usage) */
308
+ getPage(): Page | null;
309
+ /** Ensure a virtual cursor overlay exists in the page */
310
+ private ensureCursorOverlay;
311
+ private moveVirtualCursor;
312
+ private moveCursorToSelector;
313
+ /**
314
+ * Guard: ensure we have an active page and return it.
315
+ * Throws if not connected.
316
+ */
317
+ private requirePage;
318
+ }