openai 0.114.0 → 0.115.1

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 (226) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +43 -0
  3. data/README.md +17 -2
  4. data/docs/architecture/security-model.md +11 -16
  5. data/examples/responses/websocket_workflows.rb +78 -3
  6. data/lib/openai/helpers/chat/tool_runner.rb +1 -1
  7. data/lib/openai/helpers/live/websocket.rb +31 -0
  8. data/lib/openai/helpers/realtime/connection.rb +33 -0
  9. data/lib/openai/helpers/realtime/connection_manager.rb +1 -0
  10. data/lib/openai/helpers/realtime/conversation_item_variant_resolver.rb +5 -0
  11. data/lib/openai/helpers/realtime/recovery.rb +5 -1
  12. data/lib/openai/helpers/realtime/translation.rb +5 -0
  13. data/lib/openai/helpers/realtime/transports/async_websocket.rb +19 -0
  14. data/lib/openai/helpers/responses_websocket/connection.rb +53 -15
  15. data/lib/openai/helpers/responses_websocket/connection_manager.rb +1 -0
  16. data/lib/openai/helpers/responses_websocket/connection_resources.rb +1 -1
  17. data/lib/openai/helpers/structured_output/response_parser.rb +1 -0
  18. data/lib/openai/helpers/structured_output.rb +58 -0
  19. data/lib/openai/helpers/websocket/connection_manager.rb +11 -0
  20. data/lib/openai/helpers/websocket/resource.rb +1 -0
  21. data/lib/openai/helpers/websocket/typed_connection.rb +1 -0
  22. data/lib/openai/internal/type/array_of.rb +1 -1
  23. data/lib/openai/internal/type/hash_of.rb +1 -1
  24. data/lib/openai/internal/type/request_parameters.rb +2 -1
  25. data/lib/openai/internal/type/union.rb +18 -6
  26. data/lib/openai/models/admin/organization/external_key.rb +169 -0
  27. data/lib/openai/models/admin/organization/external_key_create_params.rb +311 -0
  28. data/lib/openai/models/admin/organization/external_key_delete_params.rb +24 -0
  29. data/lib/openai/models/admin/organization/external_key_list_params.rb +69 -0
  30. data/lib/openai/models/admin/organization/external_key_retrieve_params.rb +24 -0
  31. data/lib/openai/models/admin/organization/external_key_validate_params.rb +24 -0
  32. data/lib/openai/models/admin/organization/external_key_validate_response.rb +20 -0
  33. data/lib/openai/models/audio/speech_model.rb +12 -0
  34. data/lib/openai/models/audio_model.rb +15 -0
  35. data/lib/openai/models/beta/agent.rb +49 -1
  36. data/lib/openai/models/beta/agent_create_params.rb +51 -1
  37. data/lib/openai/models/beta/agent_session.rb +75 -2
  38. data/lib/openai/models/beta/agent_update_params.rb +62 -1
  39. data/lib/openai/models/beta/agents/session_create_params.rb +94 -2
  40. data/lib/openai/models/beta/agents/session_list_params.rb +16 -1
  41. data/lib/openai/models/beta/agents/session_update_params.rb +50 -5
  42. data/lib/openai/models/beta/assistant_update_params.rb +18 -0
  43. data/lib/openai/models/beta/beta_response.rb +224 -1
  44. data/lib/openai/models/beta/beta_response_configuration_update_item.rb +64 -3
  45. data/lib/openai/models/beta/beta_response_configuration_update_item_param.rb +64 -4
  46. data/lib/openai/models/beta/beta_response_input_item.rb +2 -3
  47. data/lib/openai/models/beta/beta_response_item.rb +2 -2
  48. data/lib/openai/models/beta/beta_response_tool_search_output_item_param.rb +6 -6
  49. data/lib/openai/models/beta/beta_responses_client_event.rb +20 -1
  50. data/lib/openai/models/beta/beta_tool.rb +6 -6
  51. data/lib/openai/models/beta/response_compact_params.rb +6 -0
  52. data/lib/openai/models/beta/response_create_params.rb +6 -0
  53. data/lib/openai/models/chat_model.rb +6 -0
  54. data/lib/openai/models/conversations/conversation_item.rb +2 -2
  55. data/lib/openai/models/image_edit_params.rb +46 -25
  56. data/lib/openai/models/live/fork_server_event.rb +43 -3
  57. data/lib/openai/models/live/server_event.rb +43 -3
  58. data/lib/openai/models/live/sideband_client_event.rb +40 -1
  59. data/lib/openai/models/live/sideband_server_event.rb +43 -3
  60. data/lib/openai/models/realtime/audio_transcription.rb +15 -0
  61. data/lib/openai/models/realtime/conversation_item_added.rb +2 -2
  62. data/lib/openai/models/realtime/conversation_item_create_event.rb +2 -2
  63. data/lib/openai/models/realtime/conversation_item_created_event.rb +2 -2
  64. data/lib/openai/models/realtime/conversation_item_done.rb +2 -2
  65. data/lib/openai/models/realtime/realtime_response.rb +2 -2
  66. data/lib/openai/models/realtime/realtime_response_create_params.rb +2 -2
  67. data/lib/openai/models/realtime/realtime_server_event.rb +2 -2
  68. data/lib/openai/models/realtime/realtime_session.rb +18 -0
  69. data/lib/openai/models/realtime/realtime_session_create_request.rb +18 -0
  70. data/lib/openai/models/realtime/realtime_session_create_response.rb +18 -0
  71. data/lib/openai/models/realtime/response_output_item_added_event.rb +2 -2
  72. data/lib/openai/models/realtime/response_output_item_done_event.rb +2 -2
  73. data/lib/openai/models/responses/response.rb +221 -1
  74. data/lib/openai/models/responses/response_compact_params.rb +6 -0
  75. data/lib/openai/models/responses/response_configuration_update_item.rb +50 -3
  76. data/lib/openai/models/responses/response_configuration_update_item_param.rb +50 -4
  77. data/lib/openai/models/responses/response_input_item.rb +2 -3
  78. data/lib/openai/models/responses/response_item.rb +2 -2
  79. data/lib/openai/models/responses/response_tool_search_output_item_param.rb +6 -6
  80. data/lib/openai/models/responses/responses_client_event.rb +14 -1
  81. data/lib/openai/models/responses/tool.rb +6 -6
  82. data/lib/openai/net_http_client.rb +6 -0
  83. data/lib/openai/providers/vertex.rb +0 -10
  84. data/lib/openai/resources/admin/organization/external_keys.rb +132 -0
  85. data/lib/openai/resources/admin/organization.rb +4 -0
  86. data/lib/openai/resources/audio/speech.rb +8 -0
  87. data/lib/openai/resources/audio/translations.rb +8 -0
  88. data/lib/openai/resources/beta/agents/sessions.rb +22 -6
  89. data/lib/openai/resources/beta/agents.rb +17 -2
  90. data/lib/openai/resources/images.rb +36 -18
  91. data/lib/openai/version.rb +1 -1
  92. data/lib/openai.rb +8 -0
  93. data/rbi/openai/helpers/live/websocket.rbi +1 -12
  94. data/rbi/openai/helpers/realtime/connection.rbi +5 -0
  95. data/rbi/openai/helpers/realtime/transports/async_websocket.rbi +5 -0
  96. data/rbi/openai/helpers/responses_websocket/connection.rbi +7 -2
  97. data/rbi/openai/helpers/structured_output.rbi +10 -0
  98. data/rbi/openai/internal/type/array_of.rbi +1 -1
  99. data/rbi/openai/internal/type/hash_of.rbi +1 -1
  100. data/rbi/openai/internal/type/union.rbi +5 -0
  101. data/rbi/openai/models/admin/organization/external_key.rbi +301 -0
  102. data/rbi/openai/models/admin/organization/external_key_create_params.rbi +532 -0
  103. data/rbi/openai/models/admin/organization/external_key_delete_params.rbi +57 -0
  104. data/rbi/openai/models/admin/organization/external_key_list_params.rbi +129 -0
  105. data/rbi/openai/models/admin/organization/external_key_retrieve_params.rbi +57 -0
  106. data/rbi/openai/models/admin/organization/external_key_validate_params.rbi +57 -0
  107. data/rbi/openai/models/admin/organization/external_key_validate_response.rbi +50 -0
  108. data/rbi/openai/models/beta/agent.rbi +103 -1
  109. data/rbi/openai/models/beta/agent_create_params.rbi +109 -0
  110. data/rbi/openai/models/beta/agent_session.rbi +136 -3
  111. data/rbi/openai/models/beta/agent_update_params.rbi +120 -0
  112. data/rbi/openai/models/beta/agents/session_create_params.rbi +153 -0
  113. data/rbi/openai/models/beta/agents/session_list_params.rbi +19 -0
  114. data/rbi/openai/models/beta/agents/session_update_params.rbi +94 -6
  115. data/rbi/openai/models/beta/beta_response.rbi +394 -0
  116. data/rbi/openai/models/beta/beta_response_configuration_update_item.rbi +113 -3
  117. data/rbi/openai/models/beta/beta_response_configuration_update_item_param.rbi +125 -4
  118. data/rbi/openai/models/beta/beta_response_tool_search_output_item_param.rbi +6 -6
  119. data/rbi/openai/models/beta/beta_responses_client_event.rbi +17 -0
  120. data/rbi/openai/models/beta/beta_tool.rbi +6 -6
  121. data/rbi/openai/models/decision_create_params.rbi +4 -1
  122. data/rbi/openai/models/image_edit_params.rbi +49 -24
  123. data/rbi/openai/models/live/fork_server_event.rbi +65 -1
  124. data/rbi/openai/models/live/server_event.rbi +65 -1
  125. data/rbi/openai/models/live/sideband_client_event.rbi +60 -0
  126. data/rbi/openai/models/live/sideband_server_event.rbi +65 -1
  127. data/rbi/openai/models/realtime/conversation_item_added.rbi +6 -3
  128. data/rbi/openai/models/realtime/conversation_item_create_event.rbi +6 -3
  129. data/rbi/openai/models/realtime/conversation_item_created_event.rbi +6 -3
  130. data/rbi/openai/models/realtime/conversation_item_done.rbi +6 -3
  131. data/rbi/openai/models/realtime/realtime_response.rbi +8 -4
  132. data/rbi/openai/models/realtime/realtime_response_create_params.rbi +8 -4
  133. data/rbi/openai/models/realtime/realtime_server_event.rbi +6 -3
  134. data/rbi/openai/models/realtime/response_output_item_added_event.rbi +6 -3
  135. data/rbi/openai/models/realtime/response_output_item_done_event.rbi +6 -3
  136. data/rbi/openai/models/responses/response.rbi +394 -0
  137. data/rbi/openai/models/responses/response_configuration_update_item.rbi +76 -3
  138. data/rbi/openai/models/responses/response_configuration_update_item_param.rbi +74 -4
  139. data/rbi/openai/models/responses/response_tool_search_output_item_param.rbi +6 -6
  140. data/rbi/openai/models/responses/responses_client_event.rbi +17 -0
  141. data/rbi/openai/models/responses/tool.rbi +6 -6
  142. data/rbi/openai/net_http_client.rbi +5 -0
  143. data/rbi/openai/resources/admin/organization/external_keys.rbi +86 -0
  144. data/rbi/openai/resources/admin/organization.rbi +3 -0
  145. data/rbi/openai/resources/audio/speech.rbi +8 -0
  146. data/rbi/openai/resources/audio/translations.rbi +6 -0
  147. data/rbi/openai/resources/beta/agents/sessions.rbi +18 -2
  148. data/rbi/openai/resources/beta/agents.rbi +15 -0
  149. data/rbi/openai/resources/images.rbi +34 -16
  150. data/rbi/openai/resources/responses.rbi +2 -0
  151. data/realtime.md +6 -0
  152. data/responses-websocket.md +53 -0
  153. data/sig/openai/helpers/live/websocket.rbs +1 -9
  154. data/sig/openai/helpers/realtime/connection.rbs +3 -0
  155. data/sig/openai/helpers/realtime/transports/async_websocket.rbs +3 -0
  156. data/sig/openai/helpers/responses_websocket/connection.rbs +7 -1
  157. data/sig/openai/helpers/structured_output.rbs +9 -0
  158. data/sig/openai/internal/type/union.rbs +4 -0
  159. data/sig/openai/models/admin/organization/external_key.rbs +186 -0
  160. data/sig/openai/models/admin/organization/external_key_create_params.rbs +423 -0
  161. data/sig/openai/models/admin/organization/external_key_delete_params.rbs +27 -0
  162. data/sig/openai/models/admin/organization/external_key_list_params.rbs +81 -0
  163. data/sig/openai/models/admin/organization/external_key_retrieve_params.rbs +27 -0
  164. data/sig/openai/models/admin/organization/external_key_validate_params.rbs +27 -0
  165. data/sig/openai/models/admin/organization/external_key_validate_response.rbs +17 -0
  166. data/sig/openai/models/admin/organization/external_storage_create_params.rbs +72 -2
  167. data/sig/openai/models/audio/speech_create_params.rbs +15 -2
  168. data/sig/openai/models/audio/transcription_create_params.rbs +30 -2
  169. data/sig/openai/models/audio/voice_create_params.rbs +47 -2
  170. data/sig/openai/models/beta/agent.rbs +54 -2
  171. data/sig/openai/models/beta/agent_create_params.rbs +54 -0
  172. data/sig/openai/models/beta/agent_session.rbs +82 -3
  173. data/sig/openai/models/beta/agent_update_params.rbs +64 -0
  174. data/sig/openai/models/beta/agents/session_create_params.rbs +91 -0
  175. data/sig/openai/models/beta/agents/session_list_params.rbs +20 -0
  176. data/sig/openai/models/beta/agents/session_update_params.rbs +48 -6
  177. data/sig/openai/models/beta/assistant_create_params.rbs +5 -2
  178. data/sig/openai/models/beta/beta_response.rbs +223 -0
  179. data/sig/openai/models/beta/beta_response_configuration_update_item.rbs +58 -2
  180. data/sig/openai/models/beta/beta_response_configuration_update_item_param.rbs +58 -2
  181. data/sig/openai/models/beta/beta_response_tool_search_output_item_param.rbs +4 -4
  182. data/sig/openai/models/beta/beta_responses_client_event.rbs +17 -0
  183. data/sig/openai/models/beta/beta_tool.rbs +4 -4
  184. data/sig/openai/models/beta/response_create_params.rbs +5 -2
  185. data/sig/openai/models/beta/responses/input_token_count_params.rbs +10 -2
  186. data/sig/openai/models/beta/thread_create_and_run_params.rbs +11 -5
  187. data/sig/openai/models/beta/thread_create_params.rbs +11 -5
  188. data/sig/openai/models/beta/threads/message_create_params.rbs +6 -3
  189. data/sig/openai/models/beta/threads/run_create_params.rbs +6 -3
  190. data/sig/openai/models/decision_create_params.rbs +27 -2
  191. data/sig/openai/models/eval_create_params.rbs +25 -4
  192. data/sig/openai/models/evals/run_create_params.rbs +52 -8
  193. data/sig/openai/models/image_edit_params.rbs +47 -16
  194. data/sig/openai/models/live/fork_server_event.rbs +39 -0
  195. data/sig/openai/models/live/server_event.rbs +39 -0
  196. data/sig/openai/models/live/session_accept_params.rbs +39 -2
  197. data/sig/openai/models/live/sideband_client_event.rbs +32 -0
  198. data/sig/openai/models/live/sideband_server_event.rbs +39 -0
  199. data/sig/openai/models/realtime/conversation_item.rbs +1 -0
  200. data/sig/openai/models/responses/input_token_count_params.rbs +10 -2
  201. data/sig/openai/models/responses/response.rbs +223 -0
  202. data/sig/openai/models/responses/response_configuration_update_item.rbs +45 -2
  203. data/sig/openai/models/responses/response_configuration_update_item_param.rbs +45 -2
  204. data/sig/openai/models/responses/response_create_params.rbs +5 -2
  205. data/sig/openai/models/responses/response_tool_search_output_item_param.rbs +4 -4
  206. data/sig/openai/models/responses/responses_client_event.rbs +17 -0
  207. data/sig/openai/models/responses/tool.rbs +4 -4
  208. data/sig/openai/models/video_edit_params.rbs +11 -2
  209. data/sig/openai/models/video_extend_params.rbs +11 -2
  210. data/sig/openai/net_http_client.rbs +3 -0
  211. data/sig/openai/resources/admin/organization/external_keys.rbs +70 -0
  212. data/sig/openai/resources/admin/organization/external_storage.rbs +23 -1
  213. data/sig/openai/resources/admin/organization.rbs +2 -0
  214. data/sig/openai/resources/audio/speech.rbs +2 -1
  215. data/sig/openai/resources/audio/transcriptions.rbs +14 -2
  216. data/sig/openai/resources/audio/voices.rbs +14 -1
  217. data/sig/openai/resources/beta/agents/sessions.rbs +4 -0
  218. data/sig/openai/resources/beta/agents.rbs +4 -0
  219. data/sig/openai/resources/beta/responses/input_tokens.rbs +2 -1
  220. data/sig/openai/resources/beta/responses.rbs +4 -2
  221. data/sig/openai/resources/decisions.rbs +7 -1
  222. data/sig/openai/resources/images.rbs +2 -0
  223. data/sig/openai/resources/responses/input_tokens.rbs +2 -1
  224. data/sig/openai/resources/responses.rbs +5 -2
  225. data/sig/openai/resources/videos.rbs +2 -2
  226. metadata +43 -1
