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,134 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module OpenAI
|
|
4
|
+
module Models
|
|
5
|
+
|
|
6
|
+
module Live
|
|
7
|
+
|
|
8
|
+
class SessionUpdateConfig < OpenAI::Internal::Type::BaseModel
|
|
9
|
+
|
|
10
|
+
OrHash = T.type_alias do
|
|
11
|
+
T.any(
|
|
12
|
+
OpenAI::Live::SessionUpdateConfig,
|
|
13
|
+
OpenAI::Internal::AnyHash
|
|
14
|
+
)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
# Delegation settings to update. The delegation type must match the current
|
|
18
|
+
# session; omitted settings retain their values.
|
|
19
|
+
sig {
|
|
20
|
+
returns(
|
|
21
|
+
T.nilable(T.any(OpenAI::Live::ClientDelegation, OpenAI::Live::SessionUpdateConfig::Delegation::Responses))
|
|
22
|
+
)
|
|
23
|
+
}
|
|
24
|
+
attr_accessor :delegation
|
|
25
|
+
|
|
26
|
+
# Changes to an active Live session. Only delegation backend settings can be
|
|
27
|
+
# updated after startup.
|
|
28
|
+
sig do
|
|
29
|
+
params(
|
|
30
|
+
|
|
31
|
+
delegation: T.nilable(
|
|
32
|
+
T.any(
|
|
33
|
+
OpenAI::Live::ClientDelegation::OrHash,
|
|
34
|
+
OpenAI::Live::SessionUpdateConfig::Delegation::Responses::OrHash
|
|
35
|
+
)
|
|
36
|
+
)
|
|
37
|
+
)
|
|
38
|
+
.returns(T.attached_class)
|
|
39
|
+
end
|
|
40
|
+
def self.new(
|
|
41
|
+
|
|
42
|
+
# Delegation settings to update. The delegation type must match the current
|
|
43
|
+
# session; omitted settings retain their values.
|
|
44
|
+
|
|
45
|
+
delegation: nil
|
|
46
|
+
)
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
sig do
|
|
50
|
+
override.returns(
|
|
51
|
+
{
|
|
52
|
+
delegation: T.nilable(
|
|
53
|
+
T.any(OpenAI::Live::ClientDelegation, OpenAI::Live::SessionUpdateConfig::Delegation::Responses)
|
|
54
|
+
)
|
|
55
|
+
}
|
|
56
|
+
)
|
|
57
|
+
end
|
|
58
|
+
def to_hash
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
# Delegation settings to update. The delegation type must match the current
|
|
62
|
+
# session; omitted settings retain their values.
|
|
63
|
+
module Delegation
|
|
64
|
+
extend OpenAI::Internal::Type::Union
|
|
65
|
+
|
|
66
|
+
Variants = T.type_alias {
|
|
67
|
+
T.any(OpenAI::Live::ClientDelegation, OpenAI::Live::SessionUpdateConfig::Delegation::Responses)
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
class Responses < OpenAI::Internal::Type::BaseModel
|
|
71
|
+
OrHash = T.type_alias do
|
|
72
|
+
T.any(
|
|
73
|
+
OpenAI::Live::SessionUpdateConfig::Delegation::Responses,
|
|
74
|
+
OpenAI::Internal::AnyHash
|
|
75
|
+
)
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
# The delegation owner. Always `responses` for tasks handled by the Responses API.
|
|
79
|
+
sig { returns(Symbol) }
|
|
80
|
+
attr_accessor :type
|
|
81
|
+
|
|
82
|
+
# Responses backend settings to update. Omitted settings keep their existing
|
|
83
|
+
# values.
|
|
84
|
+
sig { returns(T.nilable(OpenAI::Live::ResponsesDelegationUpdateConfig)) }
|
|
85
|
+
attr_reader :responses
|
|
86
|
+
|
|
87
|
+
sig { params(responses: OpenAI::Live::ResponsesDelegationUpdateConfig::OrHash).void }
|
|
88
|
+
attr_writer :responses
|
|
89
|
+
|
|
90
|
+
# Update the Responses backend for an existing Live session without changing
|
|
91
|
+
# delegation ownership.
|
|
92
|
+
sig do
|
|
93
|
+
params(
|
|
94
|
+
|
|
95
|
+
responses: OpenAI::Live::ResponsesDelegationUpdateConfig::OrHash,
|
|
96
|
+
|
|
97
|
+
type: Symbol
|
|
98
|
+
)
|
|
99
|
+
.returns(T.attached_class)
|
|
100
|
+
end
|
|
101
|
+
def self.new(
|
|
102
|
+
|
|
103
|
+
# Responses backend settings to update. Omitted settings keep their existing
|
|
104
|
+
# values.
|
|
105
|
+
responses: nil,
|
|
106
|
+
|
|
107
|
+
# The delegation owner. Always `responses` for tasks handled by the Responses API.
|
|
108
|
+
|
|
109
|
+
type: :responses
|
|
110
|
+
)
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
sig do
|
|
114
|
+
override.returns(
|
|
115
|
+
{type: Symbol, responses: OpenAI::Live::ResponsesDelegationUpdateConfig}
|
|
116
|
+
)
|
|
117
|
+
end
|
|
118
|
+
def to_hash
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
sig { override.returns(T::Array[OpenAI::Live::SessionUpdateConfig::Delegation::Variants]) }
|
|
124
|
+
def self.variants
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
end
|
|
134
|
+
end
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module OpenAI
|
|
4
|
+
module Models
|
|
5
|
+
|
|
6
|
+
module Live
|
|
7
|
+
|
|
8
|
+
class SessionUpdateEvent < OpenAI::Internal::Type::BaseModel
|
|
9
|
+
|
|
10
|
+
OrHash = T.type_alias do
|
|
11
|
+
T.any(
|
|
12
|
+
OpenAI::Live::SessionUpdateEvent,
|
|
13
|
+
OpenAI::Internal::AnyHash
|
|
14
|
+
)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
# Sparse delegation updates. Omitted settings retain their values. The delegation
|
|
18
|
+
# type cannot change, including resetting Responses delegation to null or client.
|
|
19
|
+
# Model, frontend instructions, audio, and startup input are immutable.
|
|
20
|
+
sig { returns(OpenAI::Live::SessionUpdateConfig) }
|
|
21
|
+
attr_reader :session
|
|
22
|
+
|
|
23
|
+
sig { params(session: OpenAI::Live::SessionUpdateConfig::OrHash).void }
|
|
24
|
+
attr_writer :session
|
|
25
|
+
|
|
26
|
+
# The Live client event type. Always `session.update`.
|
|
27
|
+
sig { returns(Symbol) }
|
|
28
|
+
attr_accessor :type
|
|
29
|
+
|
|
30
|
+
# Optional client identifier for correlating this command with a server event's
|
|
31
|
+
# client_event_id or error.client_event_id.
|
|
32
|
+
sig { returns(T.nilable(String)) }
|
|
33
|
+
attr_accessor :event_id
|
|
34
|
+
|
|
35
|
+
# Update the delegation settings of an active Live session. The server
|
|
36
|
+
# acknowledges accepted changes with `session.updated`.
|
|
37
|
+
sig do
|
|
38
|
+
params(
|
|
39
|
+
|
|
40
|
+
session: OpenAI::Live::SessionUpdateConfig::OrHash,
|
|
41
|
+
|
|
42
|
+
event_id: T.nilable(String),
|
|
43
|
+
|
|
44
|
+
type: Symbol
|
|
45
|
+
)
|
|
46
|
+
.returns(T.attached_class)
|
|
47
|
+
end
|
|
48
|
+
def self.new(
|
|
49
|
+
|
|
50
|
+
# Sparse delegation updates. Omitted settings retain their values. The delegation
|
|
51
|
+
# type cannot change, including resetting Responses delegation to null or client.
|
|
52
|
+
# Model, frontend instructions, audio, and startup input are immutable.
|
|
53
|
+
session:,
|
|
54
|
+
|
|
55
|
+
# Optional client identifier for correlating this command with a server event's
|
|
56
|
+
# client_event_id or error.client_event_id.
|
|
57
|
+
event_id: nil,
|
|
58
|
+
|
|
59
|
+
# The Live client event type. Always `session.update`.
|
|
60
|
+
|
|
61
|
+
type: :"session.update"
|
|
62
|
+
)
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
sig do
|
|
66
|
+
override.returns(
|
|
67
|
+
{session: OpenAI::Live::SessionUpdateConfig, type: Symbol, event_id: T.nilable(String)}
|
|
68
|
+
)
|
|
69
|
+
end
|
|
70
|
+
def to_hash
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
end
|
|
78
|
+
end
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module OpenAI
|
|
4
|
+
module Models
|
|
5
|
+
|
|
6
|
+
module Live
|
|
7
|
+
|
|
8
|
+
class SessionUpdatedEvent < OpenAI::Internal::Type::BaseModel
|
|
9
|
+
|
|
10
|
+
OrHash = T.type_alias do
|
|
11
|
+
T.any(
|
|
12
|
+
OpenAI::Live::SessionUpdatedEvent,
|
|
13
|
+
OpenAI::Internal::AnyHash
|
|
14
|
+
)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
# The unique ID of the Live server event.
|
|
18
|
+
sig { returns(String) }
|
|
19
|
+
attr_accessor :event_id
|
|
20
|
+
|
|
21
|
+
# The resolved Live session configuration and server-assigned session metadata.
|
|
22
|
+
sig { returns(OpenAI::Live::SessionResource) }
|
|
23
|
+
attr_reader :session
|
|
24
|
+
|
|
25
|
+
sig { params(session: OpenAI::Live::SessionResource::OrHash).void }
|
|
26
|
+
attr_writer :session
|
|
27
|
+
|
|
28
|
+
# The event type, always `session.updated`.
|
|
29
|
+
sig { returns(Symbol) }
|
|
30
|
+
attr_accessor :type
|
|
31
|
+
|
|
32
|
+
# The event_id of the client command associated with this server event, when
|
|
33
|
+
# supplied.
|
|
34
|
+
sig { returns(T.nilable(String)) }
|
|
35
|
+
attr_reader :client_event_id
|
|
36
|
+
|
|
37
|
+
sig { params(client_event_id: String).void }
|
|
38
|
+
attr_writer :client_event_id
|
|
39
|
+
|
|
40
|
+
# Returned when a Live session update is accepted. Contains the resolved session
|
|
41
|
+
# configuration after the update.
|
|
42
|
+
sig do
|
|
43
|
+
params(
|
|
44
|
+
|
|
45
|
+
event_id: String,
|
|
46
|
+
|
|
47
|
+
session: OpenAI::Live::SessionResource::OrHash,
|
|
48
|
+
|
|
49
|
+
client_event_id: String,
|
|
50
|
+
|
|
51
|
+
type: Symbol
|
|
52
|
+
)
|
|
53
|
+
.returns(T.attached_class)
|
|
54
|
+
end
|
|
55
|
+
def self.new(
|
|
56
|
+
|
|
57
|
+
# The unique ID of the Live server event.
|
|
58
|
+
event_id:,
|
|
59
|
+
|
|
60
|
+
# The resolved Live session configuration and server-assigned session metadata.
|
|
61
|
+
session:,
|
|
62
|
+
|
|
63
|
+
# The event_id of the client command associated with this server event, when
|
|
64
|
+
# supplied.
|
|
65
|
+
client_event_id: nil,
|
|
66
|
+
|
|
67
|
+
# The event type, always `session.updated`.
|
|
68
|
+
|
|
69
|
+
type: :"session.updated"
|
|
70
|
+
)
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
sig do
|
|
74
|
+
override.returns(
|
|
75
|
+
{event_id: String, session: OpenAI::Live::SessionResource, type: Symbol, client_event_id: T.nilable(String)}
|
|
76
|
+
)
|
|
77
|
+
end
|
|
78
|
+
def to_hash
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
end
|
|
86
|
+
end
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module OpenAI
|
|
4
|
+
module Models
|
|
5
|
+
|
|
6
|
+
module Live
|
|
7
|
+
|
|
8
|
+
class SessionUsage < OpenAI::Internal::Type::BaseModel
|
|
9
|
+
|
|
10
|
+
OrHash = T.type_alias do
|
|
11
|
+
T.any(
|
|
12
|
+
OpenAI::Live::SessionUsage,
|
|
13
|
+
OpenAI::Internal::AnyHash
|
|
14
|
+
)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
# The cumulative Live audio duration in seconds. Do not sum this value across
|
|
18
|
+
# usage events.
|
|
19
|
+
sig { returns(Float) }
|
|
20
|
+
attr_accessor :seconds
|
|
21
|
+
|
|
22
|
+
# Cumulative audio duration for a Live session. Values are totals for the session,
|
|
23
|
+
# not increments to sum across usage events.
|
|
24
|
+
sig do
|
|
25
|
+
params(
|
|
26
|
+
|
|
27
|
+
seconds: Float
|
|
28
|
+
)
|
|
29
|
+
.returns(T.attached_class)
|
|
30
|
+
end
|
|
31
|
+
def self.new(
|
|
32
|
+
|
|
33
|
+
# The cumulative Live audio duration in seconds. Do not sum this value across
|
|
34
|
+
# usage events.
|
|
35
|
+
|
|
36
|
+
seconds:
|
|
37
|
+
)
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
sig do
|
|
41
|
+
override.returns(
|
|
42
|
+
{seconds: Float}
|
|
43
|
+
)
|
|
44
|
+
end
|
|
45
|
+
def to_hash
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
end
|
|
53
|
+
end
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module OpenAI
|
|
4
|
+
module Models
|
|
5
|
+
|
|
6
|
+
module Live
|
|
7
|
+
|
|
8
|
+
class SessionUsageUpdatedEvent < OpenAI::Internal::Type::BaseModel
|
|
9
|
+
|
|
10
|
+
OrHash = T.type_alias do
|
|
11
|
+
T.any(
|
|
12
|
+
OpenAI::Live::SessionUsageUpdatedEvent,
|
|
13
|
+
OpenAI::Internal::AnyHash
|
|
14
|
+
)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
# The unique ID of the Live server event.
|
|
18
|
+
sig { returns(String) }
|
|
19
|
+
attr_accessor :event_id
|
|
20
|
+
|
|
21
|
+
# The event type, always `session.usage.updated`.
|
|
22
|
+
sig { returns(Symbol) }
|
|
23
|
+
attr_accessor :type
|
|
24
|
+
|
|
25
|
+
# The cumulative Live audio usage so far.
|
|
26
|
+
sig { returns(OpenAI::Live::SessionUsage) }
|
|
27
|
+
attr_reader :usage
|
|
28
|
+
|
|
29
|
+
sig { params(usage: OpenAI::Live::SessionUsage::OrHash).void }
|
|
30
|
+
attr_writer :usage
|
|
31
|
+
|
|
32
|
+
# The event_id of the client command associated with this server event, when
|
|
33
|
+
# supplied.
|
|
34
|
+
sig { returns(T.nilable(String)) }
|
|
35
|
+
attr_reader :client_event_id
|
|
36
|
+
|
|
37
|
+
sig { params(client_event_id: String).void }
|
|
38
|
+
attr_writer :client_event_id
|
|
39
|
+
|
|
40
|
+
# The latest measured Live context-window usage. Omitted when the context limit is
|
|
41
|
+
# unknown.
|
|
42
|
+
sig { returns(T.nilable(OpenAI::Live::SessionUsageUpdatedEvent::ContextWindow)) }
|
|
43
|
+
attr_reader :context_window
|
|
44
|
+
|
|
45
|
+
sig { params(context_window: OpenAI::Live::SessionUsageUpdatedEvent::ContextWindow::OrHash).void }
|
|
46
|
+
attr_writer :context_window
|
|
47
|
+
|
|
48
|
+
# Reports cumulative Live audio usage and, when available, the most recent
|
|
49
|
+
# context-window usage. Delegated Responses token usage is reported separately in
|
|
50
|
+
# response.event events.
|
|
51
|
+
sig do
|
|
52
|
+
params(
|
|
53
|
+
|
|
54
|
+
event_id: String,
|
|
55
|
+
|
|
56
|
+
usage: OpenAI::Live::SessionUsage::OrHash,
|
|
57
|
+
|
|
58
|
+
client_event_id: String,
|
|
59
|
+
|
|
60
|
+
context_window: OpenAI::Live::SessionUsageUpdatedEvent::ContextWindow::OrHash,
|
|
61
|
+
|
|
62
|
+
type: Symbol
|
|
63
|
+
)
|
|
64
|
+
.returns(T.attached_class)
|
|
65
|
+
end
|
|
66
|
+
def self.new(
|
|
67
|
+
|
|
68
|
+
# The unique ID of the Live server event.
|
|
69
|
+
event_id:,
|
|
70
|
+
|
|
71
|
+
# The cumulative Live audio usage so far.
|
|
72
|
+
usage:,
|
|
73
|
+
|
|
74
|
+
# The event_id of the client command associated with this server event, when
|
|
75
|
+
# supplied.
|
|
76
|
+
client_event_id: nil,
|
|
77
|
+
|
|
78
|
+
# The latest measured Live context-window usage. Omitted when the context limit is
|
|
79
|
+
# unknown.
|
|
80
|
+
context_window: nil,
|
|
81
|
+
|
|
82
|
+
# The event type, always `session.usage.updated`.
|
|
83
|
+
|
|
84
|
+
type: :"session.usage.updated"
|
|
85
|
+
)
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
sig do
|
|
89
|
+
override.returns(
|
|
90
|
+
{
|
|
91
|
+
event_id: String,
|
|
92
|
+
type: Symbol,
|
|
93
|
+
usage: OpenAI::Live::SessionUsage,
|
|
94
|
+
client_event_id: T.nilable(String),
|
|
95
|
+
context_window: T.nilable(OpenAI::Live::SessionUsageUpdatedEvent::ContextWindow)
|
|
96
|
+
}
|
|
97
|
+
)
|
|
98
|
+
end
|
|
99
|
+
def to_hash
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
class ContextWindow < OpenAI::Internal::Type::BaseModel
|
|
103
|
+
OrHash = T.type_alias do
|
|
104
|
+
T.any(
|
|
105
|
+
OpenAI::Live::SessionUsageUpdatedEvent::ContextWindow,
|
|
106
|
+
OpenAI::Internal::AnyHash
|
|
107
|
+
)
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
# The latest active context token count divided by the Live model context limit.
|
|
111
|
+
# Can decrease after compaction and may lag between measured audio frames.
|
|
112
|
+
sig { returns(Float) }
|
|
113
|
+
attr_accessor :usage_ratio
|
|
114
|
+
|
|
115
|
+
# The latest measured Live context-window usage. Omitted when the context limit is
|
|
116
|
+
# unknown.
|
|
117
|
+
sig do
|
|
118
|
+
params(
|
|
119
|
+
|
|
120
|
+
usage_ratio: Float
|
|
121
|
+
)
|
|
122
|
+
.returns(T.attached_class)
|
|
123
|
+
end
|
|
124
|
+
def self.new(
|
|
125
|
+
|
|
126
|
+
# The latest active context token count divided by the Live model context limit.
|
|
127
|
+
# Can decrease after compaction and may lag between measured audio frames.
|
|
128
|
+
|
|
129
|
+
usage_ratio:
|
|
130
|
+
)
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
sig do
|
|
134
|
+
override.returns(
|
|
135
|
+
{usage_ratio: Float}
|
|
136
|
+
)
|
|
137
|
+
end
|
|
138
|
+
def to_hash
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
end
|
|
142
|
+
|
|
143
|
+
end
|
|
144
|
+
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
end
|
|
148
|
+
end
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module OpenAI
|
|
4
|
+
module Models
|
|
5
|
+
|
|
6
|
+
module Live
|
|
7
|
+
|
|
8
|
+
class ThinkingAppendEvent < OpenAI::Internal::Type::BaseModel
|
|
9
|
+
|
|
10
|
+
OrHash = T.type_alias do
|
|
11
|
+
T.any(
|
|
12
|
+
OpenAI::Live::ThinkingAppendEvent,
|
|
13
|
+
OpenAI::Internal::AnyHash
|
|
14
|
+
)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
# Silent reasoning or progress context, limited to 500 tokens. It does not
|
|
18
|
+
# directly request speech, but can influence later speech and is not a secrecy
|
|
19
|
+
# boundary.
|
|
20
|
+
sig { returns(String) }
|
|
21
|
+
attr_accessor :content
|
|
22
|
+
|
|
23
|
+
# Required, nullable. Set null for general session context, or use the ID from
|
|
24
|
+
# session.delegation.created for an existing client delegation. Non-null IDs are
|
|
25
|
+
# not accepted with Responses delegation.
|
|
26
|
+
sig { returns(T.nilable(String)) }
|
|
27
|
+
attr_accessor :delegation_id
|
|
28
|
+
|
|
29
|
+
# The Live client event type. Always `session.thinking.append`.
|
|
30
|
+
sig { returns(Symbol) }
|
|
31
|
+
attr_accessor :type
|
|
32
|
+
|
|
33
|
+
# Optional client identifier for correlating this command with a server event's
|
|
34
|
+
# client_event_id or error.client_event_id.
|
|
35
|
+
sig { returns(T.nilable(String)) }
|
|
36
|
+
attr_accessor :event_id
|
|
37
|
+
|
|
38
|
+
# Provide silent reasoning or progress context to the Live model, optionally for
|
|
39
|
+
# an existing client delegation.
|
|
40
|
+
sig do
|
|
41
|
+
params(
|
|
42
|
+
|
|
43
|
+
content: String,
|
|
44
|
+
|
|
45
|
+
delegation_id: T.nilable(String),
|
|
46
|
+
|
|
47
|
+
event_id: T.nilable(String),
|
|
48
|
+
|
|
49
|
+
type: Symbol
|
|
50
|
+
)
|
|
51
|
+
.returns(T.attached_class)
|
|
52
|
+
end
|
|
53
|
+
def self.new(
|
|
54
|
+
|
|
55
|
+
# Silent reasoning or progress context, limited to 500 tokens. It does not
|
|
56
|
+
# directly request speech, but can influence later speech and is not a secrecy
|
|
57
|
+
# boundary.
|
|
58
|
+
content:,
|
|
59
|
+
|
|
60
|
+
# Required, nullable. Set null for general session context, or use the ID from
|
|
61
|
+
# session.delegation.created for an existing client delegation. Non-null IDs are
|
|
62
|
+
# not accepted with Responses delegation.
|
|
63
|
+
delegation_id:,
|
|
64
|
+
|
|
65
|
+
# Optional client identifier for correlating this command with a server event's
|
|
66
|
+
# client_event_id or error.client_event_id.
|
|
67
|
+
event_id: nil,
|
|
68
|
+
|
|
69
|
+
# The Live client event type. Always `session.thinking.append`.
|
|
70
|
+
|
|
71
|
+
type: :"session.thinking.append"
|
|
72
|
+
)
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
sig do
|
|
76
|
+
override.returns(
|
|
77
|
+
{content: String, delegation_id: T.nilable(String), type: Symbol, event_id: T.nilable(String)}
|
|
78
|
+
)
|
|
79
|
+
end
|
|
80
|
+
def to_hash
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
end
|
|
88
|
+
end
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module OpenAI
|
|
4
|
+
module Models
|
|
5
|
+
|
|
6
|
+
module Live
|
|
7
|
+
|
|
8
|
+
class ThinkingAppendedEvent < OpenAI::Internal::Type::BaseModel
|
|
9
|
+
|
|
10
|
+
OrHash = T.type_alias do
|
|
11
|
+
T.any(
|
|
12
|
+
OpenAI::Live::ThinkingAppendedEvent,
|
|
13
|
+
OpenAI::Internal::AnyHash
|
|
14
|
+
)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
# The end of this event on the Live session timeline, in milliseconds from the
|
|
18
|
+
# beginning of the session. For appended context, this can equal start_ms.
|
|
19
|
+
sig { returns(Integer) }
|
|
20
|
+
attr_accessor :end_ms
|
|
21
|
+
|
|
22
|
+
# The unique ID of the Live server event.
|
|
23
|
+
sig { returns(String) }
|
|
24
|
+
attr_accessor :event_id
|
|
25
|
+
|
|
26
|
+
# The start of this event on the Live session timeline, in milliseconds from the
|
|
27
|
+
# beginning of the session.
|
|
28
|
+
sig { returns(Integer) }
|
|
29
|
+
attr_accessor :start_ms
|
|
30
|
+
|
|
31
|
+
# The event type, always `session.thinking.appended`.
|
|
32
|
+
sig { returns(Symbol) }
|
|
33
|
+
attr_accessor :type
|
|
34
|
+
|
|
35
|
+
# The event_id of the client command associated with this server event, when
|
|
36
|
+
# supplied.
|
|
37
|
+
sig { returns(T.nilable(String)) }
|
|
38
|
+
attr_reader :client_event_id
|
|
39
|
+
|
|
40
|
+
sig { params(client_event_id: String).void }
|
|
41
|
+
attr_writer :client_event_id
|
|
42
|
+
|
|
43
|
+
# Returned when a session.thinking.append command is accepted into the Live
|
|
44
|
+
# session timeline. Acknowledges the added reasoning context without guaranteeing
|
|
45
|
+
# any spoken output.
|
|
46
|
+
sig do
|
|
47
|
+
params(
|
|
48
|
+
|
|
49
|
+
end_ms: Integer,
|
|
50
|
+
|
|
51
|
+
event_id: String,
|
|
52
|
+
|
|
53
|
+
start_ms: Integer,
|
|
54
|
+
|
|
55
|
+
client_event_id: String,
|
|
56
|
+
|
|
57
|
+
type: Symbol
|
|
58
|
+
)
|
|
59
|
+
.returns(T.attached_class)
|
|
60
|
+
end
|
|
61
|
+
def self.new(
|
|
62
|
+
|
|
63
|
+
# The end of this event on the Live session timeline, in milliseconds from the
|
|
64
|
+
# beginning of the session. For appended context, this can equal start_ms.
|
|
65
|
+
end_ms:,
|
|
66
|
+
|
|
67
|
+
# The unique ID of the Live server event.
|
|
68
|
+
event_id:,
|
|
69
|
+
|
|
70
|
+
# The start of this event on the Live session timeline, in milliseconds from the
|
|
71
|
+
# beginning of the session.
|
|
72
|
+
start_ms:,
|
|
73
|
+
|
|
74
|
+
# The event_id of the client command associated with this server event, when
|
|
75
|
+
# supplied.
|
|
76
|
+
client_event_id: nil,
|
|
77
|
+
|
|
78
|
+
# The event type, always `session.thinking.appended`.
|
|
79
|
+
|
|
80
|
+
type: :"session.thinking.appended"
|
|
81
|
+
)
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
sig do
|
|
85
|
+
override.returns(
|
|
86
|
+
{end_ms: Integer, event_id: String, start_ms: Integer, type: Symbol, client_event_id: T.nilable(String)}
|
|
87
|
+
)
|
|
88
|
+
end
|
|
89
|
+
def to_hash
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
end
|
|
97
|
+
end
|