1.6 KiB
1.6 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 und implementierter lokaler Ollama-Adapter.
- Memory: implementierte SQLite-Sitzungen; ein semantischer Index ist nur geplant.
- Obsidian: zunächst lesender Adapter, später eng begrenzte Entwürfe.
- Tools und Status: feste Schemas, Allowlists, Timeouts und bereinigte Ausgaben.
- Security: Freigaben, Secret-Provider und Berechtigungsprüfung.
- Audit: nachvollziehbare Aktionen ohne 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, core.chat_service verbindet Sitzungsverlauf und
Provider, providers.ollama spricht nur die lokale Ollama-HTTP-API an und
memory.sqlite_store speichert erfolgreiche Benutzer-/Assistentenpaare atomar.
Scheitert das Modell, wird keine erfundene Antwort gespeichert.
Es existiert kein Cloudadapter, Toolaufruf, Obsidian-Zugriff oder eigener öffentlicher Netzwerkdienst. Der Ollama-Endpunkt muss eine Loopback-Adresse sein.