pub struct FlowExplanation {
pub active: Vec<String>,
pub allowed_tools: Vec<String>,
pub blocked_tools: BTreeMap<String, String>,
pub missing_requirements: Vec<String>,
pub active_progress: BTreeMap<String, GuardTrace>,
}Expand description
A model-readable explanation of the current control-plane state — the
foundation of why did the assistant ask that?.
Produced by FlowMonitor::explain. Serialize so it can be surfaced to a
model, a devtool, or a log without the model driving control flow.
Fields§
§active: Vec<String>Steps eligible-but-not-done right now.
allowed_tools: Vec<String>Tools currently admitted.
blocked_tools: BTreeMap<String, String>Tools currently blocked, mapped to the reason.
missing_requirements: Vec<String>Required steps not yet done (drives repair).
active_progress: BTreeMap<String, GuardTrace>Per-active-step completion-guard truth trees: exactly which atom each
stuck step is waiting on. Terminal steps (no done guard) are absent.
Trait Implementations§
Source§impl Clone for FlowExplanation
impl Clone for FlowExplanation
Source§fn clone(&self) -> FlowExplanation
fn clone(&self) -> FlowExplanation
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for FlowExplanation
impl Debug for FlowExplanation
Auto Trait Implementations§
impl Freeze for FlowExplanation
impl RefUnwindSafe for FlowExplanation
impl Send for FlowExplanation
impl Sync for FlowExplanation
impl Unpin for FlowExplanation
impl UnwindSafe for FlowExplanation
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§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>
Converts
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>
Converts
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>
Wrap the input message
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>,
Applies the layer to a service and wraps it in [
Layered].