visionclaw 0.1.195-beta.0 → 0.1.195-dev.feat-e2e-test-system.1

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 (345) hide show
  1. package/dist/agent/command-handlers.d.ts.map +1 -1
  2. package/dist/agent/command-handlers.js +17 -0
  3. package/dist/agent/command-handlers.js.map +1 -1
  4. package/dist/builtin-skills/catalog/equity-research/SKILL.md +256 -0
  5. package/dist/builtin-skills/catalog/financial-modeling/SKILL.md +186 -0
  6. package/dist/builtin-skills/catalog/investment-banking/SKILL.md +213 -0
  7. package/dist/builtin-skills/catalog/private-equity/SKILL.md +282 -0
  8. package/dist/builtin-skills/catalog/wealth-management/SKILL.md +252 -0
  9. package/dist/channels/interface.d.ts +9 -0
  10. package/dist/channels/interface.d.ts.map +1 -1
  11. package/dist/channels/manager.d.ts.map +1 -1
  12. package/dist/channels/manager.js +3 -0
  13. package/dist/channels/manager.js.map +1 -1
  14. package/dist/channels/telegram.d.ts.map +1 -1
  15. package/dist/channels/telegram.js +7 -1
  16. package/dist/channels/telegram.js.map +1 -1
  17. package/dist/config/types.d.ts +6 -0
  18. package/dist/config/types.d.ts.map +1 -1
  19. package/dist/config/types.js +10 -0
  20. package/dist/config/types.js.map +1 -1
  21. package/dist/e2e/artifacts.d.ts +8 -0
  22. package/dist/e2e/artifacts.d.ts.map +1 -0
  23. package/dist/e2e/artifacts.js +35 -0
  24. package/dist/e2e/artifacts.js.map +1 -0
  25. package/dist/e2e/cleanup.d.ts +8 -0
  26. package/dist/e2e/cleanup.d.ts.map +1 -0
  27. package/dist/e2e/cleanup.js +108 -0
  28. package/dist/e2e/cleanup.js.map +1 -0
  29. package/dist/e2e/cli.d.ts +4 -0
  30. package/dist/e2e/cli.d.ts.map +1 -0
  31. package/dist/e2e/cli.js +16 -0
  32. package/dist/e2e/cli.js.map +1 -0
  33. package/dist/e2e/index.d.ts +5 -0
  34. package/dist/e2e/index.d.ts.map +1 -0
  35. package/dist/e2e/index.js +4 -0
  36. package/dist/e2e/index.js.map +1 -0
  37. package/dist/e2e/local-test-server.d.ts +7 -0
  38. package/dist/e2e/local-test-server.d.ts.map +1 -0
  39. package/dist/e2e/local-test-server.js +75 -0
  40. package/dist/e2e/local-test-server.js.map +1 -0
  41. package/dist/e2e/oauth-setup-store.d.ts +28 -0
  42. package/dist/e2e/oauth-setup-store.d.ts.map +1 -0
  43. package/dist/e2e/oauth-setup-store.js +56 -0
  44. package/dist/e2e/oauth-setup-store.js.map +1 -0
  45. package/dist/e2e/parser.d.ts +4 -0
  46. package/dist/e2e/parser.d.ts.map +1 -0
  47. package/dist/e2e/parser.js +52 -0
  48. package/dist/e2e/parser.js.map +1 -0
  49. package/dist/e2e/registry.d.ts +3 -0
  50. package/dist/e2e/registry.d.ts.map +1 -0
  51. package/dist/e2e/registry.js +44 -0
  52. package/dist/e2e/registry.js.map +1 -0
  53. package/dist/e2e/reporter.d.ts +6 -0
  54. package/dist/e2e/reporter.d.ts.map +1 -0
  55. package/dist/e2e/reporter.js +56 -0
  56. package/dist/e2e/reporter.js.map +1 -0
  57. package/dist/e2e/runner.d.ts +4 -0
  58. package/dist/e2e/runner.d.ts.map +1 -0
  59. package/dist/e2e/runner.js +116 -0
  60. package/dist/e2e/runner.js.map +1 -0
  61. package/dist/e2e/setup-google-guest.d.ts +19 -0
  62. package/dist/e2e/setup-google-guest.d.ts.map +1 -0
  63. package/dist/e2e/setup-google-guest.js +205 -0
  64. package/dist/e2e/setup-google-guest.js.map +1 -0
  65. package/dist/e2e/suite-utils.d.ts +19 -0
  66. package/dist/e2e/suite-utils.d.ts.map +1 -0
  67. package/dist/e2e/suite-utils.js +60 -0
  68. package/dist/e2e/suite-utils.js.map +1 -0
  69. package/dist/e2e/suites/agent.d.ts +3 -0
  70. package/dist/e2e/suites/agent.d.ts.map +1 -0
  71. package/dist/e2e/suites/agent.js +33 -0
  72. package/dist/e2e/suites/agent.js.map +1 -0
  73. package/dist/e2e/suites/browser.d.ts +3 -0
  74. package/dist/e2e/suites/browser.d.ts.map +1 -0
  75. package/dist/e2e/suites/browser.js +58 -0
  76. package/dist/e2e/suites/browser.js.map +1 -0
  77. package/dist/e2e/suites/cua.d.ts +3 -0
  78. package/dist/e2e/suites/cua.d.ts.map +1 -0
  79. package/dist/e2e/suites/cua.js +68 -0
  80. package/dist/e2e/suites/cua.js.map +1 -0
  81. package/dist/e2e/suites/google.d.ts +3 -0
  82. package/dist/e2e/suites/google.d.ts.map +1 -0
  83. package/dist/e2e/suites/google.js +145 -0
  84. package/dist/e2e/suites/google.js.map +1 -0
  85. package/dist/e2e/suites/memory.d.ts +3 -0
  86. package/dist/e2e/suites/memory.d.ts.map +1 -0
  87. package/dist/e2e/suites/memory.js +50 -0
  88. package/dist/e2e/suites/memory.js.map +1 -0
  89. package/dist/e2e/suites/obs.d.ts +3 -0
  90. package/dist/e2e/suites/obs.d.ts.map +1 -0
  91. package/dist/e2e/suites/obs.js +29 -0
  92. package/dist/e2e/suites/obs.js.map +1 -0
  93. package/dist/e2e/suites/self.d.ts +3 -0
  94. package/dist/e2e/suites/self.d.ts.map +1 -0
  95. package/dist/e2e/suites/self.js +65 -0
  96. package/dist/e2e/suites/self.js.map +1 -0
  97. package/dist/e2e/suites/upgrade.d.ts +3 -0
  98. package/dist/e2e/suites/upgrade.d.ts.map +1 -0
  99. package/dist/e2e/suites/upgrade.js +31 -0
  100. package/dist/e2e/suites/upgrade.js.map +1 -0
  101. package/dist/e2e/types.d.ts +91 -0
  102. package/dist/e2e/types.d.ts.map +1 -0
  103. package/dist/e2e/types.js +2 -0
  104. package/dist/e2e/types.js.map +1 -0
  105. package/dist/index.js.map +1 -1
  106. package/dist/service/daemon.d.ts +1 -0
  107. package/dist/service/daemon.d.ts.map +1 -1
  108. package/dist/service/daemon.js +110 -15
  109. package/dist/service/daemon.js.map +1 -1
  110. package/dist/tools/upgrade.d.ts +8 -0
  111. package/dist/tools/upgrade.d.ts.map +1 -1
  112. package/dist/tools/upgrade.js +64 -8
  113. package/dist/tools/upgrade.js.map +1 -1
  114. package/dist-agent/bundle.cjs +32037 -30064
  115. package/package.json +1 -1
  116. package/dist/agent/applied-credential-signature.d.ts +0 -53
  117. package/dist/agent/applied-credential-signature.d.ts.map +0 -1
  118. package/dist/agent/applied-credential-signature.js +0 -137
  119. package/dist/agent/applied-credential-signature.js.map +0 -1
  120. package/dist/agent/engines/claude/cli-resolver.d.ts +0 -16
  121. package/dist/agent/engines/claude/cli-resolver.d.ts.map +0 -1
  122. package/dist/agent/engines/claude/cli-resolver.js +0 -83
  123. package/dist/agent/engines/claude/cli-resolver.js.map +0 -1
  124. package/dist/agent/engines/claude/session-browser-policy.d.ts +0 -9
  125. package/dist/agent/engines/claude/session-browser-policy.d.ts.map +0 -1
  126. package/dist/agent/engines/claude/session-browser-policy.js +0 -49
  127. package/dist/agent/engines/claude/session-browser-policy.js.map +0 -1
  128. package/dist/agent/engines/claude/session.d.ts +0 -304
  129. package/dist/agent/engines/claude/session.d.ts.map +0 -1
  130. package/dist/agent/engines/claude/session.js +0 -1233
  131. package/dist/agent/engines/claude/session.js.map +0 -1
  132. package/dist/agent/engines/client-factory.d.ts +0 -63
  133. package/dist/agent/engines/client-factory.d.ts.map +0 -1
  134. package/dist/agent/engines/client-factory.js +0 -382
  135. package/dist/agent/engines/client-factory.js.map +0 -1
  136. package/dist/agent/engines/engine-factory.d.ts +0 -5
  137. package/dist/agent/engines/engine-factory.d.ts.map +0 -1
  138. package/dist/agent/engines/engine-factory.js +0 -7
  139. package/dist/agent/engines/engine-factory.js.map +0 -1
  140. package/dist/agent/engines/engine.d.ts +0 -8
  141. package/dist/agent/engines/engine.d.ts.map +0 -1
  142. package/dist/agent/engines/engine.js +0 -15
  143. package/dist/agent/engines/engine.js.map +0 -1
  144. package/dist/agent/engines/openai/file-session.d.ts +0 -19
  145. package/dist/agent/engines/openai/file-session.d.ts.map +0 -1
  146. package/dist/agent/engines/openai/file-session.js +0 -78
  147. package/dist/agent/engines/openai/file-session.js.map +0 -1
  148. package/dist/agent/engines/openai/file-tools.d.ts +0 -35
  149. package/dist/agent/engines/openai/file-tools.d.ts.map +0 -1
  150. package/dist/agent/engines/openai/file-tools.js +0 -194
  151. package/dist/agent/engines/openai/file-tools.js.map +0 -1
  152. package/dist/agent/engines/openai/session.d.ts +0 -55
  153. package/dist/agent/engines/openai/session.d.ts.map +0 -1
  154. package/dist/agent/engines/openai/session.js +0 -447
  155. package/dist/agent/engines/openai/session.js.map +0 -1
  156. package/dist/agent/engines/openai/tools.d.ts +0 -15
  157. package/dist/agent/engines/openai/tools.d.ts.map +0 -1
  158. package/dist/agent/engines/openai/tools.js +0 -221
  159. package/dist/agent/engines/openai/tools.js.map +0 -1
  160. package/dist/agent/engines/pi/session.d.ts +0 -54
  161. package/dist/agent/engines/pi/session.d.ts.map +0 -1
  162. package/dist/agent/engines/pi/session.js +0 -397
  163. package/dist/agent/engines/pi/session.js.map +0 -1
  164. package/dist/agent/engines/pi/tools.d.ts +0 -19
  165. package/dist/agent/engines/pi/tools.d.ts.map +0 -1
  166. package/dist/agent/engines/pi/tools.js +0 -127
  167. package/dist/agent/engines/pi/tools.js.map +0 -1
  168. package/dist/agent/engines/session-types.d.ts +0 -153
  169. package/dist/agent/engines/session-types.d.ts.map +0 -1
  170. package/dist/agent/engines/session-types.js +0 -2
  171. package/dist/agent/engines/session-types.js.map +0 -1
  172. package/dist/agent/engines/system-prompt-log.d.ts +0 -9
  173. package/dist/agent/engines/system-prompt-log.d.ts.map +0 -1
  174. package/dist/agent/engines/system-prompt-log.js +0 -46
  175. package/dist/agent/engines/system-prompt-log.js.map +0 -1
  176. package/dist/agent/model-provider.d.ts +0 -103
  177. package/dist/agent/model-provider.d.ts.map +0 -1
  178. package/dist/agent/model-provider.js +0 -540
  179. package/dist/agent/model-provider.js.map +0 -1
  180. package/dist/agent/transcript/transcript-backfill.d.ts +0 -54
  181. package/dist/agent/transcript/transcript-backfill.d.ts.map +0 -1
  182. package/dist/agent/transcript/transcript-backfill.js +0 -604
  183. package/dist/agent/transcript/transcript-backfill.js.map +0 -1
  184. package/dist/agent/transcript/transcript-indexer.d.ts +0 -273
  185. package/dist/agent/transcript/transcript-indexer.d.ts.map +0 -1
  186. package/dist/agent/transcript/transcript-indexer.js +0 -1217
  187. package/dist/agent/transcript/transcript-indexer.js.map +0 -1
  188. package/dist/agent/transcript/transcript-memory-migrations.d.ts +0 -25
  189. package/dist/agent/transcript/transcript-memory-migrations.d.ts.map +0 -1
  190. package/dist/agent/transcript/transcript-memory-migrations.js +0 -87
  191. package/dist/agent/transcript/transcript-memory-migrations.js.map +0 -1
  192. package/dist/agent/transcript-memory-migrations.d.ts +0 -25
  193. package/dist/agent/transcript-memory-migrations.d.ts.map +0 -1
  194. package/dist/agent/transcript-memory-migrations.js +0 -87
  195. package/dist/agent/transcript-memory-migrations.js.map +0 -1
  196. package/dist/agent/tunnel-credential-handler.d.ts +0 -90
  197. package/dist/agent/tunnel-credential-handler.d.ts.map +0 -1
  198. package/dist/agent/tunnel-credential-handler.js +0 -162
  199. package/dist/agent/tunnel-credential-handler.js.map +0 -1
  200. package/dist/agent/usage/usage-backfill-handler.d.ts +0 -18
  201. package/dist/agent/usage/usage-backfill-handler.d.ts.map +0 -1
  202. package/dist/agent/usage/usage-backfill-handler.js +0 -69
  203. package/dist/agent/usage/usage-backfill-handler.js.map +0 -1
  204. package/dist/agent/usage/usage-gate.d.ts +0 -25
  205. package/dist/agent/usage/usage-gate.d.ts.map +0 -1
  206. package/dist/agent/usage/usage-gate.js +0 -83
  207. package/dist/agent/usage/usage-gate.js.map +0 -1
  208. package/dist/agent/usage/usage-handler.d.ts +0 -7
  209. package/dist/agent/usage/usage-handler.d.ts.map +0 -1
  210. package/dist/agent/usage/usage-handler.js +0 -28
  211. package/dist/agent/usage/usage-handler.js.map +0 -1
  212. package/dist/agent/usage/usage-report-builder.d.ts +0 -26
  213. package/dist/agent/usage/usage-report-builder.d.ts.map +0 -1
  214. package/dist/agent/usage/usage-report-builder.js +0 -80
  215. package/dist/agent/usage/usage-report-builder.js.map +0 -1
  216. package/dist/agent/usage/usage-report-queue.d.ts +0 -26
  217. package/dist/agent/usage/usage-report-queue.d.ts.map +0 -1
  218. package/dist/agent/usage/usage-report-queue.js +0 -199
  219. package/dist/agent/usage/usage-report-queue.js.map +0 -1
  220. package/dist/agent/usage/usage-report-types.d.ts +0 -41
  221. package/dist/agent/usage/usage-report-types.d.ts.map +0 -1
  222. package/dist/agent/usage/usage-report-types.js +0 -2
  223. package/dist/agent/usage/usage-report-types.js.map +0 -1
  224. package/dist/agent/usage/usage-reporter.d.ts +0 -31
  225. package/dist/agent/usage/usage-reporter.d.ts.map +0 -1
  226. package/dist/agent/usage/usage-reporter.js +0 -102
  227. package/dist/agent/usage/usage-reporter.js.map +0 -1
  228. package/dist/agent/usage-backfill-handler.d.ts +0 -18
  229. package/dist/agent/usage-backfill-handler.d.ts.map +0 -1
  230. package/dist/agent/usage-backfill-handler.js +0 -69
  231. package/dist/agent/usage-backfill-handler.js.map +0 -1
  232. package/dist/agent/usage-gate.d.ts +0 -25
  233. package/dist/agent/usage-gate.d.ts.map +0 -1
  234. package/dist/agent/usage-gate.js +0 -83
  235. package/dist/agent/usage-gate.js.map +0 -1
  236. package/dist/agent/usage-report-builder.d.ts +0 -26
  237. package/dist/agent/usage-report-builder.d.ts.map +0 -1
  238. package/dist/agent/usage-report-builder.js +0 -80
  239. package/dist/agent/usage-report-builder.js.map +0 -1
  240. package/dist/agent/usage-report-queue.d.ts +0 -26
  241. package/dist/agent/usage-report-queue.d.ts.map +0 -1
  242. package/dist/agent/usage-report-queue.js +0 -199
  243. package/dist/agent/usage-report-queue.js.map +0 -1
  244. package/dist/agent/usage-report-types.d.ts +0 -41
  245. package/dist/agent/usage-report-types.d.ts.map +0 -1
  246. package/dist/agent/usage-report-types.js +0 -2
  247. package/dist/agent/usage-report-types.js.map +0 -1
  248. package/dist/agent/usage-reporter.d.ts +0 -31
  249. package/dist/agent/usage-reporter.d.ts.map +0 -1
  250. package/dist/agent/usage-reporter.js +0 -102
  251. package/dist/agent/usage-reporter.js.map +0 -1
  252. package/dist/agent/wake-cycle-tool-tracker.d.ts +0 -39
  253. package/dist/agent/wake-cycle-tool-tracker.d.ts.map +0 -1
  254. package/dist/agent/wake-cycle-tool-tracker.js +0 -72
  255. package/dist/agent/wake-cycle-tool-tracker.js.map +0 -1
  256. package/dist/billing/payg-handler.d.ts +0 -29
  257. package/dist/billing/payg-handler.d.ts.map +0 -1
  258. package/dist/billing/payg-handler.js +0 -92
  259. package/dist/billing/payg-handler.js.map +0 -1
  260. package/dist/billing/payment-handler.d.ts +0 -24
  261. package/dist/billing/payment-handler.d.ts.map +0 -1
  262. package/dist/billing/payment-handler.js +0 -101
  263. package/dist/billing/payment-handler.js.map +0 -1
  264. package/dist/builtin-skills/catalog/phone-adb-automation/SKILL.md +0 -412
  265. package/dist/builtin-skills/catalog/phone-adb-automation/phone_input.sh +0 -132
  266. package/dist/builtin-skills/catalog/phone-adb-automation/phone_launch.sh +0 -166
  267. package/dist/builtin-skills/catalog/phone-adb-automation/phone_screenshot.sh +0 -87
  268. package/dist/builtin-skills/catalog/phone-adb-automation/phone_security_kbd.py +0 -174
  269. package/dist/builtin-skills/catalog/phone-adb-automation/phone_setup.sh +0 -274
  270. package/dist/builtin-skills/catalog/phone-adb-automation/phone_swipe.sh +0 -111
  271. package/dist/builtin-skills/catalog/phone-adb-automation/phone_tap.sh +0 -87
  272. package/dist/builtin-skills/catalog/phone-adb-automation/phone_ui_parse.py +0 -176
  273. package/dist/builtin-skills/catalog/phone-adb-automation/phone_wake_unlock.sh +0 -67
  274. package/dist/builtin-skills/transcribe-audio/SKILL.md +0 -122
  275. package/dist/data-processing/convert-demo-cli.d.ts +0 -7
  276. package/dist/data-processing/convert-demo-cli.d.ts.map +0 -1
  277. package/dist/data-processing/convert-demo-cli.js +0 -30
  278. package/dist/data-processing/convert-demo-cli.js.map +0 -1
  279. package/dist/data-processing/convert-demo.d.ts +0 -26
  280. package/dist/data-processing/convert-demo.d.ts.map +0 -1
  281. package/dist/data-processing/convert-demo.js +0 -233
  282. package/dist/data-processing/convert-demo.js.map +0 -1
  283. package/dist/obs/rdp/icons/icons/app_windows.svg +0 -4
  284. package/dist/obs/rdp/icons/icons/clip_get.svg +0 -4
  285. package/dist/obs/rdp/icons/icons/clip_send.svg +0 -4
  286. package/dist/obs/rdp/icons/icons/clip_shared.svg +0 -4
  287. package/dist/obs/rdp/icons/icons/clipboard.svg +0 -4
  288. package/dist/obs/rdp/icons/icons/clipboard_shared.svg +0 -4
  289. package/dist/obs/rdp/icons/icons/control.svg +0 -4
  290. package/dist/obs/rdp/icons/icons/desktop.svg +0 -4
  291. package/dist/obs/rdp/icons/icons/display.svg +0 -4
  292. package/dist/obs/rdp/icons/icons/launchpad.svg +0 -4
  293. package/dist/obs/rdp/icons/icons/mission_control.svg +0 -4
  294. package/dist/obs/rdp/icons/icons/screenshot.svg +0 -4
  295. package/dist/obs/rdp/icons/icons/zoom_actual.svg +0 -4
  296. package/dist/obs/rdp/icons/icons/zoom_fit.svg +0 -4
  297. package/dist/obs/rdp/icons/icons/zoom_in.svg +0 -4
  298. package/dist/obs/rdp/icons/icons/zoom_out.svg +0 -4
  299. package/dist/obs/tunnel-telemetry.d.ts +0 -46
  300. package/dist/obs/tunnel-telemetry.d.ts.map +0 -1
  301. package/dist/obs/tunnel-telemetry.js +0 -70
  302. package/dist/obs/tunnel-telemetry.js.map +0 -1
  303. package/dist/onboarding/cloudflared-cert.d.ts +0 -15
  304. package/dist/onboarding/cloudflared-cert.d.ts.map +0 -1
  305. package/dist/onboarding/cloudflared-cert.js +0 -57
  306. package/dist/onboarding/cloudflared-cert.js.map +0 -1
  307. package/dist/onboarding/playwriter-extension.d.ts +0 -19
  308. package/dist/onboarding/playwriter-extension.d.ts.map +0 -1
  309. package/dist/onboarding/playwriter-extension.js +0 -246
  310. package/dist/onboarding/playwriter-extension.js.map +0 -1
  311. package/dist/realtime/websocket.d.ts +0 -7
  312. package/dist/realtime/websocket.d.ts.map +0 -1
  313. package/dist/realtime/websocket.js +0 -65
  314. package/dist/realtime/websocket.js.map +0 -1
  315. package/dist/service/gbox-tun.d.ts +0 -14
  316. package/dist/service/gbox-tun.d.ts.map +0 -1
  317. package/dist/service/gbox-tun.js +0 -315
  318. package/dist/service/gbox-tun.js.map +0 -1
  319. package/dist/skills/installed.d.ts +0 -11
  320. package/dist/skills/installed.d.ts.map +0 -1
  321. package/dist/skills/installed.js +0 -35
  322. package/dist/skills/installed.js.map +0 -1
  323. package/dist/tools/coordinate-resolver.d.ts +0 -30
  324. package/dist/tools/coordinate-resolver.d.ts.map +0 -1
  325. package/dist/tools/coordinate-resolver.js +0 -104
  326. package/dist/tools/coordinate-resolver.js.map +0 -1
  327. package/dist/utils/playwriter-relay.d.ts +0 -9
  328. package/dist/utils/playwriter-relay.d.ts.map +0 -1
  329. package/dist/utils/playwriter-relay.js +0 -77
  330. package/dist/utils/playwriter-relay.js.map +0 -1
  331. package/dist/utils/wechat-monitor.d.ts +0 -21
  332. package/dist/utils/wechat-monitor.d.ts.map +0 -1
  333. package/dist/utils/wechat-monitor.js +0 -88
  334. package/dist/utils/wechat-monitor.js.map +0 -1
  335. package/dist-agent/realtime/assets/index.html +0 -1058
  336. package/dist-agent/realtime/assets/samples/alloy.mp3 +0 -0
  337. package/dist-agent/realtime/assets/samples/ash.mp3 +0 -0
  338. package/dist-agent/realtime/assets/samples/ballad.mp3 +0 -0
  339. package/dist-agent/realtime/assets/samples/cedar.mp3 +0 -0
  340. package/dist-agent/realtime/assets/samples/coral.mp3 +0 -0
  341. package/dist-agent/realtime/assets/samples/echo.mp3 +0 -0
  342. package/dist-agent/realtime/assets/samples/marin.mp3 +0 -0
  343. package/dist-agent/realtime/assets/samples/sage.mp3 +0 -0
  344. package/dist-agent/realtime/assets/samples/shimmer.mp3 +0 -0
  345. package/dist-agent/realtime/assets/samples/verse.mp3 +0 -0
