openai 0.105.0 → 0.107.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 (122) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +67 -0
  3. data/README.md +1 -1
  4. data/lib/openai/helpers/live/websocket.rb +12 -141
  5. data/lib/openai/helpers/local_audio/process.rb +13 -3
  6. data/lib/openai/helpers/models/embedding.rb +42 -0
  7. data/lib/openai/helpers/realtime/connection.rb +22 -5
  8. data/lib/openai/helpers/realtime/recovery.rb +11 -5
  9. data/lib/openai/helpers/realtime/translation.rb +37 -169
  10. data/lib/openai/helpers/realtime/unknown_server_event.rb +5 -12
  11. data/lib/openai/helpers/responses_websocket/connection.rb +56 -35
  12. data/lib/openai/helpers/responses_websocket/unknown_server_event.rb +2 -14
  13. data/lib/openai/helpers/websocket/async_websocket_transport.rb +8 -6
  14. data/lib/openai/helpers/websocket/client_request.rb +1 -1
  15. data/lib/openai/helpers/websocket/connection.rb +21 -10
  16. data/lib/openai/helpers/websocket/connection_manager.rb +2 -1
  17. data/lib/openai/helpers/websocket/protocol.rb +160 -0
  18. data/lib/openai/helpers/websocket/typed_connection.rb +22 -16
  19. data/lib/openai/helpers/websocket/typed_resource.rb +15 -0
  20. data/lib/openai/internal/transport/base_client.rb +1 -1
  21. data/lib/openai/models/admin/organization/external_storage_configuration.rb +1 -0
  22. data/lib/openai/models/admin/organization/usage_audio_speeches_response.rb +12 -1
  23. data/lib/openai/models/admin/organization/usage_audio_transcriptions_response.rb +12 -1
  24. data/lib/openai/models/admin/organization/usage_code_interpreter_sessions_response.rb +12 -1
  25. data/lib/openai/models/admin/organization/usage_completions_response.rb +12 -1
  26. data/lib/openai/models/admin/organization/usage_costs_response.rb +12 -1
  27. data/lib/openai/models/admin/organization/usage_decisions_response.rb +12 -1
  28. data/lib/openai/models/admin/organization/usage_embeddings_response.rb +12 -1
  29. data/lib/openai/models/admin/organization/usage_file_search_calls_response.rb +12 -1
  30. data/lib/openai/models/admin/organization/usage_images_response.rb +12 -1
  31. data/lib/openai/models/admin/organization/usage_moderations_response.rb +12 -1
  32. data/lib/openai/models/admin/organization/usage_vector_stores_response.rb +12 -1
  33. data/lib/openai/models/admin/organization/usage_web_search_calls_response.rb +12 -1
  34. data/lib/openai/models/beta/agent_create_params.rb +3 -0
  35. data/lib/openai/models/beta/agent_update_params.rb +3 -0
  36. data/lib/openai/models/beta/agents/session_create_params.rb +3 -0
  37. data/lib/openai/models/beta/agents/session_update_params.rb +3 -0
  38. data/lib/openai/models/beta/assistant_update_params.rb +12 -0
  39. data/lib/openai/models/beta/beta_response.rb +12 -0
  40. data/lib/openai/models/beta/beta_response_input_item.rb +10 -1
  41. data/lib/openai/models/beta/beta_responses_client_event.rb +12 -0
  42. data/lib/openai/models/beta/response_compact_params.rb +12 -0
  43. data/lib/openai/models/beta/response_create_params.rb +12 -0
  44. data/lib/openai/models/chat_model.rb +12 -0
  45. data/lib/openai/models/decision_create_params.rb +112 -1
  46. data/lib/openai/models/decision_input_image.rb +14 -1
  47. data/lib/openai/models/decision_input_text.rb +15 -1
  48. data/lib/openai/models/decision_prompt_cache_breakpoint.rb +21 -0
  49. data/lib/openai/models/live/sideband_server_event.rb +243 -3
  50. data/lib/openai/models/responses/response_compact_params.rb +12 -0
  51. data/lib/openai/models/responses/response_input_item.rb +10 -1
  52. data/lib/openai/models.rb +2 -0
  53. data/lib/openai/resources/beta/responses.rb +19 -0
  54. data/lib/openai/resources/decisions.rb +15 -1
  55. data/lib/openai/version.rb +1 -1
  56. data/lib/openai.rb +2 -0
  57. data/rbi/openai/client.rbi +1 -8
  58. data/rbi/openai/helpers/realtime/translation.rbi +0 -5
  59. data/rbi/openai/helpers/realtime/unknown_server_event.rbi +6 -0
  60. data/rbi/openai/helpers/websocket.rbi +44 -6
  61. data/rbi/openai/internal/transport/base_client.rbi +2 -6
  62. data/rbi/openai/models/admin/organization/external_storage_configuration.rbi +1 -0
  63. data/rbi/openai/models/admin/organization/usage_audio_speeches_response.rbi +12 -0
  64. data/rbi/openai/models/admin/organization/usage_audio_transcriptions_response.rbi +12 -0
  65. data/rbi/openai/models/admin/organization/usage_code_interpreter_sessions_response.rbi +12 -0
  66. data/rbi/openai/models/admin/organization/usage_completions_response.rbi +12 -0
  67. data/rbi/openai/models/admin/organization/usage_costs_response.rbi +12 -0
  68. data/rbi/openai/models/admin/organization/usage_decisions_response.rbi +12 -0
  69. data/rbi/openai/models/admin/organization/usage_embeddings_response.rbi +12 -0
  70. data/rbi/openai/models/admin/organization/usage_file_search_calls_response.rbi +12 -0
  71. data/rbi/openai/models/admin/organization/usage_images_response.rbi +12 -0
  72. data/rbi/openai/models/admin/organization/usage_moderations_response.rbi +12 -0
  73. data/rbi/openai/models/admin/organization/usage_vector_stores_response.rbi +12 -0
  74. data/rbi/openai/models/admin/organization/usage_web_search_calls_response.rbi +12 -0
  75. data/rbi/openai/models/beta/agent_create_params.rbi +3 -0
  76. data/rbi/openai/models/beta/agent_update_params.rbi +3 -0
  77. data/rbi/openai/models/beta/agents/session_create_params.rbi +3 -0
  78. data/rbi/openai/models/beta/agents/session_update_params.rbi +3 -0
  79. data/rbi/openai/models/beta/beta_response_input_item.rbi +14 -1
  80. data/rbi/openai/models/decision_create_params.rbi +146 -0
  81. data/rbi/openai/models/decision_input_image.rbi +22 -1
  82. data/rbi/openai/models/decision_input_text.rbi +21 -1
  83. data/rbi/openai/models/decision_prompt_cache_breakpoint.rbi +48 -0
  84. data/rbi/openai/models/live/output_audio_delta_event.rbi +1 -1
  85. data/rbi/openai/models/live/sideband_server_event.rbi +406 -3
  86. data/rbi/openai/models/responses/response_input_item.rbi +10 -1
  87. data/rbi/openai/models.rbi +2 -0
  88. data/rbi/openai/resources/beta/responses.rbi +17 -0
  89. data/rbi/openai/resources/decisions.rbi +14 -0
  90. data/realtime.md +22 -3
  91. data/sig/openai/client.rbs +1 -1
  92. data/sig/openai/helpers/realtime/translation.rbs +0 -2
  93. data/sig/openai/helpers/realtime/unknown_server_event.rbs +2 -0
  94. data/sig/openai/helpers/websocket.rbs +23 -6
  95. data/sig/openai/models/admin/organization/external_storage_configuration.rbs +2 -1
  96. data/sig/openai/models/admin/organization/usage_audio_speeches_response.rbs +10 -0
  97. data/sig/openai/models/admin/organization/usage_audio_transcriptions_response.rbs +10 -0
  98. data/sig/openai/models/admin/organization/usage_code_interpreter_sessions_response.rbs +10 -0
  99. data/sig/openai/models/admin/organization/usage_completions_response.rbs +10 -0
  100. data/sig/openai/models/admin/organization/usage_costs_response.rbs +10 -0
  101. data/sig/openai/models/admin/organization/usage_decisions_response.rbs +10 -0
  102. data/sig/openai/models/admin/organization/usage_embeddings_response.rbs +10 -0
  103. data/sig/openai/models/admin/organization/usage_file_search_calls_response.rbs +10 -0
  104. data/sig/openai/models/admin/organization/usage_images_response.rbs +10 -0
  105. data/sig/openai/models/admin/organization/usage_moderations_response.rbs +10 -0
  106. data/sig/openai/models/admin/organization/usage_vector_stores_response.rbs +10 -0
  107. data/sig/openai/models/admin/organization/usage_web_search_calls_response.rbs +10 -0
  108. data/sig/openai/models/beta/agent_create_params.rbs +5 -1
  109. data/sig/openai/models/beta/agent_update_params.rbs +5 -1
  110. data/sig/openai/models/beta/agents/session_create_params.rbs +5 -1
  111. data/sig/openai/models/beta/agents/session_update_params.rbs +5 -1
  112. data/sig/openai/models/beta/beta_response_input_item.rbs +8 -0
  113. data/sig/openai/models/decision_create_params.rbs +106 -0
  114. data/sig/openai/models/decision_input_image.rbs +18 -2
  115. data/sig/openai/models/decision_input_text.rbs +29 -3
  116. data/sig/openai/models/decision_prompt_cache_breakpoint.rbs +16 -0
  117. data/sig/openai/models/live/sideband_server_event.rbs +225 -0
  118. data/sig/openai/models/responses/response_input_item.rbs +8 -3
  119. data/sig/openai/models.rbs +2 -0
  120. data/sig/openai/resources/beta/responses.rbs +7 -0
  121. data/sig/openai/resources/decisions.rbs +3 -0
  122. metadata +6 -1