@@ -80,6 +80,13 @@ module OpenAI
80
80
  # @return [Array<String>]
81
81
  required :vault_ids, OpenAI::Internal::Type::ArrayOf[String]
82
82
 
83
+ # @!attribute review
84
+ # Review applied to eligible actions in this session. Omitted when review is none
85
+ # and automatic review is not enabled. Omission means none.
86
+ #
87
+ # @return [Symbol, OpenAI::Models::Beta::AgentSession::Review, nil]
88
+ optional :review, enum: -> { OpenAI::Beta::AgentSession::Review }
89
+
83
90
  # @!attribute spend_control
84
91
  # Configured spending limit and best-effort consumption, in USD cents. Unlimited
85
92
  # sessions omit this object.
@@ -87,7 +94,7 @@ module OpenAI
87
94
  # @return [OpenAI::Models::Beta::AgentSession::SpendControl, nil]
88
95
  optional :spend_control, -> { OpenAI::Beta::AgentSession::SpendControl }
89
96
 
90
- # @!method initialize(id:, agent:, created_at:, environment:, error:, last_active_at:, metadata:, required_actions:, status:, usage:, vault_ids:, spend_control: nil, object: :"agent.session")
97
+ # @!method initialize(id:, agent:, created_at:, environment:, error:, last_active_at:, metadata:, required_actions:, status:, usage:, vault_ids:, review: nil, spend_control: nil, object: :"agent.session")
91
98
  # A Managed Agents session.
