openai 0.88.0 → 0.89.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +12 -0
- data/README.md +1 -1
- data/lib/openai/client.rb +4 -0
- data/lib/openai/models/beta/beta_response_input_item.rb +91 -1
- data/lib/openai/models/beta/beta_response_item.rb +93 -1
- data/lib/openai/models/beta/beta_response_output_item.rb +91 -1
- data/lib/openai/models/conversations/conversation_item.rb +91 -1
- data/lib/openai/models/live/audio_format.rb +109 -0
- data/lib/openai/models/live/built_in_voice.rb +38 -0
- data/lib/openai/models/live/client_config.rb +22 -0
- data/lib/openai/models/live/client_delegation.rb +22 -0
- data/lib/openai/models/live/client_event.rb +54 -0
- data/lib/openai/models/live/commentary_append_event.rb +59 -0
- data/lib/openai/models/live/commentary_appended_event.rb +65 -0
- data/lib/openai/models/live/custom_voice.rb +17 -0
- data/lib/openai/models/live/data_channel_config.rb +81 -0
- data/lib/openai/models/live/delegation_created_event.rb +140 -0
- data/lib/openai/models/live/error.rb +60 -0
- data/lib/openai/models/live/error_event.rb +52 -0
- data/lib/openai/models/live/fork_client_event.rb +53 -0
- data/lib/openai/models/live/fork_server_event.rb +295 -0
- data/lib/openai/models/live/fork_session_config.rb +107 -0
- data/lib/openai/models/live/fork_session_start_event.rb +48 -0
- data/lib/openai/models/live/function_tool.rb +60 -0
- data/lib/openai/models/live/info_event.rb +60 -0
- data/lib/openai/models/live/initial_item.rb +419 -0
- data/lib/openai/models/live/input_audio_append_event.rb +50 -0
- data/lib/openai/models/live/input_audio_mute_event.rb +33 -0
- data/lib/openai/models/live/input_audio_muted_event.rb +42 -0
- data/lib/openai/models/live/input_audio_unmute_event.rb +33 -0
- data/lib/openai/models/live/input_audio_unmuted_event.rb +42 -0
- data/lib/openai/models/live/input_transcript_delta_event.rb +76 -0
- data/lib/openai/models/live/instructions_append_event.rb +57 -0
- data/lib/openai/models/live/instructions_appended_event.rb +65 -0
- data/lib/openai/models/live/live_create_params.rb +57 -0
- data/lib/openai/models/live/live_create_response.rb +77 -0
- data/lib/openai/models/live/media_session_config.rb +227 -0
- data/lib/openai/models/live/media_session_fork_config.rb +75 -0
- data/lib/openai/models/live/output_audio_delta_event.rb +58 -0
- data/lib/openai/models/live/output_transcript_delta_event.rb +76 -0
- data/lib/openai/models/live/response_create_event.rb +33 -0
- data/lib/openai/models/live/response_event.rb +67 -0
- data/lib/openai/models/live/response_item_create_event.rb +44 -0
- data/lib/openai/models/live/responses_delegation_config.rb +332 -0
- data/lib/openai/models/live/responses_delegation_update_config.rb +332 -0
- data/lib/openai/models/live/server_event.rb +295 -0
- data/lib/openai/models/live/server_event_selector.rb +32 -0
- data/lib/openai/models/live/session_accept_params.rb +257 -0
- data/lib/openai/models/live/session_close_event.rb +33 -0
- data/lib/openai/models/live/session_closed_event.rb +113 -0
- data/lib/openai/models/live/session_config.rb +236 -0
- data/lib/openai/models/live/session_download_recording_params.rb +27 -0
- data/lib/openai/models/live/session_fork_params.rb +66 -0
- data/lib/openai/models/live/session_fork_response.rb +77 -0
- data/lib/openai/models/live/session_hangup_params.rb +22 -0
- data/lib/openai/models/live/session_refer_params.rb +34 -0
- data/lib/openai/models/live/session_reject_params.rb +32 -0
- data/lib/openai/models/live/session_resource.rb +268 -0
- data/lib/openai/models/live/session_start_event.rb +46 -0
- data/lib/openai/models/live/session_started_event.rb +51 -0
- data/lib/openai/models/live/session_update_config.rb +69 -0
- data/lib/openai/models/live/session_update_event.rb +46 -0
- data/lib/openai/models/live/session_updated_event.rb +51 -0
- data/lib/openai/models/live/session_usage.rb +24 -0
- data/lib/openai/models/live/session_usage_updated_event.rb +81 -0
- data/lib/openai/models/live/thinking_append_event.rb +59 -0
- data/lib/openai/models/live/thinking_appended_event.rb +65 -0
- data/lib/openai/models/responses/response_input_item.rb +91 -1
- data/lib/openai/models/responses/response_item.rb +93 -1
- data/lib/openai/models/responses/response_output_item.rb +91 -1
- data/lib/openai/models/webhooks/live_call_incoming_webhook_event.rb +12 -7
- data/lib/openai/models/webhooks/live_transport_incoming_webhook_event.rb +137 -0
- data/lib/openai/models/webhooks/realtime_call_incoming_webhook_event.rb +4 -4
- data/lib/openai/models/webhooks/unwrap_webhook_event.rb +9 -2
- data/lib/openai/models.rb +2 -0
- data/lib/openai/resources/live/forks.rb +16 -0
- data/lib/openai/resources/live/sessions.rb +180 -0
- data/lib/openai/resources/live/sideband.rb +16 -0
- data/lib/openai/resources/live.rb +54 -0
- data/lib/openai/resources/webhooks.rb +1 -1
- data/lib/openai/version.rb +1 -1
- data/lib/openai.rb +65 -0
- data/rbi/openai/client.rbi +3 -0
- data/rbi/openai/models/beta/beta_response_input_item.rbi +109 -0
- data/rbi/openai/models/beta/beta_response_item.rbi +105 -0
- data/rbi/openai/models/beta/beta_response_output_item.rbi +119 -0
- data/rbi/openai/models/conversations/conversation_item.rbi +133 -0
- data/rbi/openai/models/live/audio_format.rbi +185 -0
- data/rbi/openai/models/live/built_in_voice.rbi +46 -0
- data/rbi/openai/models/live/client_config.rbi +54 -0
- data/rbi/openai/models/live/client_delegation.rbi +51 -0
- data/rbi/openai/models/live/client_event.rbi +41 -0
- data/rbi/openai/models/live/commentary_append_event.rbi +88 -0
- data/rbi/openai/models/live/commentary_appended_event.rbi +97 -0
- data/rbi/openai/models/live/custom_voice.rbi +46 -0
- data/rbi/openai/models/live/data_channel_config.rbi +119 -0
- data/rbi/openai/models/live/delegation_created_event.rbi +207 -0
- data/rbi/openai/models/live/error.rbi +95 -0
- data/rbi/openai/models/live/error_event.rbi +87 -0
- data/rbi/openai/models/live/fork_client_event.rbi +40 -0
- data/rbi/openai/models/live/fork_server_event.rbi +436 -0
- data/rbi/openai/models/live/fork_session_config.rbi +234 -0
- data/rbi/openai/models/live/fork_session_start_event.rbi +80 -0
- data/rbi/openai/models/live/function_tool.rbi +95 -0
- data/rbi/openai/models/live/info_event.rbi +92 -0
- data/rbi/openai/models/live/initial_item.rbi +661 -0
- data/rbi/openai/models/live/input_audio_append_event.rbi +79 -0
- data/rbi/openai/models/live/input_audio_mute_event.rbi +62 -0
- data/rbi/openai/models/live/input_audio_muted_event.rbi +74 -0
- data/rbi/openai/models/live/input_audio_unmute_event.rbi +62 -0
- data/rbi/openai/models/live/input_audio_unmuted_event.rbi +74 -0
- data/rbi/openai/models/live/input_transcript_delta_event.rbi +115 -0
- data/rbi/openai/models/live/instructions_append_event.rbi +86 -0
- data/rbi/openai/models/live/instructions_appended_event.rbi +97 -0
- data/rbi/openai/models/live/live_create_params.rbi +121 -0
- data/rbi/openai/models/live/live_create_response.rbi +160 -0
- data/rbi/openai/models/live/media_session_config.rbi +390 -0
- data/rbi/openai/models/live/media_session_fork_config.rbi +143 -0
- data/rbi/openai/models/live/output_audio_delta_event.rbi +93 -0
- data/rbi/openai/models/live/output_transcript_delta_event.rbi +115 -0
- data/rbi/openai/models/live/response_create_event.rbi +62 -0
- data/rbi/openai/models/live/response_event.rbi +105 -0
- data/rbi/openai/models/live/response_item_create_event.rbi +183 -0
- data/rbi/openai/models/live/responses_delegation_config.rbi +562 -0
- data/rbi/openai/models/live/responses_delegation_update_config.rbi +585 -0
- data/rbi/openai/models/live/server_event.rbi +436 -0
- data/rbi/openai/models/live/server_event_selector.rbi +64 -0
- data/rbi/openai/models/live/session_accept_params.rbi +451 -0
- data/rbi/openai/models/live/session_close_event.rbi +62 -0
- data/rbi/openai/models/live/session_closed_event.rbi +148 -0
- data/rbi/openai/models/live/session_config.rbi +427 -0
- data/rbi/openai/models/live/session_download_recording_params.rbi +57 -0
- data/rbi/openai/models/live/session_fork_params.rbi +131 -0
- data/rbi/openai/models/live/session_fork_response.rbi +160 -0
- data/rbi/openai/models/live/session_hangup_params.rbi +53 -0
- data/rbi/openai/models/live/session_refer_params.rbi +64 -0
- data/rbi/openai/models/live/session_reject_params.rbi +62 -0
- data/rbi/openai/models/live/session_resource.rbi +461 -0
- data/rbi/openai/models/live/session_start_event.rbi +78 -0
- data/rbi/openai/models/live/session_started_event.rbi +86 -0
- data/rbi/openai/models/live/session_update_config.rbi +134 -0
- data/rbi/openai/models/live/session_update_event.rbi +78 -0
- data/rbi/openai/models/live/session_updated_event.rbi +86 -0
- data/rbi/openai/models/live/session_usage.rbi +53 -0
- data/rbi/openai/models/live/session_usage_updated_event.rbi +148 -0
- data/rbi/openai/models/live/thinking_append_event.rbi +88 -0
- data/rbi/openai/models/live/thinking_appended_event.rbi +97 -0
- data/rbi/openai/models/responses/response_input_item.rbi +113 -0
- data/rbi/openai/models/responses/response_item.rbi +105 -0
- data/rbi/openai/models/responses/response_output_item.rbi +125 -0
- data/rbi/openai/models/webhooks/live_call_incoming_webhook_event.rbi +11 -7
- data/rbi/openai/models/webhooks/live_transport_incoming_webhook_event.rbi +226 -0
- data/rbi/openai/models/webhooks/realtime_call_incoming_webhook_event.rbi +4 -4
- data/rbi/openai/models/webhooks/unwrap_webhook_event.rbi +1 -0
- data/rbi/openai/models.rbi +2 -0
- data/rbi/openai/resources/live/forks.rbi +19 -0
- data/rbi/openai/resources/live/sessions.rbi +110 -0
- data/rbi/openai/resources/live/sideband.rbi +19 -0
- data/rbi/openai/resources/live.rbi +43 -0
- data/rbi/openai/resources/responses.rbi +75 -38
- data/rbi/openai/resources/webhooks.rbi +1 -0
- data/sig/openai/client.rbs +2 -0
- data/sig/openai/models/beta/beta_response_input_item.rbs +56 -0
- data/sig/openai/models/beta/beta_response_item.rbs +56 -0
- data/sig/openai/models/beta/beta_response_output_item.rbs +56 -0
- data/sig/openai/models/conversations/conversation_item.rbs +56 -0
- data/sig/openai/models/live/audio_format.rbs +73 -0
- data/sig/openai/models/live/built_in_voice.rbs +58 -0
- data/sig/openai/models/live/client_config.rbs +15 -0
- data/sig/openai/models/live/client_delegation.rbs +15 -0
- data/sig/openai/models/live/client_event.rbs +24 -0
- data/sig/openai/models/live/commentary_append_event.rbs +37 -0
- data/sig/openai/models/live/commentary_appended_event.rbs +44 -0
- data/sig/openai/models/live/custom_voice.rbs +15 -0
- data/sig/openai/models/live/data_channel_config.rbs +56 -0
- data/sig/openai/models/live/delegation_created_event.rbs +89 -0
- data/sig/openai/models/live/error.rbs +46 -0
- data/sig/openai/models/live/error_event.rbs +39 -0
- data/sig/openai/models/live/fork_client_event.rbs +24 -0
- data/sig/openai/models/live/fork_server_event.rbs +212 -0
- data/sig/openai/models/live/fork_session_config.rbs +89 -0
- data/sig/openai/models/live/fork_session_start_event.rbs +32 -0
- data/sig/openai/models/live/function_tool.rbs +42 -0
- data/sig/openai/models/live/info_event.rbs +44 -0
- data/sig/openai/models/live/initial_item.rbs +332 -0
- data/sig/openai/models/live/input_audio_append_event.rbs +32 -0
- data/sig/openai/models/live/input_audio_mute_event.rbs +24 -0
- data/sig/openai/models/live/input_audio_muted_event.rbs +34 -0
- data/sig/openai/models/live/input_audio_unmute_event.rbs +24 -0
- data/sig/openai/models/live/input_audio_unmuted_event.rbs +34 -0
- data/sig/openai/models/live/input_transcript_delta_event.rbs +49 -0
- data/sig/openai/models/live/instructions_append_event.rbs +37 -0
- data/sig/openai/models/live/instructions_appended_event.rbs +44 -0
- data/sig/openai/models/live/live_create_params.rbs +45 -0
- data/sig/openai/models/live/live_create_response.rbs +49 -0
- data/sig/openai/models/live/media_session_config.rbs +157 -0
- data/sig/openai/models/live/media_session_fork_config.rbs +66 -0
- data/sig/openai/models/live/output_audio_delta_event.rbs +41 -0
- data/sig/openai/models/live/output_transcript_delta_event.rbs +49 -0
- data/sig/openai/models/live/response_create_event.rbs +18 -0
- data/sig/openai/models/live/response_event.rbs +44 -0
- data/sig/openai/models/live/response_item_create_event.rbs +32 -0
- data/sig/openai/models/live/responses_delegation_config.rbs +244 -0
- data/sig/openai/models/live/responses_delegation_update_config.rbs +246 -0
- data/sig/openai/models/live/server_event.rbs +212 -0
- data/sig/openai/models/live/server_event_selector.rbs +19 -0
- data/sig/openai/models/live/session_accept_params.rbs +185 -0
- data/sig/openai/models/live/session_close_event.rbs +17 -0
- data/sig/openai/models/live/session_closed_event.rbs +68 -0
- data/sig/openai/models/live/session_config.rbs +168 -0
- data/sig/openai/models/live/session_download_recording_params.rbs +25 -0
- data/sig/openai/models/live/session_fork_params.rbs +54 -0
- data/sig/openai/models/live/session_fork_response.rbs +49 -0
- data/sig/openai/models/live/session_hangup_params.rbs +25 -0
- data/sig/openai/models/live/session_refer_params.rbs +33 -0
- data/sig/openai/models/live/session_reject_params.rbs +33 -0
- data/sig/openai/models/live/session_resource.rbs +183 -0
- data/sig/openai/models/live/session_start_event.rbs +32 -0
- data/sig/openai/models/live/session_started_event.rbs +39 -0
- data/sig/openai/models/live/session_update_config.rbs +56 -0
- data/sig/openai/models/live/session_update_event.rbs +32 -0
- data/sig/openai/models/live/session_updated_event.rbs +39 -0
- data/sig/openai/models/live/session_usage.rbs +15 -0
- data/sig/openai/models/live/session_usage_updated_event.rbs +58 -0
- data/sig/openai/models/live/thinking_append_event.rbs +37 -0
- data/sig/openai/models/live/thinking_appended_event.rbs +44 -0
- data/sig/openai/models/responses/response_input_item.rbs +56 -0
- data/sig/openai/models/responses/response_item.rbs +56 -0
- data/sig/openai/models/responses/response_output_item.rbs +56 -0
- data/sig/openai/models/webhooks/live_transport_incoming_webhook_event.rbs +95 -0
- data/sig/openai/models/webhooks/unwrap_webhook_event.rbs +1 -0
- data/sig/openai/models.rbs +2 -0
- data/sig/openai/resources/live/forks.rbs +9 -0
- data/sig/openai/resources/live/sessions.rbs +44 -0
- data/sig/openai/resources/live/sideband.rbs +9 -0
- data/sig/openai/resources/live.rbs +19 -0
- data/sig/openai/resources/webhooks.rbs +1 -0
- metadata +196 -1
|
@@ -0,0 +1,436 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module OpenAI
|
|
4
|
+
module Models
|
|
5
|
+
|
|
6
|
+
module Live
|
|
7
|
+
|
|
8
|
+
# Server events for Live. Response lifecycle events are wrapped inside
|
|
9
|
+
# response.event; dispatch the nested event by its full type and tolerate new
|
|
10
|
+
# response event types. Follow the
|
|
11
|
+
# [Live prompting guide](https://developers.openai.com/api/docs/guides/live-prompting)
|
|
12
|
+
# when designing the conversation and delegation policy.
|
|
13
|
+
module ForkServerEvent
|
|
14
|
+
extend OpenAI::Internal::Type::Union
|
|
15
|
+
|
|
16
|
+
Variants = T.type_alias do
|
|
17
|
+
T.any(
|
|
18
|
+
OpenAI::Live::SessionStartedEvent,
|
|
19
|
+
OpenAI::Live::SessionUpdatedEvent,
|
|
20
|
+
OpenAI::Live::InputAudioMutedEvent,
|
|
21
|
+
OpenAI::Live::InputAudioUnmutedEvent,
|
|
22
|
+
OpenAI::Live::InstructionsAppendedEvent,
|
|
23
|
+
OpenAI::Live::ThinkingAppendedEvent,
|
|
24
|
+
OpenAI::Live::CommentaryAppendedEvent,
|
|
25
|
+
OpenAI::Live::ForkServerEvent::SessionInputAudioAppend,
|
|
26
|
+
OpenAI::Live::OutputAudioDeltaEvent,
|
|
27
|
+
OpenAI::Live::InputTranscriptDeltaEvent,
|
|
28
|
+
OpenAI::Live::OutputTranscriptDeltaEvent,
|
|
29
|
+
OpenAI::Live::DelegationCreatedEvent,
|
|
30
|
+
OpenAI::Live::ResponseEvent,
|
|
31
|
+
OpenAI::Live::SessionUsageUpdatedEvent,
|
|
32
|
+
OpenAI::Live::SessionClosedEvent,
|
|
33
|
+
OpenAI::Live::ErrorEvent,
|
|
34
|
+
OpenAI::Live::InfoEvent,
|
|
35
|
+
OpenAI::Live::ForkServerEvent::TransportDtmfReceived,
|
|
36
|
+
OpenAI::Live::ForkServerEvent::TransportDtmfSend,
|
|
37
|
+
OpenAI::Live::ForkServerEvent::TransportRinging,
|
|
38
|
+
OpenAI::Live::ForkServerEvent::TransportAnswered,
|
|
39
|
+
OpenAI::Live::ForkServerEvent::TransportFailed
|
|
40
|
+
)
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
class SessionInputAudioAppend < OpenAI::Internal::Type::BaseModel
|
|
44
|
+
OrHash = T.type_alias do
|
|
45
|
+
T.any(
|
|
46
|
+
OpenAI::Live::ForkServerEvent::SessionInputAudioAppend,
|
|
47
|
+
OpenAI::Internal::AnyHash
|
|
48
|
+
)
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
# Base64-encoded raw mono PCM16LE at 24 kHz received from the primary transport,
|
|
52
|
+
# reflected to the sideband before model-input muting. This server event uses the
|
|
53
|
+
# same audio key as the client command, but is not an acknowledgment of it.
|
|
54
|
+
sig { returns(String) }
|
|
55
|
+
attr_accessor :audio
|
|
56
|
+
|
|
57
|
+
# The event type, always `session.input_audio.append`.
|
|
58
|
+
sig { returns(Symbol) }
|
|
59
|
+
attr_accessor :type
|
|
60
|
+
|
|
61
|
+
# Input audio received from the primary transport and reflected to a Live sideband
|
|
62
|
+
# connection before model-input muting.
|
|
63
|
+
sig do
|
|
64
|
+
params(
|
|
65
|
+
|
|
66
|
+
audio: String,
|
|
67
|
+
|
|
68
|
+
type: Symbol
|
|
69
|
+
)
|
|
70
|
+
.returns(T.attached_class)
|
|
71
|
+
end
|
|
72
|
+
def self.new(
|
|
73
|
+
|
|
74
|
+
# Base64-encoded raw mono PCM16LE at 24 kHz received from the primary transport,
|
|
75
|
+
# reflected to the sideband before model-input muting. This server event uses the
|
|
76
|
+
# same audio key as the client command, but is not an acknowledgment of it.
|
|
77
|
+
audio:,
|
|
78
|
+
|
|
79
|
+
# The event type, always `session.input_audio.append`.
|
|
80
|
+
|
|
81
|
+
type: :"session.input_audio.append"
|
|
82
|
+
)
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
sig do
|
|
86
|
+
override.returns(
|
|
87
|
+
{audio: String, type: Symbol}
|
|
88
|
+
)
|
|
89
|
+
end
|
|
90
|
+
def to_hash
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
class TransportDtmfReceived < OpenAI::Internal::Type::BaseModel
|
|
96
|
+
OrHash = T.type_alias do
|
|
97
|
+
T.any(
|
|
98
|
+
OpenAI::Live::ForkServerEvent::TransportDtmfReceived,
|
|
99
|
+
OpenAI::Internal::AnyHash
|
|
100
|
+
)
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
sig { returns(String) }
|
|
104
|
+
attr_accessor :event
|
|
105
|
+
|
|
106
|
+
sig { returns(String) }
|
|
107
|
+
attr_accessor :event_id
|
|
108
|
+
|
|
109
|
+
sig { returns(Symbol) }
|
|
110
|
+
attr_accessor :type
|
|
111
|
+
|
|
112
|
+
# A SIP DTMF keypress received from the caller. Delivered only to sideband
|
|
113
|
+
# observers.
|
|
114
|
+
sig do
|
|
115
|
+
params(
|
|
116
|
+
|
|
117
|
+
event: String,
|
|
118
|
+
|
|
119
|
+
event_id: String,
|
|
120
|
+
|
|
121
|
+
type: Symbol
|
|
122
|
+
)
|
|
123
|
+
.returns(T.attached_class)
|
|
124
|
+
end
|
|
125
|
+
def self.new(
|
|
126
|
+
|
|
127
|
+
event:,
|
|
128
|
+
|
|
129
|
+
event_id:,
|
|
130
|
+
|
|
131
|
+
type: :"transport.dtmf.received"
|
|
132
|
+
)
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
sig do
|
|
136
|
+
override.returns(
|
|
137
|
+
{event: String, event_id: String, type: Symbol}
|
|
138
|
+
)
|
|
139
|
+
end
|
|
140
|
+
def to_hash
|
|
141
|
+
end
|
|
142
|
+
|
|
143
|
+
end
|
|
144
|
+
|
|
145
|
+
class TransportDtmfSend < OpenAI::Internal::Type::BaseModel
|
|
146
|
+
OrHash = T.type_alias do
|
|
147
|
+
T.any(
|
|
148
|
+
OpenAI::Live::ForkServerEvent::TransportDtmfSend,
|
|
149
|
+
OpenAI::Internal::AnyHash
|
|
150
|
+
)
|
|
151
|
+
end
|
|
152
|
+
|
|
153
|
+
sig { returns(String) }
|
|
154
|
+
attr_accessor :event
|
|
155
|
+
|
|
156
|
+
sig { returns(String) }
|
|
157
|
+
attr_accessor :event_id
|
|
158
|
+
|
|
159
|
+
sig { returns(Symbol) }
|
|
160
|
+
attr_accessor :type
|
|
161
|
+
|
|
162
|
+
# A SIP DTMF keypress successfully sent by the hosted tool. Delivered only to
|
|
163
|
+
# sideband observers; this is not a client command.
|
|
164
|
+
sig do
|
|
165
|
+
params(
|
|
166
|
+
|
|
167
|
+
event: String,
|
|
168
|
+
|
|
169
|
+
event_id: String,
|
|
170
|
+
|
|
171
|
+
type: Symbol
|
|
172
|
+
)
|
|
173
|
+
.returns(T.attached_class)
|
|
174
|
+
end
|
|
175
|
+
def self.new(
|
|
176
|
+
|
|
177
|
+
event:,
|
|
178
|
+
|
|
179
|
+
event_id:,
|
|
180
|
+
|
|
181
|
+
type: :"transport.dtmf.send"
|
|
182
|
+
)
|
|
183
|
+
end
|
|
184
|
+
|
|
185
|
+
sig do
|
|
186
|
+
override.returns(
|
|
187
|
+
{event: String, event_id: String, type: Symbol}
|
|
188
|
+
)
|
|
189
|
+
end
|
|
190
|
+
def to_hash
|
|
191
|
+
end
|
|
192
|
+
|
|
193
|
+
end
|
|
194
|
+
|
|
195
|
+
class TransportRinging < OpenAI::Internal::Type::BaseModel
|
|
196
|
+
OrHash = T.type_alias do
|
|
197
|
+
T.any(
|
|
198
|
+
OpenAI::Live::ForkServerEvent::TransportRinging,
|
|
199
|
+
OpenAI::Internal::AnyHash
|
|
200
|
+
)
|
|
201
|
+
end
|
|
202
|
+
|
|
203
|
+
sig { returns(String) }
|
|
204
|
+
attr_accessor :event_id
|
|
205
|
+
|
|
206
|
+
# The canonical Live session ID.
|
|
207
|
+
sig { returns(String) }
|
|
208
|
+
attr_accessor :session_id
|
|
209
|
+
|
|
210
|
+
sig { returns(Symbol) }
|
|
211
|
+
attr_accessor :type
|
|
212
|
+
|
|
213
|
+
# The outbound SIP provider leg is ringing or providing early media. Delivered
|
|
214
|
+
# only to sideband observers.
|
|
215
|
+
sig do
|
|
216
|
+
params(
|
|
217
|
+
|
|
218
|
+
event_id: String,
|
|
219
|
+
|
|
220
|
+
session_id: String,
|
|
221
|
+
|
|
222
|
+
type: Symbol
|
|
223
|
+
)
|
|
224
|
+
.returns(T.attached_class)
|
|
225
|
+
end
|
|
226
|
+
def self.new(
|
|
227
|
+
|
|
228
|
+
event_id:,
|
|
229
|
+
|
|
230
|
+
# The canonical Live session ID.
|
|
231
|
+
session_id:,
|
|
232
|
+
|
|
233
|
+
type: :"transport.ringing"
|
|
234
|
+
)
|
|
235
|
+
end
|
|
236
|
+
|
|
237
|
+
sig do
|
|
238
|
+
override.returns(
|
|
239
|
+
{event_id: String, session_id: String, type: Symbol}
|
|
240
|
+
)
|
|
241
|
+
end
|
|
242
|
+
def to_hash
|
|
243
|
+
end
|
|
244
|
+
|
|
245
|
+
end
|
|
246
|
+
|
|
247
|
+
class TransportAnswered < OpenAI::Internal::Type::BaseModel
|
|
248
|
+
OrHash = T.type_alias do
|
|
249
|
+
T.any(
|
|
250
|
+
OpenAI::Live::ForkServerEvent::TransportAnswered,
|
|
251
|
+
OpenAI::Internal::AnyHash
|
|
252
|
+
)
|
|
253
|
+
end
|
|
254
|
+
|
|
255
|
+
sig { returns(String) }
|
|
256
|
+
attr_accessor :event_id
|
|
257
|
+
|
|
258
|
+
# The canonical Live session ID.
|
|
259
|
+
sig { returns(String) }
|
|
260
|
+
attr_accessor :session_id
|
|
261
|
+
|
|
262
|
+
sig { returns(Symbol) }
|
|
263
|
+
attr_accessor :type
|
|
264
|
+
|
|
265
|
+
# The outbound SIP provider leg answered and media is established. Delivered only
|
|
266
|
+
# to sideband observers.
|
|
267
|
+
sig do
|
|
268
|
+
params(
|
|
269
|
+
|
|
270
|
+
event_id: String,
|
|
271
|
+
|
|
272
|
+
session_id: String,
|
|
273
|
+
|
|
274
|
+
type: Symbol
|
|
275
|
+
)
|
|
276
|
+
.returns(T.attached_class)
|
|
277
|
+
end
|
|
278
|
+
def self.new(
|
|
279
|
+
|
|
280
|
+
event_id:,
|
|
281
|
+
|
|
282
|
+
# The canonical Live session ID.
|
|
283
|
+
session_id:,
|
|
284
|
+
|
|
285
|
+
type: :"transport.answered"
|
|
286
|
+
)
|
|
287
|
+
end
|
|
288
|
+
|
|
289
|
+
sig do
|
|
290
|
+
override.returns(
|
|
291
|
+
{event_id: String, session_id: String, type: Symbol}
|
|
292
|
+
)
|
|
293
|
+
end
|
|
294
|
+
def to_hash
|
|
295
|
+
end
|
|
296
|
+
|
|
297
|
+
end
|
|
298
|
+
|
|
299
|
+
class TransportFailed < OpenAI::Internal::Type::BaseModel
|
|
300
|
+
OrHash = T.type_alias do
|
|
301
|
+
T.any(
|
|
302
|
+
OpenAI::Live::ForkServerEvent::TransportFailed,
|
|
303
|
+
OpenAI::Internal::AnyHash
|
|
304
|
+
)
|
|
305
|
+
end
|
|
306
|
+
|
|
307
|
+
sig { returns(OpenAI::Live::ForkServerEvent::TransportFailed::Error) }
|
|
308
|
+
attr_reader :error
|
|
309
|
+
|
|
310
|
+
sig { params(error: OpenAI::Live::ForkServerEvent::TransportFailed::Error::OrHash).void }
|
|
311
|
+
attr_writer :error
|
|
312
|
+
|
|
313
|
+
sig { returns(String) }
|
|
314
|
+
attr_accessor :event_id
|
|
315
|
+
|
|
316
|
+
# The canonical Live session ID.
|
|
317
|
+
sig { returns(String) }
|
|
318
|
+
attr_accessor :session_id
|
|
319
|
+
|
|
320
|
+
sig { returns(Symbol) }
|
|
321
|
+
attr_accessor :type
|
|
322
|
+
|
|
323
|
+
# An asynchronous outbound SIP setup failure. Delivered only to sideband
|
|
324
|
+
# observers.
|
|
325
|
+
sig do
|
|
326
|
+
params(
|
|
327
|
+
|
|
328
|
+
error: OpenAI::Live::ForkServerEvent::TransportFailed::Error::OrHash,
|
|
329
|
+
|
|
330
|
+
event_id: String,
|
|
331
|
+
|
|
332
|
+
session_id: String,
|
|
333
|
+
|
|
334
|
+
type: Symbol
|
|
335
|
+
)
|
|
336
|
+
.returns(T.attached_class)
|
|
337
|
+
end
|
|
338
|
+
def self.new(
|
|
339
|
+
|
|
340
|
+
error:,
|
|
341
|
+
|
|
342
|
+
event_id:,
|
|
343
|
+
|
|
344
|
+
# The canonical Live session ID.
|
|
345
|
+
session_id:,
|
|
346
|
+
|
|
347
|
+
type: :"transport.failed"
|
|
348
|
+
)
|
|
349
|
+
end
|
|
350
|
+
|
|
351
|
+
sig do
|
|
352
|
+
override.returns(
|
|
353
|
+
{
|
|
354
|
+
error: OpenAI::Live::ForkServerEvent::TransportFailed::Error,
|
|
355
|
+
event_id: String,
|
|
356
|
+
session_id: String,
|
|
357
|
+
type: Symbol
|
|
358
|
+
}
|
|
359
|
+
)
|
|
360
|
+
end
|
|
361
|
+
def to_hash
|
|
362
|
+
end
|
|
363
|
+
|
|
364
|
+
class Error < OpenAI::Internal::Type::BaseModel
|
|
365
|
+
OrHash = T.type_alias do
|
|
366
|
+
T.any(
|
|
367
|
+
OpenAI::Live::ForkServerEvent::TransportFailed::Error,
|
|
368
|
+
OpenAI::Internal::AnyHash
|
|
369
|
+
)
|
|
370
|
+
end
|
|
371
|
+
|
|
372
|
+
# The call setup failure code.
|
|
373
|
+
sig { returns(String) }
|
|
374
|
+
attr_accessor :code
|
|
375
|
+
|
|
376
|
+
sig { returns(String) }
|
|
377
|
+
attr_accessor :message
|
|
378
|
+
|
|
379
|
+
sig { returns(Symbol) }
|
|
380
|
+
attr_accessor :type
|
|
381
|
+
|
|
382
|
+
# The parameter related to the error, if any. Empty when no parameter applies.
|
|
383
|
+
sig { returns(T.nilable(String)) }
|
|
384
|
+
attr_reader :param
|
|
385
|
+
|
|
386
|
+
sig { params(param: String).void }
|
|
387
|
+
attr_writer :param
|
|
388
|
+
|
|
389
|
+
sig do
|
|
390
|
+
params(
|
|
391
|
+
|
|
392
|
+
code: String,
|
|
393
|
+
|
|
394
|
+
message: String,
|
|
395
|
+
|
|
396
|
+
param: String,
|
|
397
|
+
|
|
398
|
+
type: Symbol
|
|
399
|
+
)
|
|
400
|
+
.returns(T.attached_class)
|
|
401
|
+
end
|
|
402
|
+
def self.new(
|
|
403
|
+
|
|
404
|
+
# The call setup failure code.
|
|
405
|
+
code:,
|
|
406
|
+
|
|
407
|
+
message:,
|
|
408
|
+
|
|
409
|
+
# The parameter related to the error, if any. Empty when no parameter applies.
|
|
410
|
+
param: nil,
|
|
411
|
+
|
|
412
|
+
type: :call_error
|
|
413
|
+
)
|
|
414
|
+
end
|
|
415
|
+
|
|
416
|
+
sig do
|
|
417
|
+
override.returns(
|
|
418
|
+
{code: String, message: String, type: Symbol, param: T.nilable(String)}
|
|
419
|
+
)
|
|
420
|
+
end
|
|
421
|
+
def to_hash
|
|
422
|
+
end
|
|
423
|
+
|
|
424
|
+
end
|
|
425
|
+
end
|
|
426
|
+
|
|
427
|
+
sig { override.returns(T::Array[OpenAI::Live::ForkServerEvent::Variants]) }
|
|
428
|
+
def self.variants
|
|
429
|
+
end
|
|
430
|
+
|
|
431
|
+
end
|
|
432
|
+
|
|
433
|
+
end
|
|
434
|
+
|
|
435
|
+
end
|
|
436
|
+
end
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module OpenAI
|
|
4
|
+
module Models
|
|
5
|
+
|
|
6
|
+
module Live
|
|
7
|
+
|
|
8
|
+
class ForkSessionConfig < OpenAI::Internal::Type::BaseModel
|
|
9
|
+
|
|
10
|
+
OrHash = T.type_alias do
|
|
11
|
+
T.any(
|
|
12
|
+
OpenAI::Live::ForkSessionConfig,
|
|
13
|
+
OpenAI::Internal::AnyHash
|
|
14
|
+
)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
# Audio format for a WebSocket fork. WebRTC forks negotiate their audio format and
|
|
18
|
+
# must omit this field.
|
|
19
|
+
sig { returns(T.nilable(OpenAI::Live::ForkSessionConfig::Audio)) }
|
|
20
|
+
attr_reader :audio
|
|
21
|
+
|
|
22
|
+
sig { params(audio: OpenAI::Live::ForkSessionConfig::Audio::OrHash).void }
|
|
23
|
+
attr_writer :audio
|
|
24
|
+
|
|
25
|
+
# Frontend data-channel permissions for a WebRTC fork. Omitted permissions inherit
|
|
26
|
+
# the stored values. Not supported for WebSocket forks.
|
|
27
|
+
sig { returns(T.nilable(OpenAI::Live::ClientConfig)) }
|
|
28
|
+
attr_reader :client
|
|
29
|
+
|
|
30
|
+
sig { params(client: OpenAI::Live::ClientConfig::OrHash).void }
|
|
31
|
+
attr_writer :client
|
|
32
|
+
|
|
33
|
+
# Overrides for the stored session’s Responses backend. Only supported when the
|
|
34
|
+
# stored session already uses Responses delegation; the delegation type cannot
|
|
35
|
+
# change.
|
|
36
|
+
sig { returns(T.nilable(OpenAI::Live::ForkSessionConfig::Delegation)) }
|
|
37
|
+
attr_reader :delegation
|
|
38
|
+
|
|
39
|
+
sig { params(delegation: OpenAI::Live::ForkSessionConfig::Delegation::OrHash).void }
|
|
40
|
+
attr_writer :delegation
|
|
41
|
+
|
|
42
|
+
# Whether to store the forked session. Omission inherits the stored session's
|
|
43
|
+
# setting.
|
|
44
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
45
|
+
attr_reader :store
|
|
46
|
+
|
|
47
|
+
sig { params(store: T::Boolean).void }
|
|
48
|
+
attr_writer :store
|
|
49
|
+
|
|
50
|
+
# Overrides for a stored session after connecting to the fork WebSocket. An empty
|
|
51
|
+
# object inherits the stored configuration; do not supply a new model.
|
|
52
|
+
# audio.format applies only to the new WebSocket connection. client overrides are
|
|
53
|
+
# only supported for WebRTC forks.
|
|
54
|
+
sig do
|
|
55
|
+
params(
|
|
56
|
+
|
|
57
|
+
audio: OpenAI::Live::ForkSessionConfig::Audio::OrHash,
|
|
58
|
+
|
|
59
|
+
client: OpenAI::Live::ClientConfig::OrHash,
|
|
60
|
+
|
|
61
|
+
delegation: OpenAI::Live::ForkSessionConfig::Delegation::OrHash,
|
|
62
|
+
|
|
63
|
+
store: T::Boolean
|
|
64
|
+
)
|
|
65
|
+
.returns(T.attached_class)
|
|
66
|
+
end
|
|
67
|
+
def self.new(
|
|
68
|
+
|
|
69
|
+
# Audio format for a WebSocket fork. WebRTC forks negotiate their audio format and
|
|
70
|
+
# must omit this field.
|
|
71
|
+
audio: nil,
|
|
72
|
+
|
|
73
|
+
# Frontend data-channel permissions for a WebRTC fork. Omitted permissions inherit
|
|
74
|
+
# the stored values. Not supported for WebSocket forks.
|
|
75
|
+
client: nil,
|
|
76
|
+
|
|
77
|
+
# Overrides for the stored session’s Responses backend. Only supported when the
|
|
78
|
+
# stored session already uses Responses delegation; the delegation type cannot
|
|
79
|
+
# change.
|
|
80
|
+
delegation: nil,
|
|
81
|
+
|
|
82
|
+
# Whether to store the forked session. Omission inherits the stored session's
|
|
83
|
+
# setting.
|
|
84
|
+
|
|
85
|
+
store: nil
|
|
86
|
+
)
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
sig do
|
|
90
|
+
override.returns(
|
|
91
|
+
{
|
|
92
|
+
audio: OpenAI::Live::ForkSessionConfig::Audio,
|
|
93
|
+
client: OpenAI::Live::ClientConfig,
|
|
94
|
+
delegation: OpenAI::Live::ForkSessionConfig::Delegation,
|
|
95
|
+
store: T::Boolean
|
|
96
|
+
}
|
|
97
|
+
)
|
|
98
|
+
end
|
|
99
|
+
def to_hash
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
class Audio < OpenAI::Internal::Type::BaseModel
|
|
103
|
+
OrHash = T.type_alias do
|
|
104
|
+
T.any(
|
|
105
|
+
OpenAI::Live::ForkSessionConfig::Audio,
|
|
106
|
+
OpenAI::Internal::AnyHash
|
|
107
|
+
)
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
# Audio encoding and sample rate for audio sent and received over a Live WebSocket
|
|
111
|
+
# connection. WebRTC and SIP negotiate their media format separately.
|
|
112
|
+
sig {
|
|
113
|
+
returns(
|
|
114
|
+
T.nilable(
|
|
115
|
+
T.any(
|
|
116
|
+
OpenAI::Live::AudioFormat::AudioPCM,
|
|
117
|
+
OpenAI::Live::AudioFormat::AudioPCMU,
|
|
118
|
+
OpenAI::Live::AudioFormat::AudioPCMA
|
|
119
|
+
)
|
|
120
|
+
)
|
|
121
|
+
)
|
|
122
|
+
}
|
|
123
|
+
attr_reader :format_
|
|
124
|
+
|
|
125
|
+
sig {
|
|
126
|
+
params(
|
|
127
|
+
format_: T.any(
|
|
128
|
+
OpenAI::Live::AudioFormat::AudioPCM::OrHash,
|
|
129
|
+
OpenAI::Live::AudioFormat::AudioPCMU::OrHash,
|
|
130
|
+
OpenAI::Live::AudioFormat::AudioPCMA::OrHash
|
|
131
|
+
)
|
|
132
|
+
)
|
|
133
|
+
.void
|
|
134
|
+
}
|
|
135
|
+
attr_writer :format_
|
|
136
|
+
|
|
137
|
+
# Audio format for a WebSocket fork. WebRTC forks negotiate their audio format and
|
|
138
|
+
# must omit this field.
|
|
139
|
+
sig do
|
|
140
|
+
params(
|
|
141
|
+
|
|
142
|
+
format_: T.any(
|
|
143
|
+
OpenAI::Live::AudioFormat::AudioPCM::OrHash,
|
|
144
|
+
OpenAI::Live::AudioFormat::AudioPCMU::OrHash,
|
|
145
|
+
OpenAI::Live::AudioFormat::AudioPCMA::OrHash
|
|
146
|
+
)
|
|
147
|
+
)
|
|
148
|
+
.returns(T.attached_class)
|
|
149
|
+
end
|
|
150
|
+
def self.new(
|
|
151
|
+
|
|
152
|
+
# Audio encoding and sample rate for audio sent and received over a Live WebSocket
|
|
153
|
+
# connection. WebRTC and SIP negotiate their media format separately.
|
|
154
|
+
|
|
155
|
+
format_: nil
|
|
156
|
+
)
|
|
157
|
+
end
|
|
158
|
+
|
|
159
|
+
sig do
|
|
160
|
+
override.returns(
|
|
161
|
+
{
|
|
162
|
+
format_: T.any(
|
|
163
|
+
OpenAI::Live::AudioFormat::AudioPCM,
|
|
164
|
+
OpenAI::Live::AudioFormat::AudioPCMU,
|
|
165
|
+
OpenAI::Live::AudioFormat::AudioPCMA
|
|
166
|
+
)
|
|
167
|
+
}
|
|
168
|
+
)
|
|
169
|
+
end
|
|
170
|
+
def to_hash
|
|
171
|
+
end
|
|
172
|
+
|
|
173
|
+
end
|
|
174
|
+
|
|
175
|
+
class Delegation < OpenAI::Internal::Type::BaseModel
|
|
176
|
+
OrHash = T.type_alias do
|
|
177
|
+
T.any(
|
|
178
|
+
OpenAI::Live::ForkSessionConfig::Delegation,
|
|
179
|
+
OpenAI::Internal::AnyHash
|
|
180
|
+
)
|
|
181
|
+
end
|
|
182
|
+
|
|
183
|
+
# The delegation owner. Always `responses` for tasks handled by the Responses API.
|
|
184
|
+
sig { returns(Symbol) }
|
|
185
|
+
attr_accessor :type
|
|
186
|
+
|
|
187
|
+
# Responses backend settings to update. Omitted settings keep their existing
|
|
188
|
+
# values.
|
|
189
|
+
sig { returns(T.nilable(OpenAI::Live::ResponsesDelegationUpdateConfig)) }
|
|
190
|
+
attr_reader :responses
|
|
191
|
+
|
|
192
|
+
sig { params(responses: OpenAI::Live::ResponsesDelegationUpdateConfig::OrHash).void }
|
|
193
|
+
attr_writer :responses
|
|
194
|
+
|
|
195
|
+
# Overrides for the stored session’s Responses backend. Only supported when the
|
|
196
|
+
# stored session already uses Responses delegation; the delegation type cannot
|
|
197
|
+
# change.
|
|
198
|
+
sig do
|
|
199
|
+
params(
|
|
200
|
+
|
|
201
|
+
responses: OpenAI::Live::ResponsesDelegationUpdateConfig::OrHash,
|
|
202
|
+
|
|
203
|
+
type: Symbol
|
|
204
|
+
)
|
|
205
|
+
.returns(T.attached_class)
|
|
206
|
+
end
|
|
207
|
+
def self.new(
|
|
208
|
+
|
|
209
|
+
# Responses backend settings to update. Omitted settings keep their existing
|
|
210
|
+
# values.
|
|
211
|
+
responses: nil,
|
|
212
|
+
|
|
213
|
+
# The delegation owner. Always `responses` for tasks handled by the Responses API.
|
|
214
|
+
|
|
215
|
+
type: :responses
|
|
216
|
+
)
|
|
217
|
+
end
|
|
218
|
+
|
|
219
|
+
sig do
|
|
220
|
+
override.returns(
|
|
221
|
+
{type: Symbol, responses: OpenAI::Live::ResponsesDelegationUpdateConfig}
|
|
222
|
+
)
|
|
223
|
+
end
|
|
224
|
+
def to_hash
|
|
225
|
+
end
|
|
226
|
+
|
|
227
|
+
end
|
|
228
|
+
|
|
229
|
+
end
|
|
230
|
+
|
|
231
|
+
end
|
|
232
|
+
|
|
233
|
+
end
|
|
234
|
+
end
|