Commit Graph

309 Commits

Author SHA1 Message Date
84fa08ab45 feat(plan): Add plan execution system with external tool support
Plan Execution System:
- Add PlanStep, AccumulatedPlan types for multi-turn tool call accumulation
- Implement AccumulatedPlanStatus for tracking plan lifecycle
- Support selective approval of proposed tool calls before execution

External Tools Integration:
- Add ExternalToolDefinition and ExternalToolTransport to plugins crate
- Extend ToolContext with external_tools registry
- Add external_tool_to_llm_tool conversion for LLM compatibility

JSON-RPC Communication:
- Add jsonrpc crate for JSON-RPC 2.0 protocol support
- Enable stdio-based communication with external tool servers

UI & Engine Updates:
- Add plan_panel.rs component for displaying accumulated plans
- Wire plan mode into engine loop
- Add plan mode integration tests

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-26 22:47:54 +01:00
f97bd44f05 feat(engine): Implement dynamic provider/model switching
Add shared ProviderManager architecture for runtime provider/model switching
between TUI and Engine:

Core Architecture:
- Add SwitchProvider and SwitchModel messages to UserAction enum
- Create run_engine_loop_dynamic() with shared ProviderManager
- Add ClientSource enum to AgentManager (Fixed vs Dynamic)
- Implement get_client() that resolves provider at call time

TUI Integration:
- Add ProviderMode::Shared variant for shared manager
- Add with_shared_provider_manager() constructor
- Update switch_provider/set_current_model for shared mode
- Fix /model command to update shared ProviderManager (was only
  updating local TUI state, not propagating to engine)
- Fix /provider command to use switch_provider()

Infrastructure:
- Wire main.rs to create shared ProviderManager for both TUI and engine
- Add HTTP status code validation to Ollama client
- Consolidate messages.rs and state.rs into agent-core

