openai 0.90.0 → 0.91.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 (85) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +19 -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/response_compact_params.rb +9 -3
  30. data/lib/openai/models/beta/response_create_params.rb +21 -4
  31. data/lib/openai/models/beta/session_turn_error.rb +3 -0
  32. data/lib/openai/models/chat_model.rb +3 -1
  33. data/lib/openai/models/responses/response_compact_params.rb +9 -3
  34. data/lib/openai/models/responses/response_compaction_compacting_event.rb +49 -0
  35. data/lib/openai/models/responses/response_create_params.rb +12 -1
  36. data/lib/openai/models/responses/response_stream_event.rb +4 -1
  37. data/lib/openai/models/responses/responses_client_event.rb +12 -1
  38. data/lib/openai/models/responses/responses_server_event.rb +36 -1
  39. data/lib/openai/models/webhooks/realtime_call_incoming_webhook_event.rb +6 -8
  40. data/lib/openai/resources/beta/agents/sessions.rb +6 -2
  41. data/lib/openai/resources/beta/responses.rb +2 -2
  42. data/lib/openai/resources/responses.rb +2 -2
  43. data/lib/openai/version.rb +1 -1
  44. data/lib/openai.rb +2 -0
  45. data/rbi/openai/helpers/responses_websocket/connection.rbi +5 -0
  46. data/rbi/openai/helpers/responses_websocket/session.rbi +206 -0
  47. data/rbi/openai/models/beta/agents/session_update_params.rbi +178 -0
  48. data/rbi/openai/models/beta/beta_response.rbi +6 -1
  49. data/rbi/openai/models/beta/beta_response_compaction_compacting_event.rbi +136 -0
  50. data/rbi/openai/models/beta/beta_response_stream_event.rbi +1 -0
  51. data/rbi/openai/models/beta/beta_responses_client_event.rbi +27 -4
  52. data/rbi/openai/models/beta/beta_responses_server_event.rbi +77 -0
  53. data/rbi/openai/models/beta/response_compact_params.rbi +6 -1
  54. data/rbi/openai/models/beta/response_create_params.rbi +21 -1
  55. data/rbi/openai/models/beta/session_turn_error.rbi +6 -0
  56. data/rbi/openai/models/chat_model.rbi +3 -1
  57. data/rbi/openai/models/responses/response_compact_params.rbi +6 -1
  58. data/rbi/openai/models/responses/response_compaction_compacting_event.rbi +78 -0
  59. data/rbi/openai/models/responses/response_create_params.rbi +15 -0
  60. data/rbi/openai/models/responses/response_stream_event.rbi +1 -0
  61. data/rbi/openai/models/responses/responses_client_event.rbi +15 -0
  62. data/rbi/openai/models/responses/responses_server_event.rbi +71 -0
  63. data/rbi/openai/models/webhooks/realtime_call_incoming_webhook_event.rbi +6 -8
  64. data/rbi/openai/resources/beta/agents/sessions.rbi +5 -1
  65. data/responses-websocket.md +117 -10
  66. data/sig/openai/helpers/responses_websocket/connection.rbs +5 -0
  67. data/sig/openai/helpers/responses_websocket/session.rbs +123 -0
  68. data/sig/openai/models/beta/agents/session_update_params.rbs +99 -0
  69. data/sig/openai/models/beta/beta_response.rbs +6 -2
  70. data/sig/openai/models/beta/beta_response_compaction_compacting_event.rbs +58 -0
  71. data/sig/openai/models/beta/beta_response_stream_event.rbs +1 -0
  72. data/sig/openai/models/beta/beta_responses_client_event.rbs +13 -2
  73. data/sig/openai/models/beta/beta_responses_server_event.rbs +35 -0
  74. data/sig/openai/models/beta/response_compact_params.rbs +6 -2
  75. data/sig/openai/models/beta/response_create_params.rbs +13 -2
  76. data/sig/openai/models/beta/session_turn_error.rbs +4 -0
  77. data/sig/openai/models/chat_model.rbs +6 -2
  78. data/sig/openai/models/responses/response_compact_params.rbs +6 -2
  79. data/sig/openai/models/responses/response_compaction_compacting_event.rbs +37 -0
  80. data/sig/openai/models/responses/response_create_params.rbs +7 -0
  81. data/sig/openai/models/responses/response_stream_event.rbs +1 -0
  82. data/sig/openai/models/responses/responses_client_event.rbs +7 -0
  83. data/sig/openai/models/responses/responses_server_event.rbs +32 -0
  84. data/sig/openai/resources/beta/agents/sessions.rbs +1 -0
  85. metadata +16 -2
