中心モデル
SNA ランタイムのサーバ、session manager、runtime、履歴構造を整理します。
SNA は、セッションごとにエージェントプロセスを管理する Hono HTTP/WebSocket
サーバです。サーバ自体は特定のランタイムに依存しません。Claude Code、
Codex、OpenCode はすべて同じ AgentProvider インタフェースを実装するため、
1 つのセッションで会話履歴を保ったままランタイムを切り替えられます。
SnaClient
│ HTTP (request/response, ordering)
│ WS (live events, fanout)
▼
Hono server ──► SessionManager
│
├─ Session (per session id)
│ ├─ AgentProcess ◄── spawn(provider, cwd, ...)
│ ├─ Event buffer (in-memory, cursor-keyed)
│ └─ RuntimeSession chain (config history)
│
└─ Canonical history (SQLite)読む順序
哲学
ランタイム中立の構造を保つための設計原則。
セッション
ライフサイクル、RuntimeSession チェーン、PATCH の意味。
正規化履歴
フラットなブロックとランタイム別履歴の再構築。
ランタイム
ランタイムアダプタ、AgentProvider 内部構造、runtime pool。
権限
ランタイム差分を隠す承認フロー。
ワイヤプロトコルの詳細 (HTTP ルート、WebSocket op、イベントタイプ) は API Spec で扱います。