Both TUI and Engine now share the same ProviderManager via
Arc<Mutex<>>. Provider/model changes via [1]/[2]/[3] keys, model
picker, or /model command now properly propagate to the engine.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-26 22:13:00 +01:00
9bc865b8fa conductor(plan): Mark task 'UI for Permission' as complete 2025-12-26 19:32:16 +01:00
af1a61a468 feat(ui): Integrate TUI with Engine Loop and Status Bar Prompt 2025-12-26 19:31:48 +01:00
f610ed312c conductor(plan): Mark task 'Permission Interceptor' as complete 2025-12-26 19:24:21 +01:00
159f2d3330 feat(core): Implement Permission Interceptor and async request/response 2025-12-26 19:24:03 +01:00
f5d465b5a9 conductor(plan): Mark task 'Define AppMode enum' as complete 2025-12-26 19:22:01 +01:00
37a36dd36d feat(core): Define AppMode enum and add to AppState 2025-12-26 19:21:49 +01:00
6601654b3a conductor(plan): Mark phase 'The Agentic Orchestrator' as complete 2025-12-26 19:21:32 +01:00
8d1d7ba184 conductor(checkpoint): Checkpoint end of Phase 2 2025-12-26 19:21:18 +01:00
e3eb8c1b02 conductor(plan): Mark task 'Sub-Agent Support' as complete 2025-12-26 19:19:11 +01:00
b6ad2f09a5 feat(core): Add basic Sub-Agent support 2025-12-26 19:19:02 +01:00
0db472aaa5 conductor(plan): Mark task 'Tool Registry' as complete 2025-12-26 19:18:46 +01:00
1d7c584b55 feat(core): Implement ToolRegistry 2025-12-26 19:18:30 +01:00
4f0b91adda conductor(plan): Mark task 'Reasoning Loop' as complete 2025-12-26 19:18:11 +01:00
5c82a0e632 feat(core): Implement basic reasoning loop in AgentManager 2025-12-26 19:17:56 +01:00
7a8a99b604 conductor(plan): Mark task 'Create AgentManager struct' as complete 2025-12-26 19:17:37 +01:00
1e7c7cd65d feat(core): Create AgentManager struct 2025-12-26 19:17:27 +01:00
6acb1dc091 conductor(plan): Mark phase 'Phase 1: Asynchronous Foundation' as complete 2025-12-26 19:17:09 +01:00
aed3879844 conductor(checkpoint): Checkpoint end of Phase 1 2025-12-26 19:16:57 +01:00
a8fc9bbc54 conductor(plan): Mark task 'Introduce AppState' as complete 2025-12-26 19:12:23 +01:00
2bccb11e53 feat(core): Introduce AppState and integrate with Engine Loop 2025-12-26 19:12:02 +01:00
352bbb76f2 conductor(plan): Mark task 'Switch LLM interaction' as complete 2025-12-26 19:11:16 +01:00
c54962b0e0 feat(core): Switch LLM interaction to Streaming-only 2025-12-26 19:11:05 +01:00
68e3993234 conductor(plan): Mark task 'Refactor main.rs' as complete 2025-12-26 19:09:39 +01:00
9648ddd69d refactor(core): Initialize Engine Loop and Message Channel in main 2025-12-26 19:09:16 +01:00
7c66dfd36b conductor(plan): Mark task 'Create Message enum' as complete 2025-12-26 19:08:30 +01:00
b0e65e4041 feat(core): Introduce Message enum for async communication 2025-12-26 19:08:16 +01:00
abbda81659 chore(conductor): Archive completed stabilization track 2025-12-26 18:46:29 +01:00
62237bcd3b conductor(plan): Mark phase 'Documentation Audit & Standardization' as complete 2025-12-26 18:40:34 +01:00
6486dd9b43 conductor(checkpoint): Checkpoint end of Phase 2 - Documentation Audit & Standardization 2025-12-26 18:40:18 +01:00
914f30c8e0 conductor(plan): Mark task 'Add doc-comments to all public functions in crates/core/agent/' as complete 2025-12-26 18:35:57 +01:00
b555256d21 docs(agent): Add doc-comments to all public items in agent-core 2025-12-26 18:35:46 +01:00
f1f1f88181 conductor(plan): Mark task 'Create/Update README.md for all crates in crates/tools/' as complete 2025-12-26 18:32:24 +01:00
a764fd6b75 docs(tools): Add README.md for all tool crates 2025-12-26 18:31:58 +01:00
2273817f5f conductor(plan): Mark task 'Create/Update README.md for all crates in crates/platform/' as complete 2025-12-26 18:31:09 +01:00
997007439e docs(platform): Add README.md for all platform crates 2025-12-26 18:30:56 +01:00
41bf788a51 conductor(plan): Mark task 'Create/Update README.md for all crates in crates/llm/' as complete 2025-12-26 18:30:15 +01:00
f7aac0785b docs(llm): Add README.md for all LLM crates 2025-12-26 18:30:05 +01:00
611547afa5 conductor(plan): Mark task 'Create/Update README.md for all crates in crates/app/' as complete 2025-12-26 18:29:31 +01:00
f39c7a75f2 docs(app): Add README.md for CLI and UI crates 2025-12-26 18:29:22 +01:00
2e8efdaa12 conductor(plan): Mark phase 'Core Agent & Platform Testing' as complete 2025-12-26 18:28:57 +01:00
495f63f0d8 conductor(checkpoint): Checkpoint end of Phase 1 - Core Agent & Platform Testing 2025-12-26 18:28:44 +01:00
efc72c5ceb conductor(plan): Mark task 'Write unit tests for crates/platform/config/src/lib.rs' as complete 2025-12-26 18:21:41 +01:00
b4a4a38fec test(config): Add tests for model management and permission integration 2025-12-26 18:21:30 +01:00
ffe899a3c0 conductor(plan): Mark task 'Write unit tests for crates/platform/permissions/src/lib.rs' as complete 2025-12-26 18:20:46 +01:00
94c89cea05 test(permissions): Add tests for mode defaults and tool name roundtrip 2025-12-26 18:20:36 +01:00
b02a41c8e0 conductor(plan): Mark task 'Write unit tests for crates/core/agent/src/lib.rs' as complete 2025-12-26 18:20:09 +01:00
f5a5724823 test(agent): Add unit tests for agent-core and fix clippy warnings 2025-12-26 18:19:58 +01:00
fbb6681cd2 conductor(setup): Add conductor setup files 2025-12-26 18:10:55 +01:00