lybic-guiagents 0.1.0__tar.gz → 0.2.1__tar.gz

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 lybic-guiagents might be problematic. Click here for more details.

Files changed (120) hide show
  1. {lybic_guiagents-0.1.0/lybic_guiagents.egg-info → lybic_guiagents-0.2.1}/PKG-INFO +203 -75
  2. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/README.md +73 -2
  3. lybic_guiagents-0.2.1/gui_agents/__init__.py +63 -0
  4. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/gui_agents/agents/Action.py +3 -3
  5. lybic_guiagents-0.2.1/gui_agents/agents/Backend/ADBBackend.py +62 -0
  6. lybic_guiagents-0.2.1/gui_agents/agents/Backend/Backend.py +28 -0
  7. lybic_guiagents-0.2.1/gui_agents/agents/Backend/LybicBackend.py +354 -0
  8. lybic_guiagents-0.2.1/gui_agents/agents/Backend/PyAutoGUIBackend.py +183 -0
  9. lybic_guiagents-0.2.1/gui_agents/agents/Backend/PyAutoGUIVMwareBackend.py +250 -0
  10. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/gui_agents/agents/agent_s.py +0 -2
  11. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/gui_agents/agents/grounding.py +1 -6
  12. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/gui_agents/agents/hardware_interface.py +24 -7
  13. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/gui_agents/agents/manager.py +0 -3
  14. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/gui_agents/agents/translator.py +1 -1
  15. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/gui_agents/agents/worker.py +1 -2
  16. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/gui_agents/cli_app.py +143 -8
  17. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/gui_agents/core/engine.py +0 -2
  18. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/gui_agents/core/knowledge.py +0 -2
  19. lybic_guiagents-0.2.1/gui_agents/lybic_client/lybic_client.py +88 -0
  20. lybic_guiagents-0.2.1/gui_agents/prompts/prompts.py +869 -0
  21. lybic_guiagents-0.2.1/gui_agents/service/__init__.py +19 -0
  22. lybic_guiagents-0.2.1/gui_agents/service/agent_service.py +527 -0
  23. lybic_guiagents-0.2.1/gui_agents/service/api_models.py +136 -0
  24. lybic_guiagents-0.2.1/gui_agents/service/config.py +241 -0
  25. lybic_guiagents-0.2.1/gui_agents/service/exceptions.py +35 -0
  26. lybic_guiagents-0.2.1/gui_agents/store/registry.py +22 -0
  27. lybic_guiagents-0.2.1/gui_agents/tools/__init__.py +0 -0
  28. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/gui_agents/tools/tools.py +0 -4
  29. lybic_guiagents-0.2.1/gui_agents/unit_test/__init__.py +0 -0
  30. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/gui_agents/unit_test/test_manager.py +0 -2
  31. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/gui_agents/unit_test/test_worker.py +0 -2
  32. lybic_guiagents-0.2.1/gui_agents/utils/__init__.py +0 -0
  33. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/gui_agents/utils/analyze_display.py +1 -1
  34. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/gui_agents/utils/common_utils.py +0 -2
  35. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1/lybic_guiagents.egg-info}/PKG-INFO +203 -75
  36. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/lybic_guiagents.egg-info/SOURCES.txt +17 -0
  37. lybic_guiagents-0.2.1/lybic_guiagents.egg-info/requires.txt +131 -0
  38. lybic_guiagents-0.2.1/pyproject.toml +169 -0
  39. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/tests/test_hardware_interface.py +2 -2
  40. lybic_guiagents-0.1.0/lybic_guiagents.egg-info/requires.txt +0 -86
  41. lybic_guiagents-0.1.0/pyproject.toml +0 -101
  42. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/LICENSE +0 -0
  43. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/desktop_env/__init__.py +0 -0
  44. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/desktop_env/actions.py +0 -0
  45. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/desktop_env/controllers/__init__.py +0 -0
  46. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/desktop_env/controllers/python.py +0 -0
  47. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/desktop_env/controllers/setup.py +0 -0
  48. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/desktop_env/desktop_env.py +0 -0
  49. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/desktop_env/evaluators/__init__.py +0 -0
  50. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/desktop_env/evaluators/getters/__init__.py +0 -0
  51. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/desktop_env/evaluators/getters/calc.py +0 -0
  52. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/desktop_env/evaluators/getters/chrome.py +0 -0
  53. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/desktop_env/evaluators/getters/file.py +0 -0
  54. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/desktop_env/evaluators/getters/general.py +0 -0
  55. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/desktop_env/evaluators/getters/gimp.py +0 -0
  56. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/desktop_env/evaluators/getters/impress.py +0 -0
  57. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/desktop_env/evaluators/getters/info.py +0 -0
  58. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/desktop_env/evaluators/getters/misc.py +0 -0
  59. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/desktop_env/evaluators/getters/replay.py +0 -0
  60. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/desktop_env/evaluators/getters/vlc.py +0 -0
  61. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/desktop_env/evaluators/getters/vscode.py +0 -0
  62. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/desktop_env/evaluators/metrics/__init__.py +0 -0
  63. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/desktop_env/evaluators/metrics/basic_os.py +0 -0
  64. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/desktop_env/evaluators/metrics/chrome.py +0 -0
  65. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/desktop_env/evaluators/metrics/docs.py +0 -0
  66. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/desktop_env/evaluators/metrics/general.py +0 -0
  67. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/desktop_env/evaluators/metrics/gimp.py +0 -0
  68. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/desktop_env/evaluators/metrics/libreoffice.py +0 -0
  69. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/desktop_env/evaluators/metrics/others.py +0 -0
  70. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/desktop_env/evaluators/metrics/pdf.py +0 -0
  71. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/desktop_env/evaluators/metrics/slides.py +0 -0
  72. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/desktop_env/evaluators/metrics/table.py +0 -0
  73. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/desktop_env/evaluators/metrics/thunderbird.py +0 -0
  74. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/desktop_env/evaluators/metrics/utils.py +0 -0
  75. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/desktop_env/evaluators/metrics/vlc.py +0 -0
  76. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/desktop_env/evaluators/metrics/vscode.py +0 -0
  77. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/desktop_env/providers/__init__.py +0 -0
  78. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/desktop_env/providers/aws/__init__.py +0 -0
  79. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/desktop_env/providers/aws/manager.py +0 -0
  80. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/desktop_env/providers/aws/provider.py +0 -0
  81. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/desktop_env/providers/aws/provider_with_proxy.py +0 -0
  82. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/desktop_env/providers/aws/proxy_pool.py +0 -0
  83. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/desktop_env/providers/azure/__init__.py +0 -0
  84. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/desktop_env/providers/azure/manager.py +0 -0
  85. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/desktop_env/providers/azure/provider.py +0 -0
  86. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/desktop_env/providers/base.py +0 -0
  87. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/desktop_env/providers/gcp/__init__.py +0 -0
  88. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/desktop_env/providers/gcp/manager.py +0 -0
  89. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/desktop_env/providers/gcp/provider.py +0 -0
  90. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/desktop_env/providers/virtualbox/__init__.py +0 -0
  91. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/desktop_env/providers/virtualbox/manager.py +0 -0
  92. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/desktop_env/providers/virtualbox/provider.py +0 -0
  93. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/desktop_env/providers/vmware/__init__.py +0 -0
  94. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/desktop_env/providers/vmware/manager.py +0 -0
  95. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/desktop_env/providers/vmware/provider.py +0 -0
  96. {lybic_guiagents-0.1.0/gui_agents → lybic_guiagents-0.2.1/gui_agents/agents/Backend}/__init__.py +0 -0
  97. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/gui_agents/agents/__init__.py +0 -0
  98. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/gui_agents/agents/global_state.py +0 -0
  99. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/gui_agents/core/__init__.py +0 -0
  100. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/gui_agents/core/mllm.py +0 -0
  101. {lybic_guiagents-0.1.0/gui_agents/tools → lybic_guiagents-0.2.1/gui_agents/lybic_client}/__init__.py +0 -0
  102. {lybic_guiagents-0.1.0/gui_agents/unit_test → lybic_guiagents-0.2.1/gui_agents/prompts}/__init__.py +0 -0
  103. {lybic_guiagents-0.1.0/gui_agents/utils → lybic_guiagents-0.2.1/gui_agents/store}/__init__.py +0 -0
  104. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/gui_agents/unit_test/run_tests.py +0 -0
  105. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/gui_agents/utils/display_viewer.py +0 -0
  106. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/gui_agents/utils/embedding_manager.py +0 -0
  107. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/gui_agents/utils/image_axis_utils.py +0 -0
  108. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/lybic_guiagents.egg-info/dependency_links.txt +0 -0
  109. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/lybic_guiagents.egg-info/top_level.txt +0 -0
  110. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/setup.cfg +0 -0
  111. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/setup.py +0 -0
  112. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/tests/test_aci.py +0 -0
  113. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/tests/test_app_switching.py +0 -0
  114. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/tests/test_global_instance.py +0 -0
  115. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/tests/test_registry.py +0 -0
  116. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/tests/test_translator.py +0 -0
  117. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/tests/test_uielement_base.py +0 -0
  118. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/tests/test_uielement_linux.py +0 -0
  119. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/tests/test_uielement_macos.py +0 -0
  120. {lybic_guiagents-0.1.0 → lybic_guiagents-0.2.1}/tests/test_uielement_osworld.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lybic-guiagents
