feat(phase5): implement mode consolidation and tool availability system
Implements Phase 5 from the roadmap with complete mode-based tool filtering: - Add Mode enum (Chat/Code) with FromStr trait implementation - Extend Config with ModeConfig for per-mode tool availability - Update ToolRegistry to enforce mode-based filtering - Add --code/-c CLI argument to start in code mode - Implement TUI commands: :mode, :code, :chat, :tools - Add operating mode indicator to status line (💬/💻 badges) - Create comprehensive documentation in docs/phase5-mode-system.md Default configuration: - Chat mode: only web_search allowed - Code mode: all tools allowed (wildcard *) All code compiles cleanly with cargo clippy passing. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
use crate::mode::ModeConfig;
|
||||
use crate::provider::ProviderConfig;
|
||||
use crate::Result;
|
||||
use serde::{Deserialize, Serialize};
|
||||
@@ -38,6 +39,9 @@ pub struct Config {
|
||||
/// Per-tool configuration toggles
|
||||
#[serde(default)]
|
||||
pub tools: ToolSettings,
|
||||
/// Mode-specific tool availability configuration
|
||||
#[serde(default)]
|
||||
pub modes: ModeConfig,
|
||||
}
|
||||
|
||||
impl Default for Config {
|
||||
@@ -59,6 +63,7 @@ impl Default for Config {
|
||||
privacy: PrivacySettings::default(),
|
||||
security: SecuritySettings::default(),
|
||||
tools: ToolSettings::default(),
|
||||
modes: ModeConfig::default(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user