README: strip all D-Bus references, 9P is the only surface
This commit is contained in:
parent
bc648a5c95
commit
491f259a2b
59
README.md
59
README.md
|
|
@ -1,15 +1,9 @@
|
|||
# ollie
|
||||
|
||||
Ollie is an AI agent runtime. A single binary (`olliesrv`) exposes agent sessions
|
||||
over two surfaces: a **9P2000 filesystem** (the canonical interface) and a
|
||||
**D-Bus service** (`org.ollie.SessionManager`). Both are thin adapters over the
|
||||
same core — the agent loop, tool dispatch, sandboxing, and multi-backend routing.
|
||||
Choice of surface is per-deployment: 9P for its Unix composability, D-Bus for
|
||||
desktop integration, or both.
|
||||
|
||||
The core is deliberately minimal. Capabilities come from composing small pieces —
|
||||
tool executables, skill files, metadata sidecars — rather than building a
|
||||
monolithic framework.
|
||||
over a single surface: a **9P2000 filesystem**. The core is deliberately minimal;
|
||||
capabilities come from composing small pieces — tool executables, skill files,
|
||||
metadata sidecars — rather than building a monolithic framework.
|
||||
|
||||
## Getting started
|
||||
|
||||
|
|
@ -70,7 +64,7 @@ Single Go module with one Git submodule (kde).
|
|||
| `cmd/olliesrv/` | Go | The main binary |
|
||||
| `cmd/ollie-9p/` | Go | 9P client |
|
||||
| `cmd/ollie-remote/` | Go | Remote execution binary |
|
||||
| `kde/` | C++/Qt6 | KDE plasmoid, GUI, Kate plugin, KRunner, tray *(submodule)* |
|
||||
| `kde/` | C++/Qt6 | KDE plasmoid, GUI, Kate plugin, KRunner *(submodule)* |
|
||||
| `data/agents/` | JSON | Agent configs |
|
||||
| `data/prompts/` | Markdown | System prompt templates |
|
||||
| `data/tools/` | Mixed | Tool executables (scripts + compiled) + `.meta` sidecar files |
|
||||
|
|
@ -120,13 +114,9 @@ graph TB
|
|||
TOOLS -->|SSH| REMOTE
|
||||
```
|
||||
|
||||
`olliesrv` is a single binary. Which surface it exposes is a flag:
|
||||
|
||||
| Mode | Flags | Interface | Frontends |
|
||||
|------|-------|-----------|-----------|
|
||||
| +9p +dbus | (default) | 9P filesystem + D-Bus signals | All |
|
||||
| +9p -dbus | `-nodbus` | 9P filesystem only | Terminal, acme, Emacs, web |
|
||||
| -9p +dbus | `-no9p` | D-Bus only | KDE (plasmoid, GUI, Kate, KRunner, tray) |
|
||||
`olliesrv` exposes the agent runtime over a single surface: a 9P2000 filesystem.
|
||||
The KDE GUI, Kate plugin, and KRunner use 9P internally to communicate with the
|
||||
server — there is no D-Bus interface.
|
||||
|
||||
## 9P: everything is a file
|
||||
|
||||
|
|
@ -249,44 +239,11 @@ with a 10-line shell script instead of a framework.
|
|||
- **Multiplexing** — multiple clients mount the same server simultaneously,
|
||||
each with an independent view through per-fid state
|
||||
|
||||
## D-Bus: desktop integration
|
||||
|
||||
The D-Bus interface (`org.ollie.SessionManager`) is embedded in `olliesrv`
|
||||
(enabled by default, or exclusively via `-no9p`). It provides typed method
|
||||
calls and real-time signals.
|
||||
|
||||
```sh
|
||||
# Create a session
|
||||
dbus-send --session --dest=org.ollie.SessionManager --type=method_call --print-reply \
|
||||
/org/ollie/SessionManager org.ollie.SessionManager.CreateSession \
|
||||
string:"$PWD" string:"" string:"" string:"default" string:"" string:""
|
||||
|
||||
# Submit a prompt
|
||||
dbus-send --session --dest=org.ollie.SessionManager --type=method_call \
|
||||
/org/ollie/SessionManager org.ollie.SessionManager.Submit \
|
||||
string:"SESSION_ID" string:"fix the bug"
|
||||
|
||||
# Read state
|
||||
dbus-send --session --dest=org.ollie.SessionManager --type=method_call --print-reply \
|
||||
/org/ollie/SessionManager org.ollie.SessionManager.GetState string:"SESSION_ID"
|
||||
```
|
||||
|
||||
### Signals
|
||||
|
||||
D-Bus signals push events without polling:
|
||||
- **`ChatUpdated`** — new chat output (session_id, offset, text)
|
||||
- **`StateChanged`** — transition notifications
|
||||
- **`SessionCreated` / `SessionKilled` / `SessionRenamed`** — lifecycle events
|
||||
- **`ProcessDetached` / `ProcessExited`** — background process events
|
||||
|
||||
GUI frontends subscribe once and react — no timers, no file watches, no busy loops.
|
||||
|
||||
### KDE integration
|
||||
### KDE frontends
|
||||
|
||||
- **Plasmoid** — embed an agent chat widget in the Plasma panel
|
||||
- **Kate plugin** — inline AI assistance in the text editor
|
||||
- **KRunner** — launch prompts from the desktop search bar
|
||||
- **System tray** — status indicator and quick actions
|
||||
- **Standalone GUI** — full-featured Qt6 chat application
|
||||
|
||||
## Tool registry: zero built-in tools
|
||||
|
|
|
|||
|
|
@ -196,7 +196,7 @@ state transition via `statewait` — zero CPU when idle.
|
|||
## Other front-ends
|
||||
|
||||
- **[ellie](ellie.md)** — Emacs session tree, chat, multi-agent
|
||||
- **KDE** — plasmoid, standalone GUI, Kate plugin, KRunner, system tray
|
||||
- **KDE** — plasmoid, standalone GUI, Kate plugin, KRunner
|
||||
|
||||
For technical details (generation parameters, sandboxing, multi-agent workflows,
|
||||
tool discovery, and the raw 9P filesystem), see [doc/whitepaper.md](whitepaper.md).
|
||||
Loading…
Reference in New Issue