openai 0.123.0 → 0.124.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 (227) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +7 -0
  3. data/README.md +1 -1
  4. data/lib/openai/models/admin/organization/audit_log_list_response.rb +10 -1
  5. data/lib/openai/models/admin/organization/external_key.rb +25 -1
  6. data/lib/openai/models/admin/organization/external_key_create_params.rb +78 -3
  7. data/lib/openai/models/beta/agent_output_command_execution_output_delta_event.rb +10 -1
  8. data/lib/openai/models/beta/agent_session.rb +128 -4
  9. data/lib/openai/models/beta/agent_session_created_event.rb +10 -1
  10. data/lib/openai/models/beta/agent_session_environment_connected_event.rb +10 -1
  11. data/lib/openai/models/beta/agent_session_environment_disconnected_event.rb +10 -1
  12. data/lib/openai/models/beta/agent_session_environment_expired_event.rb +10 -1
  13. data/lib/openai/models/beta/agent_session_environment_failed_event.rb +10 -1
  14. data/lib/openai/models/beta/agent_session_environment_pending_event.rb +10 -1
  15. data/lib/openai/models/beta/agent_session_environment_ready_event.rb +10 -1
  16. data/lib/openai/models/beta/agent_session_environment_reset_event.rb +10 -1
  17. data/lib/openai/models/beta/agent_session_environment_suspended_event.rb +10 -1
  18. data/lib/openai/models/beta/agent_session_error_event.rb +10 -1
  19. data/lib/openai/models/beta/agent_session_failed_event.rb +10 -1
  20. data/lib/openai/models/beta/agent_session_idle_event.rb +10 -1
  21. data/lib/openai/models/beta/agent_session_in_progress_event.rb +10 -1
  22. data/lib/openai/models/beta/agent_session_input_param.rb +87 -1
  23. data/lib/openai/models/beta/agent_session_requires_action_event.rb +10 -1
  24. data/lib/openai/models/beta/agent_session_subagent_active_event.rb +10 -1
  25. data/lib/openai/models/beta/agent_session_subagent_closed_event.rb +10 -1
  26. data/lib/openai/models/beta/agent_session_subagent_created_event.rb +10 -1
  27. data/lib/openai/models/beta/agent_session_turn_cancelled_event.rb +10 -1
  28. data/lib/openai/models/beta/agent_session_turn_completed_event.rb +10 -1
  29. data/lib/openai/models/beta/agent_session_turn_content_part_added_event.rb +10 -1
  30. data/lib/openai/models/beta/agent_session_turn_content_part_done_event.rb +10 -1
  31. data/lib/openai/models/beta/agent_session_turn_created_event.rb +10 -1
  32. data/lib/openai/models/beta/agent_session_turn_failed_event.rb +10 -1
  33. data/lib/openai/models/beta/agent_session_turn_in_progress_event.rb +10 -1
  34. data/lib/openai/models/beta/agent_session_turn_item_added_event.rb +10 -1
  35. data/lib/openai/models/beta/agent_session_turn_item_done_event.rb +10 -1
  36. data/lib/openai/models/beta/agent_session_turn_output_text_delta_event.rb +10 -1
  37. data/lib/openai/models/beta/agent_session_turn_output_text_done_event.rb +10 -1
  38. data/lib/openai/models/beta/agent_session_turn_reasoning_summary_part_added_event.rb +10 -1
  39. data/lib/openai/models/beta/agent_session_turn_reasoning_summary_part_done_event.rb +10 -1
  40. data/lib/openai/models/beta/agent_session_turn_reasoning_summary_text_delta_event.rb +10 -1
  41. data/lib/openai/models/beta/agent_session_turn_reasoning_summary_text_done_event.rb +10 -1
  42. data/lib/openai/models/beta/agents/session_create_params.rb +69 -1
  43. data/lib/openai/models/beta/agents/session_update_params.rb +44 -1
  44. data/lib/openai/models/beta/agents/sessions/event_create_params.rb +2 -2
  45. data/lib/openai/models/beta/agents/sessions/event_stream_params.rb +13 -1
  46. data/lib/openai/models/beta/agents/sessions/turn.rb +41 -1
  47. data/lib/openai/models/beta/beta_response.rb +9 -3
  48. data/lib/openai/models/beta/beta_response_tool_search_output_item_param.rb +6 -3
  49. data/lib/openai/models/beta/beta_responses_client_event.rb +9 -3
  50. data/lib/openai/models/beta/beta_tool.rb +6 -3
  51. data/lib/openai/models/beta/response_compact_params.rb +2 -0
  52. data/lib/openai/models/beta/response_create_params.rb +9 -3
  53. data/lib/openai/models/beta/responses/input_token_count_params.rb +27 -15
  54. data/lib/openai/models/content_provenance_check_create_params.rb +2 -0
  55. data/lib/openai/models/image_edit_params.rb +84 -5
  56. data/lib/openai/models/image_generate_params.rb +4 -4
  57. data/lib/openai/models/images_response.rb +9 -12
  58. data/lib/openai/models/live/media_session_config.rb +12 -1
  59. data/lib/openai/models/live/session_accept_params.rb +12 -1
  60. data/lib/openai/models/responses/input_token_count_params.rb +27 -15
  61. data/lib/openai/models/responses/response.rb +9 -3
  62. data/lib/openai/models/responses/response_compact_params.rb +2 -0
  63. data/lib/openai/models/responses/response_create_params.rb +9 -3
  64. data/lib/openai/models/responses/response_tool_search_output_item_param.rb +6 -3
  65. data/lib/openai/models/responses/responses_client_event.rb +9 -3
  66. data/lib/openai/models/responses/tool.rb +6 -3
  67. data/lib/openai/models/video_create_error.rb +6 -4
  68. data/lib/openai/models/webhooks/agent_session_action_required_webhook_event.rb +1 -0
  69. data/lib/openai/models/webhooks/live_transport_connected_webhook_event.rb +74 -0
  70. data/lib/openai/models/webhooks/unwrap_webhook_event.rb +4 -1
  71. data/lib/openai/resources/admin/organization/external_keys.rb +1 -1
  72. data/lib/openai/resources/beta/agents/sessions/events.rb +10 -3
  73. data/lib/openai/resources/beta/agents/sessions.rb +24 -5
  74. data/lib/openai/resources/beta/responses/input_tokens.rb +9 -6
  75. data/lib/openai/resources/beta/responses.rb +6 -2
  76. data/lib/openai/resources/content_provenance_checks.rb +1 -0
  77. data/lib/openai/resources/images.rb +20 -6
  78. data/lib/openai/resources/responses/input_tokens.rb +9 -5
  79. data/lib/openai/resources/responses.rb +6 -2
  80. data/lib/openai/resources/webhooks.rb +1 -1
  81. data/lib/openai/version.rb +1 -1
  82. data/lib/openai.rb +1 -0
  83. data/rbi/openai/models/admin/organization/audit_log_list_response.rbi +13 -1
  84. data/rbi/openai/models/admin/organization/external_key.rbi +44 -0
  85. data/rbi/openai/models/admin/organization/external_key_create_params.rbi +137 -4
  86. data/rbi/openai/models/beta/agent_output_command_execution_output_delta_event.rbi +14 -1
  87. data/rbi/openai/models/beta/agent_session.rbi +207 -0
  88. data/rbi/openai/models/beta/agent_session_created_event.rbi +13 -1
  89. data/rbi/openai/models/beta/agent_session_environment_connected_event.rbi +14 -1
  90. data/rbi/openai/models/beta/agent_session_environment_disconnected_event.rbi +14 -1
  91. data/rbi/openai/models/beta/agent_session_environment_expired_event.rbi +14 -1
  92. data/rbi/openai/models/beta/agent_session_environment_failed_event.rbi +14 -1
  93. data/rbi/openai/models/beta/agent_session_environment_pending_event.rbi +14 -1
  94. data/rbi/openai/models/beta/agent_session_environment_ready_event.rbi +14 -1
  95. data/rbi/openai/models/beta/agent_session_environment_reset_event.rbi +14 -1
  96. data/rbi/openai/models/beta/agent_session_environment_suspended_event.rbi +14 -1
  97. data/rbi/openai/models/beta/agent_session_error_event.rbi +13 -1
  98. data/rbi/openai/models/beta/agent_session_failed_event.rbi +13 -1
  99. data/rbi/openai/models/beta/agent_session_idle_event.rbi +13 -1
  100. data/rbi/openai/models/beta/agent_session_in_progress_event.rbi +13 -1
  101. data/rbi/openai/models/beta/agent_session_input_param.rbi +159 -0
  102. data/rbi/openai/models/beta/agent_session_requires_action_event.rbi +13 -1
  103. data/rbi/openai/models/beta/agent_session_subagent_active_event.rbi +13 -1
  104. data/rbi/openai/models/beta/agent_session_subagent_closed_event.rbi +13 -1
  105. data/rbi/openai/models/beta/agent_session_subagent_created_event.rbi +13 -1
  106. data/rbi/openai/models/beta/agent_session_turn_cancelled_event.rbi +14 -1
  107. data/rbi/openai/models/beta/agent_session_turn_completed_event.rbi +14 -1
  108. data/rbi/openai/models/beta/agent_session_turn_content_part_added_event.rbi +14 -1
  109. data/rbi/openai/models/beta/agent_session_turn_content_part_done_event.rbi +14 -1
  110. data/rbi/openai/models/beta/agent_session_turn_created_event.rbi +14 -1
  111. data/rbi/openai/models/beta/agent_session_turn_failed_event.rbi +14 -1
  112. data/rbi/openai/models/beta/agent_session_turn_in_progress_event.rbi +14 -1
  113. data/rbi/openai/models/beta/agent_session_turn_item_added_event.rbi +14 -1
  114. data/rbi/openai/models/beta/agent_session_turn_item_done_event.rbi +14 -1
  115. data/rbi/openai/models/beta/agent_session_turn_output_text_delta_event.rbi +14 -1
  116. data/rbi/openai/models/beta/agent_session_turn_output_text_done_event.rbi +14 -1
  117. data/rbi/openai/models/beta/agent_session_turn_reasoning_summary_part_added_event.rbi +14 -1
  118. data/rbi/openai/models/beta/agent_session_turn_reasoning_summary_part_done_event.rbi +14 -1
  119. data/rbi/openai/models/beta/agent_session_turn_reasoning_summary_text_delta_event.rbi +14 -1
  120. data/rbi/openai/models/beta/agent_session_turn_reasoning_summary_text_done_event.rbi +14 -1
  121. data/rbi/openai/models/beta/agents/session_create_params.rbi +138 -0
  122. data/rbi/openai/models/beta/agents/session_update_params.rbi +82 -0
  123. data/rbi/openai/models/beta/agents/sessions/event_create_params.rbi +3 -0
  124. data/rbi/openai/models/beta/agents/sessions/event_stream_params.rbi +15 -1
  125. data/rbi/openai/models/beta/agents/sessions/turn.rbi +74 -1
  126. data/rbi/openai/models/beta/beta_response.rbi +9 -3
  127. data/rbi/openai/models/beta/beta_response_tool_search_output_item_param.rbi +6 -3
  128. data/rbi/openai/models/beta/beta_responses_client_event.rbi +9 -3
  129. data/rbi/openai/models/beta/beta_tool.rbi +6 -3
  130. data/rbi/openai/models/beta/response_create_params.rbi +9 -3
  131. data/rbi/openai/models/beta/responses/input_token_count_params.rbi +27 -15
  132. data/rbi/openai/models/content_provenance_check_create_params.rbi +2 -0
  133. data/rbi/openai/models/image_edit_params.rbi +143 -4
  134. data/rbi/openai/models/image_generate_params.rbi +4 -4
  135. data/rbi/openai/models/images_response.rbi +9 -12
  136. data/rbi/openai/models/live/media_session_config.rbi +12 -0
  137. data/rbi/openai/models/live/session_accept_params.rbi +12 -0
  138. data/rbi/openai/models/responses/input_token_count_params.rbi +27 -15
  139. data/rbi/openai/models/responses/response.rbi +9 -3
  140. data/rbi/openai/models/responses/response_create_params.rbi +9 -3
  141. data/rbi/openai/models/responses/response_tool_search_output_item_param.rbi +6 -3
  142. data/rbi/openai/models/responses/responses_client_event.rbi +9 -3
  143. data/rbi/openai/models/responses/tool.rbi +6 -3
  144. data/rbi/openai/models/video_create_error.rbi +6 -4
  145. data/rbi/openai/models/webhooks/agent_session_action_required_webhook_event.rbi +4 -0
  146. data/rbi/openai/models/webhooks/live_transport_connected_webhook_event.rbi +135 -0
  147. data/rbi/openai/models/webhooks/unwrap_webhook_event.rbi +1 -0
  148. data/rbi/openai/resources/admin/organization/external_keys.rbi +2 -1
  149. data/rbi/openai/resources/beta/agents/sessions/events.rbi +9 -2
  150. data/rbi/openai/resources/beta/agents/sessions.rbi +21 -2
  151. data/rbi/openai/resources/beta/responses/input_tokens.rbi +9 -6
  152. data/rbi/openai/resources/beta/responses.rbi +6 -2
  153. data/rbi/openai/resources/content_provenance_checks.rbi +1 -0
  154. data/rbi/openai/resources/images.rbi +18 -4
  155. data/rbi/openai/resources/responses/input_tokens.rbi +9 -5
  156. data/rbi/openai/resources/responses.rbi +6 -2
  157. data/rbi/openai/resources/webhooks.rbi +1 -0
  158. data/sig/openai/models/admin/organization/audit_log_list_response.rbs +18 -3
  159. data/sig/openai/models/admin/organization/external_key.rbs +28 -0
  160. data/sig/openai/models/admin/organization/external_key_create_params.rbs +108 -0
  161. data/sig/openai/models/beta/agent_output_command_execution_output_delta_event.rbs +13 -2
  162. data/sig/openai/models/beta/agent_session.rbs +126 -1
  163. data/sig/openai/models/beta/agent_session_created_event.rbs +13 -2
  164. data/sig/openai/models/beta/agent_session_environment_connected_event.rbs +13 -2
  165. data/sig/openai/models/beta/agent_session_environment_disconnected_event.rbs +13 -2
  166. data/sig/openai/models/beta/agent_session_environment_expired_event.rbs +13 -2
  167. data/sig/openai/models/beta/agent_session_environment_failed_event.rbs +13 -2
  168. data/sig/openai/models/beta/agent_session_environment_pending_event.rbs +13 -2
  169. data/sig/openai/models/beta/agent_session_environment_ready_event.rbs +13 -2
  170. data/sig/openai/models/beta/agent_session_environment_reset_event.rbs +13 -2
  171. data/sig/openai/models/beta/agent_session_environment_suspended_event.rbs +13 -2
  172. data/sig/openai/models/beta/agent_session_error_event.rbs +13 -2
  173. data/sig/openai/models/beta/agent_session_failed_event.rbs +13 -2
  174. data/sig/openai/models/beta/agent_session_idle_event.rbs +13 -2
  175. data/sig/openai/models/beta/agent_session_in_progress_event.rbs +13 -2
  176. data/sig/openai/models/beta/agent_session_input_param.rbs +80 -1
  177. data/sig/openai/models/beta/agent_session_requires_action_event.rbs +13 -2
  178. data/sig/openai/models/beta/agent_session_subagent_active_event.rbs +13 -2
  179. data/sig/openai/models/beta/agent_session_subagent_closed_event.rbs +13 -2
  180. data/sig/openai/models/beta/agent_session_subagent_created_event.rbs +13 -2
  181. data/sig/openai/models/beta/agent_session_turn_cancelled_event.rbs +13 -2
  182. data/sig/openai/models/beta/agent_session_turn_completed_event.rbs +13 -2
  183. data/sig/openai/models/beta/agent_session_turn_content_part_added_event.rbs +13 -2
  184. data/sig/openai/models/beta/agent_session_turn_content_part_done_event.rbs +13 -2
  185. data/sig/openai/models/beta/agent_session_turn_created_event.rbs +13 -2
  186. data/sig/openai/models/beta/agent_session_turn_failed_event.rbs +13 -2
  187. data/sig/openai/models/beta/agent_session_turn_in_progress_event.rbs +13 -2
  188. data/sig/openai/models/beta/agent_session_turn_item_added_event.rbs +13 -2
  189. data/sig/openai/models/beta/agent_session_turn_item_done_event.rbs +13 -2
  190. data/sig/openai/models/beta/agent_session_turn_output_text_delta_event.rbs +13 -2
  191. data/sig/openai/models/beta/agent_session_turn_output_text_done_event.rbs +13 -2
  192. data/sig/openai/models/beta/agent_session_turn_reasoning_summary_part_added_event.rbs +13 -2
  193. data/sig/openai/models/beta/agent_session_turn_reasoning_summary_part_done_event.rbs +13 -2
  194. data/sig/openai/models/beta/agent_session_turn_reasoning_summary_text_delta_event.rbs +13 -2
  195. data/sig/openai/models/beta/agent_session_turn_reasoning_summary_text_done_event.rbs +13 -2
  196. data/sig/openai/models/beta/agents/session_create_params.rbs +78 -0
  197. data/sig/openai/models/beta/agents/session_update_params.rbs +46 -0
  198. data/sig/openai/models/beta/agents/sessions/event_stream_params.rbs +18 -1
  199. data/sig/openai/models/beta/agents/sessions/turn.rbs +40 -2
  200. data/sig/openai/models/beta/beta_response.rbs +6 -2
  201. data/sig/openai/models/beta/beta_response_tool_search_output_item_param.rbs +6 -3
  202. data/sig/openai/models/beta/beta_responses_client_event.rbs +6 -2
  203. data/sig/openai/models/beta/beta_tool.rbs +6 -3
  204. data/sig/openai/models/beta/response_create_params.rbs +6 -2
  205. data/sig/openai/models/beta/responses/input_token_count_params.rbs +27 -15
  206. data/sig/openai/models/content_provenance_check_create_params.rbs +2 -0
  207. data/sig/openai/models/image_edit_params.rbs +87 -4
  208. data/sig/openai/models/image_generate_params.rbs +4 -4
  209. data/sig/openai/models/images_response.rbs +9 -12
  210. data/sig/openai/models/live/media_session_config.rbs +10 -0
  211. data/sig/openai/models/live/session_accept_params.rbs +10 -0
  212. data/sig/openai/models/responses/input_token_count_params.rbs +27 -15
  213. data/sig/openai/models/responses/response.rbs +6 -2
  214. data/sig/openai/models/responses/response_create_params.rbs +6 -2
  215. data/sig/openai/models/responses/response_tool_search_output_item_param.rbs +6 -3
  216. data/sig/openai/models/responses/responses_client_event.rbs +6 -2
  217. data/sig/openai/models/responses/tool.rbs +6 -3
  218. data/sig/openai/models/video_create_error.rbs +9 -6
  219. data/sig/openai/models/webhooks/agent_session_action_required_webhook_event.rbs +2 -0
  220. data/sig/openai/models/webhooks/live_transport_connected_webhook_event.rbs +66 -0
  221. data/sig/openai/models/webhooks/unwrap_webhook_event.rbs +1 -0
  222. data/sig/openai/resources/admin/organization/external_keys.rbs +9 -0
  223. data/sig/openai/resources/beta/agents/sessions/events.rbs +1 -0
  224. data/sig/openai/resources/beta/agents/sessions.rbs +5 -0
  225. data/sig/openai/resources/images.rbs +2 -0
  226. data/sig/openai/resources/webhooks.rbs +1 -0
  227. metadata +4 -1
