use crate::PermissionOption;
#[derive(Default)]
pub struct HarnessEventFlags {
pub saw_failed_tool_since_prompt: bool,
pub saw_any_failed_tool: bool,
pub saw_config_update: bool,
}
pub fn choose_permission_option(
options: &[PermissionOption],
auto_approve: bool,
) -> Option<(&str, &str)> {
if !auto_approve {
return None;
}
let preferred = options.iter().find(|o| {
matches!(
o.kind.as_deref(),
Some("allow") | Some("approve") | Some("accept")
) || o.name.to_ascii_lowercase().contains("allow")
|| o.name.to_ascii_lowercase().contains("approve")
|| o.name.to_ascii_lowercase().contains("accept")
});
let option = preferred.or_else(|| options.first())?;
Some((option.option_id.as_str(), option.name.as_str()))
}