@@ -1,132 +0,0 @@
1
- #!/usr/bin/env bash
2
- # phone_input.sh - Input text on Android phone via ADB
3
- #
4
- # Usage:
5
- # bash phone_input.sh <text> [options]
6
- #
7
- # Options:
8
- # -d DEVICE_ID Target specific device
9
- # -m METHOD Input method: "direct" (default), "adbkbd", "clipboard"
10
- # -e Send Enter key after input
11
- # -c Clear existing text first (select all + delete)
12
- # -q Quiet mode
13
- #
14
- # Methods:
15
- # direct - adb shell input text (English/numbers only)
16
- # adbkbd - ADBKeyboard broadcast (supports Chinese, requires ADBKeyboard app)
17
- # clipboard - Set clipboard + paste (requires Android 10+, may not work on all devices)
18
- #
19
- # Notes:
20
- # - Direct method does NOT support Chinese/CJK characters
21
- # - Special characters (spaces, quotes) are escaped automatically
22
- # - For Chinese input, install ADBKeyboard and use -m adbkbd
23
- #
24
- # Examples:
25
- # bash phone_input.sh "hello world" # English text
26
- # bash phone_input.sh "hello" -e # Type and press Enter
27
- # bash phone_input.sh "你好" -m adbkbd # Chinese via ADBKeyboard
28
- # bash phone_input.sh "new text" -c # Clear field first, then type
29
-
30
- set -euo pipefail
31
-
32
- DEVICE=""
33
- METHOD="direct"
34
- ENTER=false
35
- CLEAR=false
36
- QUIET=false
37
-
38
- # Parse args
39
- POSITIONAL=()
40
- ARGV=("$@")
41
- i=0
42
- while [ $i -lt ${#ARGV[@]} ]; do
43
- case "${ARGV[$i]}" in
44
- -d) DEVICE="${ARGV[$((i+1))]}"; i=$((i+2)) ;;
45
- -m) METHOD="${ARGV[$((i+1))]}"; i=$((i+2)) ;;
46
- -e) ENTER=true; i=$((i+1)) ;;
47
- -c) CLEAR=true; i=$((i+1)) ;;
48
- -q) QUIET=true; i=$((i+1)) ;;
49
- -*) echo "Unknown option: ${ARGV[$i]}" >&2; exit 1 ;;
50
- *) POSITIONAL+=("${ARGV[$i]}"); i=$((i+1)) ;;
51
- esac
52
- done
53
-
54
- if [ ${#POSITIONAL[@]} -eq 0 ]; then
55
- echo "Usage: $0 <text> [-d device] [-m method] [-e] [-c] [-q]" >&2
56
- exit 1
57
- fi
58
-
59
- TEXT="${POSITIONAL[0]}"
60
-
61
- ADB_CMD="adb"
62
- if [ -n "$DEVICE" ]; then
63
- ADB_CMD="adb -s $DEVICE"
64
- fi
65
-
66
- info() { $QUIET || echo "[phone_input] $*" >&2; }
67
- warn() { echo "[phone_input] WARNING: $*" >&2; }
68
- error() { echo "[phone_input] ERROR: $*" >&2; }
69
-
70
- # Clear existing text if requested
71
- if $CLEAR; then
72
- info "Clearing existing text..."
73
- # Select all (Ctrl+A) then delete
74
- $ADB_CMD shell input keyevent KEYCODE_MOVE_HOME
75
- $ADB_CMD shell input keyevent --longpress KEYCODE_SHIFT_LEFT KEYCODE_MOVE_END 2>/dev/null || true
76
- $ADB_CMD shell input keyevent KEYCODE_DEL
77
- sleep 0.3
78
- fi
79
-
80
- case "$METHOD" in
81
- direct)
82
- # Escape special characters for adb shell input text
83
- # Replace spaces with %s, & with \&, etc.
84
- ESCAPED=$(echo "$TEXT" | sed 's/ /%s/g; s/&/\\&/g; s/</\\</g; s/>/\\>/g; s/(/\\(/g; s/)/\\)/g; s/|/\\|/g; s/;/\\;/g; s/"/\\"/g; s/'"'"'/\\'"'"'/g')
85
- info "Typing (direct): $TEXT"
86
- $ADB_CMD shell input text "$ESCAPED"
87
- ;;
88
- adbkbd)
89
- info "Typing (ADBKeyboard): $TEXT"
90
- # Check if ADBKeyboard is available; auto-install if missing
91
- if ! $ADB_CMD shell ime list -s 2>/dev/null | grep -q "adbkeyboard"; then
92
- warn "ADBKeyboard not found. Attempting auto-install..."
93
- SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
94
- if [ -f "$SCRIPT_DIR/phone_setup.sh" ]; then
95
- bash "$SCRIPT_DIR/phone_setup.sh" ${DEVICE:+-d "$DEVICE"} -q || {
96
- error "Auto-install failed. Run manually: bash phone_setup.sh"
97
- exit 1
98
- }
99
- info "ADBKeyboard auto-installed successfully"
100
- else
101
- echo "ERROR: ADBKeyboard not installed. Run phone_setup.sh first:" >&2
102
- echo " bash phone_setup.sh" >&2
103
- exit 1
104
- fi
105
- fi
106
- $ADB_CMD shell am broadcast -a ADB_INPUT_TEXT --es msg "$TEXT" 2>/dev/null
107
- ;;
108
- clipboard)
109
- info "Typing (clipboard): $TEXT"
110
- # Try to set clipboard and paste
111
- $ADB_CMD shell "echo '$TEXT' | cmd clipboard set_text" 2>/dev/null || {
112
- echo "ERROR: Clipboard method not supported on this device" >&2
113
- exit 1
114
- }
115
- # Paste: Ctrl+V
116
- $ADB_CMD shell input keyevent 279 # KEYCODE_PASTE
117
- ;;
118
- *)
119
- echo "ERROR: Unknown method '$METHOD'. Use: direct, adbkbd, clipboard" >&2
120
- exit 1
121
- ;;
122
- esac
123
-
124
- # Press Enter if requested
125
- if $ENTER; then
126
- sleep 0.2
127
- $ADB_CMD shell input keyevent KEYCODE_ENTER
128
- info "Pressed Enter"
129
- fi
130
-
131
- info "Done."
132
- echo "input_ok"
@@ -1,166 +0,0 @@
1
- #!/usr/bin/env bash
2
- # phone_launch.sh - Launch an Android app by name alias or package name
3
- #
4
- # Usage:
5
- # bash phone_launch.sh <app_name_or_package> [options]
6
- #
7
- # Options:
8
- # -d DEVICE_ID Target specific device
9
- # -l List all known app aliases
10
- # -q Quiet mode
11
- #
12
- # Supports common Chinese app aliases (case-insensitive):
13
- # wechat, wecom, meituan, ctrip, xiaohongshu/xhs, bilibili,
14
- # baidu, boss/bosszhipin, doubao, taobao, alipay, jd, didi,
15
- # douyin/tiktok, kuaishou, zhihu, ele, pinduoduo/pdd, gaode/amap
16
- #
17
- # Examples:
18
- # bash phone_launch.sh wechat
19
- # bash phone_launch.sh com.tencent.mm
20
- # bash phone_launch.sh -l
21
-
22
- set -eo pipefail
23
-
24
- DEVICE=""
25
- QUIET=false
26
- LIST=false
27
-
28
- # Parse options manually to allow "phone_launch.sh <app> -d DEV" order
29
- ARGV=()
30
- i=1
31
- while [ $i -le $# ]; do
32
- arg="${!i}"
33
- case "$arg" in
34
- -d) i=$((i+1)); DEVICE="${!i}" ;;
35
- -l) LIST=true ;;
36
- -q) QUIET=true ;;
37
- -h|--help) head -21 "$0" | tail -16; exit 0 ;;
38
- -*) echo "Unknown option: $arg" >&2; exit 1 ;;
39
- *) ARGV+=("$arg") ;;
40
- esac
41
- i=$((i+1))
42
- done
43
-
44
- # App alias -> package name lookup (bash 3.2 compatible)
45
- resolve_app() {
46
- local app
47
- app=$(echo "$1" | tr '[:upper:]' '[:lower:]')
48
- case "$app" in
49
- wechat|weixin) echo "com.tencent.mm" ;;
50
- wecom|qiyeweixin) echo "com.tencent.wework" ;;
51
- meituan) echo "com.sankuai.meituan" ;;
52
- ctrip|xiecheng) echo "ctrip.android.view" ;;
53
- xiaohongshu|xhs) echo "com.xingin.xhs" ;;
54
- bilibili) echo "tv.danmaku.bili" ;;
55
- baidu) echo "com.baidu.searchbox" ;;
56
- boss|bosszhipin) echo "com.hpbr.bosszhipin" ;;
57
- doubao) echo "com.larus.nova" ;;
58
- taobao) echo "com.taobao.taobao" ;;
59
- alipay|zhifubao) echo "com.eg.android.AlipayGphone" ;;
60
- jd|jingdong) echo "com.jingdong.app.mall" ;;
61
- didi) echo "com.sdu.didi.psnger" ;;
62
- douyin|tiktok) echo "com.ss.android.ugc.aweme" ;;
63
- kuaishou) echo "com.smile.gifmaker" ;;
64
- zhihu) echo "com.zhihu.android" ;;
65
- ele|eleme) echo "me.ele" ;;
66
- pinduoduo|pdd) echo "com.xunmeng.pinduoduo" ;;
67
- gaode|amap) echo "com.autonavi.minimap" ;;
68
- qq) echo "com.tencent.mobileqq" ;;
69
- wps) echo "cn.wps.moffice_eng" ;;
70
- settings) echo "com.android.settings" ;;
71
- camera) echo "com.android.camera" ;;
72
- chrome) echo "com.android.chrome" ;;
73
- calendar) echo "com.google.android.calendar" ;;
74
- maps) echo "com.google.android.apps.maps" ;;
75
- phone) echo "com.android.dialer" ;;
76
- contacts) echo "com.android.contacts" ;;
77
- messages) echo "com.google.android.apps.messaging" ;;
78
- gallery) echo "com.miui.gallery" ;;
79
- files) echo "com.android.fileexplorer" ;;
80
- *) echo "" ;;
81
- esac
82
- }
83
-
84
- list_aliases() {
85
- cat <<'ALIASES'
86
- Known app aliases:
87
- alipay/zhifubao -> com.eg.android.AlipayGphone
88
- amap/gaode -> com.autonavi.minimap
89
- baidu -> com.baidu.searchbox
90
- bilibili -> tv.danmaku.bili
91
- boss/bosszhipin -> com.hpbr.bosszhipin
92
- calendar -> com.google.android.calendar
93
- camera -> com.android.camera
94
- chrome -> com.android.chrome
95
- contacts -> com.android.contacts
96
- ctrip/xiecheng -> ctrip.android.view
97
- didi -> com.sdu.didi.psnger
98
- doubao -> com.larus.nova
99
- douyin/tiktok -> com.ss.android.ugc.aweme
100
- ele/eleme -> me.ele
101
- files -> com.android.fileexplorer
102
- gallery -> com.miui.gallery
103
- jd/jingdong -> com.jingdong.app.mall
104
- kuaishou -> com.smile.gifmaker
105
- maps -> com.google.android.apps.maps
106
- meituan -> com.sankuai.meituan
107
- messages -> com.google.android.apps.messaging
108
- phone -> com.android.dialer
109
- pinduoduo/pdd -> com.xunmeng.pinduoduo
110
- qq -> com.tencent.mobileqq
111
- settings -> com.android.settings
112
- taobao -> com.taobao.taobao
113
- wechat/weixin -> com.tencent.mm
114
- wecom/qiyeweixin -> com.tencent.wework
115
- wps -> cn.wps.moffice_eng
116
- xiaohongshu/xhs -> com.xingin.xhs
117
- zhihu -> com.zhihu.android
118
- ALIASES
119
- }
120
-
121
- if $LIST; then
122
- list_aliases
123
- exit 0
124
- fi
125
-
126
- if [ ${#ARGV[@]} -eq 0 ]; then
127
- echo "Usage: $0 <app_name_or_package> [-d device] [-l] [-q]" >&2
128
- exit 1
129
- fi
130
-
131
- APP_INPUT="${ARGV[0]}"
132
-
133
- ADB_CMD="adb"
134
- if [ -n "$DEVICE" ]; then
135
- ADB_CMD="adb -s $DEVICE"
136
- fi
137
-
138
- info() { $QUIET || echo "[phone_launch] $*" >&2; }
139
-
140
- # Resolve package name
141
- PACKAGE=$(resolve_app "$APP_INPUT")
142
- if [ -n "$PACKAGE" ]; then
143
- info "Resolved '$APP_INPUT' -> $PACKAGE"
144
- elif echo "$APP_INPUT" | grep -q '\.'; then
145
- PACKAGE="$APP_INPUT"
146
- info "Using package name directly: $PACKAGE"
147
- else
148
- # Try fuzzy search on device
149
- info "Unknown alias '$APP_INPUT', searching on device..."
150
- MATCHES=$($ADB_CMD shell pm list packages | grep -i "$APP_INPUT" | sed 's/package://' || true)
151
- if [ -z "$MATCHES" ]; then
152
- echo "ERROR: No package found matching '$APP_INPUT'" >&2
153
- echo "Use -l to list known aliases, or provide full package name" >&2
154
- exit 1
155
- fi
156
- PACKAGE=$(echo "$MATCHES" | head -1 | tr -d '\r')
157
- info "Found package: $PACKAGE"
158
- fi
159
-
160
- # Launch the app
161
- info "Launching $PACKAGE..."
162
- $ADB_CMD shell monkey -p "$PACKAGE" -c android.intent.category.LAUNCHER 1 >/dev/null 2>&1
163
-
164
- sleep 1
165
- info "Done."
166
- echo "$PACKAGE"
@@ -1,87 +0,0 @@
1
- #!/usr/bin/env bash
2
- # phone_screenshot.sh - Take a screenshot from connected Android phone via ADB
3
- #
4
- # Usage:
5
- # bash phone_screenshot.sh [options]
6
- #
7
- # Options:
8
- # -d DEVICE_ID Target specific device (default: first connected device)
9
- # -o OUTPUT_PATH Output file path (default: /tmp/phone_screen.png)
10
- # -s SCALE Scale percentage 1-100 (default: 50)
11
- # -r Raw only - skip scaling, save native resolution
12
- # -q Quiet mode - suppress info messages
13
- #
14
- # Output:
15
- # Saves scaled screenshot to OUTPUT_PATH
16
- # Prints the output file path on success
17
- #
18
- # Examples:
19
- # bash phone_screenshot.sh # Default: 50% scale to /tmp/phone_screen.png
20
- # bash phone_screenshot.sh -o /tmp/my.png -s 40 # 40% scale to custom path
21
- # bash phone_screenshot.sh -d abc123 -r # Raw native resolution for specific device
22
-
23
- set -euo pipefail
24
-
25
- DEVICE=""
26
- OUTPUT="/tmp/phone_screen.png"
27
- SCALE=50
28
- RAW=false
29
- QUIET=false
30
-
31
- while getopts "d:o:s:rq" opt; do
32
- case $opt in
33
- d) DEVICE="$OPTARG" ;;
34
- o) OUTPUT="$OPTARG" ;;
35
- s) SCALE="$OPTARG" ;;
36
- r) RAW=true ;;
37
- q) QUIET=true ;;
38
- *) echo "Usage: $0 [-d device] [-o output] [-s scale%] [-r] [-q]" >&2; exit 1 ;;
39
- esac
40
- done
41
-
42
- ADB_CMD="adb"
43
- if [ -n "$DEVICE" ]; then
44
- ADB_CMD="adb -s $DEVICE"
45
- fi
46
-
47
- info() { $QUIET || echo "[phone_screenshot] $*" >&2; }
48
-
49
- # Verify device connection
50
- if ! $ADB_CMD get-state >/dev/null 2>&1; then
51
- echo "ERROR: No device connected or device unauthorized" >&2
52
- echo "Run 'adb devices' to check connection status" >&2
53
- exit 1
54
- fi
55
-
56
- REMOTE_PATH="/sdcard/screen_$(date +%s).png"
57
- RAW_PATH="/tmp/phone_raw_$$.png"
58
-
59
- info "Capturing screenshot..."
60
- $ADB_CMD shell screencap -p "$REMOTE_PATH"
61
-
62
- info "Pulling to local..."
63
- $ADB_CMD pull "$REMOTE_PATH" "$RAW_PATH" >/dev/null 2>&1
64
-
65
- info "Cleaning up device temp file..."
66
- $ADB_CMD shell rm -f "$REMOTE_PATH"
67
-
68
- if $RAW; then
69
- mv "$RAW_PATH" "$OUTPUT"
70
- info "Saved raw screenshot to $OUTPUT"
71
- else
72
- # Get native resolution from the image
73
- NATIVE_W=$(sips -g pixelWidth "$RAW_PATH" | tail -1 | awk '{print $2}')
74
- NATIVE_H=$(sips -g pixelHeight "$RAW_PATH" | tail -1 | awk '{print $2}')
75
-
76
- SCALED_W=$((NATIVE_W * SCALE / 100))
77
- SCALED_H=$((NATIVE_H * SCALE / 100))
78
-
79
- info "Native: ${NATIVE_W}x${NATIVE_H} -> Scaled (${SCALE}%): ${SCALED_W}x${SCALED_H}"
80
- sips --resampleHeightWidth "$SCALED_H" "$SCALED_W" "$RAW_PATH" --out "$OUTPUT" >/dev/null 2>&1
81
-
82
- rm -f "$RAW_PATH"
83
- info "Saved scaled screenshot to $OUTPUT"
84
- fi
85
-
86
- # Output the path for easy capture by calling scripts
87
- echo "$OUTPUT"
@@ -1,174 +0,0 @@
1
- #!/usr/bin/env python3
2
- """
3
- phone_security_kbd.py - Handle randomized security keyboards on Android.
4
-
5
- Financial apps (banking, stock trading) use security keyboards where digit
6
- positions change every time. This script reads the UI dump to map digit
7
- positions and types a sequence by tapping each digit.
8
-
9
- Usage:
10
- python3 phone_security_kbd.py <digits> [options]
11
-
12
- Options:
13
- -d DEVICE_ID Target specific device
14
- -f XML_FILE Use existing UI dump XML file
15
- --delay MS Delay between taps in ms (default: 200)
16
- --dry-run Show mapped positions without tapping
17
- -q Quiet mode
18
-
19
- How it works:
20
- 1. Dumps the UI hierarchy via uiautomator
21
- 2. Finds all clickable elements with numeric content-desc (0-9)
22
- 3. Maps each digit to its center coordinates
23
- 4. Taps each digit in sequence with configurable delay
24
-
25
- Examples:
26
- python3 phone_security_kbd.py "123456" # Type PIN 123456
27
- python3 phone_security_kbd.py "888888" --dry-run # Show positions only
28
- python3 phone_security_kbd.py "1234" --delay 300 # Slower tapping
29
- python3 phone_security_kbd.py "0000" -f /tmp/ui.xml # Use existing dump
30
- """
31
-
32
- import argparse
33
- import os
34
- import re
35
- import subprocess
36
- import sys
37
- import tempfile
38
- import time
39
- import xml.etree.ElementTree as ET
40
-
41
-
42
- def run_adb(device, *args):
43
- cmd = ["adb"]
44
- if device:
45
- cmd += ["-s", device]
46
- cmd += list(args)
47
- result = subprocess.run(cmd, capture_output=True, text=True)
48
- return result.stdout, result.stderr, result.returncode
49
-
50
-
51
- def dump_ui(device=None):
52
- remote_path = "/sdcard/ui_kbd.xml"
53
- local_path = os.path.join(tempfile.gettempdir(), f"phone_kbd_{os.getpid()}.xml")
54
-
55
- _, stderr, rc = run_adb(device, "shell", "uiautomator", "dump", remote_path)
56
- if rc != 0:
57
- print(f"ERROR: uiautomator dump failed: {stderr}", file=sys.stderr)
58
- sys.exit(1)
59
-
60
- _, stderr, rc = run_adb(device, "pull", remote_path, local_path)
61
- if rc != 0:
62
- print(f"ERROR: Failed to pull UI dump: {stderr}", file=sys.stderr)
63
- sys.exit(1)
64
-
65
- run_adb(device, "shell", "rm", "-f", remote_path)
66
- return local_path
67
-
68
-
69
- def parse_keyboard_map(xml_path):
70
- """Parse UI dump and return dict of digit/char -> (center_x, center_y)."""
71
- tree = ET.parse(xml_path)
72
- root = tree.getroot()
73
- kbd_map = {}
74
-
75
- for node in root.iter():
76
- desc = node.get("content-desc", "").strip()
77
- text = node.get("text", "").strip()
78
- bounds = node.get("bounds", "")
79
- clickable = node.get("clickable", "false")
80
-
81
- if not bounds or clickable != "true":
82
- continue
83
-
84
- # Use content-desc first, fallback to text
85
- label = desc or text
86
- if not label:
87
- continue
88
-
89
- m = re.findall(r"\d+", bounds)
90
- if len(m) != 4:
91
- continue
92
-
93
- x1, y1, x2, y2 = int(m[0]), int(m[1]), int(m[2]), int(m[3])
94
- cx = (x1 + x2) // 2
95
- cy = (y1 + y2) // 2
96
-
97
- # Map single digits and common labels
98
- if label in "0123456789":
99
- kbd_map[label] = (cx, cy)
100
- elif label.lower() in ("delete", "backspace", "del", "删除"):
101
- kbd_map["delete"] = (cx, cy)
102
- elif label.lower() in ("confirm", "ok", "done", "确定", "确认", "完成"):
103
- kbd_map["confirm"] = (cx, cy)
104
- elif label == ".":
105
- kbd_map["."] = (cx, cy)
106
-
107
- return kbd_map
108
-
109
-
110
- def tap_digit(device, x, y):
111
- run_adb(device, "shell", "input", "tap", str(x), str(y))
112
-
113
-
114
- def main():
115
- parser = argparse.ArgumentParser(description="Type on security keyboard")
116
- parser.add_argument("digits", help="Digits to type (e.g., '123456')")
117
- parser.add_argument("-d", "--device", help="Target device ID")
118
- parser.add_argument("-f", "--file", help="Existing UI dump XML")
119
- parser.add_argument("--delay", type=int, default=200, help="Delay between taps (ms)")
120
- parser.add_argument("--dry-run", action="store_true", help="Show positions only")
121
- parser.add_argument("-q", "--quiet", action="store_true", help="Quiet mode")
122
- args = parser.parse_args()
123
-
124
- info = lambda msg: None if args.quiet else print(f"[security_kbd] {msg}", file=sys.stderr)
125
-
126
- # Get UI dump
127
- if args.file:
128
- xml_path = args.file
129
- cleanup = False
130
- else:
131
- info("Dumping UI hierarchy...")
132
- xml_path = dump_ui(args.device)
133
- cleanup = True
134
-
135
- # Parse keyboard layout
136
- kbd_map = parse_keyboard_map(xml_path)
137
-
138
- if cleanup:
139
- os.unlink(xml_path)
140
-
141
- if not kbd_map:
142
- print("ERROR: No keyboard digits found in UI dump", file=sys.stderr)
143
- print("Make sure a security keyboard is visible on screen", file=sys.stderr)
144
- sys.exit(1)
145
-
146
- info(f"Keyboard map: { {k: v for k, v in sorted(kbd_map.items()) if k in '0123456789'} }")
147
-
148
- # Validate all digits are mappable
149
- for ch in args.digits:
150
- if ch not in kbd_map:
151
- print(f"ERROR: Digit '{ch}' not found on keyboard. Available: {sorted(kbd_map.keys())}", file=sys.stderr)
152
- sys.exit(1)
153
-
154
- if args.dry_run:
155
- print("Dry run - would tap:")
156
- for ch in args.digits:
157
- x, y = kbd_map[ch]
158
- print(f" '{ch}' -> ({x}, {y})")
159
- return
160
-
161
- # Type each digit
162
- for i, ch in enumerate(args.digits):
163
- x, y = kbd_map[ch]
164
- info(f"Tapping '{ch}' at ({x}, {y})")
165
- tap_digit(args.device, x, y)
166
- if i < len(args.digits) - 1:
167
- time.sleep(args.delay / 1000.0)
168
-
169
- info(f"Typed {len(args.digits)} digits successfully")
170
- print("kbd_input_ok")
171
-
172
-
173
- if __name__ == "__main__":
174
- main()