openai 0.90.0 → 0.92.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.
Files changed (143) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +31 -0
  3. data/README.md +1 -1
  4. data/examples/realtime/README.md +8 -0
  5. data/examples/realtime/browser/README.md +167 -0
  6. data/examples/realtime/browser/index.html +19 -0
  7. data/examples/realtime/browser/page.js +21 -0
  8. data/examples/realtime/browser/peer.js +180 -0
  9. data/examples/realtime/browser/server.rb +281 -0
  10. data/examples/responses/websocket_workflows.rb +66 -6
  11. data/lib/openai/auth/workload_identity.rb +5 -1
  12. data/lib/openai/auth/workload_identity_auth.rb +2 -2
  13. data/lib/openai/auth/x509_token_exchange.rb +1 -1
  14. data/lib/openai/helpers/local_audio/process.rb +1 -1
  15. data/lib/openai/helpers/responses_websocket/connection.rb +2 -1
  16. data/lib/openai/helpers/responses_websocket/session.rb +551 -0
  17. data/lib/openai/helpers/responses_websocket.rb +1 -0
  18. data/lib/openai/helpers/sorbet.rb +1 -1
  19. data/lib/openai/helpers/websocket/async_websocket_transport.rb +6 -1
  20. data/lib/openai/internal/poller.rb +2 -2
  21. data/lib/openai/internal/transport/base_client.rb +1 -1
  22. data/lib/openai/internal/util.rb +1 -1
  23. data/lib/openai/models/beta/agents/session_update_params.rb +108 -1
  24. data/lib/openai/models/beta/beta_response.rb +9 -3
  25. data/lib/openai/models/beta/beta_response_compaction_compacting_event.rb +75 -0
  26. data/lib/openai/models/beta/beta_response_stream_event.rb +4 -1
  27. data/lib/openai/models/beta/beta_responses_client_event.rb +25 -4
  28. data/lib/openai/models/beta/beta_responses_server_event.rb +39 -1
  29. data/lib/openai/models/beta/beta_tool.rb +16 -0
  30. data/lib/openai/models/beta/response_compact_params.rb +9 -3
  31. data/lib/openai/models/beta/response_create_params.rb +21 -4
  32. data/lib/openai/models/beta/session_turn_error.rb +3 -0
  33. data/lib/openai/models/chat_model.rb +3 -1
  34. data/lib/openai/models/realtime/realtime_response_create_mcp_tool.rb +16 -0
  35. data/lib/openai/models/realtime/realtime_session_create_response.rb +16 -0
  36. data/lib/openai/models/realtime/realtime_tools_config_union.rb +16 -0
  37. data/lib/openai/models/responses/response_compact_params.rb +9 -3
  38. data/lib/openai/models/responses/response_compaction_compacting_event.rb +49 -0
  39. data/lib/openai/models/responses/response_create_params.rb +12 -1
  40. data/lib/openai/models/responses/response_stream_event.rb +4 -1
  41. data/lib/openai/models/responses/responses_client_event.rb +12 -1
  42. data/lib/openai/models/responses/responses_server_event.rb +36 -1
  43. data/lib/openai/models/responses/tool.rb +16 -0
  44. data/lib/openai/models/webhooks/deleted_webhook_endpoint.rb +38 -0
  45. data/lib/openai/models/webhooks/event_type_list_params.rb +16 -0
  46. data/lib/openai/models/webhooks/realtime_call_incoming_webhook_event.rb +6 -8
  47. data/lib/openai/models/webhooks/webhook_create_params.rb +73 -0
  48. data/lib/openai/models/webhooks/webhook_delete_params.rb +22 -0
  49. data/lib/openai/models/webhooks/webhook_endpoint.rb +85 -0
  50. data/lib/openai/models/webhooks/webhook_endpoint_list.rb +55 -0
  51. data/lib/openai/models/webhooks/webhook_endpoint_test_result.rb +58 -0
  52. data/lib/openai/models/webhooks/webhook_endpoint_with_secret.rb +105 -0
  53. data/lib/openai/models/webhooks/webhook_event_type_list.rb +28 -0
  54. data/lib/openai/models/webhooks/webhook_list_params.rb +34 -0
  55. data/lib/openai/models/webhooks/webhook_retrieve_params.rb +22 -0
  56. data/lib/openai/models/webhooks/webhook_rotate_secret_params.rb +34 -0
  57. data/lib/openai/models/webhooks/webhook_test_params.rb +59 -0
  58. data/lib/openai/models/webhooks/webhook_update_params.rb +80 -0
  59. data/lib/openai/resources/beta/agents/sessions.rb +6 -2
  60. data/lib/openai/resources/beta/responses.rb +2 -2
  61. data/lib/openai/resources/responses.rb +2 -2
  62. data/lib/openai/resources/webhooks/event_types.rb +35 -0
  63. data/lib/openai/resources/webhooks.rb +195 -0
  64. data/lib/openai/version.rb +1 -1
  65. data/lib/openai.rb +17 -0
  66. data/rbi/openai/helpers/responses_websocket/connection.rbi +5 -0
  67. data/rbi/openai/helpers/responses_websocket/session.rbi +206 -0
  68. data/rbi/openai/models/beta/agents/session_update_params.rbi +178 -0
  69. data/rbi/openai/models/beta/beta_response.rbi +6 -1
  70. data/rbi/openai/models/beta/beta_response_compaction_compacting_event.rbi +136 -0
  71. data/rbi/openai/models/beta/beta_response_stream_event.rbi +1 -0
  72. data/rbi/openai/models/beta/beta_responses_client_event.rbi +27 -4
  73. data/rbi/openai/models/beta/beta_responses_server_event.rbi +77 -0
  74. data/rbi/openai/models/beta/beta_tool.rbi +12 -0
  75. data/rbi/openai/models/beta/response_compact_params.rbi +6 -1
  76. data/rbi/openai/models/beta/response_create_params.rbi +21 -1
  77. data/rbi/openai/models/beta/session_turn_error.rbi +6 -0
  78. data/rbi/openai/models/chat_model.rbi +3 -1
  79. data/rbi/openai/models/realtime/realtime_response_create_mcp_tool.rbi +12 -0
  80. data/rbi/openai/models/realtime/realtime_session_create_response.rbi +12 -0
  81. data/rbi/openai/models/realtime/realtime_tools_config_union.rbi +12 -0
  82. data/rbi/openai/models/responses/response_compact_params.rbi +6 -1
  83. data/rbi/openai/models/responses/response_compaction_compacting_event.rbi +78 -0
  84. data/rbi/openai/models/responses/response_create_params.rbi +15 -0
  85. data/rbi/openai/models/responses/response_stream_event.rbi +1 -0
  86. data/rbi/openai/models/responses/responses_client_event.rbi +15 -0
  87. data/rbi/openai/models/responses/responses_server_event.rbi +71 -0
  88. data/rbi/openai/models/responses/tool.rbi +12 -0
  89. data/rbi/openai/models/webhooks/deleted_webhook_endpoint.rbi +67 -0
  90. data/rbi/openai/models/webhooks/event_type_list_params.rbi +37 -0
  91. data/rbi/openai/models/webhooks/realtime_call_incoming_webhook_event.rbi +6 -8
  92. data/rbi/openai/models/webhooks/webhook_create_params.rbi +139 -0
  93. data/rbi/openai/models/webhooks/webhook_delete_params.rbi +53 -0
  94. data/rbi/openai/models/webhooks/webhook_endpoint.rbi +126 -0
  95. data/rbi/openai/models/webhooks/webhook_endpoint_list.rbi +91 -0
  96. data/rbi/openai/models/webhooks/webhook_endpoint_test_result.rbi +87 -0
  97. data/rbi/openai/models/webhooks/webhook_endpoint_with_secret.rbi +138 -0
  98. data/rbi/openai/models/webhooks/webhook_event_type_list.rbi +58 -0
  99. data/rbi/openai/models/webhooks/webhook_list_params.rbi +67 -0
  100. data/rbi/openai/models/webhooks/webhook_retrieve_params.rbi +53 -0
  101. data/rbi/openai/models/webhooks/webhook_rotate_secret_params.rbi +71 -0
  102. data/rbi/openai/models/webhooks/webhook_test_params.rbi +124 -0
  103. data/rbi/openai/models/webhooks/webhook_update_params.rbi +156 -0
  104. data/rbi/openai/resources/beta/agents/sessions.rbi +5 -1
  105. data/rbi/openai/resources/webhooks/event_types.rbi +24 -0
  106. data/rbi/openai/resources/webhooks.rbi +126 -0
  107. data/responses-websocket.md +117 -10
  108. data/sig/openai/helpers/responses_websocket/connection.rbs +5 -0
  109. data/sig/openai/helpers/responses_websocket/session.rbs +123 -0
  110. data/sig/openai/models/beta/agents/session_update_params.rbs +99 -0
  111. data/sig/openai/models/beta/beta_response.rbs +6 -2
  112. data/sig/openai/models/beta/beta_response_compaction_compacting_event.rbs +58 -0
  113. data/sig/openai/models/beta/beta_response_stream_event.rbs +1 -0
  114. data/sig/openai/models/beta/beta_responses_client_event.rbs +13 -2
  115. data/sig/openai/models/beta/beta_responses_server_event.rbs +35 -0
  116. data/sig/openai/models/beta/response_compact_params.rbs +6 -2
  117. data/sig/openai/models/beta/response_create_params.rbs +13 -2
  118. data/sig/openai/models/beta/session_turn_error.rbs +4 -0
  119. data/sig/openai/models/chat_model.rbs +6 -2
  120. data/sig/openai/models/responses/response_compact_params.rbs +6 -2
  121. data/sig/openai/models/responses/response_compaction_compacting_event.rbs +37 -0
  122. data/sig/openai/models/responses/response_create_params.rbs +7 -0
  123. data/sig/openai/models/responses/response_stream_event.rbs +1 -0
  124. data/sig/openai/models/responses/responses_client_event.rbs +7 -0
  125. data/sig/openai/models/responses/responses_server_event.rbs +32 -0
  126. data/sig/openai/models/webhooks/deleted_webhook_endpoint.rbs +28 -0
  127. data/sig/openai/models/webhooks/event_type_list_params.rbs +16 -0
  128. data/sig/openai/models/webhooks/webhook_create_params.rbs +83 -0
  129. data/sig/openai/models/webhooks/webhook_delete_params.rbs +25 -0
  130. data/sig/openai/models/webhooks/webhook_endpoint.rbs +59 -0
  131. data/sig/openai/models/webhooks/webhook_endpoint_list.rbs +42 -0
  132. data/sig/openai/models/webhooks/webhook_endpoint_test_result.rbs +42 -0
  133. data/sig/openai/models/webhooks/webhook_endpoint_with_secret.rbs +64 -0
  134. data/sig/openai/models/webhooks/webhook_event_type_list.rbs +17 -0
  135. data/sig/openai/models/webhooks/webhook_list_params.rbs +35 -0
  136. data/sig/openai/models/webhooks/webhook_retrieve_params.rbs +25 -0
  137. data/sig/openai/models/webhooks/webhook_rotate_secret_params.rbs +35 -0
  138. data/sig/openai/models/webhooks/webhook_test_params.rbs +78 -0
  139. data/sig/openai/models/webhooks/webhook_update_params.rbs +96 -0
  140. data/sig/openai/resources/beta/agents/sessions.rbs +1 -0
  141. data/sig/openai/resources/webhooks/event_types.rbs +13 -0
  142. data/sig/openai/resources/webhooks.rbs +45 -0
  143. metadata +61 -2
