minitap-mobile-use 2.3.0__py3-none-any.whl → 2.4.0__py3-none-any.whl

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.

Potentially problematic release.


This version of minitap-mobile-use might be problematic. Click here for more details.

Files changed (54) hide show
  1. minitap/mobile_use/agents/contextor/contextor.py +2 -2
  2. minitap/mobile_use/agents/cortex/cortex.md +49 -8
  3. minitap/mobile_use/agents/cortex/cortex.py +8 -4
  4. minitap/mobile_use/agents/executor/executor.md +14 -11
  5. minitap/mobile_use/agents/executor/executor.py +6 -5
  6. minitap/mobile_use/agents/hopper/hopper.py +6 -3
  7. minitap/mobile_use/agents/orchestrator/orchestrator.py +26 -11
  8. minitap/mobile_use/agents/outputter/outputter.py +6 -3
  9. minitap/mobile_use/agents/planner/planner.md +20 -22
  10. minitap/mobile_use/agents/planner/planner.py +10 -7
  11. minitap/mobile_use/agents/planner/types.py +4 -2
  12. minitap/mobile_use/agents/planner/utils.py +14 -0
  13. minitap/mobile_use/agents/summarizer/summarizer.py +2 -2
  14. minitap/mobile_use/config.py +6 -1
  15. minitap/mobile_use/context.py +13 -3
  16. minitap/mobile_use/controllers/mobile_command_controller.py +1 -14
  17. minitap/mobile_use/graph/state.py +7 -3
  18. minitap/mobile_use/sdk/agent.py +188 -23
  19. minitap/mobile_use/sdk/examples/README.md +19 -1
  20. minitap/mobile_use/sdk/examples/platform_minimal_example.py +46 -0
  21. minitap/mobile_use/sdk/services/platform.py +244 -0
  22. minitap/mobile_use/sdk/types/__init__.py +14 -14
  23. minitap/mobile_use/sdk/types/exceptions.py +27 -0
  24. minitap/mobile_use/sdk/types/platform.py +125 -0
  25. minitap/mobile_use/sdk/types/task.py +60 -17
  26. minitap/mobile_use/servers/device_hardware_bridge.py +1 -1
  27. minitap/mobile_use/servers/stop_servers.py +11 -12
  28. minitap/mobile_use/services/llm.py +89 -5
  29. minitap/mobile_use/tools/index.py +0 -6
  30. minitap/mobile_use/tools/mobile/back.py +3 -3
  31. minitap/mobile_use/tools/mobile/clear_text.py +24 -43
  32. minitap/mobile_use/tools/mobile/erase_one_char.py +5 -4
  33. minitap/mobile_use/tools/mobile/glimpse_screen.py +11 -7
  34. minitap/mobile_use/tools/mobile/input_text.py +21 -51
  35. minitap/mobile_use/tools/mobile/launch_app.py +54 -22
  36. minitap/mobile_use/tools/mobile/long_press_on.py +15 -8
  37. minitap/mobile_use/tools/mobile/open_link.py +15 -8
  38. minitap/mobile_use/tools/mobile/press_key.py +15 -8
  39. minitap/mobile_use/tools/mobile/stop_app.py +14 -8
  40. minitap/mobile_use/tools/mobile/swipe.py +11 -5
  41. minitap/mobile_use/tools/mobile/tap.py +103 -21
  42. minitap/mobile_use/tools/mobile/wait_for_animation_to_end.py +3 -3
  43. minitap/mobile_use/tools/test_utils.py +104 -78
  44. minitap/mobile_use/tools/types.py +35 -0
  45. minitap/mobile_use/tools/utils.py +51 -48
  46. minitap/mobile_use/utils/recorder.py +1 -1
  47. minitap/mobile_use/utils/ui_hierarchy.py +9 -2
  48. {minitap_mobile_use-2.3.0.dist-info → minitap_mobile_use-2.4.0.dist-info}/METADATA +3 -1
  49. {minitap_mobile_use-2.3.0.dist-info → minitap_mobile_use-2.4.0.dist-info}/RECORD +51 -50
  50. minitap/mobile_use/tools/mobile/copy_text_from.py +0 -75
  51. minitap/mobile_use/tools/mobile/find_packages.py +0 -69
  52. minitap/mobile_use/tools/mobile/paste_text.py +0 -88
  53. {minitap_mobile_use-2.3.0.dist-info → minitap_mobile_use-2.4.0.dist-info}/WHEEL +0 -0
  54. {minitap_mobile_use-2.3.0.dist-info → minitap_mobile_use-2.4.0.dist-info}/entry_points.txt +0 -0
@@ -1,83 +1,84 @@
1
1
  minitap/mobile_use/__init__.py,sha256=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855,0