@@ -231,6 +231,11 @@ module OpenAI
231
231
  sig { params(input_cache_write_12h_tokens: Integer).void }
232
232
  attr_writer :input_cache_write_12h_tokens
233
233
 
234
+ # The aggregated number of input tokens written to the cache with a 30-minute
235
+ # retention period. May be absent or null for older responses.
236
+ sig { returns(T.nilable(Integer)) }
237
+ attr_accessor :input_cache_write_30m_tokens
238
+
234
239
  # The aggregated number of input tokens written to the cache with a 30-minute
235
240
  # retention period.
236
241
  sig { returns(T.nilable(Integer)) }
@@ -354,6 +359,8 @@ module OpenAI
354
359
 
355
360
  input_cache_write_12h_tokens: Integer,
356
361
 
362
+ input_cache_write_30m_tokens: T.nilable(Integer),
363
+
357
364
  input_cache_write_tokens: Integer,
358
365
 
359
366
  input_cached_audio_tokens: Integer,
@@ -424,6 +431,10 @@ module OpenAI
424
431
  # retention period.
425
432
  input_cache_write_12h_tokens: nil,
426
433
 
434
+ # The aggregated number of input tokens written to the cache with a 30-minute
435
+ # retention period. May be absent or null for older responses.
436
+ input_cache_write_30m_tokens: nil,
437
+
427
438
  # The aggregated number of input tokens written to the cache with a 30-minute
