openai 0.36.1 → 0.37.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 (133) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +14 -0
  3. data/README.md +1 -1
  4. data/lib/openai/models/all_models.rb +1 -0
  5. data/lib/openai/models/beta/assistant_create_params.rb +4 -3
  6. data/lib/openai/models/beta/assistant_update_params.rb +4 -3
  7. data/lib/openai/models/beta/threads/run_create_params.rb +4 -3
  8. data/lib/openai/models/chat/completion_create_params.rb +4 -3
  9. data/lib/openai/models/container_create_params.rb +22 -1
  10. data/lib/openai/models/container_create_response.rb +32 -1
  11. data/lib/openai/models/container_list_response.rb +32 -1
  12. data/lib/openai/models/container_retrieve_response.rb +32 -1
  13. data/lib/openai/models/conversations/conversation_create_params.rb +2 -2
  14. data/lib/openai/models/conversations/item_create_params.rb +2 -2
  15. data/lib/openai/models/evals/create_eval_completions_run_data_source.rb +4 -3
  16. data/lib/openai/models/evals/run_cancel_response.rb +8 -6
  17. data/lib/openai/models/evals/run_create_params.rb +8 -6
  18. data/lib/openai/models/evals/run_create_response.rb +8 -6
  19. data/lib/openai/models/evals/run_list_response.rb +8 -6
  20. data/lib/openai/models/evals/run_retrieve_response.rb +8 -6
  21. data/lib/openai/models/graders/score_model_grader.rb +4 -3
  22. data/lib/openai/models/realtime/input_audio_buffer_dtmf_event_received_event.rb +43 -0
  23. data/lib/openai/models/realtime/output_audio_buffer_clear_event.rb +4 -4
  24. data/lib/openai/models/realtime/realtime_audio_input_turn_detection.rb +13 -5
  25. data/lib/openai/models/realtime/realtime_client_event.rb +1 -1
  26. data/lib/openai/models/realtime/realtime_server_event.rb +16 -9
  27. data/lib/openai/models/realtime/realtime_session.rb +13 -5
  28. data/lib/openai/models/realtime/realtime_session_create_request.rb +14 -9
  29. data/lib/openai/models/realtime/realtime_session_create_response.rb +27 -14
  30. data/lib/openai/models/realtime/realtime_transcription_session_audio_input_turn_detection.rb +13 -5
  31. data/lib/openai/models/realtime/realtime_truncation.rb +14 -9
  32. data/lib/openai/models/reasoning.rb +4 -3
  33. data/lib/openai/models/reasoning_effort.rb +5 -3
  34. data/lib/openai/models/responses/compacted_response.rb +56 -0
  35. data/lib/openai/models/responses/input_token_count_params.rb +4 -4
  36. data/lib/openai/models/responses/response.rb +6 -6
  37. data/lib/openai/models/responses/response_compact_params.rb +344 -0
  38. data/lib/openai/models/responses/response_compaction_item.rb +43 -0
  39. data/lib/openai/models/responses/response_compaction_item_param.rb +36 -0
  40. data/lib/openai/models/responses/response_create_params.rb +4 -4
  41. data/lib/openai/models/responses/response_function_shell_call_output_content.rb +10 -10
  42. data/lib/openai/models/responses/response_function_shell_tool_call.rb +5 -5
  43. data/lib/openai/models/responses/response_function_shell_tool_call_output.rb +2 -2
  44. data/lib/openai/models/responses/response_input_item.rb +20 -17
  45. data/lib/openai/models/responses/response_output_item.rb +4 -1
  46. data/lib/openai/models/responses/response_output_item_added_event.rb +2 -2
  47. data/lib/openai/models/responses/response_output_item_done_event.rb +2 -2
  48. data/lib/openai/models/responses/tool.rb +4 -2
  49. data/lib/openai/models/responses/tool_choice_shell.rb +1 -1
  50. data/lib/openai/models/responses_model.rb +1 -0
  51. data/lib/openai/models/video_create_params.rb +11 -6
  52. data/lib/openai/resources/containers.rb +3 -1
  53. data/lib/openai/resources/conversations/items.rb +1 -1
  54. data/lib/openai/resources/conversations.rb +1 -1
  55. data/lib/openai/resources/responses/input_tokens.rb +1 -1
  56. data/lib/openai/resources/responses.rb +33 -2
  57. data/lib/openai/resources/videos.rb +6 -3
  58. data/lib/openai/resources/webhooks.rb +0 -3
  59. data/lib/openai/version.rb +1 -1
  60. data/lib/openai.rb +6 -0
  61. data/manifest.yaml +1 -0
  62. data/rbi/openai/models/all_models.rbi +5 -0
  63. data/rbi/openai/models/beta/assistant_create_params.rbi +8 -6
  64. data/rbi/openai/models/beta/assistant_update_params.rbi +8 -6
  65. data/rbi/openai/models/beta/threads/run_create_params.rbi +8 -6
  66. data/rbi/openai/models/chat/completion_create_params.rbi +8 -6
  67. data/rbi/openai/models/container_create_params.rbi +51 -0
  68. data/rbi/openai/models/container_create_response.rbi +81 -3
  69. data/rbi/openai/models/container_list_response.rbi +80 -3
  70. data/rbi/openai/models/container_retrieve_response.rbi +83 -3
  71. data/rbi/openai/models/conversations/conversation_create_params.rbi +3 -0
  72. data/rbi/openai/models/conversations/item_create_params.rbi +3 -0
  73. data/rbi/openai/models/evals/create_eval_completions_run_data_source.rbi +8 -6
  74. data/rbi/openai/models/evals/run_cancel_response.rbi +16 -12
  75. data/rbi/openai/models/evals/run_create_params.rbi +16 -12
  76. data/rbi/openai/models/evals/run_create_response.rbi +16 -12
  77. data/rbi/openai/models/evals/run_list_response.rbi +16 -12
  78. data/rbi/openai/models/evals/run_retrieve_response.rbi +16 -12
  79. data/rbi/openai/models/graders/score_model_grader.rbi +8 -6
  80. data/rbi/openai/models/realtime/input_audio_buffer_dtmf_event_received_event.rbi +56 -0
  81. data/rbi/openai/models/realtime/output_audio_buffer_clear_event.rbi +4 -4
  82. data/rbi/openai/models/realtime/realtime_audio_input_turn_detection.rbi +24 -8
  83. data/rbi/openai/models/realtime/realtime_server_event.rbi +6 -5
  84. data/rbi/openai/models/realtime/realtime_session.rbi +24 -8
  85. data/rbi/openai/models/realtime/realtime_session_create_request.rbi +28 -18
  86. data/rbi/openai/models/realtime/realtime_session_create_response.rbi +52 -26
  87. data/rbi/openai/models/realtime/realtime_transcription_session_audio_input_turn_detection.rbi +24 -8
  88. data/rbi/openai/models/realtime/realtime_truncation.rbi +14 -9
  89. data/rbi/openai/models/reasoning.rbi +8 -6
  90. data/rbi/openai/models/reasoning_effort.rbi +5 -3
  91. data/rbi/openai/models/responses/compacted_response.rbi +105 -0
  92. data/rbi/openai/models/responses/response.rbi +1 -0
  93. data/rbi/openai/models/responses/response_compact_params.rbi +593 -0
  94. data/rbi/openai/models/responses/response_compaction_item.rbi +67 -0
  95. data/rbi/openai/models/responses/response_compaction_item_param.rbi +54 -0
  96. data/rbi/openai/models/responses/response_function_shell_call_output_content.rbi +9 -9
  97. data/rbi/openai/models/responses/response_function_shell_tool_call.rbi +6 -6
  98. data/rbi/openai/models/responses/response_function_shell_tool_call_output.rbi +1 -1
  99. data/rbi/openai/models/responses/response_input_item.rbi +18 -17
  100. data/rbi/openai/models/responses/response_output_item.rbi +1 -0
  101. data/rbi/openai/models/responses/response_output_item_added_event.rbi +1 -0
  102. data/rbi/openai/models/responses/response_output_item_done_event.rbi +1 -0
  103. data/rbi/openai/models/responses/tool.rbi +6 -3
  104. data/rbi/openai/models/responses/tool_choice_shell.rbi +1 -1
  105. data/rbi/openai/models/responses_model.rbi +5 -0
  106. data/rbi/openai/models/video_create_params.rbi +10 -6
  107. data/rbi/openai/resources/beta/assistants.rbi +8 -6
  108. data/rbi/openai/resources/beta/threads/runs.rbi +8 -6
  109. data/rbi/openai/resources/chat/completions.rbi +8 -6
  110. data/rbi/openai/resources/containers.rbi +3 -0
  111. data/rbi/openai/resources/conversations/items.rbi +1 -0
  112. data/rbi/openai/resources/conversations.rbi +1 -0
  113. data/rbi/openai/resources/realtime/calls.rbi +14 -9
  114. data/rbi/openai/resources/responses.rbi +42 -0
  115. data/rbi/openai/resources/videos.rbi +5 -3
  116. data/sig/openai/models/all_models.rbs +2 -0
  117. data/sig/openai/models/container_create_params.rbs +23 -1
  118. data/sig/openai/models/container_create_response.rbs +32 -3
  119. data/sig/openai/models/container_list_response.rbs +32 -3
  120. data/sig/openai/models/container_retrieve_response.rbs +32 -3
  121. data/sig/openai/models/realtime/input_audio_buffer_dtmf_event_received_event.rbs +32 -0
  122. data/sig/openai/models/realtime/realtime_server_event.rbs +1 -0
  123. data/sig/openai/models/reasoning_effort.rbs +2 -1
  124. data/sig/openai/models/responses/compacted_response.rbs +42 -0
  125. data/sig/openai/models/responses/response_compact_params.rbs +226 -0
  126. data/sig/openai/models/responses/response_compaction_item.rbs +39 -0
  127. data/sig/openai/models/responses/response_compaction_item_param.rbs +28 -0
  128. data/sig/openai/models/responses/response_input_item.rbs +1 -0
  129. data/sig/openai/models/responses/response_output_item.rbs +1 -0
  130. data/sig/openai/models/responses_model.rbs +2 -0
  131. data/sig/openai/resources/containers.rbs +1 -0
  132. data/sig/openai/resources/responses.rbs +8 -0
  133. metadata +31 -2
