openai 0.110.0 → 0.112.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 (255) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +20 -0
  3. data/README.md +1 -1
  4. data/lib/openai/models/beta/agent.rb +2 -2
  5. data/lib/openai/models/beta/agent_create_params.rb +2 -2
  6. data/lib/openai/models/beta/agent_session.rb +2 -2
  7. data/lib/openai/models/beta/agent_tool.rb +18 -1
  8. data/lib/openai/models/beta/agent_tool_param.rb +18 -1
  9. data/lib/openai/models/beta/agent_update_params.rb +2 -2
  10. data/lib/openai/models/beta/agents/session_create_params.rb +2 -2
  11. data/lib/openai/models/beta/beta_response_input_file.rb +23 -1
  12. data/lib/openai/models/beta/beta_response_input_file_content.rb +23 -1
  13. data/lib/openai/models/beta/beta_response_input_image.rb +23 -1
  14. data/lib/openai/models/beta/beta_response_input_image_content.rb +23 -1
  15. data/lib/openai/models/beta/beta_response_input_text.rb +23 -1
  16. data/lib/openai/models/beta/beta_response_input_text_content.rb +23 -1
  17. data/lib/openai/models/beta/beta_response_item.rb +28 -1
  18. data/lib/openai/models/beta/beta_response_output_item.rb +28 -1
  19. data/lib/openai/models/beta/beta_response_tool_search_output_item_param.rb +26 -15
  20. data/lib/openai/models/beta/beta_tool.rb +26 -15
  21. data/lib/openai/models/beta/persisted_agent_tool.rb +18 -1
  22. data/lib/openai/models/beta/persisted_agent_tool_param.rb +18 -1
  23. data/lib/openai/models/chat/chat_completion_content_part.rb +23 -1
  24. data/lib/openai/models/chat/chat_completion_content_part_image.rb +23 -1
  25. data/lib/openai/models/chat/chat_completion_content_part_input_audio.rb +23 -1
  26. data/lib/openai/models/chat/chat_completion_content_part_text.rb +23 -1
  27. data/lib/openai/models/conversations/computer_screenshot_content.rb +23 -1
  28. data/lib/openai/models/decision_create_params.rb +802 -28
  29. data/lib/openai/models/decision_input_json.rb +45 -0
  30. data/lib/openai/models/decision_input_message.rb +304 -48
  31. data/lib/openai/models/decision_input_part.rb +4 -1
  32. data/lib/openai/models/decision_question_input_image.rb +54 -0
  33. data/lib/openai/models/decision_question_input_part.rb +23 -0
  34. data/lib/openai/models/decision_question_input_text.rb +21 -0
  35. data/lib/openai/models/image_edit_params.rb +20 -4
  36. data/lib/openai/models/image_generate_params.rb +23 -7
  37. data/lib/openai/models/image_model.rb +2 -0
  38. data/lib/openai/models/live/client_delegation.rb +20 -1
  39. data/lib/openai/models/live/client_event.rb +4 -4
  40. data/lib/openai/models/live/commentary_append_event.rb +1 -1
  41. data/lib/openai/models/live/decision_assistant_message.rb +154 -0
  42. data/lib/openai/models/live/decision_choice_option.rb +35 -0
  43. data/lib/openai/models/live/decision_developer_message.rb +70 -0
  44. data/lib/openai/models/live/decision_input_text.rb +26 -0
  45. data/lib/openai/models/live/decision_item_create_event.rb +490 -131
  46. data/lib/openai/models/live/decision_item_created_event.rb +486 -131
  47. data/lib/openai/models/live/decision_json_object.rb +10 -0
  48. data/lib/openai/models/live/decision_question.rb +172 -0
  49. data/lib/openai/models/live/decision_stored_assistant_message.rb +152 -0
  50. data/lib/openai/models/live/decision_stored_developer_message.rb +68 -0
  51. data/lib/openai/models/live/decision_stored_system_message.rb +68 -0
  52. data/lib/openai/models/live/decision_stored_user_message.rb +195 -0
  53. data/lib/openai/models/live/decision_system_message.rb +70 -0
  54. data/lib/openai/models/live/decision_trigger.rb +6 -185
  55. data/lib/openai/models/live/decision_user_message.rb +193 -0
  56. data/lib/openai/models/live/decisions_delegation_config.rb +5 -177
  57. data/lib/openai/models/live/decisions_delegation_update_config.rb +5 -184
  58. data/lib/openai/models/live/fork_client_event.rb +4 -4
  59. data/lib/openai/models/live/fork_server_event.rb +2 -2
  60. data/lib/openai/models/live/fork_session_config.rb +20 -1
  61. data/lib/openai/models/live/input_audio_muted_event.rb +3 -2
  62. data/lib/openai/models/live/input_audio_unmute_event.rb +2 -1
  63. data/lib/openai/models/live/input_audio_unmuted_event.rb +3 -2
  64. data/lib/openai/models/live/instructions_append_event.rb +5 -2
  65. data/lib/openai/models/live/media_session_config.rb +39 -2
  66. data/lib/openai/models/live/media_session_fork_config.rb +20 -1
  67. data/lib/openai/models/live/server_event.rb +2 -2
  68. data/lib/openai/models/live/session_accept_params.rb +39 -2
  69. data/lib/openai/models/live/session_config.rb +39 -2
  70. data/lib/openai/models/live/session_resource.rb +39 -2
  71. data/lib/openai/models/live/session_update_config.rb +41 -2
  72. data/lib/openai/models/live/sideband_client_event.rb +4 -4
  73. data/lib/openai/models/live/sideband_server_event.rb +2 -2
  74. data/lib/openai/models/live/thinking_append_event.rb +1 -1
  75. data/lib/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rb +10 -12
  76. data/lib/openai/models/realtime/realtime_error_event.rb +1 -1
  77. data/lib/openai/models/realtime/realtime_server_event.rb +1 -1
  78. data/lib/openai/models/realtime/realtime_translation_server_event.rb +1 -1
  79. data/lib/openai/models/responses/response_input_file.rb +23 -1
  80. data/lib/openai/models/responses/response_input_file_content.rb +23 -1
  81. data/lib/openai/models/responses/response_input_image.rb +23 -1
  82. data/lib/openai/models/responses/response_input_image_content.rb +23 -1
  83. data/lib/openai/models/responses/response_input_text.rb +23 -1
  84. data/lib/openai/models/responses/response_input_text_content.rb +23 -1
  85. data/lib/openai/models/responses/response_tool_search_output_item_param.rb +26 -15
  86. data/lib/openai/models/responses/tool.rb +26 -15
  87. data/lib/openai/models.rb +8 -0
  88. data/lib/openai/resources/beta/agents.rb +2 -2
  89. data/lib/openai/resources/beta/responses.rb +2 -2
  90. data/lib/openai/resources/decisions.rb +5 -6
  91. data/lib/openai/resources/images.rb +18 -6
  92. data/lib/openai/resources/live/forks.rb +2 -2
  93. data/lib/openai/resources/live/sideband.rb +2 -2
  94. data/lib/openai/resources/live.rb +2 -2
  95. data/lib/openai/resources/realtime/translations.rb +2 -2
  96. data/lib/openai/resources/realtime.rb +2 -2
  97. data/lib/openai/resources/responses.rb +2 -2
  98. data/lib/openai/version.rb +1 -1
  99. data/lib/openai.rb +16 -0
  100. data/rbi/openai/models/beta/agent.rbi +2 -1
  101. data/rbi/openai/models/beta/agent_create_params.rbi +6 -3
  102. data/rbi/openai/models/beta/agent_session.rbi +2 -1
  103. data/rbi/openai/models/beta/agent_tool.rbi +40 -1
  104. data/rbi/openai/models/beta/agent_tool_param.rbi +40 -1
  105. data/rbi/openai/models/beta/agent_update_params.rbi +6 -3
  106. data/rbi/openai/models/beta/agents/session_create_params.rbi +6 -3
  107. data/rbi/openai/models/beta/beta_response_input_file.rbi +31 -1
  108. data/rbi/openai/models/beta/beta_response_input_file_content.rbi +39 -1
  109. data/rbi/openai/models/beta/beta_response_input_image.rbi +31 -1
  110. data/rbi/openai/models/beta/beta_response_input_image_content.rbi +39 -1
  111. data/rbi/openai/models/beta/beta_response_input_text.rbi +31 -1
  112. data/rbi/openai/models/beta/beta_response_input_text_content.rbi +39 -1
  113. data/rbi/openai/models/beta/beta_response_item.rbi +58 -1
  114. data/rbi/openai/models/beta/beta_response_output_item.rbi +58 -1
  115. data/rbi/openai/models/beta/beta_response_tool_search_output_item_param.rbi +24 -15
  116. data/rbi/openai/models/beta/beta_tool.rbi +24 -15
  117. data/rbi/openai/models/beta/persisted_agent_tool.rbi +40 -1
  118. data/rbi/openai/models/beta/persisted_agent_tool_param.rbi +40 -1
  119. data/rbi/openai/models/chat/chat_completion_content_part.rbi +43 -1
  120. data/rbi/openai/models/chat/chat_completion_content_part_image.rbi +41 -1
  121. data/rbi/openai/models/chat/chat_completion_content_part_input_audio.rbi +46 -1
  122. data/rbi/openai/models/chat/chat_completion_content_part_text.rbi +39 -1
  123. data/rbi/openai/models/conversations/computer_screenshot_content.rbi +48 -1
  124. data/rbi/openai/models/decision_create_params.rbi +1273 -26
  125. data/rbi/openai/models/decision_input_json.rbi +75 -0
  126. data/rbi/openai/models/decision_input_message.rbi +455 -52
  127. data/rbi/openai/models/decision_input_part.rbi +2 -1
  128. data/rbi/openai/models/decision_question_input_image.rbi +82 -0
  129. data/rbi/openai/models/decision_question_input_part.rbi +25 -0
  130. data/rbi/openai/models/decision_question_input_text.rbi +49 -0
  131. data/rbi/openai/models/image_edit_params.rbi +12 -3
  132. data/rbi/openai/models/image_generate_params.rbi +15 -6
  133. data/rbi/openai/models/live/client_delegation.rbi +23 -1
  134. data/rbi/openai/models/live/commentary_append_event.rbi +1 -1
  135. data/rbi/openai/models/live/decision_assistant_message.rbi +247 -0
  136. data/rbi/openai/models/live/decision_choice_option.rbi +67 -0
  137. data/rbi/openai/models/live/decision_developer_message.rbi +109 -0
  138. data/rbi/openai/models/live/decision_input_text.rbi +55 -0
  139. data/rbi/openai/models/live/decision_item_create_event.rbi +765 -184
  140. data/rbi/openai/models/live/decision_item_created_event.rbi +737 -184
  141. data/rbi/openai/models/live/decision_json_object.rbi +16 -0
  142. data/rbi/openai/models/live/decision_question.rbi +300 -0
  143. data/rbi/openai/models/live/decision_stored_assistant_message.rbi +245 -0
  144. data/rbi/openai/models/live/decision_stored_developer_message.rbi +107 -0
  145. data/rbi/openai/models/live/decision_stored_system_message.rbi +107 -0
  146. data/rbi/openai/models/live/decision_stored_user_message.rbi +333 -0
  147. data/rbi/openai/models/live/decision_system_message.rbi +109 -0
  148. data/rbi/openai/models/live/decision_trigger.rbi +11 -320
  149. data/rbi/openai/models/live/decision_user_message.rbi +320 -0
  150. data/rbi/openai/models/live/decisions_delegation_config.rbi +10 -321
  151. data/rbi/openai/models/live/decisions_delegation_update_config.rbi +13 -324
  152. data/rbi/openai/models/live/fork_session_config.rbi +27 -1
  153. data/rbi/openai/models/live/input_audio_muted_event.rbi +3 -2
  154. data/rbi/openai/models/live/input_audio_unmute_event.rbi +2 -1
  155. data/rbi/openai/models/live/input_audio_unmuted_event.rbi +3 -2
  156. data/rbi/openai/models/live/instructions_append_event.rbi +5 -2
  157. data/rbi/openai/models/live/media_session_config.rbi +44 -2
  158. data/rbi/openai/models/live/media_session_fork_config.rbi +27 -1
  159. data/rbi/openai/models/live/session_accept_params.rbi +44 -2
  160. data/rbi/openai/models/live/session_config.rbi +44 -2
  161. data/rbi/openai/models/live/session_resource.rbi +44 -2
  162. data/rbi/openai/models/live/session_update_config.rbi +54 -2
  163. data/rbi/openai/models/live/thinking_append_event.rbi +1 -1
  164. data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rbi +10 -12
  165. data/rbi/openai/models/realtime/realtime_error_event.rbi +1 -1
  166. data/rbi/openai/models/responses/response_input_file.rbi +31 -1
  167. data/rbi/openai/models/responses/response_input_file_content.rbi +39 -1
  168. data/rbi/openai/models/responses/response_input_image.rbi +33 -1
  169. data/rbi/openai/models/responses/response_input_image_content.rbi +41 -1
  170. data/rbi/openai/models/responses/response_input_text.rbi +31 -1
  171. data/rbi/openai/models/responses/response_input_text_content.rbi +39 -1
  172. data/rbi/openai/models/responses/response_tool_search_output_item_param.rbi +24 -15
  173. data/rbi/openai/models/responses/tool.rbi +24 -15
  174. data/rbi/openai/models.rbi +8 -0
  175. data/rbi/openai/resources/beta/agents.rbi +4 -2
  176. data/rbi/openai/resources/beta/responses.rbi +8 -1
  177. data/rbi/openai/resources/decisions.rbi +4 -5
  178. data/rbi/openai/resources/images.rbi +18 -6
  179. data/rbi/openai/resources/live/forks.rbi +8 -1
  180. data/rbi/openai/resources/live/sideband.rbi +8 -1
  181. data/rbi/openai/resources/live.rbi +8 -1
  182. data/rbi/openai/resources/realtime/translations.rbi +8 -1
  183. data/rbi/openai/resources/realtime.rbi +8 -1
  184. data/rbi/openai/resources/responses.rbi +8 -1
  185. data/sig/openai/models/beta/agent_tool.rbs +14 -0
  186. data/sig/openai/models/beta/agent_tool_param.rbs +14 -0
  187. data/sig/openai/models/beta/beta_response_input_file.rbs +34 -3
  188. data/sig/openai/models/beta/beta_response_input_file_content.rbs +34 -3
  189. data/sig/openai/models/beta/beta_response_input_image.rbs +34 -3
  190. data/sig/openai/models/beta/beta_response_input_image_content.rbs +34 -3
  191. data/sig/openai/models/beta/beta_response_input_text.rbs +34 -3
  192. data/sig/openai/models/beta/beta_response_input_text_content.rbs +34 -3
  193. data/sig/openai/models/beta/beta_response_item.rbs +34 -3
  194. data/sig/openai/models/beta/beta_response_output_item.rbs +34 -3
  195. data/sig/openai/models/beta/beta_response_tool_search_output_item_param.rbs +24 -15
  196. data/sig/openai/models/beta/beta_tool.rbs +24 -15
  197. data/sig/openai/models/beta/persisted_agent_tool.rbs +14 -0
  198. data/sig/openai/models/beta/persisted_agent_tool_param.rbs +14 -0
  199. data/sig/openai/models/chat/chat_completion_content_part.rbs +34 -3
  200. data/sig/openai/models/chat/chat_completion_content_part_image.rbs +34 -3
  201. data/sig/openai/models/chat/chat_completion_content_part_input_audio.rbs +34 -3
  202. data/sig/openai/models/chat/chat_completion_content_part_text.rbs +34 -3
  203. data/sig/openai/models/conversations/computer_screenshot_content.rbs +34 -3
  204. data/sig/openai/models/decision_create_params.rbs +610 -24
  205. data/sig/openai/models/decision_input_json.rbs +34 -0
  206. data/sig/openai/models/decision_input_message.rbs +264 -35
  207. data/sig/openai/models/decision_input_part.rbs +3 -1
  208. data/sig/openai/models/decision_question_input_image.rbs +51 -0
  209. data/sig/openai/models/decision_question_input_part.rbs +14 -0
  210. data/sig/openai/models/decision_question_input_text.rbs +15 -0
  211. data/sig/openai/models/image_edit_params.rbs +8 -2
  212. data/sig/openai/models/image_generate_params.rbs +10 -4
  213. data/sig/openai/models/live/client_delegation.rbs +30 -3
  214. data/sig/openai/models/live/decision_assistant_message.rbs +134 -0
  215. data/sig/openai/models/live/decision_choice_option.rbs +37 -0
  216. data/sig/openai/models/live/decision_developer_message.rbs +67 -0
  217. data/sig/openai/models/live/decision_input_text.rbs +20 -0
  218. data/sig/openai/models/live/decision_item_create_event.rbs +413 -131
  219. data/sig/openai/models/live/decision_item_created_event.rbs +401 -131
  220. data/sig/openai/models/live/decision_json_object.rbs +9 -0
  221. data/sig/openai/models/live/decision_question.rbs +164 -0
  222. data/sig/openai/models/live/decision_stored_assistant_message.rbs +131 -0
  223. data/sig/openai/models/live/decision_stored_developer_message.rbs +64 -0
  224. data/sig/openai/models/live/decision_stored_system_message.rbs +64 -0
  225. data/sig/openai/models/live/decision_stored_user_message.rbs +177 -0
  226. data/sig/openai/models/live/decision_system_message.rbs +67 -0
  227. data/sig/openai/models/live/decision_trigger.rbs +8 -171
  228. data/sig/openai/models/live/decision_user_message.rbs +180 -0
  229. data/sig/openai/models/live/decisions_delegation_config.rbs +6 -167
  230. data/sig/openai/models/live/decisions_delegation_update_config.rbs +8 -169
  231. data/sig/openai/models/live/fork_session_config.rbs +26 -0
  232. data/sig/openai/models/live/media_session_config.rbs +53 -4
  233. data/sig/openai/models/live/media_session_fork_config.rbs +26 -0
  234. data/sig/openai/models/live/session_accept_params.rbs +53 -4
  235. data/sig/openai/models/live/session_config.rbs +53 -4
  236. data/sig/openai/models/live/session_resource.rbs +53 -4
  237. data/sig/openai/models/live/session_update_config.rbs +52 -0
  238. data/sig/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rbs +10 -12
  239. data/sig/openai/models/responses/response_input_file.rbs +34 -3
  240. data/sig/openai/models/responses/response_input_file_content.rbs +34 -3
  241. data/sig/openai/models/responses/response_input_image.rbs +34 -3
  242. data/sig/openai/models/responses/response_input_image_content.rbs +34 -3
  243. data/sig/openai/models/responses/response_input_text.rbs +34 -3
  244. data/sig/openai/models/responses/response_input_text_content.rbs +34 -3
  245. data/sig/openai/models/responses/response_tool_search_output_item_param.rbs +24 -15
  246. data/sig/openai/models/responses/tool.rbs +24 -15
  247. data/sig/openai/models.rbs +9 -1
  248. data/sig/openai/resources/beta/responses.rbs +2 -1
  249. data/sig/openai/resources/live/forks.rbs +2 -1
  250. data/sig/openai/resources/live/sideband.rbs +2 -1
  251. data/sig/openai/resources/live.rbs +2 -1
  252. data/sig/openai/resources/realtime/translations.rbs +2 -1
  253. data/sig/openai/resources/realtime.rbs +2 -1
  254. data/sig/openai/resources/responses.rbs +2 -1
  255. metadata +49 -1
