pub enum Event {
Show 30 variants
FlowStart {
run_id: FlowRunId,
flow_name: String,
parent_run_id: Option<FlowRunId>,
parent_node_id: Option<String>,
spawned: bool,
},
FlowEnd {
run_id: FlowRunId,
flow_name: String,
status: FlowStatus,
},
LlmCall {
model: String,
provider: String,
usage: TokenUsage,
wallclock_ms: u64,
ttft_ms: Option<u64>,
tokens_per_second: Option<f64>,
status: LlmCallStatus,
run_id: Option<FlowRunId>,
node_id: Option<String>,
},
TurnStart {
turn_id: TurnId,
},
TurnEnd {
turn_id: TurnId,
},
UserMsg {
turn_id: TurnId,
flow_run_id: Option<FlowRunId>,
message: Message,
},
AssistantMsg {
turn_id: TurnId,
flow_run_id: Option<FlowRunId>,
message: Message,
},
ToolResultMsg {
turn_id: TurnId,
flow_run_id: Option<FlowRunId>,
message: Message,
},
DiffPreview {
turn_id: Option<TurnId>,
flow_run_id: Option<FlowRunId>,
title: String,
old_content: Option<String>,
new_content: Option<String>,
unified_diff: Option<String>,
},
CompactionSummary {
session_id: String,
range_start: u64,
range_end: u64,
compacted_count: usize,
before_tokens: u64,
after_tokens: u64,
summary: String,
},
SystemMsg {
turn_id: TurnId,
message: Message,
},
UserInject {
turn_id: TurnId,
injection: Injection,
},
ContentFilterHit {
turn_id: Option<TurnId>,
flow_run_id: Option<FlowRunId>,
provider: String,
model: String,
category: String,
action: String,
},
ContextCompact {
session_id: String,
before_tokens: u64,
after_tokens: u64,
compacted_range_start: u64,
compacted_range_end: u64,
summary_text: Option<String>,
replacement_msg_seq: Option<u64>,
},
Checkpoint {
session_id: String,
messages: Vec<Message>,
window_tokens: u64,
},
ContextTruncated {
turn_id: Option<TurnId>,
flow_run_id: Option<FlowRunId>,
original_chars: u64,
result_chars: u64,
dropped_chars: u64,
budget_tokens: u64,
},
WatchWarn {
turn_id: Option<TurnId>,
flow_run_id: Option<FlowRunId>,
target: String,
trigger: String,
message: String,
},
LlmPartialCall {
turn_id: Option<TurnId>,
flow_run_id: Option<FlowRunId>,
model: String,
provider: String,
tokens_before_abort: u64,
restart_reason: String,
},
PendingPrompt {
prompt_id: Uuid,
kind: String,
payload: Value,
},
PromptResolved {
prompt_id: Uuid,
answer: Value,
},
FlowGraph {
run_id: FlowRunId,
graph: FlowGraph,
},
FlowNodeStart {
run_id: FlowRunId,
node_id: String,
kind: NodeKind,
label: String,
parent_node_id: Option<String>,
},
FlowNodeEnd {
run_id: FlowRunId,
node_id: String,
status: FlowNodeStatus,
output_preview: Option<String>,
},
ToolNode {
run_id: FlowRunId,
parent_node_id: String,
tool_use_id: String,
tool_name: String,
args_preview: String,
},
AttachmentDegraded {
turn_id: Option<TurnId>,
flow_run_id: Option<FlowRunId>,
message_seq: u64,
part_index: usize,
file_basename: String,
reason: String,
},
ToolPendingApproval {
run_id: FlowRunId,
tool_use_id: String,
tool_name: String,
args_preview: String,
level: String,
preview: Option<String>,
},
ToolApproved {
run_id: FlowRunId,
tool_use_id: String,
decided_by: String,
},
ToolDenied {
run_id: FlowRunId,
tool_use_id: String,
reason: String,
},
TerminalFinalState {
handle: String,
screen: TerminalScreen,
state: TermStateSnapshot,
},
MermaidDiagram {
source: String,
},
}Variants§
FlowStart
Fields
FlowEnd
LlmCall
TurnStart
TurnEnd
UserMsg
AssistantMsg
ToolResultMsg
DiffPreview
Fields
CompactionSummary
Fields
SystemMsg
UserInject
ContentFilterHit
Fields
ContextCompact
Fields
Checkpoint
ContextTruncated
Fields
WatchWarn
Fields
LlmPartialCall
Fields
PendingPrompt
PromptResolved
FlowGraph
FlowNodeStart
Fields
FlowNodeEnd
ToolNode
Fields
AttachmentDegraded
Fields
ToolPendingApproval
Fields
ToolApproved
ToolDenied
TerminalFinalState
Persisted when a terminal’s reader loop exits (normal exit or kill). Carries the last screen state so TUI restore can show it instead of the empty placeholder from the spawn-time ToolResultMsg.
MermaidDiagram
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Event
impl<'de> Deserialize<'de> for Event
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>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for Event
impl RefUnwindSafe for Event
impl Send for Event
impl Sync for Event
impl Unpin for Event
impl UnsafeUnpin for Event
impl UnwindSafe for Event
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
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>
Convert
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>
Convert
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)
Convert
&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)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.