openai 0.67.0 → 0.69.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 (704) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +31 -0
  3. data/README.md +7 -7
  4. data/lib/openai/internal/type/enum.rb +6 -6
  5. data/lib/openai/internal/util.rb +14 -2
  6. data/lib/openai/models/beta/assistant_create_params.rb +7 -14
  7. data/lib/openai/models/beta/assistant_update_params.rb +7 -14
  8. data/lib/openai/models/beta/beta_apply_patch_tool.rb +44 -0
  9. data/lib/openai/models/beta/beta_compacted_response.rb +58 -0
  10. data/lib/openai/models/beta/beta_computer_action.rb +398 -0
  11. data/lib/openai/models/beta/beta_computer_action_list.rb +13 -0
  12. data/lib/openai/models/beta/beta_computer_tool.rb +23 -0
  13. data/lib/openai/models/beta/beta_computer_use_preview_tool.rb +63 -0
  14. data/lib/openai/models/beta/beta_container_auto.rb +96 -0
  15. data/lib/openai/models/beta/beta_container_network_policy_allowlist.rb +37 -0
  16. data/lib/openai/models/beta/beta_container_network_policy_disabled.rb +20 -0
  17. data/lib/openai/models/beta/beta_container_network_policy_domain_secret.rb +36 -0
  18. data/lib/openai/models/beta/beta_container_reference.rb +28 -0
  19. data/lib/openai/models/beta/beta_custom_tool.rb +148 -0
  20. data/lib/openai/models/beta/beta_easy_input_message.rb +120 -0
  21. data/lib/openai/models/beta/beta_file_search_tool.rb +424 -0
  22. data/lib/openai/models/beta/beta_function_shell_tool.rb +67 -0
  23. data/lib/openai/models/beta/beta_function_tool.rb +97 -0
  24. data/lib/openai/models/beta/beta_inline_skill.rb +44 -0
  25. data/lib/openai/models/beta/beta_inline_skill_source.rb +38 -0
  26. data/lib/openai/models/beta/beta_local_environment.rb +28 -0
  27. data/lib/openai/models/beta/beta_local_skill.rb +36 -0
  28. data/lib/openai/models/beta/beta_namespace_tool.rb +146 -0
  29. data/lib/openai/models/beta/beta_response.rb +1425 -0
  30. data/lib/openai/models/beta/beta_response_apply_patch_tool_call.rb +258 -0
  31. data/lib/openai/models/beta/beta_response_apply_patch_tool_call_output.rb +156 -0
  32. data/lib/openai/models/beta/beta_response_audio_delta_event.rb +63 -0
  33. data/lib/openai/models/beta/beta_response_audio_done_event.rb +55 -0
  34. data/lib/openai/models/beta/beta_response_audio_transcript_delta_event.rb +63 -0
  35. data/lib/openai/models/beta/beta_response_audio_transcript_done_event.rb +55 -0
  36. data/lib/openai/models/beta/beta_response_code_interpreter_call_code_delta_event.rb +81 -0
  37. data/lib/openai/models/beta/beta_response_code_interpreter_call_code_done_event.rb +76 -0
  38. data/lib/openai/models/beta/beta_response_code_interpreter_call_completed_event.rb +73 -0
  39. data/lib/openai/models/beta/beta_response_code_interpreter_call_in_progress_event.rb +77 -0
  40. data/lib/openai/models/beta/beta_response_code_interpreter_call_interpreting_event.rb +77 -0
  41. data/lib/openai/models/beta/beta_response_code_interpreter_tool_call.rb +168 -0
  42. data/lib/openai/models/beta/beta_response_compaction_item.rb +69 -0
  43. data/lib/openai/models/beta/beta_response_compaction_item_param.rb +61 -0
  44. data/lib/openai/models/beta/beta_response_completed_event.rb +63 -0
  45. data/lib/openai/models/beta/beta_response_computer_tool_call.rb +156 -0
  46. data/lib/openai/models/beta/beta_response_computer_tool_call_output_item.rb +141 -0
  47. data/lib/openai/models/beta/beta_response_computer_tool_call_output_screenshot.rb +43 -0
  48. data/lib/openai/models/beta/beta_response_container_reference.rb +29 -0
  49. data/lib/openai/models/beta/beta_response_content.rb +56 -0
  50. data/lib/openai/models/beta/beta_response_content_part_added_event.rb +129 -0
  51. data/lib/openai/models/beta/beta_response_content_part_done_event.rb +129 -0
  52. data/lib/openai/models/beta/beta_response_conversation_param.rb +22 -0
  53. data/lib/openai/models/beta/beta_response_created_event.rb +63 -0
  54. data/lib/openai/models/beta/beta_response_custom_tool_call.rb +142 -0
  55. data/lib/openai/models/beta/beta_response_custom_tool_call_input_delta_event.rb +76 -0
  56. data/lib/openai/models/beta/beta_response_custom_tool_call_input_done_event.rb +76 -0
  57. data/lib/openai/models/beta/beta_response_custom_tool_call_item.rb +55 -0
  58. data/lib/openai/models/beta/beta_response_custom_tool_call_output.rb +171 -0
  59. data/lib/openai/models/beta/beta_response_custom_tool_call_output_item.rb +55 -0
  60. data/lib/openai/models/beta/beta_response_error.rb +63 -0
  61. data/lib/openai/models/beta/beta_response_error_event.rb +79 -0
  62. data/lib/openai/models/beta/beta_response_failed_event.rb +63 -0
  63. data/lib/openai/models/beta/beta_response_file_search_call_completed_event.rb +72 -0
  64. data/lib/openai/models/beta/beta_response_file_search_call_in_progress_event.rb +72 -0
  65. data/lib/openai/models/beta/beta_response_file_search_call_searching_event.rb +72 -0
  66. data/lib/openai/models/beta/beta_response_file_search_tool_call.rb +168 -0
  67. data/lib/openai/models/beta/beta_response_format_text_config.rb +72 -0
  68. data/lib/openai/models/beta/beta_response_format_text_json_schema_config.rb +66 -0
  69. data/lib/openai/models/beta/beta_response_function_call_arguments_delta_event.rb +80 -0
  70. data/lib/openai/models/beta/beta_response_function_call_arguments_done_event.rb +83 -0
  71. data/lib/openai/models/beta/beta_response_function_call_output_item.rb +28 -0
  72. data/lib/openai/models/beta/beta_response_function_call_output_item_list.rb +14 -0
  73. data/lib/openai/models/beta/beta_response_function_shell_call_output_content.rb +90 -0
  74. data/lib/openai/models/beta/beta_response_function_shell_tool_call.rb +216 -0
  75. data/lib/openai/models/beta/beta_response_function_shell_tool_call_output.rb +265 -0
  76. data/lib/openai/models/beta/beta_response_function_tool_call.rb +168 -0
  77. data/lib/openai/models/beta/beta_response_function_tool_call_item.rb +57 -0
  78. data/lib/openai/models/beta/beta_response_function_tool_call_output_item.rb +201 -0
  79. data/lib/openai/models/beta/beta_response_function_web_search.rb +238 -0
  80. data/lib/openai/models/beta/beta_response_image_gen_call_completed_event.rb +69 -0
  81. data/lib/openai/models/beta/beta_response_image_gen_call_generating_event.rb +69 -0
  82. data/lib/openai/models/beta/beta_response_image_gen_call_in_progress_event.rb +68 -0
  83. data/lib/openai/models/beta/beta_response_image_gen_call_partial_image_event.rb +89 -0
  84. data/lib/openai/models/beta/beta_response_in_progress_event.rb +63 -0
  85. data/lib/openai/models/beta/beta_response_includable.rb +45 -0
  86. data/lib/openai/models/beta/beta_response_incomplete_event.rb +63 -0
  87. data/lib/openai/models/beta/beta_response_inject_created_event.rb +51 -0
  88. data/lib/openai/models/beta/beta_response_inject_event.rb +40 -0
  89. data/lib/openai/models/beta/beta_response_inject_failed_event.rb +103 -0
  90. data/lib/openai/models/beta/beta_response_input.rb +13 -0
  91. data/lib/openai/models/beta/beta_response_input_audio.rb +70 -0
  92. data/lib/openai/models/beta/beta_response_input_content.rb +28 -0
  93. data/lib/openai/models/beta/beta_response_input_file.rb +113 -0
  94. data/lib/openai/models/beta/beta_response_input_file_content.rb +115 -0
  95. data/lib/openai/models/beta/beta_response_input_image.rb +94 -0
  96. data/lib/openai/models/beta/beta_response_input_image_content.rb +96 -0
  97. data/lib/openai/models/beta/beta_response_input_item.rb +2819 -0
  98. data/lib/openai/models/beta/beta_response_input_message_content_list.rb +14 -0
  99. data/lib/openai/models/beta/beta_response_input_message_item.rb +108 -0
  100. data/lib/openai/models/beta/beta_response_input_text.rb +59 -0
  101. data/lib/openai/models/beta/beta_response_input_text_content.rb +61 -0
  102. data/lib/openai/models/beta/beta_response_item.rb +1438 -0
  103. data/lib/openai/models/beta/beta_response_local_environment.rb +22 -0
  104. data/lib/openai/models/beta/beta_response_mcp_call_arguments_delta_event.rb +81 -0
  105. data/lib/openai/models/beta/beta_response_mcp_call_arguments_done_event.rb +79 -0
  106. data/lib/openai/models/beta/beta_response_mcp_call_completed_event.rb +68 -0
  107. data/lib/openai/models/beta/beta_response_mcp_call_failed_event.rb +68 -0
  108. data/lib/openai/models/beta/beta_response_mcp_call_in_progress_event.rb +68 -0
  109. data/lib/openai/models/beta/beta_response_mcp_list_tools_completed_event.rb +68 -0
  110. data/lib/openai/models/beta/beta_response_mcp_list_tools_failed_event.rb +68 -0
  111. data/lib/openai/models/beta/beta_response_mcp_list_tools_in_progress_event.rb +69 -0
  112. data/lib/openai/models/beta/beta_response_output_audio.rb +41 -0
  113. data/lib/openai/models/beta/beta_response_output_item.rb +1444 -0
  114. data/lib/openai/models/beta/beta_response_output_item_added_event.rb +71 -0
  115. data/lib/openai/models/beta/beta_response_output_item_done_event.rb +71 -0
  116. data/lib/openai/models/beta/beta_response_output_message.rb +139 -0
  117. data/lib/openai/models/beta/beta_response_output_refusal.rb +30 -0
  118. data/lib/openai/models/beta/beta_response_output_text.rb +292 -0
  119. data/lib/openai/models/beta/beta_response_output_text_annotation_added_event.rb +92 -0
  120. data/lib/openai/models/beta/beta_response_prompt.rb +65 -0
  121. data/lib/openai/models/beta/beta_response_queued_event.rb +60 -0
  122. data/lib/openai/models/beta/beta_response_reasoning_item.rb +151 -0
  123. data/lib/openai/models/beta/beta_response_reasoning_summary_part_added_event.rb +110 -0
  124. data/lib/openai/models/beta/beta_response_reasoning_summary_part_done_event.rb +132 -0
  125. data/lib/openai/models/beta/beta_response_reasoning_summary_text_delta_event.rb +88 -0
  126. data/lib/openai/models/beta/beta_response_reasoning_summary_text_done_event.rb +88 -0
  127. data/lib/openai/models/beta/beta_response_reasoning_text_delta_event.rb +87 -0
  128. data/lib/openai/models/beta/beta_response_reasoning_text_done_event.rb +87 -0
  129. data/lib/openai/models/beta/beta_response_refusal_delta_event.rb +87 -0
  130. data/lib/openai/models/beta/beta_response_refusal_done_event.rb +87 -0
  131. data/lib/openai/models/beta/beta_response_status.rb +25 -0
  132. data/lib/openai/models/beta/beta_response_stream_event.rb +203 -0
  133. data/lib/openai/models/beta/beta_response_text_config.rb +67 -0
  134. data/lib/openai/models/beta/beta_response_text_delta_event.rb +150 -0
  135. data/lib/openai/models/beta/beta_response_text_done_event.rb +150 -0
  136. data/lib/openai/models/beta/beta_response_tool_search_call.rb +117 -0
  137. data/lib/openai/models/beta/beta_response_tool_search_output_item.rb +117 -0
  138. data/lib/openai/models/beta/beta_response_tool_search_output_item_param.rb +109 -0
  139. data/lib/openai/models/beta/beta_response_usage.rb +95 -0
  140. data/lib/openai/models/beta/beta_response_web_search_call_completed_event.rb +72 -0
  141. data/lib/openai/models/beta/beta_response_web_search_call_in_progress_event.rb +72 -0
  142. data/lib/openai/models/beta/beta_response_web_search_call_searching_event.rb +72 -0
  143. data/lib/openai/models/beta/beta_responses_client_event.rb +1432 -0
  144. data/lib/openai/models/beta/beta_responses_server_event.rb +212 -0
  145. data/lib/openai/models/beta/beta_skill_reference.rb +36 -0
  146. data/lib/openai/models/beta/beta_tool.rb +910 -0
  147. data/lib/openai/models/beta/beta_tool_choice_allowed.rb +75 -0
  148. data/lib/openai/models/beta/beta_tool_choice_apply_patch.rb +22 -0
  149. data/lib/openai/models/beta/beta_tool_choice_custom.rb +30 -0
  150. data/lib/openai/models/beta/beta_tool_choice_function.rb +30 -0
  151. data/lib/openai/models/beta/beta_tool_choice_mcp.rb +42 -0
  152. data/lib/openai/models/beta/beta_tool_choice_options.rb +28 -0
  153. data/lib/openai/models/beta/beta_tool_choice_shell.rb +22 -0
  154. data/lib/openai/models/beta/beta_tool_choice_types.rb +67 -0
  155. data/lib/openai/models/beta/beta_tool_search_tool.rb +59 -0
  156. data/lib/openai/models/beta/beta_web_search_preview_tool.rb +143 -0
  157. data/lib/openai/models/beta/beta_web_search_tool.rb +162 -0
  158. data/lib/openai/models/beta/response_cancel_params.rb +37 -0
  159. data/lib/openai/models/beta/response_compact_params.rb +549 -0
  160. data/lib/openai/models/beta/response_create_params.rb +1343 -0
  161. data/lib/openai/models/beta/response_delete_params.rb +37 -0
  162. data/lib/openai/models/beta/response_retrieve_params.rb +74 -0
  163. data/lib/openai/models/beta/responses/beta_response_item_list.rb +54 -0
  164. data/lib/openai/models/beta/responses/input_item_list_params.rb +96 -0
  165. data/lib/openai/models/beta/responses/input_token_count_params.rb +542 -0
  166. data/lib/openai/models/beta/responses/input_token_count_response.rb +26 -0
  167. data/lib/openai/models/beta/threads/run_create_params.rb +7 -14
  168. data/lib/openai/models/chat/chat_completion_content_part.rb +31 -1
  169. data/lib/openai/models/chat/chat_completion_content_part_image.rb +31 -1
  170. data/lib/openai/models/chat/chat_completion_content_part_input_audio.rb +31 -1
  171. data/lib/openai/models/chat/chat_completion_content_part_text.rb +31 -1
  172. data/lib/openai/models/chat/completion_create_params.rb +200 -19
  173. data/lib/openai/models/chat_model.rb +3 -0
  174. data/lib/openai/models/completion_usage.rb +9 -1
  175. data/lib/openai/models/conversations/computer_screenshot_content.rb +28 -1
  176. data/lib/openai/models/conversations/conversation_create_params.rb +2 -2
  177. data/lib/openai/models/conversations/conversation_item.rb +106 -3
  178. data/lib/openai/models/conversations/conversation_item_list.rb +2 -2
  179. data/lib/openai/models/conversations/item_create_params.rb +2 -2
  180. data/lib/openai/models/evals/create_eval_completions_run_data_source.rb +7 -14
  181. data/lib/openai/models/evals/run_cancel_response.rb +16 -30
  182. data/lib/openai/models/evals/run_create_params.rb +16 -30
  183. data/lib/openai/models/evals/run_create_response.rb +16 -30
  184. data/lib/openai/models/evals/run_list_response.rb +16 -30
  185. data/lib/openai/models/evals/run_retrieve_response.rb +16 -30
  186. data/lib/openai/models/graders/score_model_grader.rb +7 -14
  187. data/lib/openai/models/realtime/realtime_response_create_mcp_tool.rb +39 -8
  188. data/lib/openai/models/realtime/realtime_session_create_request.rb +6 -0
  189. data/lib/openai/models/realtime/realtime_session_create_response.rb +45 -8
  190. data/lib/openai/models/realtime/realtime_tools_config_union.rb +39 -8
  191. data/lib/openai/models/reasoning.rb +47 -15
  192. data/lib/openai/models/reasoning_effort.rb +7 -13
  193. data/lib/openai/models/responses/apply_patch_tool.rb +23 -1
  194. data/lib/openai/models/responses/compacted_response.rb +2 -2
  195. data/lib/openai/models/responses/custom_tool.rb +21 -1
  196. data/lib/openai/models/responses/function_shell_tool.rb +23 -1
  197. data/lib/openai/models/responses/function_tool.rb +32 -3
  198. data/lib/openai/models/responses/input_token_count_params.rb +21 -8
  199. data/lib/openai/models/responses/namespace_tool.rb +41 -2
  200. data/lib/openai/models/responses/response.rb +98 -14
  201. data/lib/openai/models/responses/response_apply_patch_tool_call.rb +56 -1
  202. data/lib/openai/models/responses/response_apply_patch_tool_call_output.rb +56 -1
  203. data/lib/openai/models/responses/response_compact_params.rb +107 -4
  204. data/lib/openai/models/responses/response_create_params.rb +214 -13
  205. data/lib/openai/models/responses/response_custom_tool_call.rb +56 -1
  206. data/lib/openai/models/responses/response_custom_tool_call_output.rb +58 -1
  207. data/lib/openai/models/responses/response_error.rb +1 -0
  208. data/lib/openai/models/responses/response_function_shell_tool_call.rb +56 -1
  209. data/lib/openai/models/responses/response_function_shell_tool_call_output.rb +56 -1
  210. data/lib/openai/models/responses/response_function_tool_call.rb +56 -1
  211. data/lib/openai/models/responses/response_function_tool_call_output_item.rb +58 -1
  212. data/lib/openai/models/responses/response_input_file.rb +39 -8
  213. data/lib/openai/models/responses/response_input_file_content.rb +41 -8
  214. data/lib/openai/models/responses/response_input_image.rb +27 -1
  215. data/lib/openai/models/responses/response_input_image_content.rb +29 -1
  216. data/lib/openai/models/responses/response_input_item.rb +396 -8
  217. data/lib/openai/models/responses/response_input_text.rb +30 -1
  218. data/lib/openai/models/responses/response_input_text_content.rb +32 -1
  219. data/lib/openai/models/responses/response_item.rb +106 -3
  220. data/lib/openai/models/responses/response_item_list.rb +2 -2
  221. data/lib/openai/models/responses/response_output_item.rb +106 -3
  222. data/lib/openai/models/responses/response_output_item_added_event.rb +2 -2
  223. data/lib/openai/models/responses/response_output_item_done_event.rb +2 -2
  224. data/lib/openai/models/responses/response_reasoning_summary_part_done_event.rb +23 -1
  225. data/lib/openai/models/responses/response_tool_search_output_item.rb +2 -2
  226. data/lib/openai/models/responses/response_tool_search_output_item_param.rb +2 -2
  227. data/lib/openai/models/responses/response_usage.rb +9 -1
  228. data/lib/openai/models/responses/responses_client_event.rb +215 -13
  229. data/lib/openai/models/responses/tool.rb +74 -10
  230. data/lib/openai/models/video_create_params.rb +1 -0
  231. data/lib/openai/models/video_edit_params.rb +2 -2
  232. data/lib/openai/models/webhooks/safety_identifier_blocked_webhook_event.rb +118 -0
  233. data/lib/openai/models/webhooks/unwrap_webhook_event.rb +4 -1
  234. data/lib/openai/resources/beta/assistants.rb +2 -2
  235. data/lib/openai/resources/beta/responses/input_items.rb +58 -0
  236. data/lib/openai/resources/beta/responses/input_tokens.rb +73 -0
  237. data/lib/openai/resources/beta/responses.rb +440 -0
  238. data/lib/openai/resources/beta/threads/runs.rb +2 -2
  239. data/lib/openai/resources/beta.rb +4 -0
  240. data/lib/openai/resources/chat/completions.rb +10 -6
  241. data/lib/openai/resources/conversations/items.rb +3 -3
  242. data/lib/openai/resources/conversations.rb +1 -1
  243. data/lib/openai/resources/responses/input_items.rb +1 -1
  244. data/lib/openai/resources/responses/input_tokens.rb +3 -3
  245. data/lib/openai/resources/responses.rb +22 -12
  246. data/lib/openai/resources/webhooks.rb +1 -1
  247. data/lib/openai/version.rb +1 -1
  248. data/lib/openai.rb +163 -0
  249. data/rbi/openai/models/beta/assistant_create_params.rbi +12 -26
  250. data/rbi/openai/models/beta/assistant_update_params.rbi +12 -26
  251. data/rbi/openai/models/beta/beta_apply_patch_tool.rbi +99 -0
  252. data/rbi/openai/models/beta/beta_compacted_response.rbi +120 -0
  253. data/rbi/openai/models/beta/beta_computer_action.rbi +593 -0
  254. data/rbi/openai/models/beta/beta_computer_action_list.rbi +18 -0
  255. data/rbi/openai/models/beta/beta_computer_tool.rbi +33 -0
  256. data/rbi/openai/models/beta/beta_computer_use_preview_tool.rbi +126 -0
  257. data/rbi/openai/models/beta/beta_container_auto.rbi +231 -0
  258. data/rbi/openai/models/beta/beta_container_network_policy_allowlist.rbi +81 -0
  259. data/rbi/openai/models/beta/beta_container_network_policy_disabled.rbi +35 -0
  260. data/rbi/openai/models/beta/beta_container_network_policy_domain_secret.rbi +53 -0
  261. data/rbi/openai/models/beta/beta_container_reference.rbi +42 -0
  262. data/rbi/openai/models/beta/beta_custom_tool.rbi +302 -0
  263. data/rbi/openai/models/beta/beta_easy_input_message.rbi +211 -0
  264. data/rbi/openai/models/beta/beta_file_search_tool.rbi +863 -0
  265. data/rbi/openai/models/beta/beta_function_shell_tool.rbi +155 -0
  266. data/rbi/openai/models/beta/beta_function_tool.rbi +154 -0
  267. data/rbi/openai/models/beta/beta_inline_skill.rbi +68 -0
  268. data/rbi/openai/models/beta/beta_inline_skill_source.rbi +53 -0
  269. data/rbi/openai/models/beta/beta_local_environment.rbi +51 -0
  270. data/rbi/openai/models/beta/beta_local_skill.rbi +49 -0
  271. data/rbi/openai/models/beta/beta_namespace_tool.rbi +252 -0
  272. data/rbi/openai/models/beta/beta_response.rbi +2495 -0
  273. data/rbi/openai/models/beta/beta_response_apply_patch_tool_call.rbi +431 -0
  274. data/rbi/openai/models/beta/beta_response_apply_patch_tool_call_output.rbi +277 -0
  275. data/rbi/openai/models/beta/beta_response_audio_delta_event.rbi +110 -0
  276. data/rbi/openai/models/beta/beta_response_audio_done_event.rbi +100 -0
  277. data/rbi/openai/models/beta/beta_response_audio_transcript_delta_event.rbi +118 -0
  278. data/rbi/openai/models/beta/beta_response_audio_transcript_done_event.rbi +108 -0
  279. data/rbi/openai/models/beta/beta_response_code_interpreter_call_code_delta_event.rbi +136 -0
  280. data/rbi/openai/models/beta/beta_response_code_interpreter_call_code_done_event.rbi +134 -0
  281. data/rbi/openai/models/beta/beta_response_code_interpreter_call_completed_event.rbi +128 -0
  282. data/rbi/openai/models/beta/beta_response_code_interpreter_call_in_progress_event.rbi +128 -0
  283. data/rbi/openai/models/beta/beta_response_code_interpreter_call_interpreting_event.rbi +128 -0
  284. data/rbi/openai/models/beta/beta_response_code_interpreter_tool_call.rbi +315 -0
  285. data/rbi/openai/models/beta/beta_response_compaction_item.rbi +116 -0
  286. data/rbi/openai/models/beta/beta_response_compaction_item_param.rbi +114 -0
  287. data/rbi/openai/models/beta/beta_response_completed_event.rbi +111 -0
  288. data/rbi/openai/models/beta/beta_response_computer_tool_call.rbi +404 -0
  289. data/rbi/openai/models/beta/beta_response_computer_tool_call_output_item.rbi +296 -0
  290. data/rbi/openai/models/beta/beta_response_computer_tool_call_output_screenshot.rbi +62 -0
  291. data/rbi/openai/models/beta/beta_response_container_reference.rbi +41 -0
  292. data/rbi/openai/models/beta/beta_response_content.rbi +66 -0
  293. data/rbi/openai/models/beta/beta_response_content_part_added_event.rbi +205 -0
  294. data/rbi/openai/models/beta/beta_response_content_part_done_event.rbi +203 -0
  295. data/rbi/openai/models/beta/beta_response_conversation_param.rbi +35 -0
  296. data/rbi/openai/models/beta/beta_response_created_event.rbi +109 -0
  297. data/rbi/openai/models/beta/beta_response_custom_tool_call.rbi +242 -0
  298. data/rbi/openai/models/beta/beta_response_custom_tool_call_input_delta_event.rbi +134 -0
  299. data/rbi/openai/models/beta/beta_response_custom_tool_call_input_done_event.rbi +134 -0
  300. data/rbi/openai/models/beta/beta_response_custom_tool_call_item.rbi +113 -0
  301. data/rbi/openai/models/beta/beta_response_custom_tool_call_output.rbi +303 -0
  302. data/rbi/openai/models/beta/beta_response_custom_tool_call_output_item.rbi +114 -0
  303. data/rbi/openai/models/beta/beta_response_error.rbi +165 -0
  304. data/rbi/openai/models/beta/beta_response_error_event.rbi +120 -0
  305. data/rbi/openai/models/beta/beta_response_failed_event.rbi +107 -0
  306. data/rbi/openai/models/beta/beta_response_file_search_call_completed_event.rbi +126 -0
  307. data/rbi/openai/models/beta/beta_response_file_search_call_in_progress_event.rbi +126 -0
  308. data/rbi/openai/models/beta/beta_response_file_search_call_searching_event.rbi +126 -0
  309. data/rbi/openai/models/beta/beta_response_file_search_tool_call.rbi +328 -0
  310. data/rbi/openai/models/beta/beta_response_format_text_config.rbi +97 -0
  311. data/rbi/openai/models/beta/beta_response_format_text_json_schema_config.rbi +97 -0
  312. data/rbi/openai/models/beta/beta_response_function_call_arguments_delta_event.rbi +134 -0
  313. data/rbi/openai/models/beta/beta_response_function_call_arguments_done_event.rbi +140 -0
  314. data/rbi/openai/models/beta/beta_response_function_call_output_item.rbi +32 -0
  315. data/rbi/openai/models/beta/beta_response_function_call_output_item_list.rbi +21 -0
  316. data/rbi/openai/models/beta/beta_response_function_shell_call_output_content.rbi +160 -0
  317. data/rbi/openai/models/beta/beta_response_function_shell_tool_call.rbi +389 -0
  318. data/rbi/openai/models/beta/beta_response_function_shell_tool_call_output.rbi +470 -0
  319. data/rbi/openai/models/beta/beta_response_function_tool_call.rbi +310 -0
  320. data/rbi/openai/models/beta/beta_response_function_tool_call_item.rbi +115 -0
  321. data/rbi/openai/models/beta/beta_response_function_tool_call_output_item.rbi +364 -0
  322. data/rbi/openai/models/beta/beta_response_function_web_search.rbi +416 -0
  323. data/rbi/openai/models/beta/beta_response_image_gen_call_completed_event.rbi +127 -0
  324. data/rbi/openai/models/beta/beta_response_image_gen_call_generating_event.rbi +127 -0
  325. data/rbi/openai/models/beta/beta_response_image_gen_call_in_progress_event.rbi +126 -0
  326. data/rbi/openai/models/beta/beta_response_image_gen_call_partial_image_event.rbi +144 -0
  327. data/rbi/openai/models/beta/beta_response_in_progress_event.rbi +113 -0
  328. data/rbi/openai/models/beta/beta_response_includable.rbi +86 -0
  329. data/rbi/openai/models/beta/beta_response_incomplete_event.rbi +113 -0
  330. data/rbi/openai/models/beta/beta_response_inject_created_event.rbi +75 -0
  331. data/rbi/openai/models/beta/beta_response_inject_event.rbi +183 -0
  332. data/rbi/openai/models/beta/beta_response_inject_failed_event.rbi +304 -0
  333. data/rbi/openai/models/beta/beta_response_input.rbi +18 -0
  334. data/rbi/openai/models/beta/beta_response_input_audio.rbi +144 -0
  335. data/rbi/openai/models/beta/beta_response_input_content.rbi +31 -0
  336. data/rbi/openai/models/beta/beta_response_input_file.rbi +210 -0
  337. data/rbi/openai/models/beta/beta_response_input_file_content.rbi +211 -0
  338. data/rbi/openai/models/beta/beta_response_input_image.rbi +173 -0
  339. data/rbi/openai/models/beta/beta_response_input_image_content.rbi +191 -0
  340. data/rbi/openai/models/beta/beta_response_input_item.rbi +5505 -0
  341. data/rbi/openai/models/beta/beta_response_input_message_content_list.rbi +21 -0
  342. data/rbi/openai/models/beta/beta_response_input_message_item.rbi +235 -0
  343. data/rbi/openai/models/beta/beta_response_input_text.rbi +109 -0
  344. data/rbi/openai/models/beta/beta_response_input_text_content.rbi +115 -0
  345. data/rbi/openai/models/beta/beta_response_item.rbi +2592 -0
  346. data/rbi/openai/models/beta/beta_response_local_environment.rbi +35 -0
  347. data/rbi/openai/models/beta/beta_response_mcp_call_arguments_delta_event.rbi +137 -0
  348. data/rbi/openai/models/beta/beta_response_mcp_call_arguments_done_event.rbi +134 -0
  349. data/rbi/openai/models/beta/beta_response_mcp_call_completed_event.rbi +123 -0
  350. data/rbi/openai/models/beta/beta_response_mcp_call_failed_event.rbi +121 -0
  351. data/rbi/openai/models/beta/beta_response_mcp_call_in_progress_event.rbi +124 -0
  352. data/rbi/openai/models/beta/beta_response_mcp_list_tools_completed_event.rbi +126 -0
  353. data/rbi/openai/models/beta/beta_response_mcp_list_tools_failed_event.rbi +124 -0
  354. data/rbi/openai/models/beta/beta_response_mcp_list_tools_in_progress_event.rbi +127 -0
  355. data/rbi/openai/models/beta/beta_response_output_audio.rbi +53 -0
  356. data/rbi/openai/models/beta/beta_response_output_item.rbi +2627 -0
  357. data/rbi/openai/models/beta/beta_response_output_item_added_event.rbi +154 -0
  358. data/rbi/openai/models/beta/beta_response_output_item_done_event.rbi +154 -0
  359. data/rbi/openai/models/beta/beta_response_output_message.rbi +267 -0
  360. data/rbi/openai/models/beta/beta_response_output_refusal.rbi +41 -0
  361. data/rbi/openai/models/beta/beta_response_output_text.rbi +479 -0
  362. data/rbi/openai/models/beta/beta_response_output_text_annotation_added_event.rbi +150 -0
  363. data/rbi/openai/models/beta/beta_response_prompt.rbi +122 -0
  364. data/rbi/openai/models/beta/beta_response_queued_event.rbi +107 -0
  365. data/rbi/openai/models/beta/beta_response_reasoning_item.rbi +274 -0
  366. data/rbi/openai/models/beta/beta_response_reasoning_summary_part_added_event.rbi +188 -0
  367. data/rbi/openai/models/beta/beta_response_reasoning_summary_part_done_event.rbi +243 -0
  368. data/rbi/openai/models/beta/beta_response_reasoning_summary_text_delta_event.rbi +142 -0
  369. data/rbi/openai/models/beta/beta_response_reasoning_summary_text_done_event.rbi +142 -0
  370. data/rbi/openai/models/beta/beta_response_reasoning_text_delta_event.rbi +140 -0
  371. data/rbi/openai/models/beta/beta_response_reasoning_text_done_event.rbi +140 -0
  372. data/rbi/openai/models/beta/beta_response_refusal_delta_event.rbi +135 -0
  373. data/rbi/openai/models/beta/beta_response_refusal_done_event.rbi +135 -0
  374. data/rbi/openai/models/beta/beta_response_status.rbi +38 -0
  375. data/rbi/openai/models/beta/beta_response_stream_event.rbi +81 -0
  376. data/rbi/openai/models/beta/beta_response_text_config.rbi +166 -0
  377. data/rbi/openai/models/beta/beta_response_text_delta_event.rbi +263 -0
  378. data/rbi/openai/models/beta/beta_response_text_done_event.rbi +261 -0
  379. data/rbi/openai/models/beta/beta_response_tool_search_call.rbi +218 -0
  380. data/rbi/openai/models/beta/beta_response_tool_search_output_item.rbi +248 -0
  381. data/rbi/openai/models/beta/beta_response_tool_search_output_item_param.rbi +307 -0
  382. data/rbi/openai/models/beta/beta_response_usage.rbi +163 -0
  383. data/rbi/openai/models/beta/beta_response_web_search_call_completed_event.rbi +126 -0
  384. data/rbi/openai/models/beta/beta_response_web_search_call_in_progress_event.rbi +126 -0
  385. data/rbi/openai/models/beta/beta_response_web_search_call_searching_event.rbi +126 -0
  386. data/rbi/openai/models/beta/beta_responses_client_event.rbi +2831 -0
  387. data/rbi/openai/models/beta/beta_responses_server_event.rbi +83 -0
  388. data/rbi/openai/models/beta/beta_skill_reference.rbi +52 -0
  389. data/rbi/openai/models/beta/beta_tool.rbi +1835 -0
  390. data/rbi/openai/models/beta/beta_tool_choice_allowed.rbi +126 -0
  391. data/rbi/openai/models/beta/beta_tool_choice_apply_patch.rbi +35 -0
  392. data/rbi/openai/models/beta/beta_tool_choice_custom.rbi +38 -0
  393. data/rbi/openai/models/beta/beta_tool_choice_function.rbi +41 -0
  394. data/rbi/openai/models/beta/beta_tool_choice_mcp.rbi +55 -0
  395. data/rbi/openai/models/beta/beta_tool_choice_options.rbi +38 -0
  396. data/rbi/openai/models/beta/beta_tool_choice_shell.rbi +32 -0
  397. data/rbi/openai/models/beta/beta_tool_choice_types.rbi +134 -0
  398. data/rbi/openai/models/beta/beta_tool_search_tool.rbi +109 -0
  399. data/rbi/openai/models/beta/beta_web_search_preview_tool.rbi +311 -0
  400. data/rbi/openai/models/beta/beta_web_search_tool.rbi +329 -0
  401. data/rbi/openai/models/beta/response_cancel_params.rbi +83 -0
  402. data/rbi/openai/models/beta/response_compact_params.rbi +1033 -0
  403. data/rbi/openai/models/beta/response_create_params.rbi +2739 -0
  404. data/rbi/openai/models/beta/response_delete_params.rbi +83 -0
  405. data/rbi/openai/models/beta/response_retrieve_params.rbi +145 -0
  406. data/rbi/openai/models/beta/responses/beta_response_item_list.rbi +113 -0
  407. data/rbi/openai/models/beta/responses/input_item_list_params.rbi +223 -0
  408. data/rbi/openai/models/beta/responses/input_token_count_params.rbi +1248 -0
  409. data/rbi/openai/models/beta/responses/input_token_count_response.rbi +37 -0
  410. data/rbi/openai/models/beta/threads/run_create_params.rbi +12 -26
  411. data/rbi/openai/models/chat/chat_completion_content_part.rbi +57 -1
  412. data/rbi/openai/models/chat/chat_completion_content_part_image.rbi +57 -1
  413. data/rbi/openai/models/chat/chat_completion_content_part_input_audio.rbi +57 -1
  414. data/rbi/openai/models/chat/chat_completion_content_part_text.rbi +70 -2
  415. data/rbi/openai/models/chat/completion_create_params.rbi +513 -32
  416. data/rbi/openai/models/chat_model.rbi +3 -0
  417. data/rbi/openai/models/completion_usage.rbi +21 -4
  418. data/rbi/openai/models/conversations/computer_screenshot_content.rbi +57 -1
  419. data/rbi/openai/models/conversations/conversation_create_params.rbi +9 -3
  420. data/rbi/openai/models/conversations/conversation_item.rbi +178 -0
  421. data/rbi/openai/models/conversations/conversation_item_list.rbi +2 -0
  422. data/rbi/openai/models/conversations/item_create_params.rbi +9 -3
  423. data/rbi/openai/models/evals/create_eval_completions_run_data_source.rbi +12 -26
  424. data/rbi/openai/models/evals/run_cancel_response.rbi +26 -52
  425. data/rbi/openai/models/evals/run_create_params.rbi +28 -52
  426. data/rbi/openai/models/evals/run_create_response.rbi +26 -52
  427. data/rbi/openai/models/evals/run_list_response.rbi +26 -52
  428. data/rbi/openai/models/evals/run_retrieve_response.rbi +26 -52
  429. data/rbi/openai/models/graders/score_model_grader.rbi +12 -26
  430. data/rbi/openai/models/realtime/realtime_response_create_mcp_tool.rbi +84 -11
  431. data/rbi/openai/models/realtime/realtime_session_create_request.rbi +10 -0
  432. data/rbi/openai/models/realtime/realtime_session_create_response.rbi +94 -11
  433. data/rbi/openai/models/realtime/realtime_tools_config_union.rbi +84 -11
  434. data/rbi/openai/models/reasoning.rbi +51 -26
  435. data/rbi/openai/models/reasoning_effort.rbi +7 -13
  436. data/rbi/openai/models/responses/apply_patch_tool.rbi +69 -2
  437. data/rbi/openai/models/responses/compacted_response.rbi +2 -0
  438. data/rbi/openai/models/responses/custom_tool.rbi +53 -0
  439. data/rbi/openai/models/responses/function_shell_tool.rbi +57 -0
  440. data/rbi/openai/models/responses/function_tool.rbi +68 -3
  441. data/rbi/openai/models/responses/input_token_count_params.rbi +32 -0
  442. data/rbi/openai/models/responses/namespace_tool.rbi +76 -0
  443. data/rbi/openai/models/responses/response.rbi +192 -3
  444. data/rbi/openai/models/responses/response_apply_patch_tool_call.rbi +98 -0
  445. data/rbi/openai/models/responses/response_apply_patch_tool_call_output.rbi +98 -0
  446. data/rbi/openai/models/responses/response_compact_params.rbi +231 -0
  447. data/rbi/openai/models/responses/response_create_params.rbi +537 -6
  448. data/rbi/openai/models/responses/response_custom_tool_call.rbi +104 -0
  449. data/rbi/openai/models/responses/response_custom_tool_call_output.rbi +111 -1
  450. data/rbi/openai/models/responses/response_error.rbi +5 -0
  451. data/rbi/openai/models/responses/response_function_shell_tool_call.rbi +98 -0
  452. data/rbi/openai/models/responses/response_function_shell_tool_call_output.rbi +98 -0
  453. data/rbi/openai/models/responses/response_function_tool_call.rbi +104 -0
  454. data/rbi/openai/models/responses/response_function_tool_call_output_item.rbi +104 -0
  455. data/rbi/openai/models/responses/response_input_file.rbi +77 -10
  456. data/rbi/openai/models/responses/response_input_file_content.rbi +83 -10
  457. data/rbi/openai/models/responses/response_input_image.rbi +57 -1
  458. data/rbi/openai/models/responses/response_input_image_content.rbi +63 -1
  459. data/rbi/openai/models/responses/response_input_item.rbi +748 -8
  460. data/rbi/openai/models/responses/response_input_text.rbi +70 -2
  461. data/rbi/openai/models/responses/response_input_text_content.rbi +76 -2
  462. data/rbi/openai/models/responses/response_item.rbi +178 -0
  463. data/rbi/openai/models/responses/response_item_list.rbi +2 -0
  464. data/rbi/openai/models/responses/response_output_item.rbi +178 -0
  465. data/rbi/openai/models/responses/response_output_item_added_event.rbi +2 -0
  466. data/rbi/openai/models/responses/response_output_item_done_event.rbi +2 -0
  467. data/rbi/openai/models/responses/response_reasoning_summary_part_done_event.rbi +58 -1
  468. data/rbi/openai/models/responses/response_tool_search_output_item.rbi +1 -0
  469. data/rbi/openai/models/responses/response_tool_search_output_item_param.rbi +3 -0
  470. data/rbi/openai/models/responses/response_usage.rbi +16 -2
  471. data/rbi/openai/models/responses/responses_client_event.rbi +537 -6
  472. data/rbi/openai/models/responses/tool.rbi +166 -12
  473. data/rbi/openai/models/video_edit_params.rbi +1 -1
  474. data/rbi/openai/models/webhooks/safety_identifier_blocked_webhook_event.rbi +209 -0
  475. data/rbi/openai/models/webhooks/unwrap_webhook_event.rbi +2 -1
  476. data/rbi/openai/resources/beta/assistants.rbi +12 -26
  477. data/rbi/openai/resources/beta/responses/input_items.rbi +58 -0
  478. data/rbi/openai/resources/beta/responses/input_tokens.rbi +154 -0
  479. data/rbi/openai/resources/beta/responses.rbi +903 -0
  480. data/rbi/openai/resources/beta/threads/runs.rbi +12 -26
  481. data/rbi/openai/resources/beta.rbi +3 -0
  482. data/rbi/openai/resources/chat/completions.rbi +48 -28
  483. data/rbi/openai/resources/conversations/items.rbi +3 -1
  484. data/rbi/openai/resources/conversations.rbi +3 -1
  485. data/rbi/openai/resources/responses/input_tokens.rbi +2 -0
  486. data/rbi/openai/resources/responses.rbi +54 -2
  487. data/rbi/openai/resources/webhooks.rbi +2 -1
  488. data/sig/openai/client.rbs +1 -1
  489. data/sig/openai/internal/transport/base_client.rbs +2 -2
  490. data/sig/openai/models/beta/beta_apply_patch_tool.rbs +40 -0
  491. data/sig/openai/models/beta/beta_compacted_response.rbs +44 -0
  492. data/sig/openai/models/beta/beta_computer_action.rbs +259 -0
  493. data/sig/openai/models/beta/beta_computer_action_list.rbs +12 -0
  494. data/sig/openai/models/beta/beta_computer_tool.rbs +17 -0
  495. data/sig/openai/models/beta/beta_computer_use_preview_tool.rbs +53 -0
  496. data/sig/openai/models/beta/beta_container_auto.rbs +86 -0
  497. data/sig/openai/models/beta/beta_container_network_policy_allowlist.rbs +38 -0
  498. data/sig/openai/models/beta/beta_container_network_policy_disabled.rbs +17 -0
  499. data/sig/openai/models/beta/beta_container_network_policy_domain_secret.rbs +22 -0
  500. data/sig/openai/models/beta/beta_container_reference.rbs +23 -0
  501. data/sig/openai/models/beta/beta_custom_tool.rbs +126 -0
  502. data/sig/openai/models/beta/beta_easy_input_message.rbs +87 -0
  503. data/sig/openai/models/beta/beta_file_search_tool.rbs +298 -0
  504. data/sig/openai/models/beta/beta_function_shell_tool.rbs +56 -0
  505. data/sig/openai/models/beta/beta_function_tool.rbs +72 -0
  506. data/sig/openai/models/beta/beta_inline_skill.rbs +39 -0
  507. data/sig/openai/models/beta/beta_inline_skill_source.rbs +30 -0
  508. data/sig/openai/models/beta/beta_local_environment.rbs +30 -0
  509. data/sig/openai/models/beta/beta_local_skill.rbs +26 -0
  510. data/sig/openai/models/beta/beta_namespace_tool.rbs +114 -0
  511. data/sig/openai/models/beta/beta_response.rbs +860 -0
  512. data/sig/openai/models/beta/beta_response_apply_patch_tool_call.rbs +177 -0
  513. data/sig/openai/models/beta/beta_response_apply_patch_tool_call_output.rbs +118 -0
  514. data/sig/openai/models/beta/beta_response_audio_delta_event.rbs +49 -0
  515. data/sig/openai/models/beta/beta_response_audio_done_event.rbs +44 -0
  516. data/sig/openai/models/beta/beta_response_audio_transcript_delta_event.rbs +49 -0
  517. data/sig/openai/models/beta/beta_response_audio_transcript_done_event.rbs +44 -0
  518. data/sig/openai/models/beta/beta_response_code_interpreter_call_code_delta_event.rbs +59 -0
  519. data/sig/openai/models/beta/beta_response_code_interpreter_call_code_done_event.rbs +59 -0
  520. data/sig/openai/models/beta/beta_response_code_interpreter_call_completed_event.rbs +54 -0
  521. data/sig/openai/models/beta/beta_response_code_interpreter_call_in_progress_event.rbs +54 -0
  522. data/sig/openai/models/beta/beta_response_code_interpreter_call_interpreting_event.rbs +54 -0
  523. data/sig/openai/models/beta/beta_response_code_interpreter_tool_call.rbs +113 -0
  524. data/sig/openai/models/beta/beta_response_compaction_item.rbs +60 -0
  525. data/sig/openai/models/beta/beta_response_compaction_item_param.rbs +49 -0
  526. data/sig/openai/models/beta/beta_response_completed_event.rbs +49 -0
  527. data/sig/openai/models/beta/beta_response_computer_tool_call.rbs +118 -0
  528. data/sig/openai/models/beta/beta_response_computer_tool_call_output_item.rbs +107 -0
  529. data/sig/openai/models/beta/beta_response_computer_tool_call_output_screenshot.rbs +34 -0
  530. data/sig/openai/models/beta/beta_response_container_reference.rbs +23 -0
  531. data/sig/openai/models/beta/beta_response_content.rbs +33 -0
  532. data/sig/openai/models/beta/beta_response_content_part_added_event.rbs +87 -0
  533. data/sig/openai/models/beta/beta_response_content_part_done_event.rbs +87 -0
  534. data/sig/openai/models/beta/beta_response_conversation_param.rbs +17 -0
  535. data/sig/openai/models/beta/beta_response_created_event.rbs +49 -0
  536. data/sig/openai/models/beta/beta_response_custom_tool_call.rbs +105 -0
  537. data/sig/openai/models/beta/beta_response_custom_tool_call_input_delta_event.rbs +59 -0
  538. data/sig/openai/models/beta/beta_response_custom_tool_call_input_done_event.rbs +59 -0
  539. data/sig/openai/models/beta/beta_response_custom_tool_call_item.rbs +54 -0
  540. data/sig/openai/models/beta/beta_response_custom_tool_call_output.rbs +116 -0
  541. data/sig/openai/models/beta/beta_response_custom_tool_call_output_item.rbs +54 -0
  542. data/sig/openai/models/beta/beta_response_error.rbs +73 -0
  543. data/sig/openai/models/beta/beta_response_error_event.rbs +59 -0
  544. data/sig/openai/models/beta/beta_response_failed_event.rbs +49 -0
  545. data/sig/openai/models/beta/beta_response_file_search_call_completed_event.rbs +54 -0
  546. data/sig/openai/models/beta/beta_response_file_search_call_in_progress_event.rbs +54 -0
  547. data/sig/openai/models/beta/beta_response_file_search_call_searching_event.rbs +54 -0
  548. data/sig/openai/models/beta/beta_response_file_search_tool_call.rbs +127 -0
  549. data/sig/openai/models/beta/beta_response_format_text_config.rbs +38 -0
  550. data/sig/openai/models/beta/beta_response_format_text_json_schema_config.rbs +46 -0
  551. data/sig/openai/models/beta/beta_response_function_call_arguments_delta_event.rbs +59 -0
  552. data/sig/openai/models/beta/beta_response_function_call_arguments_done_event.rbs +64 -0
  553. data/sig/openai/models/beta/beta_response_function_call_output_item.rbs +18 -0
  554. data/sig/openai/models/beta/beta_response_function_call_output_item_list.rbs +12 -0
  555. data/sig/openai/models/beta/beta_response_function_shell_call_output_content.rbs +66 -0
  556. data/sig/openai/models/beta/beta_response_function_shell_tool_call.rbs +161 -0
  557. data/sig/openai/models/beta/beta_response_function_shell_tool_call_output.rbs +190 -0
  558. data/sig/openai/models/beta/beta_response_function_tool_call.rbs +126 -0
  559. data/sig/openai/models/beta/beta_response_function_tool_call_item.rbs +54 -0
  560. data/sig/openai/models/beta/beta_response_function_tool_call_output_item.rbs +138 -0
  561. data/sig/openai/models/beta/beta_response_function_web_search.rbs +165 -0
  562. data/sig/openai/models/beta/beta_response_image_gen_call_completed_event.rbs +54 -0
  563. data/sig/openai/models/beta/beta_response_image_gen_call_generating_event.rbs +54 -0
  564. data/sig/openai/models/beta/beta_response_image_gen_call_in_progress_event.rbs +54 -0
  565. data/sig/openai/models/beta/beta_response_image_gen_call_partial_image_event.rbs +64 -0
  566. data/sig/openai/models/beta/beta_response_in_progress_event.rbs +49 -0
  567. data/sig/openai/models/beta/beta_response_includable.rbs +32 -0
  568. data/sig/openai/models/beta/beta_response_incomplete_event.rbs +49 -0
  569. data/sig/openai/models/beta/beta_response_inject_created_event.rbs +41 -0
  570. data/sig/openai/models/beta/beta_response_inject_event.rbs +34 -0
  571. data/sig/openai/models/beta/beta_response_inject_failed_event.rbs +84 -0
  572. data/sig/openai/models/beta/beta_response_input.rbs +12 -0
  573. data/sig/openai/models/beta/beta_response_input_audio.rbs +62 -0
  574. data/sig/openai/models/beta/beta_response_input_content.rbs +18 -0
  575. data/sig/openai/models/beta/beta_response_input_file.rbs +90 -0
  576. data/sig/openai/models/beta/beta_response_input_file_content.rbs +80 -0
  577. data/sig/openai/models/beta/beta_response_input_image.rbs +71 -0
  578. data/sig/openai/models/beta/beta_response_input_image_content.rbs +67 -0
  579. data/sig/openai/models/beta/beta_response_input_item.rbs +2064 -0
  580. data/sig/openai/models/beta/beta_response_input_message_content_list.rbs +12 -0
  581. data/sig/openai/models/beta/beta_response_input_message_item.rbs +87 -0
  582. data/sig/openai/models/beta/beta_response_input_text.rbs +48 -0
  583. data/sig/openai/models/beta/beta_response_input_text_content.rbs +44 -0
  584. data/sig/openai/models/beta/beta_response_item.rbs +1097 -0
  585. data/sig/openai/models/beta/beta_response_local_environment.rbs +17 -0
  586. data/sig/openai/models/beta/beta_response_mcp_call_arguments_delta_event.rbs +59 -0
  587. data/sig/openai/models/beta/beta_response_mcp_call_arguments_done_event.rbs +59 -0
  588. data/sig/openai/models/beta/beta_response_mcp_call_completed_event.rbs +54 -0
  589. data/sig/openai/models/beta/beta_response_mcp_call_failed_event.rbs +54 -0
  590. data/sig/openai/models/beta/beta_response_mcp_call_in_progress_event.rbs +54 -0
  591. data/sig/openai/models/beta/beta_response_mcp_list_tools_completed_event.rbs +54 -0
  592. data/sig/openai/models/beta/beta_response_mcp_list_tools_failed_event.rbs +54 -0
  593. data/sig/openai/models/beta/beta_response_mcp_list_tools_in_progress_event.rbs +54 -0
  594. data/sig/openai/models/beta/beta_response_output_audio.rbs +30 -0
  595. data/sig/openai/models/beta/beta_response_output_item.rbs +1096 -0
  596. data/sig/openai/models/beta/beta_response_output_item_added_event.rbs +54 -0
  597. data/sig/openai/models/beta/beta_response_output_item_done_event.rbs +54 -0
  598. data/sig/openai/models/beta/beta_response_output_message.rbs +97 -0
  599. data/sig/openai/models/beta/beta_response_output_refusal.rbs +19 -0
  600. data/sig/openai/models/beta/beta_response_output_text.rbs +243 -0
  601. data/sig/openai/models/beta/beta_response_output_text_annotation_added_event.rbs +69 -0
  602. data/sig/openai/models/beta/beta_response_prompt.rbs +46 -0
  603. data/sig/openai/models/beta/beta_response_queued_event.rbs +49 -0
  604. data/sig/openai/models/beta/beta_response_reasoning_item.rbs +108 -0
  605. data/sig/openai/models/beta/beta_response_reasoning_summary_part_added_event.rbs +76 -0
  606. data/sig/openai/models/beta/beta_response_reasoning_summary_part_done_event.rbs +95 -0
  607. data/sig/openai/models/beta/beta_response_reasoning_summary_text_delta_event.rbs +64 -0
  608. data/sig/openai/models/beta/beta_response_reasoning_summary_text_done_event.rbs +64 -0
  609. data/sig/openai/models/beta/beta_response_reasoning_text_delta_event.rbs +64 -0
  610. data/sig/openai/models/beta/beta_response_reasoning_text_done_event.rbs +64 -0
  611. data/sig/openai/models/beta/beta_response_refusal_delta_event.rbs +64 -0
  612. data/sig/openai/models/beta/beta_response_refusal_done_event.rbs +64 -0
  613. data/sig/openai/models/beta/beta_response_status.rbs +23 -0
  614. data/sig/openai/models/beta/beta_response_stream_event.rbs +68 -0
  615. data/sig/openai/models/beta/beta_response_text_config.rbs +45 -0
  616. data/sig/openai/models/beta/beta_response_text_delta_event.rbs +116 -0
  617. data/sig/openai/models/beta/beta_response_text_done_event.rbs +116 -0
  618. data/sig/openai/models/beta/beta_response_tool_search_call.rbs +98 -0
  619. data/sig/openai/models/beta/beta_response_tool_search_output_item.rbs +98 -0
  620. data/sig/openai/models/beta/beta_response_tool_search_output_item_param.rbs +91 -0
  621. data/sig/openai/models/beta/beta_response_usage.rbs +73 -0
  622. data/sig/openai/models/beta/beta_response_web_search_call_completed_event.rbs +54 -0
  623. data/sig/openai/models/beta/beta_response_web_search_call_in_progress_event.rbs +54 -0
  624. data/sig/openai/models/beta/beta_response_web_search_call_searching_event.rbs +54 -0
  625. data/sig/openai/models/beta/beta_responses_client_event.rbs +804 -0
  626. data/sig/openai/models/beta/beta_responses_server_event.rbs +70 -0
  627. data/sig/openai/models/beta/beta_skill_reference.rbs +32 -0
  628. data/sig/openai/models/beta/beta_tool.rbs +634 -0
  629. data/sig/openai/models/beta/beta_tool_choice_allowed.rbs +45 -0
  630. data/sig/openai/models/beta/beta_tool_choice_apply_patch.rbs +17 -0
  631. data/sig/openai/models/beta/beta_tool_choice_custom.rbs +19 -0
  632. data/sig/openai/models/beta/beta_tool_choice_function.rbs +19 -0
  633. data/sig/openai/models/beta/beta_tool_choice_mcp.rbs +26 -0
  634. data/sig/openai/models/beta/beta_tool_choice_options.rbs +19 -0
  635. data/sig/openai/models/beta/beta_tool_choice_shell.rbs +17 -0
  636. data/sig/openai/models/beta/beta_tool_choice_types.rbs +47 -0
  637. data/sig/openai/models/beta/beta_tool_search_tool.rbs +54 -0
  638. data/sig/openai/models/beta/beta_web_search_preview_tool.rbs +118 -0
  639. data/sig/openai/models/beta/beta_web_search_tool.rbs +127 -0
  640. data/sig/openai/models/beta/response_cancel_params.rbs +47 -0
  641. data/sig/openai/models/beta/response_compact_params.rbs +368 -0
  642. data/sig/openai/models/beta/response_create_params.rbs +804 -0
  643. data/sig/openai/models/beta/response_delete_params.rbs +47 -0
  644. data/sig/openai/models/beta/response_retrieve_params.rbs +70 -0
  645. data/sig/openai/models/beta/responses/beta_response_item_list.rbs +44 -0
  646. data/sig/openai/models/beta/responses/input_item_list_params.rbs +92 -0
  647. data/sig/openai/models/beta/responses/input_token_count_params.rbs +325 -0
  648. data/sig/openai/models/beta/responses/input_token_count_response.rbs +26 -0
  649. data/sig/openai/models/chat/chat_completion_content_part.rbs +21 -2
  650. data/sig/openai/models/chat/chat_completion_content_part_image.rbs +21 -2
  651. data/sig/openai/models/chat/chat_completion_content_part_input_audio.rbs +21 -2
  652. data/sig/openai/models/chat/chat_completion_content_part_text.rbs +32 -3
  653. data/sig/openai/models/chat/completion_create_params.rbs +153 -3
  654. data/sig/openai/models/chat_model.rbs +7 -1
  655. data/sig/openai/models/completion_usage.rbs +15 -2
  656. data/sig/openai/models/conversations/computer_screenshot_content.rbs +21 -2
  657. data/sig/openai/models/conversations/conversation_item.rbs +87 -0
  658. data/sig/openai/models/realtime/realtime_response_create_mcp_tool.rbs +25 -2
  659. data/sig/openai/models/realtime/realtime_session_create_request.rbs +4 -0
  660. data/sig/openai/models/realtime/realtime_session_create_response.rbs +29 -2
  661. data/sig/openai/models/realtime/realtime_tools_config_union.rbs +25 -2
  662. data/sig/openai/models/reasoning.rbs +20 -0
  663. data/sig/openai/models/reasoning_effort.rbs +3 -1
  664. data/sig/openai/models/responses/apply_patch_tool.rbs +26 -3
  665. data/sig/openai/models/responses/custom_tool.rbs +16 -0
  666. data/sig/openai/models/responses/function_shell_tool.rbs +16 -0
  667. data/sig/openai/models/responses/function_tool.rbs +23 -2
  668. data/sig/openai/models/responses/input_token_count_params.rbs +12 -0
  669. data/sig/openai/models/responses/namespace_tool.rbs +21 -0
  670. data/sig/openai/models/responses/response.rbs +64 -0
  671. data/sig/openai/models/responses/response_apply_patch_tool_call.rbs +37 -0
  672. data/sig/openai/models/responses/response_apply_patch_tool_call_output.rbs +37 -0
  673. data/sig/openai/models/responses/response_compact_params.rbs +63 -1
  674. data/sig/openai/models/responses/response_create_params.rbs +165 -3
  675. data/sig/openai/models/responses/response_custom_tool_call.rbs +37 -0
  676. data/sig/openai/models/responses/response_custom_tool_call_output.rbs +39 -2
  677. data/sig/openai/models/responses/response_error.rbs +2 -0
  678. data/sig/openai/models/responses/response_function_shell_tool_call.rbs +37 -0
  679. data/sig/openai/models/responses/response_function_shell_tool_call_output.rbs +37 -0
  680. data/sig/openai/models/responses/response_function_tool_call.rbs +37 -0
  681. data/sig/openai/models/responses/response_function_tool_call_output_item.rbs +37 -0
  682. data/sig/openai/models/responses/response_input_file.rbs +23 -3
  683. data/sig/openai/models/responses/response_input_file_content.rbs +19 -3
  684. data/sig/openai/models/responses/response_input_image.rbs +21 -2
  685. data/sig/openai/models/responses/response_input_image_content.rbs +17 -2
  686. data/sig/openai/models/responses/response_input_item.rbs +274 -2
  687. data/sig/openai/models/responses/response_input_text.rbs +32 -3
  688. data/sig/openai/models/responses/response_input_text_content.rbs +28 -3
  689. data/sig/openai/models/responses/response_item.rbs +87 -0
  690. data/sig/openai/models/responses/response_output_item.rbs +87 -0
  691. data/sig/openai/models/responses/response_reasoning_summary_part_done_event.rbs +21 -2
  692. data/sig/openai/models/responses/response_usage.rbs +12 -3
  693. data/sig/openai/models/responses/responses_client_event.rbs +165 -3
  694. data/sig/openai/models/responses/tool.rbs +54 -4
  695. data/sig/openai/models/webhooks/safety_identifier_blocked_webhook_event.rbs +99 -0
  696. data/sig/openai/models/webhooks/unwrap_webhook_event.rbs +1 -0
  697. data/sig/openai/resources/beta/responses/input_items.rbs +21 -0
  698. data/sig/openai/resources/beta/responses/input_tokens.rbs +28 -0
  699. data/sig/openai/resources/beta/responses.rbs +128 -0
  700. data/sig/openai/resources/beta.rbs +2 -0
  701. data/sig/openai/resources/chat/completions.rbs +2 -0
  702. data/sig/openai/resources/responses.rbs +3 -0
  703. data/sig/openai/resources/webhooks.rbs +2 -1
  704. metadata +491 -2