428
439
  # retention period.
429
440
  input_cache_write_tokens: nil,
@@ -495,6 +506,7 @@ module OpenAI
495
506
  batch: T.nilable(T::Boolean),
496
507
  input_audio_tokens: Integer,
497
508
  input_cache_write_12h_tokens: Integer,
509
+ input_cache_write_30m_tokens: T.nilable(Integer),
498
510
  input_cache_write_tokens: Integer,
499
511
  input_cached_audio_tokens: Integer,
500
512
  input_cached_image_tokens: Integer,
@@ -227,6 +227,11 @@ module OpenAI
227
227
  sig { params(input_cache_write_12h_tokens: Integer).void }
228
228
  attr_writer :input_cache_write_12h_tokens
229
229
 
230
+ # The aggregated number of input tokens written to the cache with a 30-minute
231
+ # retention period. May be absent or null for older responses.
232
+ sig { returns(T.nilable(Integer)) }
233
+ attr_accessor :input_cache_write_30m_tokens
234
+
230
235
  # The aggregated number of input tokens written to the cache with a 30-minute
231
236
  # retention period.
232
237
  sig { returns(T.nilable(Integer)) }
@@ -350,6 +355,8 @@ module OpenAI
350
355
 
351
356
  input_cache_write_12h_tokens: Integer,
352
357
 
358
+ input_cache_write_30m_tokens: T.nilable(Integer),
359
+
353
360
  input_cache_write_tokens: Integer,
354
361
 
355
362
  input_cached_audio_tokens: Integer,
@@ -420,6 +427,10 @@ module OpenAI
420
427
  # retention period.
421
428
  input_cache_write_12h_tokens: nil,
422
429
 
430
+ # The aggregated number of input tokens written to the cache with a 30-minute
431
+ # retention period. May be absent or null for older responses.
432
+ input_cache_write_30m_tokens: nil,
433
+
423
434
  # The aggregated number of input tokens written to the cache with a 30-minute
424
435
  # retention period.
425
436
  input_cache_write_tokens: nil,
@@ -491,6 +502,7 @@ module OpenAI
491
502
  batch: T.nilable(T::Boolean),
492
503
  input_audio_tokens: Integer,
493
504
  input_cache_write_12h_tokens: Integer,
505
+ input_cache_write_30m_tokens: T.nilable(Integer),
494
506
  input_cache_write_tokens: Integer,
495
507
  input_cached_audio_tokens: Integer,
496
508
  input_cached_image_tokens: Integer,
@@ -223,6 +223,11 @@ module OpenAI
223
223
  sig { params(input_cache_write_12h_tokens: Integer).void }
224
224
  attr_writer :input_cache_write_12h_tokens
225
225
 
226
+ # The aggregated number of input tokens written to the cache with a 30-minute
227
+ # retention period. May be absent or null for older responses.
228
+ sig { returns(T.nilable(Integer)) }
229
+ attr_accessor :input_cache_write_30m_tokens
230
+
226
231
  # The aggregated number of input tokens written to the cache with a 30-minute
227
232
  # retention period.
228
233
  sig { returns(T.nilable(Integer)) }
@@ -346,6 +351,8 @@ module OpenAI
346
351
 
347
352
  input_cache_write_12h_tokens: Integer,
348
353
 
354
+ input_cache_write_30m_tokens: T.nilable(Integer),
355
+
349
356
  input_cache_write_tokens: Integer,
350
357
 
351
358
  input_cached_audio_tokens: Integer,
@@ -416,6 +423,10 @@ module OpenAI
416
423
  # retention period.
417
424
  input_cache_write_12h_tokens: nil,
418
425
 
426
+ # The aggregated number of input tokens written to the cache with a 30-minute
427
+ # retention period. May be absent or null for older responses.
428
+ input_cache_write_30m_tokens: nil,
429
+
419
430
  # The aggregated number of input tokens written to the cache with a 30-minute
420
431
  # retention period.
421
432
  input_cache_write_tokens: nil,
@@ -487,6 +498,7 @@ module OpenAI
487
498
  batch: T.nilable(T::Boolean),
488
499
  input_audio_tokens: Integer,
489
500
  input_cache_write_12h_tokens: Integer,
501
+ input_cache_write_30m_tokens: T.nilable(Integer),
490
502
  input_cache_write_tokens: Integer,
491
503
  input_cached_audio_tokens: Integer,
492
504
  input_cached_image_tokens: Integer,
@@ -183,6 +183,11 @@ module OpenAI
183
183
  sig { returns(T.nilable(Integer)) }
184
184
  attr_accessor :input_cache_write_12h_tokens
185
185
 
186
+ # The aggregated number of input tokens written to the cache with a 30-minute
187
+ # retention period.
188
+ sig { returns(T.nilable(Integer)) }
189
+ attr_accessor :input_cache_write_30m_tokens
190
+
186
191
  # The aggregated number of input tokens written to the cache with a 30-minute
187
192
  # retention period.