92
99
  #
93
100
  # @param id [String]
@@ -124,6 +131,10 @@ module OpenAI
124
131
  # @param vault_ids [Array<String>]
125
132
  # The IDs of vaults made available to the session.
126
133
  #
134
+ # @param review [Symbol, OpenAI::Models::Beta::AgentSession::Review]
135
+ # Review applied to eligible actions in this session. Omitted when review is none
136
+ # and automatic review is not enabled. Omission means none.
137
+ #
127
138
  # @param spend_control [OpenAI::Models::Beta::AgentSession::SpendControl]
128
139
  # Configured spending limit and best-effort consumption, in USD cents. Unlimited
129
140
  # sessions omit this object.
@@ -188,7 +199,19 @@ module OpenAI
188
199
  # @return [Array<OpenAI::Models::Beta::AgentTool::Function, OpenAI::Models::Beta::AgentTool::ProgrammaticToolCalling, OpenAI::Models::Beta::AgentTool::Mcp, OpenAI::Models::Beta::AgentTool::WebSearch, OpenAI::Models::Beta::AgentTool::ComputerUse, OpenAI::Models::Beta::AgentTool::Automations>]
189
200
  required :tools, -> { OpenAI::Internal::Type::ArrayOf[union: OpenAI::Beta::AgentTool] }
