Technische Architektur
API-Architektur & Validierung
Technische Details zu Zod-Validierung, REST-Schnittstellen und Fehlerbehandlung
API-Architektur & Validierung
Alle HTTP-Endpunkte des Fastify-Backends basieren auf strikter Schema-Validierung via Zod und standardisierten Antwortformaten.
Validierungspipeline
Jeder Request durchläuft eine 3-stufige Validierung:
- Format- & Typvalidierung (Zod SafeParse):
- Nicht übereinstimmende Typen oder fehlende Pflichtfelder erzeugen sofort einen
400 Bad Requestmit exakter Feld-Fehlermeldung.
- Nicht übereinstimmende Typen oder fehlende Pflichtfelder erzeugen sofort einen
- Kontext-Existenzprüfung (Directus Ping):
- Prüft, ob referenzierte Entitäten (
bookId,chapterId) in Directus existieren. Fehlt das Buch, erfolgt ein sauberer404 Not Found.
- Prüft, ob referenzierte Entitäten (
- Universums-Isolierung:
- Die
series_idwird serverseitig aus dem Buch abgeleitet und kann vom Client nicht manipuliert werden.
- Die
Zentrale Endpunkte
| Route | Methode | Handler-Service | Zweck |
|---|---|---|---|
/api/agent/chat | POST | fastify.chatService.chat | Multi-Turn ReAct Agent Chat |
/api/agent/tools | GET | fastify.chatService.getToolDefinitions | Tool-Definitions-Katalog |
/api/agent/tools/execute | POST | fastify.chatService.executeTool | Direkte Tool-Ausführung |
/api/scenes/generate | POST | fastify.loreService.generateScene | Sequenzielle 4-Phasen-Generierung |
/api/scenes/audit | POST | fastify.loreService.auditScene | Kontinuitäts-Audit |
/health | GET | Inline | Healthcheck (Directus, LiteLLM, Fastify) |
Standard-Fehlerstruktur
{
"error": "Validation failed",
"details": {
"bookId": {
"_errors": ["bookId is required"]
},
"messages": {
"_errors": ["At least one message is required"]
}
}
}Datenbank-Schema & Relationen
Vollständige technische Spezifikation aller Directus Tabellen, Fremdschlüssel und Indizes
MCP Server & Liberino CLI
Bidirektionale Anbindung beliebiger LLM-Chats und Agenten an das Liberino Lore- & Branch-System über das Model Context Protocol (MCP) und Command Line Interface (CLI).