@@ -0,0 +1,910 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Beta
6
+ # A tool that can be used to generate a response.
7
+ module BetaTool
8
+ extend OpenAI::Internal::Type::Union
9
+
10
+ discriminator :type
11
+
12
+ # Defines a function in your own code the model can choose to call. Learn more about [function calling](https://platform.openai.com/docs/guides/function-calling).
13
+ variant :function, -> { OpenAI::Beta::BetaFunctionTool }
14
+
15
+ # A tool that searches for relevant content from uploaded files. Learn more about the [file search tool](https://platform.openai.com/docs/guides/tools-file-search).
16
+ variant :file_search, -> { OpenAI::Beta::BetaFileSearchTool }
17
+
18
+ # A tool that controls a virtual computer. Learn more about the [computer tool](https://platform.openai.com/docs/guides/tools-computer-use).
19
+ variant :computer, -> { OpenAI::Beta::BetaComputerTool }
20
+
21
+ # A tool that controls a virtual computer. Learn more about the [computer tool](https://platform.openai.com/docs/guides/tools-computer-use).
22
+ variant :computer_use_preview, -> { OpenAI::Beta::BetaComputerUsePreviewTool }
23
+
24
+ # Give the model access to additional tools via remote Model Context Protocol
25
+ # (MCP) servers. [Learn more about MCP](https://platform.openai.com/docs/guides/tools-remote-mcp).
26
+ variant :mcp, -> { OpenAI::Beta::BetaTool::Mcp }
27
+
28
+ # A tool that runs Python code to help generate a response to a prompt.
29
+ variant :code_interpreter, -> { OpenAI::Beta::BetaTool::CodeInterpreter }
30
+
31
+ variant :programmatic_tool_calling, -> { OpenAI::Beta::BetaTool::ProgrammaticToolCalling }
32
+
33
+ # A tool that generates images using the GPT image models.
34
+ variant :image_generation, -> { OpenAI::Beta::BetaTool::ImageGeneration }
35
+
36
+ # A tool that allows the model to execute shell commands in a local environment.
37
+ variant :local_shell, -> { OpenAI::Beta::BetaTool::LocalShell }
38
+
39
+ # A tool that allows the model to execute shell commands.
40
+ variant :shell, -> { OpenAI::Beta::BetaFunctionShellTool }
41
+
42
+ # A custom tool that processes input using a specified format. Learn more about [custom tools](https://platform.openai.com/docs/guides/function-calling#custom-tools)
43
+ variant :custom, -> { OpenAI::Beta::BetaCustomTool }
44
+
45
+ # Groups function/custom tools under a shared namespace.
46
+ variant :namespace, -> { OpenAI::Beta::BetaNamespaceTool }
47
+
48
+ # Hosted or BYOT tool search configuration for deferred tools.
49
+ variant :tool_search, -> { OpenAI::Beta::BetaToolSearchTool }
50
+
51
+ # Allows the assistant to create, delete, or update files using unified diffs.
52
+ variant :apply_patch, -> { OpenAI::Beta::BetaApplyPatchTool }
53
+
54
+ # Search the Internet for sources related to the prompt. Learn more about the
55
+ # [web search tool](https://platform.openai.com/docs/guides/tools-web-search).
56
+ variant -> { OpenAI::Beta::BetaWebSearchTool }
57
+
58
+ # This tool searches the web for relevant results to use in a response. Learn more about the [web search tool](https://platform.openai.com/docs/guides/tools-web-search).
59
+ variant -> { OpenAI::Beta::BetaWebSearchPreviewTool }
60
+
61
+ class Mcp < OpenAI::Internal::Type::BaseModel
62
+ # @!attribute server_label
63
+ # A label for this MCP server, used to identify it in tool calls.
64
+ #
65
+ # @return [String]
66
+ required :server_label, String
67
+
68
+ # @!attribute type
69
+ # The type of the MCP tool. Always `mcp`.
70
+ #
71
+ # @return [Symbol, :mcp]
72
+ required :type, const: :mcp
73
+
74
+ # @!attribute allowed_callers
75
+ # The tool invocation context(s).
76
+ #
77
+ # @return [Array<Symbol, OpenAI::Models::Beta::BetaTool::Mcp::AllowedCaller>, nil]
78
+ optional :allowed_callers,
79
+ -> { OpenAI::Internal::Type::ArrayOf[enum: OpenAI::Beta::BetaTool::Mcp::AllowedCaller] },
80
+ nil?: true
81
+
82
+ # @!attribute allowed_tools
83
+ # List of allowed tool names or a filter object.
84
+ #
85
+ # @return [Array<String>, OpenAI::Models::Beta::BetaTool::Mcp::AllowedTools::McpToolFilter, nil]
86
+ optional :allowed_tools, union: -> { OpenAI::Beta::BetaTool::Mcp::AllowedTools }, nil?: true
87
+
88
+ # @!attribute authorization
89
+ # An OAuth access token that can be used with a remote MCP server, either with a
90
+ # custom MCP server URL or a service connector. Your application must handle the
91
+ # OAuth authorization flow and provide the token here.
92
+ #
93
+ # @return [String, nil]
94
+ optional :authorization, String
95
+
96
+ # @!attribute connector_id
97
+ # Identifier for service connectors, like those available in ChatGPT. One of
98
+ # `server_url`, `connector_id`, or `tunnel_id` must be provided. Learn more about
99
+ # service connectors
100
+ # [here](https://platform.openai.com/docs/guides/tools-remote-mcp#connectors).
101
+ #
102
+ # Currently supported `connector_id` values are:
103
+ #
104
+ # - Dropbox: `connector_dropbox`
105
+ # - Gmail: `connector_gmail`
106
+ # - Google Calendar: `connector_googlecalendar`
107
+ # - Google Drive: `connector_googledrive`
108
+ # - Microsoft Teams: `connector_microsoftteams`
109
+ # - Outlook Calendar: `connector_outlookcalendar`
110
+ # - Outlook Email: `connector_outlookemail`
111
+ # - SharePoint: `connector_sharepoint`
112
+ #
113
+ # @return [Symbol, OpenAI::Models::Beta::BetaTool::Mcp::ConnectorID, nil]
114
+ optional :connector_id, enum: -> { OpenAI::Beta::BetaTool::Mcp::ConnectorID }
115
+
116
+ # @!attribute defer_loading
117
+ # Whether this MCP tool is deferred and discovered via tool search.
118
+ #
119
+ # @return [Boolean, nil]
120
+ optional :defer_loading, OpenAI::Internal::Type::Boolean
121
+
122
+ # @!attribute headers
123
+ # Optional HTTP headers to send to the MCP server. Use for authentication or other
124
+ # purposes.
125
+ #
126
+ # @return [Hash{Symbol=>String}, nil]
127
+ optional :headers, OpenAI::Internal::Type::HashOf[String], nil?: true
128
+
129
+ # @!attribute require_approval
130
+ # Specify which of the MCP server's tools require approval.
131
+ #
132
+ # @return [OpenAI::Models::Beta::BetaTool::Mcp::RequireApproval::McpToolApprovalFilter, Symbol, OpenAI::Models::Beta::BetaTool::Mcp::RequireApproval::McpToolApprovalSetting, nil]
133
+ optional :require_approval, union: -> { OpenAI::Beta::BetaTool::Mcp::RequireApproval }, nil?: true
134
+
135
+ # @!attribute server_description
136
+ # Optional description of the MCP server, used to provide more context.
137
+ #
138
+ # @return [String, nil]
139
+ optional :server_description, String
140
+
141
+ # @!attribute server_url
142
+ # The URL for the MCP server. One of `server_url`, `connector_id`, or `tunnel_id`
143
+ # must be provided.
144
+ #
145
+ # @return [String, nil]
146
+ optional :server_url, String
147
+
148
+ # @!attribute tunnel_id
149
+ # The Secure MCP Tunnel ID to use instead of a direct server URL. One of
150
+ # `server_url`, `connector_id`, or `tunnel_id` must be provided.
151
+ #
152
+ # @return [String, nil]
153
+ optional :tunnel_id, String
154
+
155
+ # @!method initialize(server_label:, allowed_callers: nil, allowed_tools: nil, authorization: nil, connector_id: nil, defer_loading: nil, headers: nil, require_approval: nil, server_description: nil, server_url: nil, tunnel_id: nil, type: :mcp)
156
+ # Some parameter documentations has been truncated, see
157
+ # {OpenAI::Models::Beta::BetaTool::Mcp} for more details.
158
+ #
159
+ # Give the model access to additional tools via remote Model Context Protocol
160
+ # (MCP) servers.
161
+ # [Learn more about MCP](https://platform.openai.com/docs/guides/tools-remote-mcp).
162
+ #
163
+ # @param server_label [String] A label for this MCP server, used to identify it in tool calls.
164
+ #
165
+ # @param allowed_callers [Array<Symbol, OpenAI::Models::Beta::BetaTool::Mcp::AllowedCaller>, nil] The tool invocation context(s).
166
+ #
167
+ # @param allowed_tools [Array<String>, OpenAI::Models::Beta::BetaTool::Mcp::AllowedTools::McpToolFilter, nil] List of allowed tool names or a filter object.
168
+ #
169
+ # @param authorization [String] An OAuth access token that can be used with a remote MCP server, either
170
+ #
171
+ # @param connector_id [Symbol, OpenAI::Models::Beta::BetaTool::Mcp::ConnectorID] Identifier for service connectors, like those available in ChatGPT. One of
172
+ #
173
+ # @param defer_loading [Boolean] Whether this MCP tool is deferred and discovered via tool search.
174
+ #
175
+ # @param headers [Hash{Symbol=>String}, nil] Optional HTTP headers to send to the MCP server. Use for authentication
176
+ #
177
+ # @param require_approval [OpenAI::Models::Beta::BetaTool::Mcp::RequireApproval::McpToolApprovalFilter, Symbol, OpenAI::Models::Beta::BetaTool::Mcp::RequireApproval::McpToolApprovalSetting, nil] Specify which of the MCP server's tools require approval.
178
+ #
179
+ # @param server_description [String] Optional description of the MCP server, used to provide more context.
180
+ #
181
+ # @param server_url [String] The URL for the MCP server. One of `server_url`, `connector_id`, or
182
+ #
183
+ # @param tunnel_id [String] The Secure MCP Tunnel ID to use instead of a direct server URL. One of
184
+ #
185
+ # @param type [Symbol, :mcp] The type of the MCP tool. Always `mcp`.
186
+
187
+ module AllowedCaller
188
+ extend OpenAI::Internal::Type::Enum
189
+
190
+ DIRECT = :direct
191
+ PROGRAMMATIC = :programmatic
192
+
193
+ # @!method self.values
194
+ # @return [Array<Symbol>]
195
+ end
196
+
197
+ # List of allowed tool names or a filter object.
198
+ #
199
+ # @see OpenAI::Models::Beta::BetaTool::Mcp#allowed_tools
200
+ module AllowedTools
201
+ extend OpenAI::Internal::Type::Union
202
+
203
+ # A string array of allowed tool names
204
+ variant -> { OpenAI::Models::Beta::BetaTool::Mcp::AllowedTools::StringArray }
205
+
206
+ # A filter object to specify which tools are allowed.
207
+ variant -> { OpenAI::Beta::BetaTool::Mcp::AllowedTools::McpToolFilter }
208
+
209
+ class McpToolFilter < OpenAI::Internal::Type::BaseModel
210
+ # @!attribute read_only
211
+ # Indicates whether or not a tool modifies data or is read-only. If an MCP server
212
+ # is
213
+ # [annotated with `readOnlyHint`](https://modelcontextprotocol.io/specification/2025-06-18/schema#toolannotations-readonlyhint),
214
+ # it will match this filter.
215
+ #
216
+ # @return [Boolean, nil]
217
+ optional :read_only, OpenAI::Internal::Type::Boolean
218
+
219
+ # @!attribute tool_names
220
+ # List of allowed tool names.
221
+ #
222
+ # @return [Array<String>, nil]
223
+ optional :tool_names, OpenAI::Internal::Type::ArrayOf[String]
224
+
225
+ # @!method initialize(read_only: nil, tool_names: nil)
226
+ # Some parameter documentations has been truncated, see
227
+ # {OpenAI::Models::Beta::BetaTool::Mcp::AllowedTools::McpToolFilter} for more
228
+ # details.
229
+ #
230
+ # A filter object to specify which tools are allowed.
231
+ #
232
+ # @param read_only [Boolean] Indicates whether or not a tool modifies data or is read-only. If an
233
+ #
234
+ # @param tool_names [Array<String>] List of allowed tool names.
235
+ end
236
+
237
+ # @!method self.variants
238
+ # @return [Array(Array<String>, OpenAI::Models::Beta::BetaTool::Mcp::AllowedTools::McpToolFilter)]
239
+
240
+ # @type [OpenAI::Internal::Type::Converter]
241
+ StringArray = OpenAI::Internal::Type::ArrayOf[String]
242
+ end
243
+
244
+ # Identifier for service connectors, like those available in ChatGPT. One of
245
+ # `server_url`, `connector_id`, or `tunnel_id` must be provided. Learn more about
246
+ # service connectors
247
+ # [here](https://platform.openai.com/docs/guides/tools-remote-mcp#connectors).
248
+ #
249
+ # Currently supported `connector_id` values are:
250
+ #
251
+ # - Dropbox: `connector_dropbox`
252
+ # - Gmail: `connector_gmail`
253
+ # - Google Calendar: `connector_googlecalendar`
254
+ # - Google Drive: `connector_googledrive`
255
+ # - Microsoft Teams: `connector_microsoftteams`
256
+ # - Outlook Calendar: `connector_outlookcalendar`
257
+ # - Outlook Email: `connector_outlookemail`
258
+ # - SharePoint: `connector_sharepoint`
259
+ #
260
+ # @see OpenAI::Models::Beta::BetaTool::Mcp#connector_id
261
+ module ConnectorID
262
+ extend OpenAI::Internal::Type::Enum
263
+
264
+ CONNECTOR_DROPBOX = :connector_dropbox
265
+ CONNECTOR_GMAIL = :connector_gmail
266
+ CONNECTOR_GOOGLECALENDAR = :connector_googlecalendar
267
+ CONNECTOR_GOOGLEDRIVE = :connector_googledrive
268
+ CONNECTOR_MICROSOFTTEAMS = :connector_microsoftteams
269
+ CONNECTOR_OUTLOOKCALENDAR = :connector_outlookcalendar
270
+ CONNECTOR_OUTLOOKEMAIL = :connector_outlookemail
271
+ CONNECTOR_SHAREPOINT = :connector_sharepoint
272
+
273
+ # @!method self.values
274
+ # @return [Array<Symbol>]
275
+ end
276
+
277
+ # Specify which of the MCP server's tools require approval.
278
+ #
279
+ # @see OpenAI::Models::Beta::BetaTool::Mcp#require_approval
280
+ module RequireApproval
281
+ extend OpenAI::Internal::Type::Union
282
+
283
+ # Specify which of the MCP server's tools require approval. Can be
284
+ # `always`, `never`, or a filter object associated with tools
285
+ # that require approval.
286
+ variant -> { OpenAI::Beta::BetaTool::Mcp::RequireApproval::McpToolApprovalFilter }
287
+
288
+ # Specify a single approval policy for all tools. One of `always` or
289
+ # `never`. When set to `always`, all tools will require approval. When
290
+ # set to `never`, all tools will not require approval.
291
+ variant enum: -> { OpenAI::Beta::BetaTool::Mcp::RequireApproval::McpToolApprovalSetting }
292
+
293
+ class McpToolApprovalFilter < OpenAI::Internal::Type::BaseModel
294
+ # @!attribute always
295
+ # A filter object to specify which tools are allowed.
296
+ #
297
+ # @return [OpenAI::Models::Beta::BetaTool::Mcp::RequireApproval::McpToolApprovalFilter::Always, nil]
298
+ optional :always, -> { OpenAI::Beta::BetaTool::Mcp::RequireApproval::McpToolApprovalFilter::Always }
299
+
300
+ # @!attribute never
301
+ # A filter object to specify which tools are allowed.
302
+ #
303
+ # @return [OpenAI::Models::Beta::BetaTool::Mcp::RequireApproval::McpToolApprovalFilter::Never, nil]
304
+ optional :never, -> { OpenAI::Beta::BetaTool::Mcp::RequireApproval::McpToolApprovalFilter::Never }
305
+
306
+ # @!method initialize(always: nil, never: nil)
307
+ # Some parameter documentations has been truncated, see
308
+ # {OpenAI::Models::Beta::BetaTool::Mcp::RequireApproval::McpToolApprovalFilter}
309
+ # for more details.
310
+ #
311
+ # Specify which of the MCP server's tools require approval. Can be `always`,
312
+ # `never`, or a filter object associated with tools that require approval.
313
+ #
314
+ # @param always [OpenAI::Models::Beta::BetaTool::Mcp::RequireApproval::McpToolApprovalFilter::Always] A filter object to specify which tools are allowed.
315
+ #
316
+ # @param never [OpenAI::Models::Beta::BetaTool::Mcp::RequireApproval::McpToolApprovalFilter::Never] A filter object to specify which tools are allowed.
317
+
318
+ # @see OpenAI::Models::Beta::BetaTool::Mcp::RequireApproval::McpToolApprovalFilter#always
319
+ class Always < OpenAI::Internal::Type::BaseModel
320
+ # @!attribute read_only
321
+ # Indicates whether or not a tool modifies data or is read-only. If an MCP server
322
+ # is
323
+ # [annotated with `readOnlyHint`](https://modelcontextprotocol.io/specification/2025-06-18/schema#toolannotations-readonlyhint),
324
+ # it will match this filter.
325
+ #
326
+ # @return [Boolean, nil]
327
+ optional :read_only, OpenAI::Internal::Type::Boolean
328
+
329
+ # @!attribute tool_names
330
+ # List of allowed tool names.
331
+ #
332
+ # @return [Array<String>, nil]
333
+ optional :tool_names, OpenAI::Internal::Type::ArrayOf[String]
334
+
335
+ # @!method initialize(read_only: nil, tool_names: nil)
336
+ # Some parameter documentations has been truncated, see
337
+ # {OpenAI::Models::Beta::BetaTool::Mcp::RequireApproval::McpToolApprovalFilter::Always}
338
+ # for more details.
339
+ #
340
+ # A filter object to specify which tools are allowed.
341
+ #
342
+ # @param read_only [Boolean] Indicates whether or not a tool modifies data or is read-only. If an
343
+ #
344
+ # @param tool_names [Array<String>] List of allowed tool names.
345
+ end
346
+
347
+ # @see OpenAI::Models::Beta::BetaTool::Mcp::RequireApproval::McpToolApprovalFilter#never
348
+ class Never < OpenAI::Internal::Type::BaseModel
349
+ # @!attribute read_only
350
+ # Indicates whether or not a tool modifies data or is read-only. If an MCP server
351
+ # is
352
+ # [annotated with `readOnlyHint`](https://modelcontextprotocol.io/specification/2025-06-18/schema#toolannotations-readonlyhint),
353
+ # it will match this filter.
354
+ #
355
+ # @return [Boolean, nil]
356
+ optional :read_only, OpenAI::Internal::Type::Boolean
357
+
358
+ # @!attribute tool_names
359
+ # List of allowed tool names.
360
+ #
361
+ # @return [Array<String>, nil]
362
+ optional :tool_names, OpenAI::Internal::Type::ArrayOf[String]
363
+
364
+ # @!method initialize(read_only: nil, tool_names: nil)
365
+ # Some parameter documentations has been truncated, see
366
+ # {OpenAI::Models::Beta::BetaTool::Mcp::RequireApproval::McpToolApprovalFilter::Never}
367
+ # for more details.
368
+ #
369
+ # A filter object to specify which tools are allowed.
370
+ #
371
+ # @param read_only [Boolean] Indicates whether or not a tool modifies data or is read-only. If an
372
+ #
373
+ # @param tool_names [Array<String>] List of allowed tool names.
374
+ end
375
+ end
376
+
377
+ # Specify a single approval policy for all tools. One of `always` or `never`. When
378
+ # set to `always`, all tools will require approval. When set to `never`, all tools
379
+ # will not require approval.
380
+ module McpToolApprovalSetting
381
+ extend OpenAI::Internal::Type::Enum
382
+
383
+ ALWAYS = :always
384
+ NEVER = :never
385
+
386
+ # @!method self.values
387
+ # @return [Array<Symbol>]
388
+ end
389
+
390
+ # @!method self.variants
391
+ # @return [Array(OpenAI::Models::Beta::BetaTool::Mcp::RequireApproval::McpToolApprovalFilter, Symbol, OpenAI::Models::Beta::BetaTool::Mcp::RequireApproval::McpToolApprovalSetting)]
392
+ end
393
+ end
394
+
395
+ class CodeInterpreter < OpenAI::Internal::Type::BaseModel
396
+ # @!attribute container
397
+ # The code interpreter container. Can be a container ID or an object that
398
+ # specifies uploaded file IDs to make available to your code, along with an
399
+ # optional `memory_limit` setting.
400
+ #
401
+ # @return [String, OpenAI::Models::Beta::BetaTool::CodeInterpreter::Container::CodeInterpreterToolAuto]
402
+ required :container, union: -> { OpenAI::Beta::BetaTool::CodeInterpreter::Container }
403
+
404
+ # @!attribute type
405
+ # The type of the code interpreter tool. Always `code_interpreter`.
406
+ #
407
+ # @return [Symbol, :code_interpreter]
408
+ required :type, const: :code_interpreter
409
+
410
+ # @!attribute allowed_callers
411
+ # The tool invocation context(s).
412
+ #
413
+ # @return [Array<Symbol, OpenAI::Models::Beta::BetaTool::CodeInterpreter::AllowedCaller>, nil]
414
+ optional :allowed_callers,
415
+ -> {
416
+ OpenAI::Internal::Type::ArrayOf[enum: OpenAI::Beta::BetaTool::CodeInterpreter::AllowedCaller]
417
+ },
418
+ nil?: true
419
+
420
+ # @!method initialize(container:, allowed_callers: nil, type: :code_interpreter)
421
+ # Some parameter documentations has been truncated, see
422
+ # {OpenAI::Models::Beta::BetaTool::CodeInterpreter} for more details.
423
+ #
424
+ # A tool that runs Python code to help generate a response to a prompt.
425
+ #
426
+ # @param container [String, OpenAI::Models::Beta::BetaTool::CodeInterpreter::Container::CodeInterpreterToolAuto] The code interpreter container. Can be a container ID or an object that
427
+ #
428
+ # @param allowed_callers [Array<Symbol, OpenAI::Models::Beta::BetaTool::CodeInterpreter::AllowedCaller>, nil] The tool invocation context(s).
429
+ #
430
+ # @param type [Symbol, :code_interpreter] The type of the code interpreter tool. Always `code_interpreter`.
431
+
432
+ # The code interpreter container. Can be a container ID or an object that
433
+ # specifies uploaded file IDs to make available to your code, along with an
434
+ # optional `memory_limit` setting.
435
+ #
436
+ # @see OpenAI::Models::Beta::BetaTool::CodeInterpreter#container
437
+ module Container
438
+ extend OpenAI::Internal::Type::Union
439
+
440
+ # The container ID.
441
+ variant String
442
+
443
+ # Configuration for a code interpreter container. Optionally specify the IDs of the files to run the code on.
444
+ variant -> { OpenAI::Beta::BetaTool::CodeInterpreter::Container::CodeInterpreterToolAuto }
445
+
446
+ class CodeInterpreterToolAuto < OpenAI::Internal::Type::BaseModel
447
+ # @!attribute type
448
+ # Always `auto`.
449
+ #
450
+ # @return [Symbol, :auto]
451
+ required :type, const: :auto
452
+
453
+ # @!attribute file_ids
454
+ # An optional list of uploaded files to make available to your code.
455
+ #
456
+ # @return [Array<String>, nil]
457
+ optional :file_ids, OpenAI::Internal::Type::ArrayOf[String]
458
+
459
+ # @!attribute memory_limit
460
+ # The memory limit for the code interpreter container.
461
+ #
462
+ # @return [Symbol, OpenAI::Models::Beta::BetaTool::CodeInterpreter::Container::CodeInterpreterToolAuto::MemoryLimit, nil]
463
+ optional :memory_limit,
464
+ enum: -> {
465
+ OpenAI::Beta::BetaTool::CodeInterpreter::Container::CodeInterpreterToolAuto::MemoryLimit
466
+ },
467
+ nil?: true
468
+
469
+ # @!attribute network_policy
470
+ # Network access policy for the container.
471
+ #
472
+ # @return [OpenAI::Models::Beta::BetaContainerNetworkPolicyDisabled, OpenAI::Models::Beta::BetaContainerNetworkPolicyAllowlist, nil]
473
+ optional :network_policy,
474
+ union: -> { OpenAI::Beta::BetaTool::CodeInterpreter::Container::CodeInterpreterToolAuto::NetworkPolicy }
475
+
476
+ # @!method initialize(file_ids: nil, memory_limit: nil, network_policy: nil, type: :auto)
477
+ # Configuration for a code interpreter container. Optionally specify the IDs of
478
+ # the files to run the code on.
479
+ #
480
+ # @param file_ids [Array<String>] An optional list of uploaded files to make available to your code.
481
+ #
482
+ # @param memory_limit [Symbol, OpenAI::Models::Beta::BetaTool::CodeInterpreter::Container::CodeInterpreterToolAuto::MemoryLimit, nil] The memory limit for the code interpreter container.
483
+ #
484
+ # @param network_policy [OpenAI::Models::Beta::BetaContainerNetworkPolicyDisabled, OpenAI::Models::Beta::BetaContainerNetworkPolicyAllowlist] Network access policy for the container.
485
+ #
486
+ # @param type [Symbol, :auto] Always `auto`.
487
+
488
+ # The memory limit for the code interpreter container.
489
+ #
490
+ # @see OpenAI::Models::Beta::BetaTool::CodeInterpreter::Container::CodeInterpreterToolAuto#memory_limit
491
+ module MemoryLimit
492
+ extend OpenAI::Internal::Type::Enum
493
+
494
+ MEMORY_LIMIT_1G = :"1g"
495
+ MEMORY_LIMIT_4G = :"4g"
496
+ MEMORY_LIMIT_16G = :"16g"
497
+ MEMORY_LIMIT_64G = :"64g"
498
+
499
+ # @!method self.values
500
+ # @return [Array<Symbol>]
501
+ end
502
+
503
+ # Network access policy for the container.
504
+ #
505
+ # @see OpenAI::Models::Beta::BetaTool::CodeInterpreter::Container::CodeInterpreterToolAuto#network_policy
506
+ module NetworkPolicy
507
+ extend OpenAI::Internal::Type::Union
508
+
509
+ discriminator :type
510
+
511
+ variant :disabled, -> { OpenAI::Beta::BetaContainerNetworkPolicyDisabled }
512
+
513
+ variant :allowlist, -> { OpenAI::Beta::BetaContainerNetworkPolicyAllowlist }
514
+
515
+ # @!method self.variants
516
+ # @return [Array(OpenAI::Models::Beta::BetaContainerNetworkPolicyDisabled, OpenAI::Models::Beta::BetaContainerNetworkPolicyAllowlist)]
517
+ end
518
+ end
519
+
520
+ # @!method self.variants
521
+ # @return [Array(String, OpenAI::Models::Beta::BetaTool::CodeInterpreter::Container::CodeInterpreterToolAuto)]
522
+ end
523
+
524
+ module AllowedCaller
525
+ extend OpenAI::Internal::Type::Enum
526
+
527
+ DIRECT = :direct
528
+ PROGRAMMATIC = :programmatic
529
+
530
+ # @!method self.values
531
+ # @return [Array<Symbol>]
532
+ end
533
+ end
534
+
535
+ class ProgrammaticToolCalling < OpenAI::Internal::Type::BaseModel
536
+ # @!attribute type
537
+ # The type of the tool. Always `programmatic_tool_calling`.
538
+ #
539
+ # @return [Symbol, :programmatic_tool_calling]
540
+ required :type, const: :programmatic_tool_calling
541
+
542
+ # @!method initialize(type: :programmatic_tool_calling)
543
+ # @param type [Symbol, :programmatic_tool_calling] The type of the tool. Always `programmatic_tool_calling`.
544
+ end
545
+
546
+ class ImageGeneration < OpenAI::Internal::Type::BaseModel
547
+ # @!attribute type
548
+ # The type of the image generation tool. Always `image_generation`.
549
+ #
550
+ # @return [Symbol, :image_generation]
551
+ required :type, const: :image_generation
552
+
553
+ # @!attribute action
554
+ # Whether to generate a new image or edit an existing image. Default: `auto`.
555
+ #
556
+ # @return [Symbol, OpenAI::Models::Beta::BetaTool::ImageGeneration::Action, nil]
557
+ optional :action, enum: -> { OpenAI::Beta::BetaTool::ImageGeneration::Action }
558
+
559
+ # @!attribute background
560
+ # Allows to set transparency for the background of the generated image(s). This
561
+ # parameter is only supported for GPT image models that support transparent
562
+ # backgrounds. Must be one of `transparent`, `opaque`, or `auto` (default value).
563
+ # When `auto` is used, the model will automatically determine the best background
564
+ # for the image.
565
+ #
566
+ # `gpt-image-2` and `gpt-image-2-2026-04-21` do not support transparent
567
+ # backgrounds. Requests with `background` set to `transparent` will return an
568
+ # error for these models; use `opaque` or `auto` instead.
569
+ #
570
+ # If `transparent`, the output format needs to support transparency, so it should
571
+ # be set to either `png` (default value) or `webp`.
572
+ #
573
+ # @return [Symbol, OpenAI::Models::Beta::BetaTool::ImageGeneration::Background, nil]
574
+ optional :background, enum: -> { OpenAI::Beta::BetaTool::ImageGeneration::Background }
575
+
576
+ # @!attribute input_fidelity
577
+ # Control how much effort the model will exert to match the style and features,
578
+ # especially facial features, of input images. This parameter is only supported
579
+ # for `gpt-image-1` and `gpt-image-1.5` and later models, unsupported for
580
+ # `gpt-image-1-mini`. Supports `high` and `low`. Defaults to `low`.
581
+ #
582
+ # @return [Symbol, OpenAI::Models::Beta::BetaTool::ImageGeneration::InputFidelity, nil]
583
+ optional :input_fidelity,
584
+ enum: -> {
585
+ OpenAI::Beta::BetaTool::ImageGeneration::InputFidelity
586
+ },
587
+ nil?: true
588
+
589
+ # @!attribute input_image_mask
590
+ # Optional mask for inpainting. Contains `image_url` (string, optional) and
591
+ # `file_id` (string, optional).
592
+ #
593
+ # @return [OpenAI::Models::Beta::BetaTool::ImageGeneration::InputImageMask, nil]
594
+ optional :input_image_mask, -> { OpenAI::Beta::BetaTool::ImageGeneration::InputImageMask }
595
+
596
+ # @!attribute model
597
+ # The image generation model to use. Default: `gpt-image-1`.
598
+ #
599
+ # @return [String, Symbol, OpenAI::Models::Beta::BetaTool::ImageGeneration::Model, nil]
600
+ optional :model, union: -> { OpenAI::Beta::BetaTool::ImageGeneration::Model }
601
+
602
+ # @!attribute moderation
603
+ # Moderation level for the generated image. Default: `auto`.
604
+ #
605
+ # @return [Symbol, OpenAI::Models::Beta::BetaTool::ImageGeneration::Moderation, nil]
606
+ optional :moderation, enum: -> { OpenAI::Beta::BetaTool::ImageGeneration::Moderation }
607
+
608
+ # @!attribute output_compression
609
+ # Compression level for the output image. Default: 100.
610
+ #
611
+ # @return [Integer, nil]
612
+ optional :output_compression, Integer
613
+
614
+ # @!attribute output_format
615
+ # The output format of the generated image. One of `png`, `webp`, or `jpeg`.
616
+ # Default: `png`.
617
+ #
618
+ # @return [Symbol, OpenAI::Models::Beta::BetaTool::ImageGeneration::OutputFormat, nil]
619
+ optional :output_format, enum: -> { OpenAI::Beta::BetaTool::ImageGeneration::OutputFormat }
620
+
621
+ # @!attribute partial_images
622
+ # Number of partial images to generate in streaming mode, from 0 (default value)
623
+ # to 3.
624
+ #
625
+ # @return [Integer, nil]
626
+ optional :partial_images, Integer
627
+
628
+ # @!attribute quality
629
+ # The quality of the generated image. One of `low`, `medium`, `high`, or `auto`.
630
+ # Default: `auto`.
631
+ #
632
+ # @return [Symbol, OpenAI::Models::Beta::BetaTool::ImageGeneration::Quality, nil]
633
+ optional :quality, enum: -> { OpenAI::Beta::BetaTool::ImageGeneration::Quality }
634
+
635
+ # @!attribute size
636
+ # The size of the generated images. For `gpt-image-2` and
637
+ # `gpt-image-2-2026-04-21`, arbitrary resolutions are supported as `WIDTHxHEIGHT`
638
+ # strings, for example `1536x864`. Width and height must both be divisible by 16
639
+ # and the requested aspect ratio must be between 1:3 and 3:1. Resolutions above
640
+ # `2560x1440` are experimental, and the maximum supported resolution is
641
+ # `3840x2160`. The requested size must also satisfy the model's current pixel and
642
+ # edge limits. The standard sizes `1024x1024`, `1536x1024`, and `1024x1536` are
643
+ # supported by the GPT image models; `auto` is supported for models that allow
644
+ # automatic sizing. For `dall-e-2`, use one of `256x256`, `512x512`, or
645
+ # `1024x1024`. For `dall-e-3`, use one of `1024x1024`, `1792x1024`, or
646
+ # `1024x1792`.
647
+ #
648
+ # @return [String, Symbol, OpenAI::Models::Beta::BetaTool::ImageGeneration::Size, nil]
649
+ optional :size, union: -> { OpenAI::Beta::BetaTool::ImageGeneration::Size }
650
+
651
+ # @!method initialize(action: nil, background: nil, input_fidelity: nil, input_image_mask: nil, model: nil, moderation: nil, output_compression: nil, output_format: nil, partial_images: nil, quality: nil, size: nil, type: :image_generation)
652
+ # Some parameter documentations has been truncated, see
653
+ # {OpenAI::Models::Beta::BetaTool::ImageGeneration} for more details.
654
+ #
655
+ # A tool that generates images using the GPT image models.
656
+ #
657
+ # @param action [Symbol, OpenAI::Models::Beta::BetaTool::ImageGeneration::Action] Whether to generate a new image or edit an existing image. Default: `auto`.
658
+ #
659
+ # @param background [Symbol, OpenAI::Models::Beta::BetaTool::ImageGeneration::Background] Allows to set transparency for the background of the generated image(s).
660
+ #
661
+ # @param input_fidelity [Symbol, OpenAI::Models::Beta::BetaTool::ImageGeneration::InputFidelity, nil] Control how much effort the model will exert to match the style and features, es
662
+ #
663
+ # @param input_image_mask [OpenAI::Models::Beta::BetaTool::ImageGeneration::InputImageMask] Optional mask for inpainting. Contains `image_url`
664
+ #
665
+ # @param model [String, Symbol, OpenAI::Models::Beta::BetaTool::ImageGeneration::Model] The image generation model to use. Default: `gpt-image-1`.
666
+ #
667
+ # @param moderation [Symbol, OpenAI::Models::Beta::BetaTool::ImageGeneration::Moderation] Moderation level for the generated image. Default: `auto`.
668
+ #
669
+ # @param output_compression [Integer] Compression level for the output image. Default: 100.
670
+ #
671
+ # @param output_format [Symbol, OpenAI::Models::Beta::BetaTool::ImageGeneration::OutputFormat] The output format of the generated image. One of `png`, `webp`, or
672
+ #
673
+ # @param partial_images [Integer] Number of partial images to generate in streaming mode, from 0 (default value) t
674
+ #
675
+ # @param quality [Symbol, OpenAI::Models::Beta::BetaTool::ImageGeneration::Quality] The quality of the generated image. One of `low`, `medium`, `high`,
676
+ #
677
+ # @param size [String, Symbol, OpenAI::Models::Beta::BetaTool::ImageGeneration::Size] The size of the generated images. For `gpt-image-2` and `gpt-image-2-2026-04-21`
678
+ #
679
+ # @param type [Symbol, :image_generation] The type of the image generation tool. Always `image_generation`.
680
+
681
+ # Whether to generate a new image or edit an existing image. Default: `auto`.
682
+ #
683
+ # @see OpenAI::Models::Beta::BetaTool::ImageGeneration#action
684
+ module Action
685
+ extend OpenAI::Internal::Type::Enum
686
+
687
+ GENERATE = :generate
688
+ EDIT = :edit
689
+ AUTO = :auto
690
+
691
+ # @!method self.values
692
+ # @return [Array<Symbol>]
693
+ end
694
+
695
+ # Allows to set transparency for the background of the generated image(s). This
696
+ # parameter is only supported for GPT image models that support transparent
697
+ # backgrounds. Must be one of `transparent`, `opaque`, or `auto` (default value).
698
+ # When `auto` is used, the model will automatically determine the best background
699
+ # for the image.
700
+ #
701
+ # `gpt-image-2` and `gpt-image-2-2026-04-21` do not support transparent
702
+ # backgrounds. Requests with `background` set to `transparent` will return an
703
+ # error for these models; use `opaque` or `auto` instead.
704
+ #
705
+ # If `transparent`, the output format needs to support transparency, so it should
706
+ # be set to either `png` (default value) or `webp`.
707
+ #
708
+ # @see OpenAI::Models::Beta::BetaTool::ImageGeneration#background
709
+ module Background
710
+ extend OpenAI::Internal::Type::Enum
711
+
712
+ TRANSPARENT = :transparent
713
+ OPAQUE = :opaque
714
+ AUTO = :auto
715
+
716
+ # @!method self.values
717
+ # @return [Array<Symbol>]
718
+ end
719
+
720
+ # Control how much effort the model will exert to match the style and features,
721
+ # especially facial features, of input images. This parameter is only supported
722
+ # for `gpt-image-1` and `gpt-image-1.5` and later models, unsupported for
723
+ # `gpt-image-1-mini`. Supports `high` and `low`. Defaults to `low`.
724
+ #
725
+ # @see OpenAI::Models::Beta::BetaTool::ImageGeneration#input_fidelity
726
+ module InputFidelity
727
+ extend OpenAI::Internal::Type::Enum
728
+
729
+ HIGH = :high
730
+ LOW = :low
731
+
732
+ # @!method self.values
733
+ # @return [Array<Symbol>]
734
+ end
735
+
736
+ # @see OpenAI::Models::Beta::BetaTool::ImageGeneration#input_image_mask
737
+ class InputImageMask < OpenAI::Internal::Type::BaseModel
738
+ # @!attribute file_id
739
+ # File ID for the mask image.
740
+ #
741
+ # @return [String, nil]
742
+ optional :file_id, String
743
+
744
+ # @!attribute image_url
745
+ # Base64-encoded mask image.
746
+ #
747
+ # @return [String, nil]
748
+ optional :image_url, String
749
+
750
+ # @!method initialize(file_id: nil, image_url: nil)
751
+ # Some parameter documentations has been truncated, see
752
+ # {OpenAI::Models::Beta::BetaTool::ImageGeneration::InputImageMask} for more
753
+ # details.
754
+ #
755
+ # Optional mask for inpainting. Contains `image_url` (string, optional) and
756
+ # `file_id` (string, optional).
757
+ #
758
+ # @param file_id [String] File ID for the mask image.
759
+ #
760
+ # @param image_url [String] Base64-encoded mask image.
761
+ end
762
+
763
+ # The image generation model to use. Default: `gpt-image-1`.
764
+ #
765
+ # @see OpenAI::Models::Beta::BetaTool::ImageGeneration#model
766
+ module Model
767
+ extend OpenAI::Internal::Type::Union
768
+
769
+ variant String
770
+
771
+ variant const: -> { OpenAI::Models::Beta::BetaTool::ImageGeneration::Model::GPT_IMAGE_1 }
772
+
773
+ variant const: -> { OpenAI::Models::Beta::BetaTool::ImageGeneration::Model::GPT_IMAGE_1_MINI }
774
+
775
+ variant const: -> { OpenAI::Models::Beta::BetaTool::ImageGeneration::Model::GPT_IMAGE_2 }
776
+
777
+ variant const: -> { OpenAI::Models::Beta::BetaTool::ImageGeneration::Model::GPT_IMAGE_2_2026_04_21 }
778
+
779
+ variant const: -> { OpenAI::Models::Beta::BetaTool::ImageGeneration::Model::GPT_IMAGE_1_5 }
780
+
781
+ variant const: -> { OpenAI::Models::Beta::BetaTool::ImageGeneration::Model::CHATGPT_IMAGE_LATEST }
782
+
783
+ # @!method self.variants
784
+ # @return [Array(String, Symbol)]
785
+
786
+ define_sorbet_constant!(:Variants) do
787
+ T.type_alias { T.any(String, OpenAI::Beta::BetaTool::ImageGeneration::Model::TaggedSymbol) }
788
+ end
789
+
790
+ # @!group
791
+
792
+ GPT_IMAGE_1 = :"gpt-image-1"
793
+ GPT_IMAGE_1_MINI = :"gpt-image-1-mini"
794
+ GPT_IMAGE_2 = :"gpt-image-2"
795
+ GPT_IMAGE_2_2026_04_21 = :"gpt-image-2-2026-04-21"
796
+ GPT_IMAGE_1_5 = :"gpt-image-1.5"
797
+ CHATGPT_IMAGE_LATEST = :"chatgpt-image-latest"
798
+
799
+ # @!endgroup
800
+ end
801
+
802
+ # Moderation level for the generated image. Default: `auto`.
803
+ #
804
+ # @see OpenAI::Models::Beta::BetaTool::ImageGeneration#moderation
805
+ module Moderation
806
+ extend OpenAI::Internal::Type::Enum
807
+
808
+ AUTO = :auto
809
+ LOW = :low
810
+
811
+ # @!method self.values
812
+ # @return [Array<Symbol>]
813
+ end
814
+
815
+ # The output format of the generated image. One of `png`, `webp`, or `jpeg`.
816
+ # Default: `png`.
817
+ #
818
+ # @see OpenAI::Models::Beta::BetaTool::ImageGeneration#output_format
819
+ module OutputFormat
820
+ extend OpenAI::Internal::Type::Enum
821
+
822
+ PNG = :png
823
+ WEBP = :webp
824
+ JPEG = :jpeg
825
+
826
+ # @!method self.values
827
+ # @return [Array<Symbol>]
828
+ end
829
+
830
+ # The quality of the generated image. One of `low`, `medium`, `high`, or `auto`.
831
+ # Default: `auto`.
832
+ #
833
+ # @see OpenAI::Models::Beta::BetaTool::ImageGeneration#quality
834
+ module Quality
835
+ extend OpenAI::Internal::Type::Enum
836
+
837
+ LOW = :low
838
+ MEDIUM = :medium
839
+ HIGH = :high
840
+ AUTO = :auto
841
+
842
+ # @!method self.values
843
+ # @return [Array<Symbol>]
844
+ end
845
+
846
+ # The size of the generated images. For `gpt-image-2` and
847
+ # `gpt-image-2-2026-04-21`, arbitrary resolutions are supported as `WIDTHxHEIGHT`
848
+ # strings, for example `1536x864`. Width and height must both be divisible by 16
849
+ # and the requested aspect ratio must be between 1:3 and 3:1. Resolutions above
850
+ # `2560x1440` are experimental, and the maximum supported resolution is
851
+ # `3840x2160`. The requested size must also satisfy the model's current pixel and
852
+ # edge limits. The standard sizes `1024x1024`, `1536x1024`, and `1024x1536` are
853
+ # supported by the GPT image models; `auto` is supported for models that allow
854
+ # automatic sizing. For `dall-e-2`, use one of `256x256`, `512x512`, or
855
+ # `1024x1024`. For `dall-e-3`, use one of `1024x1024`, `1792x1024`, or
856
+ # `1024x1792`.
857
+ #
858
+ # @see OpenAI::Models::Beta::BetaTool::ImageGeneration#size
859
+ module Size
860
+ extend OpenAI::Internal::Type::Union
861
+
862
+ variant String
863
+
864
+ variant const: -> { OpenAI::Models::Beta::BetaTool::ImageGeneration::Size::SIZE_1024X1024 }
865
+
866
+ variant const: -> { OpenAI::Models::Beta::BetaTool::ImageGeneration::Size::SIZE_1024X1536 }
867
+
868
+ variant const: -> { OpenAI::Models::Beta::BetaTool::ImageGeneration::Size::SIZE_1536X1024 }
869
+
870
+ variant const: -> { OpenAI::Models::Beta::BetaTool::ImageGeneration::Size::AUTO }
871
+
872
+ # @!method self.variants
873
+ # @return [Array(String, Symbol)]
874
+
875
+ define_sorbet_constant!(:Variants) do
876
+ T.type_alias { T.any(String, OpenAI::Beta::BetaTool::ImageGeneration::Size::TaggedSymbol) }
877
+ end
878
+
879
+ # @!group
880
+
881
+ SIZE_1024X1024 = :"1024x1024"
882
+ SIZE_1024X1536 = :"1024x1536"
883
+ SIZE_1536X1024 = :"1536x1024"
884
+ AUTO = :auto
885
+
886
+ # @!endgroup
887
+ end
888
+ end
889
+
890
+ class LocalShell < OpenAI::Internal::Type::BaseModel
891
+ # @!attribute type
892
+ # The type of the local shell tool. Always `local_shell`.
893
+ #
894
+ # @return [Symbol, :local_shell]
895
+ required :type, const: :local_shell
896
+
897
+ # @!method initialize(type: :local_shell)
898
+ # A tool that allows the model to execute shell commands in a local environment.
899
+ #
900
+ # @param type [Symbol, :local_shell] The type of the local shell tool. Always `local_shell`.
901
+ end
902
+
903
+ # @!method self.variants
904
+ # @return [Array(OpenAI::Models::Beta::BetaFunctionTool, OpenAI::Models::Beta::BetaFileSearchTool, OpenAI::Models::Beta::BetaComputerTool, OpenAI::Models::Beta::BetaComputerUsePreviewTool, OpenAI::Models::Beta::BetaTool::Mcp, OpenAI::Models::Beta::BetaTool::CodeInterpreter, OpenAI::Models::Beta::BetaTool::ProgrammaticToolCalling, OpenAI::Models::Beta::BetaTool::ImageGeneration, OpenAI::Models::Beta::BetaTool::LocalShell, OpenAI::Models::Beta::BetaFunctionShellTool, OpenAI::Models::Beta::BetaCustomTool, OpenAI::Models::Beta::BetaNamespaceTool, OpenAI::Models::Beta::BetaToolSearchTool, OpenAI::Models::Beta::BetaApplyPatchTool, OpenAI::Models::Beta::BetaWebSearchTool, OpenAI::Models::Beta::BetaWebSearchPreviewTool)]
905
+ end
906
+ end
907
+
908
+ BetaTool = Beta::BetaTool
909
+ end
910
+ end