@@ -59,6 +59,19 @@ module OpenAI
59
59
  sig { returns(T.nilable(T::Hash[Symbol, String])) }
60
60
  attr_accessor :metadata
61
61
 
62
+ # Default prompt cache lifetime for turns in this session. Omit to use the model
63
+ # default.
64
+ sig { returns(T.nilable(OpenAI::Beta::Agents::SessionCreateParams::PromptCacheOptions)) }
65
+ attr_reader :prompt_cache_options
66
+
67
+ sig {
68
+ params(
69
+ prompt_cache_options: T.nilable(OpenAI::Beta::Agents::SessionCreateParams::PromptCacheOptions::OrHash)
70
+ )
71
+ .void
72
+ }
73
+ attr_writer :prompt_cache_options
74
+
62
75
  # Action review mode. Omit to use none.
63
76
  sig { returns(T.nilable(OpenAI::Beta::Agents::SessionCreateParams::Review::OrSymbol)) }
64
77
  attr_reader :review
@@ -76,6 +89,13 @@ module OpenAI
76
89
  }
77
90
  attr_writer :spend_control
78
91
 
92
+ # Options for the event stream. Only allowed when `stream` is `true`.
93
+ sig { returns(T.nilable(OpenAI::Beta::Agents::SessionCreateParams::StreamOptions)) }
94
+ attr_reader :stream_options
95
+
96
+ sig { params(stream_options: OpenAI::Beta::Agents::SessionCreateParams::StreamOptions::OrHash).void }
97
+ attr_writer :stream_options
98
+
79
99
  # The IDs of vaults made available to the session.