@@ -22,6 +22,13 @@ module OpenAI
22
22
  sig { returns(String) }
23
23
  attr_accessor :session_id
24
24
 
25
+ # Model settings for subsequent turns. Omitted fields stay unchanged.
26
+ sig { returns(T.nilable(OpenAI::Beta::Agents::SessionUpdateParams::Agent)) }
27
+ attr_reader :agent
28
+
29
+ sig { params(agent: OpenAI::Beta::Agents::SessionUpdateParams::Agent::OrHash).void }
30
+ attr_writer :agent
31
+
25
32
  # Replaces all metadata. Omit to leave unchanged, or pass null or {} to clear it.
26
33
  # Up to 16 string key-value pairs, with keys up to 64 and values up to 512
27
34
  # characters.
@@ -33,6 +40,8 @@ module OpenAI
33
40
 
34
41
  session_id: String,
35
42
 
43
+ agent: OpenAI::Beta::Agents::SessionUpdateParams::Agent::OrHash,
44
+
36
45
  metadata: T.nilable(T::Hash[Symbol, String]),
37
46
 
38
47
  request_options: OpenAI::RequestOptions::OrHash
@@ -43,6 +52,9 @@ module OpenAI
43
52
 
44
53
  session_id:,
45
54
 
55
+ # Model settings for subsequent turns. Omitted fields stay unchanged.
56
+ agent: nil,
57
+
46
58
  # Replaces all metadata. Omit to leave unchanged, or pass null or {} to clear it.
