openai 0.111.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 (230) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +8 -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 +8 -4
  29. data/lib/openai/models/image_edit_params.rb +20 -4
  30. data/lib/openai/models/image_generate_params.rb +23 -7
  31. data/lib/openai/models/image_model.rb +2 -0
  32. data/lib/openai/models/live/client_delegation.rb +20 -1
  33. data/lib/openai/models/live/client_event.rb +4 -4
  34. data/lib/openai/models/live/commentary_append_event.rb +1 -1
  35. data/lib/openai/models/live/decision_assistant_message.rb +154 -0
  36. data/lib/openai/models/live/decision_choice_option.rb +35 -0
  37. data/lib/openai/models/live/decision_developer_message.rb +70 -0
  38. data/lib/openai/models/live/decision_input_text.rb +26 -0
  39. data/lib/openai/models/live/decision_item_create_event.rb +490 -131
  40. data/lib/openai/models/live/decision_item_created_event.rb +486 -131
  41. data/lib/openai/models/live/decision_json_object.rb +10 -0
  42. data/lib/openai/models/live/decision_question.rb +172 -0
  43. data/lib/openai/models/live/decision_stored_assistant_message.rb +152 -0
  44. data/lib/openai/models/live/decision_stored_developer_message.rb +68 -0
  45. data/lib/openai/models/live/decision_stored_system_message.rb +68 -0
  46. data/lib/openai/models/live/decision_stored_user_message.rb +195 -0
  47. data/lib/openai/models/live/decision_system_message.rb +70 -0
  48. data/lib/openai/models/live/decision_trigger.rb +6 -258
  49. data/lib/openai/models/live/decision_user_message.rb +193 -0
  50. data/lib/openai/models/live/decisions_delegation_config.rb +5 -250
  51. data/lib/openai/models/live/decisions_delegation_update_config.rb +5 -257
  52. data/lib/openai/models/live/fork_client_event.rb +4 -4
  53. data/lib/openai/models/live/fork_server_event.rb +2 -2
  54. data/lib/openai/models/live/fork_session_config.rb +20 -1
  55. data/lib/openai/models/live/input_audio_muted_event.rb +3 -2
  56. data/lib/openai/models/live/input_audio_unmute_event.rb +2 -1
  57. data/lib/openai/models/live/input_audio_unmuted_event.rb +3 -2
  58. data/lib/openai/models/live/instructions_append_event.rb +5 -2
  59. data/lib/openai/models/live/media_session_config.rb +39 -2
  60. data/lib/openai/models/live/media_session_fork_config.rb +20 -1
  61. data/lib/openai/models/live/server_event.rb +2 -2
  62. data/lib/openai/models/live/session_accept_params.rb +39 -2
  63. data/lib/openai/models/live/session_config.rb +39 -2
  64. data/lib/openai/models/live/session_resource.rb +39 -2
  65. data/lib/openai/models/live/session_update_config.rb +41 -2
  66. data/lib/openai/models/live/sideband_client_event.rb +4 -4
  67. data/lib/openai/models/live/sideband_server_event.rb +2 -2
  68. data/lib/openai/models/live/thinking_append_event.rb +1 -1
  69. data/lib/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rb +10 -12
  70. data/lib/openai/models/realtime/realtime_error_event.rb +1 -1
  71. data/lib/openai/models/realtime/realtime_server_event.rb +1 -1
  72. data/lib/openai/models/realtime/realtime_translation_server_event.rb +1 -1
  73. data/lib/openai/models/responses/response_input_file.rb +23 -1
  74. data/lib/openai/models/responses/response_input_file_content.rb +23 -1
  75. data/lib/openai/models/responses/response_input_image.rb +23 -1
  76. data/lib/openai/models/responses/response_input_image_content.rb +23 -1
  77. data/lib/openai/models/responses/response_input_text.rb +23 -1
  78. data/lib/openai/models/responses/response_input_text_content.rb +23 -1
  79. data/lib/openai/models/responses/response_tool_search_output_item_param.rb +26 -15
  80. data/lib/openai/models/responses/tool.rb +26 -15
  81. data/lib/openai/resources/beta/agents.rb +2 -2
  82. data/lib/openai/resources/beta/responses.rb +2 -2
  83. data/lib/openai/resources/images.rb +18 -6
  84. data/lib/openai/resources/live/forks.rb +2 -2
  85. data/lib/openai/resources/live/sideband.rb +2 -2
  86. data/lib/openai/resources/live.rb +2 -2
  87. data/lib/openai/resources/realtime/translations.rb +2 -2
  88. data/lib/openai/resources/realtime.rb +2 -2
  89. data/lib/openai/resources/responses.rb +2 -2
  90. data/lib/openai/version.rb +1 -1
  91. data/lib/openai.rb +12 -0
  92. data/rbi/openai/models/beta/agent.rbi +2 -1
  93. data/rbi/openai/models/beta/agent_create_params.rbi +6 -3
  94. data/rbi/openai/models/beta/agent_session.rbi +2 -1
  95. data/rbi/openai/models/beta/agent_tool.rbi +40 -1
  96. data/rbi/openai/models/beta/agent_tool_param.rbi +40 -1
  97. data/rbi/openai/models/beta/agent_update_params.rbi +6 -3
  98. data/rbi/openai/models/beta/agents/session_create_params.rbi +6 -3
  99. data/rbi/openai/models/beta/beta_response_input_file.rbi +31 -1
  100. data/rbi/openai/models/beta/beta_response_input_file_content.rbi +39 -1
  101. data/rbi/openai/models/beta/beta_response_input_image.rbi +31 -1
  102. data/rbi/openai/models/beta/beta_response_input_image_content.rbi +39 -1
  103. data/rbi/openai/models/beta/beta_response_input_text.rbi +31 -1
  104. data/rbi/openai/models/beta/beta_response_input_text_content.rbi +39 -1
  105. data/rbi/openai/models/beta/beta_response_item.rbi +58 -1
  106. data/rbi/openai/models/beta/beta_response_output_item.rbi +58 -1
  107. data/rbi/openai/models/beta/beta_response_tool_search_output_item_param.rbi +24 -15
  108. data/rbi/openai/models/beta/beta_tool.rbi +24 -15
  109. data/rbi/openai/models/beta/persisted_agent_tool.rbi +40 -1
  110. data/rbi/openai/models/beta/persisted_agent_tool_param.rbi +40 -1
  111. data/rbi/openai/models/chat/chat_completion_content_part.rbi +43 -1
  112. data/rbi/openai/models/chat/chat_completion_content_part_image.rbi +41 -1
  113. data/rbi/openai/models/chat/chat_completion_content_part_input_audio.rbi +46 -1
  114. data/rbi/openai/models/chat/chat_completion_content_part_text.rbi +39 -1
  115. data/rbi/openai/models/conversations/computer_screenshot_content.rbi +48 -1
  116. data/rbi/openai/models/image_edit_params.rbi +12 -3
  117. data/rbi/openai/models/image_generate_params.rbi +15 -6
  118. data/rbi/openai/models/live/client_delegation.rbi +23 -1
  119. data/rbi/openai/models/live/commentary_append_event.rbi +1 -1
  120. data/rbi/openai/models/live/decision_assistant_message.rbi +247 -0
  121. data/rbi/openai/models/live/decision_choice_option.rbi +67 -0
  122. data/rbi/openai/models/live/decision_developer_message.rbi +109 -0
  123. data/rbi/openai/models/live/decision_input_text.rbi +55 -0
  124. data/rbi/openai/models/live/decision_item_create_event.rbi +765 -184
  125. data/rbi/openai/models/live/decision_item_created_event.rbi +737 -184
  126. data/rbi/openai/models/live/decision_json_object.rbi +16 -0
  127. data/rbi/openai/models/live/decision_question.rbi +300 -0
  128. data/rbi/openai/models/live/decision_stored_assistant_message.rbi +245 -0
  129. data/rbi/openai/models/live/decision_stored_developer_message.rbi +107 -0
  130. data/rbi/openai/models/live/decision_stored_system_message.rbi +107 -0
  131. data/rbi/openai/models/live/decision_stored_user_message.rbi +333 -0
  132. data/rbi/openai/models/live/decision_system_message.rbi +109 -0
  133. data/rbi/openai/models/live/decision_trigger.rbi +11 -383
  134. data/rbi/openai/models/live/decision_user_message.rbi +320 -0
  135. data/rbi/openai/models/live/decisions_delegation_config.rbi +10 -384
  136. data/rbi/openai/models/live/decisions_delegation_update_config.rbi +13 -387
  137. data/rbi/openai/models/live/fork_session_config.rbi +27 -1
  138. data/rbi/openai/models/live/input_audio_muted_event.rbi +3 -2
  139. data/rbi/openai/models/live/input_audio_unmute_event.rbi +2 -1
  140. data/rbi/openai/models/live/input_audio_unmuted_event.rbi +3 -2
  141. data/rbi/openai/models/live/instructions_append_event.rbi +5 -2
  142. data/rbi/openai/models/live/media_session_config.rbi +44 -2
  143. data/rbi/openai/models/live/media_session_fork_config.rbi +27 -1
  144. data/rbi/openai/models/live/session_accept_params.rbi +44 -2
  145. data/rbi/openai/models/live/session_config.rbi +44 -2
  146. data/rbi/openai/models/live/session_resource.rbi +44 -2
  147. data/rbi/openai/models/live/session_update_config.rbi +54 -2
  148. data/rbi/openai/models/live/thinking_append_event.rbi +1 -1
  149. data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rbi +10 -12
  150. data/rbi/openai/models/realtime/realtime_error_event.rbi +1 -1
  151. data/rbi/openai/models/responses/response_input_file.rbi +31 -1
  152. data/rbi/openai/models/responses/response_input_file_content.rbi +39 -1
  153. data/rbi/openai/models/responses/response_input_image.rbi +33 -1
  154. data/rbi/openai/models/responses/response_input_image_content.rbi +41 -1
  155. data/rbi/openai/models/responses/response_input_text.rbi +31 -1
  156. data/rbi/openai/models/responses/response_input_text_content.rbi +39 -1
  157. data/rbi/openai/models/responses/response_tool_search_output_item_param.rbi +24 -15
  158. data/rbi/openai/models/responses/tool.rbi +24 -15
  159. data/rbi/openai/resources/beta/agents.rbi +4 -2
  160. data/rbi/openai/resources/beta/responses.rbi +8 -1
  161. data/rbi/openai/resources/images.rbi +18 -6
  162. data/rbi/openai/resources/live/forks.rbi +8 -1
  163. data/rbi/openai/resources/live/sideband.rbi +8 -1
  164. data/rbi/openai/resources/live.rbi +8 -1
  165. data/rbi/openai/resources/realtime/translations.rbi +8 -1
  166. data/rbi/openai/resources/realtime.rbi +8 -1
  167. data/rbi/openai/resources/responses.rbi +8 -1
  168. data/sig/openai/models/beta/agent_tool.rbs +14 -0
  169. data/sig/openai/models/beta/agent_tool_param.rbs +14 -0
  170. data/sig/openai/models/beta/beta_response_input_file.rbs +34 -3
  171. data/sig/openai/models/beta/beta_response_input_file_content.rbs +34 -3
  172. data/sig/openai/models/beta/beta_response_input_image.rbs +34 -3
  173. data/sig/openai/models/beta/beta_response_input_image_content.rbs +34 -3
  174. data/sig/openai/models/beta/beta_response_input_text.rbs +34 -3
  175. data/sig/openai/models/beta/beta_response_input_text_content.rbs +34 -3
  176. data/sig/openai/models/beta/beta_response_item.rbs +34 -3
  177. data/sig/openai/models/beta/beta_response_output_item.rbs +34 -3
  178. data/sig/openai/models/beta/beta_response_tool_search_output_item_param.rbs +24 -15
  179. data/sig/openai/models/beta/beta_tool.rbs +24 -15
  180. data/sig/openai/models/beta/persisted_agent_tool.rbs +14 -0
  181. data/sig/openai/models/beta/persisted_agent_tool_param.rbs +14 -0
  182. data/sig/openai/models/chat/chat_completion_content_part.rbs +34 -3
  183. data/sig/openai/models/chat/chat_completion_content_part_image.rbs +34 -3
  184. data/sig/openai/models/chat/chat_completion_content_part_input_audio.rbs +34 -3
  185. data/sig/openai/models/chat/chat_completion_content_part_text.rbs +34 -3
  186. data/sig/openai/models/conversations/computer_screenshot_content.rbs +34 -3
  187. data/sig/openai/models/image_edit_params.rbs +8 -2
  188. data/sig/openai/models/image_generate_params.rbs +10 -4
  189. data/sig/openai/models/live/client_delegation.rbs +30 -3
  190. data/sig/openai/models/live/decision_assistant_message.rbs +134 -0
  191. data/sig/openai/models/live/decision_choice_option.rbs +37 -0
  192. data/sig/openai/models/live/decision_developer_message.rbs +67 -0
  193. data/sig/openai/models/live/decision_input_text.rbs +20 -0
  194. data/sig/openai/models/live/decision_item_create_event.rbs +413 -131
  195. data/sig/openai/models/live/decision_item_created_event.rbs +401 -131
  196. data/sig/openai/models/live/decision_json_object.rbs +9 -0
  197. data/sig/openai/models/live/decision_question.rbs +164 -0
  198. data/sig/openai/models/live/decision_stored_assistant_message.rbs +131 -0
  199. data/sig/openai/models/live/decision_stored_developer_message.rbs +64 -0
  200. data/sig/openai/models/live/decision_stored_system_message.rbs +64 -0
  201. data/sig/openai/models/live/decision_stored_user_message.rbs +177 -0
  202. data/sig/openai/models/live/decision_system_message.rbs +67 -0
  203. data/sig/openai/models/live/decision_trigger.rbs +8 -208
  204. data/sig/openai/models/live/decision_user_message.rbs +180 -0
  205. data/sig/openai/models/live/decisions_delegation_config.rbs +6 -204
  206. data/sig/openai/models/live/decisions_delegation_update_config.rbs +8 -206
  207. data/sig/openai/models/live/fork_session_config.rbs +26 -0
  208. data/sig/openai/models/live/media_session_config.rbs +53 -4
  209. data/sig/openai/models/live/media_session_fork_config.rbs +26 -0
  210. data/sig/openai/models/live/session_accept_params.rbs +53 -4
  211. data/sig/openai/models/live/session_config.rbs +53 -4
  212. data/sig/openai/models/live/session_resource.rbs +53 -4
  213. data/sig/openai/models/live/session_update_config.rbs +52 -0
  214. data/sig/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rbs +10 -12
  215. data/sig/openai/models/responses/response_input_file.rbs +34 -3
  216. data/sig/openai/models/responses/response_input_file_content.rbs +34 -3
  217. data/sig/openai/models/responses/response_input_image.rbs +34 -3
  218. data/sig/openai/models/responses/response_input_image_content.rbs +34 -3
  219. data/sig/openai/models/responses/response_input_text.rbs +34 -3
  220. data/sig/openai/models/responses/response_input_text_content.rbs +34 -3
  221. data/sig/openai/models/responses/response_tool_search_output_item_param.rbs +24 -15
  222. data/sig/openai/models/responses/tool.rbs +24 -15
  223. data/sig/openai/resources/beta/responses.rbs +2 -1
  224. data/sig/openai/resources/live/forks.rbs +2 -1
  225. data/sig/openai/resources/live/sideband.rbs +2 -1
  226. data/sig/openai/resources/live.rbs +2 -1
  227. data/sig/openai/resources/realtime/translations.rbs +2 -1
  228. data/sig/openai/resources/realtime.rbs +2 -1
  229. data/sig/openai/resources/responses.rbs +2 -1
  230. metadata +37 -1