188
193
  sig { returns(T.nilable(Integer)) }
@@ -273,6 +278,8 @@ module OpenAI
273
278
 
274
279
  input_cache_write_12h_tokens: T.nilable(Integer),
275
280
 
281
+ input_cache_write_30m_tokens: T.nilable(Integer),
282
+
276
283
  input_cache_write_tokens: T.nilable(Integer),
277
284
 
278
285
  input_cached_audio_tokens: T.nilable(Integer),
@@ -343,6 +350,10 @@ module OpenAI
343
350
  # retention period.
344
351
  input_cache_write_12h_tokens: nil,
345
352
 
353
+ # The aggregated number of input tokens written to the cache with a 30-minute
354
+ # retention period.
355
+ input_cache_write_30m_tokens: nil,
356
+
346
357
  # The aggregated number of input tokens written to the cache with a 30-minute
347
358
  # retention period.
348
359
  input_cache_write_tokens: nil,
@@ -414,6 +425,7 @@ module OpenAI
414
425
  batch: T.nilable(T::Boolean),
415
426
  input_audio_tokens: T.nilable(Integer),
416
427
  input_cache_write_12h_tokens: T.nilable(Integer),
428
+ input_cache_write_30m_tokens: T.nilable(Integer),
417
429
  input_cache_write_tokens: T.nilable(Integer),
418
430
  input_cached_audio_tokens: T.nilable(Integer),
419
431
  input_cached_image_tokens: T.nilable(Integer),
@@ -227,6 +227,11 @@ module OpenAI
227
227
  sig { params(input_cache_write_12h_tokens: Integer).void }
228
228
  attr_writer :input_cache_write_12h_tokens
229
229
 
230
+ # The aggregated number of input tokens written to the cache with a 30-minute
231
+ # retention period. May be absent or null for older responses.
232
+ sig { returns(T.nilable(Integer)) }
233
+ attr_accessor :input_cache_write_30m_tokens
234
+
230
235
  # The aggregated number of input tokens written to the cache with a 30-minute
231
236
  # retention period.
232
237
  sig { returns(T.nilable(Integer)) }
@@ -350,6 +355,8 @@ module OpenAI
350
355
 
351
356
  input_cache_write_12h_tokens: Integer,
352
357
 
358
+ input_cache_write_30m_tokens: T.nilable(Integer),
359
+
353
360
  input_cache_write_tokens: Integer,
354
361
 
355
362
  input_cached_audio_tokens: Integer,
@@ -420,6 +427,10 @@ module OpenAI
420
427
  # retention period.
421
428
  input_cache_write_12h_tokens: nil,
422
429
 
430
+ # The aggregated number of input tokens written to the cache with a 30-minute
431
+ # retention period. May be absent or null for older responses.
432
+ input_cache_write_30m_tokens: nil,
433
+
423
434
  # The aggregated number of input tokens written to the cache with a 30-minute
424
435
  # retention period.
425
436
  input_cache_write_tokens: nil,
@@ -491,6 +502,7 @@ module OpenAI
491
502
  batch: T.nilable(T::Boolean),
492
503
  input_audio_tokens: Integer,
493
504
  input_cache_write_12h_tokens: Integer,
505
+ input_cache_write_30m_tokens: T.nilable(Integer),
494
506
  input_cache_write_tokens: Integer,
495
507
  input_cached_audio_tokens: Integer,
496
508
  input_cached_image_tokens: Integer,
@@ -229,6 +229,11 @@ module OpenAI
229
229
  sig { params(input_cache_write_12h_tokens: Integer).void }
230
230
  attr_writer :input_cache_write_12h_tokens
231
231
 
232
+ # The aggregated number of input tokens written to the cache with a 30-minute
233
+ # retention period. May be absent or null for older responses.
234
+ sig { returns(T.nilable(Integer)) }
235
+ attr_accessor :input_cache_write_30m_tokens
236
+
232
237
  # The aggregated number of input tokens written to the cache with a 30-minute
233
238
  # retention period.
234
239
  sig { returns(T.nilable(Integer)) }
@@ -352,6 +357,8 @@ module OpenAI
352
357
 
353
358
  input_cache_write_12h_tokens: Integer,
354
359
 
360
+ input_cache_write_30m_tokens: T.nilable(Integer),
361
+
355
362
  input_cache_write_tokens: Integer,
356
363
 
357
364
  input_cached_audio_tokens: Integer,
@@ -422,6 +429,10 @@ module OpenAI
422
429
  # retention period.
423
430
  input_cache_write_12h_tokens: nil,
424
431
 
432
+ # The aggregated number of input tokens written to the cache with a 30-minute
433
+ # retention period. May be absent or null for older responses.
434
+ input_cache_write_30m_tokens: nil,
435
+
425
436
  # The aggregated number of input tokens written to the cache with a 30-minute
426
437
  # retention period.
427
438
  input_cache_write_tokens: nil,
@@ -493,6 +504,7 @@ module OpenAI
493
504
  batch: T.nilable(T::Boolean),
494
505
  input_audio_tokens: Integer,
495
506
  input_cache_write_12h_tokens: Integer,
507
+ input_cache_write_30m_tokens: T.nilable(Integer),
496
508
  input_cache_write_tokens: Integer,
497
509
  input_cached_audio_tokens: Integer,
498
510
  input_cached_image_tokens: Integer,
@@ -223,6 +223,11 @@ module OpenAI
223
223
  sig { params(input_cache_write_12h_tokens: Integer).void }