3
- Version: 0.1.0
3
+ Version: 0.2.1
4
4
  Summary: An open-source agentic framework that enables AI to use computers like humans and can provide a multi-agent runtime environment as an infrastructure capability
5
5
  Author: Lybic Development Team
6
6
  Author-email: Lybic Development Team <lybic@tingyutech.com>
@@ -9,88 +9,145 @@ Classifier: Programming Language :: Python :: 3
9
9
  Requires-Python: >=3.9, <=3.12
10
10
  Description-Content-Type: text/markdown
11
11
  License-File: LICENSE
12
- Requires-Dist: numpy
12
+ Requires-Dist: dotenv
13
+ Requires-Dist: pyperclip
14
+ Requires-Dist: Pillow>=11.3.0
13
15
  Requires-Dist: backoff
14
- Requires-Dist: pandas
15
- Requires-Dist: openai
16
+ Requires-Dist: numpy
16
17
  Requires-Dist: anthropic
17
- Requires-Dist: fastapi
18
+ Requires-Dist: openai
19
+ Requires-Dist: google-genai
18
20
  Requires-Dist: zhipuai
19
21
  Requires-Dist: groq
20
22
  Requires-Dist: boto3
21
- Requires-Dist: uvicorn
22
- Requires-Dist: paddleocr
23
- Requires-Dist: paddlepaddle
24
- Requires-Dist: together
25
23
  Requires-Dist: scikit-learn