@@ -316,9 +316,9 @@ module OpenAI
316
316
  # @!attribute reasoning_effort
317
317
  # Constrains effort on reasoning for
318
318
  # [reasoning models](https://platform.openai.com/docs/guides/reasoning). Currently
319
- # supported values are `none`, `minimal`, `low`, `medium`, and `high`. Reducing
320
- # reasoning effort can result in faster responses and fewer tokens used on
321
- # reasoning in a response.
319
+ # supported values are `none`, `minimal`, `low`, `medium`, `high`, and `xhigh`.
320
+ # Reducing reasoning effort can result in faster responses and fewer tokens used
321
+ # on reasoning in a response.
322
322
  #
323
323
  # - `gpt-5.1` defaults to `none`, which does not perform reasoning. The supported
324
324
  # reasoning values for `gpt-5.1` are `none`, `low`, `medium`, and `high`. Tool
@@ -326,6 +326,7 @@ module OpenAI
326
326
  # - All models before `gpt-5.1` default to `medium` reasoning effort, and do not
327
327
  # support `none`.
328
328
  # - The `gpt-5-pro` model defaults to (and only supports) `high` reasoning effort.
329
+ # - `xhigh` is currently only supported for `gpt-5.1-codex-max`.
329
330
  #
330
331
  # @return [Symbol, OpenAI::Models::ReasoningEffort, nil]
331
332
  optional :reasoning_effort, enum: -> { OpenAI::ReasoningEffort }, nil?: true
@@ -668,9 +669,9 @@ module OpenAI
668
669
  # @!attribute reasoning_effort
669
670
  # Constrains effort on reasoning for
670
671
  # [reasoning models](https://platform.openai.com/docs/guides/reasoning). Currently
671
- # supported values are `none`, `minimal`, `low`, `medium`, and `high`. Reducing
672
- # reasoning effort can result in faster responses and fewer tokens used on
673
- # reasoning in a response.
672
+ # supported values are `none`, `minimal`, `low`, `medium`, `high`, and `xhigh`.
673
+ # Reducing reasoning effort can result in faster responses and fewer tokens used
674
+ # on reasoning in a response.
674
675
  #
675
676
  # - `gpt-5.1` defaults to `none`, which does not perform reasoning. The supported
676
677
  # reasoning values for `gpt-5.1` are `none`, `low`, `medium`, and `high`. Tool