224
224
  attr_writer :input_cache_write_12h_tokens
225
225
 
226
+ # The aggregated number of input tokens written to the cache with a 30-minute
227
+ # retention period. May be absent or null for older responses.
228
+ sig { returns(T.nilable(Integer)) }
229
+ attr_accessor :input_cache_write_30m_tokens
230
+
226
231
  # The aggregated number of input tokens written to the cache with a 30-minute
227
232
  # retention period.
228
233
  sig { returns(T.nilable(Integer)) }
@@ -346,6 +351,8 @@ module OpenAI
346
351
 
347
352
  input_cache_write_12h_tokens: Integer,
348
353
 
354
+ input_cache_write_30m_tokens: T.nilable(Integer),
355
+
349
356
  input_cache_write_tokens: Integer,
350
357
 
351
358
  input_cached_audio_tokens: Integer,
@@ -416,6 +423,10 @@ module OpenAI
416
423
  # retention period.
417
424
  input_cache_write_12h_tokens: nil,
418
425
 
426
+ # The aggregated number of input tokens written to the cache with a 30-minute
427
+ # retention period. May be absent or null for older responses.
428
+ input_cache_write_30m_tokens: nil,
429
+
419
430
  # The aggregated number of input tokens written to the cache with a 30-minute
420
431
  # retention period.
421
432
  input_cache_write_tokens: nil,
@@ -487,6 +498,7 @@ module OpenAI
487
498
  batch: T.nilable(T::Boolean),
488
499
  input_audio_tokens: Integer,
489
500
  input_cache_write_12h_tokens: Integer,
501
+ input_cache_write_30m_tokens: T.nilable(Integer),
490
502
  input_cache_write_tokens: Integer,
491
503
  input_cached_audio_tokens: Integer,
492
504
  input_cached_image_tokens: Integer,
@@ -227,6 +227,11 @@ module OpenAI
227
227
  sig { params(input_cache_write_12h_tokens: Integer).void }
228
228
  attr_writer :input_cache_write_12h_tokens
229
229
 
230
+ # The aggregated number of input tokens written to the cache with a 30-minute
231
+ # retention period. May be absent or null for older responses.
232
+ sig { returns(T.nilable(Integer)) }
233
+ attr_accessor :input_cache_write_30m_tokens
234
+
230
235
  # The aggregated number of input tokens written to the cache with a 30-minute
231
236
  # retention period.
232
237
  sig { returns(T.nilable(Integer)) }
@@ -350,6 +355,8 @@ module OpenAI
350
355
 
351
356
  input_cache_write_12h_tokens: Integer,
352
357
 
358
+ input_cache_write_30m_tokens: T.nilable(Integer),
359
+
353
360
  input_cache_write_tokens: Integer,
354
361
 
355
362
  input_cached_audio_tokens: Integer,
@@ -420,6 +427,10 @@ module OpenAI
420
427
  # retention period.
421
428
  input_cache_write_12h_tokens: nil,
422
429
 
430
+ # The aggregated number of input tokens written to the cache with a 30-minute
431
+ # retention period. May be absent or null for older responses.
432
+ input_cache_write_30m_tokens: nil,
433
+
423
434
  # The aggregated number of input tokens written to the cache with a 30-minute
424
435
  # retention period.
425
436
  input_cache_write_tokens: nil,
@@ -491,6 +502,7 @@ module OpenAI
491
502
  batch: T.nilable(T::Boolean),
492
503
  input_audio_tokens: Integer,
493
504
  input_cache_write_12h_tokens: Integer,
505
+ input_cache_write_30m_tokens: T.nilable(Integer),
494
506
  input_cache_write_tokens: Integer,
495
507
  input_cached_audio_tokens: Integer,
496
508
  input_cached_image_tokens: Integer,
@@ -227,6 +227,11 @@ module OpenAI
227
227
  sig { params(input_cache_write_12h_tokens: Integer).void }
228
228
  attr_writer :input_cache_write_12h_tokens
229
229
 
230
+ # The aggregated number of input tokens written to the cache with a 30-minute
231
+ # retention period. May be absent or null for older responses.
232
+ sig { returns(T.nilable(Integer)) }
233
+ attr_accessor :input_cache_write_30m_tokens
234
+
230
235
  # The aggregated number of input tokens written to the cache with a 30-minute
231
236
  # retention period.
232
237
  sig { returns(T.nilable(Integer)) }
@@ -350,6 +355,8 @@ module OpenAI
350
355
 
351
356
  input_cache_write_12h_tokens: Integer,
352
357
 
358
+ input_cache_write_30m_tokens: T.nilable(Integer),
359
+
353
360
  input_cache_write_tokens: Integer,
354
361
 
355
362
  input_cached_audio_tokens: Integer,
@@ -420,6 +427,10 @@ module OpenAI
420
427
  # retention period.
421
428
  input_cache_write_12h_tokens: nil,
422
429
 
430
+ # The aggregated number of input tokens written to the cache with a 30-minute
431
+ # retention period. May be absent or null for older responses.
432
+ input_cache_write_30m_tokens: nil,
433
+
423
434
  # The aggregated number of input tokens written to the cache with a 30-minute
424
435
  # retention period.
425
436
  input_cache_write_tokens: nil,
@@ -491,6 +502,7 @@ module OpenAI
491
502
  batch: T.nilable(T::Boolean),
492
503
  input_audio_tokens: Integer,