47
59
  # Up to 16 string key-value pairs, with keys up to 64 and values up to 512
48
60
  # characters.
@@ -56,6 +68,7 @@ module OpenAI
56
68
  override.returns(
57
69
  {
58
70
  session_id: String,
71
+ agent: OpenAI::Beta::Agents::SessionUpdateParams::Agent,
59
72
  metadata: T.nilable(T::Hash[Symbol, String]),
60
73
  request_options: OpenAI::RequestOptions
61
74
  }
@@ -64,6 +77,171 @@ module OpenAI
64
77
  def to_hash
65
78
  end
66
79
 
80
+ class Agent < OpenAI::Internal::Type::BaseModel
81
+ OrHash = T.type_alias do
82
+ T.any(
83
+ OpenAI::Beta::Agents::SessionUpdateParams::Agent,
84
+ OpenAI::Internal::AnyHash
85
+ )
86
+ end
87
+
88
+ # The model for subsequent turns. Omit to keep the current model.
89
+ sig { returns(T.nilable(String)) }
90
+ attr_reader :model
91
+
92
+ sig { params(model: String).void }
93
+ attr_writer :model
94
+
95
+ # Reasoning settings to update. Omit to keep the current effort.
96
+ sig { returns(T.nilable(OpenAI::Beta::Agents::SessionUpdateParams::Agent::Reasoning)) }
97
+ attr_reader :reasoning
98
+
99
+ sig { params(reasoning: OpenAI::Beta::Agents::SessionUpdateParams::Agent::Reasoning::OrHash).void }
100
+ attr_writer :reasoning
101
+
102
+ # The service tier used for model requests.
103
+ sig { returns(T.nilable(OpenAI::Beta::Agents::SessionUpdateParams::Agent::ServiceTier::OrSymbol)) }
104
+ attr_accessor :service_tier
105
+
106
+ # Model settings for subsequent turns. Omitted fields stay unchanged.
107
+ sig do
108
+ params(
109
+
110
+ model: String,
111
+
112
+ reasoning: OpenAI::Beta::Agents::SessionUpdateParams::Agent::Reasoning::OrHash,
113
+
114
+ service_tier: T.nilable(OpenAI::Beta::Agents::SessionUpdateParams::Agent::ServiceTier::OrSymbol)
115
+ )
116
+ .returns(T.attached_class)
117
+ end
118
+ def self.new(
119
+
120
+ # The model for subsequent turns. Omit to keep the current model.
121
+ model: nil,
122
+
123
+ # Reasoning settings to update. Omit to keep the current effort.
124
+ reasoning: nil,
125
+
126
+ # The service tier used for model requests.
127
+
128
+ service_tier: nil
129
+ )
130
+ end
131
+
132
+ sig do
133
+ override.returns(
134
+ {
135
+ model: String,
136
+ reasoning: OpenAI::Beta::Agents::SessionUpdateParams::Agent::Reasoning,
137
+ service_tier: T.nilable(OpenAI::Beta::Agents::SessionUpdateParams::Agent::ServiceTier::OrSymbol)
138
+ }
139
+ )
140
+ end
141
+ def to_hash
142
+ end
143
+
144
+ class Reasoning < OpenAI::Internal::Type::BaseModel
145
+ OrHash = T.type_alias do
146
+ T.any(
147
+ OpenAI::Beta::Agents::SessionUpdateParams::Agent::Reasoning,
148
+ OpenAI::Internal::AnyHash
149
+ )
150
+ end
151
+
152
+ # The amount of reasoning effort the model should use.
153
+ sig { returns(T.nilable(OpenAI::Beta::Agents::SessionUpdateParams::Agent::Reasoning::Effort::OrSymbol)) }
154
+ attr_accessor :effort
155
+
156
+ # Reasoning settings to update. Omit to keep the current effort.
157
+ sig do
158
+ params(
159
+
160
+ effort: T.nilable(OpenAI::Beta::Agents::SessionUpdateParams::Agent::Reasoning::Effort::OrSymbol)
161
+ )
162
+ .returns(T.attached_class)
163
+ end
164
+ def self.new(
165
+
166
+ # The amount of reasoning effort the model should use.
167
+
168
+ effort: nil
169
+ )
170
+ end
171
+
172
+ sig do
173
+ override.returns(
174
+ {effort: T.nilable(OpenAI::Beta::Agents::SessionUpdateParams::Agent::Reasoning::Effort::OrSymbol)}
175
+ )
176
+ end
177
+ def to_hash
178
+ end
179
+
180
+ # The amount of reasoning effort the model should use.
181
+ module Effort
182
+ extend OpenAI::Internal::Type::Enum
183
+
184
+ TaggedSymbol = T.type_alias {
185
+ T.all(Symbol, OpenAI::Beta::Agents::SessionUpdateParams::Agent::Reasoning::Effort)
186
+ }
187
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
188
+
189
+ NONE = T.let(:none, OpenAI::Beta::Agents::SessionUpdateParams::Agent::Reasoning::Effort::TaggedSymbol)
190
+ MINIMAL = T.let(
191
+ :minimal,
192
+ OpenAI::Beta::Agents::SessionUpdateParams::Agent::Reasoning::Effort::TaggedSymbol
193
+ )
194
+ LOW = T.let(:low, OpenAI::Beta::Agents::SessionUpdateParams::Agent::Reasoning::Effort::TaggedSymbol)
195
+ MEDIUM = T.let(
196
+ :medium,
197
+ OpenAI::Beta::Agents::SessionUpdateParams::Agent::Reasoning::Effort::TaggedSymbol
198
+ )
199
+ HIGH = T.let(:high, OpenAI::Beta::Agents::SessionUpdateParams::Agent::Reasoning::Effort::TaggedSymbol)
200
+ XHIGH = T.let(:xhigh, OpenAI::Beta::Agents::SessionUpdateParams::Agent::Reasoning::Effort::TaggedSymbol)
201
+ MAX = T.let(:max, OpenAI::Beta::Agents::SessionUpdateParams::Agent::Reasoning::Effort::TaggedSymbol)
202
+
203
+ sig {
204
+ override.returns(
205
+ T::Array[OpenAI::Beta::Agents::SessionUpdateParams::Agent::Reasoning::Effort::TaggedSymbol]
206
+ )
207
+ }
208
+ def self.values
209
+ end
210
+ end
211
+ end
212
+
213
+ # The service tier used for model requests.
214
+ module ServiceTier
215
+ extend OpenAI::Internal::Type::Enum
216
+
217
+ TaggedSymbol = T.type_alias {
218
+ T.all(Symbol, OpenAI::Beta::Agents::SessionUpdateParams::Agent::ServiceTier)
219
+ }
220
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
221
+
222
+ # Selects the service tier automatically.
223
+ AUTO = T.let(:auto, OpenAI::Beta::Agents::SessionUpdateParams::Agent::ServiceTier::TaggedSymbol)
224
+
225
+ # Uses the default service tier.
226
+ DEFAULT = T.let(:default, OpenAI::Beta::Agents::SessionUpdateParams::Agent::ServiceTier::TaggedSymbol)
227
+
228
+ # Uses the flex service tier.
229
+ FLEX = T.let(:flex, OpenAI::Beta::Agents::SessionUpdateParams::Agent::ServiceTier::TaggedSymbol)
230
+
231
+ # Uses the priority service tier.
232
+ PRIORITY = T.let(:priority, OpenAI::Beta::Agents::SessionUpdateParams::Agent::ServiceTier::TaggedSymbol)
233
+
234
+ # Uses the fast service tier.
235
+ FAST = T.let(:fast, OpenAI::Beta::Agents::SessionUpdateParams::Agent::ServiceTier::TaggedSymbol)
236
+
237
+ sig {
238
+ override.returns(T::Array[OpenAI::Beta::Agents::SessionUpdateParams::Agent::ServiceTier::TaggedSymbol])
239
+ }
240
+ def self.values
241
+ end
242
+ end
243
+ end
244
+
67
245
  end
68
246
 
69
247
  end
@@ -882,7 +882,6 @@ module OpenAI
882
882
  GPT_5_1 = T.let(:"gpt-5.1", OpenAI::Beta::BetaResponse::Model::TaggedSymbol)
883
883
  GPT_5_1_2025_11_13 = T.let(:"gpt-5.1-2025-11-13", OpenAI::Beta::BetaResponse::Model::TaggedSymbol)
884
884
  GPT_5_1_CODEX = T.let(:"gpt-5.1-codex", OpenAI::Beta::BetaResponse::Model::TaggedSymbol)
885
- GPT_5_1_MINI = T.let(:"gpt-5.1-mini", OpenAI::Beta::BetaResponse::Model::TaggedSymbol)
886
885
  GPT_5_1_CHAT_LATEST = T.let(:"gpt-5.1-chat-latest", OpenAI::Beta::BetaResponse::Model::TaggedSymbol)
887
886
  GPT_5 = T.let(:"gpt-5", OpenAI::Beta::BetaResponse::Model::TaggedSymbol)
888
887
  GPT_5_MINI = T.let(:"gpt-5-mini", OpenAI::Beta::BetaResponse::Model::TaggedSymbol)
@@ -913,6 +912,11 @@ module OpenAI
913
912
  GPT_4O_2024_11_20 = T.let(:"gpt-4o-2024-11-20", OpenAI::Beta::BetaResponse::Model::TaggedSymbol)
914
913
  GPT_4O_2024_08_06 = T.let(:"gpt-4o-2024-08-06", OpenAI::Beta::BetaResponse::Model::TaggedSymbol)
915
914
  GPT_4O_2024_05_13 = T.let(:"gpt-4o-2024-05-13", OpenAI::Beta::BetaResponse::Model::TaggedSymbol)
915
+ GPT_AUDIO_MINI = T.let(:"gpt-audio-mini", OpenAI::Beta::BetaResponse::Model::TaggedSymbol)
916
+ GPT_AUDIO_MINI_2025_12_15 = T.let(
917
+ :"gpt-audio-mini-2025-12-15",
918
+ OpenAI::Beta::BetaResponse::Model::TaggedSymbol
919
+ )
916
920
  GPT_4O_AUDIO_PREVIEW = T.let(:"gpt-4o-audio-preview", OpenAI::Beta::BetaResponse::Model::TaggedSymbol)
917
921
  GPT_4O_AUDIO_PREVIEW_2024_10_01 = T.let(
918
922
  :"gpt-4o-audio-preview-2024-10-01",
@@ -970,6 +974,7 @@ module OpenAI
970
974
  GPT_3_5_TURBO_1106 = T.let(:"gpt-3.5-turbo-1106", OpenAI::Beta::BetaResponse::Model::TaggedSymbol)
971
975
  GPT_3_5_TURBO_0125 = T.let(:"gpt-3.5-turbo-0125", OpenAI::Beta::BetaResponse::Model::TaggedSymbol)
972
976
  GPT_3_5_TURBO_16K_0613 = T.let(:"gpt-3.5-turbo-16k-0613", OpenAI::Beta::BetaResponse::Model::TaggedSymbol)
977
+ GPT_5_1_MINI = T.let(:"gpt-5.1-mini", OpenAI::Beta::BetaResponse::Model::TaggedSymbol)
973
978
  O1_PRO = T.let(:"o1-pro", OpenAI::Beta::BetaResponse::Model::TaggedSymbol)
974
979
  O1_PRO_2025_03_19 = T.let(:"o1-pro-2025-03-19", OpenAI::Beta::BetaResponse::Model::TaggedSymbol)
975
980
  O3_PRO = T.let(:"o3-pro", OpenAI::Beta::BetaResponse::Model::TaggedSymbol)
@@ -0,0 +1,136 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+
6
+ BetaResponseCompactionCompactingEvent = Beta::BetaResponseCompactionCompactingEvent
7
+
8
+ module Beta
9
+
10
+ class BetaResponseCompactionCompactingEvent < OpenAI::Internal::Type::BaseModel
11
+
12
+ OrHash = T.type_alias do
13
+ T.any(
14
+ OpenAI::Beta::BetaResponseCompactionCompactingEvent,
15
+ OpenAI::Internal::AnyHash
16
+ )
17
+ end
18
+
19
+ # The ID of the compaction output item.
20
+ sig { returns(String) }
21
+ attr_accessor :item_id
22
+
23
+ # The index of the compaction output item.
24
+ sig { returns(Integer) }
25
+ attr_accessor :output_index
26
+
27
+ # The sequence number of the event that was emitted.
28
+ sig { returns(Integer) }
29
+ attr_accessor :sequence_number
30
+
31
+ # The type of the event, always `response.compaction.compacting`.
32
+ sig { returns(Symbol) }
33
+ attr_accessor :type
34
+
35
+ # The agent that owns this multi-agent streaming event.
36
+ sig { returns(T.nilable(OpenAI::Beta::BetaResponseCompactionCompactingEvent::Agent)) }
37
+ attr_reader :agent
38
+
39
+ sig { params(agent: OpenAI::Beta::BetaResponseCompactionCompactingEvent::Agent::OrHash).void }
40
+ attr_writer :agent
41
+
42
+ # Emitted when new summary content is sampled for a compaction trigger. Contains
43
+ # no summary content.
44
+ sig do
45
+ params(
46
+
47
+ item_id: String,
48
+
49
+ output_index: Integer,
50
+
51
+ sequence_number: Integer,
52
+
53
+ agent: OpenAI::Beta::BetaResponseCompactionCompactingEvent::Agent::OrHash,
54
+
55
+ type: Symbol
56
+ )
57
+ .returns(T.attached_class)
58
+ end
59
+ def self.new(
60
+
61
+ # The ID of the compaction output item.
62
+ item_id:,
63
+
64
+ # The index of the compaction output item.
65
+ output_index:,
66
+
67
+ # The sequence number of the event that was emitted.
68
+ sequence_number:,
69
+
70
+ # The agent that owns this multi-agent streaming event.
71
+ agent: nil,
72
+
73
+ # The type of the event, always `response.compaction.compacting`.
74
+
75
+ type: :"response.compaction.compacting"
76
+ )
77
+ end
78
+
79
+ sig do
80
+ override.returns(
81
+ {
82
+ item_id: String,
83
+ output_index: Integer,
84
+ sequence_number: Integer,
85
+ type: Symbol,
86
+ agent: OpenAI::Beta::BetaResponseCompactionCompactingEvent::Agent
87
+ }
88
+ )
89
+ end
90
+ def to_hash
91
+ end
92
+
93
+ class Agent < OpenAI::Internal::Type::BaseModel
94
+ OrHash = T.type_alias do
95
+ T.any(
96
+ OpenAI::Beta::BetaResponseCompactionCompactingEvent::Agent,
97
+ OpenAI::Internal::AnyHash
98
+ )
99
+ end
100
+
101
+ # The canonical name of the agent that produced this item.
102
+ sig { returns(String) }
103
+ attr_accessor :agent_name
104
+
105
+ # The agent that owns this multi-agent streaming event.
106
+ sig do
107
+ params(
108
+
109
+ agent_name: String
110
+ )
111
+ .returns(T.attached_class)
112
+ end
113
+ def self.new(
114
+
115
+ # The canonical name of the agent that produced this item.
116
+
117
+ agent_name:
118
+ )
119
+ end
120
+
121
+ sig do
122
+ override.returns(
123
+ {agent_name: String}
124
+ )
125
+ end
126
+ def to_hash
127
+ end
128
+
129
+ end
130
+
131
+ end
132
+
133
+ end
134
+
135
+ end
136
+ end
@@ -22,6 +22,7 @@ module OpenAI
22
22
  OpenAI::Beta::BetaResponseCodeInterpreterCallCompletedEvent,
23
23
  OpenAI::Beta::BetaResponseCodeInterpreterCallInProgressEvent,
24
24
  OpenAI::Beta::BetaResponseCodeInterpreterCallInterpretingEvent,
25
+ OpenAI::Beta::BetaResponseCompactionCompactingEvent,
25
26
  OpenAI::Beta::BetaResponseCompletedEvent,
26
27
  OpenAI::Beta::BetaResponseContentPartAddedEvent,
27
28
  OpenAI::Beta::BetaResponseContentPartDoneEvent,
@@ -1113,10 +1113,6 @@ module OpenAI
1113
1113
  :"gpt-5.1-codex",
1114
1114
  OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::Model::TaggedSymbol
1115
1115
  )
1116
- GPT_5_1_MINI = T.let(
1117
- :"gpt-5.1-mini",
1118
- OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::Model::TaggedSymbol
1119
- )
1120
1116
  GPT_5_1_CHAT_LATEST = T.let(
1121
1117
  :"gpt-5.1-chat-latest",
1122
1118
  OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::Model::TaggedSymbol
@@ -1213,6 +1209,14 @@ module OpenAI
1213
1209
  :"gpt-4o-2024-05-13",
1214
1210
  OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::Model::TaggedSymbol
1215
1211
  )
1212
+ GPT_AUDIO_MINI = T.let(
1213
+ :"gpt-audio-mini",
1214
+ OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::Model::TaggedSymbol
1215
+ )
1216
+ GPT_AUDIO_MINI_2025_12_15 = T.let(
1217
+ :"gpt-audio-mini-2025-12-15",
1218
+ OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::Model::TaggedSymbol
1219
+ )
1216
1220
  GPT_4O_AUDIO_PREVIEW = T.let(
1217
1221
  :"gpt-4o-audio-preview",
1218
1222
  OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::Model::TaggedSymbol
@@ -1339,6 +1343,10 @@ module OpenAI
1339
1343
  :"gpt-3.5-turbo-16k-0613",
1340
1344
  OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::Model::TaggedSymbol
1341
1345
  )
1346
+ GPT_5_1_MINI = T.let(
1347
+ :"gpt-5.1-mini",
1348
+ OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::Model::TaggedSymbol
1349
+ )
1342
1350
  O1_PRO = T.let(:"o1-pro", OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::Model::TaggedSymbol)
1343
1351
  O1_PRO_2025_03_19 = T.let(
1344
1352
  :"o1-pro-2025-03-19",
@@ -1781,6 +1789,14 @@ module OpenAI
1781
1789
  }
1782
1790
  attr_writer :mode
1783
1791
 
1792
+ # Prepares the prompt cache without generating output. Defaults to `false`. When
1793
+ # set to `true`, overrides the `generate` field to `false`.
1794
+ sig { returns(T.nilable(T::Boolean)) }
1795
+ attr_reader :prewarm
1796
+
1797
+ sig { params(prewarm: T::Boolean).void }
1798
+ attr_writer :prewarm
1799
+
1784
1800
  # The minimum lifetime applied to every implicit and explicit cache breakpoint
1785
1801
  # written by the request. Defaults to `30m`, which is currently the only supported
1786
1802
  # value. The backend may retain cache entries for longer.
@@ -1813,6 +1829,8 @@ module OpenAI
1813
1829
 
1814
1830
  mode: OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::PromptCacheOptions::Mode::OrSymbol,
1815
1831
 
1832
+ prewarm: T::Boolean,
1833
+
1816
1834
  ttl: OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::PromptCacheOptions::Ttl::OrSymbol
1817
1835
  )
