realtime

package module
v0.0.0-...-c9c4fc0 Latest Latest
Warning

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

Go to latest
Published: Oct 15, 2025 License: Apache-2.0 Imports: 16 Imported by: 0

README ¶

Go Client Package for OpenAI Realtime Voice API

This repository provides a Go package for building applications that create real-time, two-way voice conversations with an AI assistant using the OpenAI Realtime API. It is designed to be imported into your own Go projects, providing the core functionality to handle microphone input, low-latency audio streaming, and session management.


Purpose 📦

This package abstracts away the complexity of the underlying WebRTC handshake and media streaming. By using this library, you can easily integrate OpenAI's real-time voice capabilities into your own applications without needing to manage the low-level details of the peer-to-peer connection and audio processing.


Key Features 🎤

  • Real-Time, Bidirectional Audio: Provides components to capture local microphone audio, encode it using Opus, and stream it to OpenAI. It simultaneously handles receiving, decoding, and playing back the AI assistant's audio response.

  • WebRTC Integration: Built on the powerful Pion WebRTC library to manage the peer-to-peer connection, media tracks, and data channels required for the conversation.

  • Real-Time Events via Data Channel: Listens on the WebRTC data channel to receive a stream of structured JSON events from OpenAI, including live transcriptions, speech start/end notifications, function calls, and other session updates.

  • Dynamic Audio Playback: Employs the Ebitengine Oto library for cross-platform audio playback, dynamically configuring the output based on the audio format sent by the API.

  • Session Management: Offers functions to manage the full session lifecycle, from sending initial system and user prompts to gracefully terminating the connection.

Documentation ¶

Overview ¶

Go Client Package for OpenAI Realtime Voice API ¶

This repository provides a Go package for building applications that create real-time, two-way voice conversations with an AI assistant using the OpenAI Realtime API. It is designed to be imported into your own Go projects, providing the core functionality to handle microphone input, low-latency audio streaming, and session management.

Index ¶

Constants ¶

This section is empty.

Variables ¶

This section is empty.

Functions ¶

This section is empty.

Types ¶

type Client ¶

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

func NewClient ¶

func NewClient(ctx context.Context, logger shared.LoggerAdapter, apikey, greeting, baseUrl string) (c *Client, err error)

func (*Client) Close ¶

func (c *Client) Close() error

func (*Client) Connected ¶

func (c *Client) Connected() <-chan struct{}

func (*Client) DC ¶

func (c *Client) DC() *webrtc.DataChannel

func (*Client) Done ¶

func (c *Client) Done() <-chan struct{}

func (*Client) RegisterEventHandler ¶

func (c *Client) RegisterEventHandler(handler EventHandler) error

func (*Client) RegisterTrackLocalHandler ¶

func (c *Client) RegisterTrackLocalHandler(handler TrackLocalHandler) error

func (*Client) RegisterTrackRemoteHandler ¶

func (c *Client) RegisterTrackRemoteHandler(handler TrackRemoteHandler) error

func (*Client) SetConfig ¶

func (*Client) Start ¶

func (c *Client) Start() error

func (*Client) State ¶

func (c *Client) State() webrtc.PeerConnectionState

type ClientEventType ¶

type ClientEventType EventType
const (
	ClientEventTypeSessionUpdate            ClientEventType = "session.update"
	ClientEventTypeInputAudioBufferAppend   ClientEventType = "input_audio_buffer.append"
	ClientEventTypeInputAudioBufferCommit   ClientEventType = "input_audio_buffer.commit"
	ClientEventTypeInputAudioBufferClear    ClientEventType = "input_audio_buffer.clear"
	ClientEventTypeConversationItemCreate   ClientEventType = "conversation.item.create"
	ClientEventTypeConversationItemRetrieve ClientEventType = "conversation.item.retrieve"
	ClientEventTypeConversationItemTruncate ClientEventType = "conversation.item.truncate"
	ClientEventTypeConversationItemDelete   ClientEventType = "conversation.item.delete"
	ClientEventTypeResponseCreate           ClientEventType = "response.create"
	ClientEventTypeResponseCancel           ClientEventType = "response.cancel"
	ClientEventTypeOutputAudioBufferClear   ClientEventType = "output_audio_buffer.clear"
)

Client event types

type ClientState ¶

type ClientState int
const (
	ClientStateNew ClientState = iota
	ClientStateConnecting
	ClientStateConnected
	ClientStateDisconnected
	ClientStateFailed
	ClientStateClosed
)