2
- minitap/mobile_use/agents/contextor/contextor.py,sha256=17f285db6fb21ab414ce7197fff62ca54a94c6359f570e9100a02578f559c714,1704
3
- minitap/mobile_use/agents/cortex/cortex.md,sha256=6457d09b31e2e36db7a2921a8455e33fa47b6c748a86b6bf0490de95ef5dab08,9878
4
- minitap/mobile_use/agents/cortex/cortex.py,sha256=de4fa731ab41090529e19e8868cee97c994cecd45e71f140cccf67dc7fefce7d,4858
2
+ minitap/mobile_use/agents/contextor/contextor.py,sha256=820c32e11fc0a622fffe4170d4d8ec376c6ff44cb5c20dbd8379a031b1961615,1717
3
+ minitap/mobile_use/agents/cortex/cortex.md,sha256=b1390b54d2e350204013daa7cb750eadb5054470d9a125240c892a9db445982e,12192
4
+ minitap/mobile_use/agents/cortex/cortex.py,sha256=15ec2eb1e5636b84db06c928b9854f07352f0e86a50244aec5dc2d0775d84e59,5077
5
5
  minitap/mobile_use/agents/cortex/types.py,sha256=c33f2277752644d2185d84add03a493adaa530096d046d73366ab9121d99b946,361
6
- minitap/mobile_use/agents/executor/executor.md,sha256=1a813a0b8fcb402c14ce505f3c070aca275599e39d845c4cce151a46f606e879,3124
7
- minitap/mobile_use/agents/executor/executor.py,sha256=e740b76c9d2dfa832afbca60ac533f691963ae068c64dd97a96b2c58c80c925d,2850
6
+ minitap/mobile_use/agents/executor/executor.md,sha256=1054c84bbc52709325e7ac4bb2f5a400cb439fee164694e1109c0e373d30ed27,3726
7
+ minitap/mobile_use/agents/executor/executor.py,sha256=59fa952f25556dbea70dde656a09b62e1adba011ce7e67f587f373de73d2a5f9,2974
8
8
  minitap/mobile_use/agents/executor/tool_node.py,sha256=2ad729ede393882460ae3d180ac1c0e1ab1688f40b2017220aad1b059f6485c5,3900
9
9
  minitap/mobile_use/agents/executor/utils.py,sha256=74cf2287053cd4fc763835870e5ae029ca36f6cd0ca7d50678ad05d52ab265b7,368
10
10
  minitap/mobile_use/agents/hopper/hopper.md,sha256=2e9333ece8f6b76401ac2cce98ca06a025faa5dba6bacbbc344793ddf42292d0,362
11
- minitap/mobile_use/agents/hopper/hopper.py,sha256=1c015cc911f225c9cb26415e0852d5905ded8e715fb928ad2595143870a781e3,1324
11
+ minitap/mobile_use/agents/hopper/hopper.py,sha256=d3426ebf244633d2216f20ee015616b25d68127674926d36696b91774d84f3ca,1426
12
12
  minitap/mobile_use/agents/orchestrator/human.md,sha256=6559026aa921b7ad7dddcf3dfcd5d9930252edd6484d60ea92ff6ca97ed028fc,229
13
13
  minitap/mobile_use/agents/orchestrator/orchestrator.md,sha256=cc1a353c577f2eef42d9a528178ccc2c0a4a144a907a29878f9efe57e83b12fa,2546
14
- minitap/mobile_use/agents/orchestrator/orchestrator.py,sha256=83524eefe8fc1d9639a2ffeb270dfed9e2a2b15af93e6e1d3d41d8e7c5b74951,4656
14
+ minitap/mobile_use/agents/orchestrator/orchestrator.py,sha256=56a06879332284edbf25699fcfbf234cfef03e45ffcf0172acda2a1049852fce,5088
15
15
  minitap/mobile_use/agents/orchestrator/types.py,sha256=f53dfdc99e8d50888ac1cde5f7f90ba5c87837a8eee8dd8efa31f2640394433c,335
16
16
  minitap/mobile_use/agents/outputter/human.md,sha256=6b9b45c640b163554524b1aec4cd97134c628eeb8557a32e23c8f966d32f642e,771
17
- minitap/mobile_use/agents/outputter/outputter.py,sha256=0539cd1bfa307c6e24136488a0481128da17c37f20128e63388b5c4aea5aae50,2750
17
+ minitap/mobile_use/agents/outputter/outputter.py,sha256=cc3db524f0fefb463f1baa07aab13e3dfb4704994f173f8d193b5c45034a518e,2855
18
18
  minitap/mobile_use/agents/outputter/test_outputter.py,sha256=907b517c486f82a384a364e0bd202c00e8e8082c138461f6eead0e25c2779ba9,5538
19
19
  minitap/mobile_use/agents/planner/human.md,sha256=cb37be2af568918e60238eaa785837178a3ba8f8112de86850d9a62914c18314,222
