class LittleGhost::StreamEvent

StreamEvent gives every provider and interface the same language for live agent output. Consumers can handle text, reasoning, tools, usage, retries, and completion without branching on a provider SDK.

Providers emit events such as :message_start, :text_delta, :reasoning_delta, :tool_call_start, :tool_call_delta, :tool_call_stop, :usage, :model_retry, and :message_stop. The terminal event carries a ModelResponse in data[:response].

event = LittleGhost::StreamEvent.build(:text_delta, text: "Hello")
event.type        # => :text_delta
event.data[:text] # => "Hello"