openai 0.105.0 → 0.106.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 (53) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +16 -0
  3. data/README.md +1 -1
  4. data/lib/openai/models/admin/organization/external_storage_configuration.rb +1 -0
  5. data/lib/openai/models/beta/agent_create_params.rb +3 -0
  6. data/lib/openai/models/beta/agent_update_params.rb +3 -0
  7. data/lib/openai/models/beta/agents/session_create_params.rb +3 -0
  8. data/lib/openai/models/beta/agents/session_update_params.rb +3 -0
  9. data/lib/openai/models/beta/assistant_update_params.rb +12 -0
  10. data/lib/openai/models/beta/beta_response.rb +12 -0
  11. data/lib/openai/models/beta/beta_responses_client_event.rb +12 -0
  12. data/lib/openai/models/beta/response_compact_params.rb +12 -0
  13. data/lib/openai/models/beta/response_create_params.rb +12 -0
  14. data/lib/openai/models/chat_model.rb +12 -0
  15. data/lib/openai/models/decision_create_params.rb +112 -1
  16. data/lib/openai/models/decision_input_image.rb +14 -1
  17. data/lib/openai/models/decision_input_text.rb +15 -1
  18. data/lib/openai/models/decision_prompt_cache_breakpoint.rb +21 -0
  19. data/lib/openai/models/live/sideband_server_event.rb +243 -3
  20. data/lib/openai/models/responses/response_compact_params.rb +12 -0
  21. data/lib/openai/models.rb +2 -0
  22. data/lib/openai/resources/beta/responses.rb +19 -0
  23. data/lib/openai/resources/decisions.rb +15 -1
  24. data/lib/openai/version.rb +1 -1
  25. data/lib/openai.rb +1 -0
  26. data/rbi/openai/models/admin/organization/external_storage_configuration.rbi +1 -0
  27. data/rbi/openai/models/beta/agent_create_params.rbi +3 -0
  28. data/rbi/openai/models/beta/agent_update_params.rbi +3 -0
  29. data/rbi/openai/models/beta/agents/session_create_params.rbi +3 -0
  30. data/rbi/openai/models/beta/agents/session_update_params.rbi +3 -0
  31. data/rbi/openai/models/decision_create_params.rbi +146 -0
  32. data/rbi/openai/models/decision_input_image.rbi +22 -1
  33. data/rbi/openai/models/decision_input_text.rbi +21 -1
  34. data/rbi/openai/models/decision_prompt_cache_breakpoint.rbi +48 -0
  35. data/rbi/openai/models/live/output_audio_delta_event.rbi +1 -1
  36. data/rbi/openai/models/live/sideband_server_event.rbi +406 -3
  37. data/rbi/openai/models.rbi +2 -0
  38. data/rbi/openai/resources/beta/responses.rbi +17 -0
  39. data/rbi/openai/resources/decisions.rbi +14 -0
  40. data/sig/openai/models/admin/organization/external_storage_configuration.rbs +2 -1
  41. data/sig/openai/models/beta/agent_create_params.rbs +5 -1
  42. data/sig/openai/models/beta/agent_update_params.rbs +5 -1
  43. data/sig/openai/models/beta/agents/session_create_params.rbs +5 -1
  44. data/sig/openai/models/beta/agents/session_update_params.rbs +5 -1
  45. data/sig/openai/models/decision_create_params.rbs +106 -0
  46. data/sig/openai/models/decision_input_image.rbs +18 -2
  47. data/sig/openai/models/decision_input_text.rbs +29 -3
  48. data/sig/openai/models/decision_prompt_cache_breakpoint.rbs +16 -0
  49. data/sig/openai/models/live/sideband_server_event.rbs +225 -0
  50. data/sig/openai/models.rbs +2 -0
  51. data/sig/openai/resources/beta/responses.rbs +7 -0
  52. data/sig/openai/resources/decisions.rbs +3 -0
  53. metadata +4 -1