20
- minitap/mobile_use/agents/planner/planner.md,sha256=dc13218df28b38fd2139803c9d013f0ba50899b2ae58545a3b8f3d2fd2aad734,3333
21
- minitap/mobile_use/agents/planner/planner.py,sha256=cb7fa02cf5ae9e6f95646afc1c41642e5f9e58113dc17d51839f5236a33e67b7,2722
22
- minitap/mobile_use/agents/planner/types.py,sha256=da551df70ae4ae574670bd8d79c4da1a82be88c24216034d6841a83d85c0c43c,1392
23
- minitap/mobile_use/agents/planner/utils.py,sha256=11731d0382bf88ef77b38aaf75873486f293343cdd048372c57e626c652b4a22,1839
24
- minitap/mobile_use/agents/summarizer/summarizer.py,sha256=3e1e92f9259c040487992636786f972dffe0a38d309a8c3758c9ff1aeff2f62c,1070
20
+ minitap/mobile_use/agents/planner/planner.md,sha256=f2089809c01263834f0ff264153993809f4ad3c32088305a5c7d421c1d6f4732,3407
21
+ minitap/mobile_use/agents/planner/planner.py,sha256=ee3aafb1519419e16d0fdf02272e6cd6c31ff51dcd0b17131ec599fa866fcf1b,2931
22
+ minitap/mobile_use/agents/planner/types.py,sha256=e8acf3c2d1505286a138b6f7c3ef36f397d154953311d0875e3ef35152653e7f,1496
23
+ minitap/mobile_use/agents/planner/utils.py,sha256=88b4b039e09cea254615ff3d0bc8951c3717a68702742e913a0176ecfbcaf495,2315
24
+ minitap/mobile_use/agents/summarizer/summarizer.py,sha256=56c2c7d5d48f4ba045b1401538db78b2ddbd43280389ed4cbc58ecd1da0c7610,1083
25
25
  minitap/mobile_use/clients/device_hardware_client.py,sha256=9593380a7a3df32f02aa22717678c25e91367df26b1743abde9e57aec5dc2474,857
26
26
  minitap/mobile_use/clients/ios_client.py,sha256=332bf47ac01bbd5bf6178a59eea7c7a30fed944f30907caea5388178f312d36b,1452
27
27
  minitap/mobile_use/clients/screen_api_client.py,sha256=3615dc65d25c38b4d8dc5512f9adb3bcf69dca7a0298a472a6812f604a275c47,2019
28
- minitap/mobile_use/config.py,sha256=9a2435a69c4453275439555d6af721a0c38bf7ca7ef1916598011c54c198c812,9931
28
+ minitap/mobile_use/config.py,sha256=70a9519f0c4732870ee0bb7cdb1a7adc5dca85e380edce9e8cd5d5572709c7d9,10206
29
29
  minitap/mobile_use/constants.py,sha256=3acd9d6ade5bc772e902b3473f3ba12ddd04e7306963ca2bae49d1132d89ba46,95
30
- minitap/mobile_use/context.py,sha256=fa4e43fb580db86c2ed707b1464d8363ead57332b40ea5688e0731ad57a40558,1747
30
+ minitap/mobile_use/context.py,sha256=2e212588a8a7caf58460fead0cae195c6386b7301026bbb2d78fe56c263ce6c3,2131
31
31
  minitap/mobile_use/controllers/__init__.py,sha256=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855,0
32
- minitap/mobile_use/controllers/mobile_command_controller.py,sha256=eb5f31cc6f2a711cbe3908f2561e841abe2214805475f77eeed3bc45731baddc,12217
32
+ minitap/mobile_use/controllers/mobile_command_controller.py,sha256=cff7993e91eeae74b0cb063f820b7450344637037467de4c592711961cee77ea,11681
33
33
  minitap/mobile_use/controllers/platform_specific_commands_controller.py,sha256=8b4fc30108c242da41fd998751dbfd5e6a69e2957a2dbbe5d6fc43d6b55f727e,2705
34
34
  minitap/mobile_use/graph/graph.py,sha256=c7b412e725b096eca8f212d704c3faf91d77eea4131f1fae7af1ee39bc57cdae,4269
35
- minitap/mobile_use/graph/state.py,sha256=cfe67d15833efa18b28a86293bc5c713ff8c777778b0552bb6e25fa7070534aa,3371
35
+ minitap/mobile_use/graph/state.py,sha256=8efeef0f4bb10c933e54fdf17882ae63907ca557e4f1ae56bced8b5ac0f9ed17,3503
36
36
  minitap/mobile_use/main.py,sha256=7ac4dc592e3ce72bff602d67ba2f25b9b5e45e07a316e548d7c8e73735abf43d,3725
37
37
  minitap/mobile_use/sdk/__init__.py,sha256=4e5555c0597242b9523827194a2500b9c6d7e5c04b1ccd2056c9b1f4d42a31cd,318
38
- minitap/mobile_use/sdk/agent.py,sha256=1993dfb3b1db7c65ff5d9545090a56c5cd11b2b92092b7cdeba52cb020a4ff44,21384
38
+ minitap/mobile_use/sdk/agent.py,sha256=ad30436d2de47804bd13c54e40c3c8709ff17765bbd2703e332e0959f885c4d3,27825
39
39
  minitap/mobile_use/sdk/builders/__init__.py,sha256=d6c96d39b80900a114698ef205ab5061a541f33bfa99c456d9345e5adb8ff6ff,424
40
40
  minitap/mobile_use/sdk/builders/agent_config_builder.py,sha256=c63f452350822daab86d29c44a333909b623fc7ff7bcbf74e5f9104b24630bf5,7582
41
41
  minitap/mobile_use/sdk/builders/index.py,sha256=64336ac3b3dea4673a48e95b8c5ac4196ecd5d2196380377d102593d0a1dc138,442
