claude-in-mobile 3.14.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 (385) 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/runtime/bootstrap.d.ts +7 -0
  38. package/dist/runtime/bootstrap.d.ts.map +1 -1
  39. package/dist/runtime/bootstrap.js +87 -15
  40. package/dist/runtime/bootstrap.js.map +1 -1
  41. package/dist/runtime/cli.d.ts.map +1 -1
  42. package/dist/runtime/cli.js +14 -0
  43. package/dist/runtime/cli.js.map +1 -1
  44. package/dist/runtime/platform-cli.d.ts +24 -0
  45. package/dist/runtime/platform-cli.d.ts.map +1 -0
  46. package/dist/runtime/platform-cli.js +116 -0
  47. package/dist/runtime/platform-cli.js.map +1 -0
  48. package/dist/runtime/platform-config.d.ts +21 -0
  49. package/dist/runtime/platform-config.d.ts.map +1 -0
  50. package/dist/runtime/platform-config.js +71 -0
  51. package/dist/runtime/platform-config.js.map +1 -0
  52. package/dist/tools/browser-tools.js.map +1 -1
  53. package/dist/tools/clipboard-tools.js +1 -1
  54. package/dist/tools/clipboard-tools.js.map +1 -1
  55. package/dist/tools/context/hints.d.ts +1 -1
  56. package/dist/tools/context/hints.d.ts.map +1 -1
  57. package/dist/tools/context/hints.js +1 -1
  58. package/dist/tools/context/hints.js.map +1 -1
  59. package/dist/tools/context/ios-helpers.d.ts +1 -1
  60. package/dist/tools/context/ios-helpers.d.ts.map +1 -1
  61. package/dist/tools/context/shared-state-class.d.ts +1 -1
  62. package/dist/tools/context/shared-state-class.d.ts.map +1 -1
  63. package/dist/tools/context/shared-state.d.ts +1 -1
  64. package/dist/tools/context/shared-state.d.ts.map +1 -1
  65. package/dist/tools/context.d.ts +2 -1
  66. package/dist/tools/context.d.ts.map +1 -1
  67. package/dist/tools/context.js +17 -9
  68. package/dist/tools/context.js.map +1 -1
  69. package/dist/tools/desktop-tools.d.ts.map +1 -1
  70. package/dist/tools/desktop-tools.js.map +1 -1
  71. package/dist/tools/flow/common.js +1 -1
  72. package/dist/tools/flow/common.js.map +1 -1
  73. package/dist/tools/flow/run.js +1 -1
  74. package/dist/tools/flow/run.js.map +1 -1
  75. package/dist/tools/helpers/get-elements.d.ts +1 -1
  76. package/dist/tools/helpers/get-elements.d.ts.map +1 -1
  77. package/dist/tools/helpers/get-elements.js +1 -1
  78. package/dist/tools/helpers/get-elements.js.map +1 -1
  79. package/dist/tools/helpers/resolve-element.js +1 -1
  80. package/dist/tools/helpers/resolve-element.js.map +1 -1
  81. package/dist/tools/screenshot-tools.js +1 -1
  82. package/dist/tools/screenshot-tools.js.map +1 -1
  83. package/dist/tools/ui/analyze.js +1 -1
  84. package/dist/tools/ui/analyze.js.map +1 -1
  85. package/dist/tools/ui/assert.js +1 -1
  86. package/dist/tools/ui/assert.js.map +1 -1
  87. package/dist/tools/ui/find.js +1 -1
  88. package/dist/tools/ui/find.js.map +1 -1
  89. package/dist/tools/ui/tree.js +1 -1
  90. package/dist/tools/ui/tree.js.map +1 -1
  91. package/dist/tools/ui/wait.js +1 -1
  92. package/dist/tools/ui/wait.js.map +1 -1
  93. package/dist/ui-tree/ui-parser/diff-engine.d.ts.map +1 -0
  94. package/dist/ui-tree/ui-parser/diff-engine.js.map +1 -0
  95. package/dist/ui-tree/ui-parser/element-builder.d.ts.map +1 -0
  96. package/dist/ui-tree/ui-parser/element-builder.js.map +1 -0
  97. package/dist/ui-tree/ui-parser/element-finders.d.ts.map +1 -0
  98. package/dist/ui-tree/ui-parser/element-finders.js.map +1 -0
  99. package/dist/ui-tree/ui-parser/formatters/compact.d.ts.map +1 -0
  100. package/dist/ui-tree/ui-parser/formatters/compact.js.map +1 -0
  101. package/dist/ui-tree/ui-parser/formatters/full.d.ts.map +1 -0
  102. package/dist/ui-tree/ui-parser/formatters/full.js.map +1 -0
  103. package/dist/ui-tree/ui-parser/formatters/index.d.ts.map +1 -0
  104. package/dist/ui-tree/ui-parser/formatters/index.js.map +1 -0
  105. package/dist/ui-tree/ui-parser/formatters/semantic.d.ts.map +1 -0
  106. package/dist/ui-tree/ui-parser/formatters/semantic.js.map +1 -0
  107. package/dist/ui-tree/ui-parser/node-parser.d.ts.map +1 -0
  108. package/dist/ui-tree/ui-parser/node-parser.js.map +1 -0
  109. package/dist/ui-tree/ui-parser/screen-analyzer.d.ts.map +1 -0
  110. package/dist/ui-tree/ui-parser/screen-analyzer.js.map +1 -0
  111. package/dist/ui-tree/ui-parser/types.d.ts.map +1 -0
  112. package/dist/ui-tree/ui-parser/types.js.map +1 -0
  113. package/dist/ui-tree/ui-parser.d.ts.map +1 -0
  114. package/dist/ui-tree/ui-parser.js.map +1 -0
  115. package/dist/ui-tree/ui-scoring.d.ts.map +1 -0
  116. package/dist/ui-tree/ui-scoring.js.map +1 -0
  117. package/dist/ui-tree/ui-tree-cache.d.ts.map +1 -0
  118. package/dist/ui-tree/ui-tree-cache.js.map +1 -0
  119. package/dist/utils/image/annotate.d.ts +1 -1
  120. package/dist/utils/image/annotate.d.ts.map +1 -1
  121. package/package.json +11 -6
  122. package/dist/adapters/android-adapter.d.ts +0 -64
  123. package/dist/adapters/android-adapter.d.ts.map +0 -1
  124. package/dist/adapters/android-adapter.js +0 -164
  125. package/dist/adapters/android-adapter.js.map +0 -1
  126. package/dist/adapters/aurora-adapter.d.ts +0 -56
  127. package/dist/adapters/aurora-adapter.d.ts.map +0 -1
  128. package/dist/adapters/aurora-adapter.js +0 -118
  129. package/dist/adapters/aurora-adapter.js.map +0 -1
  130. package/dist/adapters/browser-adapter.d.ts +0 -51
  131. package/dist/adapters/browser-adapter.d.ts.map +0 -1
  132. package/dist/adapters/browser-adapter.js +0 -223
  133. package/dist/adapters/browser-adapter.js.map +0 -1
  134. package/dist/adapters/desktop-adapter.d.ts +0 -64
  135. package/dist/adapters/desktop-adapter.d.ts.map +0 -1
  136. package/dist/adapters/desktop-adapter.js +0 -202
  137. package/dist/adapters/desktop-adapter.js.map +0 -1
  138. package/dist/adapters/ios-adapter.d.ts +0 -60
  139. package/dist/adapters/ios-adapter.d.ts.map +0 -1
  140. package/dist/adapters/ios-adapter.js +0 -146
  141. package/dist/adapters/ios-adapter.js.map +0 -1
  142. package/dist/adb/client.d.ts +0 -238
  143. package/dist/adb/client.d.ts.map +0 -1
  144. package/dist/adb/client.js +0 -462
  145. package/dist/adb/client.js.map +0 -1
  146. package/dist/adb/exec.d.ts +0 -23
  147. package/dist/adb/exec.d.ts.map +0 -1
  148. package/dist/adb/exec.js +0 -98
  149. package/dist/adb/exec.js.map +0 -1
  150. package/dist/adb/index.d.ts +0 -5
  151. package/dist/adb/index.d.ts.map +0 -1
  152. package/dist/adb/index.js +0 -3
  153. package/dist/adb/index.js.map +0 -1
  154. package/dist/adb/keycodes.d.ts +0 -22
  155. package/dist/adb/keycodes.d.ts.map +0 -1
  156. package/dist/adb/keycodes.js +0 -69
  157. package/dist/adb/keycodes.js.map +0 -1
  158. package/dist/adb/logcat.d.ts +0 -23
  159. package/dist/adb/logcat.d.ts.map +0 -1
  160. package/dist/adb/logcat.js +0 -40
  161. package/dist/adb/logcat.js.map +0 -1
  162. package/dist/adb/parsers.d.ts +0 -60
  163. package/dist/adb/parsers.d.ts.map +0 -1
  164. package/dist/adb/parsers.js +0 -118
  165. package/dist/adb/parsers.js.map +0 -1
  166. package/dist/adb/resolver.d.ts +0 -24
  167. package/dist/adb/resolver.d.ts.map +0 -1
  168. package/dist/adb/resolver.js +0 -130
  169. package/dist/adb/resolver.js.map +0 -1
  170. package/dist/adb/text-escape.d.ts +0 -23
  171. package/dist/adb/text-escape.d.ts.map +0 -1
  172. package/dist/adb/text-escape.js +0 -41
  173. package/dist/adb/text-escape.js.map +0 -1
  174. package/dist/adb/ui-parser/diff-engine.d.ts.map +0 -1
  175. package/dist/adb/ui-parser/diff-engine.js.map +0 -1
  176. package/dist/adb/ui-parser/element-builder.d.ts.map +0 -1
  177. package/dist/adb/ui-parser/element-builder.js.map +0 -1
  178. package/dist/adb/ui-parser/element-finders.d.ts.map +0 -1
  179. package/dist/adb/ui-parser/element-finders.js.map +0 -1
  180. package/dist/adb/ui-parser/formatters/compact.d.ts.map +0 -1
  181. package/dist/adb/ui-parser/formatters/compact.js.map +0 -1
  182. package/dist/adb/ui-parser/formatters/full.d.ts.map +0 -1
  183. package/dist/adb/ui-parser/formatters/full.js.map +0 -1
  184. package/dist/adb/ui-parser/formatters/index.d.ts.map +0 -1
  185. package/dist/adb/ui-parser/formatters/index.js.map +0 -1
  186. package/dist/adb/ui-parser/formatters/semantic.d.ts.map +0 -1
  187. package/dist/adb/ui-parser/formatters/semantic.js.map +0 -1
  188. package/dist/adb/ui-parser/node-parser.d.ts.map +0 -1
  189. package/dist/adb/ui-parser/node-parser.js.map +0 -1
  190. package/dist/adb/ui-parser/screen-analyzer.d.ts.map +0 -1
  191. package/dist/adb/ui-parser/screen-analyzer.js.map +0 -1
  192. package/dist/adb/ui-parser/types.d.ts.map +0 -1
  193. package/dist/adb/ui-parser/types.js.map +0 -1
  194. package/dist/adb/ui-parser.d.ts.map +0 -1
  195. package/dist/adb/ui-parser.js.map +0 -1
  196. package/dist/adb/ui-scoring.d.ts.map +0 -1
  197. package/dist/adb/ui-scoring.js.map +0 -1
  198. package/dist/adb/ui-tree-cache.d.ts.map +0 -1
  199. package/dist/adb/ui-tree-cache.js.map +0 -1
  200. package/dist/adb/webview.d.ts +0 -59
  201. package/dist/adb/webview.d.ts.map +0 -1
  202. package/dist/adb/webview.js +0 -169
  203. package/dist/adb/webview.js.map +0 -1
  204. package/dist/aurora/client.d.ts +0 -180
  205. package/dist/aurora/client.d.ts.map +0 -1
  206. package/dist/aurora/client.js +0 -324
  207. package/dist/aurora/client.js.map +0 -1
  208. package/dist/aurora/index.d.ts +0 -2
  209. package/dist/aurora/index.d.ts.map +0 -1
  210. package/dist/aurora/index.js +0 -2
  211. package/dist/aurora/index.js.map +0 -1
  212. package/dist/browser/cdp-helpers.d.ts +0 -17
  213. package/dist/browser/cdp-helpers.d.ts.map +0 -1
  214. package/dist/browser/cdp-helpers.js +0 -79
  215. package/dist/browser/cdp-helpers.js.map +0 -1
  216. package/dist/browser/cdp-types.d.ts +0 -167
  217. package/dist/browser/cdp-types.d.ts.map +0 -1
  218. package/dist/browser/cdp-types.js +0 -9
  219. package/dist/browser/cdp-types.js.map +0 -1
  220. package/dist/browser/client.d.ts +0 -29
  221. package/dist/browser/client.d.ts.map +0 -1
  222. package/dist/browser/client.js +0 -391
  223. package/dist/browser/client.js.map +0 -1
  224. package/dist/browser/index.d.ts +0 -5
  225. package/dist/browser/index.d.ts.map +0 -1
  226. package/dist/browser/index.js +0 -4
  227. package/dist/browser/index.js.map +0 -1
  228. package/dist/browser/key-map.d.ts +0 -16
  229. package/dist/browser/key-map.d.ts.map +0 -1
  230. package/dist/browser/key-map.js +0 -35
  231. package/dist/browser/key-map.js.map +0 -1
  232. package/dist/browser/session-manager.d.ts +0 -21
  233. package/dist/browser/session-manager.d.ts.map +0 -1
  234. package/dist/browser/session-manager.js +0 -109
  235. package/dist/browser/session-manager.js.map +0 -1
  236. package/dist/browser/snapshot-builder.d.ts +0 -4
  237. package/dist/browser/snapshot-builder.d.ts.map +0 -1
  238. package/dist/browser/snapshot-builder.js +0 -76
  239. package/dist/browser/snapshot-builder.js.map +0 -1
  240. package/dist/browser/types.d.ts +0 -75
  241. package/dist/browser/types.d.ts.map +0 -1
  242. package/dist/browser/types.js +0 -11
  243. package/dist/browser/types.js.map +0 -1
  244. package/dist/desktop/client.d.ts +0 -196
  245. package/dist/desktop/client.d.ts.map +0 -1
  246. package/dist/desktop/client.js +0 -540
  247. package/dist/desktop/client.js.map +0 -1
  248. package/dist/desktop/gradle.d.ts +0 -45
  249. package/dist/desktop/gradle.d.ts.map +0 -1
  250. package/dist/desktop/gradle.js +0 -234
  251. package/dist/desktop/gradle.js.map +0 -1
  252. package/dist/desktop/index.d.ts +0 -7
  253. package/dist/desktop/index.d.ts.map +0 -1
  254. package/dist/desktop/index.js +0 -7
  255. package/dist/desktop/index.js.map +0 -1
  256. package/dist/desktop/launch-options.d.ts +0 -13
  257. package/dist/desktop/launch-options.d.ts.map +0 -1
  258. package/dist/desktop/launch-options.js +0 -54
  259. package/dist/desktop/launch-options.js.map +0 -1
  260. package/dist/desktop/launchers.d.ts +0 -52
  261. package/dist/desktop/launchers.d.ts.map +0 -1
  262. package/dist/desktop/launchers.js +0 -125
  263. package/dist/desktop/launchers.js.map +0 -1
  264. package/dist/desktop/log-ring.d.ts +0 -21
  265. package/dist/desktop/log-ring.d.ts.map +0 -1
  266. package/dist/desktop/log-ring.js +0 -45
  267. package/dist/desktop/log-ring.js.map +0 -1
  268. package/dist/desktop/permission-allowlist.d.ts +0 -47
  269. package/dist/desktop/permission-allowlist.d.ts.map +0 -1
  270. package/dist/desktop/permission-allowlist.js +0 -148
  271. package/dist/desktop/permission-allowlist.js.map +0 -1
  272. package/dist/desktop/types.d.ts +0 -177
  273. package/dist/desktop/types.d.ts.map +0 -1
  274. package/dist/desktop/types.js +0 -5
  275. package/dist/desktop/types.js.map +0 -1
  276. package/dist/ios/client.d.ts +0 -204
  277. package/dist/ios/client.d.ts.map +0 -1
  278. package/dist/ios/client.js +0 -483
  279. package/dist/ios/client.js.map +0 -1
  280. package/dist/ios/go-ios/client.d.ts +0 -23
  281. package/dist/ios/go-ios/client.d.ts.map +0 -1
  282. package/dist/ios/go-ios/client.js +0 -51
  283. package/dist/ios/go-ios/client.js.map +0 -1
  284. package/dist/ios/go-ios/index.d.ts +0 -4
  285. package/dist/ios/go-ios/index.d.ts.map +0 -1
  286. package/dist/ios/go-ios/index.js +0 -3
  287. package/dist/ios/go-ios/index.js.map +0 -1
  288. package/dist/ios/go-ios/parsers.d.ts +0 -28
  289. package/dist/ios/go-ios/parsers.d.ts.map +0 -1
  290. package/dist/ios/go-ios/parsers.js +0 -71
  291. package/dist/ios/go-ios/parsers.js.map +0 -1
  292. package/dist/ios/index.d.ts +0 -2
  293. package/dist/ios/index.d.ts.map +0 -1
  294. package/dist/ios/index.js +0 -2
  295. package/dist/ios/index.js.map +0 -1
  296. package/dist/ios/keymap.d.ts +0 -20
  297. package/dist/ios/keymap.d.ts.map +0 -1
  298. package/dist/ios/keymap.js +0 -33
  299. package/dist/ios/keymap.js.map +0 -1
  300. package/dist/ios/simctl-commands.d.ts +0 -35
  301. package/dist/ios/simctl-commands.d.ts.map +0 -1
  302. package/dist/ios/simctl-commands.js +0 -60
  303. package/dist/ios/simctl-commands.js.map +0 -1
  304. package/dist/ios/simctl-exec.d.ts +0 -19
  305. package/dist/ios/simctl-exec.d.ts.map +0 -1
  306. package/dist/ios/simctl-exec.js +0 -55
  307. package/dist/ios/simctl-exec.js.map +0 -1
  308. package/dist/ios/simctl-parsers.d.ts +0 -10
  309. package/dist/ios/simctl-parsers.d.ts.map +0 -1
  310. package/dist/ios/simctl-parsers.js +0 -29
  311. package/dist/ios/simctl-parsers.js.map +0 -1
  312. package/dist/ios/types.d.ts +0 -8
  313. package/dist/ios/types.d.ts.map +0 -1
  314. package/dist/ios/types.js +0 -2
  315. package/dist/ios/types.js.map +0 -1
  316. package/dist/ios/wda/index.d.ts +0 -4
  317. package/dist/ios/wda/index.d.ts.map +0 -1
  318. package/dist/ios/wda/index.js +0 -4
  319. package/dist/ios/wda/index.js.map +0 -1
  320. package/dist/ios/wda/wda-client.d.ts +0 -33
  321. package/dist/ios/wda/wda-client.d.ts.map +0 -1
  322. package/dist/ios/wda/wda-client.js +0 -250
  323. package/dist/ios/wda/wda-client.js.map +0 -1
  324. package/dist/ios/wda/wda-manager.d.ts +0 -34
  325. package/dist/ios/wda/wda-manager.d.ts.map +0 -1
  326. package/dist/ios/wda/wda-manager.js +0 -392
  327. package/dist/ios/wda/wda-manager.js.map +0 -1
  328. package/dist/ios/wda/wda-types.d.ts +0 -39
  329. package/dist/ios/wda/wda-types.d.ts.map +0 -1
  330. package/dist/ios/wda/wda-types.js +0 -2
  331. package/dist/ios/wda/wda-types.js.map +0 -1
  332. package/dist/ios/wda-errors.d.ts +0 -8
  333. package/dist/ios/wda-errors.d.ts.map +0 -1
  334. package/dist/ios/wda-errors.js +0 -13
  335. package/dist/ios/wda-errors.js.map +0 -1
  336. package/dist/ios/wda-payloads.d.ts +0 -32
  337. package/dist/ios/wda-payloads.d.ts.map +0 -1
  338. package/dist/ios/wda-payloads.js +0 -31
  339. package/dist/ios/wda-payloads.js.map +0 -1
  340. package/dist/plugins/android/index.d.ts +0 -23
  341. package/dist/plugins/android/index.d.ts.map +0 -1
  342. package/dist/plugins/android/index.js +0 -45
  343. package/dist/plugins/android/index.js.map +0 -1
  344. package/dist/plugins/aurora/index.d.ts +0 -17
  345. package/dist/plugins/aurora/index.d.ts.map +0 -1
  346. package/dist/plugins/aurora/index.js +0 -27
  347. package/dist/plugins/aurora/index.js.map +0 -1
  348. package/dist/plugins/desktop/index.d.ts +0 -18
  349. package/dist/plugins/desktop/index.d.ts.map +0 -1
  350. package/dist/plugins/desktop/index.js +0 -28
  351. package/dist/plugins/desktop/index.js.map +0 -1
  352. package/dist/plugins/ios/index.d.ts +0 -17
  353. package/dist/plugins/ios/index.d.ts.map +0 -1
  354. package/dist/plugins/ios/index.js +0 -36
  355. package/dist/plugins/ios/index.js.map +0 -1
  356. package/dist/plugins/web/index.d.ts +0 -17
  357. package/dist/plugins/web/index.d.ts.map +0 -1
  358. package/dist/plugins/web/index.js +0 -27
  359. package/dist/plugins/web/index.js.map +0 -1
  360. /package/dist/{adb → ui-tree}/ui-parser/diff-engine.d.ts +0 -0
  361. /package/dist/{adb → ui-tree}/ui-parser/diff-engine.js +0 -0
  362. /package/dist/{adb → ui-tree}/ui-parser/element-builder.d.ts +0 -0
  363. /package/dist/{adb → ui-tree}/ui-parser/element-builder.js +0 -0
  364. /package/dist/{adb → ui-tree}/ui-parser/element-finders.d.ts +0 -0
  365. /package/dist/{adb → ui-tree}/ui-parser/element-finders.js +0 -0
  366. /package/dist/{adb → ui-tree}/ui-parser/formatters/compact.d.ts +0 -0
  367. /package/dist/{adb → ui-tree}/ui-parser/formatters/compact.js +0 -0
  368. /package/dist/{adb → ui-tree}/ui-parser/formatters/full.d.ts +0 -0
  369. /package/dist/{adb → ui-tree}/ui-parser/formatters/full.js +0 -0
  370. /package/dist/{adb → ui-tree}/ui-parser/formatters/index.d.ts +0 -0
  371. /package/dist/{adb → ui-tree}/ui-parser/formatters/index.js +0 -0
  372. /package/dist/{adb → ui-tree}/ui-parser/formatters/semantic.d.ts +0 -0
  373. /package/dist/{adb → ui-tree}/ui-parser/formatters/semantic.js +0 -0
  374. /package/dist/{adb → ui-tree}/ui-parser/node-parser.d.ts +0 -0
  375. /package/dist/{adb → ui-tree}/ui-parser/node-parser.js +0 -0
  376. /package/dist/{adb → ui-tree}/ui-parser/screen-analyzer.d.ts +0 -0
  377. /package/dist/{adb → ui-tree}/ui-parser/screen-analyzer.js +0 -0
  378. /package/dist/{adb → ui-tree}/ui-parser/types.d.ts +0 -0
  379. /package/dist/{adb → ui-tree}/ui-parser/types.js +0 -0
  380. /package/dist/{adb → ui-tree}/ui-parser.d.ts +0 -0
  381. /package/dist/{adb → ui-tree}/ui-parser.js +0 -0
  382. /package/dist/{adb → ui-tree}/ui-scoring.d.ts +0 -0
  383. /package/dist/{adb → ui-tree}/ui-scoring.js +0 -0
  384. /package/dist/{adb → ui-tree}/ui-tree-cache.d.ts +0 -0
  385. /package/dist/{adb → ui-tree}/ui-tree-cache.js +0 -0