type Event ¶

type Event interface {
	EventType() EventType
	IsServerEvent() bool
	IsClientEvent() bool
	MarshalYAML() ([]byte, error)
	UnmarshalYAML(data []byte) error
	MarshalJSON() ([]byte, error)
	UnmarshalJSON(data []byte) error
}

type EventHandler ¶

type EventHandler func(event *ServerEvent)

type EventParam ¶

type EventParam interface {
	New(map[string]any) error
	Json() map[string]any
}

type EventType ¶

type EventType string

type ServerEvent ¶

type ServerEvent struct {
	EventId string
	Type    ServerEventType
	Param   EventParam
}

func (*ServerEvent) EventType ¶

func (e *ServerEvent) EventType() EventType

func (*ServerEvent) IsClientEvent ¶

func (e *ServerEvent) IsClientEvent() bool

func (*ServerEvent) IsServerEvent ¶

func (e *ServerEvent) IsServerEvent() bool

func (*ServerEvent) MarshalJSON ¶

func (e *ServerEvent) MarshalJSON() ([]byte, error)

func (*ServerEvent) MarshalYAML ¶

func (e *ServerEvent) MarshalYAML() ([]byte, error)

func (*ServerEvent) UnmarshalJSON ¶

func (e *ServerEvent) UnmarshalJSON(data []byte) error

func (*ServerEvent) UnmarshalYAML ¶

func (e *ServerEvent) UnmarshalYAML(data []byte) error

type ServerEventParamConversationItemAdded ¶

type ServerEventParamConversationItemAdded struct {
	PreviousItemId any
	Item           map[string]any
}

conversation.item.added

func (*ServerEventParamConversationItemAdded) Json ¶

func (*ServerEventParamConversationItemAdded) New ¶

type ServerEventParamConversationItemDeleted ¶

type ServerEventParamConversationItemDeleted struct {
	ItemId string
}

conversation.item.deleted

func (*ServerEventParamConversationItemDeleted) Json ¶

func (*ServerEventParamConversationItemDeleted) New ¶

type ServerEventParamConversationItemDone ¶

type ServerEventParamConversationItemDone struct {
	PreviousItemId any
	Item           map[string]any
}

conversation.item.done

func (*ServerEventParamConversationItemDone) Json ¶

func (*ServerEventParamConversationItemDone) New ¶

type ServerEventParamConversationItemInputAudioTranscriptionCompleted ¶

type ServerEventParamConversationItemInputAudioTranscriptionCompleted struct {
	ItemId       string
	ContentIndex int
	Transcript   string
	Usage        map[string]any
}

conversation.item.input_audio_transcription.completed

func (*ServerEventParamConversationItemInputAudioTranscriptionCompleted) Json ¶

func (*ServerEventParamConversationItemInputAudioTranscriptionCompleted) New ¶

type ServerEventParamConversationItemInputAudioTranscriptionDelta ¶

type ServerEventParamConversationItemInputAudioTranscriptionDelta struct {
	ItemId       string
	ContentIndex int
	Delta        string
	Obfuscation  string
}

conversation.item.input_audio_transcription.delta

func (*ServerEventParamConversationItemInputAudioTranscriptionDelta) Json ¶

func (*ServerEventParamConversationItemInputAudioTranscriptionDelta) New ¶

type ServerEventParamConversationItemInputAudioTranscriptionFailed ¶

type ServerEventParamConversationItemInputAudioTranscriptionFailed struct {
	ItemId       string
	ContentIndex int
	Error        map[string]any
}

conversation.item.input_audio_transcription.failed

func (*ServerEventParamConversationItemInputAudioTranscriptionFailed) Json ¶

func (*ServerEventParamConversationItemInputAudioTranscriptionFailed) New ¶

type ServerEventParamConversationItemInputAudioTranscriptionSegment ¶

type ServerEventParamConversationItemInputAudioTranscriptionSegment struct {
	ItemId       string
	ContentIndex int
	Text         string
	Id           string
	Speaker      string
	Start        float64
	End          float64
}

conversation.item.input_audio_transcription.segment

func (*ServerEventParamConversationItemInputAudioTranscriptionSegment) Json ¶

func (*ServerEventParamConversationItemInputAudioTranscriptionSegment) New ¶

type ServerEventParamConversationItemRetrieved ¶

type ServerEventParamConversationItemRetrieved struct {
	Item map[string]any
}

