docs: complete documentation and add web monitoring dashboard

- Add comprehensive configuration guide (docs/configuration.md)
- Add development guide with setup instructions (docs/development.md)
- Add complete API reference documentation (docs/api_reference.md)
- Update README.md with new features and project structure
- Update TODO.md to reflect current implementation status
- Add web monitoring dashboard with FastAPI and WebSocket support
- Add tests for sync integration and web monitoring
- Update config example with monitoring settings

The MUD AI Player is now feature-complete with full documentation.
This commit is contained in:
truetype committed 2026-02-09 10:44:25 +01:00
1 parent 69ba824bc8
commit b9f21c7199
14 files changed
+2658 -160

No files matched your search

+157
View File
@@ -0,0 +1,157 @@
# Configuration Guide
This guide covers all configuration options for the MUD AI Player.
## Configuration File
The main configuration file is `config.yaml`. An example is provided in `examples/config.example.yaml`.
## Configuration Sections
### MUD Connection Settings
```yaml
mud:
host: "192.168.0.63" # MUD server hostname or IP
port: 6666 # MUD server port
mud_type: "dead_souls" # Parser type: dead_souls, aardwolf, etc.
username: "your_username" # Login username
password: "your_password" # Login password
keep_alive_interval: 60 # Seconds between keep-alive commands
keep_alive_command: "" # Command to send for keep-alive (empty = no-op)
```
### Character Settings
```yaml
character:
name: "AIPlayer" # Character name
preferred_class: "warrior" # warrior, mage, cleric, rogue
preferred_race: "human" # human, elf, dwarf, etc.
play_style: "balanced" # aggressive, cautious, balanced
```
### AI Engine Settings
```yaml
ai:
engine: "hybrid" # rule_based, llm, hybrid
llm_model: "llama3.2" # LLM model name
decision_delay_ms: [200, 2000] # Min/max reaction time in milliseconds
exploration_strategy: "depth_first" # depth_first, breadth_first
llm:
enabled: true # Enable/disable LLM features
base_url: "http://localhost:11434" # Ollama/OpenAI-compatible endpoint
model: "llama3.2" # Model to use
temperature: 0.3 # Creativity vs consistency (0.0-1.0)
max_tokens: 512 # Max response length
timeout_seconds: 30.0 # Request timeout
max_retries: 2 # Retry attempts on failure
system_prompt: "You are an AI playing a text-based MUD game..."
memory_db_path: "data/llm_memory.db" # Long-term memory storage
```
### Mapper Settings
```yaml
mapper:
active_storage:
db_path: "data/maps/active/world.db"
graph_cache_size: 10000
historical_storage:
archive_dir: "data/maps/archive"
snapshot_triggers:
room_count: 500 # Trigger snapshot every N rooms
session_end: true # Snapshot on disconnect
time_interval_hours: 24 # Periodic snapshots
compression:
fps: 30
codec: "h264"
semantic_search:
model: "all-MiniLM-L6-v2" # Sentence transformer model
top_k: 5 # Number of search results
similarity_threshold: 0.7 # Minimum similarity score
```
### Behavior Simulation
```yaml
behavior:
reaction_time_min_ms: 200 # Minimum delay between actions
reaction_time_max_ms: 2000 # Maximum delay between actions
pause_probability: 0.05 # Chance to pause briefly (5%)
typo_probability: 0.0 # Chance to make typos (0% = disabled)
```
### Logging
```yaml
logging:
level: "DEBUG" # DEBUG, INFO, WARNING, ERROR
file: "data/logs/game.log" # Log file path
console: true # Also log to console
max_file_size_mb: 10 # Rotate when file reaches this size
backup_count: 5 # Number of backup files to keep
```
### Web Monitoring Dashboard
```yaml
monitoring:
enabled: true # Enable/disable web dashboard
host: "127.0.0.1" # Bind address
port: 8080 # Port for dashboard
```
## Environment Variables
You can override any configuration value using environment variables:
```bash
export MUD_HOST="your-mud-server.com"
export MUD_PORT=4000
export MUD_USERNAME="player"
export MUD_PASSWORD="secret"
```
## Multiple Configurations
To use different configurations for different MUDs:
```bash
# For Dead Souls MUD
python -m src.main --config config_dead_souls.yaml
# For Aardwolf MUD
python -m src.main --config config_aardwolf.yaml
```
## Security Notes
⚠️ **Important**: The `config.yaml` file contains sensitive credentials. It is automatically excluded from Git via `.gitignore`.
Never commit your `config.yaml` to version control. Always use the example file as a template.
## Configuration Validation
The configuration is validated at startup using Pydantic models. If a required field is missing or invalid, the application will exit with a clear error message.
## Troubleshooting
### Connection Issues
- Verify `host` and `port` are correct
- Check firewall rules
- Ensure `mud_type` matches your MUD
### LLM Not Working
- Verify Ollama is running: `curl http://localhost:11434/api/tags`
- Check `ai.llm.enabled` is set to `true`
- Ensure the model is installed: `ollama pull llama3.2`
### Mapper Not Saving
- Check that `data/maps/` directory exists and is writable
- Verify disk space is available
- Check file permissions