493
504
  input_cache_write_12h_tokens: Integer,
505
+ input_cache_write_30m_tokens: T.nilable(Integer),
494
506
  input_cache_write_tokens: Integer,
495
507
  input_cached_audio_tokens: Integer,
496
508
  input_cached_image_tokens: Integer,
@@ -229,6 +229,11 @@ module OpenAI
229
229
  sig { params(input_cache_write_12h_tokens: Integer).void }
230
230
  attr_writer :input_cache_write_12h_tokens
231
231
 
232
+ # The aggregated number of input tokens written to the cache with a 30-minute
233
+ # retention period. May be absent or null for older responses.
234
+ sig { returns(T.nilable(Integer)) }
235
+ attr_accessor :input_cache_write_30m_tokens
236
+
232
237
  # The aggregated number of input tokens written to the cache with a 30-minute
233
238
  # retention period.
234
239
  sig { returns(T.nilable(Integer)) }
@@ -352,6 +357,8 @@ module OpenAI
352
357
 
353
358
  input_cache_write_12h_tokens: Integer,
354
359
 
360
+ input_cache_write_30m_tokens: T.nilable(Integer),
361
+
355
362
  input_cache_write_tokens: Integer,
356
363
 
357
364
  input_cached_audio_tokens: Integer,
@@ -422,6 +429,10 @@ module OpenAI
422
429
  # retention period.
423
430
  input_cache_write_12h_tokens: nil,
424
431
 
432
+ # The aggregated number of input tokens written to the cache with a 30-minute
433
+ # retention period. May be absent or null for older responses.
434
+ input_cache_write_30m_tokens: nil,
435
+
425
436
  # The aggregated number of input tokens written to the cache with a 30-minute
426
437
  # retention period.
427
438
  input_cache_write_tokens: nil,
@@ -493,6 +504,7 @@ module OpenAI
493
504
  batch: T.nilable(T::Boolean),
494
505
  input_audio_tokens: Integer,
495
506
  input_cache_write_12h_tokens: Integer,
507
+ input_cache_write_30m_tokens: T.nilable(Integer),
496
508
  input_cache_write_tokens: Integer,
497
509
  input_cached_audio_tokens: Integer,
498
510
  input_cached_image_tokens: Integer,
@@ -208,6 +208,9 @@ module OpenAI
208
208
  # Uses the fast service tier.
209
209
  FAST = T.let(:fast, OpenAI::Beta::AgentCreateParams::ServiceTier::TaggedSymbol)
210
210
 
211
+ # Uses the ultrafast service tier.
212
+ ULTRAFAST = T.let(:ultrafast, OpenAI::Beta::AgentCreateParams::ServiceTier::TaggedSymbol)
213
+
211
214
  sig { override.returns(T::Array[OpenAI::Beta::AgentCreateParams::ServiceTier::TaggedSymbol]) }
212
215
  def self.values
213
216
  end
@@ -219,6 +219,9 @@ module OpenAI
219
219
  # Uses the fast service tier.
220
220
  FAST = T.let(:fast, OpenAI::Beta::AgentUpdateParams::ServiceTier::TaggedSymbol)
221
221
 
222
+ # Uses the ultrafast service tier.
223
+ ULTRAFAST = T.let(:ultrafast, OpenAI::Beta::AgentUpdateParams::ServiceTier::TaggedSymbol)
224
+
222
225
  sig { override.returns(T::Array[OpenAI::Beta::AgentUpdateParams::ServiceTier::TaggedSymbol]) }
223
226
  def self.values
224
227
  end
@@ -333,6 +333,9 @@ module OpenAI
333
333
  # Uses the fast service tier.
334
334
  FAST = T.let(:fast, OpenAI::Beta::Agents::SessionCreateParams::Agent::ServiceTier::TaggedSymbol)
335
335
 
336
+ # Uses the ultrafast service tier.
337
+ ULTRAFAST = T.let(:ultrafast, OpenAI::Beta::Agents::SessionCreateParams::Agent::ServiceTier::TaggedSymbol)
338
+
336
339
  sig {
337
340
  override.returns(T::Array[OpenAI::Beta::Agents::SessionCreateParams::Agent::ServiceTier::TaggedSymbol])
338
341
  }
@@ -251,6 +251,9 @@ module OpenAI
251
251
  # Uses the fast service tier.
252
252
  FAST = T.let(:fast, OpenAI::Beta::Agents::SessionUpdateParams::Agent::ServiceTier::TaggedSymbol)
253
253
 
254
+ # Uses the ultrafast service tier.
255
+ ULTRAFAST = T.let(:ultrafast, OpenAI::Beta::Agents::SessionUpdateParams::Agent::ServiceTier::TaggedSymbol)
256
+
254
257
  sig {
255
258
  override.returns(T::Array[OpenAI::Beta::Agents::SessionUpdateParams::Agent::ServiceTier::TaggedSymbol])
256
259
  }
@@ -5130,6 +5130,10 @@ module OpenAI
5130
5130
  sig { returns(Symbol) }
5131
5131
  attr_accessor :type
5132
5132
 
5133
+ # The unique ID of this compaction trigger.
5134
+ sig { returns(T.nilable(String)) }
5135
+ attr_accessor :id
5136
+
5133
5137
  # The agent that produced this item.
5134
5138
  sig { returns(T.nilable(OpenAI::Beta::BetaResponseInputItem::CompactionTrigger::Agent)) }