1818
1836
  .returns(T.attached_class)
@@ -1831,6 +1849,10 @@ module OpenAI
1831
1849
  # request does not use prompt caching.
1832
1850
  mode: nil,
1833
1851
 
1852
+ # Prepares the prompt cache without generating output. Defaults to `false`. When
1853
+ # set to `true`, overrides the `generate` field to `false`.
1854
+ prewarm: nil,
1855
+
1834
1856
  # The minimum lifetime applied to every implicit and explicit cache breakpoint
1835
1857
  # written by the request. Defaults to `30m`, which is currently the only supported
1836
1858
  # value. The backend may retain cache entries for longer.
@@ -1846,6 +1868,7 @@ module OpenAI
1846
1868
  mode: T.nilable(
1847
1869
  OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::PromptCacheOptions::Mode::OrSymbol
1848
1870
  ),
1871
+ prewarm: T.nilable(T::Boolean),
1849
1872
  ttl: T.nilable(
1850
1873
  OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::PromptCacheOptions::Ttl::OrSymbol
1851
1874
  )
@@ -28,6 +28,7 @@ module OpenAI
28
28
  OpenAI::Beta::BetaResponsesServerEvent::BetaResponseCodeInterpreterCallWsCompleted,
29
29
  OpenAI::Beta::BetaResponsesServerEvent::BetaResponseCodeInterpreterCallInWsProgress,