@@ -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(
@@ -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
  )
@@ -67,6 +67,12 @@ module OpenAI
67
67
  # The organization has reached a usage, plan, or billing limit.
68
68
  USAGE_LIMIT_EXCEEDED = T.let(:usage_limit_exceeded, OpenAI::Beta::SessionTurnError::Code::TaggedSymbol)
69
69
 
70
+ # The organization has no API credits remaining.
71
+ CREDIT_BALANCE_EXHAUSTED = T.let(
72
+ :credit_balance_exhausted,
73
+ OpenAI::Beta::SessionTurnError::Code::TaggedSymbol
74
+ )
75
+
70
76
  # The request exceeds the available rate limit.
71
77
  RATE_LIMIT_EXCEEDED = T.let(:rate_limit_exceeded, OpenAI::Beta::SessionTurnError::Code::TaggedSymbol)
72
78
 
@@ -29,7 +29,6 @@ module OpenAI
29
29
  GPT_5_1 = T.let(:"gpt-5.1", OpenAI::ChatModel::TaggedSymbol)
30
30
  GPT_5_1_2025_11_13 = T.let(:"gpt-5.1-2025-11-13", OpenAI::ChatModel::TaggedSymbol)
31
31
  GPT_5_1_CODEX = T.let(:"gpt-5.1-codex", OpenAI::ChatModel::TaggedSymbol)
32
- GPT_5_1_MINI = T.let(:"gpt-5.1-mini", OpenAI::ChatModel::TaggedSymbol)
33
32
  GPT_5_1_CHAT_LATEST = T.let(:"gpt-5.1-chat-latest", OpenAI::ChatModel::TaggedSymbol)
34
33
  GPT_5 = T.let(:"gpt-5", OpenAI::ChatModel::TaggedSymbol)
35
34
  GPT_5_MINI = T.let(:"gpt-5-mini", OpenAI::ChatModel::TaggedSymbol)
@@ -60,6 +59,8 @@ module OpenAI
60
59
  GPT_4O_2024_11_20 = T.let(:"gpt-4o-2024-11-20", OpenAI::ChatModel::TaggedSymbol)
61
60
  GPT_4O_2024_08_06 = T.let(:"gpt-4o-2024-08-06", OpenAI::ChatModel::TaggedSymbol)
62
61
  GPT_4O_2024_05_13 = T.let(:"gpt-4o-2024-05-13", OpenAI::ChatModel::TaggedSymbol)
62
+ GPT_AUDIO_MINI = T.let(:"gpt-audio-mini", OpenAI::ChatModel::TaggedSymbol)
63
+ GPT_AUDIO_MINI_2025_12_15 = T.let(:"gpt-audio-mini-2025-12-15", OpenAI::ChatModel::TaggedSymbol)
63
64
  GPT_4O_AUDIO_PREVIEW = T.let(:"gpt-4o-audio-preview", OpenAI::ChatModel::TaggedSymbol)
64
65
  GPT_4O_AUDIO_PREVIEW_2024_10_01 = T.let(:"gpt-4o-audio-preview-2024-10-01", OpenAI::ChatModel::TaggedSymbol)
65
66
  GPT_4O_AUDIO_PREVIEW_2024_12_17 = T.let(:"gpt-4o-audio-preview-2024-12-17", OpenAI::ChatModel::TaggedSymbol)
@@ -99,6 +100,7 @@ module OpenAI
99
100
  GPT_3_5_TURBO_1106 = T.let(:"gpt-3.5-turbo-1106", OpenAI::ChatModel::TaggedSymbol)
100
101
  GPT_3_5_TURBO_0125 = T.let(:"gpt-3.5-turbo-0125", OpenAI::ChatModel::TaggedSymbol)
