use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize)]
#[serde(rename_all = "lowercase")]
pub enum DataSensitivity {
#[default]
None,
Low,
Medium,
High,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum CapabilityClass {
FilesystemRead,
FilesystemWrite,
Network,
Shell,
DatabaseRead,
DatabaseWrite,
MemoryWrite,
ExternalApi,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
pub struct FlaggedParameter {
pub path: String,
pub pattern_name: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct ToolSecurityMeta {
#[serde(default)]
pub data_sensitivity: DataSensitivity,
#[serde(default)]
pub capabilities: Vec<CapabilityClass>,
#[serde(default)]
pub flagged_parameters: Vec<FlaggedParameter>,
}