conversation.item.retrieved

func (*ServerEventParamConversationItemRetrieved) Json ¶

func (*ServerEventParamConversationItemRetrieved) New ¶

type ServerEventParamConversationItemTruncated ¶

type ServerEventParamConversationItemTruncated struct {
	ItemId       string
	ContentIndex int
	AudioEndMs   int
}

conversation.item.truncated

func (*ServerEventParamConversationItemTruncated) Json ¶

func (*ServerEventParamConversationItemTruncated) New ¶

type ServerEventParamError ¶

type ServerEventParamError struct {
	Type    string
	EventId string
	Code    string
	Message string
	Param   any
}

ServerEventParamError

func (*ServerEventParamError) Json ¶

func (p *ServerEventParamError) Json() map[string]any

func (*ServerEventParamError) New ¶

func (p *ServerEventParamError) New(jsonMap map[string]any) error

type ServerEventParamInputAudioBufferCleared ¶

type ServerEventParamInputAudioBufferCleared struct{}

input_audio_buffer.cleared

func (*ServerEventParamInputAudioBufferCleared) Json ¶

func (*ServerEventParamInputAudioBufferCleared) New ¶

type ServerEventParamInputAudioBufferCommitted ¶

type ServerEventParamInputAudioBufferCommitted struct {
	PreviousItemId any
	ItemId         string
}

input_audio_buffer.committed

func (*ServerEventParamInputAudioBufferCommitted) Json ¶

func (*ServerEventParamInputAudioBufferCommitted) New ¶

type ServerEventParamInputAudioBufferSpeechStarted ¶

type ServerEventParamInputAudioBufferSpeechStarted struct {
	AudioStartMs int
	ItemId       string
}

input_audio_buffer.speech_started

func (*ServerEventParamInputAudioBufferSpeechStarted) Json ¶

func (*ServerEventParamInputAudioBufferSpeechStarted) New ¶

type ServerEventParamInputAudioBufferSpeechStopped ¶

type ServerEventParamInputAudioBufferSpeechStopped struct {
	AudioEndMs int
	ItemId     string
}

input_audio_buffer.speech_stopped

func (*ServerEventParamInputAudioBufferSpeechStopped) Json ¶

func (*ServerEventParamInputAudioBufferSpeechStopped) New ¶

type ServerEventParamInputAudioBufferTimeoutTriggered ¶

type ServerEventParamInputAudioBufferTimeoutTriggered struct {
	AudioStartMs int
	AudioEndMs   int
	ItemId       string
}

input_audio_buffer.timeout_triggered

func (*ServerEventParamInputAudioBufferTimeoutTriggered) Json ¶

func (*ServerEventParamInputAudioBufferTimeoutTriggered) New ¶

type ServerEventParamMCPListToolsCompleted ¶

type ServerEventParamMCPListToolsCompleted struct {
	ItemId string
}

mcp_list_tools.completed

func (*ServerEventParamMCPListToolsCompleted) Json ¶

func (*ServerEventParamMCPListToolsCompleted) New ¶

type ServerEventParamMCPListToolsFailed ¶

type ServerEventParamMCPListToolsFailed struct {
	ItemId string
}

mcp_list_tools.failed

func (*ServerEventParamMCPListToolsFailed) Json ¶

func (*ServerEventParamMCPListToolsFailed) New ¶

type ServerEventParamMCPListToolsInProgress ¶

type ServerEventParamMCPListToolsInProgress struct {
	ItemId string
}

mcp_list_tools.in_progress

func (*ServerEventParamMCPListToolsInProgress) Json ¶

func (*ServerEventParamMCPListToolsInProgress) New ¶

type ServerEventParamOutputAudioBufferCleared ¶

type ServerEventParamOutputAudioBufferCleared struct {
	ResponseId string
}

output_audio_buffer.cleared

func (*ServerEventParamOutputAudioBufferCleared) Json ¶

func (*ServerEventParamOutputAudioBufferCleared) New ¶

type ServerEventParamOutputAudioBufferStarted ¶

type ServerEventParamOutputAudioBufferStarted struct {
	ResponseId string
}

output_audio_buffer.started

func (*ServerEventParamOutputAudioBufferStarted) Json ¶

func (*ServerEventParamOutputAudioBufferStarted) New ¶

type ServerEventParamOutputAudioBufferStopped ¶

type ServerEventParamOutputAudioBufferStopped struct {
	ResponseId string
}