@@ -678,6 +679,7 @@ module OpenAI
678
679
  # - All models before `gpt-5.1` default to `medium` reasoning effort, and do not
679
680
  # support `none`.
680
681
  # - The `gpt-5-pro` model defaults to (and only supports) `high` reasoning effort.
682
+ # - `xhigh` is currently only supported for `gpt-5.1-codex-max`.
681
683
  #
682
684
  # @return [Symbol, OpenAI::Models::ReasoningEffort, nil]
683
685
  optional :reasoning_effort, enum: -> { OpenAI::ReasoningEffort }, nil?: true
@@ -222,9 +222,9 @@ module OpenAI
222
222
  # @!attribute reasoning_effort
223
223
  # Constrains effort on reasoning for
224
224
  # [reasoning models](https://platform.openai.com/docs/guides/reasoning). Currently
225
- # supported values are `none`, `minimal`, `low`, `medium`, and `high`. Reducing
226
- # reasoning effort can result in faster responses and fewer tokens used on
227
- # reasoning in a response.
225
+ # supported values are `none`, `minimal`, `low`, `medium`, `high`, and `xhigh`.
226
+ # Reducing reasoning effort can result in faster responses and fewer tokens used
227
+ # on reasoning in a response.
228
228
  #
229
229
  # - `gpt-5.1` defaults to `none`, which does not perform reasoning. The supported
230
230
  # reasoning values for `gpt-5.1` are `none`, `low`, `medium`, and `high`. Tool
@@ -232,6 +232,7 @@ module OpenAI
232
232
  # - All models before `gpt-5.1` default to `medium` reasoning effort, and do not
233
233
  # support `none`.
234
234
  # - The `gpt-5-pro` model defaults to (and only supports) `high` reasoning effort.
235
+ # - `xhigh` is currently only supported for `gpt-5.1-codex-max`.
235
236
  #
236
237
  # @return [Symbol, OpenAI::Models::ReasoningEffort, nil]
237
238
  optional :reasoning_effort, enum: -> { OpenAI::ReasoningEffort }, nil?: true
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class InputAudioBufferDtmfEventReceivedEvent < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute event
8
+ # The telephone keypad that was pressed by the user.
9
+ #
10
+ # @return [String]
11
+ required :event, String
12
+
13
+ # @!attribute received_at
14
+ # UTC Unix Timestamp when DTMF Event was received by server.
15
+ #
16
+ # @return [Integer]
17
+ required :received_at, Integer
18
+
19
+ # @!attribute type
20
+ # The event type, must be `input_audio_buffer.dtmf_event_received`.
21
+ #
22
+ # @return [Symbol, :"input_audio_buffer.dtmf_event_received"]
23
+ required :type, const: :"input_audio_buffer.dtmf_event_received"
24
+
25
+ # @!method initialize(event:, received_at:, type: :"input_audio_buffer.dtmf_event_received")
26
+ # Some parameter documentations has been truncated, see
27
+ # {OpenAI::Models::Realtime::InputAudioBufferDtmfEventReceivedEvent} for more
28
+ # details.
29
+ #
30
+ # **SIP Only:** Returned when an DTMF event is received. A DTMF event is a message
31
+ # that represents a telephone keypad press (0–9, \*, #, A–D). The `event` property
32
+ # is the keypad that the user press. The `received_at` is the UTC Unix Timestamp
33
+ # that the server received the event.
34
+ #
35
+ # @param event [String] The telephone keypad that was pressed by the user.
36
+ #
37
+ # @param received_at [Integer] UTC Unix Timestamp when DTMF Event was received by server.
38
+ #
39
+ # @param type [Symbol, :"input_audio_buffer.dtmf_event_received"] The event type, must be `input_audio_buffer.dtmf_event_received`.
40
+ end
41
+ end
42
+ end
43
+ end
@@ -17,10 +17,10 @@ module OpenAI
17
17
  optional :event_id, String
18
18
 
19
19
  # @!method initialize(event_id: nil, type: :"output_audio_buffer.clear")
20
- # **WebRTC Only:** Emit to cut off the current audio response. This will trigger
21
- # the server to stop generating audio and emit a `output_audio_buffer.cleared`
22
- # event. This event should be preceded by a `response.cancel` client event to stop
23
- # the generation of the current response.
20
+ # **WebRTC/SIP Only:** Emit to cut off the current audio response. This will
21
+ # trigger the server to stop generating audio and emit a
22
+ # `output_audio_buffer.cleared` event. This event should be preceded by a
23
+ # `response.cancel` client event to stop the generation of the current response.
24
24
  # [Learn more](https://platform.openai.com/docs/guides/realtime-conversations#client-and-server-events-for-audio-in-webrtc).
25
25
  #
26
26
  # @param event_id [String] The unique ID of the client event used for error handling.
@@ -36,7 +36,11 @@ module OpenAI
36
36
 
37
37
  # @!attribute create_response
38
38
  # Whether or not to automatically generate a response when a VAD stop event
39
- # occurs.
39
+ # occurs. If `interrupt_response` is set to `false` this may fail to create a
40
+ # response if the model is already responding.
41
+ #
42
+ # If both `create_response` and `interrupt_response` are set to `false`, the model
43
+ # will never respond automatically but VAD events will still be emitted.
40
44
  #
41
45
  # @return [Boolean, nil]
42
46
  optional :create_response, OpenAI::Internal::Type::Boolean
@@ -59,9 +63,13 @@ module OpenAI
59
63
  optional :idle_timeout_ms, Integer, nil?: true
60
64
 
61
65
  # @!attribute interrupt_response
62
- # Whether or not to automatically interrupt any ongoing response with output to
63
- # the default conversation (i.e. `conversation` of `auto`) when a VAD start event
64
- # occurs.
66
+ # Whether or not to automatically interrupt (cancel) any ongoing response with
67
+ # output to the default conversation (i.e. `conversation` of `auto`) when a VAD
68
+ # start event occurs. If `true` then the response will be cancelled, otherwise it
69
+ # will continue until complete.
70
+ #
71
+ # If both `create_response` and `interrupt_response` are set to `false`, the model
72
+ # will never respond automatically but VAD events will still be emitted.
65
73
  #
66
74
  # @return [Boolean, nil]
67
75
  optional :interrupt_response, OpenAI::Internal::Type::Boolean
@@ -101,7 +109,7 @@ module OpenAI
101
109
  #