190
201
 
191
- # @!method initialize(id:, instructions:, model:, multi_agent:, name:, reasoning:, service_tier:, text:, tools:)
202
+ # @!attribute compaction
203
+ # The effective context compaction settings.
204
+ #
205
+ # @return [OpenAI::Models::Beta::AgentSession::Agent::Compaction, nil]
206
+ optional :compaction, -> { OpenAI::Beta::AgentSession::Agent::Compaction }
207
+
208
+ # @!attribute experimental
209
+ # The effective experimental settings for the agent.
210
+ #
211
+ # @return [OpenAI::Models::Beta::AgentSession::Agent::Experimental, nil]
212
+ optional :experimental, -> { OpenAI::Beta::AgentSession::Agent::Experimental }
213
+
214
+ # @!method initialize(id:, instructions:, model:, multi_agent:, name:, reasoning:, service_tier:, text:, tools:, compaction: nil, experimental: nil)
192
215
  # The agent running in the session.
193
216
  #
194
217
  # @param id [String]
@@ -218,6 +241,12 @@ module OpenAI
218
241
  #
219
242
  # @param tools [Array<OpenAI::Models::Beta::AgentTool::Function, OpenAI::Models::Beta::AgentTool::ProgrammaticToolCalling, OpenAI::Models::Beta::AgentTool::Mcp, OpenAI::Models::Beta::AgentTool::WebSearch, OpenAI::Models::Beta::AgentTool::ComputerUse, OpenAI::Models::Beta::AgentTool::Automations>]
220
243
  # Tools available to the agent.
244
+ #
245
+ # @param compaction [OpenAI::Models::Beta::AgentSession::Agent::Compaction]
246
+ # The effective context compaction settings.
247
+ #
248
+ # @param experimental [OpenAI::Models::Beta::AgentSession::Agent::Experimental]
249
+ # The effective experimental settings for the agent.
221
250
 
222
251
  # The effective service-tier policy for model requests. Defaults to `auto`.
223
252
  #
@@ -235,6 +264,36 @@ module OpenAI
235
264
  # @!method self.values
236
265
  # @return [Array<Symbol>]
237
266
  end
267
+
268
+ # @see OpenAI::Models::Beta::AgentSession::Agent#compaction
269
+ class Compaction < OpenAI::Internal::Type::BaseModel
270
+ # @!attribute async
271
+ # Whether context is compacted in the background. Defaults to true.
272
+ #
273
+ # @return [Boolean]
274
+ required :async, OpenAI::Internal::Type::Boolean
275
+
276
+ # @!method initialize(async:)
277
+ # The effective context compaction settings.
278
+ #
279
+ # @param async [Boolean]
280
+ # Whether context is compacted in the background. Defaults to true.
281
+ end
282
+
283
+ # @see OpenAI::Models::Beta::AgentSession::Agent#experimental
284
+ class Experimental < OpenAI::Internal::Type::BaseModel
285
+ # @!attribute time_awareness
286
+ # Whether the model receives periodic current-time reminders.
287
+ #
288
+ # @return [Boolean]
289
+ required :time_awareness, OpenAI::Internal::Type::Boolean
290
+
291
+ # @!method initialize(time_awareness:)
292
+ # The effective experimental settings for the agent.
293
+ #
294
+ # @param time_awareness [Boolean]
295
+ # Whether the model receives periodic current-time reminders.
296
+ end
238
297
  end