output_audio_buffer.stopped

func (*ServerEventParamOutputAudioBufferStopped) Json ¶

func (*ServerEventParamOutputAudioBufferStopped) New ¶

type ServerEventParamRatelimitsUpdated ¶

type ServerEventParamRatelimitsUpdated struct {
	RateLimits []map[string]any
}

rate_limits.updated

func (*ServerEventParamRatelimitsUpdated) Json ¶

func (*ServerEventParamRatelimitsUpdated) New ¶

type ServerEventParamResponseContentPartAdded ¶

type ServerEventParamResponseContentPartAdded struct {
	ResponseId   string
	ItemId       string
	OutputIndex  int
	ContentIndex int
	Part         map[string]any
}

response.content_part.added

func (*ServerEventParamResponseContentPartAdded) Json ¶

func (*ServerEventParamResponseContentPartAdded) New ¶

type ServerEventParamResponseContentPartDone ¶

type ServerEventParamResponseContentPartDone struct {
	ResponseId   string
	ItemId       string
	OutputIndex  int
	ContentIndex int
	Part         map[string]any
}

response.content_part.done

func (*ServerEventParamResponseContentPartDone) Json ¶

func (*ServerEventParamResponseContentPartDone) New ¶

type ServerEventParamResponseCreated ¶

type ServerEventParamResponseCreated struct {
	Response map[string]any
}

response.created

func (*ServerEventParamResponseCreated) Json ¶

func (*ServerEventParamResponseCreated) New ¶

type ServerEventParamResponseDone ¶

type ServerEventParamResponseDone struct {
	Response map[string]any
}

response.done

func (*ServerEventParamResponseDone) Json ¶

func (p *ServerEventParamResponseDone) Json() map[string]any

func (*ServerEventParamResponseDone) New ¶

type ServerEventParamResponseFunctionCallArgumentsDelta ¶

type ServerEventParamResponseFunctionCallArgumentsDelta struct {
	ResponseId  string
	ItemId      string
	OutputIndex int
	CallId      string
	Delta       string
}

response.function_call_arguments.delta

func (*ServerEventParamResponseFunctionCallArgumentsDelta) Json ¶

func (*ServerEventParamResponseFunctionCallArgumentsDelta) New ¶

type ServerEventParamResponseFunctionCallArgumentsDone ¶

type ServerEventParamResponseFunctionCallArgumentsDone struct {
	ResponseId  string
	ItemId      string
	OutputIndex int
	CallId      string
	Arguments   string
}

response.function_call_arguments.done

func (*ServerEventParamResponseFunctionCallArgumentsDone) Json ¶

func (*ServerEventParamResponseFunctionCallArgumentsDone) New ¶

type ServerEventParamResponseMCPCallArgumentsDelta ¶

type ServerEventParamResponseMCPCallArgumentsDelta struct {
	ResponseId  string
	ItemId      string
	OutputIndex int
	Delta       string
}

response.mcp_call_arguments.delta

func (*ServerEventParamResponseMCPCallArgumentsDelta) Json ¶

func (*ServerEventParamResponseMCPCallArgumentsDelta) New ¶

type ServerEventParamResponseMCPCallArgumentsDone ¶

type ServerEventParamResponseMCPCallArgumentsDone struct {
	ResponseId  string
	ItemId      string
	OutputIndex int
	Arguments   string
}

response.mcp_call_arguments.done

func (*ServerEventParamResponseMCPCallArgumentsDone) Json ¶

func (*ServerEventParamResponseMCPCallArgumentsDone) New ¶

type ServerEventParamResponseMCPCallCompleted ¶

type ServerEventParamResponseMCPCallCompleted struct {
	OutputIndex int
	ItemId      string
}

response.mcp_call.completed

func (*ServerEventParamResponseMCPCallCompleted) Json ¶

func (*ServerEventParamResponseMCPCallCompleted) New ¶

type ServerEventParamResponseMCPCallFailed ¶

type ServerEventParamResponseMCPCallFailed struct {
	OutputIndex int
	ItemId      string
}

response.mcp_call.failed

func (*ServerEventParamResponseMCPCallFailed) Json ¶

func (*ServerEventParamResponseMCPCallFailed) New ¶

type ServerEventParamResponseMCPCallInProgress ¶

type ServerEventParamResponseMCPCallInProgress struct {
	OutputIndex int
	ItemId      string
}

response.mcp_call.in_progress

