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,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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"}
@@ -1,146 +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 { IosClient } from "../ios/client.js";
12
- import { MobileError } from "../errors.js";
13
- import { compressScreenshot } from "../utils/image.js";
14
- export class IosAdapter {
15
- platform = "ios";
16
- client;
17
- _selectedDeviceId;
18
- constructor(client) {
19
- this.client = client ?? new IosClient();
20
- this._selectedDeviceId = this.client.getDeviceId();
21
- }
22
- /** Raw client access -- needed by tools that call getIosClient(). */
23
- getClient(deviceId) {
24
- return this.clientFor(deviceId);
25
- }
26
- /** Return a client targeting deviceId without mutating global state. */
27
- clientFor(deviceId) {
28
- if (!deviceId || deviceId === this._selectedDeviceId)
29
- return this.client;
30
- return new IosClient(deviceId);
31
- }
32
- // ============ Device management ============
33
- listDevices() {
34
- try {
35
- const raw = this.client.getDevices();
36
- return raw.map((d) => ({
37
- id: d.id,
38
- name: d.name,
39
- platform: "ios",
40
- state: d.state,
41
- isSimulator: d.isSimulator,
42
- }));
43
- }
44
- catch (e) {
45
- if (e instanceof MobileError && e.code === "SIMCTL_NOT_INSTALLED")
46
- throw e;
47
- return [];
48
- }
49
- }
50
- selectDevice(deviceId) {
51
- this._selectedDeviceId = deviceId;
52
- this.client.setDevice(deviceId);
53
- }
54
- getSelectedDeviceId() {
55
- return this._selectedDeviceId;
56
- }
57
- autoDetectDevice() {
58
- const devices = this.listDevices();
59
- return devices.find((d) => d.state === "device" || d.state === "booted" || d.state === "connected");
60
- }
61
- // ============ Core actions ============
62
- async tap(x, y, _targetPid, deviceId) {
63
- await this.clientFor(deviceId).tap(x, y, deviceId);
64
- }
65
- async doubleTap(x, y, intervalMs = 100, deviceId) {
66
- const c = this.clientFor(deviceId);
67
- await c.tap(x, y, deviceId);
68
- await new Promise(resolve => setTimeout(resolve, intervalMs));
69
- await c.tap(x, y, deviceId);
70
- }
71
- async longPress(x, y, durationMs = 1000, deviceId) {
72
- await this.clientFor(deviceId).longPress(x, y, durationMs, deviceId);
73
- }
74
- async swipe(x1, y1, x2, y2, durationMs = 300, deviceId) {
75
- await this.clientFor(deviceId).swipe(x1, y1, x2, y2, durationMs, deviceId);
76
- }
77
- async swipeDirection(direction, deviceId) {
78
- await this.clientFor(deviceId).swipeDirection(direction);
79
- }
80
- async inputText(text, _targetPid, deviceId) {
81
- await this.clientFor(deviceId).inputText(text, deviceId);
82
- }
83
- async pressKey(key) {
84
- await this.client.pressKey(key);
85
- }
86
- // ============ Screenshot ============
87
- async screenshotAsync(compress = true, options, deviceId) {
88
- const buffer = this.clientFor(deviceId).screenshotRaw(deviceId);
89
- if (compress) {
90
- return compressScreenshot(buffer, options);
91
- }
92
- return { data: buffer.toString("base64"), mimeType: "image/png" };
93
- }
94
- async getScreenshotBufferAsync(deviceId) {
95
- return this.clientFor(deviceId).screenshotRaw(deviceId);
96
- }
97
- screenshotRaw() {
98
- return this.client.screenshot();
99
- }
100
- // ============ UI ============
101
- async getUiHierarchy(deviceId) {
102
- return this.clientFor(deviceId).getUiHierarchy(deviceId);
103
- }
104
- // ============ App management (AppManagementAdapter) ============
105
- launchApp(bundleId, deviceId) {
106
- return this.clientFor(deviceId).launchApp(bundleId, deviceId);
107
- }
108
- stopApp(bundleId, deviceId) {
109
- this.clientFor(deviceId).stopApp(bundleId, deviceId);
110
- }
111
- installApp(path) {
112
- return this.client.installApp(path);
113
- }
114
- // ============ Permissions (PermissionAdapter) ============
115
- grantPermission(bundleId, service) {
116
- this.client.grantPermission(bundleId, service);
117
- return `Granted ${service} to ${bundleId}`;
118
- }
119
- revokePermission(bundleId, service) {
120
- this.client.revokePermission(bundleId, service);
121
- return `Revoked ${service} from ${bundleId}`;
122
- }
123
- resetPermissions(bundleId) {
124
- this.client.resetPermissions(bundleId);
125
- return `Reset permissions for ${bundleId}`;
126
- }
127
- // ============ Shell / Logs (ShellAdapter) ============
128
- shell(command) {
129
- return this.client.shell(command);
130
- }
131
- getLogs(options = {}) {
132
- return this.client.getLogs({
133
- level: options.level,
134
- lines: options.lines,
135
- predicate: options.package ? `subsystem == "${options.package}"` : undefined,
136
- });
137
- }
138
- clearLogs() {
139
- return this.client.clearLogs();
140
- }
141
- // ============ System info ============
142
- async getSystemInfo() {
143
- return "System info is only available for Android and Aurora devices.";
144
- }
145
- }
146
- //# sourceMappingURL=ios-adapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ios-adapter.js","sourceRoot":"","sources":["../../src/adapters/ios-adapter.ts"],"names":[],"mappings":"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"}
@@ -1,238 +0,0 @@
1
- import { type LogcatOptions } from "./logcat.js";
2
- export { escapeAndroidInputText, splitArgs } from "./text-escape.js";
3
- export { UiTreeCache } from "./ui-tree-cache.js";
4
- export { ANDROID_KEYCODES, ANDROID_KEYCODES_FAST, resolveKeyCode } from "./keycodes.js";
5
- export { EXEC_TIMEOUT_MS, EXEC_RAW_TIMEOUT_MS, execAdb, execAdbAsync, execAdbRaw, execAdbRawAsync, } from "./exec.js";
6
- export interface Device {
7
- id: string;
8
- state: string;
9
- model?: string;
10
- }
11
- export declare class AdbClient {
12
- private deviceId?;
13
- private readonly uiTreeCache;
14
- constructor(deviceId?: string);
15
- private get deviceFlag();
16
- /**
17
- * SECURITY: All adb invocations route through this argv-form path (execFileSync — no /bin/sh -c).
18
- * Shell metacharacters in `args` are passed as literal argv slots, not parsed by the host shell.
19
- * This structurally prevents host-side OS Command Injection (CWE-78) — see issue #40.
20
- */
21
- private execArgs;
22
- private execArgsRaw;
23
- private execArgsAsync;
24
- /**
25
- * Execute ADB command and return stdout as string.
26
- * SECURITY: Command is whitespace-split into argv tokens — shell metachars in the input
27
- * are NOT interpreted (no /bin/sh -c). For commands needing spaces inside an argument
28
- * (e.g. text input with spaces), use the new argv-form via internal helpers.
29
- */
30
- exec(command: string, deviceIdOverride?: string): string;
31
- /**
32
- * Execute ADB command and return raw bytes (for screenshots)
33
- */
34
- execRaw(command: string, deviceIdOverride?: string): Buffer;
35
- /**
36
- * Execute ADB command async (non-blocking)
37
- */
38
- execAsync(command: string, deviceIdOverride?: string): Promise<string>;
39
- /**
40
- * Execute ADB command async and return raw bytes (for screenshots)
41
- */
42
- execRawAsync(command: string, deviceIdOverride?: string): Promise<Buffer>;
43
- /**
44
- * Get list of connected devices
45
- */
46
- getDevices(): Device[];
47
- /**
48
- * Set active device
49
- */
50
- setDevice(deviceId: string): void;
51
- /**
52
- * Get currently configured device ID
53
- */
54
- getDeviceId(): string | undefined;
55
- /**
56
- * Take screenshot and return raw PNG buffer
57
- */
58
- screenshotRaw(): Buffer;
59
- /**
60
- * Take screenshot async (non-blocking)
61
- */
62
- screenshotRawAsync(): Promise<Buffer>;
63
- /**
64
- * Take screenshot and return as base64 PNG (legacy)
65
- */
66
- screenshot(): string;
67
- /**
68
- * Tap at coordinates
69
- */
70
- tap(x: number, y: number): void;
71
- /**
72
- * Double tap at coordinates.
73
- * Device-side composition via single sh -c argv slot — host shell never parses the metachars.
74
- * Inputs are validated numerics; user-controlled strings never reach this code path.
75
- */
76
- doubleTap(x: number, y: number, intervalMs?: number): void;
77
- /**
78
- * Select all text in focused input
79
- */
80
- selectAll(): void;
81
- /**
82
- * Copy to clipboard
83
- */
84
- copyToClipboard(): void;
85
- /**
86
- * Paste from clipboard
87
- */
88
- pasteFromClipboard(): void;
89
- /**
90
- * Get clipboard text
91
- */
92
- getClipboardText(): string;
93
- /**
94
- * Long press at coordinates
95
- */
96
- longPress(x: number, y: number, durationMs?: number): void;
97
- /**
98
- * Swipe gesture
99
- */
100
- swipe(x1: number, y1: number, x2: number, y2: number, durationMs?: number): void;
101
- /**
102
- * Swipe in direction (uses screen center)
103
- */
104
- swipeDirection(direction: "up" | "down" | "left" | "right", distance?: number): void;
105
- /**
106
- * Input text.
107
- * The full `shell input text "<escaped>"` string passes as a SINGLE argv slot to adb,
108
- * so the host shell never parses it (host-side CWE-78 closed). adb ships the string
109
- * verbatim to the device shell, which parses the double-quoted form safely thanks to
110
- * the per-character escape below.
111
- */
112
- inputText(text: string): void;
113
- /**
114
- * Press key by name or keycode
115
- */
116
- pressKey(key: string): void;
117
- /**
118
- * Invalidate the turbo UI tree cache.
119
- * Call after actions that mutate the screen (tap, swipe, input, etc.)
120
- * so the next getUiHierarchy call fetches fresh data.
121
- */
122
- invalidateUiTreeCache(): void;
123
- /**
124
- * Get UI hierarchy XML (sync — blocks event loop)
125
- */
126
- getUiHierarchy(turbo?: boolean): string;
127
- /**
128
- * Get UI hierarchy XML async (non-blocking)
129
- */
130
- getUiHierarchyAsync(turbo?: boolean): Promise<string>;
131
- /**
132
- * Execute an action + uiautomator dump in a single adb shell invocation (turbo only).
133
- * Reduces two process spawns to one, saving ~150-300ms per step.
134
- * Returns { actionOutput: string; uiXml: string }.
135
- *
136
- * SECURITY: Device-side composition via single sh -c argv slot — host shell never parses
137
- * the metachars. `actionCommand` originates from internal turbo helpers (tap/swipe/press),
138
- * which validate numeric inputs; user-controlled strings do not reach this path.
139
- */
140
- execWithUiDump(actionCommand: string, deviceIdOverride?: string): Promise<{
141
- actionOutput: string;
142
- uiXml: string;
143
- }>;
144
- /**
145
- * Tap at coordinates (async, non-blocking — for turbo mode).
146
- */
147
- tapAsync(x: number, y: number, deviceIdOverride?: string): Promise<void>;
148
- /**
149
- * Swipe gesture (async, non-blocking — for turbo mode).
150
- */
151
- swipeAsync(x1: number, y1: number, x2: number, y2: number, durationMs?: number, deviceIdOverride?: string): Promise<void>;
152
- /**
153
- * Press key (async, non-blocking — for turbo mode).
154
- */
155
- pressKeyAsync(key: string, deviceIdOverride?: string): Promise<void>;
156
- /**
157
- * Input text (async, non-blocking — for turbo mode).
158
- */
159
- inputTextAsync(text: string, deviceIdOverride?: string): Promise<void>;
160
- /**
161
- * Launch app by package name
162
- */
163
- launchApp(packageName: string): string;
164
- /**
165
- * Stop app
166
- */
167
- stopApp(packageName: string): void;
168
- /**
169
- * Clear app data
170
- */
171
- clearAppData(packageName: string): void;
172
- /**
173
- * Grant runtime permission to app
174
- */
175
- grantPermission(packageName: string, permission: string): void;
176
- /**
177
- * Revoke runtime permission from app
178
- */
179
- revokePermission(packageName: string, permission: string): void;
180
- /**
181
- * Reset all permissions for app (clears app data)
182
- */
183
- resetPermissions(packageName: string): void;
184
- /**
185
- * Install APK
186
- */
187
- installApk(apkPath: string): string;
188
- /**
189
- * Uninstall app
190
- */
191
- uninstallApp(packageName: string): string;
192
- /**
193
- * Get current activity
194
- */
195
- getCurrentActivity(): string;
196
- /**
197
- * Get screen size
198
- */
199
- getScreenSize(): {
200
- width: number;
201
- height: number;
202
- };
203
- /**
204
- * Wait for device
205
- */
206
- waitForDevice(): void;
207
- /**
208
- * Execute shell command
209
- */
210
- shell(command: string): string;
211
- /**
212
- * Get device logs (logcat)
213
- * @param options - filter options
214
- */
215
- getLogs(options?: LogcatOptions): string;
216
- /**
217
- * Clear logcat buffer
218
- */
219
- clearLogs(): void;
220
- /**
221
- * Get network stats (first 100 lines).
222
- * Node-side filter replaces device-side `| head -100` so we can use argv-form (no shell pipe).
223
- */
224
- getNetworkStats(): string;
225
- /**
226
- * Get battery info
227
- */
228
- getBatteryInfo(): string;
229
- /**
230
- * Get memory info
231
- */
232
- getMemoryInfo(packageName?: string): string;
233
- /**
234
- * Get CPU info (first 20 lines).
235
- */
236
- getCpuInfo(): string;
237
- }
238
- //# sourceMappingURL=client.d.ts.map