101
102
  GPT_3_5_TURBO_16K_0613 = T.let(:"gpt-3.5-turbo-16k-0613", OpenAI::ChatModel::TaggedSymbol)
103
+ GPT_5_1_MINI = T.let(:"gpt-5.1-mini", OpenAI::ChatModel::TaggedSymbol)
102
104
 
103
105
  sig { override.returns(T::Array[OpenAI::ChatModel::TaggedSymbol]) }
104
106
  def self.values
@@ -258,7 +258,6 @@ module OpenAI
258
258
  OpenAI::Responses::ResponseCompactParams::Model::TaggedSymbol
259
259
  )
260
260
  GPT_5_1_CODEX = T.let(:"gpt-5.1-codex", OpenAI::Responses::ResponseCompactParams::Model::TaggedSymbol)
261
- GPT_5_1_MINI = T.let(:"gpt-5.1-mini", OpenAI::Responses::ResponseCompactParams::Model::TaggedSymbol)
262
261
  GPT_5_1_CHAT_LATEST = T.let(
263
262
  :"gpt-5.1-chat-latest",
264
263
  OpenAI::Responses::ResponseCompactParams::Model::TaggedSymbol
@@ -319,6 +318,11 @@ module OpenAI
319
318
  GPT_4O_2024_11_20 = T.let(:"gpt-4o-2024-11-20", OpenAI::Responses::ResponseCompactParams::Model::TaggedSymbol)
320
319
  GPT_4O_2024_08_06 = T.let(:"gpt-4o-2024-08-06", OpenAI::Responses::ResponseCompactParams::Model::TaggedSymbol)
321
320
  GPT_4O_2024_05_13 = T.let(:"gpt-4o-2024-05-13", OpenAI::Responses::ResponseCompactParams::Model::TaggedSymbol)
321
+ GPT_AUDIO_MINI = T.let(:"gpt-audio-mini", OpenAI::Responses::ResponseCompactParams::Model::TaggedSymbol)
322
+ GPT_AUDIO_MINI_2025_12_15 = T.let(
323
+ :"gpt-audio-mini-2025-12-15",
324
+ OpenAI::Responses::ResponseCompactParams::Model::TaggedSymbol
325
+ )
322
326
  GPT_4O_AUDIO_PREVIEW = T.let(
323
327
  :"gpt-4o-audio-preview",
324
328
  OpenAI::Responses::ResponseCompactParams::Model::TaggedSymbol
@@ -415,6 +419,7 @@ module OpenAI
415
419
  :"gpt-3.5-turbo-16k-0613",
416
420
  OpenAI::Responses::ResponseCompactParams::Model::TaggedSymbol
417
421
  )
422
+ GPT_5_1_MINI = T.let(:"gpt-5.1-mini", OpenAI::Responses::ResponseCompactParams::Model::TaggedSymbol)
418
423
  O1_PRO = T.let(:"o1-pro", OpenAI::Responses::ResponseCompactParams::Model::TaggedSymbol)
419
424
  O1_PRO_2025_03_19 = T.let(:"o1-pro-2025-03-19", OpenAI::Responses::ResponseCompactParams::Model::TaggedSymbol)
420
425
  O3_PRO = T.let(:"o3-pro", OpenAI::Responses::ResponseCompactParams::Model::TaggedSymbol)
@@ -0,0 +1,78 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+
6
+ module Responses
7
+
8
+ class ResponseCompactionCompactingEvent < OpenAI::Internal::Type::BaseModel
9
+
10
+ OrHash = T.type_alias do
11
+ T.any(
12
+ OpenAI::Responses::ResponseCompactionCompactingEvent,
13
+ OpenAI::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ # The ID of the compaction output item.
18
+ sig { returns(String) }
19
+ attr_accessor :item_id
20
+
21
+ # The index of the compaction output item.
22
+ sig { returns(Integer) }
23
+ attr_accessor :output_index
24
+
25
+ # The sequence number of the event that was emitted.
26
+ sig { returns(Integer) }
27
+ attr_accessor :sequence_number
28
+
29
+ # The type of the event, always `response.compaction.compacting`.
30
+ sig { returns(Symbol) }
31
+ attr_accessor :type
32
+
33
+ # Emitted when new summary content is sampled for a compaction trigger. Contains
34
+ # no summary content.
35
+ sig do
36
+ params(
37
+
38
+ item_id: String,
39
+
40
+ output_index: Integer,
41
+
42
+ sequence_number: Integer,
43
+
44
+ type: Symbol
45
+ )
46
+ .returns(T.attached_class)
47
+ end
48
+ def self.new(
49
+
50
+ # The ID of the compaction output item.
51
+ item_id:,
52
+
53
+ # The index of the compaction output item.
54
+ output_index:,
55
+
56
+ # The sequence number of the event that was emitted.
57
+ sequence_number:,
58
+
59
+ # The type of the event, always `response.compaction.compacting`.
60
+
61
+ type: :"response.compaction.compacting"
62
+ )
63
+ end
64
+
65
+ sig do
66
+ override.returns(
67
+ {item_id: String, output_index: Integer, sequence_number: Integer, type: Symbol}
68
+ )
69
+ end
70
+ def to_hash
71
+ end
72
+
73
+ end
74
+
75
+ end
76
+
77
+ end
78
+ end
@@ -1176,6 +1176,14 @@ module OpenAI
1176
1176
  sig { params(mode: OpenAI::Responses::ResponseCreateParams::PromptCacheOptions::Mode::OrSymbol).void }
1177
1177
  attr_writer :mode
1178
1178
 
1179
+ # Prepares the prompt cache without generating output. Defaults to `false`. When
1180
+ # set to `true`, overrides the `generate` field to `false`.
1181
+ sig { returns(T.nilable(T::Boolean)) }
1182
+ attr_reader :prewarm
1183
+
1184
+ sig { params(prewarm: T::Boolean).void }
1185
+ attr_writer :prewarm
1186
+
1179
1187
  # The minimum lifetime applied to every implicit and explicit cache breakpoint
1180
1188
  # written by the request. Defaults to `30m`, which is currently the only supported
1181
1189
  # value. The backend may retain cache entries for longer.
@@ -1201,6 +1209,8 @@ module OpenAI
1201
1209
 
1202
1210
  mode: OpenAI::Responses::ResponseCreateParams::PromptCacheOptions::Mode::OrSymbol,
1203
1211
 
1212
+ prewarm: T::Boolean,
1213
+
1204
1214
  ttl: OpenAI::Responses::ResponseCreateParams::PromptCacheOptions::Ttl::OrSymbol
1205
1215
  )
1206
1216
  .returns(T.attached_class)
@@ -1219,6 +1229,10 @@ module OpenAI
1219
1229
  # request does not use prompt caching.
1220
1230
  mode: nil,
1221
1231
 
1232
+ # Prepares the prompt cache without generating output. Defaults to `false`. When
1233
+ # set to `true`, overrides the `generate` field to `false`.
1234
+ prewarm: nil,
1235
+
1222
1236
  # The minimum lifetime applied to every implicit and explicit cache breakpoint
1223
1237
  # written by the request. Defaults to `30m`, which is currently the only supported
1224
1238
  # value. The backend may retain cache entries for longer.
@@ -1232,6 +1246,7 @@ module OpenAI
1232
1246
  {
1233
1247
  comparison_response_id: T.nilable(String),
1234
1248
  mode: OpenAI::Responses::ResponseCreateParams::PromptCacheOptions::Mode::OrSymbol,
1249
+ prewarm: T::Boolean,
1235
1250
  ttl: OpenAI::Responses::ResponseCreateParams::PromptCacheOptions::Ttl::OrSymbol
1236
1251
  }
1237
1252
  )