239
298
 
240
299
  # An action that must be completed before a session can continue.
@@ -594,6 +653,20 @@ module OpenAI
594
653
  # @return [Array<Symbol>]
595
654
  end
596
655
 
656
+ # Review applied to eligible actions in this session. Omitted when review is none
657
+ # and automatic review is not enabled. Omission means none.
658
+ #
659
+ # @see OpenAI::Models::Beta::AgentSession#review
660
+ module Review
661
+ extend OpenAI::Internal::Type::Enum
662
+
663
+ NONE = :none
664
+ AUTO_REVIEW = :auto_review
665
+
666
+ # @!method self.values
667
+ # @return [Array<Symbol>]
668
+ end
669
+
597
670
  # @see OpenAI::Models::Beta::AgentSession#spend_control
598
671
  class SpendControl < OpenAI::Internal::Type::BaseModel
599
672
  # @!attribute consumed
@@ -13,6 +13,21 @@ module OpenAI
13
13
  # @return [String]
14
14
  required :agent_id, String
15
15
 
16
+ # @!attribute compaction
17
+ # Context compaction settings. Omit to keep the current settings. A supplied
18
+ # object replaces the settings; null or an empty object enables background
19
+ # compaction.
20
+ #
21
+ # @return [OpenAI::Models::Beta::AgentUpdateParams::Compaction, nil]
22
+ optional :compaction, -> { OpenAI::Beta::AgentUpdateParams::Compaction }, nil?: true
23
+
24
+ # @!attribute experimental
25
+ # Experimental settings to merge by key. Omitted settings keep their current
26
+ # values.
27
+ #
28
+ # @return [OpenAI::Models::Beta::AgentUpdateParams::Experimental, nil]
29
+ optional :experimental, -> { OpenAI::Beta::AgentUpdateParams::Experimental }
30
+
16
31
  # @!attribute instructions
17
32
  # Additional instructions appended to the agent's default base instructions. Omit
18
33
  # to leave unchanged.
@@ -76,9 +91,18 @@ module OpenAI
76
91
  nil?: true
77
92
  )
78
93
 
79
- # @!method initialize(agent_id:, instructions: nil, metadata: nil, model: nil, multi_agent: nil, name: nil, reasoning: nil, service_tier: nil, text: nil, tools: nil, request_options: {})
94
+ # @!method initialize(agent_id:, compaction: nil, experimental: nil, instructions: nil, metadata: nil, model: nil, multi_agent: nil, name: nil, reasoning: nil, service_tier: nil, text: nil, tools: nil, request_options: {})
80
95
  # @param agent_id [String]
81
96
  #
97
+ # @param compaction [OpenAI::Models::Beta::AgentUpdateParams::Compaction, nil]
98
+ # Context compaction settings. Omit to keep the current settings. A supplied
99
+ # object replaces the settings; null or an empty object enables background
100
+ # compaction.
101
+ #
102
+ # @param experimental [OpenAI::Models::Beta::AgentUpdateParams::Experimental]
103
+ # Experimental settings to merge by key. Omitted settings keep their current
104
+ # values.
105
+ #
82
106
  # @param instructions [String, nil]
83
107
  # Additional instructions appended to the agent's default base instructions. Omit
84
108
  # to leave unchanged.
@@ -113,6 +137,43 @@ module OpenAI
113
137
  #
114
138
  # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}]
115
139
 
140
+ class Compaction < OpenAI::Internal::Type::BaseModel
141
+ # @!attribute async
142
+ # Whether to compact context in the background. Omission or null defaults to true.
143
+ # Set to false to use blocking compaction. Background compaction may increase
144
+ # token usage.
145
+ #
146
+ # @return [Boolean, nil]
147
+ optional :async, OpenAI::Internal::Type::Boolean, nil?: true
148
+
149
+ # @!method initialize(async: nil)
150
+ # Context compaction settings. Omit to keep the current settings. A supplied
151
+ # object replaces the settings; null or an empty object enables background
152
+ # compaction.
153
+ #
154
+ # @param async [Boolean, nil]
155
+ # Whether to compact context in the background. Omission or null defaults to true.
156
+ # Set to false to use blocking compaction. Background compaction may increase
157
+ # token usage.
158
+ end
159
+
160
+ class Experimental < OpenAI::Internal::Type::BaseModel
161
+ # @!attribute time_awareness
162
+ # Whether to give the model periodic current-time reminders. Omit to keep the
163
+ # current setting.
164
+ #
165
+ # @return [Boolean, nil]
166
+ optional :time_awareness, OpenAI::Internal::Type::Boolean
167
+
168
+ # @!method initialize(time_awareness: nil)
169
+ # Experimental settings to merge by key. Omitted settings keep their current
170
+ # values.
171
+ #
172
+ # @param time_awareness [Boolean]
173
+ # Whether to give the model periodic current-time reminders. Omit to keep the
174
+ # current setting.
175
+ end
176
+
116
177
  # The service tier used for model requests.
117
178
  module ServiceTier
118
179
  extend OpenAI::Internal::Type::Enum
@@ -47,6 +47,12 @@ module OpenAI
47
47
  # @return [Hash{Symbol=>String}, nil]
48
48
  optional :metadata, OpenAI::Internal::Type::HashOf[String], nil?: true
