Skip to content

Thread stream events

ThreadStreamEvents are the Server-Sent Event (SSE) payloads streamed by ChatKitServer while responding to a user message or action. They keep the client UI in sync with server-side processing and drive persistence in your store.

Thread metadata updates

ChatKitServer emits these after it creates a thread or notices metadata changes (title, status, etc.) so the UI stays in sync.

Thread item events

Thread item events drive the conversation state. ChatKitServer processes these events to persist conversation state before streaming them back to the client.

Note: ThreadItemAddedEvent does not persist the item. ChatKitServer saves on ThreadItemDoneEvent/ThreadItemReplacedEvent, tracks pending items in between, and handles store writes for all ThreadItem*Events.

Errors

Stream ErrorEvents for user-facing errors in the chat UI. You can configure a custom message and whether a retry button is shown to the user.

Progress updates

Stream ProgressUpdateEvents to show the user transient status while work is in flight.

See Show progress while tools run for more info.

Client effects

Use ClientEffectEvent to trigger fire-and-forget behavior on the client such as opening a dialog or pushing updates.

See Trigger client-side effects without blocking for more info.

Stream options

StreamOptionsEvent configures runtime stream behavior (for example, allowing user cancellation). ChatKitServer emits one at the start of every stream using get_stream_options; override that method to change defaults such as allow_cancel.