@@ -1,223 +0,0 @@
1
- /**
2
- * BrowserAdapter -- implements CorePlatformAdapter only.
3
- *
4
- * Browser has no concept of app management, permissions, or shell access.
5
- * Those capabilities are NOT implemented here -- no more "not supported" throws.
6
- */
7
- import { BrowserClient } from "../browser/client.js";
8
- import { SessionManager } from "../browser/session-manager.js";
9
- import { compressScreenshot } from "../utils/image.js";
10
- import { DEFAULT_SESSION } from "../browser/types.js";
11
- import { BrowserNoSessionError, BrowserSessionNotFoundError } from "../errors.js";
12
- const VIRTUAL_BROWSER_DEVICE = {
13
- id: "browser",
14
- name: "Browser (Chrome)",
15
- platform: "browser",
16
- state: "available",
17
- isSimulator: false,
18
- };
19
- export class BrowserAdapter {
20
- platform = "browser";
21
- sessionManager;
22
- client;
23
- constructor() {
24
- this.sessionManager = new SessionManager();
25
- this.client = new BrowserClient(this.sessionManager);
26
- }
27
- // -- Device management --
28
- listDevices() {
29
- return [VIRTUAL_BROWSER_DEVICE];
30
- }
31
- selectDevice(_deviceId) { }
32
- getSelectedDeviceId() { return "browser"; }
33
- autoDetectDevice() { return VIRTUAL_BROWSER_DEVICE; }
34
- // -- Core actions (via active session) --
35
- getActiveSession(sessionName) {
36
- const name = sessionName ?? DEFAULT_SESSION;
37
- const session = this.sessionManager.getSession(name);
38
- if (!session)
39
- throw new BrowserNoSessionError();
40
- return session;
41
- }
42
- async tap(x, y) {
43
- await this.client.tap(this.getActiveSession(), x, y);
44
- }
45
- async doubleTap(x, y) {
46
- const session = this.getActiveSession();
47
- await this.client.tap(session, x, y);
48
- await new Promise(r => setTimeout(r, 100));
49
- await this.client.tap(session, x, y);
50
- }
51
- async longPress(x, y) {
52
- const session = this.getActiveSession();
53
- await session.cdp.Input.dispatchMouseEvent({ type: "mouseMoved", x, y });
54
- await session.cdp.Input.dispatchMouseEvent({ type: "mousePressed", x, y, button: "left", clickCount: 1 });
55
- await new Promise(r => setTimeout(r, 1000));
56
- await session.cdp.Input.dispatchMouseEvent({ type: "mouseReleased", x, y, button: "left", clickCount: 1 });
57
- }
58
- async swipe(x1, y1, x2, y2, durationMs = 300) {
59
- const session = this.getActiveSession();
60
- const steps = Math.max(5, Math.floor(durationMs / 20));
61
- await session.cdp.Input.dispatchMouseEvent({ type: "mousePressed", x: x1, y: y1, button: "left", clickCount: 1 });
62
- for (let i = 1; i <= steps; i++) {
63
- const x = Math.round(x1 + (x2 - x1) * (i / steps));
64
- const y = Math.round(y1 + (y2 - y1) * (i / steps));
65
- await session.cdp.Input.dispatchMouseEvent({ type: "mouseMoved", x, y });
66
- await new Promise(r => setTimeout(r, durationMs / steps));
67
- }
68
- await session.cdp.Input.dispatchMouseEvent({ type: "mouseReleased", x: x2, y: y2, button: "left", clickCount: 1 });
69
- }
70
- async swipeDirection(direction) {
71
- const { result } = await this.getActiveSession().cdp.Runtime.evaluate({
72
- expression: `JSON.stringify({w: window.innerWidth, h: window.innerHeight})`,
73
- returnByValue: true,
74
- });
75
- const { w = 800, h = 600 } = JSON.parse(result.value ?? "{}");
76
- const cx = w / 2, cy = h / 2;
77
- const offset = Math.min(w, h) * 0.3;
78
- const dirs = {
79
- up: [cx, cy + offset, cx, cy - offset],
80
- down: [cx, cy - offset, cx, cy + offset],
81
- left: [cx + offset, cy, cx - offset, cy],
82
- right: [cx - offset, cy, cx + offset, cy],
83
- };
84
- const [x1, y1, x2, y2] = dirs[direction];
85
- await this.swipe(x1, y1, x2, y2);
86
- }
87
- async inputText(text) {
88
- await this.getActiveSession().cdp.Input.insertText({ text });
89
- }
90
- async pressKey(key) {
91
- await this.client.pressKey(this.getActiveSession(), key);
92
- }
93
- // -- Screenshot --
94
- async screenshotAsync(compress, options) {
95
- const session = this.getActiveSession();
96
- const buffer = await this.client.screenshot(session, false);
97
- if (compress) {
98
- return compressScreenshot(buffer, options);
99
- }
100
- return { data: buffer.toString("base64"), mimeType: "image/png" };
101
- }
102
- async getScreenshotBufferAsync() {
103
- return this.client.screenshot(this.getActiveSession(), false);
104
- }
105
- // -- UI --
106
- async getUiHierarchy() {
107
- return this.client.getSnapshot(this.getActiveSession());
108
- }
109
- // -- System info --
110
- async getSystemInfo() {
111
- const sessions = this.sessionManager.listSessions();
112
- return JSON.stringify({ platform: "browser", activeSessions: sessions.length, sessions }, null, 2);
113
- }
114
- // -- Browser-specific public API (used by browser-tools.ts) --
115
- async open(options) {
116
- const sessionName = options.session ?? DEFAULT_SESSION;
117
- // Close existing session with same name if any
118
- const existing = this.sessionManager.getSession(sessionName);
119
- if (existing) {
120
- await this.client.close(existing);
121
- }
122
- const session = await this.client.launch(options);
123
- const snapshot = await this.client.getSnapshot(session);
124
- return `Opened ${options.url} in session "${sessionName}"\n\n${snapshot}`;
125
- }
126
- async closeSession(session) {
127
- if (!session) {
128
- await this.client.closeAll();
129
- return;
130
- }
131
- const s = this.sessionManager.getSession(session);
132
- if (!s)
133
- throw new BrowserSessionNotFoundError(session, this.sessionManager.listSessions());
134
- await this.client.close(s);
135
- }
136
- async navigate(options) {
137
- const sessionName = options.session ?? DEFAULT_SESSION;
138
- // If no session exists and url is provided, create one
139
- if (!this.sessionManager.hasSession(sessionName) && options.url) {
140
- return this.open({ url: options.url, session: sessionName });
141
- }
142
- const session = this.sessionManager.getSession(sessionName);
143
- if (!session)
144
- throw new BrowserNoSessionError();
145
- await this.client.navigate(session, options);
146
- const snapshot = await this.client.getSnapshot(session);
147
- const action = options.action ?? `navigate to ${options.url}`;
148
- return `${action} in session "${sessionName}"\n\n${snapshot}`;
149
- }
150
- async clickElement(options) {
151
- const sessionName = options.session ?? DEFAULT_SESSION;
152
- const session = this.sessionManager.getSession(sessionName);
153
- if (!session)
154
- throw new BrowserNoSessionError();
155
- const { navigated, newUrl } = await this.client.click(session, options);
156
- if (navigated) {
157
- await new Promise(r => setTimeout(r, 500)); // let page settle
158
- const snapshot = await this.client.getSnapshot(session);
159
- return `Clicked -> navigated to ${newUrl}\n\n${snapshot}`;
160
- }
161
- return `Clicked successfully. Use browser(action:'snapshot') to see changes.`;
162
- }
163
- async fillField(options) {
164
- const session = this.sessionManager.getSession(options.session ?? DEFAULT_SESSION);
165
- if (!session)
166
- throw new BrowserNoSessionError();
167
- await this.client.fill(session, options);
168
- }
169
- async fillForm(options) {
170
- const session = this.sessionManager.getSession(options.session ?? DEFAULT_SESSION);
171
- if (!session)
172
- throw new BrowserNoSessionError();
173
- for (const field of options.fields) {
174
- await this.client.fill(session, { ...field, session: options.session });
175
- }
176
- if (options.submit) {
177
- await session.cdp.Input.dispatchKeyEvent({ type: "keyDown", key: "Enter", code: "Enter", windowsVirtualKeyCode: 13, text: "\r" });
178
- await session.cdp.Input.dispatchKeyEvent({ type: "keyUp", key: "Enter", code: "Enter", windowsVirtualKeyCode: 13 });
179
- }
180
- }
181
- async snapshot(sessionName) {
182
- const session = this.sessionManager.getSession(sessionName ?? DEFAULT_SESSION);
183
- if (!session)
184
- throw new BrowserNoSessionError();
185
- return this.client.getSnapshot(session);
186
- }
187
- async screenshotBrowser(sessionName, fullPage = false) {
188
- const session = this.sessionManager.getSession(sessionName ?? DEFAULT_SESSION);
189
- if (!session)
190
- throw new BrowserNoSessionError();
191
- return this.client.screenshot(session, fullPage);
192
- }
193
- async evaluateJs(expression, sessionName) {
194
- const session = this.sessionManager.getSession(sessionName ?? DEFAULT_SESSION);
195
- if (!session)
196
- throw new BrowserNoSessionError();
197
- console.error(`[browser_evaluate] session=${sessionName ?? DEFAULT_SESSION} expression=${expression.slice(0, 200)}`);
198
- return this.client.evaluate(session, expression);
199
- }
200
- async waitForSelector(selector, timeout = 5000, state = "visible", sessionName) {
201
- const session = this.sessionManager.getSession(sessionName ?? DEFAULT_SESSION);
202
- if (!session)
203
- throw new BrowserNoSessionError();
204
- await this.client.waitForSelector(session, selector, timeout, state);
205
- }
206
- async clearSessionData(sessionName) {
207
- const session = this.sessionManager.getSession(sessionName);
208
- if (session) {
209
- await this.client.close(session);
210
- }
211
- // Remove profile dir
212
- const { rm } = await import("fs/promises");
213
- const profileDir = this.sessionManager.getProfileDir(sessionName);
214
- await rm(profileDir, { recursive: true, force: true });
215
- }
216
- listSessions() {
217
- return this.sessionManager.listSessions();
218
- }
219
- async cleanup() {
220
- await this.client.closeAll();
221
- }
222
- }
223
- //# sourceMappingURL=browser-adapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"browser-adapter.js","sourceRoot":"","sources":["../../src/adapters/browser-adapter.ts"],"names":[],"mappings":"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"}
@@ -1,64 +0,0 @@
1
- /**
2
- * DesktopAdapter -- wraps DesktopClient.
3
- *
4
- * Implements:
5
- * - CorePlatformAdapter (universal)
6
- * - AppManagementAdapter (launchApp / stopApp / installApp)
7
- * - ShellAdapter (shell / logs)
8
- *
9
- * Does NOT implement PermissionAdapter or SyncScreenshotAdapter
10
- * because desktop has no concept of runtime permissions or sync screenshots.
11
- */
12
- import type { CorePlatformAdapter, AppManagementAdapter, ShellAdapter } from "./platform-adapter.js";
13
- import type { Device } from "../device-manager.js";
14
- import { DesktopClient } from "../desktop/client.js";
15
- import type { RawLaunchOptions } from "../desktop/types.js";
16
- export declare class DesktopAdapter implements CorePlatformAdapter, AppManagementAdapter, ShellAdapter {
17
- readonly platform: "desktop";
18
- private client;
19
- constructor(client?: DesktopClient);
20
- /** Raw client access -- needed by tools that call getDesktopClient(). */
21
- getClient(): DesktopClient;
22
- listDevices(): Device[];
23
- selectDevice(_deviceId: string): void;
24
- getSelectedDeviceId(): string | undefined;
25
- autoDetectDevice(): Device | undefined;
26
- isRunning(): boolean;
27
- getState(): import("../desktop/types.js").DesktopState;
28
- launch(options: RawLaunchOptions): Promise<void>;
29
- stop(): Promise<void>;
30
- private ensureRunning;
31
- tap(x: number, y: number, targetPid?: number): Promise<void>;
32
- doubleTap(x: number, y: number, intervalMs?: number): Promise<void>;
33
- longPress(x: number, y: number, durationMs?: number): Promise<void>;
34
- swipe(x1: number, y1: number, x2: number, y2: number, durationMs?: number): Promise<void>;
35
- swipeDirection(direction: "up" | "down" | "left" | "right"): Promise<void>;
36
- inputText(text: string, targetPid?: number): Promise<void>;
37
- pressKey(key: string, targetPid?: number): Promise<void>;
38
- /**
39
- * Resolve the main window ID for the target process.
40
- * Returns undefined if no targetPid or no matching window found.
41
- */
42
- private resolveTargetWindowId;
43
- screenshotAsync(_compress?: boolean, options?: {
44
- monitorIndex?: number;
45
- }): Promise<{
46
- data: string;
47
- mimeType: string;
48
- }>;
49
- getScreenshotBufferAsync(): Promise<Buffer>;
50
- getUiHierarchy(): Promise<string>;
51
- launchApp(packageName: string): Promise<string>;
52
- stopApp(packageName: string): void;
53
- installApp(_path: string): string;
54
- shell(command: string): string;
55
- getLogs(options?: {
56
- level?: string;
57
- tag?: string;
58
- lines?: number;
59
- package?: string;
60
- }): string;
61
- clearLogs(): string;
62
- getSystemInfo(): Promise<string>;
63
- }
64
- //# sourceMappingURL=desktop-adapter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"desktop-adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/desktop-adapter.ts"],"names":[],"mappings":"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"}
@@ -1,202 +0,0 @@
1
- /**
2
- * DesktopAdapter -- wraps DesktopClient.
3
- *
4
- * Implements:
5
- * - CorePlatformAdapter (universal)
6
- * - AppManagementAdapter (launchApp / stopApp / installApp)
7
- * - ShellAdapter (shell / logs)
8
- *
9
- * Does NOT implement PermissionAdapter or SyncScreenshotAdapter
10
- * because desktop has no concept of runtime permissions or sync screenshots.
11
- */
12
- import { DesktopClient } from "../desktop/client.js";
13
- export class DesktopAdapter {
14
- platform = "desktop";
15
- client;
16
- constructor(client) {
17
- this.client = client ?? new DesktopClient();
18
- }
19
- /** Raw client access -- needed by tools that call getDesktopClient(). */
20
- getClient() {
21
- return this.client;
22
- }
23
- // ============ Device management ============
24
- listDevices() {
25
- if (!this.client.isRunning()) {
26
- return [];
27
- }
28
- const state = this.client.getState();
29
- return [
30
- {
31
- id: "desktop",
32
- name: "Desktop App",
33
- platform: "desktop",
34
- state: state.status,
35
- isSimulator: false,
36
- },
37
- ];
38
- }
39
- selectDevice(_deviceId) {
40
- // Desktop has no notion of device selection -- it's always "desktop".
41
- // No-op; the important thing is that activeTarget is set in DeviceManager.
42
- }
43
- getSelectedDeviceId() {
44
- return this.client.isRunning() ? "desktop" : undefined;
45
- }
46
- autoDetectDevice() {
47
- if (!this.client.isRunning())
48
- return undefined;
49
- const state = this.client.getState();
50
- return {
51
- id: "desktop",
52
- name: "Desktop App",
53
- platform: "desktop",
54
- state: state.status,
55
- isSimulator: false,
56
- };
57
- }
58
- // ============ Desktop-specific lifecycle ============
59
- isRunning() {
60
- return this.client.isRunning();
61
- }
62
- getState() {
63
- return this.client.getState();
64
- }
65
- async launch(options) {
66
- await this.client.launch(options);
67
- }
68
- async stop() {
69
- await this.client.stop();
70
- }
71
- // ============ Core actions ============
72
- ensureRunning() {
73
- if (!this.client.isRunning()) {
74
- throw new Error("Desktop app is not running. Use desktop(action:'launch') first.");
75
- }
76
- }
77
- async tap(x, y, targetPid) {
78
- this.ensureRunning();
79
- await this.client.tap(x, y, targetPid);
80
- }
81
- async doubleTap(x, y, intervalMs = 100) {
82
- this.ensureRunning();
83
- await this.client.tap(x, y);
84
- await new Promise(resolve => setTimeout(resolve, intervalMs));
85
- await this.client.tap(x, y);
86
- }
87
- async longPress(x, y, durationMs = 1000) {
88
- this.ensureRunning();
89
- await this.client.longPress(x, y, durationMs);
90
- }
91
- async swipe(x1, y1, x2, y2, durationMs = 300) {
92
- this.ensureRunning();
93
- await this.client.swipe(x1, y1, x2, y2, durationMs);
94
- }
95
- async swipeDirection(direction) {
96
- this.ensureRunning();
97
- await this.client.swipeDirection(direction);
98
- }
99
- async inputText(text, targetPid) {
100
- this.ensureRunning();
101
- await this.client.inputText(text, targetPid);
102
- }
103
- async pressKey(key, targetPid) {
104
- this.ensureRunning();
105
- await this.client.pressKey(key, undefined, targetPid);
106
- }
107
- // ============ Screenshot ============
108
- /**
109
- * Resolve the main window ID for the target process.
110
- * Returns undefined if no targetPid or no matching window found.
111
- */
112
- async resolveTargetWindowId() {
113
- const pid = this.client.targetPid;
114
- if (!pid)
115
- return undefined;
116
- try {
117
- const info = await this.client.getWindowInfo();
118
- // Prefer focused window of target process, fall back to first window
119
- const targetWindows = info.windows.filter((w) => w.processId === pid);
120
- const focused = targetWindows.find((w) => w.focused);
121
- return (focused ?? targetWindows[0])?.id;
122
- }
123
- catch {
124
- return undefined;
125
- }
126
- }
127
- async screenshotAsync(_compress = true, options) {
128
- this.ensureRunning();
129
- const windowId = await this.resolveTargetWindowId();
130
- const result = await this.client.screenshotWithMeta({
131
- windowId,
132
- monitorIndex: options?.monitorIndex,
133
- });
134
- return { data: result.base64, mimeType: result.mimeType };
135
- }
136
- async getScreenshotBufferAsync() {
137
- this.ensureRunning();
138
- const windowId = await this.resolveTargetWindowId();
139
- const result = await this.client.screenshotWithMeta({ windowId });
140
- return Buffer.from(result.base64, "base64");
141
- }
142
- // ============ UI ============
143
- async getUiHierarchy() {
144
- this.ensureRunning();
145
- const hierarchy = await this.client.getUiHierarchy();
146
- return formatDesktopHierarchy(hierarchy);
147
- }
148
- // ============ App management (AppManagementAdapter) ============
149
- async launchApp(packageName) {
150
- return this.client.launchApp(packageName);
151
- }
152
- stopApp(packageName) {
153
- this.client.stopApp(packageName);
154
- }
155
- installApp(_path) {
156
- return "Desktop platform doesn't support app installation";
157
- }
158
- // ============ Shell / Logs (ShellAdapter) ============
159
- shell(command) {
160
- return this.client.shell(command);
161
- }
162
- getLogs(options = {}) {
163
- const logs = this.client.getLogs({
164
- limit: options.lines ?? 100,
165
- });
166
- return logs.map((l) => `[${l.type}] ${l.message}`).join("\n");
167
- }
168
- clearLogs() {
169
- this.client.clearLogs();
170
- return "Desktop logs cleared";
171
- }
172
- // ============ System info ============
173
- async getSystemInfo() {
174
- this.ensureRunning();
175
- const metrics = await this.client.getPerformanceMetrics();
176
- return `=== Desktop Performance ===\nMemory: ${metrics.memoryUsageMb} MB${metrics.cpuPercent ? `\nCPU: ${metrics.cpuPercent}%` : ""}`;
177
- }
178
- }
179
- // ============ Helpers (moved from old device-manager.ts) ============
180
- /**
181
- * Format desktop UI hierarchy as text
182
- */
183
- function formatDesktopHierarchy(hierarchy) {
184
- const lines = [];
185
- lines.push(`Scale Factor: ${hierarchy.scaleFactor}`);
186
- lines.push(`\n=== Windows (${hierarchy.windows.length}) ===`);
187
- for (const win of hierarchy.windows) {
188
- const focused = win.focused ? " [FOCUSED]" : "";
189
- lines.push(` ${win.title}${focused} (${win.bounds.width}x${win.bounds.height})`);
190
- }
191
- lines.push(`\n=== UI Elements (${hierarchy.elements.length}) ===`);
192
- for (const el of hierarchy.elements) {
193
- const text = el.text ? `"${el.text}"` : "";
194
- const role = el.role || el.className;
195
- const clickable = el.clickable ? " [clickable]" : "";
196
- const focused = el.focused ? " [focused]" : "";
197
- lines.push(`[${el.index}] ${role} ${text}${clickable}${focused} ` +
198
- `(${el.centerX}, ${el.centerY}) [${el.bounds.x},${el.bounds.y},${el.bounds.width},${el.bounds.height}]`);
199
- }
200
- return lines.join("\n");
201
- }
202
- //# sourceMappingURL=desktop-adapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"desktop-adapter.js","sourceRoot":"","sources":["../../src/adapters/desktop-adapter.ts"],"names":[],"mappings":"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"}
@@ -1,60 +0,0 @@
1
- /**
2
- * IosAdapter -- wraps IosClient.
3
- *
4
- * Implements all capability interfaces:
5
- * - CorePlatformAdapter
6
- * - AppManagementAdapter
7
- * - PermissionAdapter
8
- * - ShellAdapter
9
- * - SyncScreenshotAdapter
10
- */
11
- import type { CorePlatformAdapter, AppManagementAdapter, PermissionAdapter, ShellAdapter, SyncScreenshotAdapter } from "./platform-adapter.js";
12
- import type { Device } from "../device-manager.js";
13
- import { IosClient } from "../ios/client.js";
14
- import { type CompressOptions } from "../utils/image.js";
15
- export declare class IosAdapter implements CorePlatformAdapter, AppManagementAdapter, PermissionAdapter, ShellAdapter, SyncScreenshotAdapter {
16
- readonly platform: "ios";
17
- private client;
18
- private _selectedDeviceId;
19
- constructor(client?: IosClient);
20
- /** Raw client access -- needed by tools that call getIosClient(). */
21
- getClient(deviceId?: string): IosClient;
22
- /** Return a client targeting deviceId without mutating global state. */
23
- private clientFor;
24
- listDevices(): Device[];
25
- selectDevice(deviceId: string): void;
26
- getSelectedDeviceId(): string | undefined;
27
- autoDetectDevice(): Device | undefined;
28
- tap(x: number, y: number, _targetPid?: number, deviceId?: string): Promise<void>;
29
- doubleTap(x: number, y: number, intervalMs?: number, deviceId?: string): Promise<void>;
30
- longPress(x: number, y: number, durationMs?: number, deviceId?: string): Promise<void>;
31
- swipe(x1: number, y1: number, x2: number, y2: number, durationMs?: number, deviceId?: string): Promise<void>;
32
- swipeDirection(direction: "up" | "down" | "left" | "right", deviceId?: string): Promise<void>;
33
- inputText(text: string, _targetPid?: number, deviceId?: string): Promise<void>;
34
- pressKey(key: string): Promise<void>;
35
- screenshotAsync(compress?: boolean, options?: CompressOptions & {
36
- monitorIndex?: number;
37
- }, deviceId?: string): Promise<{
38
- data: string;
39
- mimeType: string;
40
- }>;
41
- getScreenshotBufferAsync(deviceId?: string): Promise<Buffer>;
42
- screenshotRaw(): string;
43
- getUiHierarchy(deviceId?: string): Promise<string>;
44
- launchApp(bundleId: string, deviceId?: string): string;
45
- stopApp(bundleId: string, deviceId?: string): void;
46
- installApp(path: string): string;
47
- grantPermission(bundleId: string, service: string): string;
48
- revokePermission(bundleId: string, service: string): string;
49
- resetPermissions(bundleId: string): string;
50
- shell(command: string): string;
51
- getLogs(options?: {
52
- level?: string;
53
- tag?: string;
54
- lines?: number;
55
- package?: string;
56
- }): string;
57
- clearLogs(): string;
58
- getSystemInfo(): Promise<string>;
59
- }
60
- //# sourceMappingURL=ios-adapter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ios-adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/ios-adapter.ts"],"names":[],"mappings":"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"}