func (*ServerEventParamResponseMCPCallInProgress) Json ¶

func (*ServerEventParamResponseMCPCallInProgress) New ¶

type ServerEventParamResponseOutputAudioDelta ¶

type ServerEventParamResponseOutputAudioDelta struct {
	ResponseId   string
	ItemId       string
	OutputIndex  int
	ContentIndex int
	Delta        string
}

response.output_audio.delta

func (*ServerEventParamResponseOutputAudioDelta) Json ¶

func (*ServerEventParamResponseOutputAudioDelta) New ¶

type ServerEventParamResponseOutputAudioDone ¶

type ServerEventParamResponseOutputAudioDone struct {
	ResponseId   string
	ItemId       string
	OutputIndex  int
	ContentIndex int
}

response.output_audio.done

func (*ServerEventParamResponseOutputAudioDone) Json ¶

func (*ServerEventParamResponseOutputAudioDone) New ¶

type ServerEventParamResponseOutputAudioTranscriptDelta ¶

type ServerEventParamResponseOutputAudioTranscriptDelta struct {
	ResponseId   string
	ItemId       string
	OutputIndex  int
	ContentIndex int
	Delta        string
}

response.output_audio_transcript.delta

func (*ServerEventParamResponseOutputAudioTranscriptDelta) Json ¶

func (*ServerEventParamResponseOutputAudioTranscriptDelta) New ¶

type ServerEventParamResponseOutputAudioTranscriptDone ¶

type ServerEventParamResponseOutputAudioTranscriptDone struct {
	ResponseId   string
	ItemId       string
	OutputIndex  int
	ContentIndex int
	Transcript   string
}

response.output_audio_transcript.done

func (*ServerEventParamResponseOutputAudioTranscriptDone) Json ¶

func (*ServerEventParamResponseOutputAudioTranscriptDone) New ¶

type ServerEventParamResponseOutputItemAdded ¶

type ServerEventParamResponseOutputItemAdded struct {
	ResponseId  string
	OutputIndex int
	Item        map[string]any
}

response.output_item.added

func (*ServerEventParamResponseOutputItemAdded) Json ¶

func (*ServerEventParamResponseOutputItemAdded) New ¶

type ServerEventParamResponseOutputItemDone ¶

type ServerEventParamResponseOutputItemDone struct {
	ResponseId  string
	OutputIndex int
	Item        map[string]any
}

response.output_item.done

func (*ServerEventParamResponseOutputItemDone) Json ¶

func (*ServerEventParamResponseOutputItemDone) New ¶

type ServerEventParamResponseOutputTextDelta ¶

type ServerEventParamResponseOutputTextDelta struct {
	ResponseId   string
	ItemId       string
	OutputIndex  int
	ContentIndex int
	Delta        string
}

response.output_text.delta

func (*ServerEventParamResponseOutputTextDelta) Json ¶

func (*ServerEventParamResponseOutputTextDelta) New ¶

type ServerEventParamResponseOutputTextDone ¶

type ServerEventParamResponseOutputTextDone struct {
	ResponseId   string
	ItemId       string
	OutputIndex  int
	ContentIndex int
	Text         string
}

response.output_text.done

func (*ServerEventParamResponseOutputTextDone) Json ¶

func (*ServerEventParamResponseOutputTextDone) New ¶

type ServerEventParamSessionCreated ¶

type ServerEventParamSessionCreated struct {
	Session map[string]any
}

session.created

func (*ServerEventParamSessionCreated) Json ¶

func (*ServerEventParamSessionCreated) New ¶

type ServerEventParamSessionUpdated ¶

type ServerEventParamSessionUpdated struct {
	Session map[string]any
}

session.updated

func (*ServerEventParamSessionUpdated) Json ¶

func (*ServerEventParamSessionUpdated) New ¶

type ServerEventType ¶