49
49
 
50
+ # @!attribute review
51
+ # Action review mode. Omit to use none.
52
+ #
53
+ # @return [Symbol, OpenAI::Models::Beta::Agents::SessionCreateParams::Review, nil]
54
+ optional :review, enum: -> { OpenAI::Beta::Agents::SessionCreateParams::Review }
55
+
50
56
  # @!attribute spend_control
51
57
  # Optional spending limit in USD cents. Omission or null creates an unlimited
52
58
  # session.
@@ -66,7 +72,7 @@ module OpenAI
66
72
  # @return [Array<String>, nil]
67
73
  optional :vault_ids, OpenAI::Internal::Type::ArrayOf[String], nil?: true
68
74
 
69
- # @!method initialize(environment:, agent: nil, agent_id: nil, input: nil, metadata: nil, spend_control: nil, vault_ids: nil, request_options: {})
75
+ # @!method initialize(environment:, agent: nil, agent_id: nil, input: nil, metadata: nil, review: nil, spend_control: nil, vault_ids: nil, request_options: {})
70
76
  # @param environment [OpenAI::Models::Beta::EnvironmentParam::None, OpenAI::Models::Beta::EnvironmentParam::OpenAIHosted, OpenAI::Models::Beta::EnvironmentParam::SelfHosted]
71
77
  # An inline execution environment or a reference to an environment template.
72
78
  #
@@ -88,6 +94,9 @@ module OpenAI
88
94
  # Up to 16 string key-value pairs, with keys up to 64 and values up to 512
89
95
  # characters. Omission or null defaults to an empty map.
90
96
  #
97
+ # @param review [Symbol, OpenAI::Models::Beta::Agents::SessionCreateParams::Review]
98
+ # Action review mode. Omit to use none.
99
+ #
91
100
  # @param spend_control [OpenAI::Models::Beta::Agents::SessionCreateParams::SpendControl, nil]
92
101
  # Optional spending limit in USD cents. Omission or null creates an unlimited
93
102
  # session.
@@ -98,6 +107,27 @@ module OpenAI
98
107
  # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}]
99
108
 
100
109
  class Agent < OpenAI::Internal::Type::BaseModel
110
+ # @!attribute compaction
111
+ # Context compaction settings. Omit to keep the current settings. A supplied
112
+ # object replaces the settings; null or an empty object enables background
113
+ # compaction.
114
+ #
115
+ # @return [OpenAI::Models::Beta::Agents::SessionCreateParams::Agent::Compaction, nil]
116
+ optional(
117
+ :compaction,
118
+ -> {
119
+ OpenAI::Beta::Agents::SessionCreateParams::Agent::Compaction
120
+ },
121
+ nil?: true
122
+ )
123
+
124
+ # @!attribute experimental
125
+ # Experimental settings to merge by key. Omitted settings keep their current
126
+ # values.
127
+ #
128
+ # @return [OpenAI::Models::Beta::Agents::SessionCreateParams::Agent::Experimental, nil]
129
+ optional :experimental, -> { OpenAI::Beta::Agents::SessionCreateParams::Agent::Experimental }
130
+
101
131
  # @!attribute instructions
102
132
  # Additional instructions appended to the agent's default base instructions. Omit
103
133
  # to leave unchanged.
@@ -154,10 +184,19 @@ module OpenAI
154
184
  nil?: true
155
185
  )
156
186
 
157
- # @!method initialize(instructions: nil, model: nil, multi_agent: nil, reasoning: nil, service_tier: nil, text: nil, tools: nil)
187
+ # @!method initialize(compaction: nil, experimental: nil, instructions: nil, model: nil, multi_agent: nil, reasoning: nil, service_tier: nil, text: nil, tools: nil)
158
188
  # Agent configuration. With `agent_id`, supplied fields override the saved agent
159
189
  # for this session. Without `agent_id`, `model` is required.
160
190
  #
191
+ # @param compaction [OpenAI::Models::Beta::Agents::SessionCreateParams::Agent::Compaction, nil]
192
+ # Context compaction settings. Omit to keep the current settings. A supplied
193
+ # object replaces the settings; null or an empty object enables background
194
+ # compaction.
195
+ #
196
+ # @param experimental [OpenAI::Models::Beta::Agents::SessionCreateParams::Agent::Experimental]
197
+ # Experimental settings to merge by key. Omitted settings keep their current
198
+ # values.
199
+ #
161
200
  # @param instructions [String, nil]
162
201
  # Additional instructions appended to the agent's default base instructions. Omit
163
202
  # to leave unchanged.
@@ -183,6 +222,45 @@ module OpenAI
183
222
  # resolved tool list must fit within 3 MiB (3,145,728 bytes) of compact UTF-8
184
223
  # JSON.
185
224
 
225
+ # @see OpenAI::Models::Beta::Agents::SessionCreateParams::Agent#compaction
226
+ class Compaction < OpenAI::Internal::Type::BaseModel
227
+ # @!attribute async
228
+ # Whether to compact context in the background. Omission or null defaults to true.
229
+ # Set to false to use blocking compaction. Background compaction may increase
230
+ # token usage.
231
+ #
232
+ # @return [Boolean, nil]
233
+ optional :async, OpenAI::Internal::Type::Boolean, nil?: true
234
+
235
+ # @!method initialize(async: nil)
236
+ # Context compaction settings. Omit to keep the current settings. A supplied
237
+ # object replaces the settings; null or an empty object enables background
238
+ # compaction.
239
+ #
240
+ # @param async [Boolean, nil]
241
+ # Whether to compact context in the background. Omission or null defaults to true.
242
+ # Set to false to use blocking compaction. Background compaction may increase
243
+ # token usage.
244
+ end
245
+
246
+ # @see OpenAI::Models::Beta::Agents::SessionCreateParams::Agent#experimental
247
+ class Experimental < OpenAI::Internal::Type::BaseModel
248
+ # @!attribute time_awareness
249
+ # Whether to give the model periodic current-time reminders. Omit to keep the
250
+ # current setting.
251
+ #
252
+ # @return [Boolean, nil]
253
+ optional :time_awareness, OpenAI::Internal::Type::Boolean
254
+
255
+ # @!method initialize(time_awareness: nil)
256
+ # Experimental settings to merge by key. Omitted settings keep their current
257
+ # values.
258
+ #
259
+ # @param time_awareness [Boolean]
260
+ # Whether to give the model periodic current-time reminders. Omit to keep the
261
+ # current setting.
262
+ end
263
+
186
264
  # The service tier used for model requests.
