pub enum LiveViolation {
FlowToolNotRegistered {
tool: String,
registered: Vec<String>,
},
PhasesWithoutInitialPhase {
phases: Vec<String>,
},
UnknownInitialPhase {
name: String,
defined: Vec<String>,
},
UnreachablePhase {
name: String,
},
UnknownTransitionTarget {
from: String,
target: String,
},
ToolsUnresolvedAtCheckTime {
count: usize,
},
}Expand description
A misconfiguration found in a Live builder, before
connecting.
The counterpart to ContractViolation for voice sessions. check_contracts
only ever saw AgentBuilder, so the configuration where cross-referencing
actually matters — phases, a governing flow, memory slots, watchers, all
naming each other by string — had no static check at all.
Variants§
FlowToolNotRegistered
A governing flow names a tool this session does not register.
Not inert: a step whose allow list contains only names that match
nothing denies every tool for as long as that step is active.
Fields
PhasesWithoutInitialPhase
Phases were configured but no initial phase was named, so every phase is silently discarded at connect and the session runs unphased.
UnknownInitialPhase
initial_phase names a phase that was never defined. The machine starts
in a state with no instruction, no tools and no transitions.
UnreachablePhase
A phase no transition targets and which is not the initial phase — it can never be entered.
UnknownTransitionTarget
A phase transition targets a phase that does not exist.
Fields
ToolsUnresolvedAtCheckTime
Some tools resolve over the network at connect, so name-based checks here are working from a partial registry.
Advisory, not an error: it reports that the check could not be complete, which is worth saying out loud rather than implying full coverage.
Trait Implementations§
Source§impl Clone for LiveViolation
impl Clone for LiveViolation
Source§fn clone(&self) -> LiveViolation
fn clone(&self) -> LiveViolation
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for LiveViolation
impl Debug for LiveViolation
Source§impl Display for LiveViolation
impl Display for LiveViolation
Source§impl PartialEq for LiveViolation
impl PartialEq for LiveViolation
impl StructuralPartialEq for LiveViolation
Auto Trait Implementations§
impl Freeze for LiveViolation
impl RefUnwindSafe for LiveViolation
impl Send for LiveViolation
impl Sync for LiveViolation
impl Unpin for LiveViolation
impl UnwindSafe for LiveViolation
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<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Layered].