@@ -85,17 +85,48 @@ module OpenAI
85
85
  end
86
86
  end
87
87
 
88
- type prompt_cache_breakpoint = { ?mode: :explicit }
88
+ type prompt_cache_breakpoint =
89
+ {
90
+ ?mode: :explicit,
91
+ ?ttl: OpenAI::Models::Chat::ChatCompletionContentPartInputAudio::PromptCacheBreakpoint::ttl
92
+ }
89
93
 
90
94
  class PromptCacheBreakpoint < OpenAI::Internal::Type::BaseModel
91
95
  # The breakpoint mode. Always `explicit`.
92
96
  attr_accessor mode: :explicit
93
97
 
98
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
99
+ attr_reader ttl: OpenAI::Models::Chat::ChatCompletionContentPartInputAudio::PromptCacheBreakpoint::ttl?
100
+
101
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
102
+ def ttl=: (
103
+ OpenAI::Models::Chat::ChatCompletionContentPartInputAudio::PromptCacheBreakpoint::ttl
104
+ ) -> OpenAI::Models::Chat::ChatCompletionContentPartInputAudio::PromptCacheBreakpoint::ttl
105
+
106
+ # @param ttl
107
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
94
108
  # @param mode
95
109
  # The breakpoint mode. Always `explicit`.