80
100
  sig { returns(T.nilable(T::Array[String])) }
81
101
  attr_accessor :vault_ids
@@ -97,10 +117,14 @@ module OpenAI
97
117
 
98
118
  metadata: T.nilable(T::Hash[Symbol, String]),
99
119
 
120
+ prompt_cache_options: T.nilable(OpenAI::Beta::Agents::SessionCreateParams::PromptCacheOptions::OrHash),
121
+
100
122
  review: OpenAI::Beta::Agents::SessionCreateParams::Review::OrSymbol,
101
123
 
102
124
  spend_control: T.nilable(OpenAI::Beta::Agents::SessionCreateParams::SpendControl::OrHash),
103
125
 
126
+ stream_options: OpenAI::Beta::Agents::SessionCreateParams::StreamOptions::OrHash,
127
+
104
128
  vault_ids: T.nilable(T::Array[String]),
105
129
 
106
130
  request_options: OpenAI::RequestOptions::OrHash
@@ -130,6 +154,10 @@ module OpenAI
130
154
  # characters. Omission or null defaults to an empty map.
131
155
  metadata: nil,
132
156
 
157
+ # Default prompt cache lifetime for turns in this session. Omit to use the model
158
+ # default.
159
+ prompt_cache_options: nil,
160
+
133
161
  # Action review mode. Omit to use none.
