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
5b0774958a
feat(auth): add multi-provider authentication with secure credential storage
...
Authentication System:
- Add credentials crate with keyring (OS keychain) and file fallback storage
- Add auth-manager crate for unified auth across providers
- Implement API key login flow for Anthropic, OpenAI, and Ollama Cloud
- Add CLI commands: login, logout, auth (status)
- Store credentials securely in macOS Keychain / GNOME Keyring / Windows Credential Manager
API Key Helpers:
- Support for password manager integration (1Password, Bitwarden, pass, AWS Secrets, Vault)
- Command-based helpers with TTL caching
- Priority chain: env vars → helpers → cache → stored credentials
Background Token Refresh:
- Automatic OAuth token refresh before expiration
- Configurable check interval and refresh threshold
MCP OAuth Support:
- Add OAuth config to MCP server definitions
- Support for SSE/HTTP transport with OAuth
- Token storage with mcp: prefix
Bug Fixes:
- Fix keyring crate requiring explicit backend features (was using mock store)
- Fix provider index not updated on credential store
- Add User-Agent headers to avoid Cloudflare blocks
🤖 Generated with [Claude Code](https://claude.ai/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-12-03 00:27:37 +01:00