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<String>,
}

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(),
            },
        }
    }
}