@@ -18,11 +18,22 @@ module OpenAI
18
18
  sig { returns(Symbol) }
19
19
  attr_accessor :type
20
20
 
21
+ # Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL
22
+ # from the request's `prompt_cache_options.ttl`; the boundary is not rounded to a
23
+ # token block.
24
+ sig { returns(T.nilable(OpenAI::DecisionPromptCacheBreakpoint::OrHash)) }
25
+ attr_reader :prompt_cache_breakpoint
26
+
27
+ sig { params(prompt_cache_breakpoint: T.nilable(OpenAI::DecisionPromptCacheBreakpoint::OrHash)).void }
28
+ attr_writer :prompt_cache_breakpoint
29
+
21
30
  sig do
22
31
  params(
23
32
 
24
33
  text: String,
25
34
 
35
+ prompt_cache_breakpoint: T.nilable(OpenAI::DecisionPromptCacheBreakpoint::OrHash),
36
+
26
37
  type: Symbol
27
38
  )
28
39
  .returns(T.attached_class)
@@ -31,13 +42,22 @@ module OpenAI
31
42
 
32
43
  text:,
33
44
 
45
+ # Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL
46
+ # from the request's `prompt_cache_options.ttl`; the boundary is not rounded to a
47
+ # token block.
48
+ prompt_cache_breakpoint: nil,
49
+
34
50
  type: :input_text
35
51
  )
36
52
  end
37
53
 
38
54
  sig do
39
55
  override.returns(
40
- {text: String, type: Symbol}
56
+ {
57
+ text: String,
58
+ type: Symbol,
59
+ prompt_cache_breakpoint: T.nilable(OpenAI::DecisionPromptCacheBreakpoint::OrHash)
60
+ }
41
61
  )
42
62
  end
43
63
  def to_hash
@@ -0,0 +1,48 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+
6
+ class DecisionPromptCacheBreakpoint < OpenAI::Internal::Type::BaseModel
7
+
8
+ OrHash = T.type_alias do
9
+ T.any(
10
+ OpenAI::DecisionPromptCacheBreakpoint,
11
+ OpenAI::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # The breakpoint mode. Always `explicit`.
16
+ sig { returns(Symbol) }
17
+ attr_accessor :mode
18
+
19
+ # Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL
20
+ # from the request's `prompt_cache_options.ttl`; the boundary is not rounded to a
21
+ # token block.
22
+ sig do
23
+ params(
24
+
25
+ mode: Symbol
26
+ )
27
+ .returns(T.attached_class)
28
+ end
29
+ def self.new(
30
+
31
+ # The breakpoint mode. Always `explicit`.
32
+
33
+ mode: :explicit
34
+ )
35
+ end
36
+
37
+ sig do
38
+ override.returns(
39
+ {mode: Symbol}
40
+ )
41
+ end
42
+ def to_hash
43
+ end
44
+
45
+ end
46
+
47
+ end
48
+ end
@@ -79,7 +79,7 @@ module OpenAI
79
79
 
80
80
  sig do
81
81
  override.returns(
82
- {delta: String, type: Symbol, end_ms: Integer, start_ms: Integer}
82
+ {delta: String, type: Symbol, end_ms: T.nilable(Integer), start_ms: T.nilable(Integer)}
83
83
  )
84
84
  end
85
85
  def to_hash
@@ -5,8 +5,8 @@ module OpenAI
5
5
 
6
6
  module Live
7
7
 
8
- # Server events received by an attached Live sideband WebSocket. Audio deltas are
9
- # delivered over the primary connection.
8
+ # Server events received by an attached Live sideband WebSocket, including
9
+ # reflected input and output audio and transport notifications.
10
10
  module SidebandServerEvent
11
11
  extend OpenAI::Internal::Type::Union
12
12
 
@@ -31,10 +31,413 @@ module OpenAI
31
31
  OpenAI::Live::SessionUsageUpdatedEvent,
32
32
  OpenAI::Live::SessionClosedEvent,
33
33
  OpenAI::Live::ErrorEvent,
34
- OpenAI::Live::InfoEvent
34
+ OpenAI::Live::InfoEvent,
35
+ OpenAI::Live::SidebandServerEvent::SessionInputAudioAppend,
36
+ OpenAI::Live::OutputAudioDeltaEvent,
37
+ OpenAI::Live::SidebandServerEvent::TransportDtmfReceived,
38
+ OpenAI::Live::SidebandServerEvent::TransportDtmfSend,
39
+ OpenAI::Live::SidebandServerEvent::TransportRinging,
40
+ OpenAI::Live::SidebandServerEvent::TransportAnswered,
41
+ OpenAI::Live::SidebandServerEvent::TransportFailed
35
42
  )