42
42
  minitap/mobile_use/sdk/builders/task_request_builder.py,sha256=9e6cf7afb68af986d6a81487179bb79d28f63047a068725d92996dbcbe753376,6857
43
43
  minitap/mobile_use/sdk/constants.py,sha256=436ba0700c6cf37ac0c9e3995a5f5a0d54ca87af72686eb9667a2c6a96e30f68,292
44
- minitap/mobile_use/sdk/examples/README.md,sha256=b6780de3025b1897ad2ef42fa968f2a69b82f929465807f9590c4e9321dab6e6,2306
44
+ minitap/mobile_use/sdk/examples/README.md,sha256=c92e57d6efc5bce9f3c8668b20d9ce80396aefb7a685636ee84de8c7b9c1403e,3247
45
45
  minitap/mobile_use/sdk/examples/__init__.py,sha256=c23868a2ca7e9b76e80d6835fe93c10e13ea8f2287dd6e785511b8ac30354e9b,46
46
+ minitap/mobile_use/sdk/examples/platform_minimal_example.py,sha256=58e57771362ef606045e238fe96cdf91313f161f233c5167acef71bb05c065ed,1321
46
47
  minitap/mobile_use/sdk/examples/simple_photo_organizer.py,sha256=8ad1cebb5281e3663264560bd15b090add41d2821b1db77e4cbc829860c98df8,2606
47
48
  minitap/mobile_use/sdk/examples/smart_notification_assistant.py,sha256=1d00658dc30c7bce5ef68369f982cd2d1932f53e2e2da6ded70cea13dc669c72,6362
48
- minitap/mobile_use/sdk/types/__init__.py,sha256=5dd148d83bf6261ac8ac60c994e2496b5bf535591d0835807d5fe394fd85a954,1014
49
+ minitap/mobile_use/sdk/services/platform.py,sha256=20ea13966b9729f888fe0056487ebf897110fe25471f651eb3c31ed3aa93f498,9371
50
+ minitap/mobile_use/sdk/types/__init__.py,sha256=43a337d20f5c3088be3dc2699c4896f2eeb2db92745b6e47bb3e5cfb86fba762,1032
49
51
  minitap/mobile_use/sdk/types/agent.py,sha256=390d5c642b3480f4a2203ddd28ec115c785f2576bec81e82e4db3c129399c020,2260
50
- minitap/mobile_use/sdk/types/exceptions.py,sha256=bc710e6c1a3c8886c4358fd6d2fedd61edc8e70ef1bbde35e6e52c0eda73a7e0,3651
51
- minitap/mobile_use/sdk/types/task.py,sha256=74743a398b63af62383528d5906824ae8aaba1e1885c75414b347623d7931f12,5837
52
+ minitap/mobile_use/sdk/types/exceptions.py,sha256=684c0049c5af417edf7e46e515be14fd57a0614c81b06ed52f379bc9d0bbebf3,4499
53
+ minitap/mobile_use/sdk/types/platform.py,sha256=3c6fdb3d734f731c7f6d2ec4db64460a7696719423ad4ea0c13e00ba7b2acdac,5158
54
+ minitap/mobile_use/sdk/types/task.py,sha256=a375fb9203e22012001f9889f6b8d3f95a1f6edf911a31733108075bfbf30a18,7603
52
55
  minitap/mobile_use/sdk/utils.py,sha256=647f1f4a463c3029c3b0eb3c33f7dd778d5f5fd9d293224f5474595a60e1de6f,967
53
56
  minitap/mobile_use/servers/config.py,sha256=8a4a6bce23e2093d047a91e135e2f88627f76ac12177d071f25a3ca739b3afeb,575
54
- minitap/mobile_use/servers/device_hardware_bridge.py,sha256=52839ea009bb303a695a2af1ef8e7bbb6d90788229f3160dffebc8098923f6cb,7180
57
+ minitap/mobile_use/servers/device_hardware_bridge.py,sha256=db5f55ba66bfebf70ea1a655d921d4070ca6c458b1e7e5e08ed58b3bea100d63,7227
55
58
  minitap/mobile_use/servers/device_screen_api.py,sha256=63bf866f17cde4ab97631b710080866b8427225d3857b2351ab83db38a9c5107,5064
56
59
  minitap/mobile_use/servers/start_servers.py,sha256=1e86dc0fcbdf6e6570ae68c7097145e754f3c3448ca813d415b3e5ebb74db828,5037
57
- minitap/mobile_use/servers/stop_servers.py,sha256=9a3dc2eafb3c13e420248b1844694c80112be32f0d336f54ecc1015cb6f27be9,7127
60
+ minitap/mobile_use/servers/stop_servers.py,sha256=04a409a17fc0323209301fe28fbb037d71e41e5422eb369640f9f329aae312f5,7064
58
61
  minitap/mobile_use/servers/utils.py,sha256=f3cc85da39f8d60cb840001be418562de7db95462370db9b79e96d884abe5c17,294
59
62
  minitap/mobile_use/services/accessibility.py,sha256=42bcbe81b427ee6f6e82bcfe420fc40630db950bda354e3e433c2dda2e159628,3404
