forge-guardrails 0.1.2

Foundation types for an LLM-agent workflow framework
Documentation
#[derive(Debug, Clone, Copy)]
pub(crate) struct Ablation {
    pub(crate) rescue_enabled: bool,
    pub(crate) max_retries: i32,
    pub(crate) use_required_steps: bool,
}

pub(crate) fn parse_ablation(name: &str) -> Result<Ablation, String> {
    let ablation = match name {
        "reforged" => Ablation {
            rescue_enabled: true,
            max_retries: 5,
            use_required_steps: true,
        },
        "no_rescue" => Ablation {
            rescue_enabled: false,
            max_retries: 5,
            use_required_steps: true,
        },
        "no_steps" => Ablation {
            rescue_enabled: true,
            max_retries: 5,
            use_required_steps: false,
        },
        "no_recovery" | "no_nudge" => Ablation {
            rescue_enabled: false,
            max_retries: 0,
            use_required_steps: true,
        },
        "bare" => Ablation {
            rescue_enabled: false,
            max_retries: 0,
            use_required_steps: false,
        },
        "no_compact" => Ablation {
            rescue_enabled: true,
            max_retries: 5,
            use_required_steps: true,
        },
        other => return Err(format!("unsupported ablation: {other}")),
    };
    Ok(ablation)
}