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)
pub type Usage {
  Usage(input_tokens: Int, output_tokens: Int)
}

Constructors

  • Usage(input_tokens: Int, output_tokens: Int)

Values

pub fn add_usage(a: Usage, b: Usage) -> Usage

Add usage from two Usage values together.

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.

pub fn zero_usage() -> Usage

Zero usage (useful as initial accumulator).

✨ Search Document