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.
Files changed (74) hide show
  1. AutoGLM_GUI/agents/glm/agent.py +6 -1
  2. AutoGLM_GUI/agents/mai/agent.py +3 -0
  3. AutoGLM_GUI/agents/stream_runner.py +7 -2
  4. AutoGLM_GUI/api/agents.py +26 -1
  5. AutoGLM_GUI/api/history.py +27 -1
  6. AutoGLM_GUI/models/history.py +45 -1
  7. AutoGLM_GUI/scheduler_manager.py +52 -6
  8. AutoGLM_GUI/schemas.py +12 -0
  9. AutoGLM_GUI/static/assets/{about-BQm96DAl.js → about-CfwX1Cmc.js} +1 -1
  10. AutoGLM_GUI/static/assets/{alert-dialog-B42XxGPR.js → alert-dialog-CtGlN2IJ.js} +1 -1
  11. AutoGLM_GUI/static/assets/chat-BYa-foUI.js +129 -0
  12. AutoGLM_GUI/static/assets/{circle-alert-D4rSJh37.js → circle-alert-t08bEMPO.js} +1 -1
  13. AutoGLM_GUI/static/assets/{dialog-DZ78cEcj.js → dialog-FNwZJFwk.js} +1 -1
  14. AutoGLM_GUI/static/assets/eye-D0UPWCWC.js +1 -0
  15. AutoGLM_GUI/static/assets/history-CRo95B7i.js +1 -0
  16. AutoGLM_GUI/static/assets/{index-CmZSnDqc.js → index-BaLMSqd3.js} +1 -1
  17. AutoGLM_GUI/static/assets/{index-CssG-3TH.js → index-CTHbFvKl.js} +5 -5
  18. AutoGLM_GUI/static/assets/index-CV7jGxGm.css +1 -0
  19. AutoGLM_GUI/static/assets/{label-BCUzE_nm.js → label-DJFevVmr.js} +1 -1
  20. AutoGLM_GUI/static/assets/{logs-eoFxn5of.js → logs-RW09DyYY.js} +1 -1
  21. AutoGLM_GUI/static/assets/{popover-DLsuV5Sx.js → popover--JTJrE5v.js} +1 -1
  22. AutoGLM_GUI/static/assets/{scheduled-tasks-MyqGJvy_.js → scheduled-tasks-DTRKsQXF.js} +1 -1
  23. AutoGLM_GUI/static/assets/{square-pen-zGWYrdfj.js → square-pen-CPK_K680.js} +1 -1
  24. AutoGLM_GUI/static/assets/{textarea-BX6y7uM5.js → textarea-PRmVnWq5.js} +1 -1
  25. AutoGLM_GUI/static/assets/{workflows-CYFs6ssC.js → workflows-CdcsAoaT.js} +1 -1
  26. AutoGLM_GUI/static/index.html +2 -2
  27. {autoglm_gui-1.5.0.dist-info → autoglm_gui-1.5.1.dist-info}/METADATA +49 -7
  28. {autoglm_gui-1.5.0.dist-info → autoglm_gui-1.5.1.dist-info}/RECORD +31 -70
  29. AutoGLM_GUI/device_adapter.py +0 -263
  30. AutoGLM_GUI/static/assets/chat-C0L2gQYG.js +0 -129
  31. AutoGLM_GUI/static/assets/history-DFBv7TGc.js +0 -1
  32. AutoGLM_GUI/static/assets/index-Bzyv2yQ2.css +0 -1
  33. mai_agent/base.py +0 -137
  34. mai_agent/mai_grounding_agent.py +0 -263
  35. mai_agent/mai_naivigation_agent.py +0 -526
  36. mai_agent/prompt.py +0 -148
  37. mai_agent/unified_memory.py +0 -67
  38. mai_agent/utils.py +0 -73
  39. phone_agent/__init__.py +0 -12
  40. phone_agent/actions/__init__.py +0 -5
  41. phone_agent/actions/handler.py +0 -400
  42. phone_agent/actions/handler_ios.py +0 -278
  43. phone_agent/adb/__init__.py +0 -51
  44. phone_agent/adb/connection.py +0 -358
  45. phone_agent/adb/device.py +0 -253
  46. phone_agent/adb/input.py +0 -108
  47. phone_agent/adb/screenshot.py +0 -108
  48. phone_agent/agent.py +0 -253
  49. phone_agent/agent_ios.py +0 -277
  50. phone_agent/config/__init__.py +0 -53
  51. phone_agent/config/apps.py +0 -227
  52. phone_agent/config/apps_harmonyos.py +0 -256
  53. phone_agent/config/apps_ios.py +0 -339
  54. phone_agent/config/i18n.py +0 -81
  55. phone_agent/config/prompts.py +0 -80
  56. phone_agent/config/prompts_en.py +0 -79
  57. phone_agent/config/prompts_zh.py +0 -82
  58. phone_agent/config/timing.py +0 -167
  59. phone_agent/device_factory.py +0 -166
  60. phone_agent/hdc/__init__.py +0 -53
  61. phone_agent/hdc/connection.py +0 -384
  62. phone_agent/hdc/device.py +0 -269
  63. phone_agent/hdc/input.py +0 -145
  64. phone_agent/hdc/screenshot.py +0 -127
  65. phone_agent/model/__init__.py +0 -5
  66. phone_agent/model/client.py +0 -290
  67. phone_agent/xctest/__init__.py +0 -47
  68. phone_agent/xctest/connection.py +0 -379
  69. phone_agent/xctest/device.py +0 -472
  70. phone_agent/xctest/input.py +0 -311
  71. phone_agent/xctest/screenshot.py +0 -226
  72. {autoglm_gui-1.5.0.dist-info → autoglm_gui-1.5.1.dist-info}/WHEEL +0 -0
  73. {autoglm_gui-1.5.0.dist-info → autoglm_gui-1.5.1.dist-info}/entry_points.txt +0 -0
  74. {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=6EFo1o4QdD00V2-uMKIclQo_QYY8Ktwy_a3q22IUWds,10296
18
- AutoGLM_GUI/schemas.py,sha256=JvEQlRZIzY1kZuahyMAKfqTVd10XtTkCzcvwrV81LxI,21274
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=SEtU-MTvRlVh_QImM3Tmwx1-P0aPHRsbz4eINiG-GuA,6569
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=Um5dqwGllzXP4f2YSqNtSAYhD01sQYTOJW1w8sWGoKU,9817
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=NHSwYUq7-PF0Md8cWWFZp-E5hAf9mjFLAy8eob-IopA,14023
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=RoyGxikL57oSj4-B3NMsTjdwcTGkANbrUaThrylf0YQ,18259
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=fXX7Ao3xlO6pByJ6kEwqJZW6REB4RSKHvTG-801wwIM,2799
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=r1yDMHUIPsoXKDE7LXvnGVee0WejVhfBpG5x4tWwAJI,3210
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=iz04ysnZj5cpaWthldZy6O-sCmSA5KjPCH1APSTVYfY,761
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-BQm96DAl.js,sha256=xEmpVOF_8m5s1CAiFxJTDblpMslqZFJaVDjD89VAurQ,155
96
- AutoGLM_GUI/static/assets/alert-dialog-B42XxGPR.js,sha256=sfHYc7uvNPOjcCC7jXDvlMJMmasYWz3Agy5b6RWFvlA,3140
97
- AutoGLM_GUI/static/assets/chat-C0L2gQYG.js,sha256=egJ_j0rCPsOALZljsmqNKSivAigGPr7cdsuXkY0h7DY,302373
98
- AutoGLM_GUI/static/assets/circle-alert-D4rSJh37.js,sha256=mpHSXyEAtaWQI8LILk4_a9TJpxlny_3cCilkaakoORw,251
99
- AutoGLM_GUI/static/assets/dialog-DZ78cEcj.js,sha256=v2RmsIYgjBKTVNI2HpAesH17EqNo82XmlKRGUGf4BNc,25373
100
- AutoGLM_GUI/static/assets/history-DFBv7TGc.js,sha256=1k4H9Ma51pdgKoYqaq-2A9b_MZU9iWakXfUvRltSbJ4,5884
101
- AutoGLM_GUI/static/assets/index-Bzyv2yQ2.css,sha256=WG2Wb8arrb2tgjEDBBbOEcwbCkQ7aRhI8uvpMcAuMko,82586
102
- AutoGLM_GUI/static/assets/index-CmZSnDqc.js,sha256=G5vfw7NEAYtlSADLga38py3lUGN58mgwQqW-AYyE04c,229
103
- AutoGLM_GUI/static/assets/index-CssG-3TH.js,sha256=YvRGzMup5LSxIY7X9a6Vt7gjYKa9DQRLbjdDzNBh8Pg,396156
104
- AutoGLM_GUI/static/assets/label-BCUzE_nm.js,sha256=_WZ19VEilw0jpb6sODsu372W2WO3eC2XJMb81-j-68g,1407
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-eoFxn5of.js,sha256=e4mapCJ_JmN55jlO54fmaSUBbu1g1O9kRbxe8PymUhk,5048
107
- AutoGLM_GUI/static/assets/popover-DLsuV5Sx.js,sha256=I-845Z4i6hu0xAVZ5wilyEM9cQRfZ_l1lD0mXD_RAGU,5782
108
- AutoGLM_GUI/static/assets/scheduled-tasks-MyqGJvy_.js,sha256=BmNZ_ZRs_U7to9U_WqqX6BEJhl_CPWDvdx_7Ko26MUo,8364
109
- AutoGLM_GUI/static/assets/square-pen-zGWYrdfj.js,sha256=_OUY1FnCWYMwexPiWjOngv49-CiRjZHf6qouLRdCySE,321
110
- AutoGLM_GUI/static/assets/textarea-BX6y7uM5.js,sha256=TDNf7gHPjEtPmhf7COizAwL4PsonsSJrkf362jsk6m8,705
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-CYFs6ssC.js,sha256=sJWl2I4Ej3VeHhwC--sg7Bv3WcmryGzPw1CVec6RaPA,3301
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.0.dist-info/METADATA,sha256=iEzLUm032HxRlibY7Ixd56dE70Ocy9VBgrQZBf5QlR0,19861
154
- autoglm_gui-1.5.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
155
- autoglm_gui-1.5.0.dist-info/entry_points.txt,sha256=sz4rBO_kgrYmOiT0QnhCCv0b9QqBdWyCjugJgY8AEOI,58
156
- autoglm_gui-1.5.0.dist-info/licenses/LICENSE,sha256=0IkSHDewdtmXnmYzTNq4U47EJYjTuhjQNpT0bZKuqWc,11342
157
- autoglm_gui-1.5.0.dist-info/RECORD,,
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,,
@@ -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