diff --git a/AGENTS.md b/AGENTS.md index 2d7117f..9d01028 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -129,10 +129,12 @@ cd kde && ./test-e2e.sh |------|-------| | Agent loop | `core/pkg/agent/loop.go` | | Tool dispatcher | `core/pkg/tools/execute/` | +| Remote execution client | `core/pkg/remote/remote.go` | +| Remote execution server | `remote/main.go` | | Sandbox enforcement | `core/internal/sandbox/` | | 9P filesystem | `9p/fs/` | | Session management | `9p/session/` | -| System prompt template | `9p/prompts/SYSTEM_PROMPT.md` (or `prompts/SYSTEM_PROMPT.md`) | +| System prompt template | `prompts/SYSTEM_PROMPT.md` | | Agent configs | `agents/*.json` | | D-Bus daemon | `dbus/main.go` | | KDE D-Bus client | `kde/plasmoid/plugin/olliedbusclient.cpp` | diff --git a/README.md b/README.md index 411b037..86d1b39 100644 --- a/README.md +++ b/README.md @@ -82,6 +82,7 @@ Monorepo with Git submodules. Each submodule has its own Go module (except `el` |-----------|----------|-------------| | [core/](core/) | Go | Core library: agent loop, backends, tools, config, sandbox | | [9p/](9p/) | Go | 9P filesystem server (`olliesrv`) | +| [remote/](remote/) | Go | Remote execution server (`ollie-remote`) for split-brain SSH mode | | [dbus/](dbus/) | Go | D-Bus session manager daemon (`ollied`) | | [acme/](acme/) | Go | Plan 9 acme editor frontend | | [httpgw/](httpgw/) | Go | HTTP-to-9P gateway (`ollie-httpgw`) | @@ -145,6 +146,16 @@ Monorepo with Git submodules. Each submodule has its own Go module (except `el` - **Monitor** — list running processes, read their output (64KB ring buffer), check status - **Signal and dismiss** — send TERM/KILL to a detached process; remove finished processes from the list +### Remote execution (split-brain) + +- **Local brain, remote hands** — the agent loop and LLM streaming stay local; tool execution happens on a remote host over SSH +- **Zero-setup deployment** — `ollie-remote` is bootstrapped automatically on first connect (binary cached by hash) +- **Sandboxed remotely** — Landlock enforcement runs on the remote host; `landrun` is shipped alongside the binary +- **Convention over configuration** — sensible sandbox defaults; per-project overrides via `.ollie-sandbox.yaml` in the project root +- **GUI works unchanged** — D-Bus signals fire locally, so KDE GUI / web UI see real-time progress + +See [doc/REMOTE_EXECUTION.md](doc/REMOTE_EXECUTION.md) for the design. + ### Stateless endpoints - **Code completion** — write cursor context (prefix, suffix, file path), read back code to insert; works from any editor or script