pub struct Validator {
pub limits: ValidationLimits,
}Expand description
Validates AgentOutput fields against configurable limits.
Uses clean_title for normalizing finding titles before length validation,
and configurable limits for field lengths and counts.
Fields§
§limits: ValidationLimitsActive validation limits.
Implementations§
Source§impl Validator
impl Validator
Sourcepub fn with_limits(limits: ValidationLimits) -> Self
pub fn with_limits(limits: ValidationLimits) -> Self
Creates a validator with custom limits.
Sourcepub fn validate(&self, output: &AgentOutput) -> Result<(), MagiError>
pub fn validate(&self, output: &AgentOutput) -> Result<(), MagiError>
Validates an AgentOutput, returning on first failure.
Checks in order: confidence, summary, reasoning, recommendation, findings.
Returns MagiError::Validation with a descriptive message on failure.
Sourcepub fn validate_mut(&self, output: &mut AgentOutput) -> Result<(), MagiError>
pub fn validate_mut(&self, output: &mut AgentOutput) -> Result<(), MagiError>
Validates output in place, replacing each finding’s title with its
cleaned form (see clean_title) before length validation.
This is the preferred entry point for pipelines that parse LLM responses, because it ensures downstream code sees titles in the canonical cleaned form used by the consensus engine.
§Atomicity
This method is atomic on error: it cleans and validates all finding titles
into a temporary buffer before committing any mutation to output. If any
validation check fails, output is left completely unchanged — no partial
title cleaning occurs.
§Errors
Returns MagiError::Validation on the first field that fails validation.
Validation order: confidence → summary → reasoning → recommendation →
findings (count, then each cleaned title/detail).
On error, output is not modified.