26
- Requires-Dist: websockets
27
24
  Requires-Dist: tiktoken
28
- Requires-Dist: pyautogui~=0.9.54
29
- Requires-Dist: toml
30
- Requires-Dist: exa_py
31
- Requires-Dist: black
32
- Requires-Dist: certifi
33
- Requires-Dist: pytesseract
34
- Requires-Dist: google-genai
35
- Requires-Dist: python-dotenv
36
- Requires-Dist: Pillow~=11.0.0
37
- Requires-Dist: fabric
38
- Requires-Dist: gymnasium~=0.28.1
39
- Requires-Dist: requests~=2.31.0
40
- Requires-Dist: pytz~=2024.1
41
- Requires-Dist: transformers~=4.35.2
42
- Requires-Dist: torch~=2.5.0
43
- Requires-Dist: accelerate
44
- Requires-Dist: opencv-python~=4.8.1.78
45
- Requires-Dist: matplotlib~=3.7.4
46
- Requires-Dist: pynput~=1.7.6
47
- Requires-Dist: psutil~=5.9.6
48
- Requires-Dist: tqdm~=4.65.0
49
- Requires-Dist: flask~=3.0.0
50
- Requires-Dist: requests-toolbelt~=1.0.0
51
- Requires-Dist: lxml
52
- Requires-Dist: cssselect
53
- Requires-Dist: xmltodict
54
- Requires-Dist: openpyxl
55
- Requires-Dist: python-docx
56
- Requires-Dist: python-pptx
57
- Requires-Dist: pypdf
58
- Requires-Dist: PyGetWindow
59
- Requires-Dist: rapidfuzz
60
- Requires-Dist: pyacoustid
61
- Requires-Dist: pygame
62
- Requires-Dist: ImageHash
63
- Requires-Dist: scikit-image
64
- Requires-Dist: librosa
65
- Requires-Dist: pymupdf
66
- Requires-Dist: chardet
67
- Requires-Dist: playwright
68
- Requires-Dist: formulas
69
- Requires-Dist: pydrive
70
- Requires-Dist: fastdtw
71
- Requires-Dist: odfpy
72
- Requires-Dist: func-timeout
73
- Requires-Dist: beautifulsoup4
74
- Requires-Dist: dashscope
75
- Requires-Dist: google-generativeai
76
- Requires-Dist: PyYaml
77
- Requires-Dist: mutagen
78
- Requires-Dist: easyocr
79
- Requires-Dist: borb
80
- Requires-Dist: pypdf2
81
- Requires-Dist: pdfplumber
82
- Requires-Dist: wandb
83
- Requires-Dist: wrapt_timeout_decorator
84
- Requires-Dist: gdown
85
- Requires-Dist: azure-identity
86
- Requires-Dist: azure-mgmt-compute
87
- Requires-Dist: azure-mgmt-network
88
- Requires-Dist: docker
89
- Requires-Dist: loguru
90
- Requires-Dist: dotenv
25
+ Requires-Dist: pydantic
26
+ Requires-Dist: lybic>=0.7.3
91
27
  Requires-Dist: pyobjc; platform_system == "Darwin"
28
+ Requires-Dist: oa_atomacos; platform_system == "Darwin"
92
29
  Requires-Dist: pywinauto; platform_system == "Windows"
93
30
  Requires-Dist: pywin32; platform_system == "Windows"
