pub enum ProgressEvent {
Output(String),
Status(String),
Bytes {
done: u64,
total: Option<u64>,
},
Artifact {
mime: String,
data: Vec<u8>,
caption: Option<String>,
},
SubagentToolCall {
child_call_id: ToolCallId,
tool_name: String,
phase: SubagentPhase,
},
SubagentActivity(String),
SubagentTokens(usize),
}Expand description
Tool-side progress event. The reducer already knows ToolStarted
and ToolFinished; this carries everything in between (streaming
subprocess output, long-running download status, multimodal
artifacts like inline screenshots, and nested activity from
subagents).
Variants§
Output(String)
Partial stdout/stderr chunk.
Status(String)
Arbitrary status string for display.
Bytes
Byte-count progress for long downloads/transfers. total is
None when the producer doesn’t know the final size.
Artifact
Binary artifact produced mid-execution (screenshot preview,
generated file, etc.). MIME string determines routing in the
reducer — image/* attaches inline to the active assistant
message; anything else lands on the status line as a label.
SubagentToolCall
A child subagent just started or finished a tool call. Carries the CHILD’s call identity + tool name + phase so the parent UI can surface it without needing to recurse into the child’s event vocabulary.
SubagentActivity(String)
Coarse phase label for a child subagent (“starting…”, “thinking”, “replying”). Emitted only on phase CHANGE — never per stream chunk — so the parent status stays calm.
SubagentTokens(usize)
Cumulative output-token estimate for a child subagent’s current drive. Throttled at the source (≥500ms apart); powers the live per-agent token counters without per-chunk churn.
Trait Implementations§
Source§impl Clone for ProgressEvent
impl Clone for ProgressEvent
Source§fn clone(&self) -> ProgressEvent
fn clone(&self) -> ProgressEvent
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ProgressEvent
impl Debug for ProgressEvent
Source§impl<'de> Deserialize<'de> for ProgressEvent
impl<'de> Deserialize<'de> for ProgressEvent
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 ProgressEvent
impl RefUnwindSafe for ProgressEvent
impl Send for ProgressEvent
impl Sync for ProgressEvent
impl Unpin for ProgressEvent
impl UnsafeUnpin for ProgressEvent
impl UnwindSafe for ProgressEvent
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
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