30
30
  OpenAI::Beta::BetaResponsesServerEvent::BetaResponseCodeInterpreterCallWsInterpreting,
31
+ OpenAI::Beta::BetaResponsesServerEvent::BetaResponseCompactionWsCompacting,
31
32
  OpenAI::Beta::BetaResponsesServerEvent::BetaResponseWsCompleted,
32
33
  OpenAI::Beta::BetaResponsesServerEvent::BetaResponseContentPartWsAdded,
33
34
  OpenAI::Beta::BetaResponsesServerEvent::BetaResponseContentPartWsDone,
@@ -734,6 +735,82 @@ module OpenAI
734
735
 
735
736
  end
736
737
 
738
+ class BetaResponseCompactionWsCompacting < OpenAI::Models::Beta::BetaResponseCompactionCompactingEvent
739
+ OrHash = T.type_alias do
740
+ T.any(
741
+ OpenAI::Beta::BetaResponsesServerEvent::BetaResponseCompactionWsCompacting,
742
+ OpenAI::Internal::AnyHash
743
+ )
744
+ end
745
+
746
+ # The WebSocket lane that emitted this event. This field is present when the
747
+ # originating `response.create` event supplied a `stream_id`.
748
+ sig { returns(T.nilable(String)) }
749
+ attr_reader :stream_id
750
+
751
+ sig { params(stream_id: String).void }
752
+ attr_writer :stream_id
753
+
754
+ # Emitted when new summary content is sampled for a compaction trigger. Contains
755
+ # no summary content.
756
+ sig do
757
+ params(
758
+
759
+ item_id: String,
760
+
761
+ output_index: Integer,
762
+
763
+ sequence_number: Integer,
764
+
765
+ agent: OpenAI::Beta::BetaResponseCompactionCompactingEvent::Agent::OrHash,
766
+
767
+ stream_id: String,
768
+
769
+ type: Symbol
770
+ )
771
+ .returns(T.attached_class)
772
+ end
773
+ def self.new(
774
+
775
+ # The ID of the compaction output item.
776
+ item_id:,
777
+
778
+ # The index of the compaction output item.
779
+ output_index:,
780
+
781
+ # The sequence number of the event that was emitted.
782
+ sequence_number:,
783
+
784
+ # The agent that owns this multi-agent streaming event.
785
+ agent: nil,
786
+
787
+ # The WebSocket lane that emitted this event. This field is present when the
788
+ # originating `response.create` event supplied a `stream_id`.
789
+ stream_id: nil,
790
+
791
+ # The type of the event, always `response.compaction.compacting`.
792
+
793
+ type: :"response.compaction.compacting"
794
+ )
795
+ end
796
+
797
+ sig do
798
+ override.returns(
799
+ {
800
+ item_id: String,
801
+ output_index: Integer,
802
+ sequence_number: Integer,
803
+ type: Symbol,
804
+ agent: T.nilable(OpenAI::Beta::BetaResponseCompactionCompactingEvent::Agent),
805
+ stream_id: T.nilable(String)
806
+ }
807
+ )
808
+ end
809
+ def to_hash
810
+ end
811
+
812
+ end
813
+
737
814
  class BetaResponseWsCompleted < OpenAI::Models::Beta::BetaResponseCompletedEvent
