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.
- minitap/mobile_use/agents/contextor/contextor.py +2 -2
- minitap/mobile_use/agents/cortex/cortex.md +49 -8
- minitap/mobile_use/agents/cortex/cortex.py +8 -4
- minitap/mobile_use/agents/executor/executor.md +14 -11
- minitap/mobile_use/agents/executor/executor.py +6 -5
- minitap/mobile_use/agents/hopper/hopper.py +6 -3
- minitap/mobile_use/agents/orchestrator/orchestrator.py +26 -11
- minitap/mobile_use/agents/outputter/outputter.py +6 -3
- minitap/mobile_use/agents/planner/planner.md +20 -22
- minitap/mobile_use/agents/planner/planner.py +10 -7
- minitap/mobile_use/agents/planner/types.py +4 -2
- minitap/mobile_use/agents/planner/utils.py +14 -0
- minitap/mobile_use/agents/summarizer/summarizer.py +2 -2
- minitap/mobile_use/config.py +6 -1
- minitap/mobile_use/context.py +13 -3
- minitap/mobile_use/controllers/mobile_command_controller.py +1 -14
- minitap/mobile_use/graph/state.py +7 -3
- minitap/mobile_use/sdk/agent.py +188 -23
- minitap/mobile_use/sdk/examples/README.md +19 -1
- minitap/mobile_use/sdk/examples/platform_minimal_example.py +46 -0
- minitap/mobile_use/sdk/services/platform.py +244 -0
- minitap/mobile_use/sdk/types/__init__.py +14 -14
- minitap/mobile_use/sdk/types/exceptions.py +27 -0
- minitap/mobile_use/sdk/types/platform.py +125 -0
- minitap/mobile_use/sdk/types/task.py +60 -17
- minitap/mobile_use/servers/device_hardware_bridge.py +1 -1
- minitap/mobile_use/servers/stop_servers.py +11 -12
- minitap/mobile_use/services/llm.py +89 -5
- minitap/mobile_use/tools/index.py +0 -6
- minitap/mobile_use/tools/mobile/back.py +3 -3
- minitap/mobile_use/tools/mobile/clear_text.py +24 -43
- minitap/mobile_use/tools/mobile/erase_one_char.py +5 -4
- minitap/mobile_use/tools/mobile/glimpse_screen.py +11 -7
- minitap/mobile_use/tools/mobile/input_text.py +21 -51
- minitap/mobile_use/tools/mobile/launch_app.py +54 -22
- minitap/mobile_use/tools/mobile/long_press_on.py +15 -8
- minitap/mobile_use/tools/mobile/open_link.py +15 -8
- minitap/mobile_use/tools/mobile/press_key.py +15 -8
- minitap/mobile_use/tools/mobile/stop_app.py +14 -8
- minitap/mobile_use/tools/mobile/swipe.py +11 -5
- minitap/mobile_use/tools/mobile/tap.py +103 -21
- minitap/mobile_use/tools/mobile/wait_for_animation_to_end.py +3 -3
- minitap/mobile_use/tools/test_utils.py +104 -78
- minitap/mobile_use/tools/types.py +35 -0
- minitap/mobile_use/tools/utils.py +51 -48
- minitap/mobile_use/utils/recorder.py +1 -1
- minitap/mobile_use/utils/ui_hierarchy.py +9 -2
- {minitap_mobile_use-2.3.0.dist-info → minitap_mobile_use-2.4.0.dist-info}/METADATA +3 -1
- {minitap_mobile_use-2.3.0.dist-info → minitap_mobile_use-2.4.0.dist-info}/RECORD +51 -50
- minitap/mobile_use/tools/mobile/copy_text_from.py +0 -75
- minitap/mobile_use/tools/mobile/find_packages.py +0 -69
- minitap/mobile_use/tools/mobile/paste_text.py +0 -88
- {minitap_mobile_use-2.3.0.dist-info → minitap_mobile_use-2.4.0.dist-info}/WHEEL +0 -0
- {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=
|
|
3
|
-
minitap/mobile_use/agents/cortex/cortex.md,sha256=
|
|
4
|
-
minitap/mobile_use/agents/cortex/cortex.py,sha256=
|
|
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=
|
|
7
|
-
minitap/mobile_use/agents/executor/executor.py,sha256=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
21
|
-
minitap/mobile_use/agents/planner/planner.py,sha256=
|
|
22
|
-
minitap/mobile_use/agents/planner/types.py,sha256=
|
|
23
|
-
minitap/mobile_use/agents/planner/utils.py,sha256=
|
|
24
|
-
minitap/mobile_use/agents/summarizer/summarizer.py,sha256=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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/
|
|
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=
|
|
51
|
-
minitap/mobile_use/sdk/types/
|
|
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=
|
|
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=
|
|
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=
|
|
61
|
-
minitap/mobile_use/tools/index.py,sha256=
|
|
62
|
-
minitap/mobile_use/tools/mobile/back.py,sha256=
|
|
63
|
-
minitap/mobile_use/tools/mobile/clear_text.py,sha256=
|
|
64
|
-
minitap/mobile_use/tools/mobile/
|
|
65
|
-
minitap/mobile_use/tools/mobile/
|
|
66
|
-
minitap/mobile_use/tools/mobile/
|
|
67
|
-
minitap/mobile_use/tools/mobile/
|
|
68
|
-
minitap/mobile_use/tools/mobile/
|
|
69
|
-
minitap/mobile_use/tools/mobile/
|
|
70
|
-
minitap/mobile_use/tools/mobile/
|
|
71
|
-
minitap/mobile_use/tools/mobile/
|
|
72
|
-
minitap/mobile_use/tools/mobile/
|
|
73
|
-
minitap/mobile_use/tools/mobile/
|
|
74
|
-
minitap/mobile_use/tools/mobile/
|
|
75
|
-
minitap/mobile_use/tools/
|
|
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/
|
|
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=
|
|
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=
|
|
95
|
-
minitap_mobile_use-2.
|
|
96
|
-
minitap_mobile_use-2.
|
|
97
|
-
minitap_mobile_use-2.
|
|
98
|
-
minitap_mobile_use-2.
|
|
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
|
-
)
|
|
File without changes
|
|
File without changes
|