glean/stream
Types
pub type StreamEvent {
TextStart(id: String)
TextDelta(id: String, delta: String)
TextEnd(id: String)
ReasoningStart(id: String)
ReasoningDelta(id: String, delta: String)
ReasoningEnd(id: String)
ToolCallStart(
id: String,
tool_call_id: String,
tool_name: String,
)
ToolCallDelta(id: String, tool_call_id: String, delta: String)
ToolCallEnd(id: String, tool_call_id: String)
ToolResultEvent(
tool_call_id: String,
tool_name: String,
output: String,
)
ToolErrorEvent(
tool_call_id: String,
tool_name: String,
error: String,
)
StepStart(step: Int)
StepEnd(step: Int)
Finish(finish_reason: error.FinishReason, usage: Usage)
StreamError(message: String)
}
Constructors
-
TextStart(id: String) -
TextDelta(id: String, delta: String) -
TextEnd(id: String) -
ReasoningStart(id: String) -
ReasoningDelta(id: String, delta: String) -
ReasoningEnd(id: String) -
ToolCallStart( id: String, tool_call_id: String, tool_name: String, ) -
ToolCallDelta(id: String, tool_call_id: String, delta: String) -
ToolCallEnd(id: String, tool_call_id: String) -
ToolResultEvent( tool_call_id: String, tool_name: String, output: String, ) -
ToolErrorEvent( tool_call_id: String, tool_name: String, error: String, ) -
StepStart(step: Int) -
StepEnd(step: Int) -
Finish(finish_reason: error.FinishReason, usage: Usage) -
StreamError(message: String)
Values
pub fn collect_text(events: List(StreamEvent)) -> String
Accumulate all text deltas from a list of stream events into a single string.
pub fn collect_tool_calls(
events: List(StreamEvent),
) -> List(#(String, String, String))
Extract all completed tool calls from stream events. Returns a list of (tool_call_id, tool_name, arguments_json) tuples.