102
110
  # @param idle_timeout_ms [Integer, nil] Optional timeout after which a model response will be triggered automatically. T
103
111
  #
104
- # @param interrupt_response [Boolean] Whether or not to automatically interrupt any ongoing response with output to th
112
+ # @param interrupt_response [Boolean] Whether or not to automatically interrupt (cancel) any ongoing response with out
105
113
  #
106
114
  # @param prefix_padding_ms [Integer] Used only for `server_vad` mode. Amount of audio to include before the VAD detec
107
115
  #
@@ -62,7 +62,7 @@ module OpenAI
62
62
  # respond with an `input_audio_buffer.cleared` event.
63
63
  variant :"input_audio_buffer.clear", -> { OpenAI::Realtime::InputAudioBufferClearEvent }
64
64
 
65
- # **WebRTC Only:** Emit to cut off the current audio response. This will trigger the server to
65
+ # **WebRTC/SIP Only:** Emit to cut off the current audio response. This will trigger the server to
66
66
  # stop generating audio and emit a `output_audio_buffer.cleared` event. This
67
67
  # event should be preceded by a `response.cancel` client event to stop the
68
68
  # generation of the current response.
@@ -78,6 +78,13 @@ module OpenAI
78
78
  # will also be sent to the client.
79
79
  variant :"input_audio_buffer.committed", -> { OpenAI::Realtime::InputAudioBufferCommittedEvent }
80
80
 
81
+ # **SIP Only:** Returned when an DTMF event is received. A DTMF event is a message that
82
+ # represents a telephone keypad press (0–9, *, #, A–D). The `event` property
83
+ # is the keypad that the user press. The `received_at` is the UTC Unix Timestamp
84
+ # that the server received the event.
85
+ variant :"input_audio_buffer.dtmf_event_received",
86
+ -> { OpenAI::Realtime::InputAudioBufferDtmfEventReceivedEvent }
87
+
81
88
  # Sent by the server when in `server_vad` mode to indicate that speech has been
82
89
  # detected in the audio buffer. This can happen any time audio is added to the
83
90
  # buffer (unless speech is already detected). The client may want to use this
@@ -173,21 +180,21 @@ module OpenAI
173
180
  # there is an error.
174
181
  variant :"session.updated", -> { OpenAI::Realtime::SessionUpdatedEvent }
175
182
 
176
- # **WebRTC Only:** Emitted when the server begins streaming audio to the client. This event is
183
+ # **WebRTC/SIP Only:** Emitted when the server begins streaming audio to the client. This event is
177
184
  # emitted after an audio content part has been added (`response.content_part.added`)
178
185
  # to the response.
179
186
  # [Learn more](https://platform.openai.com/docs/guides/realtime-conversations#client-and-server-events-for-audio-in-webrtc).
180
187
  variant :"output_audio_buffer.started",
181
188
  -> { OpenAI::Realtime::RealtimeServerEvent::OutputAudioBufferStarted }
182
189
 
183
- # **WebRTC Only:** Emitted when the output audio buffer has been completely drained on the server,
190
+ # **WebRTC/SIP Only:** Emitted when the output audio buffer has been completely drained on the server,
184
191
  # and no more audio is forthcoming. This event is emitted after the full response
185
192
  # data has been sent to the client (`response.done`).
186
193
  # [Learn more](https://platform.openai.com/docs/guides/realtime-conversations#client-and-server-events-for-audio-in-webrtc).
187
194
  variant :"output_audio_buffer.stopped",
188
195
  -> { OpenAI::Realtime::RealtimeServerEvent::OutputAudioBufferStopped }
189
196
 
190
- # **WebRTC Only:** Emitted when the output audio buffer is cleared. This happens either in VAD
197
+ # **WebRTC/SIP Only:** Emitted when the output audio buffer is cleared. This happens either in VAD
191
198
  # mode when the user has interrupted (`input_audio_buffer.speech_started`),
192
199
  # or when the client has emitted the `output_audio_buffer.clear` event to manually
193
200
  # cut off the current audio response.
@@ -304,8 +311,8 @@ module OpenAI
304
311
  required :type, const: :"output_audio_buffer.started"
305
312
 
306
313
  # @!method initialize(event_id:, response_id:, type: :"output_audio_buffer.started")
307
- # **WebRTC Only:** Emitted when the server begins streaming audio to the client.
308
- # This event is emitted after an audio content part has been added
314
+ # **WebRTC/SIP Only:** Emitted when the server begins streaming audio to the
315
+ # client. This event is emitted after an audio content part has been added
309
316
  # (`response.content_part.added`) to the response.
310
317
  # [Learn more](https://platform.openai.com/docs/guides/realtime-conversations#client-and-server-events-for-audio-in-webrtc).
311
318
  #
@@ -336,7 +343,7 @@ module OpenAI
336
343
  required :type, const: :"output_audio_buffer.stopped"
337
344
 
338
345
  # @!method initialize(event_id:, response_id:, type: :"output_audio_buffer.stopped")
339
- # **WebRTC Only:** Emitted when the output audio buffer has been completely
346
+ # **WebRTC/SIP Only:** Emitted when the output audio buffer has been completely
340
347
  # drained on the server, and no more audio is forthcoming. This event is emitted
341
348
  # after the full response data has been sent to the client (`response.done`).
342
349
  # [Learn more](https://platform.openai.com/docs/guides/realtime-conversations#client-and-server-events-for-audio-in-webrtc).
@@ -368,8 +375,8 @@ module OpenAI
368
375
  required :type, const: :"output_audio_buffer.cleared"
369
376
 
370
377
  # @!method initialize(event_id:, response_id:, type: :"output_audio_buffer.cleared")
371
- # **WebRTC Only:** Emitted when the output audio buffer is cleared. This happens
372
- # either in VAD mode when the user has interrupted
378
+ # **WebRTC/SIP Only:** Emitted when the output audio buffer is cleared. This
379
+ # happens either in VAD mode when the user has interrupted
373
380
  # (`input_audio_buffer.speech_started`), or when the client has emitted the
374
381
  # `output_audio_buffer.clear` event to manually cut off the current audio
375
382
  # response.
@@ -383,7 +390,7 @@ module OpenAI
383
390
  end
384
391
 
385
392
  # @!method self.variants
