Архитектура
Внутреннее устройство Creo — для контрибьюторов и разработчиков.
Шина событий
graph TB
TUI["TUI (bubbletea)<br/>Рисует чат, ввод, сайдбар"]
Handler["SendMessage Handler<br/>Маршрутизатор сообщений"]
Agent["Agent.Run<br/>LLM цикл: stream → tools → repeat"]
Bus[("Bus<br/>in-process pub/sub")]
Manager["Session Manager<br/>Кэш сессий + состояния"]
DB[("SQLite<br/>sessions.db")]
Sync["SyncService<br/>Heartbeat, lock, mirror"]
Subagent["Subagent<br/>Child agent + relay"]
TUI -->|"SendMessage"| Bus
Bus -->|"SendMessage"| Handler
Handler -->|"TryStart → Run"| Agent
Handler -->|"Busy → AddPending"| DB
Agent -->|"TurnStart/End<br/>StreamingToken<br/>ToolCall/Result<br/>..."| Bus
Bus -->|"events"| TUI
Agent -->|"drainPending"| DB
Bus -->|"sync requests"| Sync
Sync -->|"DB read/write"| DB
Sync -->|"SyncResult"| Bus
Agent -->|"RunSubagent"| Subagent
Subagent -->|"SubagentStreamEvent"| Bus
Шина — in-process pub/sub. Publish блокирует пока все подписчики не отработают.