60
- minitap/mobile_use/services/llm.py,sha256=3706edcb2132709c5cb931fac86ea31908a209347b341ec7b0f1cfbb27959c66,4260
61
- minitap/mobile_use/tools/index.py,sha256=dbf9cfac4f319718c6f50b19d86a7d3aef0886caeb60db17c34ff4f18e640dc3,2692
62
- minitap/mobile_use/tools/mobile/back.py,sha256=cf1053b22c4fbeb1c219578563d6d857425dcdff08af690149c6e52a0e29c195,1792
63
- minitap/mobile_use/tools/mobile/clear_text.py,sha256=32de8458e0eb34a10ab239d4925120794e78b24118069a65c08fc9f8daf6b63a,10803
64
- minitap/mobile_use/tools/mobile/copy_text_from.py,sha256=e58f2812fd2baeec91038eabb817d322fbecc6e9b079b4da725bc6c79ca9b02c,2718
65
- minitap/mobile_use/tools/mobile/erase_one_char.py,sha256=e8c0a519a235271fa1cb785fe711e63e9ca14f4d33a61fbb39af04ec9bf18211,1960
66
- minitap/mobile_use/tools/mobile/find_packages.py,sha256=78f3051f40307ba75655fbffe6fe3fc3954f158eb8ceb0d270cb81a5e807d81d,2554
67
- minitap/mobile_use/tools/mobile/glimpse_screen.py,sha256=cd41702461f6a0aa5cd3f166af5395bb15e2305edfe60908da134595a35c10bf,2426
68
- minitap/mobile_use/tools/mobile/input_text.py,sha256=e2d36bcdcc7f07e4d81e6d86a18740d703087e1865e1e1a2fcaa90a0061feed6,6367
69
- minitap/mobile_use/tools/mobile/launch_app.py,sha256=e1879333c0eae92b22ec3c147edd26dfe41252bf8049e5954a0b72d5a8b8f650,2027
70
- minitap/mobile_use/tools/mobile/long_press_on.py,sha256=b59bf885a10e7468069e5523eb7d23bfa6d41efc7d0521f7622e4dd2260fe879,2194
71
- minitap/mobile_use/tools/mobile/open_link.py,sha256=ad363f83b254a8e3e5969b4d8b90ef4e1fc4eceacc9c976e02a3e110e80ad23f,1875
72
- minitap/mobile_use/tools/mobile/paste_text.py,sha256=76a21937395730bd2a6cba9aa0f4aa96463cd320bac8281517c878a9096748d3,3038
73
- minitap/mobile_use/tools/mobile/press_key.py,sha256=a22d416279c33f2e843aaf28e4466a7eeae59aa690312c8866b62a3f84b57d5b,1939
74
- minitap/mobile_use/tools/mobile/stop_app.py,sha256=8fc1cf5682232d670270a7e909f365a795150643eac5310f042d792b79e7c0c0,2062
75
- minitap/mobile_use/tools/mobile/swipe.py,sha256=23c31022bef827afbfe90c7f6a7d195e5bef57eb3972cd32b0d2aa054b4c6d26,5754
76
- minitap/mobile_use/tools/mobile/tap.py,sha256=d7a3de2ddb78b051b22d7886553d75bab13562abfc8562957c15fb16dd484a0a,2297
77
- minitap/mobile_use/tools/mobile/wait_for_animation_to_end.py,sha256=967d0df11dfb073dde6308761e9795e02c93ee2b0cbe17caf6edbe4a8beea28a,2493
78
- minitap/mobile_use/tools/test_utils.py,sha256=efd16bd82030d782b7fa0227ed211a2a8ad616a1819252edbb64c58c340adb63,13241
63
+ minitap/mobile_use/services/llm.py,sha256=e100560940a5d4fc33d2086742369c621e81e6c2fbb98e6d07411856d4df480f,7059
64
+ minitap/mobile_use/tools/index.py,sha256=9eab29d43e66ca397fad3206a302a9a4f423448437ab0a6fdb2b9d8bb227513b,2377
65
+ minitap/mobile_use/tools/mobile/back.py,sha256=8b909e412c8ad382e339b8c89171bf1363398a95a5c96126f79ee2f24e3c2ed1,1816
66
+ minitap/mobile_use/tools/mobile/clear_text.py,sha256=58e0426f042e39d827d3ff2fe3a79bb23e4146cbefd13da938e1a6f397579c4b,9799
67
+ minitap/mobile_use/tools/mobile/erase_one_char.py,sha256=a125933619614b621479c514c8e29a7ec6b504b1e7ab1be13603a744f32322d6,1985
68
+ minitap/mobile_use/tools/mobile/glimpse_screen.py,sha256=c9ee978a1163cea4cd4900ea3fefc0e9fe2685578be47b63a2f925b3598fb51d,2528
69
+ minitap/mobile_use/tools/mobile/input_text.py,sha256=dd83d735bebcc0a0b376cd739a63e1db5c3031525090c262a3274e6f1aa97f7b,5427
70
+ minitap/mobile_use/tools/mobile/launch_app.py,sha256=a794665f9bc7a035ad6029b8153d6e56a0ba49ce36b0ab8a4e342267465d8fef,3237
71
+ minitap/mobile_use/tools/mobile/long_press_on.py,sha256=0a0263a1429207c36f5be5f3a6ae35be3e8c56897737ed9536ae83ffbdca43e6,2299
72
+ minitap/mobile_use/tools/mobile/open_link.py,sha256=3017b94a921ced032f18526101eeba8caa907ebee40b82bed0baa4f35477e6c8,1980
73
+ minitap/mobile_use/tools/mobile/press_key.py,sha256=0133b1f1eb3b67c94aeaa70ac3ff822dc1e1f70624a0727f6e8c3cbcef1a80ab,2044
74
+ minitap/mobile_use/tools/mobile/stop_app.py,sha256=74f93c60cdf039455897b0bb2d74e5702cc8429abc606b6069c7be6399b7fbdf,2166
75
+ minitap/mobile_use/tools/mobile/swipe.py,sha256=6436db271564ea211af3c6fd699b22f3205409533819a68d7193768321999a7d,5862
76
+ minitap/mobile_use/tools/mobile/tap.py,sha256=826fbc6471d641e145427f5963ca2c3a5bc46dceb9ed4d56053cc849825a54c1,5946
77
+ minitap/mobile_use/tools/mobile/wait_for_animation_to_end.py,sha256=26b422556a31700ca98e769e7142c02248980f2ce01b712440269a072d2c0efc,2517
78
+ minitap/mobile_use/tools/test_utils.py,sha256=42dd0ff789c92254bc4452ab339a53f0d597a9bfddd2a6554d37f54ff52920ef,13888
79
79
  minitap/mobile_use/tools/tool_wrapper.py,sha256=f0f27beaae25a1bcfd9b72bf994de84b2e5fba9e242d8ad18a8d1a97cd7619e4,454