36
43
  end
37
44
 
45
+ class SessionInputAudioAppend < OpenAI::Internal::Type::BaseModel
46
+ OrHash = T.type_alias do
47
+ T.any(
48
+ OpenAI::Live::SidebandServerEvent::SessionInputAudioAppend,
49
+ OpenAI::Internal::AnyHash
50
+ )
51
+ end
52
+
53
+ # Base64-encoded raw mono PCM16LE at 24 kHz received from the primary transport,
54
+ # reflected to the sideband before model-input muting. This server event uses the
55
+ # same audio key as the client command, but is not an acknowledgment of it.
56
+ sig { returns(String) }
57
+ attr_accessor :audio
58
+
59
+ # The event type, always `session.input_audio.append`.
60
+ sig { returns(Symbol) }
61
+ attr_accessor :type
62
+
63
+ # Input audio received from the primary transport and reflected to a Live sideband
64
+ # connection before model-input muting.
65
+ sig do
66
+ params(
67
+
68
+ audio: String,
69
+
70
+ type: Symbol
71
+ )
72
+ .returns(T.attached_class)
73
+ end
74
+ def self.new(
75
+
76
+ # Base64-encoded raw mono PCM16LE at 24 kHz received from the primary transport,
77
+ # reflected to the sideband before model-input muting. This server event uses the
78
+ # same audio key as the client command, but is not an acknowledgment of it.
79
+ audio:,
80
+
81
+ # The event type, always `session.input_audio.append`.
82
+
83
+ type: :"session.input_audio.append"
84
+ )
85
+ end
86
+
87
+ sig do
88
+ override.returns(
89
+ {audio: String, type: Symbol}
90
+ )
91
+ end
92
+ def to_hash
93
+ end
94
+
95
+ end
96
+
97
+ class TransportDtmfReceived < OpenAI::Internal::Type::BaseModel
98
+ OrHash = T.type_alias do
99
+ T.any(
100
+ OpenAI::Live::SidebandServerEvent::TransportDtmfReceived,
101
+ OpenAI::Internal::AnyHash
102
+ )
103
+ end
104
+
105
+ sig { returns(String) }
106
+ attr_accessor :event
107
+
108
+ sig { returns(String) }
109
+ attr_accessor :event_id
110
+
111
+ sig { returns(Symbol) }
112
+ attr_accessor :type
113
+
114
+ # A SIP DTMF keypress received from the caller. Delivered only to sideband
115
+ # observers.
116
+ sig do
117
+ params(
118
+
119
+ event: String,
120
+
121
+ event_id: String,
122
+
123
+ type: Symbol
124
+ )
125
+ .returns(T.attached_class)
126
+ end
127
+ def self.new(
128
+
129
+ event:,
130
+
131
+ event_id:,
132
+
133
+ type: :"transport.dtmf.received"
134
+ )
135
+ end
136
+
137
+ sig do
138
+ override.returns(
139
+ {event: String, event_id: String, type: Symbol}
140
+ )
141
+ end
142
+ def to_hash
143
+ end
144
+
145
+ end
146
+
147
+ class TransportDtmfSend < OpenAI::Internal::Type::BaseModel
148
+ OrHash = T.type_alias do
149
+ T.any(
150
+ OpenAI::Live::SidebandServerEvent::TransportDtmfSend,
151
+ OpenAI::Internal::AnyHash
152
+ )
153
+ end
154
+
155
+ sig { returns(String) }
156
+ attr_accessor :event
157
+
158
+ sig { returns(String) }
159
+ attr_accessor :event_id
160
+
161
+ sig { returns(Symbol) }
162
+ attr_accessor :type
163
+
164
+ # The event_id of the client command, when supplied.
165
+ sig { returns(T.nilable(String)) }
166
+ attr_reader :client_event_id
167
+
168
+ sig { params(client_event_id: String).void }
169
+ attr_writer :client_event_id
170
+
171
+ # A SIP DTMF keypress successfully sent to the SIP trunk. Delivered only to
172
+ # sideband observers; this is not a client command.
173
+ sig do
174
+ params(
175
+
176
+ event: String,
177
+
178
+ event_id: String,
179
+
180
+ client_event_id: String,
181
+
182
+ type: Symbol
183
+ )
184
+ .returns(T.attached_class)
185
+ end
186
+ def self.new(
187
+
188
+ event:,
189
+
190
+ event_id:,
191
+
192
+ # The event_id of the client command, when supplied.
193
+ client_event_id: nil,
194
+
195
+ type: :"transport.dtmf.send"
196
+ )
197
+ end
198
+
199
+ sig do
200
+ override.returns(
201
+ {event: String, event_id: String, type: Symbol, client_event_id: T.nilable(String)}
202
+ )
203
+ end
204
+ def to_hash
205
+ end
206
+
207
+ end
208
+
209
+ class TransportRinging < OpenAI::Internal::Type::BaseModel
210
+ OrHash = T.type_alias do
211
+ T.any(
212
+ OpenAI::Live::SidebandServerEvent::TransportRinging,
213
+ OpenAI::Internal::AnyHash
214
+ )
215
+ end
216
+
217
+ sig { returns(String) }
218
+ attr_accessor :event_id
219
+
220
+ # The canonical Live session ID.
221
+ sig { returns(String) }
222
+ attr_accessor :session_id
223
+
224
+ sig { returns(Symbol) }
225
+ attr_accessor :type
226
+
227
+ # The outbound SIP provider leg is ringing or providing early media. Delivered
228
+ # only to sideband observers.
229
+ sig do
230
+ params(
231
+
232
+ event_id: String,
233
+
234
+ session_id: String,
235
+
236
+ type: Symbol
237
+ )
238
+ .returns(T.attached_class)
239
+ end
240
+ def self.new(
241
+
242
+ event_id:,
243
+
244
+ # The canonical Live session ID.
245
+ session_id:,
246
+
247
+ type: :"transport.ringing"
248
+ )
249
+ end
250
+
251
+ sig do
252
+ override.returns(
253
+ {event_id: String, session_id: String, type: Symbol}
254
+ )
255
+ end
256
+ def to_hash
257
+ end
258
+
259
+ end
260
+
261
+ class TransportAnswered < OpenAI::Internal::Type::BaseModel
262
+ OrHash = T.type_alias do
263
+ T.any(
264
+ OpenAI::Live::SidebandServerEvent::TransportAnswered,
265
+ OpenAI::Internal::AnyHash
266
+ )
267
+ end
268
+
269
+ sig { returns(String) }
270
+ attr_accessor :event_id
271
+
272
+ # The canonical Live session ID.
273
+ sig { returns(String) }
274
+ attr_accessor :session_id
275
+
276
+ sig { returns(Symbol) }
277
+ attr_accessor :type
278
+
279
+ # The outbound SIP provider leg answered and media is established. Delivered only
280
+ # to sideband observers.
281
+ sig do
282
+ params(
283
+
284
+ event_id: String,
285
+
286
+ session_id: String,
287
+
288
+ type: Symbol
289
+ )
290
+ .returns(T.attached_class)
291
+ end
292
+ def self.new(
293
+
294
+ event_id:,
295
+
296
+ # The canonical Live session ID.
297
+ session_id:,
298
+
299
+ type: :"transport.answered"
300
+ )
301
+ end
302
+
303
+ sig do
304
+ override.returns(
305
+ {event_id: String, session_id: String, type: Symbol}
306
+ )
307
+ end
308
+ def to_hash
309
+ end
310
+
311
+ end
312
+
313
+ class TransportFailed < OpenAI::Internal::Type::BaseModel
314
+ OrHash = T.type_alias do
315
+ T.any(
316
+ OpenAI::Live::SidebandServerEvent::TransportFailed,
317
+ OpenAI::Internal::AnyHash
318
+ )
319
+ end
320
+
321
+ sig { returns(OpenAI::Live::SidebandServerEvent::TransportFailed::Error) }
322
+ attr_reader :error
323
+
324
+ sig { params(error: OpenAI::Live::SidebandServerEvent::TransportFailed::Error::OrHash).void }
325
+ attr_writer :error
326
+
327
+ sig { returns(String) }
328
+ attr_accessor :event_id
329
+
330
+ # The canonical Live session ID.
331
+ sig { returns(String) }
332
+ attr_accessor :session_id
333
+
334
+ sig { returns(Symbol) }
335
+ attr_accessor :type
336
+
337
+ # An asynchronous outbound SIP setup failure. Delivered only to sideband
338
+ # observers.
339
+ sig do
340
+ params(
341
+
342
+ error: OpenAI::Live::SidebandServerEvent::TransportFailed::Error::OrHash,
343
+
344
+ event_id: String,
345
+
346
+ session_id: String,
347
+
348
+ type: Symbol
349
+ )
350
+ .returns(T.attached_class)
351
+ end
352
+ def self.new(
353
+
354
+ error:,
355
+
356
+ event_id:,
357
+
358
+ # The canonical Live session ID.
359
+ session_id:,
360
+
361
+ type: :"transport.failed"
362
+ )
363
+ end
364
+
365
+ sig do
366
+ override.returns(
367
+ {
368
+ error: OpenAI::Live::SidebandServerEvent::TransportFailed::Error,
369
+ event_id: String,
370
+ session_id: String,
371
+ type: Symbol
372
+ }
373
+ )
374
+ end
375
+ def to_hash
376
+ end
377
+
378
+ class Error < OpenAI::Internal::Type::BaseModel
379
+ OrHash = T.type_alias do
380
+ T.any(
381
+ OpenAI::Live::SidebandServerEvent::TransportFailed::Error,
382
+ OpenAI::Internal::AnyHash
383
+ )
384
+ end
385
+
386
+ # The call setup failure code.
387
+ sig { returns(String) }
388
+ attr_accessor :code
389
+
390
+ sig { returns(String) }
391
+ attr_accessor :message
392
+
393
+ sig { returns(Symbol) }
394
+ attr_accessor :type
395
+
396
+ # The parameter related to the error, if any. Empty when no parameter applies.
397
+ sig { returns(T.nilable(String)) }
398
+ attr_reader :param
399
+
400
+ sig { params(param: String).void }
401
+ attr_writer :param
402
+
403
+ sig do
404
+ params(
405
+
406
+ code: String,
407
+
408
+ message: String,
409
+
410
+ param: String,
411
+
412
+ type: Symbol
413
+ )
414
+ .returns(T.attached_class)
415
+ end
416
+ def self.new(
417
+
418
+ # The call setup failure code.
419
+ code:,
420
+
421
+ message:,
422
+
423
+ # The parameter related to the error, if any. Empty when no parameter applies.
424
+ param: nil,
425
+
426
+ type: :call_error
427
+ )
428
+ end
429
+
430
+ sig do
431
+ override.returns(
432
+ {code: String, message: String, type: Symbol, param: T.nilable(String)}
433
+ )
434
+ end
435
+ def to_hash
436
+ end
437
+
438
+ end
439
+ end
440
+
38
441
  sig { override.returns(T::Array[OpenAI::Live::SidebandServerEvent::Variants]) }
