Phase 10 "Cleanup & Production Polish" is now complete. All LLM interactions now go through the Model Context Protocol (MCP), removing direct provider dependencies from CLI/TUI. ## Major Changes ### MCP Architecture - All providers (local and cloud Ollama) now use RemoteMcpClient - Removed owlen-ollama dependency from owlen-tui - MCP LLM server accepts OLLAMA_URL environment variable for cloud providers - Proper notification handling for streaming responses - Fixed response deserialization (McpToolResponse unwrapping) ### Code Cleanup - Removed direct OllamaProvider instantiation from TUI - Updated collect_models_from_all_providers() to use MCP for all providers - Updated switch_provider() to use MCP with environment configuration - Removed unused general config variable ### Documentation - Added comprehensive MCP Architecture section to docs/architecture.md - Documented MCP communication flow and cloud provider support - Updated crate breakdown to reflect MCP servers ### Security & Performance - Path traversal protection verified for all resource operations - Process isolation via separate MCP server processes - Tool permissions controlled via consent manager - Clean release build of entire workspace verified ## Benefits of MCP Architecture 1. **Separation of Concerns**: TUI/CLI never directly instantiates providers 2. **Process Isolation**: LLM interactions run in separate processes 3. **Extensibility**: New providers can be added as MCP servers 4. **Multi-Transport**: Supports STDIO, HTTP, and WebSocket 5. **Tool Integration**: MCP servers expose tools to LLMs This completes Phase 10 and establishes a clean, production-ready architecture for future development. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
36 lines
887 B
TOML
36 lines
887 B
TOML
[package]
|
|
name = "owlen-tui"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
authors.workspace = true
|
|
license.workspace = true
|
|
repository.workspace = true
|
|
homepage.workspace = true
|
|
description = "Terminal User Interface for OWLEN LLM client"
|
|
|
|
[dependencies]
|
|
owlen-core = { path = "../owlen-core" }
|
|
# Removed owlen-ollama dependency - all providers now accessed via MCP architecture (Phase 10)
|
|
|
|
# TUI framework
|
|
ratatui = { workspace = true }
|
|
crossterm = { workspace = true }
|
|
tui-textarea = { workspace = true }
|
|
textwrap = { workspace = true }
|
|
unicode-width = "0.1"
|
|
async-trait = "0.1"
|
|
|
|
# Async runtime
|
|
tokio = { workspace = true }
|
|
tokio-util = { workspace = true }
|
|
futures-util = { workspace = true }
|
|
|
|
# Utilities
|
|
anyhow = { workspace = true }
|
|
uuid = { workspace = true }
|
|
serde_json.workspace = true
|
|
|
|
[dev-dependencies]
|
|
tokio-test = { workspace = true }
|
|
tempfile = { workspace = true }
|