80
- minitap/mobile_use/tools/utils.py,sha256=d056e5baf268e19e9463bf0c1e923ed81eb0f699ed071d904a3585fb16924a7d,6717
80
+ minitap/mobile_use/tools/types.py,sha256=4f73939260509269416f5ad515a34569f7fa3467e1f920b9e8a991d1adbc761a,1298
81
+ minitap/mobile_use/tools/utils.py,sha256=7a80b9f82447a718ecc1fd2163f13f35f4f0b4e2859abd85f3c014ded10bccf2,6926
81
82
  minitap/mobile_use/utils/cli_helpers.py,sha256=1c53b6ea6cd2ba861302b182944c6a3a31dac27e316bca2c65cd6a3ca3256e81,1720
82
83
  minitap/mobile_use/utils/cli_selection.py,sha256=62e949bf075e984b5d23b4a9880ff2bccf8f9e0f7ccb48120030a6a82075352b,4788
83
84
  minitap/mobile_use/utils/conversations.py,sha256=8f1d924300ec3f6f7c71510c21e3011b75caca5b1fff06fdaccb377c3cde24ec,914
@@ -86,13 +87,13 @@ minitap/mobile_use/utils/errors.py,sha256=6c5566484cff48ce1eb168c3cbe93d6e536545
86
87
  minitap/mobile_use/utils/file.py,sha256=1ca968613452a273b23e4f58460ab39f87255b02cdb6fb8ca04f4e628b346070,315
87
88
  minitap/mobile_use/utils/logger.py,sha256=011fe08c39b111997ec685b9f0b378761607e35ac049234b5e86c2b58f29bbe3,5633
88
89
  minitap/mobile_use/utils/media.py,sha256=29fa7f009a0f2bd60de2a9eba4a90e6eecc91cc67c2736b753506d48ab2bf5eb,2228
89
- minitap/mobile_use/utils/recorder.py,sha256=f90c511a182553684fc4c51195dec6859c7867b83b66bd56dd13f0cdcab2b3ae,1724
90
+ minitap/mobile_use/utils/recorder.py,sha256=a5f3e2da3b4326bd1285537b7cfd4c84eda3dc47cda2f3c873026d0720896823,1726
90
91
  minitap/mobile_use/utils/requests_utils.py,sha256=5c3a2e2aff7c521cd6a43b74c084e2244e1ff55065a5b722e6e251c6419861fd,1168
91
92
  minitap/mobile_use/utils/shell_utils.py,sha256=b35ae7f863379adb86c9ba0f9b3b9d4954118d12aef1ffed0bc260b32d73d857,650
92
93
  minitap/mobile_use/utils/test_ui_hierarchy.py,sha256=96c1549c05b4f7254a22d57dbd40aea860756f1e0b9d8cc24319383643448422,5911
93
94
  minitap/mobile_use/utils/time.py,sha256=41bfaabb3751de11443ccb4a3f1f53d5ebacc7744c72e32695fdcc3d23f17d49,160
