pub enum UiMessage {
TextChunk {
session_id: i64,
turn_id: Option<TurnId>,
text: String,
input_tokens: i64,
output_tokens: i64,
},
Display {
session_id: i64,
turn_id: Option<TurnId>,
message: String,
},
ToolExecuting {
session_id: i64,
turn_id: Option<TurnId>,
tool_use_id: String,
display_name: String,
display_title: String,
},
ToolCompleted {
session_id: i64,
turn_id: Option<TurnId>,
tool_use_id: String,
status: ToolResultStatus,
error: Option<String>,
},
Complete {
session_id: i64,
turn_id: Option<TurnId>,
input_tokens: i64,
output_tokens: i64,
stop_reason: Option<String>,
},
TokenUpdate {
session_id: i64,
turn_id: Option<TurnId>,
input_tokens: i64,
output_tokens: i64,
context_limit: i32,
},
Error {
session_id: i64,
turn_id: Option<TurnId>,
error: String,
},
System {
session_id: i64,
message: String,
},
CommandComplete {
session_id: i64,
command: ControlCmd,
success: bool,
message: Option<String>,
},
UserInteractionRequired {
session_id: i64,
tool_use_id: String,
request: AskUserQuestionsRequest,
turn_id: Option<TurnId>,
},
PermissionRequired {
session_id: i64,
tool_use_id: String,
request: PermissionRequest,
turn_id: Option<TurnId>,
},
BatchPermissionRequired {
session_id: i64,
batch: BatchPermissionRequest,
turn_id: Option<TurnId>,
},
}Expand description
Messages sent from the controller to the TUI for display
Variants§
TextChunk
Streaming text chunk from LLM response
Display
General display message (tool status, info, etc.)
ToolExecuting
Tool execution has started
Fields
ToolCompleted
Tool execution has completed
Fields
§
status: ToolResultStatusComplete
LLM response is complete
Fields
TokenUpdate
Real-time token count update
Fields
Error
Error from the controller
System
System message (TUI-local, not from controller)
CommandComplete
Control command completed
UserInteractionRequired
Tool is blocked waiting for user interaction (e.g., AskUserQuestions)
PermissionRequired
Tool is blocked waiting for permission (e.g., AskForPermissions)
BatchPermissionRequired
Multiple tools are blocked waiting for batch permission. This is used when parallel tools need permissions - presenting all requests together avoids deadlocks and allows the user to make informed decisions.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for UiMessage
impl RefUnwindSafe for UiMessage
impl Send for UiMessage
impl Sync for UiMessage
impl Unpin for UiMessage
impl UnwindSafe for UiMessage
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