96
- def initialize: (?mode: :explicit) -> void
110
+ def initialize: (
111
+ ?ttl: OpenAI::Models::Chat::ChatCompletionContentPartInputAudio::PromptCacheBreakpoint::ttl,
112
+ ?mode: :explicit
113
+ ) -> void
114
+
115
+ def to_hash: -> {
116
+ ?mode: :explicit,
117
+ ?ttl: OpenAI::Models::Chat::ChatCompletionContentPartInputAudio::PromptCacheBreakpoint::ttl
118
+ }
97
119
 
98
- def to_hash: -> { ?mode: :explicit }
120
+ type ttl = :"30m" | :"12h"
121
+
122
+ module Ttl
123
+ extend OpenAI::Internal::Type::Enum
124
+
125
+ TTL_30M: :"30m"
126
+ TTL_12H: :"12h"
127
+
128
+ def self?.values: -> ::Array[OpenAI::Models::Chat::ChatCompletionContentPartInputAudio::PromptCacheBreakpoint::ttl]
129
+ end
99
130
  end
100
131
  end
101
132
  end
@@ -49,17 +49,48 @@ module OpenAI
49
49
  ?prompt_cache_breakpoint: OpenAI::Chat::ChatCompletionContentPartText::PromptCacheBreakpoint
50
50
  }
