pub enum ChatEvent {
MessageAdded(ChatMessage),
UserMessageSubmitted {
item_id: ChatItemId,
request_id: ChatRequestId,
text: String,
},
AssistantMessageStarted {
item_id: ChatItemId,
request_id: ChatRequestId,
kind: ChatMessageKind,
},
AssistantMessageDelta {
item_id: ChatItemId,
delta: String,
},
AssistantMessageFinished {
item_id: ChatItemId,
},
RequestStarted {
request_id: ChatRequestId,
},
RequestFinished {
request_id: ChatRequestId,
},
StatusChanged(ChatSessionStatus),
Failed {
message: String,
},
}Expand description
Incremental change understood by ChatSessionState::apply_event.
§Examples
use ailloli_ui_core::{ChatEvent, ChatRequestId};
let event = ChatEvent::RequestStarted {
request_id: ChatRequestId::from_index(3),
};
assert!(matches!(event, ChatEvent::RequestStarted { .. }));Variants§
MessageAdded(ChatMessage)
Upserts a complete caller-constructed item and marks the session ready.
UserMessageSubmitted
Adds/replaces a user text item and starts the correlated request.
Fields
item_id: ChatItemIdStable ID of the user item.
request_id: ChatRequestIdRequest that becomes active.
AssistantMessageStarted
Creates/replaces an empty streaming assistant item and starts its request.
Fields
item_id: ChatItemIdStable ID of the assistant item.
request_id: ChatRequestIdRequest that becomes active and is attached to the item.
kind: ChatMessageKindPresentation category of the streamed item.
AssistantMessageDelta
Appends a UTF-8 fragment to an assistant item, creating it if absent.
Fields
item_id: ChatItemIdStable ID of the assistant item.
AssistantMessageFinished
Marks an existing item complete and ends the active session request.
Fields
item_id: ChatItemIdItem to finish; an unknown ID still completes the session.
RequestStarted
Starts tracking a request and clears the previous session error.
Fields
request_id: ChatRequestIdRequest that becomes active.
RequestFinished
Marks the session completed and conditionally clears a matching request.
Fields
request_id: ChatRequestIdCompleted request; a non-matching ID leaves active_request intact.
StatusChanged(ChatSessionStatus)
Replaces only the aggregate session status.
Failed
Records a session-level failure and clears the active request.