31
+ Provides-Extra: dev
32
+ Requires-Dist: pytest; extra == "dev"
33
+ Provides-Extra: vmware-and-evaluation
34
+ Requires-Dist: python-pptx; extra == "vmware-and-evaluation"
35
+ Requires-Dist: odfpy; extra == "vmware-and-evaluation"
36
+ Requires-Dist: openpyxl; extra == "vmware-and-evaluation"
37
+ Requires-Dist: pandas; extra == "vmware-and-evaluation"
38
+ Requires-Dist: lxml; extra == "vmware-and-evaluation"
39
+ Requires-Dist: filelock; extra == "vmware-and-evaluation"
40
+ Requires-Dist: xmltodict; extra == "vmware-and-evaluation"
41
+ Requires-Dist: opencv-python-headless; extra == "vmware-and-evaluation"
42
+ Requires-Dist: rapidfuzz; extra == "vmware-and-evaluation"
43
+ Requires-Dist: imagehash; extra == "vmware-and-evaluation"
44
+ Requires-Dist: odfpy; extra == "vmware-and-evaluation"
45
+ Requires-Dist: pdfplumber; extra == "vmware-and-evaluation"
46
+ Requires-Dist: PyYAML; extra == "vmware-and-evaluation"
47
+ Requires-Dist: mutagen; extra == "vmware-and-evaluation"
48
+ Requires-Dist: pypdf; extra == "vmware-and-evaluation"
49
+ Requires-Dist: PyMuPDF; extra == "vmware-and-evaluation"
50
+ Requires-Dist: formulas; extra == "vmware-and-evaluation"
51
+ Requires-Dist: pyacoustid; extra == "vmware-and-evaluation"
52
+ Requires-Dist: opencv-python~=4.8.1.78; extra == "vmware-and-evaluation"
53
+ Requires-Dist: PyPDF2; extra == "vmware-and-evaluation"
54
+ Requires-Dist: librosa; extra == "vmware-and-evaluation"
55
+ Requires-Dist: fastdtw; extra == "vmware-and-evaluation"
56
+ Requires-Dist: scikit-learn; extra == "vmware-and-evaluation"
57
+ Requires-Dist: scikit-image; extra == "vmware-and-evaluation"
58
+ Requires-Dist: bs4; extra == "vmware-and-evaluation"
59
+ Requires-Dist: azure-identity; extra == "vmware-and-evaluation"
60
+ Requires-Dist: azure-mgmt-compute; extra == "vmware-and-evaluation"
61
+ Requires-Dist: azure-mgmt-network; extra == "vmware-and-evaluation"
62
+ Requires-Dist: toml; extra == "vmware-and-evaluation"
63
+ Requires-Dist: easyocr; extra == "vmware-and-evaluation"
64
+ Provides-Extra: pyautogui
65
+ Requires-Dist: pyautogui; extra == "pyautogui"
66
+ Provides-Extra: all
67
+ Requires-Dist: toml; extra == "all"
68
+ Requires-Dist: numpy; extra == "all"
69
+ Requires-Dist: backoff; extra == "all"
70
+ Requires-Dist: pandas; extra == "all"
71
+ Requires-Dist: openai; extra == "all"
72
+ Requires-Dist: anthropic; extra == "all"
73
+ Requires-Dist: zhipuai; extra == "all"
74
+ Requires-Dist: groq; extra == "all"
75
+ Requires-Dist: boto3; extra == "all"
76
+ Requires-Dist: paddlepaddle; extra == "all"
77
+ Requires-Dist: tiktoken; extra == "all"
78
+ Requires-Dist: toml; extra == "all"
79
+ Requires-Dist: exa_py; extra == "all"
80
+ Requires-Dist: google-genai; extra == "all"
81
+ Requires-Dist: python-dotenv; extra == "all"
82
+ Requires-Dist: Pillow>=11.3.0; extra == "all"
83
+ Requires-Dist: gymnasium~=0.28.1; extra == "all"
84
+ Requires-Dist: requests~=2.31.0; extra == "all"
85
+ Requires-Dist: pytz~=2024.1; extra == "all"
86
+ Requires-Dist: psutil~=5.9.6; extra == "all"
87
+ Requires-Dist: tqdm~=4.65.0; extra == "all"
88
+ Requires-Dist: flask~=3.0.0; extra == "all"
89
+ Requires-Dist: requests-toolbelt~=1.0.0; extra == "all"
90
+ Requires-Dist: lxml; extra == "all"
91
+ Requires-Dist: xmltodict; extra == "all"
92
+ Requires-Dist: PyGetWindow; extra == "all"
93
+ Requires-Dist: ImageHash; extra == "all"
94
+ Requires-Dist: scikit-image; extra == "all"
95
+ Requires-Dist: formulas; extra == "all"
96
+ Requires-Dist: pydrive; extra == "all"
97
+ Requires-Dist: fastdtw; extra == "all"
98
+ Requires-Dist: odfpy; extra == "all"
99
+ Requires-Dist: func-timeout; extra == "all"
100
+ Requires-Dist: beautifulsoup4; extra == "all"
101
+ Requires-Dist: dashscope; extra == "all"
102
+ Requires-Dist: google-generativeai; extra == "all"
103
+ Requires-Dist: PyYaml; extra == "all"
104
+ Requires-Dist: mutagen; extra == "all"
105
+ Requires-Dist: easyocr; extra == "all"
106
+ Requires-Dist: borb; extra == "all"
107
+ Requires-Dist: pypdf2; extra == "all"
108
+ Requires-Dist: lybic>=0.7.3; extra == "all"
109
+ Requires-Dist: pdfplumber; extra == "all"
110
+ Requires-Dist: azure-identity; extra == "all"
111
+ Requires-Dist: azure-mgmt-compute; extra == "all"
112
+ Requires-Dist: azure-mgmt-network; extra == "all"
113
+ Requires-Dist: docker; extra == "all"
114
+ Requires-Dist: dotenv; extra == "all"
115
+ Requires-Dist: python-pptx; extra == "all"
116
+ Requires-Dist: odfpy; extra == "all"
117
+ Requires-Dist: openpyxl; extra == "all"
118
+ Requires-Dist: pandas; extra == "all"
119
+ Requires-Dist: lxml; extra == "all"
120
+ Requires-Dist: filelock; extra == "all"
121
+ Requires-Dist: xmltodict; extra == "all"
122
+ Requires-Dist: opencv-python-headless; extra == "all"
123
+ Requires-Dist: Pillow; extra == "all"
124
+ Requires-Dist: imagehash; extra == "all"
125
+ Requires-Dist: rapidfuzz; extra == "all"
126
+ Requires-Dist: fitz; extra == "all"
127
+ Requires-Dist: imagehash; extra == "all"
128
+ Requires-Dist: odfpy; extra == "all"
129
+ Requires-Dist: pdfplumber; extra == "all"
130
+ Requires-Dist: PyYaml; extra == "all"
131
+ Requires-Dist: mutagen; extra == "all"
132
+ Requires-Dist: pypdf; extra == "all"
133
+ Requires-Dist: PyMuPDF; extra == "all"
134
+ Requires-Dist: formulas; extra == "all"
135
+ Requires-Dist: pyacoustid; extra == "all"
136
+ Requires-Dist: opencv-python~=4.8.1.78; extra == "all"
137
+ Requires-Dist: PyPDF2; extra == "all"
138
+ Requires-Dist: librosa; extra == "all"
139
+ Requires-Dist: fastdtw; extra == "all"
140
+ Requires-Dist: scikit-learn; extra == "all"
141
+ Requires-Dist: scikit-image; extra == "all"
142
+ Requires-Dist: bs4; extra == "all"
143
+ Requires-Dist: azure-identity; extra == "all"
144
+ Requires-Dist: azure-mgmt-compute; extra == "all"
145
+ Requires-Dist: azure-mgmt-network; extra == "all"
146
+ Requires-Dist: easyocr; extra == "all"
147
+ Requires-Dist: pyobjc; platform_system == "Darwin" and extra == "all"
148
+ Requires-Dist: oa_atomacos; platform_system == "Darwin" and extra == "all"
149
+ Requires-Dist: pywinauto; platform_system == "Windows" and extra == "all"
150
+ Requires-Dist: pywin32; platform_system == "Windows" and extra == "all"
94
151
  Dynamic: author