51
51
 
52
- type prompt_cache_breakpoint = { ?mode: :explicit }
52
+ type prompt_cache_breakpoint =
53
+ {
54
+ ?mode: :explicit,
55
+ ?ttl: OpenAI::Models::Chat::ChatCompletionContentPartText::PromptCacheBreakpoint::ttl
56
+ }
53
57
 
54
58
  class PromptCacheBreakpoint < OpenAI::Internal::Type::BaseModel
55
59
  # The breakpoint mode. Always `explicit`.
56
60
  attr_accessor mode: :explicit
57
61
 
62
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
63
+ attr_reader ttl: OpenAI::Models::Chat::ChatCompletionContentPartText::PromptCacheBreakpoint::ttl?
64
+
65
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
66
+ def ttl=: (
67
+ OpenAI::Models::Chat::ChatCompletionContentPartText::PromptCacheBreakpoint::ttl
68
+ ) -> OpenAI::Models::Chat::ChatCompletionContentPartText::PromptCacheBreakpoint::ttl
69
+
70
+ # @param ttl
71
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
58
72
  # @param mode
59
73
  # The breakpoint mode. Always `explicit`.
60
- def initialize: (?mode: :explicit) -> void
74
+ def initialize: (
75
+ ?ttl: OpenAI::Models::Chat::ChatCompletionContentPartText::PromptCacheBreakpoint::ttl,
76
+ ?mode: :explicit
77
+ ) -> void
78
+
79
+ def to_hash: -> {
80
+ ?mode: :explicit,
81
+ ?ttl: OpenAI::Models::Chat::ChatCompletionContentPartText::PromptCacheBreakpoint::ttl
82
+ }
83
+
84
+ type ttl = :"30m" | :"12h"
85
+
86
+ module Ttl
87
+ extend OpenAI::Internal::Type::Enum
88
+
89
+ TTL_30M: :"30m"
90
+ TTL_12H: :"12h"
61
91
 
