109 lines
3.1 KiB
Markdown
109 lines
3.1 KiB
Markdown
# MUDlet AI Client
|
|
|
|
Un client MUD moderno con integrazione LLM per automazione del gameplay, sviluppato con Electron + React + TypeScript.
|
|
|
|
## Features
|
|
|
|
### Core
|
|
- **Connessione Telnet** - Supporto completo per protocollo Telnet con parsing ANSI colors
|
|
- **Game Window** - Display in tempo reale con input commands
|
|
- **Connection Panel** - Gestione connessioni con host/porta configurabili
|
|
|
|
### Autoplayer LLM
|
|
- **Ollama Integration** - Connessione a server Ollama remoto (ollama.solarpi.net)
|
|
- **Decision Engine** - Sistema AI che analizza l'output del gioco e genera comandi
|
|
- **System Prompt** - Personalizzazione del comportamento del bot
|
|
- **Model Selection** - Supporto per modelli multipli (llama3.2, mistral, etc.)
|
|
- **Action Queue** - Coda azioni per revisione manuale o auto-send
|
|
|
|
### UI/UX
|
|
- **React + TypeScript** - Codice type-safe con React 18
|
|
- **Tailwind CSS** - Styling moderno e responsive
|
|
- **Navigation** - Pannelli Connection/Game/Autoplayer
|
|
|
|
## Quick Start
|
|
|
|
```bash
|
|
# Clona e installa dipendenze
|
|
cd mudlet-ai-client
|
|
npm install
|
|
|
|
# Avvia dev server (necessario per Electron)
|
|
npm run dev
|
|
|
|
# Avvia Electron (in terminale separato)
|
|
npm start
|
|
```
|
|
|
|
## Connessione
|
|
|
|
Server LPMUD preconfigurato:
|
|
- **Host**: 172.24.19.225
|
|
- **Porta**: 6666
|
|
|
|
Server Ollama:
|
|
- **URL**: http://ollama.solarpi.net
|
|
|
|
## Stack Tecnologico
|
|
|
|
| Layer | Tecnologie |
|
|
|-------|------------|
|
|
| Framework | Electron 28, React 18, TypeScript 5 |
|
|
| UI | Tailwind CSS, shadcn/ui |
|
|
| Telnet | telnet-client, ansicolor |
|
|
| LLM | Ollama (HTTP API) |
|
|
| Build | Vite 5, electron-vite |
|
|
|
|
## Struttura Progetto
|
|
|
|
```
|
|
mudlet-ai-client/
|
|
├── src/
|
|
│ ├── main/ # Electron main process
|
|
│ │ ├── index.ts # App entry point, IPC handlers
|
|
│ │ └── services/
|
|
│ │ ├── TelnetService.ts # Connessione Telnet
|
|
│ │ ├── OllamaService.ts # Client HTTP Ollama
|
|
│ │ └── AutoplayerService.ts # Decision engine
|
|
│ ├── renderer/ # React UI
|
|
│ │ ├── App.tsx # Root component
|
|
│ │ ├── main.tsx # Entry point
|
|
│ │ └── components/
|
|
│ │ ├── GameWindow.tsx # Game display + input
|
|
│ │ ├── ConnectionPanel.tsx
|
|
│ │ └── AutoplayerPanel.tsx
|
|
│ └── preload/
|
|
│ └── index.js # Context bridge
|
|
├── package.json
|
|
├── vite.config.ts
|
|
└── tsconfig.json
|
|
```
|
|
|
|
## Workflow Autoplayer
|
|
|
|
```
|
|
1. OBSERVE → TelnetService riceve output
|
|
2. PARSE → AutoplayerService analizza stato
|
|
3. THINK → Ollama genera decisione
|
|
4. ACT → Azione eseguita o messa in coda
|
|
```
|
|
|
|
## Roadmap
|
|
|
|
- [x] Fase 1: Client MUD Base
|
|
- [x] Fase 2: Integrazione Ollama
|
|
- [ ] Fase 3: Autoplayer miglioramenti (mapper 2D, trigger system)
|
|
- [ ] Fase 4: Sistema Plugin
|
|
- [ ] Fase 5: Funzionalità avanzate (persistence SQLite)
|
|
|
|
## Documentazione
|
|
|
|
- [Architettura](docs/ARCHITECTURE.md)
|
|
- [Workflow di Sviluppo](docs/WORKFLOW.md)
|
|
- [API IPC](docs/API.md)
|
|
- [Piano Progetto](MUD_AUTOPLAYER_PLAN.md)
|
|
|
|
## License
|
|
|
|
MIT
|