# Architecture Overview ## System Layout Zesdex is an autonomous AI coding agent with a TUI — an LLM client wrapped in a tool-use harness with 37 built-in tools. ``` ┌─────────────────────────────────────────────────────────────┐ │ Process Mode │ │ Single-Process ─── Daemon (background) ─── Attach (client) │ └──────────────────────────┬──────────────────────────────────┘ │ IPC (Unix domain socket) ▼ ┌─────────────────────────────────────────────────────────────┐ │ src/main.rs │ │ ┌──────────────┐ ┌──────────────┐ ┌────────────────┐ │ │ │ Controller │──▶│ Runtime │──▶│ View │ │ │ │ (input.rs) │ │ (actions.rs) │ │ (chat,status,…)│ │ │ └──────────────┘ └──────┬───────┘ └────────────────┘ │ │ │ │ │ ┌───────▼────────┐ │ │ │ Harness │ │ │ │ (tool dispatch)│ │ │ └───────┬────────┘ │ │ │ │ │ ┌─────────────────┼─────────────────┐ │ │ ▼ ▼ ▼ │ │ ┌─────────┐ ┌────────────┐ ┌───────────────┐ │ │ │ Tools │ │ Subagents │ │ Workflow │ │ │ │ (37x) │ │ (auto/gen) │ │ Engine │ │ │ └─────────┘ └────────────┘ │ (hive_mind) │ │ │ └───────────────┘ │ └─────────────────────────────────────────────────────────────┘ ``` ## Process Modes | Mode | Description | |------|-------------| | **Single-process** | TUI + agent run in the same process. Simplest mode. | | **Daemon** | `--daemon` flag. Agent processes state in background; clients attach to render. | | **Attach** | `--attach ` flag. Connect to existing daemon with IPC. | In daemon mode, the daemon runs the full agent loop; clients are stateless renderers that sync via Unix domain sockets with diff-based state synchronization. ## Data Flow 1. **Input** → `controller/input.rs` handles key events and autocomplete 2. **Dispatch** → `app/runtime/actions/mod.rs` applies actions to state (`AppStateRest`) 3. **LLM Stream** → `app/runtime/stream/mod.rs` parses SSE chunks into typed events 4. **Tool Execution** → `app/harness.rs` gates and runs tool calls via the `Tool` trait 5. **Rendering** → `view/` modules read `AppStateRest` and render via ratatui ## Key Files | File | Purpose | |------|---------| | `src/main.rs` | Entry point, process mode dispatch, TUI init | | `src/app/state/rest.rs` | Single source-of-truth state struct | | `src/app/runtime/actions/mod.rs` | State reducer (`apply_action`) | | `src/app/runtime/stream/mod.rs` | SSE stream parser | | `src/app/harness.rs` | Tool harness with safety gating | | `src/app/workflow/hive_mind.rs` | Multi-agent orchestration | | `src/tool/mod.rs` | Tool trait + registry (37 tools) | | `src/view/mod.rs` | TUI render pipeline |