pig_protocol/codec/responses_stream

Pure accumulator for OpenAI Responses SSE event payloads.

Types

The pure state of a Responses stream.

pub opaque type Accumulator

Values

pub fn finish(
  accumulator: Accumulator,
) -> Result(inference.InferenceResult, error.AiError)

Finish a Responses stream and build its normalized result.

A terminal response event is mandatory. This distinguishes a provider response that completed from a connection that ended early.

pub fn new() -> Accumulator

Create an empty Responses accumulator.

pub fn push(
  accumulator: Accumulator,
  data: String,
) -> Result(
  #(Accumulator, List(inference.InferenceDelta)),
  error.AiError,
)

Apply one Responses SSE data: payload and return normalized deltas.

Unknown provider event types are ignored. Malformed supported events and provider error events are returned as normalized AiError values.

Search Document