95
152
  Dynamic: license-file
96
153
  Dynamic: requires-python
@@ -109,6 +166,19 @@ Dynamic: requires-python
109
166
  Lybic GUI Agent: <small>An open-source agentic framework for Computer Use Agents</small>
110
167
  </h1>
111
168
 
169
+ <p align="center">
170
+ <small>Supported OS:</small>
171
+ <img src="https://img.shields.io/badge/OS-Windows-blue?logo=windows&logoColor=white" alt="Windows">
172
+ <img src="https://img.shields.io/badge/OS-macOS-black?logo=apple&logoColor=white" alt="macOS">
173
+ <img src="https://img.shields.io/badge/OS-Linux-yellow?logo=linux&logoColor=black" alt="Linux">
174
+ <br/>
175
+ <small>Latest Version:</small><a href="https://pypi.org/project/lybic-guiagents/"><img alt="PyPI" src="https://img.shields.io/pypi/v/lybic-guiagents"></a>
176
+ &nbsp;
177
+ <a href="https://github.com/lybic/agent/blob/main/LICENSE"><img alt="License" src="https://img.shields.io/pypi/l/lybic-guiagents"></a>
178
+ &nbsp;
179
+ <a href="https://github.com/lybic/agent"><img alt="Stars" src="https://img.shields.io/github/stars/lybic/agent?style=social"></a>
180
+ </p>
181
+
112
182
  ## What is Lybic GUI Agent?
113
183
 
114
184
  Lybic platform placeholder - comprehensive AI platform for building and deploying intelligent agents
@@ -124,6 +194,7 @@ Lybic GUI Agent is an open-source framework that enables developers and business
124
194
  </div>
125
195
 
126
196
  ## 🥳 Updates
