1.7 KiB
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.
Ebenen
- Interface: implementierte CLI; später möglicherweise Sprache, Mobilzugriff und Living Mind.
- Core: implementierter Gesprächsablauf und Sitzungslogik.
- Providers: kleine Schnittstelle, lokaler Ollama- und optionaler Gemini-Adapter.
- Memory: SQLite-Sitzungen und separates inhaltsfreies Provider-Audit.
- Obsidian: zunächst lesender Adapter, später eng begrenzte Entwürfe.
- Tools und Status: feste Schemas, Allowlists, Timeouts und bereinigte Ausgaben.
- Security: lokaler Datenschutzrouter, Freigaben und Betriebssystem-Keyring.
- Audit: Provider-Metadaten ohne Prompts, Antworten oder geheime Inhalte.
Plattformgrenzen
- Pfade werden zentral in
Settingsund mitpathlibaufgelöst. - Betriebssystemspezifische Funktionen liegen hinter Adaptern.
- Produktname, Datenpfade und Provider werden zentral konfiguriert.
- Laufzeitdaten liegen außerhalb von Git.
Implementierter Chatfluss
interface.cli nimmt Text an und verbindet den core.provider_router.
Dieser klassifiziert die aktuelle Anfrage vollständig lokal, minimiert den
freigegebenen Kontext und wählt Gemini oder Ollama. core.chat_service speichert
erst eine erfolgreiche Antwort zusammen mit der Benutzernachricht atomar.
Gemini ist nur bei lokaler Aktivierung, vorhandenem Key, free_only = true,
bestätigtem Nicht-Billing und passender Datenschutzentscheidung erreichbar.
Ollama bleibt Loopback-, Datenschutz-, Offline-, Quota- und Fehlerfallback.
Es existiert weiterhin kein Toolaufruf, Obsidian-Zugriff oder eigener öffentlicher
Netzwerkdienst.