This document maps core architectural concepts from Aider, Codex, and OpenCode onto the proposed OpenOxide Rust implementation.
| Concept | Aider (Python) | Codex (Rust) | OpenCode (TS) | OpenOxide (Rust) |
|---|
| Repo Map | aider/repomap.py | (none, fuzzy search) | (LSP symbols) | crate::repomap |
| Symbol Extraction | tree-sitter queries | tree-sitter-bash | lsp calls | crate::repomap::extractor |
| Ranking | PageRank (networkx) | (none) | (none) | crate::repomap::ranker (petgraph) |
| Project Docs | (none) | AGENTS.md | skill.ts | crate::context::project_doc |
| Token Fitting | Binary Search | (none) | Compaction | crate::context::packer |
| Concept | Aider (Python) | Codex (Rust) | OpenCode (TS) | OpenOxide (Rust) |
|---|
| Message History | aider/coders/base_coder.py | tui/src/app.rs | src/session/ | crate::session |
| Undo/Revert | aider/commands.py (/undo) | tui/src/app_backtrack.rs | src/session/revert.ts | crate::session::revert |
| Compaction | (none, truncation) | (truncation) | src/session/compaction.ts | crate::session::compaction |
| Tool Execution | aider/coders/base_coder.py | core/src/tools/ | src/tool/ | crate::tool |
| Multi-Agent | (none) | multi_agents.rs | task.ts | crate::agent::coordinator |
| Concept | Aider (Python) | Codex (Rust) | OpenCode (TS) | OpenOxide (Rust) |
|---|
| Sandboxing | (none) | linux-sandbox/, windows-sandbox-rs/ | (none) | crate::sandbox (Landlock/Seccomp/Windows) |
| Permissions | (none) | approval_policy | ctx.ask() | crate::security::policy |
| World-Writable | (none) | world_writable_scan | (none) | crate::security::audit |
| Concept | Aider (Python) | Codex (Rust) | OpenCode (TS) | OpenOxide (Rust) |
|---|
| Adapter Layer | aider/llm.py | core/src/model_provider_info.rs | src/provider/ | crate::provider |
| Streaming | LiteLLM | Custom Event Stream | AI SDK (Vercel) | crate::provider::stream (reqwest + eventsource) |
| OSS Models | Ollama, Groq, etc. | ollama/, lmstudio/ | Dynamic Loaders | crate::provider::oss |
| Concept | Aider (Python) | Codex (Rust) | OpenCode (TS) | OpenOxide (Rust) |
|---|
| Framework | PromptToolkit | Ratatui | React (OpenTUI) | Ratatui |
| Event Loop | AsyncIO | Tokio + Select! | Bun Event Loop | Tokio + Select! |
| Terminal PTY | (none) | portable-pty | bun-pty | crate::pty (portable-pty) |
crate::main: CLI entry point, subcommand parsing.
crate::tui: Ratatui-based interface, event orchestration.
crate::session: Message storage, prompt loop, history management.
crate::repomap: Tree-sitter extraction, PageRank graph, token-fit packer.
crate::tool: Registry of all tools (bash, read, edit, grep, etc.) and execution logic.
crate::provider: Adapters for OpenAI, Anthropic, Ollama, etc.
crate::sandbox: Platform-specific process isolation.
crate::lsp: Language server clients and symbol discovery.
crate::vcs: Git worktree and snapshot management.