@@ -20,6 +20,7 @@ module OpenAI
20
20
  OpenAI::Responses::ResponseCodeInterpreterCallCompletedEvent,
21
21
  OpenAI::Responses::ResponseCodeInterpreterCallInProgressEvent,
22
22
  OpenAI::Responses::ResponseCodeInterpreterCallInterpretingEvent,
23
+ OpenAI::Responses::ResponseCompactionCompactingEvent,
23
24
  OpenAI::Responses::ResponseCompletedEvent,
24
25
  OpenAI::Responses::ResponseContentPartAddedEvent,
25
26
  OpenAI::Responses::ResponseContentPartDoneEvent,
@@ -1327,6 +1327,14 @@ module OpenAI
1327
1327
  }
1328
1328
  attr_writer :mode
1329
1329
 
1330
+ # Prepares the prompt cache without generating output. Defaults to `false`. When
1331
+ # set to `true`, overrides the `generate` field to `false`.
1332
+ sig { returns(T.nilable(T::Boolean)) }
1333
+ attr_reader :prewarm
1334
+
1335
+ sig { params(prewarm: T::Boolean).void }
1336
+ attr_writer :prewarm
1337
+
1330
1338
  # The minimum lifetime applied to every implicit and explicit cache breakpoint
1331
1339
  # written by the request. Defaults to `30m`, which is currently the only supported