386
- # @return [Array(OpenAI::Models::Realtime::ConversationCreatedEvent, OpenAI::Models::Realtime::ConversationItemCreatedEvent, OpenAI::Models::Realtime::ConversationItemDeletedEvent, OpenAI::Models::Realtime::ConversationItemInputAudioTranscriptionCompletedEvent, OpenAI::Models::Realtime::ConversationItemInputAudioTranscriptionDeltaEvent, OpenAI::Models::Realtime::ConversationItemInputAudioTranscriptionFailedEvent, OpenAI::Models::Realtime::RealtimeServerEvent::ConversationItemRetrieved, OpenAI::Models::Realtime::ConversationItemTruncatedEvent, OpenAI::Models::Realtime::RealtimeErrorEvent, OpenAI::Models::Realtime::InputAudioBufferClearedEvent, OpenAI::Models::Realtime::InputAudioBufferCommittedEvent, OpenAI::Models::Realtime::InputAudioBufferSpeechStartedEvent, OpenAI::Models::Realtime::InputAudioBufferSpeechStoppedEvent, OpenAI::Models::Realtime::RateLimitsUpdatedEvent, OpenAI::Models::Realtime::ResponseAudioDeltaEvent, OpenAI::Models::Realtime::ResponseAudioDoneEvent, OpenAI::Models::Realtime::ResponseAudioTranscriptDeltaEvent, OpenAI::Models::Realtime::ResponseAudioTranscriptDoneEvent, OpenAI::Models::Realtime::ResponseContentPartAddedEvent, OpenAI::Models::Realtime::ResponseContentPartDoneEvent, OpenAI::Models::Realtime::ResponseCreatedEvent, OpenAI::Models::Realtime::ResponseDoneEvent, OpenAI::Models::Realtime::ResponseFunctionCallArgumentsDeltaEvent, OpenAI::Models::Realtime::ResponseFunctionCallArgumentsDoneEvent, OpenAI::Models::Realtime::ResponseOutputItemAddedEvent, OpenAI::Models::Realtime::ResponseOutputItemDoneEvent, OpenAI::Models::Realtime::ResponseTextDeltaEvent, OpenAI::Models::Realtime::ResponseTextDoneEvent, OpenAI::Models::Realtime::SessionCreatedEvent, OpenAI::Models::Realtime::SessionUpdatedEvent, OpenAI::Models::Realtime::RealtimeServerEvent::OutputAudioBufferStarted, OpenAI::Models::Realtime::RealtimeServerEvent::OutputAudioBufferStopped, OpenAI::Models::Realtime::RealtimeServerEvent::OutputAudioBufferCleared, OpenAI::Models::Realtime::ConversationItemAdded, OpenAI::Models::Realtime::ConversationItemDone, OpenAI::Models::Realtime::InputAudioBufferTimeoutTriggered, OpenAI::Models::Realtime::ConversationItemInputAudioTranscriptionSegment, OpenAI::Models::Realtime::McpListToolsInProgress, OpenAI::Models::Realtime::McpListToolsCompleted, OpenAI::Models::Realtime::McpListToolsFailed, OpenAI::Models::Realtime::ResponseMcpCallArgumentsDelta, OpenAI::Models::Realtime::ResponseMcpCallArgumentsDone, OpenAI::Models::Realtime::ResponseMcpCallInProgress, OpenAI::Models::Realtime::ResponseMcpCallCompleted, OpenAI::Models::Realtime::ResponseMcpCallFailed)]
393
+ # @return [Array(OpenAI::Models::Realtime::ConversationCreatedEvent, OpenAI::Models::Realtime::ConversationItemCreatedEvent, OpenAI::Models::Realtime::ConversationItemDeletedEvent, OpenAI::Models::Realtime::ConversationItemInputAudioTranscriptionCompletedEvent, OpenAI::Models::Realtime::ConversationItemInputAudioTranscriptionDeltaEvent, OpenAI::Models::Realtime::ConversationItemInputAudioTranscriptionFailedEvent, OpenAI::Models::Realtime::RealtimeServerEvent::ConversationItemRetrieved, OpenAI::Models::Realtime::ConversationItemTruncatedEvent, OpenAI::Models::Realtime::RealtimeErrorEvent, OpenAI::Models::Realtime::InputAudioBufferClearedEvent, OpenAI::Models::Realtime::InputAudioBufferCommittedEvent, OpenAI::Models::Realtime::InputAudioBufferDtmfEventReceivedEvent, OpenAI::Models::Realtime::InputAudioBufferSpeechStartedEvent, OpenAI::Models::Realtime::InputAudioBufferSpeechStoppedEvent, OpenAI::Models::Realtime::RateLimitsUpdatedEvent, OpenAI::Models::Realtime::ResponseAudioDeltaEvent, OpenAI::Models::Realtime::ResponseAudioDoneEvent, OpenAI::Models::Realtime::ResponseAudioTranscriptDeltaEvent, OpenAI::Models::Realtime::ResponseAudioTranscriptDoneEvent, OpenAI::Models::Realtime::ResponseContentPartAddedEvent, OpenAI::Models::Realtime::ResponseContentPartDoneEvent, OpenAI::Models::Realtime::ResponseCreatedEvent, OpenAI::Models::Realtime::ResponseDoneEvent, OpenAI::Models::Realtime::ResponseFunctionCallArgumentsDeltaEvent, OpenAI::Models::Realtime::ResponseFunctionCallArgumentsDoneEvent, OpenAI::Models::Realtime::ResponseOutputItemAddedEvent, OpenAI::Models::Realtime::ResponseOutputItemDoneEvent, OpenAI::Models::Realtime::ResponseTextDeltaEvent, OpenAI::Models::Realtime::ResponseTextDoneEvent, OpenAI::Models::Realtime::SessionCreatedEvent, OpenAI::Models::Realtime::SessionUpdatedEvent, OpenAI::Models::Realtime::RealtimeServerEvent::OutputAudioBufferStarted, OpenAI::Models::Realtime::RealtimeServerEvent::OutputAudioBufferStopped, OpenAI::Models::Realtime::RealtimeServerEvent::OutputAudioBufferCleared, OpenAI::Models::Realtime::ConversationItemAdded, OpenAI::Models::Realtime::ConversationItemDone, OpenAI::Models::Realtime::InputAudioBufferTimeoutTriggered, OpenAI::Models::Realtime::ConversationItemInputAudioTranscriptionSegment, OpenAI::Models::Realtime::McpListToolsInProgress, OpenAI::Models::Realtime::McpListToolsCompleted, OpenAI::Models::Realtime::McpListToolsFailed, OpenAI::Models::Realtime::ResponseMcpCallArgumentsDelta, OpenAI::Models::Realtime::ResponseMcpCallArgumentsDone, OpenAI::Models::Realtime::ResponseMcpCallInProgress, OpenAI::Models::Realtime::ResponseMcpCallCompleted, OpenAI::Models::Realtime::ResponseMcpCallFailed)]
387
394
  end