62
- def to_hash: -> { ?mode: :explicit }
92
+ def self?.values: -> ::Array[OpenAI::Models::Chat::ChatCompletionContentPartText::PromptCacheBreakpoint::ttl]
93
+ end
63
94
  end
64
95
  end
65
96
  end
@@ -80,17 +80,48 @@ module OpenAI
80
80
  def self?.values: -> ::Array[OpenAI::Models::Conversations::ComputerScreenshotContent::detail]
81
81
  end
82
82
 
83
- type prompt_cache_breakpoint = { ?mode: :explicit }
83
+ type prompt_cache_breakpoint =
84
+ {
85
+ ?mode: :explicit,
86
+ ?ttl: OpenAI::Models::Conversations::ComputerScreenshotContent::PromptCacheBreakpoint::ttl
87
+ }
84
88
 
85
89
  class PromptCacheBreakpoint < OpenAI::Internal::Type::BaseModel
86
90
  # The breakpoint mode. Always `explicit`.
87
91
  attr_accessor mode: :explicit
88
92
 
93
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
94
+ attr_reader ttl: OpenAI::Models::Conversations::ComputerScreenshotContent::PromptCacheBreakpoint::ttl?
95
+
96
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
97
+ def ttl=: (
98
+ OpenAI::Models::Conversations::ComputerScreenshotContent::PromptCacheBreakpoint::ttl
99
+ ) -> OpenAI::Models::Conversations::ComputerScreenshotContent::PromptCacheBreakpoint::ttl
100
+
101
+ # @param ttl
102
+ # The minimum lifetime of this cache breakpoint. Defaults to the request TTL.
89
103
  # @param mode
90
104
  # The breakpoint mode. Always `explicit`.
91
- def initialize: (?mode: :explicit) -> void
105
+ def initialize: (
106
+ ?ttl: OpenAI::Models::Conversations::ComputerScreenshotContent::PromptCacheBreakpoint::ttl,
107
+ ?mode: :explicit
108
+ ) -> void
109
+
110
+ def to_hash: -> {
111
+ ?mode: :explicit,
112
+ ?ttl: OpenAI::Models::Conversations::ComputerScreenshotContent::PromptCacheBreakpoint::ttl
113
+ }
114
+
115
+ type ttl = :"30m" | :"12h"
116
+
117
+ module Ttl
118
+ extend OpenAI::Internal::Type::Enum
119
+
120
+ TTL_30M: :"30m"
121
+ TTL_12H: :"12h"
92
122
 
93
- def to_hash: -> { ?mode: :explicit }
123
+ def self?.values: -> ::Array[OpenAI::Models::Conversations::ComputerScreenshotContent::PromptCacheBreakpoint::ttl]
124
+ end
94
125
  end
95
126
  end
96
127
  end
@@ -79,11 +79,14 @@ module OpenAI
79
79
  # content type.
80
80
  def mask=: (OpenAI::Internal::file_input) -> OpenAI::Internal::file_input
81
81
 
82
- # The GPT image model to use for image editing (`gpt-image-1`, `gpt-image-1-mini`,
82
+ # The GPT image model to use for image editing (`gpt-image-1-mini`,
83
83
  # `gpt-image-1.5`, `gpt-image-2`, `gpt-image-2-2026-04-21`,
84
84
  # `gpt-image-2.5-sunburst`, `gpt-image-2.5-sunburst-2026-09-08`,
85
85
  # `gpt-image-2.5-flare`, `gpt-image-2.5-flare-2026-09-08`, or
86
86
  # `chatgpt-image-latest`).
87
+ #
88
+ # `gpt-image-1` was shut down on October 23, 2026. Use `gpt-image-2.5-sunburst` or
89
+ # `gpt-image-2.5-flare` instead.
87
90
  attr_accessor model: OpenAI::Models::ImageEditParams::model?
88
91
 
89
92
  # The number of images to generate. Must be between 1 and 10.
@@ -191,11 +194,14 @@ module OpenAI
191
194
  # metadata. Use `OpenAI::FilePart` when you need to override the filename or
192
195
  # content type.
193
196
  # @param model
194
- # The GPT image model to use for image editing (`gpt-image-1`, `gpt-image-1-mini`,
197
+ # The GPT image model to use for image editing (`gpt-image-1-mini`,
195
198
  # `gpt-image-1.5`, `gpt-image-2`, `gpt-image-2-2026-04-21`,
