vv_agent/skills/validator/
mode.rs1use super::super::errors::SkillValidationError;
2
3pub const DEFAULT_VALIDATION_MODE: &str = "strict";
4pub const VALIDATION_MODES: [&str; 3] = ["strict", "relaxed", "minimal"];
5
6#[derive(Debug, Clone, Copy, PartialEq, Eq)]
7pub enum ValidationMode {
8 Strict,
9 Relaxed,
10 Minimal,
11}
12
13impl ValidationMode {
14 pub fn as_str(self) -> &'static str {
15 match self {
16 Self::Strict => "strict",
17 Self::Relaxed => "relaxed",
18 Self::Minimal => "minimal",
19 }
20 }
21}
22
23pub fn normalize_validation_mode(
24 validation_mode: Option<&str>,
25) -> Result<ValidationMode, SkillValidationError> {
26 match validation_mode
27 .unwrap_or(DEFAULT_VALIDATION_MODE)
28 .trim()
29 .to_ascii_lowercase()
30 .as_str()
31 {
32 "strict" => Ok(ValidationMode::Strict),
33 "relaxed" => Ok(ValidationMode::Relaxed),
34 "minimal" => Ok(ValidationMode::Minimal),
35 other => Err(SkillValidationError::new(format!(
36 "Unsupported validation mode '{other}'. Expected one of [strict, relaxed, minimal]."
37 ))),
38 }
39}