134
162
  review: nil,
135
163
 
@@ -137,6 +165,9 @@ module OpenAI
137
165
  # session.
138
166
  spend_control: nil,
139
167
 
168
+ # Options for the event stream. Only allowed when `stream` is `true`.
169
+ stream_options: nil,
170
+
140
171
  # The IDs of vaults made available to the session.
141
172
  vault_ids: nil,
142
173
 
@@ -156,8 +187,10 @@ module OpenAI
156
187
  agent_id: String,
157
188
  input: T.nilable(OpenAI::Beta::Agents::SessionCreateParams::Input::Variants),
158
189
  metadata: T.nilable(T::Hash[Symbol, String]),
190
+ prompt_cache_options: T.nilable(OpenAI::Beta::Agents::SessionCreateParams::PromptCacheOptions),
159
191
  review: OpenAI::Beta::Agents::SessionCreateParams::Review::OrSymbol,
160
192
  spend_control: T.nilable(OpenAI::Beta::Agents::SessionCreateParams::SpendControl),
193
+ stream_options: OpenAI::Beta::Agents::SessionCreateParams::StreamOptions,
161
194
  vault_ids: T.nilable(T::Array[String]),
162
195
  request_options: OpenAI::RequestOptions
163
196
  }
@@ -502,6 +535,68 @@ module OpenAI
502
535
 
503
536
  end
504
537
 
538
+ class PromptCacheOptions < OpenAI::Internal::Type::BaseModel
539
+ OrHash = T.type_alias do
540
+ T.any(
541
+ OpenAI::Beta::Agents::SessionCreateParams::PromptCacheOptions,
542
+ OpenAI::Internal::AnyHash
543
+ )
544
+ end
545
+
546
+ # Minimum lifetime for new prompt cache entries. Defaults to 30 minutes.
547
+ sig { returns(T.nilable(OpenAI::Beta::Agents::SessionCreateParams::PromptCacheOptions::Ttl::OrSymbol)) }
548
+ attr_reader :ttl
549
+
550
+ sig { params(ttl: OpenAI::Beta::Agents::SessionCreateParams::PromptCacheOptions::Ttl::OrSymbol).void }
551
+ attr_writer :ttl
552
+
553
+ # Default prompt cache lifetime for turns in this session. Omit to use the model
554
+ # default.
555
+ sig do
556
+ params(
557
+
558
+ ttl: OpenAI::Beta::Agents::SessionCreateParams::PromptCacheOptions::Ttl::OrSymbol
559
+ )
560
+ .returns(T.attached_class)
561
+ end
562
+ def self.new(
563
+
564
+ # Minimum lifetime for new prompt cache entries. Defaults to 30 minutes.
565
+
566
+ ttl: nil
567
+ )
568
+ end
569
+
570
+ sig do
571
+ override.returns(
572
+ {ttl: OpenAI::Beta::Agents::SessionCreateParams::PromptCacheOptions::Ttl::OrSymbol}
573
+ )
574
+ end
575
+ def to_hash
576
+ end
577
+
578
+ # Minimum lifetime for new prompt cache entries. Defaults to 30 minutes.
579
+ module Ttl
580
+ extend OpenAI::Internal::Type::Enum
581
+
582
+ TaggedSymbol = T.type_alias {
583
+ T.all(Symbol, OpenAI::Beta::Agents::SessionCreateParams::PromptCacheOptions::Ttl)
584
+ }
585
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
586
+
587
+ TTL_30M = T.let(:"30m", OpenAI::Beta::Agents::SessionCreateParams::PromptCacheOptions::Ttl::TaggedSymbol)
588
+ TTL_12H = T.let(:"12h", OpenAI::Beta::Agents::SessionCreateParams::PromptCacheOptions::Ttl::TaggedSymbol)
589
+
590
+ sig {
591
+ override.returns(
592
+ T::Array[OpenAI::Beta::Agents::SessionCreateParams::PromptCacheOptions::Ttl::TaggedSymbol]
593
+ )
594
+ }
595
+ def self.values
596
+ end
597
+ end
598
+ end
599
+
505
600
  # Action review mode. Omit to use none.