196
199
  # `gpt-image-2.5-sunburst`, `gpt-image-2.5-sunburst-2026-09-08`,
197
200
  # `gpt-image-2.5-flare`, `gpt-image-2.5-flare-2026-09-08`, or
198
201
  # `chatgpt-image-latest`).
202
+ #
203
+ # `gpt-image-1` was shut down on October 23, 2026. Use `gpt-image-2.5-sunburst` or
204
+ # `gpt-image-2.5-flare` instead.
199
205
  # @param n
200
206
  # The number of images to generate. Must be between 1 and 10.
201
207
  # @param output_compression
@@ -39,10 +39,13 @@ module OpenAI
39
39
  attr_accessor background: OpenAI::Models::ImageGenerateParams::background?
40
40
 
41
41
  # The GPT image model to use for image generation. Specify a model explicitly.
42
- # Supported models include `gpt-image-1`, `gpt-image-1-mini`, `gpt-image-1.5`,
43
- # `gpt-image-2`, `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
42
+ # Supported models include `gpt-image-1-mini`, `gpt-image-1.5`, `gpt-image-2`,
43
+ # `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
44
44
  # `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`,
45
45
  # `gpt-image-2.5-flare-2026-09-08`, and `chatgpt-image-latest`.
46
+ #
47
+ # `gpt-image-1` was shut down on October 23, 2026. Use `gpt-image-2.5-sunburst` or
48
+ # `gpt-image-2.5-flare` instead.
46
49
  attr_accessor model: OpenAI::Models::ImageGenerateParams::model?
47
50
 
48
51
  # Control the content-moderation level for images generated by the GPT image
@@ -134,10 +137,13 @@ module OpenAI
134
137
  # set the output format to `png` or `webp`.
135
138
  # @param model
136
139
  # The GPT image model to use for image generation. Specify a model explicitly.
137
- # Supported models include `gpt-image-1`, `gpt-image-1-mini`, `gpt-image-1.5`,
138
- # `gpt-image-2`, `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
140
+ # Supported models include `gpt-image-1-mini`, `gpt-image-1.5`, `gpt-image-2`,
141
+ # `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`,
139
142
  # `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`,
140
143
  # `gpt-image-2.5-flare-2026-09-08`, and `chatgpt-image-latest`.
144
+ #
145
+ # `gpt-image-1` was shut down on October 23, 2026. Use `gpt-image-2.5-sunburst` or
146
+ # `gpt-image-2.5-flare` instead.
141
147
  # @param moderation
142
148
  # Control the content-moderation level for images generated by the GPT image
143
149
  # models. Must be either `low` for less restrictive filtering or `auto` (default
@@ -1,17 +1,44 @@
1
1
  module OpenAI
2
2
  module Models
3
3
  module Live
4
- type client_delegation = { ?type: :client }
4
+ type client_delegation =
5
+ { ?type: :client, ?acknowledgement_delay_ms: Integer }
5
6
 
6
7
  class ClientDelegation < OpenAI::Internal::Type::BaseModel
7
8
  # The delegation owner. Always `client` for tasks handled by your application.
8
9
  attr_accessor type: :client
9
10
 
11
+ # Milliseconds to wait before requesting an automatic spoken acknowledgement for a
12
+ # delegation. The model may still speak before this delay. Any commentary or
13
+ # thinking appended to the session cancels all pending acknowledgements, including
14
+ # those for other delegations. Defaults to 400 for Decisions sessions and 0
15
+ # (request immediately) for other sessions. Omission in a session update preserves
16
+ # the current value. Updates apply to subsequent delegations.
17
+ attr_reader acknowledgement_delay_ms: Integer?
18
+
19
+ # Milliseconds to wait before requesting an automatic spoken acknowledgement for a
20
+ # delegation. The model may still speak before this delay. Any commentary or
21
+ # thinking appended to the session cancels all pending acknowledgements, including
22
+ # those for other delegations. Defaults to 400 for Decisions sessions and 0
23
+ # (request immediately) for other sessions. Omission in a session update preserves
24
+ # the current value. Updates apply to subsequent delegations.
25
+ def acknowledgement_delay_ms=: (Integer) -> Integer
26
+
27
+ # @param acknowledgement_delay_ms
28
+ # Milliseconds to wait before requesting an automatic spoken acknowledgement for a
29
+ # delegation. The model may still speak before this delay. Any commentary or
30
+ # thinking appended to the session cancels all pending acknowledgements, including
31
+ # those for other delegations. Defaults to 400 for Decisions sessions and 0
32
+ # (request immediately) for other sessions. Omission in a session update preserves
33
+ # the current value. Updates apply to subsequent delegations.
10
34
  # @param type
11
35
  # The delegation owner. Always `client` for tasks handled by your application.
12
- def initialize: (?type: :client) -> void
36
+ def initialize: (
37
+ ?acknowledgement_delay_ms: Integer,
38
+ ?type: :client
39
+ ) -> void
13
40
 