39
442
  def self.variants
40
443
  end
@@ -80,6 +80,8 @@ module OpenAI
80
80
 
81
81
  DecisionInputText = OpenAI::Models::DecisionInputText
82
82
 
83
+ DecisionPromptCacheBreakpoint = OpenAI::Models::DecisionPromptCacheBreakpoint
84
+
83
85
  DeletedSkill = OpenAI::Models::DeletedSkill
84
86
 
85
87
  Embedding = OpenAI::Models::Embedding
@@ -8,6 +8,23 @@ module OpenAI
8
8
  # Create and manage model responses.
9
9
  class Responses
10
10
 
11
+ include OpenAI::WebSocket::Resource
12
+
13
+ # @api private
14
+ sig { params(query: T::Hash[T.untyped, T.untyped]).returns(T::Hash[Symbol, T.untyped]) }
15
+ def __websocket_request(query: {})
16
+ end
17
+
18
+ # @api private
19
+ sig { returns(T.untyped) }
20
+ def __websocket_client_event
21
+ end
22
+
23
+ # @api private
24
+ sig { returns(T.untyped) }
25
+ def __websocket_server_event
26
+ end
27
+
11
28
  # Create and manage model responses.
12
29
  sig { returns(OpenAI::Resources::Beta::Responses::InputItems) }
