diff --git a/README.md b/README.md index 7ad4e4d..5235b67 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ Zesdex is a Rust-powered AI assistant that operates directly in your terminal vi - **IPC Protocol** — Bidirectional state synchronization between daemon and client processes with diff-based updates. - **Provider Agnostic** — Configurable AI model providers with dynamic model selection, per-role temperature/token limits, and API key management. -### Tool System (28 built-in tools) +### Tool System (33 built-in tools) | Category | Tools | |----------|-------| @@ -26,17 +26,17 @@ Zesdex is a Rust-powered AI assistant that operates directly in your terminal vi | **Memory** | `remember`, `recall`, `forget` | | **Planning** | `plan_enter`, `plan_ready`, `seqthink` | | **Workflow** | `workflow_run`, `note_finding` | -| **Utility** | `cd`, `dir_list`, `dir_cache_update`, `pong`, `todowrite` | +| **Utility** | `cd`, `dir_list`, `dir_cache_update`, `pong`, `todowrite`, `todofinish` | +| **LSP** | `lsp_connect`, `lsp_diagnostics`, `lsp_hover`, `lsp_completion`, `lsp_definition`, `lsp_references`, `lsp_disconnect` | ### Intelligence - **Workflow Engine** — Orchestrate complex multi-step tasks with parallel sub-agents, pipelines, and phased execution. Spawn independent workers that share findings in real-time. - **Self-Learning** — Persistent memory system that stores lessons, references, and project knowledge across sessions. Memories include provenance tracking, lifecycle management, and scope isolation. - **Self-Review** — Adaptive quality review system that evaluates completed work against stored lessons and project conventions. +- **Self-Healing** — On build/test failures, spawns a sub-agent with the error context to autonomously fix issues before reporting them to the user. - **MCP Support** — [Model Context Protocol](https://modelcontextprotocol.io/) integration for connecting to external AI tool servers. - **Sequential Thinking** — Chain-of-thought reasoning tool for step-by-step problem decomposition. - - - **Session Locking** — Prevents multiple processes from operating on the same session directory. ### Session Management @@ -52,32 +52,66 @@ Zesdex is a Rust-powered AI assistant that operates directly in your terminal vi ``` src/ ├── main.rs # Entry point: single-process, daemon, or attach mode +├── resources.rs # Embedded resources (help text, system prompts) ├── app/ │ ├── state/ # AppStateRest — immutable-rest state model │ │ ├── rest.rs # Core state struct │ │ ├── types.rs # Overlay, Toast, Origin enums │ │ ├── snapshot.rs # State snapshots for IPC │ │ ├── diff.rs # Diff-based state synchronization -│ │ └── runtime.rs # Runtime state mutations +│ │ ├── runtime.rs # Runtime state mutations +│ │ └── misc.rs # DirCache and miscellaneous state helpers │ ├── runtime/ # Action dispatch and event loop │ │ ├── actions/ # Action enum and apply_action reducer │ │ ├── stream/ # LLM streaming and tool execution │ │ │ └── tools/ # Tool harness integration +│ │ │ └── turn.rs # Turn orchestration │ │ ├── event_loop/ # Main event loop and shortsend -│ │ └── commands.rs # Slash command dispatch -│ ├── mode/ # UI modes and overlays (16 overlays) +│ │ ├── commands.rs # Slash command dispatch +│ │ └── shortsend.rs # Short-lived async send helper +│ ├── mode/ # UI modes and overlays (13 modes) +│ │ ├── bash.rs # Bash panel mode +│ │ ├── editor.rs # Multi-line editor mode +│ │ ├── effort.rs # Effort level selector +│ │ ├── help.rs # Help overlay +│ │ ├── key_input.rs # Raw key input mode +│ │ ├── loading.rs # Loading spinner overlay +│ │ ├── mcp.rs # MCP server management +│ │ ├── quit_confirm.rs # Quit confirmation dialog +│ │ ├── rewind.rs # Session rewind mode +│ │ ├── settings.rs # Settings panel +│ │ ├── todo.rs # Task list overlay +│ │ └── workflow.rs # Workflow visualization │ ├── harness.rs # Tool harness for agent execution -│ ├── workflow/ # Workflow engine (script DSL, executor) +│ ├── workflow/ # Workflow engine +│ │ ├── script.rs # Workflow script DSL +│ │ └── engine.rs # Workflow executor │ ├── mcp/ # MCP client manager -│ ├── subagent/ # Sub-agent spawn, context, events +│ │ └── manager.rs # MCP server lifecycle and tool exposure +│ ├── subagent/ # Sub-agent management +│ │ ├── spawn.rs # AgentDefinition and spawning +│ │ ├── engine.rs # Sub-agent event loop +│ │ ├── context.rs # Context construction for sub-agents +│ │ └── event.rs # Progress event types │ ├── bgbash/ # Background bash job management -│ ├── review/ # Self-review quality system +│ │ ├── job.rs # Background job handle +│ │ └── control.rs # Bash control (bg/fg/kill) +│ ├── lsp/ # LSP client management +│ │ ├── client.rs # LSP client connection wrapper +│ │ └── provisioner.rs # Auto-provisioning of LSP servers +│ └── review/ # Self-review quality system ├── controller/ │ ├── input.rs # Key event → Action mapping │ └── command.rs # Slash command parser ├── dto/ │ ├── chat/ # Message, ToolCall, Role types +│ │ ├── message.rs # Chat message types +│ │ ├── tool.rs # Tool call/result types +│ │ └── mod.rs │ └── provider/ # AI provider request/response/usage types +│ ├── request.rs # Provider request schema +│ ├── response.rs # Provider response schema +│ └── usage.rs # Token usage tracking ├── ipc/ │ ├── protocol.rs # ClientRequest, DaemonFrame, StatePayload │ ├── server.rs # Unix socket server @@ -94,13 +128,30 @@ src/ │ ├── memory.rs # Persistent memory with frontmatter │ ├── editlog.rs # Edit history tracking │ ├── msglog/ # Message log (SQLite-backed) +│ │ ├── schema.rs # SQLite schema +│ │ ├── query.rs # Query helpers +│ │ ├── blobs.rs # Large blob storage +│ │ └── summary.rs # Session summarization │ ├── agent_def/ # Agent definitions (builtin, global, session) +│ │ ├── builtin.rs # Built-in agent profiles +│ │ ├── global.rs # Global agent config +│ │ └── session.rs # Per-session agent config +│ ├── conversation.rs # Conversation helpers │ └── session_lock.rs # Flock-based session locking ├── service/ │ ├── provider.rs # AI provider abstraction │ └── oauth/ # OAuth PKCE flow with loopback server -├── tool/ # 28 tool implementations +│ ├── loopback.rs # Local HTTP server for OAuth redirect +│ ├── manager.rs # OAuth token manager +│ ├── pkce.rs # PKCE code challenge/verifier +│ └── mod.rs +├── tool/ # 33 tool implementations │ ├── fs/ # read, write, edit, delete +│ │ ├── read.rs +│ │ ├── write.rs +│ │ ├── edit.rs +│ │ ├── delete.rs +│ │ └── helpers.rs # Path resolution and validation │ ├── search.rs # grep, glob │ ├── shell.rs # bash │ ├── bash_tools.rs # bash_output, bash_kill @@ -108,18 +159,31 @@ src/ │ ├── git_worktree.rs # git worktree management │ ├── git_cred.rs # git credential store/get/erase │ ├── memory/ # remember, forget, recall +│ │ ├── remember.rs +│ │ ├── forget.rs +│ │ └── recall.rs │ ├── plan.rs # plan_enter, plan_ready │ ├── seqthink.rs # Sequential thinking │ ├── workflow.rs # workflow_run, note_finding -│ ├── utility/ # cd, dir_list, dir_cache_update, pong, todowrite +│ ├── utility/ # cd, dir_list, dir_cache_update, pong, todowrite, todofinish +│ │ ├── cd.rs +│ │ ├── dir_list.rs +│ │ ├── dir_cache_update.rs +│ │ ├── pong.rs +│ │ ├── todowrite.rs +│ │ └── todofinish.rs +│ ├── lsp/ # LSP tools (connect, diagnostics, hover, etc.) +│ │ └── mod.rs │ └── shell_filter/ # Shell output filtering (credentials, git) -├── view/ # TUI rendering -│ ├── chat.rs # Chat transcript with markdown -│ ├── markdown.rs # Markdown → ratatui spans -│ ├── status.rs # Status bar -│ ├── theme.rs # Color scheme -│ └── workflow.rs # Workflow visualization -└── resources.rs # Embedded resources (help text, system prompts) +│ ├── credentials.rs +│ ├── git.rs +│ └── mod.rs +└── view/ # TUI rendering + ├── chat.rs # Chat transcript with markdown + ├── markdown.rs # Markdown → ratatui spans + ├── status.rs # Status bar + ├── theme.rs # Color scheme + └── workflow.rs # Workflow visualization ``` ---