506
601
  module Review
507
602
  extend OpenAI::Internal::Type::Enum
@@ -559,6 +654,49 @@ module OpenAI
559
654
 
560
655
  end
561
656
 
657
+ class StreamOptions < OpenAI::Internal::Type::BaseModel
658
+ OrHash = T.type_alias do
659
+ T.any(
660
+ OpenAI::Beta::Agents::SessionCreateParams::StreamOptions,
661
+ OpenAI::Internal::AnyHash
662
+ )
663
+ end
664
+
665
+ # Whether to include obfuscation padding in events on this connection. Defaults to
666
+ # `true`.
667
+ sig { returns(T.nilable(T::Boolean)) }
668
+ attr_reader :include_obfuscation
669
+
670
+ sig { params(include_obfuscation: T::Boolean).void }
671
+ attr_writer :include_obfuscation
672
+
673
+ # Options for the event stream. Only allowed when `stream` is `true`.
674
+ sig do
675
+ params(
676
+
677
+ include_obfuscation: T::Boolean
678
+ )
679
+ .returns(T.attached_class)
680
+ end
681
+ def self.new(
682
+
683
+ # Whether to include obfuscation padding in events on this connection. Defaults to
684
+ # `true`.
685
+
686
+ include_obfuscation: nil
687
+ )
688
+ end
689
+
690
+ sig do
691
+ override.returns(
692
+ {include_obfuscation: T::Boolean}
693
+ )
694
+ end
695
+ def to_hash
696
+ end
697
+
698
+ end
699
+
562
700
  end
563
701
 
564
702
  end
@@ -35,6 +35,19 @@ module OpenAI
35
35
  sig { returns(T.nilable(T::Hash[Symbol, String])) }
36
36
  attr_accessor :metadata
37
37
 
38
+ # Default prompt cache lifetime for future turns. Send null to clear the session
39
+ # default.
40
+ sig { returns(T.nilable(OpenAI::Beta::Agents::SessionUpdateParams::PromptCacheOptions)) }
41
+ attr_reader :prompt_cache_options
42
+
43
+ sig {
44
+ params(
45
+ prompt_cache_options: T.nilable(OpenAI::Beta::Agents::SessionUpdateParams::PromptCacheOptions::OrHash)
46
+ )
47
+ .void
48
+ }
49
+ attr_writer :prompt_cache_options
50
+
38
51
  # Default action review for new root turns. Existing turns and their subagents
39
52
  # keep their review mode.
40
53
  sig { returns(T.nilable(OpenAI::Beta::Agents::SessionUpdateParams::Review::OrSymbol)) }
@@ -62,6 +75,8 @@ module OpenAI
62
75
 
63
76
  metadata: T.nilable(T::Hash[Symbol, String]),
64
77
 
78
+ prompt_cache_options: T.nilable(OpenAI::Beta::Agents::SessionUpdateParams::PromptCacheOptions::OrHash),
79
+
65
80
  review: OpenAI::Beta::Agents::SessionUpdateParams::Review::OrSymbol,
66
81
 
67
82
  spend_control: T.nilable(OpenAI::Beta::Agents::SessionUpdateParams::SpendControl::OrHash),
@@ -82,6 +97,10 @@ module OpenAI
82
97
  # characters.
83
98
  metadata: nil,
84
99
 
100
+ # Default prompt cache lifetime for future turns. Send null to clear the session
101
+ # default.
102
+ prompt_cache_options: nil,
103
+
85
104
  # Default action review for new root turns. Existing turns and their subagents
86
105
  # keep their review mode.
87
106
  review: nil,
@@ -100,6 +119,7 @@ module OpenAI
100
119
  session_id: String,
101
120
  agent: OpenAI::Beta::Agents::SessionUpdateParams::Agent,
102
121
  metadata: T.nilable(T::Hash[Symbol, String]),
122
+ prompt_cache_options: T.nilable(OpenAI::Beta::Agents::SessionUpdateParams::PromptCacheOptions),
103
123
  review: OpenAI::Beta::Agents::SessionUpdateParams::Review::OrSymbol,
104
124
  spend_control: T.nilable(OpenAI::Beta::Agents::SessionUpdateParams::SpendControl),
105
125
  request_options: OpenAI::RequestOptions
@@ -331,6 +351,68 @@ module OpenAI
331
351
  end
332
352
  end
333
353
 
354
+ class PromptCacheOptions < OpenAI::Internal::Type::BaseModel
355
+ OrHash = T.type_alias do
356
+ T.any(
357
+ OpenAI::Beta::Agents::SessionUpdateParams::PromptCacheOptions,
358
+ OpenAI::Internal::AnyHash
359
+ )
360
+ end
361
+
362
+ # Minimum lifetime for new prompt cache entries. Defaults to 30 minutes.
363
+ sig { returns(T.nilable(OpenAI::Beta::Agents::SessionUpdateParams::PromptCacheOptions::Ttl::OrSymbol)) }
364
+ attr_reader :ttl
365
+
366
+ sig { params(ttl: OpenAI::Beta::Agents::SessionUpdateParams::PromptCacheOptions::Ttl::OrSymbol).void }
367
+ attr_writer :ttl
368
+
369
+ # Default prompt cache lifetime for future turns. Send null to clear the session
370
+ # default.
371
+ sig do
372
+ params(
373
+
374
+ ttl: OpenAI::Beta::Agents::SessionUpdateParams::PromptCacheOptions::Ttl::OrSymbol
375
+ )
376
+ .returns(T.attached_class)
377
+ end
378
+ def self.new(
379
+
380
+ # Minimum lifetime for new prompt cache entries. Defaults to 30 minutes.
381
+
382
+ ttl: nil
383
+ )
384
+ end
385
+
386
+ sig do
387
+ override.returns(
388
+ {ttl: OpenAI::Beta::Agents::SessionUpdateParams::PromptCacheOptions::Ttl::OrSymbol}
389
+ )
390
+ end
391
+ def to_hash
392
+ end
393
+
394
+ # Minimum lifetime for new prompt cache entries. Defaults to 30 minutes.
395
+ module Ttl
396
+ extend OpenAI::Internal::Type::Enum
397
+
398
+ TaggedSymbol = T.type_alias {
399
+ T.all(Symbol, OpenAI::Beta::Agents::SessionUpdateParams::PromptCacheOptions::Ttl)
400
+ }
401
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
402
+
403
+ TTL_30M = T.let(:"30m", OpenAI::Beta::Agents::SessionUpdateParams::PromptCacheOptions::Ttl::TaggedSymbol)
404
+ TTL_12H = T.let(:"12h", OpenAI::Beta::Agents::SessionUpdateParams::PromptCacheOptions::Ttl::TaggedSymbol)
405
+
406
+ sig {
407
+ override.returns(
408
+ T::Array[OpenAI::Beta::Agents::SessionUpdateParams::PromptCacheOptions::Ttl::TaggedSymbol]
409
+ )
410
+ }
411
+ def self.values
412
+ end
413
+ end
414
+ end
415
+
334
416
  # Default action review for new root turns. Existing turns and their subagents