13
30
  attr_reader :input_items
@@ -18,6 +18,8 @@ module OpenAI
18
18
  OpenAI::DecisionCreateParams::Question::Score::OrHash
19
19
  )
20
20
  ],
21
+ prompt_cache_key: T.nilable(String),
22
+ prompt_cache_options: T.nilable(OpenAI::DecisionCreateParams::PromptCacheOptions::OrHash),
21
23
  safety_identifier: T.nilable(String),
22
24
  request_options: OpenAI::RequestOptions::OrHash
23
25
  )
@@ -34,6 +36,18 @@ module OpenAI
34
36
  # Ask 1–200 questions about the input. Each question can be a predicate, choice,
35
37
  # or score. Answers come back in the same order.
36
38
  questions:,
39
+ # Partition prompt cache reuse by caller-provided key.
40
+ prompt_cache_key: nil,
41
+ # Options for prompt caching. Supported for `gpt-5.6` and later models. By
42
+ # default, OpenAI automatically chooses one implicit cache breakpoint. You can add
43
+ # explicit breakpoints to content blocks with `prompt_cache_breakpoint`. Each
44
+ # request can write up to four breakpoints. For cache matching, OpenAI considers
45
+ # up to the latest 80 breakpoints in the conversation, without a content-block
46
+ # lookback limit. Set `mode` to `explicit` to disable the implicit breakpoint. The
47
+ # `ttl` defaults to `30m`, which is currently the only supported value. See the
48
+ # [prompt caching guide](https://developers.openai.com/api/docs/guides/prompt-caching)
49
+ # for current details.
50
+ prompt_cache_options: nil,
37
51
  # Opaque caller-provided end-user identifier, scoped by the verified org. Match