187
265
  #
188
266
  # @see OpenAI::Models::Beta::Agents::SessionCreateParams::Agent#service_tier
@@ -232,6 +310,20 @@ module OpenAI
232
310
  ]
233
311
  end
234
312
 
313
+ # Action review mode. Omit to use none.
314
+ module Review
315
+ extend OpenAI::Internal::Type::Enum
316
+
317
+ # Keep the existing execution behavior without automatic action review.
318
+ NONE = :none
319
+
320
+ # Review eligible actions automatically. Deny manual approval fallbacks.
321
+ AUTO_REVIEW = :auto_review
322
+
323
+ # @!method self.values
324
+ # @return [Array<Symbol>]
325
+ end
326
+
235
327
  class SpendControl < OpenAI::Internal::Type::BaseModel
236
328
  # @!attribute limit
237
329
  # Positive USD cents, or null to remove the limit.
@@ -28,13 +28,22 @@ module OpenAI
28
28
  # @return [Integer, nil]
29
29
  optional :limit, Integer
30
30
 
31
+ # @!attribute metadata
32
+ # Exact string matches supplied as `metadata[key]=value`. All supplied pairs must
33
+ # match. Up to 16 pairs, with keys from 1 to 64 characters and values up to 512
34
+ # characters. New sessions and metadata updates may take time to appear in
35
+ # filtered results.
36
+ #
37
+ # @return [Hash{Symbol=>String}, nil]
38
+ optional :metadata, OpenAI::Internal::Type::HashOf[String]
39
+
31
40
  # @!attribute order
32
41
  # The order in which resources are returned. Defaults to `desc`.
33
42
  #
34
43
  # @return [Symbol, OpenAI::Models::Beta::Agents::SessionListParams::Order, nil]
35
44
  optional :order, enum: -> { OpenAI::Beta::Agents::SessionListParams::Order }
36
45
 
37
- # @!method initialize(after: nil, agent_id: nil, limit: nil, order: nil, request_options: {})
46
+ # @!method initialize(after: nil, agent_id: nil, limit: nil, metadata: nil, order: nil, request_options: {})
38
47
  # @param after [String]
39
48
  # Return resources after this resource ID in the selected order.
40
49
  #
@@ -45,6 +54,12 @@ module OpenAI
45
54
  # @param limit [Integer]
46
55
  # The maximum number of resources to return, between 1 and 100. Defaults to 20.
47
56
  #
57
+ # @param metadata [Hash{Symbol=>String}]
58
+ # Exact string matches supplied as `metadata[key]=value`. All supplied pairs must
59
+ # match. Up to 16 pairs, with keys from 1 to 64 characters and values up to 512
60
+ # characters. New sessions and metadata updates may take time to appear in
61
+ # filtered results.
62
+ #
48
63
  # @param order [Symbol, OpenAI::Models::Beta::Agents::SessionListParams::Order]
49
64
  # The order in which resources are returned. Defaults to `desc`.
50
65
  #
@@ -15,7 +15,7 @@ module OpenAI
15
15
  required :session_id, String
16
16
 
17
17
  # @!attribute agent
18
- # Model settings for subsequent turns. Omitted fields stay unchanged.
18
+ # Agent settings to update on this session. Omitted fields stay unchanged.
19
19
  #
20
20
  # @return [OpenAI::Models::Beta::Agents::SessionUpdateParams::Agent, nil]
21
21
  optional :agent, -> { OpenAI::Beta::Agents::SessionUpdateParams::Agent }
@@ -28,6 +28,13 @@ module OpenAI
28
28
  # @return [Hash{Symbol=>String}, nil]
29
29
  optional :metadata, OpenAI::Internal::Type::HashOf[String], nil?: true
30
30
 
31
+ # @!attribute review
32
+ # Default action review for new root turns. Existing turns and their subagents
33
+ # keep their review mode.
34
+ #
35
+ # @return [Symbol, OpenAI::Models::Beta::Agents::SessionUpdateParams::Review, nil]
36
+ optional :review, enum: -> { OpenAI::Beta::Agents::SessionUpdateParams::Review }
37
+
31
38
  # @!attribute spend_control
32
39
  # Omit to retain the limit; null or a null limit removes it without resetting
33
40
  # spend.
@@ -41,17 +48,21 @@ module OpenAI
41
48
  nil?: true
42
49
  )
43
50
 
44
- # @!method initialize(session_id:, agent: nil, metadata: nil, spend_control: nil, request_options: {})
51
+ # @!method initialize(session_id:, agent: nil, metadata: nil, review: nil, spend_control: nil, request_options: {})
45
52
  # @param session_id [String]
46
53
  #
47
54
  # @param agent [OpenAI::Models::Beta::Agents::SessionUpdateParams::Agent]
48
- # Model settings for subsequent turns. Omitted fields stay unchanged.
55
+ # Agent settings to update on this session. Omitted fields stay unchanged.
49
56
  #
50
57
  # @param metadata [Hash{Symbol=>String}, nil]
51
58
  # Replaces all metadata. Omit to leave unchanged, or pass null or {} to clear it.
52
59
  # Up to 16 string key-value pairs, with keys up to 64 and values up to 512
53
60
  # characters.
54
61
  #
