openairesponsestream

package
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 5, 2026 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CallIDFromRawJSON

func CallIDFromRawJSON(rawJSON string) string

func EmitOutputMediaFromResponse

func EmitOutputMediaFromResponse(m *Mapper, resp responses.Response) error

EmitOutputMediaFromResponse maps assistant message media in a completed Responses payload.

func FunctionNameFromRawJSON

func FunctionNameFromRawJSON(rawJSON string) string

FunctionNameFromRawJSON reads the function name carried by response.function_call_arguments.done payloads. The typed event does not expose the field, but compatible backends still send it.

func ToolCallID

func ToolCallID(primary, fallback string) string

func ToolCallIDFromRaw

func ToolCallIDFromRaw(itemID, rawJSON string) string

Types

type Mapper

type Mapper struct {
	// contains filtered or unexported fields
}

Mapper is not concurrency-safe; callers must serialize Handle calls on a single instance. It holds mutable per-stream state including tool-call tracking maps.

func New

func New(pending *stream.PendingEventQueue) *Mapper

func (*Mapper) AbortReasoningAssembly

func (m *Mapper) AbortReasoningAssembly()

AbortReasoningAssembly drops in-flight drafts without error (upstream cancel/error path).

func (*Mapper) BeginCompleted

func (m *Mapper) BeginCompleted() error

func (*Mapper) CompletedTextFallback

func (m *Mapper) CompletedTextFallback(text string) error

func (*Mapper) EmitCompletedOutputByIndex

func (m *Mapper) EmitCompletedOutputByIndex(resp responses.Response) error

EmitCompletedOutputByIndex emits completed-response output in structural output_index order: reasoning exact parts interleaved with message text fallback (and media) relative to other items.

func (*Mapper) EmitCompletedReasoningItems

func (m *Mapper) EmitCompletedReasoningItems(resp responses.Response) error

EmitCompletedReasoningItems emits any not-yet-emitted valid reasoning items by output index.

func (*Mapper) EmitCompletedToolCall

func (m *Mapper) EmitCompletedToolCall(id, name, arguments string) error

func (*Mapper) EmitToolCallFinished

func (m *Mapper) EmitToolCallFinished(id string) error

func (*Mapper) EnsureMessageStarted

func (m *Mapper) EnsureMessageStarted() error

func (*Mapper) EnsureResponseStarted

func (m *Mapper) EnsureResponseStarted() error

func (*Mapper) FinalizeOnEOF

func (m *Mapper) FinalizeOnEOF() error

FinalizeOnEOF fails closed when reasoning drafts remain open/ready/awaitingCompleted without response.completed. Streams with no reasoning drafts return nil. After a successful completed reconcile, this is a no-op.

func (*Mapper) FinishToolCallArguments

func (m *Mapper) FinishToolCallArguments(id, name, arguments string) error

func (*Mapper) OutputTextDelta

func (m *Mapper) OutputTextDelta(delta string) error

func (*Mapper) PushUsage

func (m *Mapper) PushUsage(usage *lipapi.Event) error

func (*Mapper) ReasoningDelta

func (m *Mapper) ReasoningDelta(delta string) error

ReasoningDelta enqueues a reasoning text delta. ensureMessageStarted is not message-content coupling: the canonical event sequence contract (lipapi.ValidateEventSequence) treats EventReasoningDelta as a content-class event that requires a preceding EventMessageStarted, so the mapper must open the message frame before reasoning exactly as it does for text and tool calls. Dropping it would produce streams that fail sequence validation ("reasoning_delta before message_started").

func (*Mapper) ReasoningOutputItemAdded

func (m *Mapper) ReasoningOutputItemAdded(outputIndex int64, item responses.ResponseOutputItemUnion) error

ReasoningOutputItemAdded opens mapper-private assembly for a reasoning item.

func (*Mapper) ReasoningOutputItemDone

func (m *Mapper) ReasoningOutputItemDone(outputIndex int64, item responses.ResponseOutputItemUnion) error

ReasoningOutputItemDone validates and queues one terminal EventReasoningPart when legal.

func (*Mapper) ReasoningSummaryPartAdded

func (m *Mapper) ReasoningSummaryPartAdded(itemID string, outputIndex, summaryIndex int64, text string) error

ReasoningSummaryPartAdded records a typed summary slot without canonical emission.

func (*Mapper) ReasoningSummaryPartDone

func (m *Mapper) ReasoningSummaryPartDone(itemID string, outputIndex, summaryIndex int64, text string) error

ReasoningSummaryPartDone sets the authoritative summary part text for an index.

func (*Mapper) ReasoningSummaryTextDelta

func (m *Mapper) ReasoningSummaryTextDelta(itemID string, outputIndex, summaryIndex int64, delta string) error

ReasoningSummaryTextDelta appends provider-observed summary text for an index.

func (*Mapper) ReasoningSummaryTextDone

func (m *Mapper) ReasoningSummaryTextDone(itemID string, outputIndex, summaryIndex int64, text string) error

ReasoningSummaryTextDone sets summary text (does not append onto prior deltas).

func (*Mapper) ReasoningTextDelta

func (m *Mapper) ReasoningTextDelta(itemID string, outputIndex, contentIndex int64, delta string) error

ReasoningTextDelta appends provider-observed reasoning content text for an index.

func (*Mapper) ReasoningTextDone

func (m *Mapper) ReasoningTextDone(itemID string, outputIndex, contentIndex int64, text string) error

ReasoningTextDone sets reasoning content text (does not append onto prior deltas).

func (*Mapper) RemapToolCallID

func (m *Mapper) RemapToolCallID(oldID, newID string)

RemapToolCallID consolidates tool-call state buffered under oldID onto newID. It is used when a tool call's real call_id is learned after argument deltas were already buffered under the provisional item-only ID, so pending args and started/arg-delta/finished flags all move onto the canonical ID instead of fragmenting into two tool calls. Remapping is a no-op when no state exists under oldID.

func (*Mapper) ResponseCreated

func (m *Mapper) ResponseCreated() error

func (*Mapper) ResponseFinished

func (m *Mapper) ResponseFinished() error

func (*Mapper) SawResponseStarted

func (m *Mapper) SawResponseStarted() bool

func (*Mapper) SawTextDelta

func (m *Mapper) SawTextDelta() bool

func (*Mapper) StreamError

func (m *Mapper) StreamError(code, message, defaultMessage string) error

func (*Mapper) ToolCallAdded

func (m *Mapper) ToolCallAdded(id, name string) error

func (*Mapper) ToolCallArgsDelta

func (m *Mapper) ToolCallArgsDelta(id, delta string) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL