# Architektur ## Ziel Javis beginnt als modularer Monolith. Module besitzen klare Zuständigkeiten und kommunizieren über kleine, typisierte Schnittstellen. Erst reale Betriebsgründe rechtfertigen später separate Dienste. ## Vorgesehene Ebenen 1. Interface: CLI, später Sprache, Mobilzugriff und Living Mind. 2. Core: Gesprächsablauf, Sitzungszustand und Orchestrierung. 3. Providers: austauschbare lokale und optionale Cloud-Modellanbindungen. 4. Memory: strukturierte Laufzeitdaten und regenerierbarer semantischer Index. 5. Obsidian: zunächst lesender Adapter, später eng begrenzte Entwürfe. 6. Tools und Status: feste Schemas, Allowlists, Timeouts und bereinigte Ausgaben. 7. Security: Freigaben, Secret-Provider und Berechtigungsprüfung. 8. Audit: nachvollziehbare Aktionen ohne geheime Inhalte. ## Plattformgrenzen - Pfade werden später per Konfiguration und `pathlib` aufgelöst. - Betriebssystemspezifische Funktionen liegen hinter Adaptern. - Produktname, Datenpfade und Provider werden zentral konfiguriert. - Laufzeitdaten liegen außerhalb von Git. ## Noch nicht implementiert Es existieren nur Paketgrenzen und Dokumentation. Es gibt keinen Chat, Provider, Speicher, Toolaufruf oder Netzwerkdienst.