5135
5139
  attr_reader :agent
@@ -5141,6 +5145,8 @@ module OpenAI
5141
5145
  sig do
5142
5146
  params(
5143
5147
 
5148
+ id: T.nilable(String),
5149
+
5144
5150
  agent: T.nilable(OpenAI::Beta::BetaResponseInputItem::CompactionTrigger::Agent::OrHash),
5145
5151
 
5146
5152
  type: Symbol
@@ -5149,6 +5155,9 @@ module OpenAI
5149
5155
  end
5150
5156
  def self.new(
5151
5157
 
5158
+ # The unique ID of this compaction trigger.
5159
+ id: nil,
5160
+
5152
5161
  # The agent that produced this item.
5153
5162
  agent: nil,
5154
5163
 
@@ -5160,7 +5169,11 @@ module OpenAI
5160
5169
 
5161
5170
  sig do
5162
5171
  override.returns(
5163
- {type: Symbol, agent: T.nilable(OpenAI::Beta::BetaResponseInputItem::CompactionTrigger::Agent)}
5172
+ {
5173
+ type: Symbol,
5174
+ id: T.nilable(String),
5175
+ agent: T.nilable(OpenAI::Beta::BetaResponseInputItem::CompactionTrigger::Agent)
5176
+ }
5164
5177
  )
5165
5178
  end
5166
5179
  def to_hash
@@ -41,6 +41,22 @@ module OpenAI
41
41
  }
42
42
  attr_accessor :questions
43
43
 
44
+ # Partition prompt cache reuse by caller-provided key.
45
+ sig { returns(T.nilable(String)) }
46
+ attr_accessor :prompt_cache_key
47
+
48
+ # Options for prompt caching. Supported for `gpt-5.6` and later models. By
49
+ # default, OpenAI automatically chooses one implicit cache breakpoint. You can add
50
+ # explicit breakpoints to content blocks with `prompt_cache_breakpoint`. Each
51
+ # request can write up to four breakpoints. For cache matching, OpenAI considers
52
+ # up to the latest 80 breakpoints in the conversation, without a content-block
53
+ # lookback limit. Set `mode` to `explicit` to disable the implicit breakpoint. The
54
+ # `ttl` defaults to `30m`, which is currently the only supported value. See the
55
+ # [prompt caching guide](https://developers.openai.com/api/docs/guides/prompt-caching)
56
+ # for current details.
57
+ sig { returns(T.nilable(OpenAI::DecisionCreateParams::PromptCacheOptions::OrHash)) }
58
+ attr_accessor :prompt_cache_options
59
+
44
60
  # Opaque caller-provided end-user identifier, scoped by the verified org. Match
45
61
  # Responses' limit; this is never the authenticated user identity.
46
62
  sig { returns(T.nilable(String)) }
@@ -61,6 +77,10 @@ module OpenAI
61
77
  )
62
78
  ],
63
79
 
80
+ prompt_cache_key: T.nilable(String),
81
+
82
+ prompt_cache_options: T.nilable(OpenAI::DecisionCreateParams::PromptCacheOptions::OrHash),
83
+
64
84
  safety_identifier: T.nilable(String),
65
85
 
66
86
  request_options: OpenAI::RequestOptions::OrHash
@@ -82,6 +102,20 @@ module OpenAI
82
102
  # or score. Answers come back in the same order.
83
103
  questions:,
84
104
 
105
+ # Partition prompt cache reuse by caller-provided key.
106
+ prompt_cache_key: nil,
107
+
108
+ # Options for prompt caching. Supported for `gpt-5.6` and later models. By
109
+ # default, OpenAI automatically chooses one implicit cache breakpoint. You can add
110
+ # explicit breakpoints to content blocks with `prompt_cache_breakpoint`. Each
111
+ # request can write up to four breakpoints. For cache matching, OpenAI considers
112
+ # up to the latest 80 breakpoints in the conversation, without a content-block
113
+ # lookback limit. Set `mode` to `explicit` to disable the implicit breakpoint. The
114
+ # `ttl` defaults to `30m`, which is currently the only supported value. See the
115
+ # [prompt caching guide](https://developers.openai.com/api/docs/guides/prompt-caching)
116
+ # for current details.
117
+ prompt_cache_options: nil,
118
+
85
119
  # Opaque caller-provided end-user identifier, scoped by the verified org. Match
86
120
  # Responses' limit; this is never the authenticated user identity.
87
121
  safety_identifier: nil,
@@ -102,6 +136,8 @@ module OpenAI
102
136
  OpenAI::DecisionCreateParams::Question::Score
103
137
  )
104
138
  ],
139
+ prompt_cache_key: T.nilable(String),
140
+ prompt_cache_options: T.nilable(OpenAI::DecisionCreateParams::PromptCacheOptions::OrHash),
105
141
  safety_identifier: T.nilable(String),
106
142
  request_options: OpenAI::RequestOptions
107
143
  }
@@ -440,6 +476,116 @@ module OpenAI
440
476
 
441
477
  end
442
478
 
