docs: document pi_embedded canary path and update state

This commit is contained in:
William Valentin
2026-02-23 21:13:06 -08:00
parent a389cd659c
commit 722f0837f5
5 changed files with 55 additions and 7 deletions
+7
View File
@@ -31,6 +31,7 @@ flowchart LR
SM[SessionManager\nSQLite]
OR[AgentOrchestrator]
NA[NativeAgent\n(tool loop)]
EB[Optional External Backends\nclaude_code/opencode/codex/gemini/pi_embedded]
MR[ModelRouter]
TP[ToolPolicy + ToolRegistry]
TE[ToolExecutor\nhooks + enforcement + audit]
@@ -60,7 +61,9 @@ flowchart LR
CA --> RT
RT --> SM
RT --> OR
RT --> EB
OR --> NA
EB --> MP
NA --> MR
MR --> MP
@@ -107,6 +110,9 @@ ChannelAdapter -> ChannelRegistry
| v
| ModelClient
|
+----> (optional, non-tool turns) ExternalBackend
(claude_code/opencode/codex/gemini/pi_embedded)
|
+----> (optional) PairingManager gate for unknown senders
Tool Calls (inside NativeAgent loop)
@@ -130,6 +136,7 @@ Key files:
- Routing + per-session agent creation: `src/daemon/routing.ts`
- Orchestration: `src/backends/native/orchestrator.ts`
- Tool loop: `src/backends/native/agent.ts`
- External backend adapters: `src/backends/external.ts`, `src/backends/piEmbedded.ts`
- Model routing: `src/models/router.ts`
- Tool policy + execution: `src/tools/policy.ts`, `src/tools/executor.ts`
@@ -10,6 +10,7 @@ If you only want the protocol surface, see `docs/api/PROTOCOL.md`.
- Each connection is attached to a `sessionId`.
- Agent work is queued per `sessionId` (FIFO), not per connection.
- Sessions persist in SQLite via `SessionManager` even if clients disconnect.
- Once dequeued, message routing may execute the native orchestrator path or an optional external backend path (`claude_code`, `opencode`, `codex`, `gemini`, `pi_embedded`) depending on agent/backend config.
## Component Map
@@ -30,7 +31,7 @@ flowchart LR
subgraph CORE[Flynn Core]
SM[SessionManager\nin-memory cache + SQLite]
SS[SessionStore\nSQLite tables]
AO[AgentOrchestrator]
AO[AgentOrchestrator / External Backends]
end
WS --> GS