type ServerEventType EventType
const (
	ServerEventTypeError                                            ServerEventType = "error"
	ServerEventTypeSessionCreated                                   ServerEventType = "session.created"
	ServerEventTypeSessionUpdated                                   ServerEventType = "session.updated"
	ServerEventTypeConversationItemAdded                            ServerEventType = "conversation.item.added"
	ServerEventTypeConversationItemDone                             ServerEventType = "conversation.item.done"
	ServerEventTypeConversationItemRetrieved                        ServerEventType = "conversation.item.retrieved"
	ServerEventTypeConversationItemInputAudioTranscriptionCompleted ServerEventType = "conversation.item.input_audio_transcription.completed"
	ServerEventTypeConversationItemInputAudioTranscriptionDelta     ServerEventType = "conversation.item.input_audio_transcription.delta"
	ServerEventTypeConversationItemInputAudioTranscriptionSegment   ServerEventType = "conversation.item.input_audio_transcription.segment"
	ServerEventTypeConversationItemInputAudioTranscriptionFailed    ServerEventType = "conversation.item.input_audio_transcription.failed"
	ServerEventTypeConversationItemTruncated                        ServerEventType = "conversation.item.truncated"
	ServerEventTypeConversationItemDeleted                          ServerEventType = "conversation.item.deleted"
	ServerEventTypeInputAudioBufferCommitted                        ServerEventType = "input_audio_buffer.committed"
	ServerEventTypeInputAudioBufferCleared                          ServerEventType = "input_audio_buffer.cleared"
	ServerEventTypeInputAudioBufferSpeechStarted                    ServerEventType = "input_audio_buffer.speech_started"
	ServerEventTypeInputAudioBufferSpeechStopped                    ServerEventType = "input_audio_buffer.speech_stopped"
	ServerEventTypeInputAudioBufferTimeoutTriggered                 ServerEventType = "input_audio_buffer.timeout_triggered"
	ServerEventTypeOutputAudioBufferStarted                         ServerEventType = "output_audio_buffer.started"
	ServerEventTypeOutputAudioBufferStopped                         ServerEventType = "output_audio_buffer.stopped"
	ServerEventTypeOutputAudioBufferCleared                         ServerEventType = "output_audio_buffer.cleared"
	ServerEventTypeResponseCreated                                  ServerEventType = "response.created"
	ServerEventTypeResponseDone                                     ServerEventType = "response.done"
	ServerEventTypeResponseOutputItemAdded                          ServerEventType = "response.output_item.added"
	ServerEventTypeResponseOutputItemDone                           ServerEventType = "response.output_item.done"
	ServerEventTypeResponseContentPartAdded                         ServerEventType = "response.content_part.added"
	ServerEventTypeResponseContentPartDone                          ServerEventType = "response.content_part.done"
	ServerEventTypeResponseOutputTextDelta                          ServerEventType = "response.output_text.delta"
	ServerEventTypeResponseOutputTextDone                           ServerEventType = "response.output_text.done"
	ServerEventTypeResponseOutputAudioTranscriptDelta               ServerEventType = "response.output_audio_transcript.delta"
	ServerEventTypeResponseOutputAudioTranscriptDone                ServerEventType = "response.output_audio_transcript.done"
	ServerEventTypeResponseOutputAudioDelta                         ServerEventType = "response.output_audio.delta"
	ServerEventTypeResponseOutputAudioDone                          ServerEventType = "response.output_audio.done"
	ServerEventTypeResponseFunctionCallArgumentsDelta               ServerEventType = "response.function_call_arguments.delta"
	ServerEventTypeResponseFunctionCallArgumentsDone                ServerEventType = "response.function_call_arguments.done"
	ServerEventTypeResponseMCPCallArgumentsDelta                    ServerEventType = "response.mcp_call_arguments.delta"
	ServerEventTypeResponseMCPCallArgumentsDone                     ServerEventType = "response.mcp_call_arguments.done"
	ServerEventTypeResponseMCPCallInProgress                        ServerEventType = "response.mcp_call.in_progress"
	ServerEventTypeResponseMCPCallCompleted                         ServerEventType = "response.mcp_call.completed"
	ServerEventTypeResponseMCPCallFailed                            ServerEventType = "response.mcp_call.failed"
	ServerEventTypeMCPListToolsInProgress                           ServerEventType = "mcp_list_tools.in_progress"
	ServerEventTypeMCPListToolsCompleted                            ServerEventType = "mcp_list_tools.completed"
	ServerEventTypeMCPListToolsFailed                               ServerEventType = "mcp_list_tools.failed"
	ServerEventTypeRatelimitsUpdated                                ServerEventType = "rate_limits.updated"
)

Server event types

type TrackLocalHandler ¶

type TrackLocalHandler func(track *webrtc.TrackLocalStaticSample)

type TrackRemoteHandler ¶

type TrackRemoteHandler func(track *webrtc.TrackRemote)

Directories ¶

Path Synopsis
_examples
cli command

Jump to

Keyboard shortcuts

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