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

2.7 KiB

Agent M Logo

🕹️ Agent M

A DIAMBRA Utility by mscrnt


Agent M is a retro-styled launcher for DIAMBRA Arena, designed to make agent training and packaging effortless. It wraps the official diambra CLI with a powerful terminal UI (TUI) powered by Textual, 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

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:

pip install -r requirements.txt

Includes: textual, rich, diambra-arena, pyyaml, typer


▶️ Running Agent M

python -m agentm

📦 Build as Executable

Using PyInstaller:

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:

__developer_id__ = "mscrnt-0001"

This allows future reward attribution or referral tracking.


📣 License

MIT — Created by mscrnt