pub enum Event {
Show 45 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,
},
WorkspaceLifecycle {
run_id: FlowRunId,
workspace_id: String,
path: String,
state: String,
cleanup_error: Option<String>,
},
LlmCall {Show 17 fields
model: String,
provider: String,
context_plan_id: Option<ContextPlanId>,
context_epoch: Option<ContextEpoch>,
context_tokens: Option<ContextTokenLanes>,
usage_source: Option<TokenUsageSource>,
context_call_purpose: Option<ContextCallPurpose>,
context_call_identity: Option<ContextCallIdentity>,
context_cache: Option<ContextCacheObservation>,
assistant_tool_batch_width: Option<u64>,
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,
},
ToolResultMetrics {
turn_id: TurnId,
flow_run_id: Option<FlowRunId>,
tool_use_id: String,
raw_bytes: u64,
excerpt_bytes: u64,
truncated: bool,
},
DiffPreview {
turn_id: Option<TurnId>,
flow_run_id: Option<FlowRunId>,
tool_use_id: Option<String>,
title: String,
old_content: Option<String>,
new_content: Option<String>,
unified_diff: Option<String>,
},
FileEditApplied {
turn_id: Option<TurnId>,
flow_run_id: Option<FlowRunId>,
tool_use_id: Option<String>,
tool_name: String,
path: String,
metrics: EditMetrics,
},
CompactionSummary {
session_id: String,
flow_run_id: Option<FlowRunId>,
range_start: u64,
range_end: u64,
compacted_count: usize,
before_tokens: u64,
after_tokens: u64,
summary: String,
},
SystemMsg {
turn_id: TurnId,
flow_run_id: Option<FlowRunId>,
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,
flow_run_id: Option<FlowRunId>,
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,
flow_run_id: Option<FlowRunId>,
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,
call_intent: Option<ToolCallIntent>,
},
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,
},
PermissionRequestCreated {
payload: PermissionRequestAudit,
},
PermissionRequestTargeted {
payload: PermissionRequestAudit,
},
PermissionRequestDeferred {
payload: PermissionRequestAudit,
},
PermissionRequestApproved {
payload: PermissionRequestAudit,
},
PermissionRequestDenied {
payload: PermissionRequestAudit,
},
PermissionRequestCancelled {
payload: PermissionRequestAudit,
},
PermissionGroupCreated {
payload: PermissionGroupAudit,
},
PermissionGroupUpdated {
payload: PermissionGroupAudit,
},
PermissionGroupResolved {
payload: PermissionGroupAudit,
},
PermissionGrantCreated {
payload: PermissionGrantAudit,
},
PermissionGrantExpired {
payload: PermissionGrantAudit,
},
UnrestrictedExecution {
payload: PermissionRequestAudit,
},
TerminalFinalState {
handle: String,
screen: TerminalScreen,
state: TermStateSnapshot,
},
MermaidDiagram {
source: String,
},
}Variants§
FlowStart
Fields
FlowEnd
WorkspaceLifecycle
Fields
LlmCall
Fields
§
context_plan_id: Option<ContextPlanId>§
context_epoch: Option<ContextEpoch>§
context_tokens: Option<ContextTokenLanes>§
usage_source: Option<TokenUsageSource>§
context_call_purpose: Option<ContextCallPurpose>§
context_call_identity: Option<ContextCallIdentity>§
context_cache: Option<ContextCacheObservation>§
usage: TokenUsage§
status: LlmCallStatusTurnStart
TurnEnd
UserMsg
AssistantMsg
ToolResultMsg
ToolResultMetrics
Fields
DiffPreview
Fields
FileEditApplied
Fields
§
metrics: EditMetricsCompactionSummary
Fields
SystemMsg
UserInject
ContentFilterHit
Fields
ContextCompact
Fields
Checkpoint
ContextTruncated
Fields
WatchWarn
Fields
LlmPartialCall
Fields
PendingPrompt
PromptResolved
FlowGraph
FlowNodeStart
Fields
FlowNodeEnd
ToolNode
Fields
§
call_intent: Option<ToolCallIntent>AttachmentDegraded
Fields
ToolPendingApproval
Fields
ToolApproved
ToolDenied
PermissionRequestCreated
Fields
§
payload: PermissionRequestAuditPermissionRequestTargeted
Fields
§
payload: PermissionRequestAuditPermissionRequestDeferred
Fields
§
payload: PermissionRequestAuditPermissionRequestApproved
Fields
§
payload: PermissionRequestAuditPermissionRequestDenied
Fields
§
payload: PermissionRequestAuditPermissionRequestCancelled
Fields
§
payload: PermissionRequestAuditPermissionGroupCreated
Fields
§
payload: PermissionGroupAuditPermissionGroupUpdated
Fields
§
payload: PermissionGroupAuditPermissionGroupResolved
Fields
§
payload: PermissionGroupAuditPermissionGrantCreated
Fields
§
payload: PermissionGrantAuditPermissionGrantExpired
Fields
§
payload: PermissionGrantAuditUnrestrictedExecution
Fields
§
payload: PermissionRequestAuditTerminalFinalState
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
Source§impl From<PermissionAuditRecord> for Event
impl From<PermissionAuditRecord> for Event
Source§fn from(record: PermissionAuditRecord) -> Self
fn from(record: PermissionAuditRecord) -> Self
Converts to this type from the input type.
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.