Generated from cargo doc --no-deps -p nemo-relay -p nemo-relay-adaptive -p nemo-relay-ffi.
Streaming counterpart to OpenAIResponsesCodec.
Replays the OpenAI Responses SSE event sequence into the same JSON shape the API returns for a non-streaming request ({id, model, status, output, usage, incomplete_details, ...}). Once finalized, the assembled JSON can be fed back through OpenAIResponsesCodec::decode_response to produce the canonical AnnotatedLlmResponse.
The Responses API is a relatively forgiving streaming target because every event carries either the full response snapshot (response.created, response.in_progress, response.completed, response.failed, response.incomplete) or the final-state output item (response.output_item.done). We:
response snapshot - terminal events (completed/failed/incomplete) typically carry the complete state including output, so we prefer those when present.output_index - output_item.done events deliver the final per-item state, used as a fallback when the terminal response.output is missing or empty.output_text.delta and function_call_arguments.delta events are ignored because their content is redelivered in the matching output_item.done event. Skipping deltas keeps the codec resilient to schema additions and avoids double-accumulation.Internal state lives behind Arc<Mutex<...>> so the &self-produced collector and finalizer closures share access. Each instance is single-use because LlmFinalizerFn consumes the finalize step.
impl OpenAIResponsesStreamingCodecimpl OpenAIResponsesStreamingCodec
newpub fn new() -> Self
Creates a fresh streaming codec with empty accumulator state.
impl Default for OpenAIResponsesStreamingCodecimpl Default for OpenAIResponsesStreamingCodec
defaultfn default() -> Self
impl StreamingCodec for OpenAIResponsesStreamingCodecimpl StreamingCodec for OpenAIResponsesStreamingCodec
collectorfn collector(&self) -> LlmCollectorFn
finalizerfn finalizer(&self) -> LlmFinalizerFn