claude-in-mobile 3.13.0 → 4.0.0-dev

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 (383) hide show
  1. package/README.md +61 -574
  2. package/dist/a11y/types.d.ts +1 -1
  3. package/dist/a11y/types.d.ts.map +1 -1
  4. package/dist/adapters/contracts.d.ts +66 -0
  5. package/dist/adapters/contracts.d.ts.map +1 -0
  6. package/dist/adapters/contracts.js +15 -0
  7. package/dist/adapters/contracts.js.map +1 -0
  8. package/dist/adapters/index.d.ts +0 -5
  9. package/dist/adapters/index.d.ts.map +1 -1
  10. package/dist/adapters/index.js +1 -5
  11. package/dist/adapters/index.js.map +1 -1
  12. package/dist/autopilot/explorer.js +1 -1
  13. package/dist/autopilot/explorer.js.map +1 -1
  14. package/dist/autopilot/healer.d.ts +1 -1
  15. package/dist/autopilot/healer.d.ts.map +1 -1
  16. package/dist/autopilot/screen-fingerprint.d.ts +1 -1
  17. package/dist/autopilot/screen-fingerprint.d.ts.map +1 -1
  18. package/dist/autopilot/types.d.ts +1 -1
  19. package/dist/autopilot/types.d.ts.map +1 -1
  20. package/dist/device/client-cache.d.ts +1 -1
  21. package/dist/device/client-cache.d.ts.map +1 -1
  22. package/dist/device/client-cache.js +4 -24
  23. package/dist/device/client-cache.js.map +1 -1
  24. package/dist/device/proxies/desktop-facade.d.ts +5 -8
  25. package/dist/device/proxies/desktop-facade.d.ts.map +1 -1
  26. package/dist/device/proxies/desktop-facade.js +12 -14
  27. package/dist/device/proxies/desktop-facade.js.map +1 -1
  28. package/dist/device-manager.d.ts +16 -16
  29. package/dist/device-manager.d.ts.map +1 -1
  30. package/dist/device-manager.js +23 -17
  31. package/dist/device-manager.js.map +1 -1
  32. package/dist/index.js +21 -6
  33. package/dist/index.js.map +1 -1
  34. package/dist/perf/collector.d.ts +5 -5
  35. package/dist/perf/collector.d.ts.map +1 -1
  36. package/dist/perf/collector.js.map +1 -1
  37. package/dist/plugins/repl/client.d.ts +15 -1
  38. package/dist/plugins/repl/client.d.ts.map +1 -1
  39. package/dist/plugins/repl/client.js +65 -8
  40. package/dist/plugins/repl/client.js.map +1 -1
  41. package/dist/plugins/repl/index.d.ts +2 -0
  42. package/dist/plugins/repl/index.d.ts.map +1 -1
  43. package/dist/plugins/repl/index.js +22 -3
  44. package/dist/plugins/repl/index.js.map +1 -1
  45. package/dist/plugins/repl/types.d.ts +6 -0
  46. package/dist/plugins/repl/types.d.ts.map +1 -1
  47. package/dist/runtime/bootstrap.d.ts +7 -0
  48. package/dist/runtime/bootstrap.d.ts.map +1 -1
  49. package/dist/runtime/bootstrap.js +87 -15
  50. package/dist/runtime/bootstrap.js.map +1 -1
  51. package/dist/runtime/cli.d.ts.map +1 -1
  52. package/dist/runtime/cli.js +14 -0
  53. package/dist/runtime/cli.js.map +1 -1
  54. package/dist/runtime/platform-cli.d.ts +24 -0
  55. package/dist/runtime/platform-cli.d.ts.map +1 -0
  56. package/dist/runtime/platform-cli.js +116 -0
  57. package/dist/runtime/platform-cli.js.map +1 -0
  58. package/dist/runtime/platform-config.d.ts +21 -0
  59. package/dist/runtime/platform-config.d.ts.map +1 -0
  60. package/dist/runtime/platform-config.js +71 -0
  61. package/dist/runtime/platform-config.js.map +1 -0
  62. package/dist/tools/browser-tools.js.map +1 -1
  63. package/dist/tools/clipboard-tools.js +1 -1
  64. package/dist/tools/clipboard-tools.js.map +1 -1
  65. package/dist/tools/context/hints.d.ts +1 -1
  66. package/dist/tools/context/hints.d.ts.map +1 -1
  67. package/dist/tools/context/hints.js +1 -1
  68. package/dist/tools/context/hints.js.map +1 -1
  69. package/dist/tools/context/ios-helpers.d.ts +1 -1
  70. package/dist/tools/context/ios-helpers.d.ts.map +1 -1
  71. package/dist/tools/context/shared-state-class.d.ts +1 -1
  72. package/dist/tools/context/shared-state-class.d.ts.map +1 -1
  73. package/dist/tools/context/shared-state.d.ts +1 -1
  74. package/dist/tools/context/shared-state.d.ts.map +1 -1
  75. package/dist/tools/context.d.ts +2 -1
  76. package/dist/tools/context.d.ts.map +1 -1
  77. package/dist/tools/context.js +17 -9
  78. package/dist/tools/context.js.map +1 -1
  79. package/dist/tools/desktop-tools.d.ts.map +1 -1
  80. package/dist/tools/desktop-tools.js.map +1 -1
  81. package/dist/tools/flow/common.js +1 -1
  82. package/dist/tools/flow/common.js.map +1 -1
  83. package/dist/tools/flow/run.js +1 -1
  84. package/dist/tools/flow/run.js.map +1 -1
  85. package/dist/tools/helpers/get-elements.d.ts +1 -1
  86. package/dist/tools/helpers/get-elements.d.ts.map +1 -1
  87. package/dist/tools/helpers/get-elements.js +1 -1
  88. package/dist/tools/helpers/get-elements.js.map +1 -1
  89. package/dist/tools/helpers/resolve-element.js +1 -1
  90. package/dist/tools/helpers/resolve-element.js.map +1 -1
  91. package/dist/tools/screenshot-tools.js +1 -1
  92. package/dist/tools/screenshot-tools.js.map +1 -1
  93. package/dist/tools/ui/analyze.js +1 -1
  94. package/dist/tools/ui/analyze.js.map +1 -1
  95. package/dist/tools/ui/assert.js +1 -1
  96. package/dist/tools/ui/assert.js.map +1 -1
  97. package/dist/tools/ui/find.js +1 -1
  98. package/dist/tools/ui/find.js.map +1 -1
  99. package/dist/tools/ui/tree.js +1 -1
  100. package/dist/tools/ui/tree.js.map +1 -1
  101. package/dist/tools/ui/wait.js +1 -1
  102. package/dist/tools/ui/wait.js.map +1 -1
  103. package/dist/ui-tree/ui-parser/diff-engine.d.ts.map +1 -0
  104. package/dist/ui-tree/ui-parser/diff-engine.js.map +1 -0
  105. package/dist/ui-tree/ui-parser/element-builder.d.ts.map +1 -0
  106. package/dist/ui-tree/ui-parser/element-builder.js.map +1 -0
  107. package/dist/ui-tree/ui-parser/element-finders.d.ts.map +1 -0
  108. package/dist/ui-tree/ui-parser/element-finders.js.map +1 -0
  109. package/dist/ui-tree/ui-parser/formatters/compact.d.ts.map +1 -0
  110. package/dist/ui-tree/ui-parser/formatters/compact.js.map +1 -0
  111. package/dist/ui-tree/ui-parser/formatters/full.d.ts.map +1 -0
  112. package/dist/ui-tree/ui-parser/formatters/full.js.map +1 -0
  113. package/dist/ui-tree/ui-parser/formatters/index.d.ts.map +1 -0
  114. package/dist/ui-tree/ui-parser/formatters/index.js.map +1 -0
  115. package/dist/ui-tree/ui-parser/formatters/semantic.d.ts.map +1 -0
  116. package/dist/ui-tree/ui-parser/formatters/semantic.js.map +1 -0
  117. package/dist/ui-tree/ui-parser/node-parser.d.ts.map +1 -0
  118. package/dist/ui-tree/ui-parser/node-parser.js.map +1 -0
  119. package/dist/ui-tree/ui-parser/screen-analyzer.d.ts.map +1 -0
  120. package/dist/ui-tree/ui-parser/screen-analyzer.js.map +1 -0
  121. package/dist/ui-tree/ui-parser/types.d.ts.map +1 -0
  122. package/dist/ui-tree/ui-parser/types.js.map +1 -0
  123. package/dist/ui-tree/ui-parser.d.ts.map +1 -0
  124. package/dist/ui-tree/ui-parser.js.map +1 -0
  125. package/dist/ui-tree/ui-scoring.d.ts.map +1 -0
  126. package/dist/ui-tree/ui-scoring.js.map +1 -0
  127. package/dist/ui-tree/ui-tree-cache.d.ts.map +1 -0
  128. package/dist/ui-tree/ui-tree-cache.js.map +1 -0
  129. package/dist/utils/image/annotate.d.ts +1 -1
  130. package/dist/utils/image/annotate.d.ts.map +1 -1
  131. package/package.json +11 -6
  132. package/dist/adapters/android-adapter.d.ts +0 -64
  133. package/dist/adapters/android-adapter.d.ts.map +0 -1
  134. package/dist/adapters/android-adapter.js +0 -164
  135. package/dist/adapters/android-adapter.js.map +0 -1
  136. package/dist/adapters/aurora-adapter.d.ts +0 -56
  137. package/dist/adapters/aurora-adapter.d.ts.map +0 -1
  138. package/dist/adapters/aurora-adapter.js +0 -118
  139. package/dist/adapters/aurora-adapter.js.map +0 -1
  140. package/dist/adapters/browser-adapter.d.ts +0 -51
  141. package/dist/adapters/browser-adapter.d.ts.map +0 -1
  142. package/dist/adapters/browser-adapter.js +0 -223
  143. package/dist/adapters/browser-adapter.js.map +0 -1
  144. package/dist/adapters/desktop-adapter.d.ts +0 -64
  145. package/dist/adapters/desktop-adapter.d.ts.map +0 -1
  146. package/dist/adapters/desktop-adapter.js +0 -202
  147. package/dist/adapters/desktop-adapter.js.map +0 -1
  148. package/dist/adapters/ios-adapter.d.ts +0 -60
  149. package/dist/adapters/ios-adapter.d.ts.map +0 -1
  150. package/dist/adapters/ios-adapter.js +0 -146
  151. package/dist/adapters/ios-adapter.js.map +0 -1
  152. package/dist/adb/client.d.ts +0 -238
  153. package/dist/adb/client.d.ts.map +0 -1
  154. package/dist/adb/client.js +0 -462
  155. package/dist/adb/client.js.map +0 -1
  156. package/dist/adb/exec.d.ts +0 -23
  157. package/dist/adb/exec.d.ts.map +0 -1
  158. package/dist/adb/exec.js +0 -98
  159. package/dist/adb/exec.js.map +0 -1
  160. package/dist/adb/index.d.ts +0 -5
  161. package/dist/adb/index.d.ts.map +0 -1
  162. package/dist/adb/index.js +0 -3
  163. package/dist/adb/index.js.map +0 -1
  164. package/dist/adb/keycodes.d.ts +0 -22
  165. package/dist/adb/keycodes.d.ts.map +0 -1
  166. package/dist/adb/keycodes.js +0 -69
  167. package/dist/adb/keycodes.js.map +0 -1
  168. package/dist/adb/logcat.d.ts +0 -23
  169. package/dist/adb/logcat.d.ts.map +0 -1
  170. package/dist/adb/logcat.js +0 -40
  171. package/dist/adb/logcat.js.map +0 -1
  172. package/dist/adb/parsers.d.ts +0 -60
  173. package/dist/adb/parsers.d.ts.map +0 -1
  174. package/dist/adb/parsers.js +0 -118
  175. package/dist/adb/parsers.js.map +0 -1
  176. package/dist/adb/resolver.d.ts +0 -24
  177. package/dist/adb/resolver.d.ts.map +0 -1
  178. package/dist/adb/resolver.js +0 -130
  179. package/dist/adb/resolver.js.map +0 -1
  180. package/dist/adb/text-escape.d.ts +0 -23
  181. package/dist/adb/text-escape.d.ts.map +0 -1
  182. package/dist/adb/text-escape.js +0 -41
  183. package/dist/adb/text-escape.js.map +0 -1
  184. package/dist/adb/ui-parser/diff-engine.d.ts.map +0 -1
  185. package/dist/adb/ui-parser/diff-engine.js.map +0 -1
  186. package/dist/adb/ui-parser/element-builder.d.ts.map +0 -1
  187. package/dist/adb/ui-parser/element-builder.js.map +0 -1
  188. package/dist/adb/ui-parser/element-finders.d.ts.map +0 -1
  189. package/dist/adb/ui-parser/element-finders.js.map +0 -1
  190. package/dist/adb/ui-parser/formatters/compact.d.ts.map +0 -1
  191. package/dist/adb/ui-parser/formatters/compact.js.map +0 -1
  192. package/dist/adb/ui-parser/formatters/full.d.ts.map +0 -1
  193. package/dist/adb/ui-parser/formatters/full.js.map +0 -1
  194. package/dist/adb/ui-parser/formatters/index.d.ts.map +0 -1
  195. package/dist/adb/ui-parser/formatters/index.js.map +0 -1
  196. package/dist/adb/ui-parser/formatters/semantic.d.ts.map +0 -1
  197. package/dist/adb/ui-parser/formatters/semantic.js.map +0 -1
  198. package/dist/adb/ui-parser/node-parser.d.ts.map +0 -1
  199. package/dist/adb/ui-parser/node-parser.js.map +0 -1
  200. package/dist/adb/ui-parser/screen-analyzer.d.ts.map +0 -1
  201. package/dist/adb/ui-parser/screen-analyzer.js.map +0 -1
  202. package/dist/adb/ui-parser/types.d.ts.map +0 -1
  203. package/dist/adb/ui-parser/types.js.map +0 -1
  204. package/dist/adb/ui-parser.d.ts.map +0 -1
  205. package/dist/adb/ui-parser.js.map +0 -1
  206. package/dist/adb/ui-scoring.d.ts.map +0 -1
  207. package/dist/adb/ui-scoring.js.map +0 -1
  208. package/dist/adb/ui-tree-cache.d.ts.map +0 -1
  209. package/dist/adb/ui-tree-cache.js.map +0 -1
  210. package/dist/adb/webview.d.ts +0 -59
  211. package/dist/adb/webview.d.ts.map +0 -1
  212. package/dist/adb/webview.js +0 -169
  213. package/dist/adb/webview.js.map +0 -1
  214. package/dist/aurora/client.d.ts +0 -180
  215. package/dist/aurora/client.d.ts.map +0 -1
  216. package/dist/aurora/client.js +0 -324
  217. package/dist/aurora/client.js.map +0 -1
  218. package/dist/aurora/index.d.ts +0 -2
  219. package/dist/aurora/index.d.ts.map +0 -1
  220. package/dist/aurora/index.js +0 -2
  221. package/dist/aurora/index.js.map +0 -1
  222. package/dist/browser/cdp-helpers.d.ts +0 -17
  223. package/dist/browser/cdp-helpers.d.ts.map +0 -1
  224. package/dist/browser/cdp-helpers.js +0 -79
  225. package/dist/browser/cdp-helpers.js.map +0 -1
  226. package/dist/browser/cdp-types.d.ts +0 -167
  227. package/dist/browser/cdp-types.d.ts.map +0 -1
  228. package/dist/browser/cdp-types.js +0 -9
  229. package/dist/browser/cdp-types.js.map +0 -1
  230. package/dist/browser/client.d.ts +0 -29
  231. package/dist/browser/client.d.ts.map +0 -1
  232. package/dist/browser/client.js +0 -391
  233. package/dist/browser/client.js.map +0 -1
  234. package/dist/browser/index.d.ts +0 -5
  235. package/dist/browser/index.d.ts.map +0 -1
  236. package/dist/browser/index.js +0 -4
  237. package/dist/browser/index.js.map +0 -1
  238. package/dist/browser/key-map.d.ts +0 -16
  239. package/dist/browser/key-map.d.ts.map +0 -1
  240. package/dist/browser/key-map.js +0 -35
  241. package/dist/browser/key-map.js.map +0 -1
  242. package/dist/browser/session-manager.d.ts +0 -21
  243. package/dist/browser/session-manager.d.ts.map +0 -1
  244. package/dist/browser/session-manager.js +0 -109
  245. package/dist/browser/session-manager.js.map +0 -1
  246. package/dist/browser/snapshot-builder.d.ts +0 -4
  247. package/dist/browser/snapshot-builder.d.ts.map +0 -1
  248. package/dist/browser/snapshot-builder.js +0 -76
  249. package/dist/browser/snapshot-builder.js.map +0 -1
  250. package/dist/browser/types.d.ts +0 -75
  251. package/dist/browser/types.d.ts.map +0 -1
  252. package/dist/browser/types.js +0 -11
  253. package/dist/browser/types.js.map +0 -1
  254. package/dist/desktop/client.d.ts +0 -196
  255. package/dist/desktop/client.d.ts.map +0 -1
  256. package/dist/desktop/client.js +0 -540
  257. package/dist/desktop/client.js.map +0 -1
  258. package/dist/desktop/gradle.d.ts +0 -45
  259. package/dist/desktop/gradle.d.ts.map +0 -1
  260. package/dist/desktop/gradle.js +0 -234
  261. package/dist/desktop/gradle.js.map +0 -1
  262. package/dist/desktop/index.d.ts +0 -7
  263. package/dist/desktop/index.d.ts.map +0 -1
  264. package/dist/desktop/index.js +0 -7
  265. package/dist/desktop/index.js.map +0 -1
  266. package/dist/desktop/launch-options.d.ts +0 -13
  267. package/dist/desktop/launch-options.d.ts.map +0 -1
  268. package/dist/desktop/launch-options.js +0 -54
  269. package/dist/desktop/launch-options.js.map +0 -1
  270. package/dist/desktop/launchers.d.ts +0 -52
  271. package/dist/desktop/launchers.d.ts.map +0 -1
  272. package/dist/desktop/launchers.js +0 -125
  273. package/dist/desktop/launchers.js.map +0 -1
  274. package/dist/desktop/log-ring.d.ts +0 -21
  275. package/dist/desktop/log-ring.d.ts.map +0 -1
  276. package/dist/desktop/log-ring.js +0 -45
  277. package/dist/desktop/log-ring.js.map +0 -1
  278. package/dist/desktop/permission-allowlist.d.ts +0 -47
  279. package/dist/desktop/permission-allowlist.d.ts.map +0 -1
  280. package/dist/desktop/permission-allowlist.js +0 -148
  281. package/dist/desktop/permission-allowlist.js.map +0 -1
  282. package/dist/desktop/types.d.ts +0 -177
  283. package/dist/desktop/types.d.ts.map +0 -1
  284. package/dist/desktop/types.js +0 -5
  285. package/dist/desktop/types.js.map +0 -1
  286. package/dist/ios/client.d.ts +0 -194
  287. package/dist/ios/client.d.ts.map +0 -1
  288. package/dist/ios/client.js +0 -457
  289. package/dist/ios/client.js.map +0 -1
  290. package/dist/ios/index.d.ts +0 -2
  291. package/dist/ios/index.d.ts.map +0 -1
  292. package/dist/ios/index.js +0 -2
  293. package/dist/ios/index.js.map +0 -1
  294. package/dist/ios/keymap.d.ts +0 -20
  295. package/dist/ios/keymap.d.ts.map +0 -1
  296. package/dist/ios/keymap.js +0 -33
  297. package/dist/ios/keymap.js.map +0 -1
  298. package/dist/ios/simctl-commands.d.ts +0 -35
  299. package/dist/ios/simctl-commands.d.ts.map +0 -1
  300. package/dist/ios/simctl-commands.js +0 -60
  301. package/dist/ios/simctl-commands.js.map +0 -1
  302. package/dist/ios/simctl-exec.d.ts +0 -19
  303. package/dist/ios/simctl-exec.d.ts.map +0 -1
  304. package/dist/ios/simctl-exec.js +0 -55
  305. package/dist/ios/simctl-exec.js.map +0 -1
  306. package/dist/ios/simctl-parsers.d.ts +0 -10
  307. package/dist/ios/simctl-parsers.d.ts.map +0 -1
  308. package/dist/ios/simctl-parsers.js +0 -29
  309. package/dist/ios/simctl-parsers.js.map +0 -1
  310. package/dist/ios/types.d.ts +0 -8
  311. package/dist/ios/types.d.ts.map +0 -1
  312. package/dist/ios/types.js +0 -2
  313. package/dist/ios/types.js.map +0 -1
  314. package/dist/ios/wda/index.d.ts +0 -4
  315. package/dist/ios/wda/index.d.ts.map +0 -1
  316. package/dist/ios/wda/index.js +0 -4
  317. package/dist/ios/wda/index.js.map +0 -1
  318. package/dist/ios/wda/wda-client.d.ts +0 -27
  319. package/dist/ios/wda/wda-client.d.ts.map +0 -1
  320. package/dist/ios/wda/wda-client.js +0 -237
  321. package/dist/ios/wda/wda-client.js.map +0 -1
  322. package/dist/ios/wda/wda-manager.d.ts +0 -18
  323. package/dist/ios/wda/wda-manager.d.ts.map +0 -1
  324. package/dist/ios/wda/wda-manager.js +0 -238
  325. package/dist/ios/wda/wda-manager.js.map +0 -1
  326. package/dist/ios/wda/wda-types.d.ts +0 -39
  327. package/dist/ios/wda/wda-types.d.ts.map +0 -1
  328. package/dist/ios/wda/wda-types.js +0 -2
  329. package/dist/ios/wda/wda-types.js.map +0 -1
  330. package/dist/ios/wda-errors.d.ts +0 -8
  331. package/dist/ios/wda-errors.d.ts.map +0 -1
  332. package/dist/ios/wda-errors.js +0 -13
  333. package/dist/ios/wda-errors.js.map +0 -1
  334. package/dist/ios/wda-payloads.d.ts +0 -32
  335. package/dist/ios/wda-payloads.d.ts.map +0 -1
  336. package/dist/ios/wda-payloads.js +0 -31
  337. package/dist/ios/wda-payloads.js.map +0 -1
  338. package/dist/plugins/android/index.d.ts +0 -23
  339. package/dist/plugins/android/index.d.ts.map +0 -1
  340. package/dist/plugins/android/index.js +0 -45
  341. package/dist/plugins/android/index.js.map +0 -1
  342. package/dist/plugins/aurora/index.d.ts +0 -17
  343. package/dist/plugins/aurora/index.d.ts.map +0 -1
  344. package/dist/plugins/aurora/index.js +0 -27
  345. package/dist/plugins/aurora/index.js.map +0 -1
  346. package/dist/plugins/desktop/index.d.ts +0 -18
  347. package/dist/plugins/desktop/index.d.ts.map +0 -1
  348. package/dist/plugins/desktop/index.js +0 -28
  349. package/dist/plugins/desktop/index.js.map +0 -1
  350. package/dist/plugins/ios/index.d.ts +0 -17
  351. package/dist/plugins/ios/index.d.ts.map +0 -1
  352. package/dist/plugins/ios/index.js +0 -36
  353. package/dist/plugins/ios/index.js.map +0 -1
  354. package/dist/plugins/web/index.d.ts +0 -17
  355. package/dist/plugins/web/index.d.ts.map +0 -1
  356. package/dist/plugins/web/index.js +0 -27
  357. package/dist/plugins/web/index.js.map +0 -1
  358. /package/dist/{adb → ui-tree}/ui-parser/diff-engine.d.ts +0 -0
  359. /package/dist/{adb → ui-tree}/ui-parser/diff-engine.js +0 -0
  360. /package/dist/{adb → ui-tree}/ui-parser/element-builder.d.ts +0 -0
  361. /package/dist/{adb → ui-tree}/ui-parser/element-builder.js +0 -0
  362. /package/dist/{adb → ui-tree}/ui-parser/element-finders.d.ts +0 -0
  363. /package/dist/{adb → ui-tree}/ui-parser/element-finders.js +0 -0
  364. /package/dist/{adb → ui-tree}/ui-parser/formatters/compact.d.ts +0 -0
  365. /package/dist/{adb → ui-tree}/ui-parser/formatters/compact.js +0 -0
  366. /package/dist/{adb → ui-tree}/ui-parser/formatters/full.d.ts +0 -0
  367. /package/dist/{adb → ui-tree}/ui-parser/formatters/full.js +0 -0
  368. /package/dist/{adb → ui-tree}/ui-parser/formatters/index.d.ts +0 -0
  369. /package/dist/{adb → ui-tree}/ui-parser/formatters/index.js +0 -0
  370. /package/dist/{adb → ui-tree}/ui-parser/formatters/semantic.d.ts +0 -0
  371. /package/dist/{adb → ui-tree}/ui-parser/formatters/semantic.js +0 -0
  372. /package/dist/{adb → ui-tree}/ui-parser/node-parser.d.ts +0 -0
  373. /package/dist/{adb → ui-tree}/ui-parser/node-parser.js +0 -0
  374. /package/dist/{adb → ui-tree}/ui-parser/screen-analyzer.d.ts +0 -0
  375. /package/dist/{adb → ui-tree}/ui-parser/screen-analyzer.js +0 -0
  376. /package/dist/{adb → ui-tree}/ui-parser/types.d.ts +0 -0
  377. /package/dist/{adb → ui-tree}/ui-parser/types.js +0 -0
  378. /package/dist/{adb → ui-tree}/ui-parser.d.ts +0 -0
  379. /package/dist/{adb → ui-tree}/ui-parser.js +0 -0
  380. /package/dist/{adb → ui-tree}/ui-scoring.d.ts +0 -0
  381. /package/dist/{adb → ui-tree}/ui-scoring.js +0 -0
  382. /package/dist/{adb → ui-tree}/ui-tree-cache.d.ts +0 -0
  383. /package/dist/{adb → ui-tree}/ui-tree-cache.js +0 -0