14
- def to_hash: -> { ?type: :client }
41
+ def to_hash: -> { ?type: :client, ?acknowledgement_delay_ms: Integer }
15
42
  end
16
43
  end
17
44
  end
@@ -0,0 +1,134 @@
1
+ module OpenAI
2
+ module Models
3
+ module Live
4
+ type decision_assistant_message =
5
+ {
6
+ content: OpenAI::Models::Live::DecisionAssistantMessage::content,
7
+ ?role: :assistant,
8
+ ?id: String?,
9
+ ?phase: OpenAI::Models::Live::DecisionAssistantMessage::phase?,
10
+ ?type: OpenAI::Models::Live::DecisionAssistantMessage::type_
11
+ }
12
+
13
+ class DecisionAssistantMessage < OpenAI::Internal::Type::BaseModel
14
+ # The text input to the model.
15
+ attr_accessor content: OpenAI::Models::Live::DecisionAssistantMessage::content
16
+
17
+ attr_accessor role: :assistant
18
+
19
+ # The unique ID of this message item.
20
+ attr_accessor id: String?
21
+
22
+ # Labels an `assistant` message as intermediate commentary (`commentary`) or the
23
+ # final answer (`final_answer`). For models like `gpt-5.3-codex` and beyond, when
24
+ # sending follow-up requests, preserve and resend phase on all assistant messages
25
+ # — dropping it can degrade performance. Not used for user messages.
26
+ attr_accessor phase: OpenAI::Models::Live::DecisionAssistantMessage::phase?
27
+
28
+ attr_reader type: OpenAI::Models::Live::DecisionAssistantMessage::type_?
29
+
30
+ def type=: (
31
+ OpenAI::Models::Live::DecisionAssistantMessage::type_
32
+ ) -> OpenAI::Models::Live::DecisionAssistantMessage::type_
33
+
34
+ # @param content
35
+ # The text input to the model.
36
+ # @param id
37
+ # The unique ID of this message item.
38
+ # @param phase
39
+ # Labels an `assistant` message as intermediate commentary (`commentary`) or the
40
+ # final answer (`final_answer`). For models like `gpt-5.3-codex` and beyond, when
41
+ # sending follow-up requests, preserve and resend phase on all assistant messages
42
+ # — dropping it can degrade performance. Not used for user messages.
43
+ def initialize: (
44
+ content: OpenAI::Models::Live::DecisionAssistantMessage::content,
45
+ ?id: String?,
46
+ ?phase: OpenAI::Models::Live::DecisionAssistantMessage::phase?,
47
+ ?type: OpenAI::Models::Live::DecisionAssistantMessage::type_,
48
+ ?role: :assistant
49
+ ) -> void
50
+
51
+ def to_hash: -> {
52
+ content: OpenAI::Models::Live::DecisionAssistantMessage::content,
53
+ ?role: :assistant,
54
+ ?id: String?,
55
+ ?phase: OpenAI::Models::Live::DecisionAssistantMessage::phase?,
56
+ ?type: OpenAI::Models::Live::DecisionAssistantMessage::type_
57
+ }
58
+
59
+ type content =
60
+ String
61
+ | ::Array[OpenAI::Models::Live::DecisionAssistantMessage::Content::part]
62
+
63
+ module Content
64
+ extend OpenAI::Internal::Type::Union
65
+
66
+ type part =
67
+ OpenAI::Live::DecisionAssistantMessage::Content::Part::OutputText
68
+ | OpenAI::Live::DecisionAssistantMessage::Content::Part::Refusal
69
+
70
+ module Part
71
+ extend OpenAI::Internal::Type::Union
72
+
73
+ type output_text = { text: String, ?type: :output_text }
74
+
75
+ class OutputText < OpenAI::Internal::Type::BaseModel
76
+ # The text content.
77
+ attr_accessor text: String
78
+
79
+ attr_accessor type: :output_text
80
+
81
+ # @param text
82
+ # The text content.
83
+ def initialize: (text: String, ?type: :output_text) -> void
84
+
85
+ def to_hash: -> { text: String, ?type: :output_text }
86
+ end
87
+
88
+ type refusal = { refusal: String, ?type: :refusal }
89
+
90
+ class Refusal < OpenAI::Internal::Type::BaseModel
91
+ # The refusal text.
92
+ attr_accessor refusal: String
93
+
94
+ attr_accessor type: :refusal
95
+
96
+ # @param refusal
97
+ # The refusal text.
98
+ def initialize: (refusal: String, ?type: :refusal) -> void
99
+
100
+ def to_hash: -> { refusal: String, ?type: :refusal }
101
+ end
102
+
103
+ def self?.variants: -> ::Array[OpenAI::Models::Live::DecisionAssistantMessage::Content::part]
104
+ end
105
+
106
+ def self?.variants: -> ::Array[OpenAI::Models::Live::DecisionAssistantMessage::content]
107
+
108
+ PartsArray: OpenAI::Internal::Type::Converter
109
+ end
110
+
111
+ type phase = :commentary | :final_answer
112
+
113
+ module Phase
114
+ extend OpenAI::Internal::Type::Enum
115
+
116
+ COMMENTARY: :commentary
117
+ FINAL_ANSWER: :final_answer
118
+
119
+ def self?.values: -> ::Array[OpenAI::Models::Live::DecisionAssistantMessage::phase]
120
+ end
121
+
122
+ type type_ = :message
123
+
124
+ module Type
125
+ extend OpenAI::Internal::Type::Enum
126
+
127
+ MESSAGE: :message
128
+
129
+ def self?.values: -> ::Array[OpenAI::Models::Live::DecisionAssistantMessage::type_]
130
+ end
131
+ end
132
+ end
133
+ end
134
+ end
@@ -0,0 +1,37 @@
1
+ module OpenAI
2
+ module Models
3
+ module Live
4
+ type decision_choice_option =
5
+ {
6
+ value: OpenAI::Models::Live::DecisionChoiceOption::value,
7
+ ?description: String
8
+ }
9
+
10
+ class DecisionChoiceOption < OpenAI::Internal::Type::BaseModel
11
+ attr_accessor value: OpenAI::Models::Live::DecisionChoiceOption::value
12
+
13
+ attr_reader description: String?
14
+
15
+ def description=: (String) -> String
16
+
17
+ def initialize: (
18
+ value: OpenAI::Models::Live::DecisionChoiceOption::value,
19
+ ?description: String
20
+ ) -> void
21
+
22
+ def to_hash: -> {
23
+ value: OpenAI::Models::Live::DecisionChoiceOption::value,
24
+ ?description: String
25
+ }
26
+
27
+ type value = String | bool
28
+
29
+ module Value
30
+ extend OpenAI::Internal::Type::Union
31
+
32
+ def self?.variants: -> ::Array[OpenAI::Models::Live::DecisionChoiceOption::value]
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,67 @@
1
+ module OpenAI
2
+ module Models
3
+ module Live
4
+ type decision_developer_message =
5
+ {
6
+ content: OpenAI::Models::Live::DecisionDeveloperMessage::content,
7
+ ?role: :developer,
8
+ ?id: String?,
9
+ ?type: OpenAI::Models::Live::DecisionDeveloperMessage::type_
10
+ }
11
+
12
+ class DecisionDeveloperMessage < OpenAI::Internal::Type::BaseModel
13
+ # The text input to the model.
14
+ attr_accessor content: OpenAI::Models::Live::DecisionDeveloperMessage::content
15
+
16
+ attr_accessor role: :developer
17
+
18
+ # The unique ID of this message item.
19
+ attr_accessor id: String?
20
+
21
+ attr_reader type: OpenAI::Models::Live::DecisionDeveloperMessage::type_?
22
+
23
+ def type=: (
24
+ OpenAI::Models::Live::DecisionDeveloperMessage::type_
25
+ ) -> OpenAI::Models::Live::DecisionDeveloperMessage::type_
26
+
27
+ # @param content
28
+ # The text input to the model.
29
+ # @param id
30
+ # The unique ID of this message item.
31
+ def initialize: (
32
+ content: OpenAI::Models::Live::DecisionDeveloperMessage::content,
33
+ ?id: String?,
34
+ ?type: OpenAI::Models::Live::DecisionDeveloperMessage::type_,
35
+ ?role: :developer
36
+ ) -> void
37
+
38
+ def to_hash: -> {
39
+ content: OpenAI::Models::Live::DecisionDeveloperMessage::content,
40
+ ?role: :developer,
41
+ ?id: String?,
42
+ ?type: OpenAI::Models::Live::DecisionDeveloperMessage::type_
43
+ }
44
+
45
+ type content = String | ::Array[OpenAI::Live::DecisionInputText]
46
+
47
+ module Content
48
+ extend OpenAI::Internal::Type::Union
49
+
50
+ def self?.variants: -> ::Array[OpenAI::Models::Live::DecisionDeveloperMessage::content]
51
+
52
+ DecisionInputTextArray: OpenAI::Internal::Type::Converter
53
+ end
54
+
55
+ type type_ = :message
56
+
57
+ module Type
58
+ extend OpenAI::Internal::Type::Enum
59
+
60
+ MESSAGE: :message
61
+
62
+ def self?.values: -> ::Array[OpenAI::Models::Live::DecisionDeveloperMessage::type_]
63
+ end
64
+ end
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,20 @@
1
+ module OpenAI
2
+ module Models
3
+ module Live
4
+ type decision_input_text = { text: String, ?type: :input_text }
5
+
6
+ class DecisionInputText < OpenAI::Internal::Type::BaseModel
7
+ # The text input to the model.
8
+ attr_accessor text: String
9
+
10
+ attr_accessor type: :input_text
11
+
12
+ # @param text
13
+ # The text input to the model.
14
+ def initialize: (text: String, ?type: :input_text) -> void
15
+
16
+ def to_hash: -> { text: String, ?type: :input_text }
17
+ end
18
+ end
19
+ end
20
+ end