197
+ - [x] **2025/09/14**: The paper has been accepted by [arxiv](https://arxiv.org/abs/2509.11067)
127
198
  - [x] **2025/09/09**: We achieved the world's first place in the 50-step length of [OS-world](https://os-world.github.io/)!
128
199
  - [x] **2025/08/08**: Released v0.1.0 of [Lybic GUI Agent](https://github.com/lybic/agent) library, with support for Windows, Mac, Ubuntu and Lybic API!
129
200
 
@@ -132,6 +203,8 @@ Lybic GUI Agent is an open-source framework that enables developers and business
132
203
  1. [💡 Introduction](#-introduction)
133
204
  2. [🛠️ Installation & Setup](#%EF%B8%8F-installation--setup)
134
205
  3. [🚀 Usage](#-usage)
206
+ 4. [🔧 Troubleshooting](#-troubleshooting)
207
+ 5. [💬 Citations](#-citations)
135
208
 
136
209
  ## 💡 Introduction
137
210
 
@@ -161,7 +234,7 @@ Lybic GUI Agent is an open-source framework that enables developers and business
161
234
  <tr>
162
235
  <td>OSWorld Verified (50 step)</td>
163
236
  <td><b>57.1%</b></td>
164
- <td>53.1%</td>
237
+ <td>54.2%</td>
165
238
  </tr>
166
239
  </table>
167
240
  </div>
@@ -176,7 +249,15 @@ Lybic GUI Agent is an open-source framework that enables developers and business
176
249
  > [!WARNING]
177
250
  > To leverage the full potential of Lybic GUI Agent, we support multiple model providers including OpenAI, Anthropic, Gemini, and Doubao. For the best visual grounding performance, we recommend using UI-TARS models.
178
251
 
179
- ### Installation
252
+ ### Installation(from pip)
253
+
254
+ You can install Lybic GUI Agent by using pip:
255
+
256
+ ```bash
257
+ pip install lybic-guiagents
258
+ ```
259
+
260
+ ### Installation(from source code)
180
261
 
181
262
  You can use [UV](https://docs.astral.sh/uv/getting-started/installation/) (a modern Python package manager) version 0.8.5 for installation:
182
263
 
@@ -277,6 +358,7 @@ Run in interactive mode with the `lybic` backend:
277
358
  python gui_agents/cli_app.py --backend lybic
278
359
  ```
279
360
 
361
+
280
362
  Run a single query with the `pyautogui` backend and a maximum of 20 steps:
281
363
  ```sh
282
364
  python gui_agents/cli_app.py --backend pyautogui --query "Find the result of 8 × 7 on a calculator" --max-steps 20
@@ -308,6 +390,25 @@ LYBIC_MAX_LIFE_SECONDS=3600
308
390
  > LYBIC_PRECREATE_SID=SBX-XXXXXXXXXXXXXXX
309
391
  > ```
310
392
 
393
+ ### Use as a service
394
+
395
+ After installing lybic-guiagents, you can run it as a service.
396
+
397
+ Main Components:
398
+ - AgentService: High-level service interface (recommended for most users)
399
+ - AgentS2, AgentSFast: Core agent implementations
400
+ - HardwareInterface: Hardware abstraction layer
401
+ - ServiceConfig: Configuration management
402
+
403
+ Quick Start:
404
+
405
+ ```python
406
+ from gui_agents import AgentService
407
+ service = AgentService()
408
+ result = service.execute_task("Take a screenshot")
409
+ print(f"Task completed: {result.status}")
410
+ ```
411
+
311
412
  ### VMware Configuration
312
413
 
313
414
  To use PyAutoGUI with VMware, you need to install [VMware Workstation Pro](https://www.vmware.com/products/desktop-hypervisor/workstation-and-fusion) (on Windows) and create a virtual machine.
@@ -358,6 +459,7 @@ USE_PRECREATE_VM=Ubuntu
358
459
  ```bash
359
460
  uv sync
360
461
  uv pip install -e .
462
+ # uv pip install -e . -i https://pypi.tuna.tsinghua.edu.cn/simple
361
463
  ```
362
464
 
363
465
  #### 3. Lybic Sandbox Connection Issues
@@ -406,6 +508,32 @@ If you encounter issues not covered here:
406
508
  - Complete error messages
407
509
  - Steps to reproduce the issue
408
510
 
511
+ ## 💬 Citations
512
+
513
+ If you find this codebase useful, please cite:
514
+
515
+ ```bibtex
516
+ @misc{guo2025agenticlybicmultiagentexecution,
517
+ title={Agentic Lybic: Multi-Agent Execution System with Tiered Reasoning and Orchestration},
518
+ author={Liangxuan Guo and Bin Zhu and Qingqian Tao and Kangning Liu and Xun Zhao and Xianzhe Qin and Jin Gao and Guangfu Hao},
519
+ year={2025},
520
+ eprint={2509.11067},
521
+ archivePrefix={arXiv},
522
+ primaryClass={cs.AI},
523
+ url={https://arxiv.org/abs/2509.11067},
524
+ }
525
+ ```
526
+
527
+ ---
528
+
529
+ ## ❤️ Touch us:
530
+
531
+ <div align="center" style="display: flex; justify-content: center; gap: 20px; flex-wrap: wrap;">
532
+ <img src="assets/feishu.png" alt="Lark Group" style="width: 200px; height: auto;"/>
533
+ <img src="assets/wechat.png" alt="WeChat Group" style="width: 200px; height: auto;"/>
534
+ <img src="assets/qq.png" alt="QQ Group" style="width: 200px; height: auto;"/>
535
+ </div>
536
+
409
537
  ## Stargazers over time
410
538
 
411
539
  [![Stargazers over time](https://starchart.cc/lybic/agent.svg)](https://starchart.cc/lybic/agent)
@@ -12,6 +12,19 @@
12
12
  Lybic GUI Agent: <small>An open-source agentic framework for Computer Use Agents</small>
13
13
  </h1>
14
14
 
15
+ <p align="center">
16
+ <small>Supported OS:</small>
17
+ <img src="https://img.shields.io/badge/OS-Windows-blue?logo=windows&logoColor=white" alt="Windows">
18
+ <img src="https://img.shields.io/badge/OS-macOS-black?logo=apple&logoColor=white" alt="macOS">
19
+ <img src="https://img.shields.io/badge/OS-Linux-yellow?logo=linux&logoColor=black" alt="Linux">
20
+ <br/>
21
+ <small>Latest Version:</small><a href="https://pypi.org/project/lybic-guiagents/"><img alt="PyPI" src="https://img.shields.io/pypi/v/lybic-guiagents"></a>
22
+ &nbsp;
23
+ <a href="https://github.com/lybic/agent/blob/main/LICENSE"><img alt="License" src="https://img.shields.io/pypi/l/lybic-guiagents"></a>
24
+ &nbsp;
25
+ <a href="https://github.com/lybic/agent"><img alt="Stars" src="https://img.shields.io/github/stars/lybic/agent?style=social"></a>
26
+ </p>
27
+
15
28
  ## What is Lybic GUI Agent?
16
29
 
17
30
  Lybic platform placeholder - comprehensive AI platform for building and deploying intelligent agents
@@ -27,6 +40,7 @@ Lybic GUI Agent is an open-source framework that enables developers and business
27
40
  </div>
28
41
 
29
42
  ## 🥳 Updates
43
+ - [x] **2025/09/14**: The paper has been accepted by [arxiv](https://arxiv.org/abs/2509.11067)
30
44
  - [x] **2025/09/09**: We achieved the world's first place in the 50-step length of [OS-world](https://os-world.github.io/)!
31
45
  - [x] **2025/08/08**: Released v0.1.0 of [Lybic GUI Agent](https://github.com/lybic/agent) library, with support for Windows, Mac, Ubuntu and Lybic API!
32
46
 
@@ -35,6 +49,8 @@ Lybic GUI Agent is an open-source framework that enables developers and business
35
49
  1. [💡 Introduction](#-introduction)
36
50
  2. [🛠️ Installation & Setup](#%EF%B8%8F-installation--setup)
37
51
  3. [🚀 Usage](#-usage)
52
+ 4. [🔧 Troubleshooting](#-troubleshooting)
53
+ 5. [💬 Citations](#-citations)
38
54
 
39
55
  ## 💡 Introduction
40
56
 
@@ -64,7 +80,7 @@ Lybic GUI Agent is an open-source framework that enables developers and business
64
80
  <tr>
65
81
  <td>OSWorld Verified (50 step)</td>
66
82
  <td><b>57.1%</b></td>
67
- <td>53.1%</td>
83
+ <td>54.2%</td>
68
84
  </tr>
69
85
  </table>
70
86
  </div>
@@ -79,7 +95,15 @@ Lybic GUI Agent is an open-source framework that enables developers and business
79
95
  > [!WARNING]
80
96
  > To leverage the full potential of Lybic GUI Agent, we support multiple model providers including OpenAI, Anthropic, Gemini, and Doubao. For the best visual grounding performance, we recommend using UI-TARS models.
81
97
 
82
- ### Installation
98
+ ### Installation(from pip)
99
+
100
+ You can install Lybic GUI Agent by using pip:
101
+
102
+ ```bash
103
+ pip install lybic-guiagents
104
+ ```
105
+
106
+ ### Installation(from source code)
83
107
 
84
108
  You can use [UV](https://docs.astral.sh/uv/getting-started/installation/) (a modern Python package manager) version 0.8.5 for installation:
85
109
 
@@ -180,6 +204,7 @@ Run in interactive mode with the `lybic` backend:
180
204
  python gui_agents/cli_app.py --backend lybic
181
205
  ```
182
206
 
207
+
183
208
  Run a single query with the `pyautogui` backend and a maximum of 20 steps:
184
209
  ```sh
185
210
  python gui_agents/cli_app.py --backend pyautogui --query "Find the result of 8 × 7 on a calculator" --max-steps 20
@@ -211,6 +236,25 @@ LYBIC_MAX_LIFE_SECONDS=3600
211
236
  > LYBIC_PRECREATE_SID=SBX-XXXXXXXXXXXXXXX
212
237
  > ```
213
238
 
239
+ ### Use as a service
240
+
241
+ After installing lybic-guiagents, you can run it as a service.
242
+
243
+ Main Components:
244
+ - AgentService: High-level service interface (recommended for most users)
245
+ - AgentS2, AgentSFast: Core agent implementations
246
+ - HardwareInterface: Hardware abstraction layer
247
+ - ServiceConfig: Configuration management
248
+
249
+ Quick Start:
250
+
251
+ ```python
252
+ from gui_agents import AgentService
253
+ service = AgentService()
254
+ result = service.execute_task("Take a screenshot")
255
+ print(f"Task completed: {result.status}")
256
+ ```
257
+
214
258
  ### VMware Configuration
215
259
 
216
260
  To use PyAutoGUI with VMware, you need to install [VMware Workstation Pro](https://www.vmware.com/products/desktop-hypervisor/workstation-and-fusion) (on Windows) and create a virtual machine.
@@ -261,6 +305,7 @@ USE_PRECREATE_VM=Ubuntu
261
305
  ```bash
262
306
  uv sync
263
307
  uv pip install -e .
308
+ # uv pip install -e . -i https://pypi.tuna.tsinghua.edu.cn/simple
264
309
  ```
265
310
 
266
311
  #### 3. Lybic Sandbox Connection Issues
@@ -309,6 +354,32 @@ If you encounter issues not covered here:
309
354
  - Complete error messages
310
355
  - Steps to reproduce the issue
311
356
 
357
+ ## 💬 Citations
358
+
359
+ If you find this codebase useful, please cite:
360
+
361
+ ```bibtex
362
+ @misc{guo2025agenticlybicmultiagentexecution,
363
+ title={Agentic Lybic: Multi-Agent Execution System with Tiered Reasoning and Orchestration},
364
+ author={Liangxuan Guo and Bin Zhu and Qingqian Tao and Kangning Liu and Xun Zhao and Xianzhe Qin and Jin Gao and Guangfu Hao},
365
+ year={2025},
366
+ eprint={2509.11067},
367
+ archivePrefix={arXiv},
368
+ primaryClass={cs.AI},
369
+ url={https://arxiv.org/abs/2509.11067},
370
+ }
371
+ ```
372
+
373
+ ---
374
+
375
+ ## ❤️ Touch us:
376
+
377
+ <div align="center" style="display: flex; justify-content: center; gap: 20px; flex-wrap: wrap;">
378
+ <img src="assets/feishu.png" alt="Lark Group" style="width: 200px; height: auto;"/>
379
+ <img src="assets/wechat.png" alt="WeChat Group" style="width: 200px; height: auto;"/>
380
+ <img src="assets/qq.png" alt="QQ Group" style="width: 200px; height: auto;"/>
381
+ </div>
382
+
312
383
  ## Stargazers over time
313
384
 
314
385
  [![Stargazers over time](https://starchart.cc/lybic/agent.svg)](https://starchart.cc/lybic/agent)
@@ -0,0 +1,63 @@
1
+ """
2
+ GUI Agents - A comprehensive GUI automation framework
3
+
4
+ This package provides both low-level agent components and a high-level service interface
5
+ for GUI automation tasks across different platforms and backends.
6
+
7
+ Main Components:
8
+ - AgentService: High-level service interface (recommended for most users)
9
+ - AgentS2, AgentSFast: Core agent implementations
10
+ - HardwareInterface: Hardware abstraction layer
11
+ - ServiceConfig: Configuration management
12
+
13
+ Quick Start:
14
+ from gui_agents import AgentService
15
+
16
+ service = AgentService()
17
+ result = service.execute_task("Take a screenshot")
18
+ print(f"Task completed: {result.status}")
19
+ """
20
+
21
+ # High-level service interface (recommended)
22
+ from .service import (
23
+ AgentService,
24
+ ServiceConfig,
25
+ TaskRequest,
26
+ TaskResult,
27
+ TaskStatus,
28
+ ExecutionStats,
29
+ AgentServiceError,
30
+ ConfigurationError,
31
+ TaskExecutionError
32
+ )
33
+
34
+ # Core agent classes (for advanced users)
35
+ from .agents.agent_s import AgentS2, AgentSFast
36
+ from .agents.hardware_interface import HardwareInterface
37
+ from .store.registry import Registry
38
+ from .agents.global_state import GlobalState
39
+
40
+ __version__ = "0.2.1"
41
+
42
+ # Primary exports (what users should typically use)
43
+ __all__ = [
44
+ # High-level service interface
45
+ "AgentService",
46
+ "ServiceConfig",
47
+ "TaskRequest",
48
+ "TaskResult",
49
+ "TaskStatus",
50
+ "ExecutionStats",
51
+
52
+ # Exceptions
53
+ "AgentServiceError",
54
+ "ConfigurationError",
55
+ "TaskExecutionError",
56
+
57
+ # Core classes (for advanced usage)
58
+ "AgentS2",
59
+ "AgentSFast",
60
+ "HardwareInterface",
61
+ "Registry",
62
+ "GlobalState",
63
+ ]
@@ -27,9 +27,9 @@ The registry makes the last line work without an if‑else chain.
27
27
  """
28
28
 
29
29
  from abc import ABC
30
- from dataclasses import dataclass, field, fields, asdict
31
- from enum import Enum, auto
32
- from typing import Any, Dict, List, Tuple, Type, TypeVar, ClassVar
30
+ from dataclasses import dataclass, field, fields
31
+ from enum import Enum
32
+ from typing import Any, Dict, List, Type, TypeVar, ClassVar
33
33
 
34
34
  __all__ = [
35
35
  "Action",
@@ -0,0 +1,62 @@
1
+ # ---------------------------------------------------------------------------
2
+ # 2) Android device backend (ADB)
3
+ # ---------------------------------------------------------------------------
4
+ from gui_agents.agents.Action import (
5
+ Action,
6
+ Click,
7
+ Drag,
8
+ TypeText,
9
+ Scroll,
10
+ Hotkey,
11
+ Wait,
12
+ )
13
+
14
+ from gui_agents.agents.Backend.Backend import Backend
15
+ import time
16
+ import subprocess
17
+
18
+ class ADBBackend(Backend):
19
+ """Very light‑weight ADB backend (tap / swipe / text / keyevent)."""
20
+
21
+ _supported = {Click, Drag, TypeText, Hotkey, Wait}
22
+
23
+ def __init__(self, serial: str | None = None):
24
+ self.serial = serial # specify target device; None = default
25
+
26
+ # ------------------------------------------------------------------
27
+ def execute(self, action: Action) -> None:
28
+ if not self.supports(type(action)):
29
+ raise NotImplementedError
30
+
31
+ prefix = ["adb"]
32
+ if self.serial:
33
+ prefix += ["-s", self.serial]
34
+ prefix.append("shell")
35
+
36
+ if isinstance(action, Click):
37
+ cmd = prefix
38
+ # cmd = prefix + ["input", "tap", str(action.xy[0]), str(action.xy[1])]
39
+ elif isinstance(action, Drag):
40
+ cmd = prefix + [
41
+ "input", "swipe",
42
+ # str(action.start[0]), str(action.start[1]),
43
+ # str(action.end[0]), str(action.end[1]),
44
+ # str(int(action.duration * 1000)), # type: ignore
45
+ ]
46
+ elif isinstance(action, TypeText):
47
+ text = action.text.replace(" ", "%s") # escape spaces
48
+ cmd = prefix + ["input", "text", text]
49
+ # if action.press_enter:
50
+ # subprocess.run(prefix + ["input", "keyevent", "ENTER"], check=True)
51
+ # return
52
+ elif isinstance(action, Hotkey):
53
+ # Map first key for demo purposes
54
+ key = action.keys[0].upper()
55
+ cmd = prefix + ["input", "keyevent", key]
56
+ elif isinstance(action, Wait):
57
+ time.sleep(action.seconds) # type: ignore
58
+ return
59
+ else:
60
+ raise NotImplementedError
61
+
62
+ subprocess.run(cmd, check=True)
@@ -0,0 +1,28 @@
1
+ # Abstract backend base‑class
2
+ # ---------------------------------------------------------------------------
3
+ from abc import ABC, abstractmethod
4
+ from typing import Any, List, Type, Dict, Set
5
+ from gui_agents.agents.Action import (
6
+ Action
7
+ )
8
+
9
+
10
+ class Backend(ABC):
11
+ """Abstract base for platform back‑ends."""
12
+
13
+ #: Each backend advertises which Action subclasses it supports.
14
+ _supported: Set[Type[Action]] = set()
15
+
16
+ # ---------------------------------------------------------------------
17
+ def supports(self, action_type: Type[Action]) -> bool:
18
+ return action_type in self._supported
19
+
20
+ # ---------------------------------------------------------------------
21
+ @abstractmethod
22
+ def execute(self, action: Action) -> Any:
23
+ """Translate an *Action* into concrete commands.
24
+
25
+ Should raise **NotImplementedError** if the *action* type is not in
26
+ `self._supported`, so upper layers can decide how to degrade / retry.
27
+ """
28
+