use crate::runtime::RuntimeProfile; #[derive(Debug, Clone, PartialEq, Eq)] pub struct ToolPolicy { pub requires_browser_surface: bool, pub may_use_non_browser_tools: bool, pub allowed_tools: Vec, } impl ToolPolicy { pub fn for_profile(profile: RuntimeProfile) -> Self { match profile { RuntimeProfile::BrowserAttached => Self { requires_browser_surface: false, may_use_non_browser_tools: true, allowed_tools: vec!["superrpa_browser".to_string(), "browser_action".to_string()], }, RuntimeProfile::BrowserHeavy => Self { requires_browser_surface: true, may_use_non_browser_tools: true, allowed_tools: vec!["superrpa_browser".to_string(), "browser_action".to_string()], }, RuntimeProfile::GeneralAssistant => Self { requires_browser_surface: false, may_use_non_browser_tools: true, allowed_tools: Vec::new(), }, } } }