388
395
  end
389
396
  end
@@ -443,7 +443,11 @@ module OpenAI
443
443
 
444
444
  # @!attribute create_response
445
445
  # Whether or not to automatically generate a response when a VAD stop event
446
- # occurs.
446
+ # occurs. If `interrupt_response` is set to `false` this may fail to create a
447
+ # response if the model is already responding.
448
+ #
449
+ # If both `create_response` and `interrupt_response` are set to `false`, the model
450
+ # will never respond automatically but VAD events will still be emitted.
447
451
  #
448
452
  # @return [Boolean, nil]
449
453
  optional :create_response, OpenAI::Internal::Type::Boolean
@@ -466,9 +470,13 @@ module OpenAI
466
470
  optional :idle_timeout_ms, Integer, nil?: true
467
471
 
468
472
  # @!attribute interrupt_response
469
- # Whether or not to automatically interrupt any ongoing response with output to
470
- # the default conversation (i.e. `conversation` of `auto`) when a VAD start event
471
- # occurs.
473
+ # Whether or not to automatically interrupt (cancel) any ongoing response with
474
+ # output to the default conversation (i.e. `conversation` of `auto`) when a VAD
475
+ # start event occurs. If `true` then the response will be cancelled, otherwise it
476
+ # will continue until complete.
477
+ #
478
+ # If both `create_response` and `interrupt_response` are set to `false`, the model
479
+ # will never respond automatically but VAD events will still be emitted.
472
480
  #
473
481
  # @return [Boolean, nil]
474
482
  optional :interrupt_response, OpenAI::Internal::Type::Boolean
@@ -508,7 +516,7 @@ module OpenAI
508
516
  #
509
517
  # @param idle_timeout_ms [Integer, nil] Optional timeout after which a model response will be triggered automatically. T
510
518
  #
511
- # @param interrupt_response [Boolean] Whether or not to automatically interrupt any ongoing response with output to th
519
+ # @param interrupt_response [Boolean] Whether or not to automatically interrupt (cancel) any ongoing response with out
512
520
  #
513
521
  # @param prefix_padding_ms [Integer] Used only for `server_vad` mode. Amount of audio to include before the VAD detec
514
522
  #
@@ -102,15 +102,20 @@ module OpenAI
102
102
  # limit, the conversation be truncated, meaning messages (starting from the
103
103
  # oldest) will not be included in the model's context. A 32k context model with
104
104
  # 4,096 max output tokens can only include 28,224 tokens in the context before
105
- # truncation occurs. Clients can configure truncation behavior to truncate with a
106
- # lower max token limit, which is an effective way to control token usage and
107
- # cost. Truncation will reduce the number of cached tokens on the next turn
108
- # (busting the cache), since messages are dropped from the beginning of the
109
- # context. However, clients can also configure truncation to retain messages up to
110
- # a fraction of the maximum context size, which will reduce the need for future
111
- # truncations and thus improve the cache rate. Truncation can be disabled
112
- # entirely, which means the server will never truncate but would instead return an
113
- # error if the conversation exceeds the model's input token limit.
105
+ # truncation occurs.
106
+ #
107
+ # Clients can configure truncation behavior to truncate with a lower max token
108
+ # limit, which is an effective way to control token usage and cost.
109
+ #
110
+ # Truncation will reduce the number of cached tokens on the next turn (busting the
111
+ # cache), since messages are dropped from the beginning of the context. However,
112
+ # clients can also configure truncation to retain messages up to a fraction of the
113
+ # maximum context size, which will reduce the need for future truncations and thus
114
+ # improve the cache rate.
115
+ #
116
+ # Truncation can be disabled entirely, which means the server will never truncate
117
+ # but would instead return an error if the conversation exceeds the model's input
118
+ # token limit.
114
119
  #
115
120
  # @return [Symbol, OpenAI::Models::Realtime::RealtimeTruncation::RealtimeTruncationStrategy, OpenAI::Models::Realtime::RealtimeTruncationRetentionRatio, nil]
116
121
  optional :truncation, union: -> { OpenAI::Realtime::RealtimeTruncation }
@@ -110,15 +110,20 @@ module OpenAI
110
110
  # limit, the conversation be truncated, meaning messages (starting from the
111
111
  # oldest) will not be included in the model's context. A 32k context model with
112
112
  # 4,096 max output tokens can only include 28,224 tokens in the context before
113
- # truncation occurs. Clients can configure truncation behavior to truncate with a
114
- # lower max token limit, which is an effective way to control token usage and
115
- # cost. Truncation will reduce the number of cached tokens on the next turn
116
- # (busting the cache), since messages are dropped from the beginning of the
117
- # context. However, clients can also configure truncation to retain messages up to
118
- # a fraction of the maximum context size, which will reduce the need for future
119
- # truncations and thus improve the cache rate. Truncation can be disabled
120
- # entirely, which means the server will never truncate but would instead return an
121
- # error if the conversation exceeds the model's input token limit.
113
+ # truncation occurs.
114
+ #
115
+ # Clients can configure truncation behavior to truncate with a lower max token
116
+ # limit, which is an effective way to control token usage and cost.
117
+ #
118
+ # Truncation will reduce the number of cached tokens on the next turn (busting the
119
+ # cache), since messages are dropped from the beginning of the context. However,
120
+ # clients can also configure truncation to retain messages up to a fraction of the
121
+ # maximum context size, which will reduce the need for future truncations and thus
122
+ # improve the cache rate.
123
+ #
124
+ # Truncation can be disabled entirely, which means the server will never truncate
125
+ # but would instead return an error if the conversation exceeds the model's input
126
+ # token limit.
122
127
  #
123
128
  # @return [Symbol, OpenAI::Models::Realtime::RealtimeTruncation::RealtimeTruncationStrategy, OpenAI::Models::Realtime::RealtimeTruncationRetentionRatio, nil]
124
129
  optional :truncation, union: -> { OpenAI::Realtime::RealtimeTruncation }