@@ -1,47 +0,0 @@
1
- /**
2
- * Path and process-attach allowlist helpers for the macOS desktop companion.
3
- *
4
- * These helpers guard the surface that translates a "launch this app" request
5
- * into a real process. They intentionally fail closed — anything that cannot
6
- * be canonically resolved within an allowed directory, or any pid that does
7
- * not belong to the current user, is rejected before reaching `open` or the
8
- * companion's attach path.
9
- */
10
- declare const BUNDLE_LAUNCH_POLL_INTERVAL_MS = 100;
11
- declare const BUNDLE_LAUNCH_TIMEOUT_MS = 5000;
12
- /** Allowed prefixes for appPath (realpath-resolved). */
13
- export declare const APP_PATH_ALLOWLIST: string[];
14
- /** System processes that must not be attached to. */
15
- export declare const BLOCKED_COMMS: Set<string>;
16
- /**
17
- * Resolve bundleId from an .app path by reading Info.plist via `defaults read`.
18
- * All calls use execFileSync (no shell).
19
- */
20
- export declare function getBundleIdFromAppPath(appPath: string): string;
21
- /**
22
- * Validate an appPath: must be absolute, end with .app, no .., within allowlist (realpath-resolved).
23
- * Returns the canonicalized path to use when calling `open`.
24
- */
25
- export declare function validateAndResolveAppPath(appPath: string): string;
26
- /**
27
- * Poll AppleScript until the process with the given bundle ID appears, or timeout.
28
- * Uses execFileAsync (non-blocking) so the event loop is not held during the 3s osascript call.
29
- * bundleId is pre-validated by validateBundleId; regex permits only [a-zA-Z0-9.-].
30
- * AppleScript injection prevention relies on this regex — do not relax without re-auditing.
31
- */
32
- export declare function resolvePidByBundleId(bundleId: string): Promise<number>;
33
- /**
34
- * Validate a PID for safe attach: must be positive, belong to current user, not a system process.
35
- * Uses separate ps calls to avoid space-split issues with multi-word comm names.
36
- */
37
- export declare function validateAttachPid(pid: number): void;
38
- /**
39
- * Find the companion app path on disk.
40
- *
41
- * Two candidate locations are checked: relative to the compiled `dist/desktop/client.js`
42
- * (production) and relative to the source `src/desktop/client.ts` (when running with ts-node
43
- * or a similar in-place runner).
44
- */
45
- export declare function findCompanionAppPath(): string;
46
- export { BUNDLE_LAUNCH_POLL_INTERVAL_MS, BUNDLE_LAUNCH_TIMEOUT_MS };
47
- //# sourceMappingURL=permission-allowlist.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"permission-allowlist.d.ts","sourceRoot":"","sources":["../../src/desktop/permission-allowlist.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAgBH,QAAA,MAAM,8BAA8B,MAAM,CAAC;AAC3C,QAAA,MAAM,wBAAwB,OAAO,CAAC;AAEtC,wDAAwD;AACxD,eAAO,MAAM,kBAAkB,UAM9B,CAAC;AAEF,qDAAqD;AACrD,eAAO,MAAM,aAAa,aAAkE,CAAC;AAE7F;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAe9D;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAiBjE;AAED;;;;;GAKG;AACH,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA4B5E;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CA8BnD;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAiB7C;AAED,OAAO,EAAE,8BAA8B,EAAE,wBAAwB,EAAE,CAAC"}
@@ -1,148 +0,0 @@
1
- /**
2
- * Path and process-attach allowlist helpers for the macOS desktop companion.
3
- *
4
- * These helpers guard the surface that translates a "launch this app" request
5
- * into a real process. They intentionally fail closed — anything that cannot
6
- * be canonically resolved within an allowed directory, or any pid that does
7
- * not belong to the current user, is rejected before reaching `open` or the
8
- * companion's attach path.
9
- */
10
- import { execFileSync, execFile } from "child_process";
11
- import { promisify } from "util";
12
- import * as path from "path";
13
- import * as os from "os";
14
- import * as fs from "fs";
15
- import { fileURLToPath } from "url";
16
- import { validatePath } from "../utils/sanitize.js";
17
- import { MobileError } from "../errors.js";
18
- const execFileAsync = promisify(execFile);
19
- const __filename = fileURLToPath(import.meta.url);
20
- const __dirname = path.dirname(__filename);
21
- const BUNDLE_LAUNCH_POLL_INTERVAL_MS = 100;
22
- const BUNDLE_LAUNCH_TIMEOUT_MS = 5000;
23
- /** Allowed prefixes for appPath (realpath-resolved). */
24
- export const APP_PATH_ALLOWLIST = [
25
- "/Applications",
26
- "/System/Applications",
27
- path.join(os.homedir(), "Applications"),
28
- "/Developer",
29
- path.join(os.homedir(), "Library/Developer/Xcode/DerivedData"),
30
- ];
31
- /** System processes that must not be attached to. */
32
- export const BLOCKED_COMMS = new Set(["launchd", "kernel_task", "securityd", "loginwindow"]);
33
- /**
34
- * Resolve bundleId from an .app path by reading Info.plist via `defaults read`.
35
- * All calls use execFileSync (no shell).
36
- */
37
- export function getBundleIdFromAppPath(appPath) {
38
- try {
39
- const result = execFileSync("defaults", ["read", `${appPath}/Contents/Info`, "CFBundleIdentifier"], { encoding: "utf-8", timeout: 5000 }).trim();
40
- if (!result)
41
- throw new Error("empty result");
42
- return result;
43
- }
44
- catch (e) {
45
- throw new MobileError(`Could not read bundle ID from ${appPath}/Contents/Info.plist: ${e.message}`, "BUNDLE_ID_READ_FAILED");
46
- }
47
- }
48
- /**
49
- * Validate an appPath: must be absolute, end with .app, no .., within allowlist (realpath-resolved).
50
- * Returns the canonicalized path to use when calling `open`.
51
- */
52
- export function validateAndResolveAppPath(appPath) {
53
- validatePath(appPath, "appPath");
54
- if (!path.isAbsolute(appPath)) {
55
- throw new MobileError(`appPath must be an absolute path: ${appPath}`, "INVALID_APP_PATH");
56
- }
57
- if (!appPath.endsWith(".app")) {
58
- throw new MobileError(`appPath must end with .app: ${appPath}`, "INVALID_APP_PATH");
59
- }
60
- const resolved = fs.realpathSync(appPath);
61
- const allowed = APP_PATH_ALLOWLIST.some(prefix => resolved.startsWith(prefix + "/") || resolved === prefix);
62
- if (!allowed) {
63
- throw new MobileError(`appPath "${resolved}" is outside allowed directories (${APP_PATH_ALLOWLIST.join(", ")})`, "APP_PATH_NOT_ALLOWED");
64
- }
65
- return resolved;
66
- }
67
- /**
68
- * Poll AppleScript until the process with the given bundle ID appears, or timeout.
69
- * Uses execFileAsync (non-blocking) so the event loop is not held during the 3s osascript call.
70
- * bundleId is pre-validated by validateBundleId; regex permits only [a-zA-Z0-9.-].
71
- * AppleScript injection prevention relies on this regex — do not relax without re-auditing.
72
- */
73
- export async function resolvePidByBundleId(bundleId) {
74
- const deadline = Date.now() + BUNDLE_LAUNCH_TIMEOUT_MS;
75
- while (Date.now() < deadline) {
76
- try {
77
- const { stdout } = await execFileAsync("osascript", ["-e", `tell application "System Events" to unix id of first application process whose bundle identifier is "${bundleId}"`], { timeout: 3000 });
78
- const pid = parseInt(stdout.trim(), 10);
79
- if (pid > 0)
80
- return pid;
81
- }
82
- catch (e) {
83
- const stderr = e.stderr ?? "";
84
- // Non-transient: permission denial from System Events will never self-resolve
85
- if (stderr.includes("Not authorized") || stderr.includes("-1743")) {
86
- throw new MobileError(`Accessibility permission denied. Grant access in System Settings → Privacy → Automation.`, "AUTOMATION_PERMISSION_DENIED");
87
- }
88
- // App not yet running — continue polling
89
- }
90
- await new Promise(resolve => setTimeout(resolve, BUNDLE_LAUNCH_POLL_INTERVAL_MS));
91
- }
92
- throw new MobileError(`App with bundle ID "${bundleId}" did not start within ${BUNDLE_LAUNCH_TIMEOUT_MS}ms`, "BUNDLE_LAUNCH_TIMEOUT");
93
- }
94
- /**
95
- * Validate a PID for safe attach: must be positive, belong to current user, not a system process.
96
- * Uses separate ps calls to avoid space-split issues with multi-word comm names.
97
- */
98
- export function validateAttachPid(pid) {
99
- if (!Number.isInteger(pid) || pid <= 0) {
100
- throw new MobileError(`Invalid pid: ${pid}. Must be a positive integer`, "INVALID_PID");
101
- }
102
- let psOut;
103
- try {
104
- psOut = execFileSync("ps", ["-o", "uid=,comm=", "-p", String(pid)], { encoding: "utf-8" }).trim();
105
- }
106
- catch (e) {
107
- if (e.status === 1) {
108
- throw new MobileError(`Process with pid ${pid} does not exist`, "PROCESS_NOT_FOUND");
109
- }
110
- throw new MobileError(`Failed to inspect pid ${pid}: ${e.message}`, "PS_EXEC_FAILED");
111
- }
112
- // uid= and comm= are separated by whitespace; comm= may contain spaces — split on first whitespace only
113
- const spaceIdx = psOut.search(/\s/);
114
- const uidStr = spaceIdx >= 0 ? psOut.slice(0, spaceIdx) : psOut;
115
- const comm = spaceIdx >= 0 ? psOut.slice(spaceIdx + 1).trim() : "";
116
- const uid = parseInt(uidStr, 10);
117
- const currentUid = process.getuid ? process.getuid() : -1;
118
- if (currentUid >= 0 && uid !== currentUid) {
119
- throw new MobileError(`Cannot attach to pid ${pid}: process belongs to another user`, "PID_FOREIGN_USER");
120
- }
121
- const basename = path.basename(comm);
122
- if (BLOCKED_COMMS.has(basename)) {
123
- throw new MobileError(`Cannot attach to system process: ${basename} (pid ${pid})`, "PID_SYSTEM_PROCESS");
124
- }
125
- }
126
- /**
127
- * Find the companion app path on disk.
128
- *
129
- * Two candidate locations are checked: relative to the compiled `dist/desktop/client.js`
130
- * (production) and relative to the source `src/desktop/client.ts` (when running with ts-node
131
- * or a similar in-place runner).
132
- */
133
- export function findCompanionAppPath() {
134
- const possiblePaths = [
135
- // From dist/desktop/client.js (production layout)
136
- path.join(__dirname, "..", "..", "desktop-companion", "build", "install", "desktop-companion", "bin", "desktop-companion"),
137
- // From src/desktop/client.ts (when running directly)
138
- path.join(__dirname, "..", "..", "..", "desktop-companion", "build", "install", "desktop-companion", "bin", "desktop-companion"),
139
- ];
140
- for (const p of possiblePaths) {
141
- if (fs.existsSync(p)) {
142
- return p;
143
- }
144
- }
145
- throw new Error("Desktop companion app not found. Please build it first: cd desktop-companion && ./gradlew installDist");
146
- }
147
- export { BUNDLE_LAUNCH_POLL_INTERVAL_MS, BUNDLE_LAUNCH_TIMEOUT_MS };
148
- //# sourceMappingURL=permission-allowlist.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"permission-allowlist.js","sourceRoot":"","sources":["../../src/desktop/permission-allowlist.ts"],"names":[],"mappings":"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"}
@@ -1,177 +0,0 @@
1
- /**
2
- * Desktop platform types for claude-in-mobile
3
- */
4
- export interface JsonRpcRequest {
5
- jsonrpc: "2.0";
6
- id: number;
7
- method: string;
8
- params?: Record<string, unknown>;
9
- }
10
- export interface JsonRpcResponse {
11
- jsonrpc: "2.0";
12
- id: number;
13
- result?: unknown;
14
- error?: JsonRpcError;
15
- }
16
- export interface JsonRpcError {
17
- code: number;
18
- message: string;
19
- data?: unknown;
20
- }
21
- export interface Bounds {
22
- x: number;
23
- y: number;
24
- width: number;
25
- height: number;
26
- }
27
- export interface DesktopWindow {
28
- id: string;
29
- title: string;
30
- bounds: Bounds;
31
- focused: boolean;
32
- minimized: boolean;
33
- fullscreen: boolean;
34
- processId?: number;
35
- ownerName?: string;
36
- }
37
- export interface WindowInfo {
38
- windows: DesktopWindow[];
39
- activeWindowId: string | null;
40
- }
41
- export interface DesktopUiElement {
42
- index: number;
43
- id?: string;
44
- text?: string;
45
- contentDescription?: string;
46
- className: string;
47
- role?: string;
48
- bounds: Bounds;
49
- clickable: boolean;
50
- enabled: boolean;
51
- focused: boolean;
52
- focusable: boolean;
53
- children: DesktopUiElement[];
54
- centerX: number;
55
- centerY: number;
56
- }
57
- export interface UiHierarchy {
58
- windows: DesktopWindow[];
59
- elements: DesktopUiElement[];
60
- scaleFactor: number;
61
- }
62
- export interface ScreenshotOptions {
63
- windowId?: string;
64
- quality?: number;
65
- monitorIndex?: number;
66
- }
67
- export interface ScreenshotResult {
68
- base64: string;
69
- width: number;
70
- height: number;
71
- scaleFactor: number;
72
- mimeType: "image/jpeg";
73
- }
74
- export interface TapOptions {
75
- x: number;
76
- y: number;
77
- }
78
- export interface SwipeOptions {
79
- x1: number;
80
- y1: number;
81
- x2: number;
82
- y2: number;
83
- durationMs?: number;
84
- }
85
- export interface KeyEventOptions {
86
- key: string;
87
- modifiers?: string[];
88
- }
89
- export type LaunchMode = "gradle" | "bundle" | "attach" | "companion-only";
90
- export type LaunchOptions = {
91
- mode: "gradle";
92
- projectPath: string;
93
- task?: string;
94
- jvmArgs?: string[];
95
- env?: Record<string, string>;
96
- } | {
97
- mode: "bundle";
98
- bundleId: string;
99
- appPath?: string;
100
- env?: Record<string, string>;
101
- } | {
102
- mode: "bundle";
103
- bundleId?: string;
104
- appPath: string;
105
- env?: Record<string, string>;
106
- } | {
107
- mode: "attach";
108
- pid: number;
109
- } | {
110
- mode: "companion-only";
111
- };
112
- export interface RawLaunchOptions {
113
- mode?: LaunchMode;
114
- projectPath?: string;
115
- task?: string;
116
- jvmArgs?: string[];
117
- env?: Record<string, string>;
118
- bundleId?: string;
119
- appPath?: string;
120
- pid?: number;
121
- }
122
- export interface GradleProject {
123
- path: string;
124
- desktopTasks: string[];
125
- selectedTask?: string;
126
- }
127
- export type LogType = "stdout" | "stderr" | "compose" | "crash";
128
- export interface LogEntry {
129
- timestamp: number;
130
- type: LogType;
131
- message: string;
132
- }
133
- export interface LogOptions {
134
- type?: LogType;
135
- since?: number;
136
- limit?: number;
137
- }
138
- export interface PerformanceMetrics {
139
- fps?: number;
140
- memoryUsageMb: number;
141
- cpuPercent?: number;
142
- }
143
- export interface PermissionStatus {
144
- granted: boolean;
145
- instructions?: string[];
146
- }
147
- export type DesktopStatus = "stopped" | "starting" | "running" | "crashed";
148
- export interface DesktopState {
149
- status: DesktopStatus;
150
- pid?: number;
151
- projectPath?: string;
152
- crashCount: number;
153
- lastError?: string;
154
- targetPid: number | null;
155
- }
156
- export interface ClipboardContent {
157
- text?: string;
158
- hasImage?: boolean;
159
- }
160
- export interface MonitorInfo {
161
- index: number;
162
- name: string;
163
- x: number;
164
- y: number;
165
- width: number;
166
- height: number;
167
- isPrimary: boolean;
168
- }
169
- export interface MonitorsResult {
170
- monitors: MonitorInfo[];
171
- }
172
- export interface TapByTextResult {
173
- success: boolean;
174
- elementRole?: string;
175
- error?: string;
176
- }
177
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/desktop/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,KAAK,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,KAAK,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,YAAY,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAGD,MAAM,WAAW,MAAM;IACrB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAGD,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAGD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAE7B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;CACrB;AAGD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,YAAY,CAAC;CACxB;AAGD,MAAM,WAAW,UAAU;IACzB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAGD,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,gBAAgB,CAAC;AAI3E,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GACxG;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GACpF;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GACpF;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,CAAC;AAI/B,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAGD,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC;AAEhE,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAGD,MAAM,WAAW,kBAAkB;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAGD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAGD,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;AAE3E,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,aAAa,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAGD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAGD,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,WAAW,EAAE,CAAC;CACzB;AAGD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
@@ -1,5 +0,0 @@
1
- /**
2
- * Desktop platform types for claude-in-mobile
3
- */
4
- export {};
5
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/desktop/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -1,194 +0,0 @@
1
- import { WDAElement, WDARect } from "./wda/index.js";
2
- import type { IosDevice } from "./types.js";
3
- import { type FindElementsCriteria } from "./wda-payloads.js";
4
- export type { IosDevice } from "./types.js";
5
- export declare class IosClient {
6
- private deviceId?;
7
- private wdaManager;
8
- private wdaClient?;
9
- constructor(deviceId?: string);
10
- cleanup(): void;
11
- private ensureWDA;
12
- /** Thin instance wrapper around `execSimctl` (argv-form, no shell). */
13
- private execArgs;
14
- /** Thin instance wrapper around `execSimctlQuiet` (stderr suppressed). */
15
- private execArgsQuiet;
16
- /** Legacy string form: whitespace-split into argv tokens, then `execSimctl`. */
17
- private exec;
18
- /**
19
- * Get the active device ID or 'booted'
20
- */
21
- private get targetDevice();
22
- /** Resolve target device for a per-call override or fall back to instance default. */
23
- private targetDeviceFor;
24
- /**
25
- * Get list of iOS simulators
26
- */
27
- getDevices(): IosDevice[];
28
- /**
29
- * Get booted simulators
30
- */
31
- getBootedDevices(): IosDevice[];
32
- /**
33
- * Set active device
34
- */
35
- setDevice(deviceId: string): void;
36
- /**
37
- * Get currently configured device ID
38
- */
39
- getDeviceId(): string | undefined;
40
- /**
41
- * Boot simulator
42
- */
43
- boot(deviceId?: string): void;
44
- /**
45
- * Shutdown simulator
46
- */
47
- shutdown(deviceId?: string): void;
48
- /**
49
- * Take screenshot and return raw PNG buffer
50
- */
51
- screenshotRaw(deviceIdOverride?: string): Buffer;
52
- /**
53
- * Take screenshot and return as base64 (legacy)
54
- */
55
- screenshot(deviceIdOverride?: string): string;
56
- /**
57
- * Tap at coordinates
58
- */
59
- tap(x: number, y: number, deviceIdOverride?: string): Promise<void>;
60
- /**
61
- * Swipe gesture
62
- */
63
- swipe(x1: number, y1: number, x2: number, y2: number, durationMs?: number, deviceIdOverride?: string): Promise<void>;
64
- /**
65
- * Long press at coordinates via WDA Actions API
66
- */
67
- longPress(x: number, y: number, durationMs?: number, deviceIdOverride?: string): Promise<void>;
68
- /**
69
- * Swipe in direction (uses actual screen center from WDA, not hardcoded)
70
- */
71
- swipeDirection(direction: "up" | "down" | "left" | "right", distance?: number): Promise<void>;
72
- /**
73
- * Input text via WDA (types into the currently focused element)
74
- */
75
- inputText(text: string, deviceIdOverride?: string): Promise<void>;
76
- /**
77
- * Press key
78
- *
79
- * SECURITY: AppleScript invocations use execFileSync("osascript", ["-e", literal])
80
- * — the script literal is a single argv slot, so /bin/sh never parses its contents.
81
- * The `key` argument is whitelisted via keyMap; only fixed AppleScript literals reach
82
- * osascript.
83
- */
84
- pressKey(key: string): void;
85
- /**
86
- * Launch app by bundle ID
87
- */
88
- launchApp(bundleId: string, deviceIdOverride?: string): string;
89
- /**
90
- * Terminate app
91
- */
92
- stopApp(bundleId: string, deviceIdOverride?: string): void;
93
- /**
94
- * Install app (.app bundle or .ipa)
95
- */
96
- installApp(path: string): string;
97
- /**
98
- * Uninstall app
99
- */
100
- uninstallApp(bundleId: string): string;
101
- /**
102
- * Get UI hierarchy (limited on iOS simulator)
103
- * Returns accessibility info if available
104
- */
105
- getUiHierarchy(deviceIdOverride?: string): Promise<string>;
106
- /**
107
- * Find element by text or label
108
- */
109
- findElement(criteria: {
110
- text?: string;
111
- label?: string;
112
- }): Promise<WDAElement>;
113
- /**
114
- * Find multiple elements by criteria
115
- */
116
- findElements(criteria: FindElementsCriteria): Promise<Array<{
117
- id: string;
118
- type: string;
119
- label: string;
120
- rect: WDARect;
121
- }>>;
122
- /**
123
- * Get element rect (position + size) by element ID
124
- */
125
- getElementRect(elementId: string): Promise<WDARect | null>;
126
- /**
127
- * Tap element by element ID
128
- */
129
- tapElement(elementId: string): Promise<void>;
130
- /**
131
- * Open URL in simulator
132
- *
133
- * SECURITY: URL passes as a single argv slot to xcrun (no /bin/sh -c).
134
- * Any shell metacharacters in `url` are not parsed by the host shell.
135
- * Scheme validation happens at the tool layer (validateUrl).
136
- */
137
- openUrl(url: string): void;
138
- /**
139
- * Add photo to simulator
140
- */
141
- addPhoto(imagePath: string): void;
142
- /**
143
- * Set location
144
- */
145
- setLocation(lat: number, lon: number): void;
146
- /**
147
- * Get device info
148
- */
149
- getDeviceInfo(): Record<string, string>;
150
- /**
151
- * Execute arbitrary simctl command
152
- *
153
- * SECURITY: `command` is whitespace-split into argv tokens before reaching
154
- * execFileSync. Shell metacharacters (;, &, |, $(), backticks, etc.) cannot
155
- * spawn a host shell from this path. The MCP tool layer additionally validates
156
- * via validateShellCommand as defense in depth.
157
- */
158
- shell(command: string): string;
159
- /**
160
- * Get device logs
161
- */
162
- getLogs(options?: {
163
- predicate?: string;
164
- lines?: number;
165
- level?: "debug" | "info" | "default" | "error" | "fault";
166
- }): string;
167
- /**
168
- * Get app-specific logs
169
- *
170
- * SECURITY: bundleId is validated against the reverse-DNS whitelist before
171
- * embedding into the simctl predicate string. The predicate itself is passed
172
- * as ONE argv slot — the host shell never parses it; simctl parses it
173
- * internally as its own DSL.
174
- */
175
- getAppLogs(bundleId: string, lines?: number): string;
176
- /**
177
- * Clear logs (not fully supported on iOS, but we can note the timestamp)
178
- */
179
- clearLogs(): string;
180
- /**
181
- * Grant privacy permission on iOS simulator
182
- * Services: camera, microphone, photos, location, contacts, calendar, reminders, motion, health, speech-recognition
183
- */
184
- grantPermission(bundleId: string, service: string): string;
185
- /**
186
- * Revoke privacy permission on iOS simulator
187
- */
188
- revokePermission(bundleId: string, service: string): string;
189
- /**
190
- * Reset all privacy permissions for an app on iOS simulator
191
- */
192
- resetPermissions(bundleId: string): string;
193
- }
194
- //# sourceMappingURL=client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/ios/client.ts"],"names":[],"mappings":"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"}