94
- minitap/mobile_use/utils/ui_hierarchy.py,sha256=69bff27bcb29087ebab4946f52c72d833414bd7e8819d3610beb61cc39c9023d,3626
95
- minitap_mobile_use-2.3.0.dist-info/WHEEL,sha256=ab6157bc637547491fb4567cd7ddf26b04d63382916ca16c29a5c8e94c9c9ef7,79
96
- minitap_mobile_use-2.3.0.dist-info/entry_points.txt,sha256=663a29cfd551a4eaa0f27335f0bd7e4a732a4e39c76b68ef5c8dc444d4a285fa,60
97
- minitap_mobile_use-2.3.0.dist-info/METADATA,sha256=0fc22ec4cc7d885577bf44a33f469ce7229b43045a8fa8be45fdfd54495e6be9,11917
98
- minitap_mobile_use-2.3.0.dist-info/RECORD,,
95
+ minitap/mobile_use/utils/ui_hierarchy.py,sha256=f3370518035d9daf02c08042a9e28ad564f4fc81a2b268103b9a7f8bc5c61d11,3797
96
+ minitap_mobile_use-2.4.0.dist-info/WHEEL,sha256=ab6157bc637547491fb4567cd7ddf26b04d63382916ca16c29a5c8e94c9c9ef7,79
97
+ minitap_mobile_use-2.4.0.dist-info/entry_points.txt,sha256=663a29cfd551a4eaa0f27335f0bd7e4a732a4e39c76b68ef5c8dc444d4a285fa,60
98
+ minitap_mobile_use-2.4.0.dist-info/METADATA,sha256=1869bc355bd20880725667ac35b399d81b0512ee6d9770868fea35384ef193ee,11995
99
+ minitap_mobile_use-2.4.0.dist-info/RECORD,,
@@ -1,75 +0,0 @@
1
- from typing import Annotated
2
-
3
- from langchain_core.messages import ToolMessage
4
- from langchain_core.tools import tool
5
- from langchain_core.tools.base import InjectedToolCallId
6
- from langgraph.prebuilt import InjectedState
7
- from langgraph.types import Command
8
- from pydantic import Field
9
-
10
- from minitap.mobile_use.constants import EXECUTOR_MESSAGES_KEY
11
- from minitap.mobile_use.context import MobileUseContext
12
- from minitap.mobile_use.controllers.mobile_command_controller import SelectorRequest
13
- from minitap.mobile_use.controllers.mobile_command_controller import (
14
- copy_text_from as copy_text_from_controller,
15
- )
16
- from minitap.mobile_use.graph.state import State
17
- from minitap.mobile_use.tools.tool_wrapper import ToolWrapper
18
-
19
-
20
- def get_copy_text_from_tool(ctx: MobileUseContext):
21
- @tool
22
- def copy_text_from(
23
- tool_call_id: Annotated[str, InjectedToolCallId],
24
- state: Annotated[State, InjectedState],
25
- agent_thought: str,
26
- selector_request: SelectorRequest = Field(
27
- ..., description="The selector to copy text from"
28
- ),
29
- ):
30
- """
31
- Copies text from a UI element identified by the given selector and stores it in memory.
32
-
33
- The copied text can be:
34
- - Pasted later using `pasteText`
35
- - Accessed in JavaScript via `maestro.copiedText`
36
-
37
- Example Usage:
38
- - launchApp
39
- - copyTextFrom: { id: "someId" }
40
- - tapOn: { id: "searchFieldId" }
41
- - pasteText
42
-
43
- See the Selectors documentation for supported selector types.
44
- """
45
- output = copy_text_from_controller(ctx=ctx, selector_request=selector_request)
46
- has_failed = output is not None
47
- tool_message = ToolMessage(
48
- tool_call_id=tool_call_id,
49
- content=copy_text_from_wrapper.on_failure_fn(selector_request)
50
- if has_failed
51
- else copy_text_from_wrapper.on_success_fn(selector_request),
52
- additional_kwargs={"error": output} if has_failed else {},
53
- status="error" if has_failed else "success",
54
- )
55
- return Command(
56
- update=state.sanitize_update(
57
- ctx=ctx,
58
- update={
59
- "agents_thoughts": [agent_thought],
60
- EXECUTOR_MESSAGES_KEY: [tool_message],
61
- },
62
- agent="executor",
63
- ),
64
- )
65
-
66
- return copy_text_from
67
-
68
-
69
- copy_text_from_wrapper = ToolWrapper(
70
- tool_fn_getter=get_copy_text_from_tool,
71
- on_success_fn=lambda selector_request: (
72
- f'Text copied successfully from selector "{selector_request}".'
73
- ),
74
- on_failure_fn=lambda selector_request: f"Failed to copy text from selector {selector_request}.",
75
- )
@@ -1,69 +0,0 @@
1
- from langchain_core.messages import ToolMessage
2
- from langchain_core.tools import tool
3
- from langchain_core.tools.base import InjectedToolCallId
4
- from langgraph.prebuilt import InjectedState
5
- from langgraph.types import Command
6
- from minitap.mobile_use.agents.hopper.hopper import HopperOutput, hopper
7
- from minitap.mobile_use.constants import EXECUTOR_MESSAGES_KEY
8
- from minitap.mobile_use.context import MobileUseContext
9
- from minitap.mobile_use.controllers.platform_specific_commands_controller import list_packages
10
- from minitap.mobile_use.graph.state import State
11
- from minitap.mobile_use.tools.tool_wrapper import ToolWrapper
12
- from typing import Annotated
13
-
14
-
15
- def get_find_packages_tool(ctx: MobileUseContext):
16
- @tool
17
- async def find_packages(
18
- tool_call_id: Annotated[str, InjectedToolCallId],
19
- state: Annotated[State, InjectedState],
20
- appNames: list[str],
21
- agent_thought: str,
22
- ) -> Command:
23
- """
24
- Finds relevant applications.
25
- Outputs the full package names list (android) or bundle ids list (IOS).
26
- """
27
- output: str = list_packages(ctx=ctx)
28
-
29
- try:
30
- hopper_output: HopperOutput = await hopper(
31
- ctx=ctx,
32
- request=f"I'm looking for the package names of the following apps: {appNames}",
33
- data=output,
34
- )
35
- tool_message = ToolMessage(
36
- tool_call_id=tool_call_id,
37
- content=find_packages_wrapper.on_success_fn(
38
- hopper_output.step, hopper_output.output
39
- ),
40
- status="success",
41
- )
42
- except Exception as e:
43
- print("Failed to extract insights from data: " + str(e))
44
- tool_message = ToolMessage(
45
- tool_call_id=tool_call_id,
46
- content=find_packages_wrapper.on_failure_fn(),
47
- additional_kwargs={"output": output},
48
- status="error",
49
- )
50
-
51
- return Command(
52
- update=state.sanitize_update(
53
- ctx=ctx,
54
- update={
55
- "agents_thoughts": [agent_thought, tool_message.content],
56
- EXECUTOR_MESSAGES_KEY: [tool_message],
57
- },
58
- agent="executor",
59
- ),
60
- )
61
-
62
- return find_packages
63
-
64
-
65
- find_packages_wrapper = ToolWrapper(
66
- tool_fn_getter=get_find_packages_tool,
67
- on_success_fn=lambda thought, output: f"Packages found successfully ({thought}): {output}",
68
- on_failure_fn=lambda: "Failed to find packages.",
69
- )
@@ -1,88 +0,0 @@
1
- from typing import Annotated
2
-
3
- from langchain_core.messages import ToolMessage
4
- from langchain_core.tools import tool
5
- from langchain_core.tools.base import InjectedToolCallId
6
- from langgraph.prebuilt import InjectedState
7
- from langgraph.types import Command
8
-
9
- from minitap.mobile_use.constants import EXECUTOR_MESSAGES_KEY
10
- from minitap.mobile_use.context import MobileUseContext
11
- from minitap.mobile_use.controllers.mobile_command_controller import (
12
- get_screen_data,
13
- )
14
- from minitap.mobile_use.controllers.mobile_command_controller import (
15
- paste_text as paste_text_controller,
16
- )
17
- from minitap.mobile_use.graph.state import State
18
- from minitap.mobile_use.tools.tool_wrapper import ToolWrapper
19
- from minitap.mobile_use.utils.ui_hierarchy import find_element_by_resource_id, get_element_text
20
-
21
-
22
- def get_paste_text_tool(ctx: MobileUseContext):
23
- @tool
24
- def paste_text(
25
- tool_call_id: Annotated[str, InjectedToolCallId],
26
- state: Annotated[State, InjectedState],
27
- agent_thought: str,
28
- focused_element_resource_id: str,
29
- ):
30
- """
31
- Pastes text previously copied via `copyTextFrom` into the currently focused field.
32
-
33
- Note:
34
- The text field must be focused before using this command.
35
-
36
- Example:
37
- - copyTextFrom: { id: "someId" }
38
- - tapOn: { id: "searchFieldId" }
39
- - pasteText
40
- """
41
- output = paste_text_controller(ctx=ctx)
42
-
43
- text_input_content = ""
44
- screen_data = get_screen_data(screen_api_client=ctx.screen_api_client)
45
- state.latest_ui_hierarchy = screen_data.elements
46
-
47
- element = find_element_by_resource_id(
48
- ui_hierarchy=state.latest_ui_hierarchy, resource_id=focused_element_resource_id
49
- )
50
-
51
- if element:
52
- text_input_content = get_element_text(element)
53
-
54
- has_failed = output is not None
55
-
56
- agent_outcome = (
57
- paste_text_wrapper.on_success_fn(text_input_content)
58
- if not has_failed
59
- else paste_text_wrapper.on_failure_fn(text_input_content)
60
- )
61
-
62
- tool_message = ToolMessage(
63
- tool_call_id=tool_call_id,
64
- content=agent_outcome,
65
- additional_kwargs={"error": output} if has_failed else {},
66
- status="error" if has_failed else "success",
67
- )
68
- return Command(
69
- update=state.sanitize_update(
70
- ctx=ctx,
71
- update={
72
- "agents_thoughts": [agent_thought, agent_outcome],
73
- EXECUTOR_MESSAGES_KEY: [tool_message],
74
- },
75
- agent="executor",
76
- ),
77
- )
78
-
79
- return paste_text
80
-
81
-
82
- paste_text_wrapper = ToolWrapper(
83
- tool_fn_getter=get_paste_text_tool,
84
- on_success_fn=lambda input_content: "Text pasted successfully. Here is the actual"
85
- + f"content of the text field : {repr(input_content)}",
86
- on_failure_fn=lambda input_content: "Failed to paste text."
87
- + f"Here is the actual content of the text field : {repr(input_content)}",
88
- )