@@ -302,7 +307,11 @@ module OpenAI
302
307
 
303
308
  # @!attribute create_response
304
309
  # Whether or not to automatically generate a response when a VAD stop event
305
- # occurs.
310
+ # occurs. If `interrupt_response` is set to `false` this may fail to create a
311
+ # response if the model is already responding.
312
+ #
313
+ # If both `create_response` and `interrupt_response` are set to `false`, the model
314
+ # will never respond automatically but VAD events will still be emitted.
306
315
  #
307
316
  # @return [Boolean, nil]
308
317
  optional :create_response, OpenAI::Internal::Type::Boolean
@@ -325,9 +334,13 @@ module OpenAI
325
334
  optional :idle_timeout_ms, Integer, nil?: true
326
335
 
327
336
  # @!attribute interrupt_response
328
- # Whether or not to automatically interrupt any ongoing response with output to
329
- # the default conversation (i.e. `conversation` of `auto`) when a VAD start event
330
- # occurs.
337
+ # Whether or not to automatically interrupt (cancel) any ongoing response with
338
+ # output to the default conversation (i.e. `conversation` of `auto`) when a VAD
339
+ # start event occurs. If `true` then the response will be cancelled, otherwise it
340
+ # will continue until complete.
341
+ #
342
+ # If both `create_response` and `interrupt_response` are set to `false`, the model
343
+ # will never respond automatically but VAD events will still be emitted.
331
344
  #
332
345
  # @return [Boolean, nil]
333
346
  optional :interrupt_response, OpenAI::Internal::Type::Boolean
@@ -367,7 +380,7 @@ module OpenAI
367
380
  #
368
381
  # @param idle_timeout_ms [Integer, nil] Optional timeout after which a model response will be triggered automatically. T
369
382
  #
370
- # @param interrupt_response [Boolean] Whether or not to automatically interrupt any ongoing response with output to th
383
+ # @param interrupt_response [Boolean] Whether or not to automatically interrupt (cancel) any ongoing response with out
371
384
  #
372
385
  # @param prefix_padding_ms [Integer] Used only for `server_vad` mode. Amount of audio to include before the VAD detec
373
386
  #
@@ -38,7 +38,11 @@ module OpenAI
38
38
 
39
39
  # @!attribute create_response
40
40
  # Whether or not to automatically generate a response when a VAD stop event
41
- # occurs.
41
+ # occurs. If `interrupt_response` is set to `false` this may fail to create a
42
+ # response if the model is already responding.
43
+ #
44
+ # If both `create_response` and `interrupt_response` are set to `false`, the model
45
+ # will never respond automatically but VAD events will still be emitted.
42
46
  #
43
47
  # @return [Boolean, nil]
44
48
  optional :create_response, OpenAI::Internal::Type::Boolean
@@ -61,9 +65,13 @@ module OpenAI
61
65
  optional :idle_timeout_ms, Integer, nil?: true
62
66
 
63
67
  # @!attribute interrupt_response
64
- # Whether or not to automatically interrupt any ongoing response with output to
65
- # the default conversation (i.e. `conversation` of `auto`) when a VAD start event
66
- # occurs.
68
+ # Whether or not to automatically interrupt (cancel) any ongoing response with
69
+ # output to the default conversation (i.e. `conversation` of `auto`) when a VAD
70
+ # start event occurs. If `true` then the response will be cancelled, otherwise it
71
+ # will continue until complete.
72
+ #
73
+ # If both `create_response` and `interrupt_response` are set to `false`, the model
74
+ # will never respond automatically but VAD events will still be emitted.
67
75
  #
68
76
  # @return [Boolean, nil]
69
77
  optional :interrupt_response, OpenAI::Internal::Type::Boolean
@@ -103,7 +111,7 @@ module OpenAI
103
111
  #
104
112
  # @param idle_timeout_ms [Integer, nil] Optional timeout after which a model response will be triggered automatically. T
105
113
  #
106
- # @param interrupt_response [Boolean] Whether or not to automatically interrupt any ongoing response with output to th
114
+ # @param interrupt_response [Boolean] Whether or not to automatically interrupt (cancel) any ongoing response with out
107
115
  #
108
116
  # @param prefix_padding_ms [Integer] Used only for `server_vad` mode. Amount of audio to include before the VAD detec
109
117
  #
@@ -7,15 +7,20 @@ module OpenAI
7
7
  # limit, the conversation be truncated, meaning messages (starting from the
8
8
  # oldest) will not be included in the model's context. A 32k context model with
9
9
  # 4,096 max output tokens can only include 28,224 tokens in the context before
10
- # truncation occurs. Clients can configure truncation behavior to truncate with a
11
- # lower max token limit, which is an effective way to control token usage and
12
- # cost. Truncation will reduce the number of cached tokens on the next turn
13
- # (busting the cache), since messages are dropped from the beginning of the
14
- # context. However, clients can also configure truncation to retain messages up to
15
- # a fraction of the maximum context size, which will reduce the need for future
16
- # truncations and thus improve the cache rate. Truncation can be disabled
17
- # entirely, which means the server will never truncate but would instead return an
18
- # error if the conversation exceeds the model's input token limit.
10
+ # truncation occurs.
11
+ #
12
+ # Clients can configure truncation behavior to truncate with a lower max token
13
+ # limit, which is an effective way to control token usage and cost.
14
+ #
15
+ # Truncation will reduce the number of cached tokens on the next turn (busting the
16
+ # cache), since messages are dropped from the beginning of the context. However,
17
+ # clients can also configure truncation to retain messages up to a fraction of the
18
+ # maximum context size, which will reduce the need for future truncations and thus
19
+ # improve the cache rate.
20
+ #
21
+ # Truncation can be disabled entirely, which means the server will never truncate
22
+ # but would instead return an error if the conversation exceeds the model's input
23
+ # token limit.
19
24
  module RealtimeTruncation
20
25
  extend OpenAI::Internal::Type::Union
21
26
 
@@ -6,9 +6,9 @@ module OpenAI
6
6
  # @!attribute effort
7
7
  # Constrains effort on reasoning for
8
8
  # [reasoning models](https://platform.openai.com/docs/guides/reasoning). Currently
