Documentation
¶
Index ¶
- func ApplyChunk(state *UIState, chunk map[string]any)
- func RecordApprovalResponse(state *UIState, approvalID, toolCallID string, approved bool, reason string)
- func SnapshotCanonicalUIMessage(state *UIState) map[string]any
- func ToolDisplayTitle(toolName string) string
- type Emitter
- func (e *Emitter) EmitUIAbort(ctx context.Context, portal *bridgev2.Portal, reason string)
- func (e *Emitter) EmitUIError(ctx context.Context, portal *bridgev2.Portal, errText string)
- func (e *Emitter) EmitUIFile(ctx context.Context, portal *bridgev2.Portal, fileURL, mediaType string)
- func (e *Emitter) EmitUIFinish(ctx context.Context, portal *bridgev2.Portal, finishReason string, ...)
- func (e *Emitter) EmitUIMessageMetadata(ctx context.Context, portal *bridgev2.Portal, metadata map[string]any)
- func (e *Emitter) EmitUIReasoningDelta(ctx context.Context, portal *bridgev2.Portal, delta string)
- func (e *Emitter) EmitUISourceDocument(ctx context.Context, portal *bridgev2.Portal, doc citations.SourceDocument)
- func (e *Emitter) EmitUISourceURL(ctx context.Context, portal *bridgev2.Portal, ...)
- func (e *Emitter) EmitUIStart(ctx context.Context, portal *bridgev2.Portal, messageMetadata map[string]any)
- func (e *Emitter) EmitUIStepFinish(ctx context.Context, portal *bridgev2.Portal)
- func (e *Emitter) EmitUIStepStart(ctx context.Context, portal *bridgev2.Portal)
- func (e *Emitter) EmitUITextDelta(ctx context.Context, portal *bridgev2.Portal, delta string)
- func (e *Emitter) EmitUIToolApprovalRequest(ctx context.Context, portal *bridgev2.Portal, ...)
- func (e *Emitter) EmitUIToolInputAvailable(ctx context.Context, portal *bridgev2.Portal, toolCallID, toolName string, ...)
- func (e *Emitter) EmitUIToolInputDelta(ctx context.Context, portal *bridgev2.Portal, ...)
- func (e *Emitter) EmitUIToolInputError(ctx context.Context, portal *bridgev2.Portal, toolCallID, toolName string, ...)
- func (e *Emitter) EmitUIToolOutputAvailable(ctx context.Context, portal *bridgev2.Portal, toolCallID string, output any, ...)
- func (e *Emitter) EmitUIToolOutputDenied(ctx context.Context, portal *bridgev2.Portal, toolCallID string)
- func (e *Emitter) EmitUIToolOutputError(ctx context.Context, portal *bridgev2.Portal, toolCallID, errorText string, ...)
- func (e *Emitter) EnsureUIReasoning(ctx context.Context, portal *bridgev2.Portal)
- func (e *Emitter) EnsureUIText(ctx context.Context, portal *bridgev2.Portal)
- func (e *Emitter) EnsureUIToolInputStart(ctx context.Context, portal *bridgev2.Portal, toolCallID, toolName string, ...)
- type UIState
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ApplyChunk ¶
func RecordApprovalResponse ¶
func ToolDisplayTitle ¶
ToolDisplayTitle returns toolName or a fallback "tool" for display.
Types ¶
type Emitter ¶
type Emitter struct {
State *UIState
Emit func(ctx context.Context, portal *bridgev2.Portal, part map[string]any)
}
Emitter provides shared UI stream event emission. Bridges supply the Emit callback which delegates to bridge-specific transport.
func (*Emitter) EmitUIAbort ¶
EmitUIAbort sends an "abort" event.
func (*Emitter) EmitUIError ¶
EmitUIError sends an "error" event.
func (*Emitter) EmitUIFile ¶
func (e *Emitter) EmitUIFile(ctx context.Context, portal *bridgev2.Portal, fileURL, mediaType string)
EmitUIFile sends a "file" event (deduplicated by URL).
func (*Emitter) EmitUIFinish ¶
func (e *Emitter) EmitUIFinish(ctx context.Context, portal *bridgev2.Portal, finishReason string, messageMetadata map[string]any)
EmitUIFinish closes any open text/reasoning/step, finalises pending tools, and sends the "finish" event.
func (*Emitter) EmitUIMessageMetadata ¶
func (e *Emitter) EmitUIMessageMetadata(ctx context.Context, portal *bridgev2.Portal, metadata map[string]any)
EmitUIMessageMetadata sends a "message-metadata" event.
func (*Emitter) EmitUIReasoningDelta ¶
EmitUIReasoningDelta sends a "reasoning-delta" event, ensuring reasoning has started.
func (*Emitter) EmitUISourceDocument ¶
func (e *Emitter) EmitUISourceDocument(ctx context.Context, portal *bridgev2.Portal, doc citations.SourceDocument)
EmitUISourceDocument sends a "source-document" event (deduplicated by id/filename/title).
func (*Emitter) EmitUISourceURL ¶
func (e *Emitter) EmitUISourceURL(ctx context.Context, portal *bridgev2.Portal, citation citations.SourceCitation)
EmitUISourceURL sends a "source-url" event (deduplicated by URL).
func (*Emitter) EmitUIStart ¶
func (e *Emitter) EmitUIStart(ctx context.Context, portal *bridgev2.Portal, messageMetadata map[string]any)
EmitUIStart sends the "start" event.
func (*Emitter) EmitUIStepFinish ¶
EmitUIStepFinish sends a "finish-step" event (no-op if no step is open).
func (*Emitter) EmitUIStepStart ¶
EmitUIStepStart sends a "start-step" event (idempotent while a step is open).
func (*Emitter) EmitUITextDelta ¶
EmitUITextDelta sends a "text-delta" event, ensuring text has started.
func (*Emitter) EmitUIToolApprovalRequest ¶
func (e *Emitter) EmitUIToolApprovalRequest( ctx context.Context, portal *bridgev2.Portal, approvalID, toolCallID, toolName string, ttlSeconds int, )
EmitUIToolApprovalRequest sends a "tool-approval-request" event.
func (*Emitter) EmitUIToolInputAvailable ¶
func (e *Emitter) EmitUIToolInputAvailable(ctx context.Context, portal *bridgev2.Portal, toolCallID, toolName string, input any, providerExecuted bool)
EmitUIToolInputAvailable sends a "tool-input-available" event.
func (*Emitter) EmitUIToolInputDelta ¶
func (e *Emitter) EmitUIToolInputDelta(ctx context.Context, portal *bridgev2.Portal, toolCallID, toolName, delta string, providerExecuted bool)
EmitUIToolInputDelta sends a "tool-input-delta" event.
func (*Emitter) EmitUIToolInputError ¶
func (e *Emitter) EmitUIToolInputError( ctx context.Context, portal *bridgev2.Portal, toolCallID, toolName string, input any, errorText string, providerExecuted, dynamic bool, )
EmitUIToolInputError sends a "tool-input-error" event.
func (*Emitter) EmitUIToolOutputAvailable ¶
func (e *Emitter) EmitUIToolOutputAvailable(ctx context.Context, portal *bridgev2.Portal, toolCallID string, output any, providerExecuted, preliminary bool)
EmitUIToolOutputAvailable sends a "tool-output-available" event.
func (*Emitter) EmitUIToolOutputDenied ¶
func (e *Emitter) EmitUIToolOutputDenied(ctx context.Context, portal *bridgev2.Portal, toolCallID string)
EmitUIToolOutputDenied sends a "tool-output-denied" event.
func (*Emitter) EmitUIToolOutputError ¶
func (e *Emitter) EmitUIToolOutputError(ctx context.Context, portal *bridgev2.Portal, toolCallID, errorText string, providerExecuted bool)
EmitUIToolOutputError sends a "tool-output-error" event.
func (*Emitter) EnsureUIReasoning ¶
EnsureUIReasoning sends "reasoning-start" the first time it's called for a turn.
func (*Emitter) EnsureUIText ¶
EnsureUIText sends "text-start" the first time it's called for a turn.
func (*Emitter) EnsureUIToolInputStart ¶
func (e *Emitter) EnsureUIToolInputStart( ctx context.Context, portal *bridgev2.Portal, toolCallID, toolName string, providerExecuted, dynamic bool, title string, providerMetadata map[string]any, )
EnsureUIToolInputStart sends "tool-input-start" once per toolCallID.
type UIState ¶
type UIState struct {
TurnID string
UIStarted bool
UIFinished bool
UITextID string
UIReasoningID string
UIStepOpen bool
UIStepCount int
UICanonicalMessage map[string]any
UIToolStarted map[string]bool
UISourceURLSeen map[string]bool
UISourceDocumentSeen map[string]bool
UIFileSeen map[string]bool
UIToolOutputFinalized map[string]bool
UIToolCallIDByApproval map[string]string
UIToolApprovalRequested map[string]bool
UIToolNameByToolCallID map[string]string
UIToolTypeByToolCallID map[string]matrixevents.ToolType
UITextPartIndexByID map[string]int
UIReasoningPartIndexByID map[string]int
UIToolPartIndexByID map[string]int
UIToolInputTextByID map[string]string
}
UIState tracks AI SDK UIMessage stream state shared across bridges.