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 more