pub fn evaluate_message(
message: &str,
engine: Option<&dyn DecisionEngine>,
settings: impl Into<GateSettings>,
) -> GateVerdictExpand description
Decide one message. The Stop hook and hikmah gate-explain both call this, so the benchmark
measures exactly the code path the hook runs.