autoglm-gui 1.5.0__py3-none-any.whl → 1.5.1__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.
- AutoGLM_GUI/agents/glm/agent.py +6 -1
- AutoGLM_GUI/agents/mai/agent.py +3 -0
- AutoGLM_GUI/agents/stream_runner.py +7 -2
- AutoGLM_GUI/api/agents.py +26 -1
- AutoGLM_GUI/api/history.py +27 -1
- AutoGLM_GUI/models/history.py +45 -1
- AutoGLM_GUI/scheduler_manager.py +52 -6
- AutoGLM_GUI/schemas.py +12 -0
- AutoGLM_GUI/static/assets/{about-BQm96DAl.js → about-CfwX1Cmc.js} +1 -1
- AutoGLM_GUI/static/assets/{alert-dialog-B42XxGPR.js → alert-dialog-CtGlN2IJ.js} +1 -1
- AutoGLM_GUI/static/assets/chat-BYa-foUI.js +129 -0
- AutoGLM_GUI/static/assets/{circle-alert-D4rSJh37.js → circle-alert-t08bEMPO.js} +1 -1
- AutoGLM_GUI/static/assets/{dialog-DZ78cEcj.js → dialog-FNwZJFwk.js} +1 -1
- AutoGLM_GUI/static/assets/eye-D0UPWCWC.js +1 -0
- AutoGLM_GUI/static/assets/history-CRo95B7i.js +1 -0
- AutoGLM_GUI/static/assets/{index-CmZSnDqc.js → index-BaLMSqd3.js} +1 -1
- AutoGLM_GUI/static/assets/{index-CssG-3TH.js → index-CTHbFvKl.js} +5 -5
- AutoGLM_GUI/static/assets/index-CV7jGxGm.css +1 -0
- AutoGLM_GUI/static/assets/{label-BCUzE_nm.js → label-DJFevVmr.js} +1 -1
- AutoGLM_GUI/static/assets/{logs-eoFxn5of.js → logs-RW09DyYY.js} +1 -1
- AutoGLM_GUI/static/assets/{popover-DLsuV5Sx.js → popover--JTJrE5v.js} +1 -1
- AutoGLM_GUI/static/assets/{scheduled-tasks-MyqGJvy_.js → scheduled-tasks-DTRKsQXF.js} +1 -1
- AutoGLM_GUI/static/assets/{square-pen-zGWYrdfj.js → square-pen-CPK_K680.js} +1 -1
- AutoGLM_GUI/static/assets/{textarea-BX6y7uM5.js → textarea-PRmVnWq5.js} +1 -1
- AutoGLM_GUI/static/assets/{workflows-CYFs6ssC.js → workflows-CdcsAoaT.js} +1 -1
- AutoGLM_GUI/static/index.html +2 -2
- {autoglm_gui-1.5.0.dist-info → autoglm_gui-1.5.1.dist-info}/METADATA +49 -7
- {autoglm_gui-1.5.0.dist-info → autoglm_gui-1.5.1.dist-info}/RECORD +31 -70
- AutoGLM_GUI/device_adapter.py +0 -263
- AutoGLM_GUI/static/assets/chat-C0L2gQYG.js +0 -129
- AutoGLM_GUI/static/assets/history-DFBv7TGc.js +0 -1
- AutoGLM_GUI/static/assets/index-Bzyv2yQ2.css +0 -1
- mai_agent/base.py +0 -137
- mai_agent/mai_grounding_agent.py +0 -263
- mai_agent/mai_naivigation_agent.py +0 -526
- mai_agent/prompt.py +0 -148
- mai_agent/unified_memory.py +0 -67
- mai_agent/utils.py +0 -73
- phone_agent/__init__.py +0 -12
- phone_agent/actions/__init__.py +0 -5
- phone_agent/actions/handler.py +0 -400
- phone_agent/actions/handler_ios.py +0 -278
- phone_agent/adb/__init__.py +0 -51
- phone_agent/adb/connection.py +0 -358
- phone_agent/adb/device.py +0 -253
- phone_agent/adb/input.py +0 -108
- phone_agent/adb/screenshot.py +0 -108
- phone_agent/agent.py +0 -253
- phone_agent/agent_ios.py +0 -277
- phone_agent/config/__init__.py +0 -53
- phone_agent/config/apps.py +0 -227
- phone_agent/config/apps_harmonyos.py +0 -256
- phone_agent/config/apps_ios.py +0 -339
- phone_agent/config/i18n.py +0 -81
- phone_agent/config/prompts.py +0 -80
- phone_agent/config/prompts_en.py +0 -79
- phone_agent/config/prompts_zh.py +0 -82
- phone_agent/config/timing.py +0 -167
- phone_agent/device_factory.py +0 -166
- phone_agent/hdc/__init__.py +0 -53
- phone_agent/hdc/connection.py +0 -384
- phone_agent/hdc/device.py +0 -269
- phone_agent/hdc/input.py +0 -145
- phone_agent/hdc/screenshot.py +0 -127
- phone_agent/model/__init__.py +0 -5
- phone_agent/model/client.py +0 -290
- phone_agent/xctest/__init__.py +0 -47
- phone_agent/xctest/connection.py +0 -379
- phone_agent/xctest/device.py +0 -472
- phone_agent/xctest/input.py +0 -311
- phone_agent/xctest/screenshot.py +0 -226
- {autoglm_gui-1.5.0.dist-info → autoglm_gui-1.5.1.dist-info}/WHEEL +0 -0
- {autoglm_gui-1.5.0.dist-info → autoglm_gui-1.5.1.dist-info}/entry_points.txt +0 -0
- {autoglm_gui-1.5.0.dist-info → autoglm_gui-1.5.1.dist-info}/licenses/LICENSE +0 -0
|
@@ -2,7 +2,6 @@ AutoGLM_GUI/__init__.py,sha256=XHKVEKeLm9LLoM5Otd_9Sk1ald7GxGIvIvjQlCpQTCc,2387
|
|
|
2
2
|
AutoGLM_GUI/__main__.py,sha256=liPZEFLCuhshCCodW_ldn0A63-i_gXy29TLIuDhuWvQ,6920
|
|
3
3
|
AutoGLM_GUI/config.py,sha256=OrjhbjcaZWBRLiLTzmknm6pONglDXjfoZngQd8jU9bk,2286
|
|
4
4
|
AutoGLM_GUI/config_manager.py,sha256=WZEa8p2iXIg1CneuquKh-EemdQL1uiPoz_I7yWPY99A,24312
|
|
5
|
-
AutoGLM_GUI/device_adapter.py,sha256=eA0bOlU-lzJig9cNCZrS0FqApEVbSOg7oke5P1iJ1rA,9011
|
|
6
5
|
AutoGLM_GUI/device_manager.py,sha256=QvxTjXvnVz_BhJAIfNColsXkw6YUQkf1yiC1An8u7kU,35293
|
|
7
6
|
AutoGLM_GUI/device_protocol.py,sha256=T3JctpggGekkYDeNXiPj_PoINPg8yFqalTx8Lk9w-9A,6944
|
|
8
7
|
AutoGLM_GUI/exceptions.py,sha256=QXTQzxdbEHDUrtaD1G4zuKZydFJO5ymNvuo8ZvVjUdA,3487
|
|
@@ -14,8 +13,8 @@ AutoGLM_GUI/phone_agent_manager.py,sha256=Bcz--lMTjLFzB2wX8teOm7CAyjcB7h_1E2eVkh
|
|
|
14
13
|
AutoGLM_GUI/platform_utils.py,sha256=tsZ-H6Lsgz3aceWQ3GVBmO4lgKBEyD5l-fYyXU7nPU4,3356
|
|
15
14
|
AutoGLM_GUI/prompt_config.py,sha256=3eNEDdlrk8rvuqakQTiVrGEmFFH5X-UdV-9yUibCSsI,336
|
|
16
15
|
AutoGLM_GUI/prompts.py,sha256=lC5UktW0KRpWKij6T0GG1OrNKV9gAfM6dUcp_tjX7mo,4814
|
|
17
|
-
AutoGLM_GUI/scheduler_manager.py,sha256=
|
|
18
|
-
AutoGLM_GUI/schemas.py,sha256=
|
|
16
|
+
AutoGLM_GUI/scheduler_manager.py,sha256=K7Y6j0omuuHgrJZJ780ck7ldLrosRzWmTBz-SYU3Hqg,11884
|
|
17
|
+
AutoGLM_GUI/schemas.py,sha256=m5dg3gjeu2GZT1IInAr0oyp4CCoyL8cUqX2KXlGlaqQ,21559
|
|
19
18
|
AutoGLM_GUI/scrcpy_protocol.py,sha256=h6AtAGq3zMM30FWM7EYiYKJz7BDikpNCOjcKtFcRx3s,997
|
|
20
19
|
AutoGLM_GUI/scrcpy_stream.py,sha256=cI30cOnDeAgaWZhHdkbAvQvuWovA3FVC8IatyrSspeE,21376
|
|
21
20
|
AutoGLM_GUI/server.py,sha256=Fo2Afl6CFT5B6MBggvR0n_savNxqxW22bFdN51NXRJs,299
|
|
@@ -49,24 +48,24 @@ AutoGLM_GUI/agents/__init__.py,sha256=z4AggrPOw8xa9S0e053UvOFIES5GTe052HZcjnYCmL
|
|
|
49
48
|
AutoGLM_GUI/agents/events.py,sha256=4810WrCNYqQFTpkIcU0lv3XUYwzR4uGn3MeshhDrFaI,392
|
|
50
49
|
AutoGLM_GUI/agents/factory.py,sha256=PKIcssxwGVjpCVqC03jS64vZUUarSDs1_9GB1AZTESE,4620
|
|
51
50
|
AutoGLM_GUI/agents/protocols.py,sha256=YkAprwChnLsomDRDyrPmzpI3uOAASHU-KHBpTxNryHs,572
|
|
52
|
-
AutoGLM_GUI/agents/stream_runner.py,sha256=
|
|
51
|
+
AutoGLM_GUI/agents/stream_runner.py,sha256=uWJ7QiRVhtQ52tO8sc5AOz3IQSHAXrBtp2v30IBtXAY,6831
|
|
53
52
|
AutoGLM_GUI/agents/glm/__init__.py,sha256=1b9SzDLmWXcxlPS708p96o4W1Ks40YWQ3dd2HPaYewI,179
|
|
54
|
-
AutoGLM_GUI/agents/glm/agent.py,sha256=
|
|
53
|
+
AutoGLM_GUI/agents/glm/agent.py,sha256=Owtad5NQY-Yg-iMiSAqWxfi5Lr6I31aDpbQvBKYZBys,10110
|
|
55
54
|
AutoGLM_GUI/agents/glm/message_builder.py,sha256=Z1eNMifdrQfojoDBnUBaFRMnxxvugE8kTvFX2jiyHFk,2302
|
|
56
55
|
AutoGLM_GUI/agents/glm/parser.py,sha256=nhWKIAlEloghxdw_pPEKMbLFufYsaj2aIFsYi_ZEU3A,3425
|
|
57
56
|
AutoGLM_GUI/agents/glm/prompts_en.py,sha256=ms92sFAl45gZC1mVdKjYN4kntJG-OZujbCcI-jyzJGo,2608
|
|
58
57
|
AutoGLM_GUI/agents/glm/prompts_zh.py,sha256=g3_6nBjcLZwc5Keg1u26Z4w6xjoL05Fk078263A5EZ8,8285
|
|
59
58
|
AutoGLM_GUI/agents/mai/__init__.py,sha256=HOma4Vc0SDgk2uyS-bq6IvWCrpTBTC_9u6TJp1fOplU,935
|
|
60
|
-
AutoGLM_GUI/agents/mai/agent.py,sha256=
|
|
59
|
+
AutoGLM_GUI/agents/mai/agent.py,sha256=xkLXjTJeKiTuaBddi70RHsQGpcaBzMjyXjjB9LBfqgc,14158
|
|
61
60
|
AutoGLM_GUI/agents/mai/parser.py,sha256=0VoxBiW3gEaU759tw1iD0qoOOFgUcaq-CyiWQJ1u0aM,8453
|
|
62
61
|
AutoGLM_GUI/agents/mai/prompts.py,sha256=X3dvVLAP01_OcpUYiwJxBNhETU3lbY-EUK0gJURtkec,4392
|
|
63
62
|
AutoGLM_GUI/agents/mai/traj_memory.py,sha256=2oEpwgz4YGT3KgW0BojFYEcsZL8WKlkaBJao0QcLHcY,2965
|
|
64
63
|
AutoGLM_GUI/api/__init__.py,sha256=EYENHE-DjShI0EOy65i3cmpw7CT4EilaQgG3rmPW0Qs,6321
|
|
65
|
-
AutoGLM_GUI/api/agents.py,sha256=
|
|
64
|
+
AutoGLM_GUI/api/agents.py,sha256=JkAVnylw9Wdan1pE3gaSnoWsY9yHegH1Dm-9kqlW3q8,19274
|
|
66
65
|
AutoGLM_GUI/api/control.py,sha256=mxklJ7o4Eb_nc-lZKKG86zMk2s5DHv3WGPatnyzQB44,3374
|
|
67
66
|
AutoGLM_GUI/api/devices.py,sha256=lRjbkrNHM9aoXGw4pu0GidDDedR6DB5uPxsTQZJmcCE,14022
|
|
68
67
|
AutoGLM_GUI/api/health.py,sha256=ZedFUv-IHst_YUyeQ_MpL5JXOKuOhWVlHBVwAY3MM0I,266
|
|
69
|
-
AutoGLM_GUI/api/history.py,sha256=
|
|
68
|
+
AutoGLM_GUI/api/history.py,sha256=GFJ3kphNAkQFATiWAzLVsCJPrjrJ6_LMGYwfUwTHy4c,3582
|
|
70
69
|
AutoGLM_GUI/api/layered_agent.py,sha256=GvwajyfzFbfuPWhFxbz9p8fR1dspAH4x3VN_h5gwE0A,28403
|
|
71
70
|
AutoGLM_GUI/api/mcp.py,sha256=ppqzBxiS_8tUeJ5P8AszH_4m6q0sNe0oT2SCU_uISks,4625
|
|
72
71
|
AutoGLM_GUI/api/media.py,sha256=Cwtk2cikZSBK8gV-igpdtx7bsGYyb2letOe4ZEj0-k4,3806
|
|
@@ -82,76 +81,38 @@ AutoGLM_GUI/model/__init__.py,sha256=eBat20fq5PyTUL_uRW33eQQzj6m3JQkG5rVgmDOgh3c
|
|
|
82
81
|
AutoGLM_GUI/model/message_builder.py,sha256=wUX3iFiR8kj2lBEpI9gJXVISzsW1AgvRVeIG4DaHmEQ,2148
|
|
83
82
|
AutoGLM_GUI/model/types.py,sha256=Lk96Nmn9U69RaT9OZbUgop2HvZK0Dx4ticCqpGgTsM8,750
|
|
84
83
|
AutoGLM_GUI/models/__init__.py,sha256=NYsb1EcyrcoSYeRYC9u4wEPfTmtEKUScxjd_RNrvIaQ,252
|
|
85
|
-
AutoGLM_GUI/models/history.py,sha256=
|
|
84
|
+
AutoGLM_GUI/models/history.py,sha256=v6_-VA-QQgwnh3SicsRaoDOIpPaB7Z1-AxionFp2OGI,4600
|
|
86
85
|
AutoGLM_GUI/models/scheduled_task.py,sha256=Z4qO9W72nRyI--gDLqAkO1AMN30B_SDAqZUeF7mQ6o8,2536
|
|
87
86
|
AutoGLM_GUI/parsers/__init__.py,sha256=pa5GK6zVJH0vxofZkkMf4UJmoqAUo29cxI9ujkBeI0E,693
|
|
88
87
|
AutoGLM_GUI/parsers/base.py,sha256=3HGsMAhIv5oQU9GjLGPzMDtDmhScpFQKYK1kaRhNm8w,1565
|
|
89
88
|
AutoGLM_GUI/parsers/phone_parser.py,sha256=JEgfZfpolmGM_j9F1gNZC1nxBNWXlo4h1k_JIyNuLCE,2053
|
|
90
89
|
AutoGLM_GUI/prompts/__init__.py,sha256=GtS7Ek3ds5G8orJj4R-2odjm1Hchje3cF1-1YaxZD38,1069
|
|
91
90
|
AutoGLM_GUI/static/favicon.ico,sha256=uB4wrcENiFaF-K4V-FzNp51XLW8GC4-ujpBDHgISfGM,781
|
|
92
|
-
AutoGLM_GUI/static/index.html,sha256=
|
|
91
|
+
AutoGLM_GUI/static/index.html,sha256=CxPbhU2dHA4PMHb9CaqSCbR2QIagsWavdVPasAYxCz0,761
|
|
93
92
|
AutoGLM_GUI/static/logo-192.png,sha256=FOXgZxFrN0ZleO0VjlCnvD5cDkd1okJPkwPDZqsflNs,35243
|
|
94
93
|
AutoGLM_GUI/static/logo-512.png,sha256=HlwSg09dQ3_Jtb09Ght4l2VK3YNLZlP_941LCdpDkWk,251598
|
|
95
|
-
AutoGLM_GUI/static/assets/about-
|
|
96
|
-
AutoGLM_GUI/static/assets/alert-dialog-
|
|
97
|
-
AutoGLM_GUI/static/assets/chat-
|
|
98
|
-
AutoGLM_GUI/static/assets/circle-alert-
|
|
99
|
-
AutoGLM_GUI/static/assets/dialog-
|
|
100
|
-
AutoGLM_GUI/static/assets/
|
|
101
|
-
AutoGLM_GUI/static/assets/
|
|
102
|
-
AutoGLM_GUI/static/assets/index-
|
|
103
|
-
AutoGLM_GUI/static/assets/index-
|
|
104
|
-
AutoGLM_GUI/static/assets/
|
|
94
|
+
AutoGLM_GUI/static/assets/about-CfwX1Cmc.js,sha256=9oETNHceeJjZHTwdx56sR_N-zh3Ry-oxy7DZw4gDBxQ,155
|
|
95
|
+
AutoGLM_GUI/static/assets/alert-dialog-CtGlN2IJ.js,sha256=PH3sQ9SsNTw9MxgWF9fK0PhZyn-KQwjG76XZ2QE1c0o,3140
|
|
96
|
+
AutoGLM_GUI/static/assets/chat-BYa-foUI.js,sha256=NIM5jD7F7XJbGrVaBStbd1jrl1LOS-QeVqw8vJOQZiI,301041
|
|
97
|
+
AutoGLM_GUI/static/assets/circle-alert-t08bEMPO.js,sha256=N6uSigPZu4YJdlJ6qLWeyOMpUofDLn9mHFXT525ZdLM,251
|
|
98
|
+
AutoGLM_GUI/static/assets/dialog-FNwZJFwk.js,sha256=gRs_hh2BxysSNQ8LgyvnDmBEr8-Ek6OgXSTBvp61xRc,25373
|
|
99
|
+
AutoGLM_GUI/static/assets/eye-D0UPWCWC.js,sha256=0Cj-BDbPmQQ1TWPtAtl5KQmUW08zjvUvhmEia4XV-dI,339
|
|
100
|
+
AutoGLM_GUI/static/assets/history-CRo95B7i.js,sha256=E_EUGqi753WvivR4ivnc5jiY015C7u5_nnzGylFSmBQ,10787
|
|
101
|
+
AutoGLM_GUI/static/assets/index-BaLMSqd3.js,sha256=O886kmQVwhXM8jq4aPEtxFfMrzIzroFqZyIXFqrJdso,229
|
|
102
|
+
AutoGLM_GUI/static/assets/index-CTHbFvKl.js,sha256=sUeL3IunDxbs0AbxlFkSItIKY36uXKxBiSgL98aPLG4,396545
|
|
103
|
+
AutoGLM_GUI/static/assets/index-CV7jGxGm.css,sha256=cw7HZ3DBylOyAOpqLz6j5bnSBvGL6mrqXb1hvBvWXjE,83985
|
|
104
|
+
AutoGLM_GUI/static/assets/label-DJFevVmr.js,sha256=dQt2s2v47Em5pH2I-D2yS7BjOVVYpojfSYYLygyzZRo,1407
|
|
105
105
|
AutoGLM_GUI/static/assets/logo-Cyfm06Ym.png,sha256=6GRUFH2KNmB4ZmnrmJ1wxpoIYEmOW-__XlmKImyAMKM,4955675
|
|
106
|
-
AutoGLM_GUI/static/assets/logs-
|
|
107
|
-
AutoGLM_GUI/static/assets/popover
|
|
108
|
-
AutoGLM_GUI/static/assets/scheduled-tasks-
|
|
109
|
-
AutoGLM_GUI/static/assets/square-pen-
|
|
110
|
-
AutoGLM_GUI/static/assets/textarea-
|
|
106
|
+
AutoGLM_GUI/static/assets/logs-RW09DyYY.js,sha256=RwkA-hZFnhEX_3thhw-hCRYi3t7vbwJ9oGywE2iztZQ,5048
|
|
107
|
+
AutoGLM_GUI/static/assets/popover--JTJrE5v.js,sha256=LREDbF7RY5psGvW-0Z7DYvAxCPapJszZQLRUGgLf8WQ,5782
|
|
108
|
+
AutoGLM_GUI/static/assets/scheduled-tasks-DTRKsQXF.js,sha256=_6R292PSGOtogjprbUt40QT1NsNWsfUG_1LBN0iXmDE,8364
|
|
109
|
+
AutoGLM_GUI/static/assets/square-pen-CPK_K680.js,sha256=GG9UhqPsIwIBpgAwCRhHYd2E7sjUGSiTV8EpTIY05g4,321
|
|
110
|
+
AutoGLM_GUI/static/assets/textarea-PRmVnWq5.js,sha256=hfTdufXPvGYU0YEjkX5aTxmJdgSNZ9Daz_XPxiHapzE,705
|
|
111
111
|
AutoGLM_GUI/static/assets/worker-D6BRitjy.js,sha256=RL1NIRIks9dXdDhXOHK1cCg-OELT0uv9a6u_UEHfQ0Q,173494
|
|
112
|
-
AutoGLM_GUI/static/assets/workflows-
|
|
113
|
-
phone_agent/__init__.py,sha256=7sCmGiY-ePdb6L08MGG6DkOiu8goop6wq-v2SiM62tE,360
|
|
114
|
-
phone_agent/agent.py,sha256=1SgHpv70_XbujG1ElYRZbvRO5-d4l7gBgiFRBz_FIH8,8157
|
|
115
|
-
phone_agent/agent_ios.py,sha256=R7EBsoHVghEUBtI5TB7M0_btpFcb4NHquMNxktrqrJE,9338
|
|
116
|
-
phone_agent/device_factory.py,sha256=x_zsU2SNk4kh_OQafBoAfvH6nmMLCP-koqUUvcjNBhg,5027
|
|
117
|
-
phone_agent/actions/__init__.py,sha256=YiAMeBMVhRfmDOf0hQ_1FEBSV5ApcnHPQ05gHjA_weQ,160
|
|
118
|
-
phone_agent/actions/handler.py,sha256=QsRWS3RB_CQxdSmoNFNsmSe58j3__D0yDYB52mcmNN8,15640
|
|
119
|
-
phone_agent/actions/handler_ios.py,sha256=YmK-QabWqCTHBemNJFGnEqDZO5Zhu05KBEvuyBNYLB8,10223
|
|
120
|
-
phone_agent/adb/__init__.py,sha256=w3CBSGRv-cQPME-Q-Bx2tbL_WJkpb9RqmT2olNK9TZw,950
|
|
121
|
-
phone_agent/adb/connection.py,sha256=Epmghk079HcDCqOYARIv8u1kb_oit1Y8rxRhBlqr0z0,10344
|
|
122
|
-
phone_agent/adb/device.py,sha256=NRZAT9b8wT1wRJzV6176fMYxgmACkwyl0ASoEs3Id8g,6686
|
|
123
|
-
phone_agent/adb/input.py,sha256=Yr-5oXcYITkPl8humom7k5eakS3OMVPilj-N0veeCQQ,2857
|
|
124
|
-
phone_agent/adb/screenshot.py,sha256=FgPH6WgFBxU7JPgWpaCgQbltcm4LvhIoTmR5X5rm0yM,3161
|
|
125
|
-
phone_agent/config/__init__.py,sha256=mtVL2HYW5r5UrGejCsTDefXTnLvpfxrJouvfqc2JaS8,1322
|
|
126
|
-
phone_agent/config/apps.py,sha256=D9HcsGzqwJL3g1ZRS4_Iq4WjviijDDEtkBJlV4-TSjE,8774
|
|
127
|
-
phone_agent/config/apps_harmonyos.py,sha256=z2QN6O7NPe87ta4EAPs6s4PAC74SPPXlXXz6fTkAXhY,10606
|
|
128
|
-
phone_agent/config/apps_ios.py,sha256=CrOEDnPyG7T2qF_lS3SDlXjhbJPwDKI61_yOrggernc,11481
|
|
129
|
-
phone_agent/config/i18n.py,sha256=-x8yD5ywyK7xwjoI-pOYqPlSeId_W9KkVjmKayr36m0,2501
|
|
130
|
-
phone_agent/config/prompts.py,sha256=0XKS_LrXthPB_bAXUT3ezsyr7UlwJNR2i4FLdEuticQ,8444
|
|
131
|
-
phone_agent/config/prompts_en.py,sha256=t8C9YLailtg8kVlFtYvq3t9EdtMGE8HastTfDh5BAUM,2630
|
|
132
|
-
phone_agent/config/prompts_zh.py,sha256=oOd5wJz-_P9ZF3F8hIPPrwjXdgv0sIgH7aop94eOTKM,8603
|
|
133
|
-
phone_agent/config/timing.py,sha256=bT-5HKGovzY_95wxRGIhmHyrIIPqhWivsXg-0LWc2pM,5793
|
|
134
|
-
phone_agent/hdc/__init__.py,sha256=6Olk6ujXQovtzmRLXk5MIqbwffxleSQnoHYvCO4G1Ww,996
|
|
135
|
-
phone_agent/hdc/connection.py,sha256=TweQ417wU2M35mgddK_Xt92zn5tZ0K7vtsaQjLn_e1o,11326
|
|
136
|
-
phone_agent/hdc/device.py,sha256=-tOXttrO2oGNFWg5dIGDgEEwa_jfesFTzpgTQJqlYik,7598
|
|
137
|
-
phone_agent/hdc/input.py,sha256=28TcK1FK1-4qpqbR3_vdjHc-l75en85EGI3rDpPy4rE,4901
|
|
138
|
-
phone_agent/hdc/screenshot.py,sha256=sD21nGQidt9_S7nMXDZ3qMl8A2m7Q95nkwJD8vD-9Nc,4099
|
|
139
|
-
phone_agent/model/__init__.py,sha256=w6yFkla9VoUvX5vZkTWa7Z5Bg5_lfA9AajrLjZsdL24,149
|
|
140
|
-
phone_agent/model/client.py,sha256=vpkWoqJUETd4a9P2fQHJAMdhVDQoALyByb9bpTgDPfY,9707
|
|
141
|
-
phone_agent/xctest/__init__.py,sha256=AKIwp6UfoaNdDvDveAp_v5h5UQPxU-PQTefMpfayzj0,881
|
|
142
|
-
phone_agent/xctest/connection.py,sha256=m2lT9aNZgknDzItPoA7KOiFaDVOPqx4Imdhl6GcHx20,10833
|
|
143
|
-
phone_agent/xctest/device.py,sha256=sOAPMoliMIabcrtsmzuGDKnZXtitqlc0lo8RSjQta7A,13655
|
|
144
|
-
phone_agent/xctest/input.py,sha256=aMp1YCRGBtGsRMKhA9rrjxuLkri0_k3n6hisi0EBJ2o,8164
|
|
145
|
-
phone_agent/xctest/screenshot.py,sha256=H6dsQGgf38h8dvuSeigiR2Qr8NucPanIgTK8kjlV9hA,6027
|
|
146
|
-
mai_agent/base.py,sha256=hYjGQXe_qguYkGq2qVWVO_xzsLzNqayA-dox_usCCM0,4546
|
|
147
|
-
mai_agent/mai_grounding_agent.py,sha256=d1X6giinaFVnTtKwh7oFktGZCkDjUySLb22toItykxM,8664
|
|
148
|
-
mai_agent/mai_naivigation_agent.py,sha256=7oA_mjxHfUEYEz2-oLdCEIImNQvAK-V4ADIMCqPPM2s,18264
|
|
149
|
-
mai_agent/prompt.py,sha256=Zgnj5JmVhCGjgM0sB-q19q0G76OCcNdffLypmwxRdl8,7111
|
|
150
|
-
mai_agent/unified_memory.py,sha256=AqEux-0I2WUIQOaY_yCRi-MDuU1BuY6dEWgClQETnEk,2194
|
|
151
|
-
mai_agent/utils.py,sha256=oJ50FEOM13-NwPHY4ttQ0tH49GS-w2TEy1_1FMCaxLg,2304
|
|
112
|
+
AutoGLM_GUI/static/assets/workflows-CdcsAoaT.js,sha256=LG_ggnjS484fxlNFnMELViavvmZmtEJyBWwOdZ6uvDc,3301
|
|
152
113
|
scrcpy-server-v3.3.3,sha256=fnAyO6fyWWSd1KzOl6xP77roECssbZHi575hP9U1S-A,90164
|
|
153
|
-
autoglm_gui-1.5.
|
|
154
|
-
autoglm_gui-1.5.
|
|
155
|
-
autoglm_gui-1.5.
|
|
156
|
-
autoglm_gui-1.5.
|
|
157
|
-
autoglm_gui-1.5.
|
|
114
|
+
autoglm_gui-1.5.1.dist-info/METADATA,sha256=EKtdUmFHRp0sKm4Vkq8JOxf3a-Kkui_jvoZrSJmxv5M,21690
|
|
115
|
+
autoglm_gui-1.5.1.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
116
|
+
autoglm_gui-1.5.1.dist-info/entry_points.txt,sha256=sz4rBO_kgrYmOiT0QnhCCv0b9QqBdWyCjugJgY8AEOI,58
|
|
117
|
+
autoglm_gui-1.5.1.dist-info/licenses/LICENSE,sha256=0IkSHDewdtmXnmYzTNq4U47EJYjTuhjQNpT0bZKuqWc,11342
|
|
118
|
+
autoglm_gui-1.5.1.dist-info/RECORD,,
|
AutoGLM_GUI/device_adapter.py
DELETED
|
@@ -1,263 +0,0 @@
|
|
|
1
|
-
"""Device Protocol Adapter for phone_agent integration.
|
|
2
|
-
|
|
3
|
-
This module provides an adapter that bridges DeviceProtocol implementations
|
|
4
|
-
to the interface expected by phone_agent's DeviceFactory.
|
|
5
|
-
|
|
6
|
-
The adapter allows injecting any DeviceProtocol implementation (ADB, Mock, Remote)
|
|
7
|
-
into phone_agent without modifying the third-party code.
|
|
8
|
-
|
|
9
|
-
Example:
|
|
10
|
-
>>> from AutoGLM_GUI.device_adapter import inject_device_protocol
|
|
11
|
-
>>> from AutoGLM_GUI.devices import MockDevice, ADBDevice
|
|
12
|
-
>>>
|
|
13
|
-
>>> # For testing: inject mock device
|
|
14
|
-
>>> mock = MockDevice("mock_001", state_machine)
|
|
15
|
-
>>> inject_device_protocol(lambda _: mock)
|
|
16
|
-
>>>
|
|
17
|
-
>>> # For production: inject ADB device
|
|
18
|
-
>>> devices = {"phone_1": ADBDevice("emulator-5554")}
|
|
19
|
-
>>> inject_device_protocol(lambda device_id: devices[device_id])
|
|
20
|
-
"""
|
|
21
|
-
|
|
22
|
-
from typing import Callable
|
|
23
|
-
|
|
24
|
-
import phone_agent.device_factory as device_factory_module
|
|
25
|
-
from AutoGLM_GUI.device_protocol import DeviceProtocol, Screenshot
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
class DeviceProtocolAdapter:
|
|
29
|
-
"""
|
|
30
|
-
Adapter that bridges DeviceProtocol to phone_agent's DeviceFactory interface.
|
|
31
|
-
|
|
32
|
-
This adapter wraps a DeviceProtocol getter function and exposes the same
|
|
33
|
-
interface as phone_agent's DeviceFactory, allowing seamless injection.
|
|
34
|
-
|
|
35
|
-
The adapter handles:
|
|
36
|
-
- Routing device operations to the correct DeviceProtocol instance
|
|
37
|
-
- Converting between DeviceProtocol and DeviceFactory method signatures
|
|
38
|
-
- Managing device_id parameters (phone_agent passes device_id to each method)
|
|
39
|
-
"""
|
|
40
|
-
|
|
41
|
-
def __init__(
|
|
42
|
-
self,
|
|
43
|
-
get_device: Callable[[str | None], DeviceProtocol],
|
|
44
|
-
default_device_id: str | None = None,
|
|
45
|
-
):
|
|
46
|
-
"""
|
|
47
|
-
Initialize the adapter.
|
|
48
|
-
|
|
49
|
-
Args:
|
|
50
|
-
get_device: Function that returns a DeviceProtocol given a device_id.
|
|
51
|
-
If device_id is None, should return a default device.
|
|
52
|
-
default_device_id: Default device ID to use when None is passed.
|
|
53
|
-
"""
|
|
54
|
-
self._get_device = get_device
|
|
55
|
-
self._default_device_id = default_device_id
|
|
56
|
-
# For compatibility with code that checks device_type
|
|
57
|
-
self.device_type = "protocol_adapter"
|
|
58
|
-
|
|
59
|
-
def _device(self, device_id: str | None) -> DeviceProtocol:
|
|
60
|
-
"""Get device for the given ID."""
|
|
61
|
-
effective_id = device_id or self._default_device_id
|
|
62
|
-
return self._get_device(effective_id)
|
|
63
|
-
|
|
64
|
-
# === Screenshot ===
|
|
65
|
-
def get_screenshot(
|
|
66
|
-
self, device_id: str | None = None, timeout: int = 10
|
|
67
|
-
) -> Screenshot:
|
|
68
|
-
"""Get screenshot from device."""
|
|
69
|
-
return self._device(device_id).get_screenshot(timeout)
|
|
70
|
-
|
|
71
|
-
# === Input Operations ===
|
|
72
|
-
def tap(
|
|
73
|
-
self, x: int, y: int, device_id: str | None = None, delay: float | None = None
|
|
74
|
-
) -> None:
|
|
75
|
-
"""Tap at coordinates."""
|
|
76
|
-
self._device(device_id).tap(x, y, delay)
|
|
77
|
-
|
|
78
|
-
def double_tap(
|
|
79
|
-
self, x: int, y: int, device_id: str | None = None, delay: float | None = None
|
|
80
|
-
) -> None:
|
|
81
|
-
"""Double tap at coordinates."""
|
|
82
|
-
self._device(device_id).double_tap(x, y, delay)
|
|
83
|
-
|
|
84
|
-
def long_press(
|
|
85
|
-
self,
|
|
86
|
-
x: int,
|
|
87
|
-
y: int,
|
|
88
|
-
duration_ms: int = 3000,
|
|
89
|
-
device_id: str | None = None,
|
|
90
|
-
delay: float | None = None,
|
|
91
|
-
) -> None:
|
|
92
|
-
"""Long press at coordinates."""
|
|
93
|
-
self._device(device_id).long_press(x, y, duration_ms, delay)
|
|
94
|
-
|
|
95
|
-
def swipe(
|
|
96
|
-
self,
|
|
97
|
-
start_x: int,
|
|
98
|
-
start_y: int,
|
|
99
|
-
end_x: int,
|
|
100
|
-
end_y: int,
|
|
101
|
-
duration_ms: int | None = None,
|
|
102
|
-
device_id: str | None = None,
|
|
103
|
-
delay: float | None = None,
|
|
104
|
-
) -> None:
|
|
105
|
-
"""Swipe from start to end."""
|
|
106
|
-
self._device(device_id).swipe(
|
|
107
|
-
start_x, start_y, end_x, end_y, duration_ms, delay
|
|
108
|
-
)
|
|
109
|
-
|
|
110
|
-
def type_text(self, text: str, device_id: str | None = None) -> None:
|
|
111
|
-
"""Type text."""
|
|
112
|
-
self._device(device_id).type_text(text)
|
|
113
|
-
|
|
114
|
-
def clear_text(self, device_id: str | None = None) -> None:
|
|
115
|
-
"""Clear text."""
|
|
116
|
-
self._device(device_id).clear_text()
|
|
117
|
-
|
|
118
|
-
# === Navigation ===
|
|
119
|
-
def back(self, device_id: str | None = None, delay: float | None = None) -> None:
|
|
120
|
-
"""Press back button."""
|
|
121
|
-
self._device(device_id).back(delay)
|
|
122
|
-
|
|
123
|
-
def home(self, device_id: str | None = None, delay: float | None = None) -> None:
|
|
124
|
-
"""Press home button."""
|
|
125
|
-
self._device(device_id).home(delay)
|
|
126
|
-
|
|
127
|
-
def launch_app(
|
|
128
|
-
self, app_name: str, device_id: str | None = None, delay: float | None = None
|
|
129
|
-
) -> bool:
|
|
130
|
-
"""Launch an app."""
|
|
131
|
-
return self._device(device_id).launch_app(app_name, delay)
|
|
132
|
-
|
|
133
|
-
# === State Query ===
|
|
134
|
-
def get_current_app(self, device_id: str | None = None) -> str:
|
|
135
|
-
"""Get current app name."""
|
|
136
|
-
return self._device(device_id).get_current_app()
|
|
137
|
-
|
|
138
|
-
# === Keyboard Management ===
|
|
139
|
-
def detect_and_set_adb_keyboard(self, device_id: str | None = None) -> str:
|
|
140
|
-
"""Detect and set keyboard."""
|
|
141
|
-
return self._device(device_id).detect_and_set_adb_keyboard()
|
|
142
|
-
|
|
143
|
-
def restore_keyboard(self, ime: str, device_id: str | None = None) -> None:
|
|
144
|
-
"""Restore keyboard."""
|
|
145
|
-
self._device(device_id).restore_keyboard(ime)
|
|
146
|
-
|
|
147
|
-
# === Device Management ===
|
|
148
|
-
def list_devices(self) -> list[str]:
|
|
149
|
-
"""
|
|
150
|
-
List connected devices.
|
|
151
|
-
|
|
152
|
-
Note: This is a simplified implementation. For full device listing,
|
|
153
|
-
use ADBDeviceManager.list_devices() directly.
|
|
154
|
-
"""
|
|
155
|
-
# This is called by some parts of phone_agent
|
|
156
|
-
# Return the default device if available
|
|
157
|
-
if self._default_device_id:
|
|
158
|
-
return [self._default_device_id]
|
|
159
|
-
return []
|
|
160
|
-
|
|
161
|
-
def get_connection_class(self):
|
|
162
|
-
"""Not applicable for protocol adapter."""
|
|
163
|
-
raise NotImplementedError(
|
|
164
|
-
"Protocol adapter does not support get_connection_class. "
|
|
165
|
-
"Use ADBDeviceManager for connection management."
|
|
166
|
-
)
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
# Store original factory for restoration
|
|
170
|
-
_original_factory = None
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
def inject_device_protocol(
|
|
174
|
-
get_device: Callable[[str | None], DeviceProtocol],
|
|
175
|
-
default_device_id: str | None = None,
|
|
176
|
-
) -> DeviceProtocolAdapter:
|
|
177
|
-
"""
|
|
178
|
-
Inject a DeviceProtocol implementation into phone_agent.
|
|
179
|
-
|
|
180
|
-
This replaces phone_agent's global _device_factory with an adapter
|
|
181
|
-
that routes all device operations through the provided DeviceProtocol.
|
|
182
|
-
|
|
183
|
-
Args:
|
|
184
|
-
get_device: Function that returns a DeviceProtocol given a device_id.
|
|
185
|
-
default_device_id: Default device ID when None is passed.
|
|
186
|
-
|
|
187
|
-
Returns:
|
|
188
|
-
The adapter instance (for inspection or further configuration).
|
|
189
|
-
|
|
190
|
-
Example:
|
|
191
|
-
>>> # Single mock device
|
|
192
|
-
>>> mock = MockDevice("mock_001", state_machine)
|
|
193
|
-
>>> inject_device_protocol(lambda _: mock)
|
|
194
|
-
>>>
|
|
195
|
-
>>> # Multiple devices
|
|
196
|
-
>>> devices = {
|
|
197
|
-
... "phone_1": ADBDevice("emulator-5554"),
|
|
198
|
-
... "phone_2": RemoteDevice("phone_2", "http://remote:8080"),
|
|
199
|
-
... }
|
|
200
|
-
>>> inject_device_protocol(lambda did: devices.get(did, devices["phone_1"]))
|
|
201
|
-
"""
|
|
202
|
-
# TODO: 不应该依赖这种全部变量
|
|
203
|
-
global _original_factory
|
|
204
|
-
|
|
205
|
-
# Save original factory if not already saved
|
|
206
|
-
if _original_factory is None:
|
|
207
|
-
_original_factory = device_factory_module._device_factory
|
|
208
|
-
|
|
209
|
-
# Create and inject adapter
|
|
210
|
-
adapter = DeviceProtocolAdapter(get_device, default_device_id)
|
|
211
|
-
device_factory_module._device_factory = adapter
|
|
212
|
-
|
|
213
|
-
return adapter
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
def restore_device_factory() -> None:
|
|
217
|
-
"""
|
|
218
|
-
Restore the original device factory.
|
|
219
|
-
|
|
220
|
-
Call this after testing to restore normal operation.
|
|
221
|
-
"""
|
|
222
|
-
global _original_factory
|
|
223
|
-
|
|
224
|
-
if _original_factory is not None:
|
|
225
|
-
device_factory_module._device_factory = _original_factory
|
|
226
|
-
_original_factory = None
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
class DeviceProtocolContext:
|
|
230
|
-
"""
|
|
231
|
-
Context manager for temporarily injecting a DeviceProtocol.
|
|
232
|
-
|
|
233
|
-
Example:
|
|
234
|
-
>>> with DeviceProtocolContext(lambda _: mock_device):
|
|
235
|
-
... agent.run("test instruction")
|
|
236
|
-
>>> # Original factory is automatically restored
|
|
237
|
-
"""
|
|
238
|
-
|
|
239
|
-
def __init__(
|
|
240
|
-
self,
|
|
241
|
-
get_device: Callable[[str | None], DeviceProtocol],
|
|
242
|
-
default_device_id: str | None = None,
|
|
243
|
-
):
|
|
244
|
-
"""
|
|
245
|
-
Initialize context.
|
|
246
|
-
|
|
247
|
-
Args:
|
|
248
|
-
get_device: Function that returns a DeviceProtocol given a device_id.
|
|
249
|
-
default_device_id: Default device ID when None is passed.
|
|
250
|
-
"""
|
|
251
|
-
self._get_device = get_device
|
|
252
|
-
self._default_device_id = default_device_id
|
|
253
|
-
self._original_factory = None
|
|
254
|
-
|
|
255
|
-
def __enter__(self) -> DeviceProtocolAdapter:
|
|
256
|
-
"""Enter context and inject adapter."""
|
|
257
|
-
self._original_factory = device_factory_module._device_factory
|
|
258
|
-
return inject_device_protocol(self._get_device, self._default_device_id)
|
|
259
|
-
|
|
260
|
-
def __exit__(self, exc_type, exc_val, exc_tb) -> None:
|
|
261
|
-
"""Exit context and restore original factory."""
|
|
262
|
-
device_factory_module._device_factory = self._original_factory
|
|
263
|
-
return None
|