335
417
  # keep their review mode.
336
418
  module Review
@@ -29,6 +29,7 @@ module OpenAI
29
29
  returns(
30
30
  T::Array[
31
31
  T.any(
32
+ OpenAI::Beta::AgentSessionInputParam::AgentSessionInputMcpApprovalRequestResult,
32
33
  OpenAI::Beta::AgentSessionInputParam::AgentSessionInputComputerUseApprovalRequestResult,
33
34
  OpenAI::Beta::AgentSessionInputParam::AgentSessionInputMessage,
34
35
  OpenAI::Beta::AgentSessionInputParam::AgentSessionInputCancel,
@@ -52,6 +53,7 @@ module OpenAI
52
53
 
53
54
  events: T::Array[
54
55
  T.any(
56
+ OpenAI::Beta::AgentSessionInputParam::AgentSessionInputMcpApprovalRequestResult::OrHash,
55
57
  OpenAI::Beta::AgentSessionInputParam::AgentSessionInputComputerUseApprovalRequestResult::OrHash,
56
58
  OpenAI::Beta::AgentSessionInputParam::AgentSessionInputMessage::OrHash,
57
59
  OpenAI::Beta::AgentSessionInputParam::AgentSessionInputCancel::OrHash,
@@ -84,6 +86,7 @@ module OpenAI
84
86
  session_id: String,
85
87
  events: T::Array[
86
88
  T.any(
89
+ OpenAI::Beta::AgentSessionInputParam::AgentSessionInputMcpApprovalRequestResult,
87
90
  OpenAI::Beta::AgentSessionInputParam::AgentSessionInputComputerUseApprovalRequestResult,
88
91
  OpenAI::Beta::AgentSessionInputParam::AgentSessionInputMessage,
89
92
  OpenAI::Beta::AgentSessionInputParam::AgentSessionInputCancel,
@@ -24,11 +24,21 @@ module OpenAI
24
24
  sig { returns(String) }
25
25
  attr_accessor :session_id
26
26
 
27
+ # Whether to include obfuscation padding in events on this connection. Defaults to
28
+ # `true`.
29
+ sig { returns(T.nilable(T::Boolean)) }
30
+ attr_reader :include_obfuscation
31
+
32
+ sig { params(include_obfuscation: T::Boolean).void }
33
+ attr_writer :include_obfuscation
34
+
27
35
  sig do
28
36
  params(
29
37
 
30
38
  session_id: String,
31
39
 
40
+ include_obfuscation: T::Boolean,
41
+
32
42
  request_options: OpenAI::RequestOptions::OrHash
33
43
  )
34
44
  .returns(T.attached_class)
@@ -37,13 +47,17 @@ module OpenAI
37
47
 
38
48
  session_id:,
39
49
 
50
+ # Whether to include obfuscation padding in events on this connection. Defaults to
51
+ # `true`.
52
+ include_obfuscation: nil,
53
+
40
54
  request_options: {}
41
55
  )
42
56
  end
43
57
 
44
58
  sig do
45
59
  override.returns(
46
- {session_id: String, request_options: OpenAI::RequestOptions}
60
+ {session_id: String, include_obfuscation: T::Boolean, request_options: OpenAI::RequestOptions}
47
61
  )
48
62
  end
49
63
  def to_hash
@@ -71,6 +71,17 @@ module OpenAI
71
71
  sig { params(usage: T.nilable(OpenAI::Beta::TokenUsage::OrHash)).void }
72
72
  attr_writer :usage
73
73
 
74
+ # Prompt cache lifetime selected when this turn started, including an inherited
75
+ # session TTL. Null when the turn used the model default or no TTL was recorded.
76
+ sig { returns(T.nilable(OpenAI::Beta::Agents::Sessions::Turn::PromptCacheOptions)) }
77
+ attr_reader :prompt_cache_options
78
+
79
+ sig {
80
+ params(prompt_cache_options: T.nilable(OpenAI::Beta::Agents::Sessions::Turn::PromptCacheOptions::OrHash))
81
+ .void
82
+ }
83
+ attr_writer :prompt_cache_options
84
+
74
85
  # The canonical public representation of a session turn.
75
86
  sig do
76
87
  params(
@@ -95,6 +106,8 @@ module OpenAI
95
106
 
96
107
  usage: T.nilable(OpenAI::Beta::TokenUsage::OrHash),
97
108
 
109
+ prompt_cache_options: T.nilable(OpenAI::Beta::Agents::Sessions::Turn::PromptCacheOptions::OrHash),
110
+
98
111
  object: Symbol
99
112
  )
100
113
  .returns(T.attached_class)
@@ -134,6 +147,10 @@ module OpenAI
134
147
  # change.
135
148
  usage:,
136
149
 
150
+ # Prompt cache lifetime selected when this turn started, including an inherited
151
+ # session TTL. Null when the turn used the model default or no TTL was recorded.
152
+ prompt_cache_options: nil,
153
+
137
154
  # The object type. Always `agent.session.turn`.
138
155
 
139
156
  object: :"agent.session.turn"
@@ -153,7 +170,8 @@ module OpenAI
153
170
  started_at: T.nilable(Integer),
154
171
  status: OpenAI::Beta::Agents::Sessions::Turn::Status::TaggedSymbol,
155
172
  subagent_id: T.nilable(String),
156
- usage: T.nilable(OpenAI::Beta::TokenUsage)
173
+ usage: T.nilable(OpenAI::Beta::TokenUsage),
174
+ prompt_cache_options: T.nilable(OpenAI::Beta::Agents::Sessions::Turn::PromptCacheOptions)
157
175
  }
158
176
  )
159
177
  end
@@ -190,6 +208,61 @@ module OpenAI
190
208
  end
191
209
  end
192
210
 
211
+ class PromptCacheOptions < OpenAI::Internal::Type::BaseModel
212
+ OrHash = T.type_alias do
213
+ T.any(
214
+ OpenAI::Beta::Agents::Sessions::Turn::PromptCacheOptions,
215
+ OpenAI::Internal::AnyHash
216
+ )
217
+ end
218
+
219
+ sig { returns(OpenAI::Beta::Agents::Sessions::Turn::PromptCacheOptions::Ttl::TaggedSymbol) }
220
+ attr_accessor :ttl
221
+
222
+ # Prompt cache lifetime selected when this turn started, including an inherited
223
+ # session TTL. Null when the turn used the model default or no TTL was recorded.
224
+ sig do
225
+ params(
226
+
227
+ ttl: OpenAI::Beta::Agents::Sessions::Turn::PromptCacheOptions::Ttl::OrSymbol
228
+ )
229
+ .returns(T.attached_class)
230
+ end
231
+ def self.new(
232
+
233
+ ttl:
234
+ )
235
+ end
236
+
237
+ sig do
238
+ override.returns(
239
+ {ttl: OpenAI::Beta::Agents::Sessions::Turn::PromptCacheOptions::Ttl::TaggedSymbol}
240
+ )
241
+ end
242
+ def to_hash
243
+ end
244
+
245
+ module Ttl
246
+ extend OpenAI::Internal::Type::Enum
247
+
248
+ TaggedSymbol = T.type_alias {
249
+ T.all(Symbol, OpenAI::Beta::Agents::Sessions::Turn::PromptCacheOptions::Ttl)
250
+ }
251
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
252
+
253
+ TTL_30M = T.let(:"30m", OpenAI::Beta::Agents::Sessions::Turn::PromptCacheOptions::Ttl::TaggedSymbol)
254
+ TTL_12H = T.let(:"12h", OpenAI::Beta::Agents::Sessions::Turn::PromptCacheOptions::Ttl::TaggedSymbol)
255
+
256
+ sig {
257
+ override.returns(
258
+ T::Array[OpenAI::Beta::Agents::Sessions::Turn::PromptCacheOptions::Ttl::TaggedSymbol]
259
+ )
260
+ }
261
+ def self.values
262
+ end
263
+ end
264
+ end
265
+
193
266
  end
194
267
 
195
268
  end
@@ -342,7 +342,9 @@ module OpenAI
342
342
  #
343
343
  # - `auto`: If the input to this Response exceeds the model's context window size,
344
344
  # the model will truncate the response to fit the context window by dropping
345
- # items from the beginning of the conversation.
345
+ # items from the beginning of the conversation. On some models, trimming can
346
+ # begin earlier because the API subtracts the model's maximum output allowance
347
+ # from its input limit, even if you set a lower `max_output_tokens`.
346
348
  # - `disabled` (default): If the input size will exceed the context window size
347
349
  # for a model, the request will fail with a 400 error.
348
350
  sig { returns(T.nilable(OpenAI::Beta::BetaResponse::Truncation::TaggedSymbol)) }
@@ -755,7 +757,9 @@ module OpenAI
755
757
  #
756
758
  # - `auto`: If the input to this Response exceeds the model's context window size,
757
759
  # the model will truncate the response to fit the context window by dropping
758
- # items from the beginning of the conversation.
760
+ # items from the beginning of the conversation. On some models, trimming can
761
+ # begin earlier because the API subtracts the model's maximum output allowance
762
+ # from its input limit, even if you set a lower `max_output_tokens`.
759
763
  # - `disabled` (default): If the input size will exceed the context window size
760
764
  # for a model, the request will fail with a 400 error.
761
765
  truncation: nil,
@@ -2875,7 +2879,9 @@ module OpenAI
2875
2879
  #
2876
2880
  # - `auto`: If the input to this Response exceeds the model's context window size,
2877
2881
  # the model will truncate the response to fit the context window by dropping
2878
- # items from the beginning of the conversation.
2882
+ # items from the beginning of the conversation. On some models, trimming can
2883
+ # begin earlier because the API subtracts the model's maximum output allowance
2884
+ # from its input limit, even if you set a lower `max_output_tokens`.
2879
2885
  # - `disabled` (default): If the input size will exceed the context window size
2880
2886
  # for a model, the request will fail with a 400 error.
2881
2887
  module Truncation
@@ -1377,7 +1377,8 @@ module OpenAI
1377
1377
  # `gpt-image-2`, `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
1378
1378
  # `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`,
1379
1379
  # `gpt-image-2.5-flare-2026-09-08`, `gpt-image-2.6-sunburst`,
1380
- # `gpt-image-2.6-flare`, or `chatgpt-image-latest`. Default: `gpt-image-2`.
1380
+ # `gpt-image-2.6-flare`, or `chatgpt-image-latest`. Default:
1381
+ # `gpt-image-2.6-sunburst`.
1381
1382
  #
1382
1383
  # `gpt-image-1` was shut down on October 23, 2026. Use `gpt-image-2.5-sunburst` or
1383
1384
  # `gpt-image-2.5-flare` instead.
@@ -1614,7 +1615,8 @@ module OpenAI
1614
1615
  # `gpt-image-2`, `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
1615
1616
  # `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`,
1616
1617
  # `gpt-image-2.5-flare-2026-09-08`, `gpt-image-2.6-sunburst`,
1617
- # `gpt-image-2.6-flare`, or `chatgpt-image-latest`. Default: `gpt-image-2`.
1618
+ # `gpt-image-2.6-flare`, or `chatgpt-image-latest`. Default:
1619
+ # `gpt-image-2.6-sunburst`.
1618
1620
  #
1619
1621
  # `gpt-image-1` was shut down on October 23, 2026. Use `gpt-image-2.5-sunburst` or
1620
1622
  # `gpt-image-2.5-flare` instead.
@@ -1902,7 +1904,8 @@ module OpenAI
1902
1904
  # `gpt-image-2`, `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
1903
1905
  # `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`,
1904
1906
  # `gpt-image-2.5-flare-2026-09-08`, `gpt-image-2.6-sunburst`,
1905
- # `gpt-image-2.6-flare`, or `chatgpt-image-latest`. Default: `gpt-image-2`.
1907
+ # `gpt-image-2.6-flare`, or `chatgpt-image-latest`. Default:
1908
+ # `gpt-image-2.6-sunburst`.
1906
1909
  #
1907
1910
  # `gpt-image-1` was shut down on October 23, 2026. Use `gpt-image-2.5-sunburst` or
1908
1911
  # `gpt-image-2.5-flare` instead.
@@ -480,7 +480,9 @@ module OpenAI
480
480
  #
481
481
  # - `auto`: If the input to this Response exceeds the model's context window size,
482
482
  # the model will truncate the response to fit the context window by dropping
483
- # items from the beginning of the conversation.
483
+ # items from the beginning of the conversation. On some models, trimming can
484
+ # begin earlier because the API subtracts the model's maximum output allowance
485
+ # from its input limit, even if you set a lower `max_output_tokens`.
484
486
  # - `disabled` (default): If the input size will exceed the context window size
485
487
  # for a model, the request will fail with a 400 error.
486
488
  sig { returns(T.nilable(OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::Truncation::OrSymbol)) }
@@ -882,7 +884,9 @@ module OpenAI
882
884
  #
883
885
  # - `auto`: If the input to this Response exceeds the model's context window size,
884
886
  # the model will truncate the response to fit the context window by dropping
885
- # items from the beginning of the conversation.
887
+ # items from the beginning of the conversation. On some models, trimming can
888
+ # begin earlier because the API subtracts the model's maximum output allowance
889
+ # from its input limit, even if you set a lower `max_output_tokens`.
886
890
  # - `disabled` (default): If the input size will exceed the context window size
887
891
  # for a model, the request will fail with a 400 error.
888
892
  truncation: nil,
@@ -2778,7 +2782,9 @@ module OpenAI
2778
2782
  #
2779
2783
  # - `auto`: If the input to this Response exceeds the model's context window size,
2780
2784
  # the model will truncate the response to fit the context window by dropping
2781
- # items from the beginning of the conversation.
2785
+ # items from the beginning of the conversation. On some models, trimming can
2786
+ # begin earlier because the API subtracts the model's maximum output allowance
2787
+ # from its input limit, even if you set a lower `max_output_tokens`.
2782
2788
  # - `disabled` (default): If the input size will exceed the context window size
2783
2789
  # for a model, the request will fail with a 400 error.
2784
2790
  module Truncation
@@ -1021,7 +1021,8 @@ module OpenAI
1021
1021
  # `gpt-image-2`, `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
1022
1022
  # `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`,
1023
1023
  # `gpt-image-2.5-flare-2026-09-08`, `gpt-image-2.6-sunburst`,
1024
- # `gpt-image-2.6-flare`, or `chatgpt-image-latest`. Default: `gpt-image-2`.
1024
+ # `gpt-image-2.6-flare`, or `chatgpt-image-latest`. Default:
1025
+ # `gpt-image-2.6-sunburst`.
1025
1026
  #
1026
1027
  # `gpt-image-1` was shut down on October 23, 2026. Use `gpt-image-2.5-sunburst` or
1027
1028
  # `gpt-image-2.5-flare` instead.
@@ -1183,7 +1184,8 @@ module OpenAI
1183
1184
  # `gpt-image-2`, `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
1184
1185
  # `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`,
1185
1186
  # `gpt-image-2.5-flare-2026-09-08`, `gpt-image-2.6-sunburst`,
1186
- # `gpt-image-2.6-flare`, or `chatgpt-image-latest`. Default: `gpt-image-2`.
1187
+ # `gpt-image-2.6-flare`, or `chatgpt-image-latest`. Default:
1188
+ # `gpt-image-2.6-sunburst`.
1187
1189
  #
1188
1190
  # `gpt-image-1` was shut down on October 23, 2026. Use `gpt-image-2.5-sunburst` or
1189
1191
  # `gpt-image-2.5-flare` instead.
@@ -1398,7 +1400,8 @@ module OpenAI
1398
1400
  # `gpt-image-2`, `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
1399
1401
  # `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`,
1400
1402
  # `gpt-image-2.5-flare-2026-09-08`, `gpt-image-2.6-sunburst`,
1401
- # `gpt-image-2.6-flare`, or `chatgpt-image-latest`. Default: `gpt-image-2`.
1403
+ # `gpt-image-2.6-flare`, or `chatgpt-image-latest`. Default:
1404
+ # `gpt-image-2.6-sunburst`.
1402
1405
  #
1403
1406
  # `gpt-image-1` was shut down on October 23, 2026. Use `gpt-image-2.5-sunburst` or
1404
1407
  # `gpt-image-2.5-flare` instead.
@@ -409,7 +409,9 @@ module OpenAI
409
409
  #
410
410
  # - `auto`: If the input to this Response exceeds the model's context window size,
411
411
  # the model will truncate the response to fit the context window by dropping
412
- # items from the beginning of the conversation.
412
+ # items from the beginning of the conversation. On some models, trimming can
413
+ # begin earlier because the API subtracts the model's maximum output allowance
414
+ # from its input limit, even if you set a lower `max_output_tokens`.
413
415
  # - `disabled` (default): If the input size will exceed the context window size
414
416
  # for a model, the request will fail with a 400 error.
415
417
  sig { returns(T.nilable(OpenAI::Beta::ResponseCreateParams::Truncation::OrSymbol)) }
@@ -780,7 +782,9 @@ module OpenAI
780
782
  #
781
783
  # - `auto`: If the input to this Response exceeds the model's context window size,
782
784
  # the model will truncate the response to fit the context window by dropping
783
- # items from the beginning of the conversation.
785
+ # items from the beginning of the conversation. On some models, trimming can
786
+ # begin earlier because the API subtracts the model's maximum output allowance
787
+ # from its input limit, even if you set a lower `max_output_tokens`.
784
788
  # - `disabled` (default): If the input size will exceed the context window size
785
789
  # for a model, the request will fail with a 400 error.
786
790
  truncation: nil,
@@ -2195,7 +2199,9 @@ module OpenAI
2195
2199
  #
2196
2200
  # - `auto`: If the input to this Response exceeds the model's context window size,
2197
2201
  # the model will truncate the response to fit the context window by dropping
2198
- # items from the beginning of the conversation.
2202
+ # items from the beginning of the conversation. On some models, trimming can
2203
+ # begin earlier because the API subtracts the model's maximum output allowance
2204
+ # from its input limit, even if you set a lower `max_output_tokens`.
2199
2205
  # - `disabled` (default): If the input size will exceed the context window size
2200
2206
  # for a model, the request will fail with a 400 error.
2201
2207
  module Truncation