# Dependencies ## Rust Crates (Cargo.toml) | Crate | Version | Purpose | |-------|---------|---------| | ratatui | 0.30 | TUI framework (tui-rs successor) | | crossterm | 0.28 | Terminal manipulation (raw mode, alt screen) | | tokio | 1 | Async runtime (daemon, OAuth loopback) | | reqwest | 0.12 | HTTP client (blocking + streaming, vendored native-tls) | | serde / serde_json | 1 | JSON serialization (state, DTOs, IPC, config) | | serde_yaml_ng | 0.9 | YAML frontmatter parsing (memory files) | | anyhow | 1 | Error handling (no custom error types) | | tracing / tracing-subscriber | 0.1/0.3 | Structured logging → file | | rusqlite | 0.32 | SQLite (bundled, for message log) | | pulldown-cmark | 0.13 | Markdown → HTML (chat rendering) | | syntect | 5 | Syntax highlighting (code blocks in chat) | | sha2 | 0.10 | SHA-256 for PKCE challenge | | base64 | 0.22 | URL-safe base64 for PKCE | | libc | 0.2 | daemon PID file locking | | rmcp | 1.8 | MCP client (stdio + HTTP transports) | | uuid | 1 | Session IDs, job IDs | | chrono | 0.4 | Timestamps (ISO 8601, millis) | | dirs | 5 | Platform data directories | | dom_smoothie | 0.18 | HTML → plain text (web scraping) | | scraper | 0.27 | HTML parsing (web scraping) | | ignore | 0.4 | .gitignore-aware file walking (glob tool) | | regex / globset | 0.4 | Pattern matching (grep/glob tools) | | url / percent-encoding | 2 | URL parsing + encoding (OAuth) | ## External Services | Service | Integration | Notes | |---------|-------------|-------| | **LLM providers** | HTTP API (OpenAI-compatible) | Configurable via app_config.json | | **MCP servers** | stdio or HTTP | Model Context Protocol | | **git** | CLI (spawns `git`) | Via git_operator/git_worktree/git_cred tools | | **sh** | CLI (spawns `sh`) | Via bash tool | | **webbrowser** | opens URL | OAuth browser flow |