1332
1340
  # value. The backend may retain cache entries for longer.
@@ -1359,6 +1367,8 @@ module OpenAI
1359
1367
 
1360
1368
  mode: OpenAI::Responses::ResponsesClientEvent::ResponseCreate::PromptCacheOptions::Mode::OrSymbol,
1361
1369
 
1370
+ prewarm: T::Boolean,
1371
+
1362
1372
  ttl: OpenAI::Responses::ResponsesClientEvent::ResponseCreate::PromptCacheOptions::Ttl::OrSymbol
1363
1373
  )
1364
1374
  .returns(T.attached_class)
@@ -1377,6 +1387,10 @@ module OpenAI
1377
1387
  # request does not use prompt caching.
1378
1388
  mode: nil,
1379
1389
 
1390
+ # Prepares the prompt cache without generating output. Defaults to `false`. When
1391
+ # set to `true`, overrides the `generate` field to `false`.
1392
+ prewarm: nil,
1393
+
1380
1394
  # The minimum lifetime applied to every implicit and explicit cache breakpoint
1381
1395
  # written by the request. Defaults to `30m`, which is currently the only supported
1382
1396
  # value. The backend may retain cache entries for longer.
@@ -1392,6 +1406,7 @@ module OpenAI
1392
1406
  mode: T.nilable(
1393
1407
  OpenAI::Responses::ResponsesClientEvent::ResponseCreate::PromptCacheOptions::Mode::OrSymbol
1394
1408
  ),
1409
+ prewarm: T.nilable(T::Boolean),
1395
1410
  ttl: T.nilable(
1396
1411
  OpenAI::Responses::ResponsesClientEvent::ResponseCreate::PromptCacheOptions::Ttl::OrSymbol
1397
1412
  )
@@ -24,6 +24,7 @@ module OpenAI
24
24
  OpenAI::Responses::ResponsesServerEvent::ResponseCodeInterpreterCallWsCompleted,
25
25
  OpenAI::Responses::ResponsesServerEvent::ResponseCodeInterpreterCallInWsProgress,
26
26
  OpenAI::Responses::ResponsesServerEvent::ResponseCodeInterpreterCallWsInterpreting,
27
+ OpenAI::Responses::ResponsesServerEvent::ResponseCompactionWsCompacting,
27
28
  OpenAI::Responses::ResponsesServerEvent::ResponseWsCompleted,
28
29
  OpenAI::Responses::ResponsesServerEvent::ResponseContentPartWsAdded,
29
30
  OpenAI::Responses::ResponsesServerEvent::ResponseContentPartWsDone,
@@ -658,6 +659,76 @@ module OpenAI
658
659
 
659
660
  end
660
661
 