62
+ # @param review [Symbol, OpenAI::Models::Beta::Agents::SessionUpdateParams::Review]
63
+ # Default action review for new root turns. Existing turns and their subagents
64
+ # keep their review mode.
65
+ #
55
66
  # @param spend_control [OpenAI::Models::Beta::Agents::SessionUpdateParams::SpendControl, nil]
56
67
  # Omit to retain the limit; null or a null limit removes it without resetting
57
68
  # spend.
@@ -81,8 +92,22 @@ module OpenAI
81
92
  nil?: true
82
93
  )
83
94
 
84
- # @!method initialize(model: nil, reasoning: nil, service_tier: nil)
85
- # Model settings for subsequent turns. Omitted fields stay unchanged.
95
+ # @!attribute tools
96
+ # Replaces the session tools. Functions and MCP servers change on the next model
97
+ # call. Built-in tools change by the next turn. Omit to keep the current tools, or
98
+ # pass null or an empty array to clear them.
99
+ #
100
+ # @return [Array<OpenAI::Models::Beta::AgentToolParam::Function, OpenAI::Models::Beta::AgentToolParam::ToolSearch, OpenAI::Models::Beta::AgentToolParam::ProgrammaticToolCalling, OpenAI::Models::Beta::AgentToolParam::Mcp, OpenAI::Models::Beta::AgentToolParam::WebSearch, OpenAI::Models::Beta::AgentToolParam::ComputerUse, OpenAI::Models::Beta::AgentToolParam::Automations>, nil]
101
+ optional(
102
+ :tools,
103
+ -> {
104
+ OpenAI::Internal::Type::ArrayOf[union: OpenAI::Beta::AgentToolParam]
105
+ },
106
+ nil?: true
107
+ )
108
+
109
+ # @!method initialize(model: nil, reasoning: nil, service_tier: nil, tools: nil)
110
+ # Agent settings to update on this session. Omitted fields stay unchanged.
86
111
  #
87
112
  # @param model [String]
88
113
  # The model for subsequent turns. Omit to keep the current model.
@@ -92,6 +117,11 @@ module OpenAI
92
117
  #
93
118
  # @param service_tier [Symbol, OpenAI::Models::Beta::Agents::SessionUpdateParams::Agent::ServiceTier, nil]
94
119
  # Omit to keep the current tier. Null resets it to auto.
120
+ #
121
+ # @param tools [Array<OpenAI::Models::Beta::AgentToolParam::Function, OpenAI::Models::Beta::AgentToolParam::ToolSearch, OpenAI::Models::Beta::AgentToolParam::ProgrammaticToolCalling, OpenAI::Models::Beta::AgentToolParam::Mcp, OpenAI::Models::Beta::AgentToolParam::WebSearch, OpenAI::Models::Beta::AgentToolParam::ComputerUse, OpenAI::Models::Beta::AgentToolParam::Automations>, nil]
122
+ # Replaces the session tools. Functions and MCP servers change on the next model
123
+ # call. Built-in tools change by the next turn. Omit to keep the current tools, or
124
+ # pass null or an empty array to clear them.
95
125
 
96
126
  # @see OpenAI::Models::Beta::Agents::SessionUpdateParams::Agent#reasoning
97
127
  class Reasoning < OpenAI::Internal::Type::BaseModel
@@ -159,6 +189,21 @@ module OpenAI
159
189
  end
160
190
  end
161
191
 
192
+ # Default action review for new root turns. Existing turns and their subagents
193
+ # keep their review mode.
194
+ module Review
195
+ extend OpenAI::Internal::Type::Enum
196
+
197
+ # Keep the existing execution behavior without automatic action review.
198
+ NONE = :none
199
+
200
+ # Review eligible actions automatically. Deny manual approval fallbacks.
201
+ AUTO_REVIEW = :auto_review
202
+
203
+ # @!method self.values
204
+ # @return [Array<Symbol>]
205
+ end
206
+
162
207
  class SpendControl < OpenAI::Internal::Type::BaseModel
163
208
  # @!attribute limit
164
209
  # Positive USD cents, or null to remove the limit.
@@ -310,11 +310,29 @@ module OpenAI
310
310
 
311
311
  # @!group
312
312
 
313
+ # @deprecated Announced shutdown date: 2026-12-11. See
314
+ # https://developers.openai.com/api/docs/deprecations for details and recommended
315
+ # replacements.
313
316
  GPT_5 = :"gpt-5"
317
+ # @deprecated Announced shutdown date: 2026-12-11. See
318
+ # https://developers.openai.com/api/docs/deprecations for details and recommended
319
+ # replacements.
314
320
  GPT_5_MINI = :"gpt-5-mini"
321
+ # @deprecated Announced shutdown date: 2026-12-11. See
322
+ # https://developers.openai.com/api/docs/deprecations for details and recommended
323
+ # replacements.
315
324
  GPT_5_NANO = :"gpt-5-nano"
325
+ # @deprecated Announced shutdown date: 2026-12-11. See
326
+ # https://developers.openai.com/api/docs/deprecations for details and recommended
327
+ # replacements.
316
328
  GPT_5_2025_08_07 = :"gpt-5-2025-08-07"
329
+ # @deprecated Announced shutdown date: 2026-12-11. See
330
+ # https://developers.openai.com/api/docs/deprecations for details and recommended
331
+ # replacements.
317
332
  GPT_5_MINI_2025_08_07 = :"gpt-5-mini-2025-08-07"
333
+ # @deprecated Announced shutdown date: 2026-12-11. See
334
+ # https://developers.openai.com/api/docs/deprecations for details and recommended
335
+ # replacements.
318
336
  GPT_5_NANO_2025_08_07 = :"gpt-5-nano-2025-08-07"
319
337
  # @deprecated Announced shutdown date: 2027-01-14. See
320
338
  # https://developers.openai.com/api/docs/deprecations for details and recommended