pub enum Expected {
Show 16 variants
MustContain {
must_contain: Vec<String>,
},
MustNotContain {
must_not_contain: Vec<String>,
},
RegexMatch {
pattern: String,
flags: Vec<String>,
},
RegexNotMatch {
pattern: String,
flags: Vec<String>,
},
JsonSchema {
json_schema: String,
schema_file: Option<String>,
},
SemanticSimilarityTo {
semantic_similarity_to: String,
min_score: f64,
thresholding: Option<ThresholdingConfig>,
},
JudgeCriteria {
judge_criteria: Value,
},
Faithfulness {
min_score: f64,
rubric_version: Option<String>,
thresholding: Option<ThresholdingConfig>,
},
Relevance {
min_score: f64,
rubric_version: Option<String>,
thresholding: Option<ThresholdingConfig>,
},
ArgsValid {
policy: Option<String>,
schema: Option<Value>,
},
SequenceValid {
policy: Option<String>,
sequence: Option<Vec<String>>,
rules: Option<Vec<SequenceRule>>,
},
ToolBlocklist {
blocked: Vec<String>,
},
ToolDescriptionIntegrity {
pinned_tools: Vec<PinnedTool>,
},
ToolOutputValid {
schemas: Option<Value>,
},
ToolCollisionDetect {
trusted_servers: Vec<String>,
},
Reference {
path: String,
},
}Variants§
MustContain
MustNotContain
RegexMatch
RegexNotMatch
JsonSchema
SemanticSimilarityTo
JudgeCriteria
Faithfulness
Relevance
ArgsValid
SequenceValid
ToolBlocklist
ToolDescriptionIntegrity
Detect rug-pull attacks: verify tool descriptions/schemas match pinned expectations or remain consistent across multiple tool-list snapshots in the same trace.
Fields
pinned_tools: Vec<PinnedTool>Pin specific tool definitions. If empty, snapshot-based mutation detection is used.
ToolOutputValid
Validate tool call outputs against per-tool JSON schemas.
Fields
ToolCollisionDetect
Detect tool shadowing: same tool name registered by multiple servers.
Fields
Reference
Implementations§
Source§impl Expected
impl Expected
pub fn get_policy_path(&self) -> Option<&str>
Sourcepub fn thresholding_for_metric(
&self,
metric_name: &str,
) -> Option<&ThresholdingConfig>
pub fn thresholding_for_metric( &self, metric_name: &str, ) -> Option<&ThresholdingConfig>
Per-test thresholding for baseline regression (mode/max_drop) when this Expected variant matches the metric.
Trait Implementations§
Source§impl Default for Expected
impl Default for Expected
Source§fn default() -> Self
fn default() -> Self
NOTE: this default is vacuous — an empty must_contain makes the
must_contain metric pass unconditionally, because it has no substring to
look for. It exists only so TestCase can derive Default and so a test
whose checks live in assertions: can omit expected: entirely.
It must never be used as a parse fallback: an expected: block that fails
to parse is a hard config error (see model::serde), and a test that ends
up holding this value with no assertions is reported by the
W_CFG_VACUOUS_EXPECTED rule in assay validate.
Source§impl<'de> Deserialize<'de> for Expected
impl<'de> Deserialize<'de> for Expected
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for Expected
impl RefUnwindSafe for Expected
impl Send for Expected
impl Sync for Expected
impl Unpin for Expected
impl UnsafeUnpin for Expected
impl UnwindSafe for Expected
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more