Skip to main content

agent_sdk_eval/
testing.rs

1//! Deterministic evaluator fakes for SDK consumers.
2
3use agent_sdk_core::AgentError;
4
5use crate::{EvaluationReport, EvaluationRequest, Evaluator, EvidenceBundle};
6
7#[derive(Clone, Debug)]
8/// Scripted evaluator that returns a prebuilt report after validating its
9/// confidence contract.
10pub struct ScriptedEvaluator {
11    report: EvaluationReport,
12}
13
14impl ScriptedEvaluator {
15    /// Creates a scripted evaluator from a fixed report.
16    pub fn new(report: EvaluationReport) -> Self {
17        Self { report }
18    }
19}
20
21impl Evaluator for ScriptedEvaluator {
22    fn evaluate(
23        &self,
24        request: &EvaluationRequest,
25        _evidence: &EvidenceBundle,
26    ) -> Result<EvaluationReport, AgentError> {
27        let mut report = self.report.clone();
28        report.metric_deltas = request.metric_deltas.clone();
29        report.validate_confidence_contract_for_request(request)?;
30        Ok(report)
31    }
32}