662
+ class ResponseCompactionWsCompacting < OpenAI::Models::Responses::ResponseCompactionCompactingEvent
663
+ OrHash = T.type_alias do
664
+ T.any(
665
+ OpenAI::Responses::ResponsesServerEvent::ResponseCompactionWsCompacting,
666
+ OpenAI::Internal::AnyHash
667
+ )
668
+ end
669
+
670
+ # The WebSocket lane that emitted this event. This field is present when the
671
+ # originating `response.create` event supplied a `stream_id`.
672
+ sig { returns(T.nilable(String)) }
673
+ attr_reader :stream_id
674
+
675
+ sig { params(stream_id: String).void }
676
+ attr_writer :stream_id
677
+
678
+ # Emitted when new summary content is sampled for a compaction trigger. Contains
679
+ # no summary content.
680
+ sig do
681
+ params(
682
+
683
+ item_id: String,
684
+
685
+ output_index: Integer,
686
+
687
+ sequence_number: Integer,
688
+
689
+ stream_id: String,
690
+
691
+ type: Symbol
692
+ )
693
+ .returns(T.attached_class)
694
+ end
695
+ def self.new(
696
+
697
+ # The ID of the compaction output item.
698
+ item_id:,
699
+
700
+ # The index of the compaction output item.
701
+ output_index:,
702
+
703
+ # The sequence number of the event that was emitted.
704
+ sequence_number:,
705
+
706
+ # The WebSocket lane that emitted this event. This field is present when the
707
+ # originating `response.create` event supplied a `stream_id`.
708
+ stream_id: nil,
709
+
710
+ # The type of the event, always `response.compaction.compacting`.
711
+
712
+ type: :"response.compaction.compacting"
713
+ )
714
+ end
715
+
716
+ sig do
717
+ override.returns(
718
+ {
719
+ item_id: String,
720
+ output_index: Integer,
721
+ sequence_number: Integer,
722
+ type: Symbol,
723
+ stream_id: T.nilable(String)
724
+ }
725
+ )
726
+ end
727
+ def to_hash
728
+ end
729
+
730
+ end
731
+
661
732
  class ResponseWsCompleted < OpenAI::Models::Responses::ResponseCompletedEvent
662
733
  OrHash = T.type_alias do
663
734
  T.any(
@@ -100,10 +100,9 @@ module OpenAI
100
100
  )
101
101
  end
102
102
 
103
- # The Transceiver `rtc_...` ID of the pending SIP session. The paired
104
- # `live.transport.incoming` event derives its `session_id` by replacing the `rtc_`
105
- # prefix with `live_`. Use the ID returned by the event with the corresponding
106
- # Realtime or Live API.
103
+ # The ID of the pending SIP call. Pass this value unchanged when accepting or
104
+ # rejecting the call through the Realtime API. For the Live API, use the
105
+ # `session_id` from `live.transport.incoming` instead.
107
106
  sig { returns(String) }
108
107
  attr_accessor :call_id
109
108
 
@@ -125,10 +124,9 @@ module OpenAI
125
124
  end
126
125
  def self.new(
127
126
 
128
- # The Transceiver `rtc_...` ID of the pending SIP session. The paired
129
- # `live.transport.incoming` event derives its `session_id` by replacing the `rtc_`
130
- # prefix with `live_`. Use the ID returned by the event with the corresponding
131
- # Realtime or Live API.
127
+ # The ID of the pending SIP call. Pass this value unchanged when accepting or
128
+ # rejecting the call through the Realtime API. For the Live API, use the
129
+ # `session_id` from `live.transport.incoming` instead.
132
130
  call_id:,
133
131
 
134
132
  # Headers from the SIP INVITE, excluding SIP authorization headers. Retained
@@ -130,11 +130,13 @@ module OpenAI
130
130
  )
131
131
  end
132
132
 
133
- # Updates session metadata. Omitted fields are unchanged. See
133
+ # Updates session metadata, model, reasoning effort, or service tier. Model
134
+ # settings apply to subsequent turns. Omitted fields are unchanged. See
134
135
  # [managing sessions](https://developers.openai.com/api/docs/guides/agents-api/sessions/manage).
135
136
  sig {
136
137
  params(
137
138
  session_id: String,
139
+ agent: OpenAI::Beta::Agents::SessionUpdateParams::Agent::OrHash,
138
140
  metadata: T.nilable(T::Hash[Symbol, String]),
139
141
  request_options: OpenAI::RequestOptions::OrHash
140
142
  )
@@ -143,6 +145,8 @@ module OpenAI
143
145
  def update(
144
146
  # The ID of the session.
145
147
  session_id,
148
+ # Model settings for subsequent turns. Omitted fields stay unchanged.
149
+ agent: nil,
146
150
  # Replaces all metadata. Omit to leave unchanged, or pass null or {} to clear it.
147
151
  # Up to 16 string key-value pairs, with keys up to 64 and values up to 512
148
152
  # characters.