diff --git a/README.md b/README.md index 8316257..ad7aaab 100644 --- a/README.md +++ b/README.md @@ -184,6 +184,63 @@ See [doc/REMOTE_EXECUTION.md](doc/REMOTE_EXECUTION.md) for the design. ## Architecture +```mermaid +graph TB + subgraph Frontends + TER[Terminal
b / bfg / sh] + ACME[Plan 9 acme] + EMACS[Emacs
ellie.el] + KDE[KDE
plasmoid / GUI / Kate
KRunner / tray] + WEB[Web UI
Preact SPA] + end + + subgraph "olliesrv" + 9P[9P Filesystem] + DBUS[D-Bus Adapter] + SM[Session Manager] + CORE[Core Library
agent loop · compaction
prompt templates] + ROUTE[Router
complete · generate · route] + TOOLS[Tool Registry
lazy-load · dispatch] + SB[Landlock Sandbox] + end + + subgraph "LLM Backends" + OLL[Ollama] + OAI[OpenAI / OpenRouter] + ANT[Anthropic] + COP[Copilot] + KIRO[Kiro] + end + + subgraph Execution + LOCAL[Local Tools
file_read · lsp_* · shell
memory_* · gui_*] + REMOTE[ollie-remote
via SSH] + RTOOL[Remote Tools] + end + + HTTPGW[ollie-httpgw
HTTP→9P gateway] + + %% Frontend connections + TER & ACME & EMACS -->|9P| 9P + KDE -->|D-Bus| DBUS + WEB --> HTTPGW --> 9P + + %% Internal layers + 9P --> SM + DBUS --> SM + SM --> CORE + CORE --> ROUTE + CORE --> TOOLS + TOOLS --> SB + + %% Backend connections + CORE -->|streaming| OLL & OAI & ANT & COP & KIRO + + %% Tool execution + SB --> LOCAL + SB -->|SSH| REMOTE --> RTOOL +``` + `olliesrv` is a single binary that operates in three modes: | Mode | Flags | Interface | Frontends |