Compare commits
5 Commits
fix/16-har
...
fix/678
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
703e095ba6 | ||
| 3afdec9019 | |||
|
|
815f7d38e8 | ||
| 0aa6699356 | |||
| 37cecdf95a |
5
.gitignore
vendored
5
.gitignore
vendored
@@ -54,3 +54,8 @@ nosetests.xml
|
||||
|
||||
# VSCode config
|
||||
.vscode
|
||||
|
||||
# Environment variables — never commit secrets
|
||||
.env
|
||||
*.env
|
||||
!.env.example
|
||||
|
||||
172
GENOME.md
Normal file
172
GENOME.md
Normal file
@@ -0,0 +1,172 @@
|
||||
# GENOME.md — timmy-academy
|
||||
|
||||
## Project Overview
|
||||
|
||||
**Name:** Timmy Academy
|
||||
**Description:** An Evennia MUD for AI agent training, collaboration, and crisis response practice
|
||||
**Framework:** Evennia 6.0.0 (Python MUD framework)
|
||||
**Language:** Python 3.12.3
|
||||
**License:** Part of the Timmy Foundation project ecosystem
|
||||
|
||||
## Architecture
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────┐
|
||||
│ Timmy Academy │
|
||||
├─────────────────────────────────────────────────────────┤
|
||||
│ Evennia Framework Layer │
|
||||
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
|
||||
│ │ Django ORM │ │ Twisted │ │ Telnet + │ │
|
||||
│ │ (Database) │ │ (Async) │ │ WebSocket │ │
|
||||
│ └─────────────┘ └─────────────┘ └─────────────┘ │
|
||||
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
|
||||
│ │ Typeclasses │ │ Commands │ │ World │ │
|
||||
│ │ (Objects) │ │ (Input) │ │ (Rooms) │ │
|
||||
│ └─────────────┘ └─────────────┘ └─────────────┘ │
|
||||
└─────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
## Entry Points and Data Flow
|
||||
|
||||
### Entry Points
|
||||
1. **Telnet Connection:** `telnet 167.99.126.228 4000`
|
||||
2. **Web Client:** `http://167.99.126.228:4001`
|
||||
3. **SSH Management:** `ssh root@167.99.126.228`
|
||||
|
||||
### Data Flow
|
||||
```
|
||||
User → Telnet/Web → Evennia → Commands → Typeclasses → World
|
||||
↓
|
||||
Database (Django ORM)
|
||||
↓
|
||||
Other Agents (Broadcast)
|
||||
```
|
||||
|
||||
## Key Abstractions
|
||||
|
||||
### 1. Typeclasses
|
||||
- `rooms.py` - Room definitions with atmosphere
|
||||
- `characters.py` - Player/agent definitions
|
||||
- `exits.py` - Exit definitions
|
||||
- `objects.py` - Interactive objects
|
||||
|
||||
### 2. Commands
|
||||
- `command.py` - Custom commands (@status, @map, smell, listen)
|
||||
- `default_cmdsets.py` - Command set registration
|
||||
|
||||
### 3. World Modules
|
||||
- `commons_wing.py` - 5 Commons rooms
|
||||
- `dormitory_entrance.py` - 5 Dormitory rooms
|
||||
- `workshop_wing.py` - 5 Workshop rooms
|
||||
- `gardens_wing.py` - 5 Gardens rooms
|
||||
|
||||
## API Surface
|
||||
|
||||
### Custom Commands
|
||||
| Command | Description |
|
||||
|---------|-------------|
|
||||
| `@status` | Show location, wing, who's online, uptime |
|
||||
| `@map` | ASCII map of current wing |
|
||||
| `@academy` | Overview of all wings with room counts |
|
||||
| `rooms` | List all rooms with wing color coding |
|
||||
| `examine` | Detailed room inspection with atmosphere |
|
||||
| `smell` / `sniff` | Sensory - room scents |
|
||||
| `listen` / `hear` | Sensory - room sounds |
|
||||
|
||||
### Evennia Hooks
|
||||
- `at_object_creation()` - Room/character creation
|
||||
- `at_cmdset()` - Command set registration
|
||||
- `at_server_startstop()` - Server lifecycle
|
||||
|
||||
## Test Coverage Gaps
|
||||
|
||||
### Missing Tests
|
||||
1. **Room atmosphere tests** - Verify sensory data
|
||||
2. **Command integration tests** - Test custom commands
|
||||
3. **World rebuild tests** - Test rebuild script
|
||||
4. **Connection tests** - Test telnet/web connections
|
||||
5. **Agent interaction tests** - Test multi-agent scenarios
|
||||
|
||||
### Test Files
|
||||
- `tests/stress_test.py` - Basic stress test
|
||||
- Missing: Unit tests for typeclasses
|
||||
- Missing: Integration tests for commands
|
||||
- Missing: End-to-end tests for world rebuild
|
||||
|
||||
## Security Considerations
|
||||
|
||||
### Connection Security
|
||||
- Telnet: Unencrypted (port 4000)
|
||||
- Web Client: HTTP (port 4001)
|
||||
- SSH: Encrypted (management only)
|
||||
|
||||
### Agent Security
|
||||
- Agent accounts: wizard, Allegro, Timmy, Ezra
|
||||
- Role-based access: Superuser, AI Agent
|
||||
- Command permissions: Typeclass-based
|
||||
|
||||
### Data Security
|
||||
- Database: SQLite (file-based)
|
||||
- No external authentication
|
||||
- No encryption at rest
|
||||
|
||||
## Dependencies
|
||||
|
||||
### Python Packages
|
||||
- Evennia 6.0.0
|
||||
- Django (via Evennia)
|
||||
- Twisted (via Evennia)
|
||||
- Python 3.12.3
|
||||
|
||||
### System Dependencies
|
||||
- VPS: DigitalOcean droplet
|
||||
- OS: Ubuntu/Debian
|
||||
- Python venv: `/root/workspace/evennia-venv`
|
||||
|
||||
## Deployment
|
||||
|
||||
### VPS Location
|
||||
- **Host:** 167.99.126.228
|
||||
- **Telnet:** Port 4000
|
||||
- **Web:** Port 4001
|
||||
- **SSH:** Port 22
|
||||
|
||||
### Rebuild Command
|
||||
```bash
|
||||
ssh root@167.99.126.228
|
||||
cd /root/workspace/timmy-academy
|
||||
source /root/workspace/evennia-venv/bin/activate
|
||||
python world/rebuild_world.py
|
||||
```
|
||||
|
||||
## Future Development
|
||||
|
||||
### Planned Features
|
||||
1. **Gitea Bridge** - Webhook integration for in-world notifications
|
||||
2. **Crisis Training Scenarios** - Multi-agent crisis response exercises
|
||||
3. **Nexus Integration** - Cross-platform agent orchestration
|
||||
4. **Sensory Expansion** - Weather, lighting, NPC interactions
|
||||
5. **Agent Memory** - Persistent memory objects in rooms
|
||||
6. **Training Modules** - Structured lesson sequences
|
||||
|
||||
### Technical Debt
|
||||
1. **Test coverage** - Need unit and integration tests
|
||||
2. **Documentation** - API documentation missing
|
||||
3. **Monitoring** - No health checks or alerting
|
||||
4. **Backups** - No automated backup system
|
||||
|
||||
## Conclusion
|
||||
|
||||
Timmy Academy is a functional Evennia MUD world for AI agent training with:
|
||||
- 21 rooms across 5 zones
|
||||
- 4 custom agent accounts
|
||||
- 7 custom commands
|
||||
- Rich sensory atmosphere
|
||||
- Active development roadmap
|
||||
|
||||
**Status:** Production-ready for agent training
|
||||
**Priority:** Medium (training environment)
|
||||
**Maintainer:** Timmy Foundation
|
||||
|
||||
---
|
||||
*Generated by Codebase Genome pipeline — 2026-04-20*
|
||||
15
hermes-agent/.env.example
Normal file
15
hermes-agent/.env.example
Normal file
@@ -0,0 +1,15 @@
|
||||
# hermes-agent/.env.example
|
||||
# Copy to .env and fill in real values. NEVER commit .env to git.
|
||||
# Ref: #17
|
||||
|
||||
# API Keys (rotate if exposed)
|
||||
KIMI_API_KEY=your-kimi-api-key-here
|
||||
|
||||
# Telegram
|
||||
TELEGRAM_BOT_TOKEN=your-telegram-bot-token-here
|
||||
TELEGRAM_HOME_CHANNEL=your-channel-id-here
|
||||
TELEGRAM_HOME_CHANNEL_NAME="Your Channel Name"
|
||||
TELEGRAM_ALLOWED_USERS=comma-separated-user-ids
|
||||
|
||||
# Gitea
|
||||
GITEA_TOKEN=your-gitea-token-here
|
||||
@@ -9,7 +9,7 @@ and configures the Public channel.
|
||||
Safe to rerun (idempotent).
|
||||
|
||||
Usage:
|
||||
cd /root/workspace/timmy-academy
|
||||
cd /path/to/timmy-academy
|
||||
source /root/workspace/evennia-venv/bin/activate
|
||||
python world/rebuild_world.py
|
||||
"""
|
||||
@@ -19,7 +19,7 @@ import re
|
||||
import ast
|
||||
|
||||
os.environ["DJANGO_SETTINGS_MODULE"] = "server.conf.settings"
|
||||
sys.path.insert(0, "/root/workspace/timmy-academy")
|
||||
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
||||
|
||||
import django
|
||||
django.setup()
|
||||
|
||||
Reference in New Issue
Block a user