738
815
  OrHash = T.type_alias do
739
816
  T.any(
@@ -70,6 +70,10 @@ module OpenAI
70
70
  # service connectors
71
71
  # [here](https://developers.openai.com/api/docs/guides/tools-connectors-mcp#connectors).
72
72
  #
73
+ # This field is deprecated for models released after September 1, 2026. Use
74
+ # `server_url` to connect to a remote MCP server, or `tunnel_id` to connect
75
+ # through a Secure MCP Tunnel.
76
+ #
73
77
  # Currently supported `connector_id` values are:
74
78
  #
75
79
  # - Dropbox: `connector_dropbox`
@@ -194,6 +198,10 @@ module OpenAI
194
198
  # service connectors
195
199
  # [here](https://developers.openai.com/api/docs/guides/tools-connectors-mcp#connectors).
196
200
  #
201
+ # This field is deprecated for models released after September 1, 2026. Use
202
+ # `server_url` to connect to a remote MCP server, or `tunnel_id` to connect
203
+ # through a Secure MCP Tunnel.
204
+ #
197
205
  # Currently supported `connector_id` values are:
198
206
  #
199
207
  # - Dropbox: `connector_dropbox`
@@ -358,6 +366,10 @@ module OpenAI
358
366
  # service connectors
359
367
  # [here](https://developers.openai.com/api/docs/guides/tools-connectors-mcp#connectors).
360
368
  #
369
+ # This field is deprecated for models released after September 1, 2026. Use
370
+ # `server_url` to connect to a remote MCP server, or `tunnel_id` to connect
371
+ # through a Secure MCP Tunnel.
372
+ #
361
373
  # Currently supported `connector_id` values are:
362
374
  #
363
375
  # - Dropbox: `connector_dropbox`
@@ -251,7 +251,6 @@ module OpenAI
251
251
  GPT_5_1 = T.let(:"gpt-5.1", OpenAI::Beta::ResponseCompactParams::Model::TaggedSymbol)
252
252
  GPT_5_1_2025_11_13 = T.let(:"gpt-5.1-2025-11-13", OpenAI::Beta::ResponseCompactParams::Model::TaggedSymbol)
253
253
  GPT_5_1_CODEX = T.let(:"gpt-5.1-codex", OpenAI::Beta::ResponseCompactParams::Model::TaggedSymbol)
254
- GPT_5_1_MINI = T.let(:"gpt-5.1-mini", OpenAI::Beta::ResponseCompactParams::Model::TaggedSymbol)
255
254
  GPT_5_1_CHAT_LATEST = T.let(:"gpt-5.1-chat-latest", OpenAI::Beta::ResponseCompactParams::Model::TaggedSymbol)
256
255
  GPT_5 = T.let(:"gpt-5", OpenAI::Beta::ResponseCompactParams::Model::TaggedSymbol)
257
256
  GPT_5_MINI = T.let(:"gpt-5-mini", OpenAI::Beta::ResponseCompactParams::Model::TaggedSymbol)
@@ -297,6 +296,11 @@ module OpenAI
297
296
  GPT_4O_2024_11_20 = T.let(:"gpt-4o-2024-11-20", OpenAI::Beta::ResponseCompactParams::Model::TaggedSymbol)
298
297
  GPT_4O_2024_08_06 = T.let(:"gpt-4o-2024-08-06", OpenAI::Beta::ResponseCompactParams::Model::TaggedSymbol)
299
298
  GPT_4O_2024_05_13 = T.let(:"gpt-4o-2024-05-13", OpenAI::Beta::ResponseCompactParams::Model::TaggedSymbol)
299
+ GPT_AUDIO_MINI = T.let(:"gpt-audio-mini", OpenAI::Beta::ResponseCompactParams::Model::TaggedSymbol)
300
+ GPT_AUDIO_MINI_2025_12_15 = T.let(
301
+ :"gpt-audio-mini-2025-12-15",
302
+ OpenAI::Beta::ResponseCompactParams::Model::TaggedSymbol
303
+ )
300
304
  GPT_4O_AUDIO_PREVIEW = T.let(
301
305
  :"gpt-4o-audio-preview",
302
306
  OpenAI::Beta::ResponseCompactParams::Model::TaggedSymbol
@@ -372,6 +376,7 @@ module OpenAI
372
376
  :"gpt-3.5-turbo-16k-0613",
373
377
  OpenAI::Beta::ResponseCompactParams::Model::TaggedSymbol
374
378
  )
379
+ GPT_5_1_MINI = T.let(:"gpt-5.1-mini", OpenAI::Beta::ResponseCompactParams::Model::TaggedSymbol)
375
380
  O1_PRO = T.let(:"o1-pro", OpenAI::Beta::ResponseCompactParams::Model::TaggedSymbol)
376
381
  O1_PRO_2025_03_19 = T.let(:"o1-pro-2025-03-19", OpenAI::Beta::ResponseCompactParams::Model::TaggedSymbol)
377
382
  O3_PRO = T.let(:"o3-pro", OpenAI::Beta::ResponseCompactParams::Model::TaggedSymbol)
@@ -975,7 +975,6 @@ module OpenAI
975
975
  GPT_5_1 = T.let(:"gpt-5.1", OpenAI::Beta::ResponseCreateParams::Model::TaggedSymbol)
976
976
  GPT_5_1_2025_11_13 = T.let(:"gpt-5.1-2025-11-13", OpenAI::Beta::ResponseCreateParams::Model::TaggedSymbol)
977
977
  GPT_5_1_CODEX = T.let(:"gpt-5.1-codex", OpenAI::Beta::ResponseCreateParams::Model::TaggedSymbol)
978
- GPT_5_1_MINI = T.let(:"gpt-5.1-mini", OpenAI::Beta::ResponseCreateParams::Model::TaggedSymbol)
979
978
  GPT_5_1_CHAT_LATEST = T.let(:"gpt-5.1-chat-latest", OpenAI::Beta::ResponseCreateParams::Model::TaggedSymbol)
980
979
  GPT_5 = T.let(:"gpt-5", OpenAI::Beta::ResponseCreateParams::Model::TaggedSymbol)
981
980
  GPT_5_MINI = T.let(:"gpt-5-mini", OpenAI::Beta::ResponseCreateParams::Model::TaggedSymbol)
@@ -1021,6 +1020,11 @@ module OpenAI
1021
1020
  GPT_4O_2024_11_20 = T.let(:"gpt-4o-2024-11-20", OpenAI::Beta::ResponseCreateParams::Model::TaggedSymbol)
1022
1021
  GPT_4O_2024_08_06 = T.let(:"gpt-4o-2024-08-06", OpenAI::Beta::ResponseCreateParams::Model::TaggedSymbol)
1023
1022
  GPT_4O_2024_05_13 = T.let(:"gpt-4o-2024-05-13", OpenAI::Beta::ResponseCreateParams::Model::TaggedSymbol)
1023
+ GPT_AUDIO_MINI = T.let(:"gpt-audio-mini", OpenAI::Beta::ResponseCreateParams::Model::TaggedSymbol)
1024
+ GPT_AUDIO_MINI_2025_12_15 = T.let(
1025
+ :"gpt-audio-mini-2025-12-15",
1026
+ OpenAI::Beta::ResponseCreateParams::Model::TaggedSymbol
1027
+ )
1024
1028
  GPT_4O_AUDIO_PREVIEW = T.let(:"gpt-4o-audio-preview", OpenAI::Beta::ResponseCreateParams::Model::TaggedSymbol)
1025
1029
  GPT_4O_AUDIO_PREVIEW_2024_10_01 = T.let(
1026
1030
  :"gpt-4o-audio-preview-2024-10-01",
@@ -1090,6 +1094,7 @@ module OpenAI
1090
1094
  :"gpt-3.5-turbo-16k-0613",
1091
1095
  OpenAI::Beta::ResponseCreateParams::Model::TaggedSymbol
1092
1096
  )
1097
+ GPT_5_1_MINI = T.let(:"gpt-5.1-mini", OpenAI::Beta::ResponseCreateParams::Model::TaggedSymbol)
1093
1098
  O1_PRO = T.let(:"o1-pro", OpenAI::Beta::ResponseCreateParams::Model::TaggedSymbol)
1094
1099
  O1_PRO_2025_03_19 = T.let(:"o1-pro-2025-03-19", OpenAI::Beta::ResponseCreateParams::Model::TaggedSymbol)
1095
1100
  O3_PRO = T.let(:"o3-pro", OpenAI::Beta::ResponseCreateParams::Model::TaggedSymbol)
@@ -1442,6 +1447,14 @@ module OpenAI
1442
1447
  sig { params(mode: OpenAI::Beta::ResponseCreateParams::PromptCacheOptions::Mode::OrSymbol).void }
1443
1448
  attr_writer :mode
1444
1449
 
1450
+ # Prepares the prompt cache without generating output. Defaults to `false`. When
1451
+ # set to `true`, overrides the `generate` field to `false`.
1452
+ sig { returns(T.nilable(T::Boolean)) }
1453
+ attr_reader :prewarm
1454
+
1455
+ sig { params(prewarm: T::Boolean).void }
1456
+ attr_writer :prewarm
1457
+
1445
1458
  # The minimum lifetime applied to every implicit and explicit cache breakpoint
1446
1459
  # written by the request. Defaults to `30m`, which is currently the only supported
1447
1460
  # value. The backend may retain cache entries for longer.
@@ -1467,6 +1480,8 @@ module OpenAI
1467
1480
 
1468
1481
  mode: OpenAI::Beta::ResponseCreateParams::PromptCacheOptions::Mode::OrSymbol,
1469
1482
 
1483
+ prewarm: T::Boolean,
1484
+
1470
1485
  ttl: OpenAI::Beta::ResponseCreateParams::PromptCacheOptions::Ttl::OrSymbol
1471
1486
  )
1472
1487
  .returns(T.attached_class)
@@ -1485,6 +1500,10 @@ module OpenAI
1485
1500
  # request does not use prompt caching.
1486
1501
  mode: nil,
1487
1502
 
1503
+ # Prepares the prompt cache without generating output. Defaults to `false`. When
1504
+ # set to `true`, overrides the `generate` field to `false`.
1505
+ prewarm: nil,
1506
+
1488
1507
  # The minimum lifetime applied to every implicit and explicit cache breakpoint
1489
1508
  # written by the request. Defaults to `30m`, which is currently the only supported
1490
1509
  # value. The backend may retain cache entries for longer.
@@ -1498,6 +1517,7 @@ module OpenAI
1498
1517
  {
1499
1518
  comparison_response_id: T.nilable(String),
1500
1519
  mode: OpenAI::Beta::ResponseCreateParams::PromptCacheOptions::Mode::OrSymbol,
1520
+ prewarm: T::Boolean,
1501
1521
  ttl: OpenAI::Beta::ResponseCreateParams::PromptCacheOptions::Ttl::OrSymbol
1502
1522
  }
1503
1523
  )