9
- # supported values are `none`, `minimal`, `low`, `medium`, and `high`. Reducing
10
- # reasoning effort can result in faster responses and fewer tokens used on
11
- # reasoning in a response.
9
+ # supported values are `none`, `minimal`, `low`, `medium`, `high`, and `xhigh`.
10
+ # Reducing reasoning effort can result in faster responses and fewer tokens used
11
+ # on reasoning in a response.
12
12
  #
13
13
  # - `gpt-5.1` defaults to `none`, which does not perform reasoning. The supported
14
14
  # reasoning values for `gpt-5.1` are `none`, `low`, `medium`, and `high`. Tool
@@ -16,6 +16,7 @@ module OpenAI
16
16
  # - All models before `gpt-5.1` default to `medium` reasoning effort, and do not
17
17
  # support `none`.
18
18
  # - The `gpt-5-pro` model defaults to (and only supports) `high` reasoning effort.
19
+ # - `xhigh` is currently only supported for `gpt-5.1-codex-max`.
19
20
  #
20
21
  # @return [Symbol, OpenAI::Models::ReasoningEffort, nil]
21
22
  optional :effort, enum: -> { OpenAI::ReasoningEffort }, nil?: true
@@ -4,9 +4,9 @@ module OpenAI
4
4
  module Models
5
5
  # Constrains effort on reasoning for
6
6
  # [reasoning models](https://platform.openai.com/docs/guides/reasoning). Currently
7
- # supported values are `none`, `minimal`, `low`, `medium`, and `high`. Reducing
8
- # reasoning effort can result in faster responses and fewer tokens used on
9
- # reasoning in a response.
7
+ # supported values are `none`, `minimal`, `low`, `medium`, `high`, and `xhigh`.
8
+ # Reducing reasoning effort can result in faster responses and fewer tokens used
9
+ # on reasoning in a response.
10
10
  #
11
11
  # - `gpt-5.1` defaults to `none`, which does not perform reasoning. The supported
12
12
  # reasoning values for `gpt-5.1` are `none`, `low`, `medium`, and `high`. Tool
@@ -14,6 +14,7 @@ module OpenAI
14
14
  # - All models before `gpt-5.1` default to `medium` reasoning effort, and do not
15
15
  # support `none`.
16
16
  # - The `gpt-5-pro` model defaults to (and only supports) `high` reasoning effort.
17
+ # - `xhigh` is currently only supported for `gpt-5.1-codex-max`.
17
18
  module ReasoningEffort
18
19
  extend OpenAI::Internal::Type::Enum
19
20
 
@@ -22,6 +23,7 @@ module OpenAI
22
23
  LOW = :low
23
24
  MEDIUM = :medium
24
25
  HIGH = :high
26
+ XHIGH = :xhigh
25
27
 
26
28
  # @!method self.values
27
29
  # @return [Array<Symbol>]
@@ -0,0 +1,56 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Responses
6
+ # @see OpenAI::Resources::Responses#compact
7
+ class CompactedResponse < OpenAI::Internal::Type::BaseModel
8
+ # @!attribute id
9
+ # The unique identifier for the compacted response.
10
+ #
11
+ # @return [String]
12
+ required :id, String
13
+
14
+ # @!attribute created_at
15
+ # Unix timestamp (in seconds) when the compacted conversation was created.
16
+ #
17
+ # @return [Integer]
18
+ required :created_at, Integer
19
+
20
+ # @!attribute object
21
+ # The object type. Always `response.compaction`.
22
+ #
23
+ # @return [Symbol, :"response.compaction"]
24
+ required :object, const: :"response.compaction"
25
+
26
+ # @!attribute output
27
+ # The compacted list of output items. This is a list of all user messages,
28
+ # followed by a single compaction item.
29
+ #
30
+ # @return [Array<OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseFunctionToolCall, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseCompactionItem, OpenAI::Models::Responses::ResponseOutputItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Responses::ResponseOutputItem::LocalShellCall, OpenAI::Models::Responses::ResponseFunctionShellToolCall, OpenAI::Models::Responses::ResponseFunctionShellToolCallOutput, OpenAI::Models::Responses::ResponseApplyPatchToolCall, OpenAI::Models::Responses::ResponseApplyPatchToolCallOutput, OpenAI::Models::Responses::ResponseOutputItem::McpCall, OpenAI::Models::Responses::ResponseOutputItem::McpListTools, OpenAI::Models::Responses::ResponseOutputItem::McpApprovalRequest, OpenAI::Models::Responses::ResponseCustomToolCall>]
31
+ required :output, -> { OpenAI::Internal::Type::ArrayOf[union: OpenAI::Responses::ResponseOutputItem] }
32
+
33
+ # @!attribute usage
34
+ # Token accounting for the compaction pass, including cached, reasoning, and total
35
+ # tokens.
36
+ #
37
+ # @return [OpenAI::Models::Responses::ResponseUsage]
38
+ required :usage, -> { OpenAI::Responses::ResponseUsage }
39
+
40
+ # @!method initialize(id:, created_at:, output:, usage:, object: :"response.compaction")
41
+ # Some parameter documentations has been truncated, see
42
+ # {OpenAI::Models::Responses::CompactedResponse} for more details.
43
+ #
44
+ # @param id [String] The unique identifier for the compacted response.
45
+ #
46
+ # @param created_at [Integer] Unix timestamp (in seconds) when the compacted conversation was created.
47
+ #
48
+ # @param output [Array<OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseFunctionToolCall, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseCompactionItem, OpenAI::Models::Responses::ResponseOutputItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Responses::ResponseOutputItem::LocalShellCall, OpenAI::Models::Responses::ResponseFunctionShellToolCall, OpenAI::Models::Responses::ResponseFunctionShellToolCallOutput, OpenAI::Models::Responses::ResponseApplyPatchToolCall, OpenAI::Models::Responses::ResponseApplyPatchToolCallOutput, OpenAI::Models::Responses::ResponseOutputItem::McpCall, OpenAI::Models::Responses::ResponseOutputItem::McpListTools, OpenAI::Models::Responses::ResponseOutputItem::McpApprovalRequest, OpenAI::Models::Responses::ResponseCustomToolCall>] The compacted list of output items. This is a list of all user messages, followe
49
+ #
50
+ # @param usage [OpenAI::Models::Responses::ResponseUsage] Token accounting for the compaction pass, including cached, reasoning, and total
51
+ #
52
+ # @param object [Symbol, :"response.compaction"] The object type. Always `response.compaction`.
53
+ end
54
+ end
55
+ end
56
+ end