479
+ class PromptCacheOptions < OpenAI::Internal::Type::BaseModel
480
+ OrHash = T.type_alias do
481
+ T.any(
482
+ OpenAI::DecisionCreateParams::PromptCacheOptions,
483
+ OpenAI::Internal::AnyHash
484
+ )
485
+ end
486
+
487
+ # Controls whether OpenAI automatically creates an implicit cache breakpoint.
488
+ # Defaults to `implicit`. With `implicit`, OpenAI creates one implicit breakpoint
489
+ # and writes up to the latest three explicit breakpoints in the request. With
490
+ # `explicit`, OpenAI does not create an implicit breakpoint and writes up to the
491
+ # latest four explicit breakpoints. If there are no explicit breakpoints, the
492
+ # request does not use prompt caching.
493
+ sig { returns(T.nilable(OpenAI::DecisionCreateParams::PromptCacheOptions::Mode::OrSymbol)) }
494
+ attr_accessor :mode
495
+
496
+ # The minimum lifetime applied to every implicit and explicit cache breakpoint
497
+ # written by the request. Defaults to `30m`, which is currently the only supported
498
+ # value. The backend may retain cache entries for longer.
499
+ sig { returns(T.nilable(OpenAI::DecisionCreateParams::PromptCacheOptions::Ttl::OrSymbol)) }
500
+ attr_reader :ttl
501
+
502
+ sig { params(ttl: OpenAI::DecisionCreateParams::PromptCacheOptions::Ttl::OrSymbol).void }
503
+ attr_writer :ttl
504
+
505
+ # Options for prompt caching. Supported for `gpt-5.6` and later models. By
506
+ # default, OpenAI automatically chooses one implicit cache breakpoint. You can add
507
+ # explicit breakpoints to content blocks with `prompt_cache_breakpoint`. Each
508
+ # request can write up to four breakpoints. For cache matching, OpenAI considers
509
+ # up to the latest 80 breakpoints in the conversation, without a content-block
510
+ # lookback limit. Set `mode` to `explicit` to disable the implicit breakpoint. The
511
+ # `ttl` defaults to `30m`, which is currently the only supported value. See the
512
+ # [prompt caching guide](https://developers.openai.com/api/docs/guides/prompt-caching)
513
+ # for current details.
514
+ sig do
515
+ params(
516
+
517
+ mode: T.nilable(OpenAI::DecisionCreateParams::PromptCacheOptions::Mode::OrSymbol),
518
+
519
+ ttl: OpenAI::DecisionCreateParams::PromptCacheOptions::Ttl::OrSymbol
520
+ )
521
+ .returns(T.attached_class)
522
+ end
523
+ def self.new(
524
+
525
+ # Controls whether OpenAI automatically creates an implicit cache breakpoint.
526
+ # Defaults to `implicit`. With `implicit`, OpenAI creates one implicit breakpoint
527
+ # and writes up to the latest three explicit breakpoints in the request. With
528
+ # `explicit`, OpenAI does not create an implicit breakpoint and writes up to the
529
+ # latest four explicit breakpoints. If there are no explicit breakpoints, the
530
+ # request does not use prompt caching.
531
+ mode: nil,
532
+
533
+ # The minimum lifetime applied to every implicit and explicit cache breakpoint
534
+ # written by the request. Defaults to `30m`, which is currently the only supported
535
+ # value. The backend may retain cache entries for longer.
536
+
537
+ ttl: nil
538
+ )
539
+ end
540
+
541
+ sig do
542
+ override.returns(
543
+ {
544
+ mode: T.nilable(OpenAI::DecisionCreateParams::PromptCacheOptions::Mode::OrSymbol),
545
+ ttl: OpenAI::DecisionCreateParams::PromptCacheOptions::Ttl::OrSymbol
546
+ }
547
+ )
548
+ end
549
+ def to_hash
550
+ end
551
+
552
+ # Controls whether OpenAI automatically creates an implicit cache breakpoint.
553
+ # Defaults to `implicit`. With `implicit`, OpenAI creates one implicit breakpoint
554
+ # and writes up to the latest three explicit breakpoints in the request. With
555
+ # `explicit`, OpenAI does not create an implicit breakpoint and writes up to the
556
+ # latest four explicit breakpoints. If there are no explicit breakpoints, the
557
+ # request does not use prompt caching.
558
+ module Mode
559
+ extend OpenAI::Internal::Type::Enum
560
+
561
+ TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::DecisionCreateParams::PromptCacheOptions::Mode) }
562
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
563
+
564
+ IMPLICIT = T.let(:implicit, OpenAI::DecisionCreateParams::PromptCacheOptions::Mode::TaggedSymbol)
565
+ EXPLICIT = T.let(:explicit, OpenAI::DecisionCreateParams::PromptCacheOptions::Mode::TaggedSymbol)
566
+
567
+ sig { override.returns(T::Array[OpenAI::DecisionCreateParams::PromptCacheOptions::Mode::TaggedSymbol]) }
568
+ def self.values
569
+ end
570
+ end
571
+
572
+ # The minimum lifetime applied to every implicit and explicit cache breakpoint
573
+ # written by the request. Defaults to `30m`, which is currently the only supported
574
+ # value. The backend may retain cache entries for longer.
575
+ module Ttl
576
+ extend OpenAI::Internal::Type::Enum
577
+
578
+ TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::DecisionCreateParams::PromptCacheOptions::Ttl) }
579
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
580
+
581
+ TTL_30M = T.let(:"30m", OpenAI::DecisionCreateParams::PromptCacheOptions::Ttl::TaggedSymbol)
582
+
583
+ sig { override.returns(T::Array[OpenAI::DecisionCreateParams::PromptCacheOptions::Ttl::TaggedSymbol]) }
584
+ def self.values
585
+ end
586
+ end
587
+ end
588
+
443
589
  end
444
590
 
445
591
  end