핵심 모델
SNA 런타임의 서버, session manager, runtime, 히스토리 구조를 정리합니다.
SNA는 세션마다 에이전트 프로세스를 관리하는 Hono HTTP/WebSocket 서버입니다.
서버 자체는 특정 런타임에 묶이지 않습니다. Claude Code, Codex,
OpenCode가 모두 같은 AgentProvider 인터페이스를 구현하므로, 하나의 세션에서
대화 히스토리를 유지한 채 런타임을 바꿀 수 있습니다.
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 에서 다룹니다.