38
52
  # Responses' limit; this is never the authenticated user identity.
39
53
  safety_identifier: nil,
@@ -60,13 +60,14 @@ module OpenAI
60
60
  def self?.variants: -> ::Array[OpenAI::Models::Admin::Organization::ExternalStorageConfiguration::provider]
61
61
  end
62
62
 
63
- type status = :pending | :validated | :unhealthy
63
+ type status = :pending | :validated | :degraded | :unhealthy
64
64
 
65
65
  module Status
66
66
  extend OpenAI::Internal::Type::Enum
67
67
 
68
68
  PENDING: :pending
69
69
  VALIDATED: :validated
70
+ DEGRADED: :degraded
70
71
  UNHEALTHY: :unhealthy
71
72
 
72
73
  def self?.values: -> ::Array[OpenAI::Models::Admin::Organization::ExternalStorageConfiguration::status]
@@ -100,7 +100,8 @@ module OpenAI
100
100
  ?request_options: OpenAI::RequestOptions
101
101
  }
102
102
 
103
- type service_tier = :auto | :default | :flex | :priority | :fast
103
+ type service_tier =
104
+ :auto | :default | :flex | :priority | :fast | :ultrafast
104
105
 
105
106
  module ServiceTier
106
107
  extend OpenAI::Internal::Type::Enum