@@ -137,18 +137,30 @@ module OpenAI
137
137
  sig { returns(Symbol) }
138
138
  attr_accessor :mode
139
139
 
140
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
141
+ sig { returns(T.nilable(OpenAI::Beta::BetaResponseInputImageContent::PromptCacheBreakpoint::Ttl::OrSymbol)) }
142
+ attr_reader :ttl
143
+
144
+ sig { params(ttl: OpenAI::Beta::BetaResponseInputImageContent::PromptCacheBreakpoint::Ttl::OrSymbol).void }
145
+ attr_writer :ttl
146
+
140
147
  # Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL
141
148
  # from the request's `prompt_cache_options.ttl`; the boundary is not rounded to a
142
149
  # token block.
143
150
  sig do
144
151
  params(
145
152
 
153
+ ttl: OpenAI::Beta::BetaResponseInputImageContent::PromptCacheBreakpoint::Ttl::OrSymbol,
154
+
146
155
  mode: Symbol
147
156
  )
148
157
  .returns(T.attached_class)
149
158
  end
150
159
  def self.new(
151
160
 
161
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
162
+ ttl: nil,
163
+
152
164
  # The breakpoint mode. Always `explicit`.
153
165
 
154
166
  mode: :explicit
@@ -157,12 +169,38 @@ module OpenAI
157
169
 
158
170
  sig do
159
171
  override.returns(
160
- {mode: Symbol}
172
+ {mode: Symbol, ttl: OpenAI::Beta::BetaResponseInputImageContent::PromptCacheBreakpoint::Ttl::OrSymbol}
161
173
  )
162
174
  end
163
175
  def to_hash
164
176
  end
165
177
 
178
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
179
+ module Ttl
180
+ extend OpenAI::Internal::Type::Enum
181
+
182
+ TaggedSymbol = T.type_alias {
183
+ T.all(Symbol, OpenAI::Beta::BetaResponseInputImageContent::PromptCacheBreakpoint::Ttl)
184
+ }
185
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
186
+
187
+ TTL_30M = T.let(
188
+ :"30m",
189
+ OpenAI::Beta::BetaResponseInputImageContent::PromptCacheBreakpoint::Ttl::TaggedSymbol
190
+ )
191
+ TTL_12H = T.let(
192
+ :"12h",
193
+ OpenAI::Beta::BetaResponseInputImageContent::PromptCacheBreakpoint::Ttl::TaggedSymbol
194
+ )
195
+
196
+ sig {
197
+ override.returns(
198
+ T::Array[OpenAI::Beta::BetaResponseInputImageContent::PromptCacheBreakpoint::Ttl::TaggedSymbol]
199
+ )
200
+ }
201
+ def self.values
202
+ end
203
+ end
166
204
  end
167
205
 
168
206
  end
@@ -87,18 +87,30 @@ module OpenAI
87
87
  sig { returns(Symbol) }
88
88
  attr_accessor :mode
89
89
 
90
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
91
+ sig { returns(T.nilable(OpenAI::Beta::BetaResponseInputText::PromptCacheBreakpoint::Ttl::OrSymbol)) }
92
+ attr_reader :ttl
93
+
94
+ sig { params(ttl: OpenAI::Beta::BetaResponseInputText::PromptCacheBreakpoint::Ttl::OrSymbol).void }
95
+ attr_writer :ttl
96
+
90
97
  # Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL
91
98
  # from the request's `prompt_cache_options.ttl`; the boundary is not rounded to a
92
99
  # token block.
93
100
  sig do
94
101
  params(
95
102
 
103
+ ttl: OpenAI::Beta::BetaResponseInputText::PromptCacheBreakpoint::Ttl::OrSymbol,
104
+
96
105
  mode: Symbol
97
106
  )
98
107
  .returns(T.attached_class)
99
108
  end
100
109
  def self.new(
101
110
 
111
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
112
+ ttl: nil,
113
+
102
114
  # The breakpoint mode. Always `explicit`.
103
115
 
104
116
  mode: :explicit
@@ -107,12 +119,30 @@ module OpenAI
107
119
 
108
120
  sig do
109
121
  override.returns(
110
- {mode: Symbol}
122
+ {mode: Symbol, ttl: OpenAI::Beta::BetaResponseInputText::PromptCacheBreakpoint::Ttl::OrSymbol}
111
123
  )
112
124
  end
113
125
  def to_hash
114
126
  end
115
127
 
128
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
129
+ module Ttl
130
+ extend OpenAI::Internal::Type::Enum
131
+
132
+ TaggedSymbol = T.type_alias {
133
+ T.all(Symbol, OpenAI::Beta::BetaResponseInputText::PromptCacheBreakpoint::Ttl)
134
+ }
135
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
136
+
137
+ TTL_30M = T.let(:"30m", OpenAI::Beta::BetaResponseInputText::PromptCacheBreakpoint::Ttl::TaggedSymbol)
138
+ TTL_12H = T.let(:"12h", OpenAI::Beta::BetaResponseInputText::PromptCacheBreakpoint::Ttl::TaggedSymbol)
139
+
140
+ sig {
141
+ override.returns(T::Array[OpenAI::Beta::BetaResponseInputText::PromptCacheBreakpoint::Ttl::TaggedSymbol])
142
+ }
143
+ def self.values
144
+ end
145
+ end
116
146
  end
117
147
 
118
148
  end
@@ -94,18 +94,30 @@ module OpenAI
94
94
  sig { returns(Symbol) }
95
95
  attr_accessor :mode
96
96
 
97
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
98
+ sig { returns(T.nilable(OpenAI::Beta::BetaResponseInputTextContent::PromptCacheBreakpoint::Ttl::OrSymbol)) }
99
+ attr_reader :ttl
100
+
101
+ sig { params(ttl: OpenAI::Beta::BetaResponseInputTextContent::PromptCacheBreakpoint::Ttl::OrSymbol).void }
102
+ attr_writer :ttl
103
+
97
104
  # Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL
98
105
  # from the request's `prompt_cache_options.ttl`; the boundary is not rounded to a
99
106
  # token block.
100
107
  sig do
101
108
  params(
102
109
 
110
+ ttl: OpenAI::Beta::BetaResponseInputTextContent::PromptCacheBreakpoint::Ttl::OrSymbol,
111
+
103
112
  mode: Symbol
104
113
  )
105
114
  .returns(T.attached_class)
106
115
  end
107
116
  def self.new(
108
117
 
118
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
119
+ ttl: nil,
120
+
109
121
  # The breakpoint mode. Always `explicit`.
110
122
 
111
123
  mode: :explicit
@@ -114,12 +126,38 @@ module OpenAI
114
126
 
115
127
  sig do
116
128
  override.returns(
117
- {mode: Symbol}
129
+ {mode: Symbol, ttl: OpenAI::Beta::BetaResponseInputTextContent::PromptCacheBreakpoint::Ttl::OrSymbol}
118
130
  )
119
131
  end
120
132
  def to_hash
121
133
  end
122
134
 
135
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
136
+ module Ttl
137
+ extend OpenAI::Internal::Type::Enum
138
+
139
+ TaggedSymbol = T.type_alias {
140
+ T.all(Symbol, OpenAI::Beta::BetaResponseInputTextContent::PromptCacheBreakpoint::Ttl)
141
+ }
142
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
143
+
144
+ TTL_30M = T.let(
145
+ :"30m",
146
+ OpenAI::Beta::BetaResponseInputTextContent::PromptCacheBreakpoint::Ttl::TaggedSymbol
147
+ )
148
+ TTL_12H = T.let(
149
+ :"12h",
150
+ OpenAI::Beta::BetaResponseInputTextContent::PromptCacheBreakpoint::Ttl::TaggedSymbol
151
+ )
152
+
153
+ sig {
154
+ override.returns(
155
+ T::Array[OpenAI::Beta::BetaResponseInputTextContent::PromptCacheBreakpoint::Ttl::TaggedSymbol]
156
+ )
157
+ }
158
+ def self.values
159
+ end
160
+ end
123
161
  end
124
162
 
125
163
  end
@@ -459,18 +459,41 @@ module OpenAI
459
459
  sig { returns(Symbol) }
460
460
  attr_accessor :mode
461
461
 
462
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
463
+ sig {
464
+ returns(
465
+ T.nilable(
466
+ OpenAI::Beta::BetaResponseItem::AgentMessage::Content::ComputerScreenshot::PromptCacheBreakpoint::Ttl::TaggedSymbol
467
+ )
468
+ )
469
+ }
470
+ attr_reader :ttl
471
+
472
+ sig {
473
+ params(
474
+ ttl: OpenAI::Beta::BetaResponseItem::AgentMessage::Content::ComputerScreenshot::PromptCacheBreakpoint::Ttl::OrSymbol
475
+ )
476
+ .void
477
+ }
478
+ attr_writer :ttl
479
+
462
480
  # Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL
463
481
  # from the request's `prompt_cache_options.ttl`; the boundary is not rounded to a
464
482
  # token block.
465
483
  sig do
466
484
  params(
467
485
 
486
+ ttl: OpenAI::Beta::BetaResponseItem::AgentMessage::Content::ComputerScreenshot::PromptCacheBreakpoint::Ttl::OrSymbol,
487
+
468
488
  mode: Symbol
469
489
  )
470
490
  .returns(T.attached_class)
471
491
  end
472
492
  def self.new(
473
493
 
494
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
495
+ ttl: nil,
496
+
474
497
  # The breakpoint mode. Always `explicit`.
475
498
 
476
499
  mode: :explicit
@@ -479,12 +502,46 @@ module OpenAI
479
502
 
480
503
  sig do
481
504
  override.returns(
482
- {mode: Symbol}
505
+ {
506
+ mode: Symbol,
507
+ ttl: OpenAI::Beta::BetaResponseItem::AgentMessage::Content::ComputerScreenshot::PromptCacheBreakpoint::Ttl::TaggedSymbol
508
+ }
483
509
  )
484
510
  end
485
511
  def to_hash
486
512
  end
487
513
 
514
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
515
+ module Ttl
516
+ extend OpenAI::Internal::Type::Enum
517
+
518
+ TaggedSymbol = T.type_alias {
519
+ T.all(
520
+ Symbol,
521
+ OpenAI::Beta::BetaResponseItem::AgentMessage::Content::ComputerScreenshot::PromptCacheBreakpoint::Ttl
522
+ )
523
+ }
524
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
525
+
526
+ TTL_30M = T.let(
527
+ :"30m",
528
+ OpenAI::Beta::BetaResponseItem::AgentMessage::Content::ComputerScreenshot::PromptCacheBreakpoint::Ttl::TaggedSymbol
529
+ )
530
+ TTL_12H = T.let(
531
+ :"12h",
532
+ OpenAI::Beta::BetaResponseItem::AgentMessage::Content::ComputerScreenshot::PromptCacheBreakpoint::Ttl::TaggedSymbol
533
+ )
534
+
535
+ sig {
536
+ override.returns(
537
+ T::Array[
538
+ OpenAI::Beta::BetaResponseItem::AgentMessage::Content::ComputerScreenshot::PromptCacheBreakpoint::Ttl::TaggedSymbol
539
+ ]
540
+ )
541
+ }
542
+ def self.values
543
+ end
544
+ end
488
545
  end
489
546
  end
490
547
 
@@ -459,18 +459,41 @@ module OpenAI
459
459
  sig { returns(Symbol) }
460
460
  attr_accessor :mode
461
461
 
462
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
463
+ sig {
464
+ returns(
465
+ T.nilable(
466
+ OpenAI::Beta::BetaResponseOutputItem::AgentMessage::Content::ComputerScreenshot::PromptCacheBreakpoint::Ttl::TaggedSymbol
467
+ )
468
+ )
469
+ }
470
+ attr_reader :ttl
471
+
472
+ sig {
473
+ params(
474
+ ttl: OpenAI::Beta::BetaResponseOutputItem::AgentMessage::Content::ComputerScreenshot::PromptCacheBreakpoint::Ttl::OrSymbol
475
+ )
476
+ .void
477
+ }
478
+ attr_writer :ttl
479
+
462
480
  # Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL
463
481
  # from the request's `prompt_cache_options.ttl`; the boundary is not rounded to a
464
482
  # token block.
465
483
  sig do
466
484
  params(
467
485
 
486
+ ttl: OpenAI::Beta::BetaResponseOutputItem::AgentMessage::Content::ComputerScreenshot::PromptCacheBreakpoint::Ttl::OrSymbol,
487
+
468
488
  mode: Symbol
469
489
  )
470
490
  .returns(T.attached_class)
471
491
  end
472
492
  def self.new(
473
493
 
494
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
495
+ ttl: nil,
496
+
474
497
  # The breakpoint mode. Always `explicit`.
475
498
 
476
499
  mode: :explicit
@@ -479,12 +502,46 @@ module OpenAI
479
502
 
480
503
  sig do
481
504
  override.returns(
482
- {mode: Symbol}
505
+ {
506
+ mode: Symbol,
507
+ ttl: OpenAI::Beta::BetaResponseOutputItem::AgentMessage::Content::ComputerScreenshot::PromptCacheBreakpoint::Ttl::TaggedSymbol
508
+ }
483
509
  )
484
510
  end
485
511
  def to_hash
486
512
  end
487
513
 
514
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
515
+ module Ttl
516
+ extend OpenAI::Internal::Type::Enum
517
+
518
+ TaggedSymbol = T.type_alias {
519
+ T.all(
520
+ Symbol,
521
+ OpenAI::Beta::BetaResponseOutputItem::AgentMessage::Content::ComputerScreenshot::PromptCacheBreakpoint::Ttl
522
+ )
523
+ }
524
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
525
+
526
+ TTL_30M = T.let(
527
+ :"30m",
528
+ OpenAI::Beta::BetaResponseOutputItem::AgentMessage::Content::ComputerScreenshot::PromptCacheBreakpoint::Ttl::TaggedSymbol
529
+ )
530
+ TTL_12H = T.let(
531
+ :"12h",
532
+ OpenAI::Beta::BetaResponseOutputItem::AgentMessage::Content::ComputerScreenshot::PromptCacheBreakpoint::Ttl::TaggedSymbol
533
+ )
534
+
535
+ sig {
536
+ override.returns(
537
+ T::Array[
538
+ OpenAI::Beta::BetaResponseOutputItem::AgentMessage::Content::ComputerScreenshot::PromptCacheBreakpoint::Ttl::TaggedSymbol
539
+ ]
540
+ )
541
+ }
542
+ def self.values
543
+ end
544
+ end
488
545
  end
489
546
  end
490
547
 
@@ -1336,11 +1336,14 @@ module OpenAI
1336
1336
  }
1337
1337
  attr_writer :input_image_mask
1338
1338
 
1339
- # The image generation model to use. One of `gpt-image-1`, `gpt-image-1-mini`,
1340
- # `gpt-image-1.5`, `gpt-image-2`, `gpt-image-2-2026-04-21`,
1341
- # `gpt-image-2.5-sunburst`, `gpt-image-2.5-sunburst-2026-09-08`,
1342
- # `gpt-image-2.5-flare`, `gpt-image-2.5-flare-2026-09-08`, or
1343
- # `chatgpt-image-latest`. Default: `gpt-image-1`.
1339
+ # The image generation model to use. One of `gpt-image-1-mini`, `gpt-image-1.5`,
1340
+ # `gpt-image-2`, `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
1341
+ # `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`,
1342
+ # `gpt-image-2.5-flare-2026-09-08`, or `chatgpt-image-latest`. Default:
1343
+ # `gpt-image-2`.
1344
+ #
1345
+ # `gpt-image-1` was shut down on October 23, 2026. Use `gpt-image-2.5-sunburst` or
1346
+ # `gpt-image-2.5-flare` instead.
1344
1347
  sig {
1345
1348
  returns(
1346
1349
  T.nilable(
@@ -1532,11 +1535,14 @@ module OpenAI
1532
1535
  # `file_id` (string, optional).
1533
1536
  input_image_mask: nil,
1534
1537
 
1535
- # The image generation model to use. One of `gpt-image-1`, `gpt-image-1-mini`,
1536
- # `gpt-image-1.5`, `gpt-image-2`, `gpt-image-2-2026-04-21`,
1537
- # `gpt-image-2.5-sunburst`, `gpt-image-2.5-sunburst-2026-09-08`,
1538
- # `gpt-image-2.5-flare`, `gpt-image-2.5-flare-2026-09-08`, or
1539
- # `chatgpt-image-latest`. Default: `gpt-image-1`.
1538
+ # The image generation model to use. One of `gpt-image-1-mini`, `gpt-image-1.5`,
1539
+ # `gpt-image-2`, `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
1540
+ # `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`,
1541
+ # `gpt-image-2.5-flare-2026-09-08`, or `chatgpt-image-latest`. Default:
1542
+ # `gpt-image-2`.
1543
+ #
1544
+ # `gpt-image-1` was shut down on October 23, 2026. Use `gpt-image-2.5-sunburst` or
1545
+ # `gpt-image-2.5-flare` instead.
1540
1546
  model: nil,
1541
1547
 
1542
1548
  # Moderation level for the generated image. Default: `auto`.
@@ -1766,11 +1772,14 @@ module OpenAI
1766
1772
 
1767
1773
  end
1768
1774
 
1769
- # The image generation model to use. One of `gpt-image-1`, `gpt-image-1-mini`,
1770
- # `gpt-image-1.5`, `gpt-image-2`, `gpt-image-2-2026-04-21`,
1771
- # `gpt-image-2.5-sunburst`, `gpt-image-2.5-sunburst-2026-09-08`,
1772
- # `gpt-image-2.5-flare`, `gpt-image-2.5-flare-2026-09-08`, or
1773
- # `chatgpt-image-latest`. Default: `gpt-image-1`.
1775
+ # The image generation model to use. One of `gpt-image-1-mini`, `gpt-image-1.5`,
1776
+ # `gpt-image-2`, `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
1777
+ # `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`,
1778
+ # `gpt-image-2.5-flare-2026-09-08`, or `chatgpt-image-latest`. Default:
1779
+ # `gpt-image-2`.
1780
+ #
1781
+ # `gpt-image-1` was shut down on October 23, 2026. Use `gpt-image-2.5-sunburst` or
1782
+ # `gpt-image-2.5-flare` instead.
1774
1783
  module Model
1775
1784
  extend OpenAI::Internal::Type::Union
1776
1785
 
@@ -991,11 +991,14 @@ module OpenAI
991
991
  sig { params(input_image_mask: OpenAI::Beta::BetaTool::ImageGeneration::InputImageMask::OrHash).void }
992
992
  attr_writer :input_image_mask
993
993
 
994
- # The image generation model to use. One of `gpt-image-1`, `gpt-image-1-mini`,
995
- # `gpt-image-1.5`, `gpt-image-2`, `gpt-image-2-2026-04-21`,
996
- # `gpt-image-2.5-sunburst`, `gpt-image-2.5-sunburst-2026-09-08`,
997
- # `gpt-image-2.5-flare`, `gpt-image-2.5-flare-2026-09-08`, or
998
- # `chatgpt-image-latest`. Default: `gpt-image-1`.
994
+ # The image generation model to use. One of `gpt-image-1-mini`, `gpt-image-1.5`,
995
+ # `gpt-image-2`, `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
996
+ # `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`,
997
+ # `gpt-image-2.5-flare-2026-09-08`, or `chatgpt-image-latest`. Default:
998
+ # `gpt-image-2`.
999
+ #
1000
+ # `gpt-image-1` was shut down on October 23, 2026. Use `gpt-image-2.5-sunburst` or
1001
+ # `gpt-image-2.5-flare` instead.
999
1002
  sig { returns(T.nilable(T.any(String, OpenAI::Beta::BetaTool::ImageGeneration::Model::OrSymbol))) }
1000
1003
  attr_reader :model
1001
1004
 
@@ -1114,11 +1117,14 @@ module OpenAI
1114
1117
  # `file_id` (string, optional).
1115
1118
  input_image_mask: nil,
1116
1119
 
1117
- # The image generation model to use. One of `gpt-image-1`, `gpt-image-1-mini`,
1118
- # `gpt-image-1.5`, `gpt-image-2`, `gpt-image-2-2026-04-21`,
1119
- # `gpt-image-2.5-sunburst`, `gpt-image-2.5-sunburst-2026-09-08`,
1120
- # `gpt-image-2.5-flare`, `gpt-image-2.5-flare-2026-09-08`, or
1121
- # `chatgpt-image-latest`. Default: `gpt-image-1`.
1120
+ # The image generation model to use. One of `gpt-image-1-mini`, `gpt-image-1.5`,
1121
+ # `gpt-image-2`, `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
1122
+ # `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`,
1123
+ # `gpt-image-2.5-flare-2026-09-08`, or `chatgpt-image-latest`. Default:
1124
+ # `gpt-image-2`.
1125
+ #
1126
+ # `gpt-image-1` was shut down on October 23, 2026. Use `gpt-image-2.5-sunburst` or
1127
+ # `gpt-image-2.5-flare` instead.
1122
1128
  model: nil,
1123
1129
 
1124
1130
  # Moderation level for the generated image. Default: `auto`.
@@ -1292,11 +1298,14 @@ module OpenAI
1292
1298
 
1293
1299
  end
1294
1300
 
1295
- # The image generation model to use. One of `gpt-image-1`, `gpt-image-1-mini`,
1296
- # `gpt-image-1.5`, `gpt-image-2`, `gpt-image-2-2026-04-21`,
1297
- # `gpt-image-2.5-sunburst`, `gpt-image-2.5-sunburst-2026-09-08`,
1298
- # `gpt-image-2.5-flare`, `gpt-image-2.5-flare-2026-09-08`, or
1299
- # `chatgpt-image-latest`. Default: `gpt-image-1`.
1301
+ # The image generation model to use. One of `gpt-image-1-mini`, `gpt-image-1.5`,
1302
+ # `gpt-image-2`, `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
1303
+ # `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`,
1304
+ # `gpt-image-2.5-flare-2026-09-08`, or `chatgpt-image-latest`. Default:
1305
+ # `gpt-image-2`.
1306
+ #
1307
+ # `gpt-image-1` was shut down on October 23, 2026. Use `gpt-image-2.5-sunburst` or
1308
+ # `gpt-image-2.5-flare` instead.
1300
1309
  module Model
1301
1310
  extend OpenAI::Internal::Type::Union
1302
1311
 
@@ -16,7 +16,8 @@ module OpenAI
16
16
  OpenAI::Beta::PersistedAgentTool::ProgrammaticToolCalling,
17
17
  OpenAI::Beta::PersistedAgentTool::Mcp,
18
18
  OpenAI::Beta::PersistedAgentTool::WebSearch,
19
- OpenAI::Beta::PersistedAgentTool::ComputerUse
19
+ OpenAI::Beta::PersistedAgentTool::ComputerUse,
20
+ OpenAI::Beta::PersistedAgentTool::Automations
20
21
  )
21
22
  end
22
23
 
@@ -543,6 +544,44 @@ module OpenAI
543
544
 
544
545
  end
545
546
 
547
+ class Automations < OpenAI::Internal::Type::BaseModel
548
+ OrHash = T.type_alias do
549
+ T.any(
550
+ OpenAI::Beta::PersistedAgentTool::Automations,
551
+ OpenAI::Internal::AnyHash
552
+ )
553
+ end
554
+
555
+ # The type of the object. Always `automations`.
556
+ sig { returns(Symbol) }
557
+ attr_accessor :type
558
+
559
+ # Lets the agent manage its own scheduled wakeups.
560
+ sig do
561
+ params(
562
+
563
+ type: Symbol
564
+ )
565
+ .returns(T.attached_class)
566
+ end
567
+ def self.new(
568
+
569
+ # The type of the object. Always `automations`.
570
+
571
+ type: :automations
572
+ )
573
+ end
574
+
575
+ sig do
576
+ override.returns(
577
+ {type: Symbol}
578
+ )
579
+ end
580
+ def to_hash
581
+ end
582
+
583
+ end
584
+
546
585
  sig { override.returns(T::Array[OpenAI::Beta::PersistedAgentTool::Variants]) }
547
586
  def self.variants
548
587
  end
@@ -16,7 +16,8 @@ module OpenAI
16
16
  OpenAI::Beta::PersistedAgentToolParam::ProgrammaticToolCalling,
17
17
  OpenAI::Beta::PersistedAgentToolParam::Mcp,
18
18
  OpenAI::Beta::PersistedAgentToolParam::WebSearch,
19
- OpenAI::Beta::PersistedAgentToolParam::ComputerUse
19
+ OpenAI::Beta::PersistedAgentToolParam::ComputerUse,
20
+ OpenAI::Beta::PersistedAgentToolParam::Automations
20
21
  )
21
22
  end
22
23
 
@@ -585,6 +586,44 @@ module OpenAI
585
586
 
586
587
  end
587
588
 
589
+ class Automations < OpenAI::Internal::Type::BaseModel
590
+ OrHash = T.type_alias do
591
+ T.any(
592
+ OpenAI::Beta::PersistedAgentToolParam::Automations,
593
+ OpenAI::Internal::AnyHash
594
+ )
595
+ end
596
+
597
+ # The type of the object. Always `automations`.
598
+ sig { returns(Symbol) }
599
+ attr_accessor :type
600
+
601
+ # Lets the agent manage its own scheduled wakeups.
602
+ sig do
603
+ params(
604
+
605
+ type: Symbol
606
+ )
607
+ .returns(T.attached_class)
608
+ end
609
+ def self.new(
610
+
611
+ # The type of the object. Always `automations`.
612
+
613
+ type: :automations
614
+ )
615
+ end
616
+
617
+ sig do
618
+ override.returns(
619
+ {type: Symbol}
620
+ )
621
+ end
622
+ def to_hash
623
+ end
624
+
625
+ end
626
+
588
627
  sig { override.returns(T::Array[OpenAI::Beta::PersistedAgentToolParam::Variants]) }
589
628
  def self.variants
590
629
  end