agent_m/README.md
mscrnt 5179d425fc Add initial project structure and core functionality for Agent M
- Created .gitignore to exclude virtual environment, logs, and database files.
- Updated README.md with project description, features, folder structure, requirements, and usage instructions.
- Implemented versioning and developer ID in agentm/__init__.py.
- Developed main application logic in agentm/app.py, including credential handling and screen navigation.
- Added database initialization and ROM management logic in agentm/logic/db.py and agentm/logic/db_functions.py.
- Integrated DIAMBRA login functionality in agentm/logic/diambra_login.py.
- Created ROM verification and caching system in agentm/logic/roms.py.
- Designed user interface components for home and login screens in agentm/views/home.py and agentm/views/login.py.
- Added logging utility in agentm/utils/logger.py for better debugging and tracking.
- Included assets such as game images, styles, and logos.
- Updated requirements.txt with necessary dependencies for the project.
2025-05-20 23:20:29 -07:00

93 lines
2.7 KiB
Markdown

<p align="center">
<img src="logo.png" alt="Agent M Logo" width="200"/>
</p>
<h1 align="center">🕹️ Agent M</h1>
<h3 align="center">A DIAMBRA Utility by mscrnt</h3>
---
**Agent M** is a retro-styled launcher for [DIAMBRA Arena](https://www.diambra.ai/), designed to make agent training and packaging effortless. It wraps the official `diambra` CLI with a powerful terminal UI (TUI) powered by [Textual](https://textual.textualize.io/), giving both beginners and power users a guided experience for environment setup, wrapper configuration, and agent submission.
---
## 🚀 Features
- 📦 **Project scaffolding**: Quickly generate ready-to-train agent folders
- 🎮 **Environment launcher**: Easily configure and run DIAMBRA games
- 🧠 **Training config wizard**: Guide users through wrappers, hyperparameters, and PPO settings
- 📊 **Evaluation screen**: Run saved agents interactively
- 🛠️ **Docker + submission helper**: Build, tag, and submit your agent
- 🔒 **Developer ID tracking**: All submissions include a unique developer ID (`mscrnt-0001`)
---
## 📁 Folder Structure
```text
agent_m/
├── agentm/
│ ├── __init__.py # Contains __version__, __developer_id__
│ ├── main.py # Entry point
│ ├── app.py # Textual App class
│ ├── views/ # Screens: home, config, training, eval
│ ├── components/ # Reusable widgets
│ ├── logic/ # Non-UI logic: Docker, config, submit
│ └── assets/ # ASCII, icons, splash art
├── logo.png # Project icon
├── README.md
├── requirements.txt
├── pyproject.toml (optional)
└── dist/ # Built .exe from PyInstaller
````
---
## 🧰 Requirements
Install dependencies:
```bash
pip install -r requirements.txt
```
> Includes: `textual`, `rich`, `diambra-arena`, `pyyaml`, `typer`
---
## ▶️ Running Agent M
```bash
python -m agentm
```
---
## 📦 Build as Executable
Using [PyInstaller](https://pyinstaller.org/):
```bash
pyinstaller --onefile agentm/main.py --name agentm --add-data "agentm/assets:splash"
```
The final `.exe` will be located in the `dist/` directory.
---
## 🧾 Developer Attribution
All agents submitted through Agent M include a hardcoded developer ID:
```python
__developer_id__ = "mscrnt-0001"
```
This allows future reward attribution or referral tracking.
---
## 📣 License
[MIT](LICENSE) — Created by [mscrnt](https://github.com/mscrnt)