Add multiple new modules and tools to enhance the functionality and extensibility of the Maestro project (#333)

* Added a **pyproject.toml** file to define project metadata and dependencies.
* Added **run\_maestro.py** and **osworld\_run\_maestro.py** to provide the main execution logic.
* Introduced multiple new modules, including **Evaluator**, **Controller**, **Manager**, and **Sub-Worker**, supporting task planning, state management, and data analysis.
* Added a **tools module** containing utility functions and tool configurations to improve code reusability.
* Updated the **README** and documentation with usage examples and module descriptions.

These changes lay the foundation for expanding the Maestro project’s functionality and improving the user experience.

Co-authored-by: Hiroid <guoliangxuan@deepmatrix.com>
This commit is contained in:
Hiroid
2025-09-08 15:07:21 +08:00
committed by GitHub
parent 029885e78c
commit 3a4b67304f
96 changed files with 31982 additions and 2 deletions

View File

@@ -0,0 +1,25 @@
import os
from desktop_env.desktop_env import DesktopEnv
# To ensure the relative path works correctly, this script should be executed from the root of the project directory.
# For example: python osworld_setup/test_vmware.py
# The path is relative to the project root.
print(f"="*80)
print(f"If the download process begin, it's because you don't put the zip file in the vmware_vm_data/, or the hash of your zip file doesn't match the remote one hold by OSWorld official.")
print(f"="*80)
print(f"If the vmware_vm_data/Ubuntu*/ or vmware_vm_data/Ubuntu*/ has been deleted, don't panic. It will rebuild from correct zip file.")
print(f"="*80)
# Put zip in the vmware_vm_data/, and use this code. When the VMware is running this system, then stop python and the virtual machine
env = DesktopEnv(provider_name="vmware", os_type="Ubuntu", action_space="pyautogui")
env.reset()
obs = env._get_obs() # Get the initial observation
obs, reward, done, info = env.step("pyautogui.rightClick()")
print(f"="*80)
print(f"VMware initialization completed!")
print(f"="*80)