doc/architecture.md: fix ollie-remote (dead), fsedsl→virtfs, add feed+lib9p

This commit is contained in:
Levi Neely 2026-08-13 21:23:06 +02:00
parent e379a08c08
commit 2707bfce57
1 changed files with 6 additions and 4 deletions

View File

@ -21,9 +21,9 @@ ollie/
│ ├── toolsrv/ 9P tool execution server (separate process)
│ │ └── internal/ fs/, exec/, registry/, sandbox/
│ ├── ollie-9p/ 9P client CLI
│ └── ollie-remote/ Remote execution server
├── toolsrv/ Client library (9P client for toolsrv)
├── fsedsl/ Filesystem declaration EDSL (generic, reusable)
├── virtfs/ Filesystem declaration EDSL (generic, reusable)
├── lib9p/ 9P protocol library + native client
├── env/ Environment variable loading
├── log/ Structured logging
├── paths/ XDG path resolution
@ -81,7 +81,7 @@ flowchart TB
LOOP --> TRV
LOOP <--> Backends
TRV --> Tools["tool definitions\n(OLLIE_TOOLS_PATH)\n· shell, reasoning_think\n· file_read, file_write\n· lsp_*, memory_*\n· gui_*, subagent_*"]
TRV --> Remote["ollie-remote (SSH)\npure 9P RPC\nno embedded tools"]
TRV --> Remote["ollie-remote (toolsrv)\nSSH-tunneled 9P RPC\nremote tool execution"]
```
## Core Library
The core is a single Go module (`ollie`) with no binary. Binaries live in `cmd/`.
@ -99,7 +99,8 @@ The core is a single Go module (`ollie`) with no binary. Binaries live in `cmd/`
| `cmd/toolsrv/internal/registry/` | Session-scoped tool registry |
| `cmd/toolsrv/internal/sandbox/` | Landrun sandbox configuration and command wrapping |
| `toolsrv/` | 9P client library for connecting to toolsrv |
| `fsedsl/` | Generic filesystem declaration EDSL (used by both servers) |
| `virtfs/` | Generic filesystem declaration EDSL (used by both servers) |
| `lib9p/` | 9P protocol library + native client |
| `env/` | Session environment helpers |
| `log/` | Structured logging (olliesrv) |
| `paths/` | XDG path resolution |
@ -229,6 +230,7 @@ Agent configs declare prompts as a JSON array of shell commands. Each command is
│ └── {aname}/
│ ├── prompt submit a prompt
│ ├── fifo prompt queue (write=enqueue, read=dequeue)
│ ├── feed change-detecting input (write=store, read=block until changed)
│ ├── chat streaming filtered text (no markers/fences)
│ ├── chat.raw streaming full markup (block markers + fences)
│ ├── log last 64KB of chat (non-blocking)