@@ -120,6 +121,9 @@ module OpenAI
120
121
  # Uses the fast service tier.
121
122
  FAST: :fast
122
123
 
124
+ # Uses the ultrafast service tier.
125
+ ULTRAFAST: :ultrafast
126
+
123
127
  def self?.values: -> ::Array[OpenAI::Models::Beta::AgentCreateParams::service_tier]
124
128
  end
125
129
  end
@@ -108,7 +108,8 @@ module OpenAI
108
108
  ?request_options: OpenAI::RequestOptions
109
109
  }
110
110
 
111
- type service_tier = :auto | :default | :flex | :priority | :fast
111
+ type service_tier =
112
+ :auto | :default | :flex | :priority | :fast | :ultrafast
112
113
 
113
114
  module ServiceTier
114
115
  extend OpenAI::Internal::Type::Enum
@@ -128,6 +129,9 @@ module OpenAI
128
129
  # Uses the fast service tier.
129
130
  FAST: :fast
130
131
 
132
+ # Uses the ultrafast service tier.
133
+ ULTRAFAST: :ultrafast
134
+
131
135
  def self?.values: -> ::Array[OpenAI::Models::Beta::AgentUpdateParams::service_tier]
132
136
  end
133
137
  end
@@ -177,7 +177,8 @@ module OpenAI
177
177
  ?tools: ::Array[OpenAI::Models::Beta::agent_tool_param]?
178
178
  }
179
179
 
180
- type service_tier = :auto | :default | :flex | :priority | :fast
180
+ type service_tier =
181
+ :auto | :default | :flex | :priority | :fast | :ultrafast
181
182
 
182
183
  module ServiceTier
183
184
  extend OpenAI::Internal::Type::Enum
@@ -197,6 +198,9 @@ module OpenAI
197
198
  # Uses the fast service tier.
198
199
  FAST: :fast
199
200
 
201
+ # Uses the ultrafast service tier.
202
+ ULTRAFAST: :ultrafast
203
+
200
204
  def self?.values: -> ::Array[OpenAI::Models::Beta::Agents::SessionCreateParams::Agent::service_tier]
201
205
  end
202
206
  end
@@ -139,7 +139,8 @@ module OpenAI
139
139
  end
140
140
  end
141
141
 
142
- type service_tier = :auto | :default | :flex | :priority | :fast
142
+ type service_tier =
143
+ :auto | :default | :flex | :priority | :fast | :ultrafast
143
144
 
144
145
  module ServiceTier
145
146
  extend OpenAI::Internal::Type::Enum
@@ -159,6 +160,9 @@ module OpenAI
159
160
  # Uses the fast service tier.
160
161
  FAST: :fast
161
162
 
163
+ # Uses the ultrafast service tier.
164
+ ULTRAFAST: :ultrafast
165
+
162
166
  def self?.values: -> ::Array[OpenAI::Models::Beta::Agents::SessionUpdateParams::Agent::service_tier]
163
167
  end
164
168
  end