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,2627 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ BetaResponseOutputItem = Beta::BetaResponseOutputItem
6
+
7
+ module Beta
8
+ # An output message from the model.
9
+ module BetaResponseOutputItem
10
+ extend OpenAI::Internal::Type::Union
11
+
12
+ Variants =
13
+ T.type_alias do
14
+ T.any(
15
+ OpenAI::Beta::BetaResponseOutputMessage,
16
+ OpenAI::Beta::BetaResponseFileSearchToolCall,
17
+ OpenAI::Beta::BetaResponseFunctionToolCall,
18
+ OpenAI::Beta::BetaResponseFunctionToolCallOutputItem,
19
+ OpenAI::Beta::BetaResponseOutputItem::AgentMessage,
20
+ OpenAI::Beta::BetaResponseOutputItem::MultiAgentCall,
21
+ OpenAI::Beta::BetaResponseOutputItem::MultiAgentCallOutput,
22
+ OpenAI::Beta::BetaResponseFunctionWebSearch,
23
+ OpenAI::Beta::BetaResponseComputerToolCall,
24
+ OpenAI::Beta::BetaResponseComputerToolCallOutputItem,
25
+ OpenAI::Beta::BetaResponseReasoningItem,
26
+ OpenAI::Beta::BetaResponseOutputItem::Program,
27
+ OpenAI::Beta::BetaResponseOutputItem::ProgramOutput,
28
+ OpenAI::Beta::BetaResponseToolSearchCall,
29
+ OpenAI::Beta::BetaResponseToolSearchOutputItem,
30
+ OpenAI::Beta::BetaResponseOutputItem::AdditionalTools,
31
+ OpenAI::Beta::BetaResponseCompactionItem,
32
+ OpenAI::Beta::BetaResponseOutputItem::ImageGenerationCall,
33
+ OpenAI::Beta::BetaResponseCodeInterpreterToolCall,
34
+ OpenAI::Beta::BetaResponseOutputItem::LocalShellCall,
35
+ OpenAI::Beta::BetaResponseOutputItem::LocalShellCallOutput,
36
+ OpenAI::Beta::BetaResponseFunctionShellToolCall,
37
+ OpenAI::Beta::BetaResponseFunctionShellToolCallOutput,
38
+ OpenAI::Beta::BetaResponseApplyPatchToolCall,
39
+ OpenAI::Beta::BetaResponseApplyPatchToolCallOutput,
40
+ OpenAI::Beta::BetaResponseOutputItem::McpCall,
41
+ OpenAI::Beta::BetaResponseOutputItem::McpListTools,
42
+ OpenAI::Beta::BetaResponseOutputItem::McpApprovalRequest,
43
+ OpenAI::Beta::BetaResponseOutputItem::McpApprovalResponse,
44
+ OpenAI::Beta::BetaResponseCustomToolCall,
45
+ OpenAI::Beta::BetaResponseCustomToolCallOutputItem
46
+ )
47
+ end
48
+
49
+ class AgentMessage < OpenAI::Internal::Type::BaseModel
50
+ OrHash =
51
+ T.type_alias do
52
+ T.any(
53
+ OpenAI::Beta::BetaResponseOutputItem::AgentMessage,
54
+ OpenAI::Internal::AnyHash
55
+ )
56
+ end
57
+
58
+ # The unique ID of the agent message.
59
+ sig { returns(String) }
60
+ attr_accessor :id
61
+
62
+ # The sending agent identity.
63
+ sig { returns(String) }
64
+ attr_accessor :author
65
+
66
+ # Encrypted content sent between agents.
67
+ sig do
68
+ returns(
69
+ T::Array[
70
+ OpenAI::Beta::BetaResponseOutputItem::AgentMessage::Content::Variants
71
+ ]
72
+ )
73
+ end
74
+ attr_accessor :content
75
+
76
+ # The destination agent identity.
77
+ sig { returns(String) }
78
+ attr_accessor :recipient
79
+
80
+ # The type of the item. Always `agent_message`.
81
+ sig { returns(Symbol) }
82
+ attr_accessor :type
83
+
84
+ # The agent that produced this item.
85
+ sig do
86
+ returns(
87
+ T.nilable(
88
+ OpenAI::Beta::BetaResponseOutputItem::AgentMessage::Agent
89
+ )
90
+ )
91
+ end
92
+ attr_reader :agent
93
+
94
+ sig do
95
+ params(
96
+ agent:
97
+ OpenAI::Beta::BetaResponseOutputItem::AgentMessage::Agent::OrHash
98
+ ).void
99
+ end
100
+ attr_writer :agent
101
+
102
+ sig do
103
+ params(
104
+ id: String,
105
+ author: String,
106
+ content:
107
+ T::Array[
108
+ T.any(
109
+ OpenAI::Beta::BetaResponseInputText::OrHash,
110
+ OpenAI::Beta::BetaResponseOutputText::OrHash,
111
+ OpenAI::Beta::BetaResponseOutputItem::AgentMessage::Content::Text::OrHash,
112
+ OpenAI::Beta::BetaResponseOutputItem::AgentMessage::Content::SummaryText::OrHash,
113
+ OpenAI::Beta::BetaResponseOutputItem::AgentMessage::Content::ReasoningText::OrHash,
114
+ OpenAI::Beta::BetaResponseOutputRefusal::OrHash,
115
+ OpenAI::Beta::BetaResponseInputImage::OrHash,
116
+ OpenAI::Beta::BetaResponseOutputItem::AgentMessage::Content::ComputerScreenshot::OrHash,
117
+ OpenAI::Beta::BetaResponseInputFile::OrHash,
118
+ OpenAI::Beta::BetaResponseOutputItem::AgentMessage::Content::EncryptedContent::OrHash
119
+ )
120
+ ],
121
+ recipient: String,
122
+ agent:
123
+ OpenAI::Beta::BetaResponseOutputItem::AgentMessage::Agent::OrHash,
124
+ type: Symbol
125
+ ).returns(T.attached_class)
126
+ end
127
+ def self.new(
128
+ # The unique ID of the agent message.
129
+ id:,
130
+ # The sending agent identity.
131
+ author:,
132
+ # Encrypted content sent between agents.
133
+ content:,
134
+ # The destination agent identity.
135
+ recipient:,
136
+ # The agent that produced this item.
137
+ agent: nil,
138
+ # The type of the item. Always `agent_message`.
139
+ type: :agent_message
140
+ )
141
+ end
142
+
143
+ sig do
144
+ override.returns(
145
+ {
146
+ id: String,
147
+ author: String,
148
+ content:
149
+ T::Array[
150
+ OpenAI::Beta::BetaResponseOutputItem::AgentMessage::Content::Variants
151
+ ],
152
+ recipient: String,
153
+ type: Symbol,
154
+ agent: OpenAI::Beta::BetaResponseOutputItem::AgentMessage::Agent
155
+ }
156
+ )
157
+ end
158
+ def to_hash
159
+ end
160
+
161
+ # A content part that makes up an input or output item.
162
+ module Content
163
+ extend OpenAI::Internal::Type::Union
164
+
165
+ Variants =
166
+ T.type_alias do
167
+ T.any(
168
+ OpenAI::Beta::BetaResponseInputText,
169
+ OpenAI::Beta::BetaResponseOutputText,
170
+ OpenAI::Beta::BetaResponseOutputItem::AgentMessage::Content::Text,
171
+ OpenAI::Beta::BetaResponseOutputItem::AgentMessage::Content::SummaryText,
172
+ OpenAI::Beta::BetaResponseOutputItem::AgentMessage::Content::ReasoningText,
173
+ OpenAI::Beta::BetaResponseOutputRefusal,
174
+ OpenAI::Beta::BetaResponseInputImage,
175
+ OpenAI::Beta::BetaResponseOutputItem::AgentMessage::Content::ComputerScreenshot,
176
+ OpenAI::Beta::BetaResponseInputFile,
177
+ OpenAI::Beta::BetaResponseOutputItem::AgentMessage::Content::EncryptedContent
178
+ )
179
+ end
180
+
181
+ class Text < OpenAI::Internal::Type::BaseModel
182
+ OrHash =
183
+ T.type_alias do
184
+ T.any(
185
+ OpenAI::Beta::BetaResponseOutputItem::AgentMessage::Content::Text,
186
+ OpenAI::Internal::AnyHash
187
+ )
188
+ end
189
+
190
+ sig { returns(String) }
191
+ attr_accessor :text
192
+
193
+ sig { returns(Symbol) }
194
+ attr_accessor :type
195
+
196
+ # A text content.
197
+ sig do
198
+ params(text: String, type: Symbol).returns(T.attached_class)
199
+ end
200
+ def self.new(text:, type: :text)
201
+ end
202
+
203
+ sig { override.returns({ text: String, type: Symbol }) }
204
+ def to_hash
205
+ end
206
+ end
207
+
208
+ class SummaryText < OpenAI::Internal::Type::BaseModel
209
+ OrHash =
210
+ T.type_alias do
211
+ T.any(
212
+ OpenAI::Beta::BetaResponseOutputItem::AgentMessage::Content::SummaryText,
213
+ OpenAI::Internal::AnyHash
214
+ )
215
+ end
216
+
217
+ # A summary of the reasoning output from the model so far.
218
+ sig { returns(String) }
219
+ attr_accessor :text
220
+
221
+ # The type of the object. Always `summary_text`.
222
+ sig { returns(Symbol) }
223
+ attr_accessor :type
224
+
225
+ # A summary text from the model.
226
+ sig do
227
+ params(text: String, type: Symbol).returns(T.attached_class)
228
+ end
229
+ def self.new(
230
+ # A summary of the reasoning output from the model so far.
231
+ text:,
232
+ # The type of the object. Always `summary_text`.
233
+ type: :summary_text
234
+ )
235
+ end
236
+
237
+ sig { override.returns({ text: String, type: Symbol }) }
238
+ def to_hash
239
+ end
240
+ end
241
+
242
+ class ReasoningText < OpenAI::Internal::Type::BaseModel
243
+ OrHash =
244
+ T.type_alias do
245
+ T.any(
246
+ OpenAI::Beta::BetaResponseOutputItem::AgentMessage::Content::ReasoningText,
247
+ OpenAI::Internal::AnyHash
248
+ )
249
+ end
250
+
251
+ # The reasoning text from the model.
252
+ sig { returns(String) }
253
+ attr_accessor :text
254
+
255
+ # The type of the reasoning text. Always `reasoning_text`.
256
+ sig { returns(Symbol) }
257
+ attr_accessor :type
258
+
259
+ # Reasoning text from the model.
260
+ sig do
261
+ params(text: String, type: Symbol).returns(T.attached_class)
262
+ end
263
+ def self.new(
264
+ # The reasoning text from the model.
265
+ text:,
266
+ # The type of the reasoning text. Always `reasoning_text`.
267
+ type: :reasoning_text
268
+ )
269
+ end
270
+
271
+ sig { override.returns({ text: String, type: Symbol }) }
272
+ def to_hash
273
+ end
274
+ end
275
+
276
+ class ComputerScreenshot < OpenAI::Internal::Type::BaseModel
277
+ OrHash =
278
+ T.type_alias do
279
+ T.any(
280
+ OpenAI::Beta::BetaResponseOutputItem::AgentMessage::Content::ComputerScreenshot,
281
+ OpenAI::Internal::AnyHash
282
+ )
283
+ end
284
+
285
+ # The detail level of the screenshot image to be sent to the model. One of `high`,
286
+ # `low`, `auto`, or `original`. Defaults to `auto`.
287
+ sig do
288
+ returns(
289
+ OpenAI::Beta::BetaResponseOutputItem::AgentMessage::Content::ComputerScreenshot::Detail::TaggedSymbol
290
+ )
291
+ end
292
+ attr_accessor :detail
293
+
294
+ # The identifier of an uploaded file that contains the screenshot.
295
+ sig { returns(T.nilable(String)) }
296
+ attr_accessor :file_id
297
+
298
+ # The URL of the screenshot image.
299
+ sig { returns(T.nilable(String)) }
300
+ attr_accessor :image_url
301
+
302
+ # Specifies the event type. For a computer screenshot, this property is always set
303
+ # to `computer_screenshot`.
304
+ sig { returns(Symbol) }
305
+ attr_accessor :type
306
+
307
+ # Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL
308
+ # from the request's `prompt_cache_options.ttl`; the boundary is not rounded to a
309
+ # token block.
310
+ sig do
311
+ returns(
312
+ T.nilable(
313
+ OpenAI::Beta::BetaResponseOutputItem::AgentMessage::Content::ComputerScreenshot::PromptCacheBreakpoint
314
+ )
315
+ )
316
+ end
317
+ attr_reader :prompt_cache_breakpoint
318
+
319
+ sig do
320
+ params(
321
+ prompt_cache_breakpoint:
322
+ OpenAI::Beta::BetaResponseOutputItem::AgentMessage::Content::ComputerScreenshot::PromptCacheBreakpoint::OrHash
323
+ ).void
324
+ end
325
+ attr_writer :prompt_cache_breakpoint
326
+
327
+ # A screenshot of a computer.
328
+ sig do
329
+ params(
330
+ detail:
331
+ OpenAI::Beta::BetaResponseOutputItem::AgentMessage::Content::ComputerScreenshot::Detail::OrSymbol,
332
+ file_id: T.nilable(String),
333
+ image_url: T.nilable(String),
334
+ prompt_cache_breakpoint:
335
+ OpenAI::Beta::BetaResponseOutputItem::AgentMessage::Content::ComputerScreenshot::PromptCacheBreakpoint::OrHash,
336
+ type: Symbol
337
+ ).returns(T.attached_class)
338
+ end
339
+ def self.new(
340
+ # The detail level of the screenshot image to be sent to the model. One of `high`,
341
+ # `low`, `auto`, or `original`. Defaults to `auto`.
342
+ detail:,
343
+ # The identifier of an uploaded file that contains the screenshot.
344
+ file_id:,
345
+ # The URL of the screenshot image.
346
+ image_url:,
347
+ # Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL
348
+ # from the request's `prompt_cache_options.ttl`; the boundary is not rounded to a
349
+ # token block.
350
+ prompt_cache_breakpoint: nil,
351
+ # Specifies the event type. For a computer screenshot, this property is always set
352
+ # to `computer_screenshot`.
353
+ type: :computer_screenshot
354
+ )
355
+ end
356
+
357
+ sig do
358
+ override.returns(
359
+ {
360
+ detail:
361
+ OpenAI::Beta::BetaResponseOutputItem::AgentMessage::Content::ComputerScreenshot::Detail::TaggedSymbol,
362
+ file_id: T.nilable(String),
363
+ image_url: T.nilable(String),
364
+ type: Symbol,
365
+ prompt_cache_breakpoint:
366
+ OpenAI::Beta::BetaResponseOutputItem::AgentMessage::Content::ComputerScreenshot::PromptCacheBreakpoint
367
+ }
368
+ )
369
+ end
370
+ def to_hash
371
+ end
372
+
373
+ # The detail level of the screenshot image to be sent to the model. One of `high`,
374
+ # `low`, `auto`, or `original`. Defaults to `auto`.
375
+ module Detail
376
+ extend OpenAI::Internal::Type::Enum
377
+
378
+ TaggedSymbol =
379
+ T.type_alias do
380
+ T.all(
381
+ Symbol,
382
+ OpenAI::Beta::BetaResponseOutputItem::AgentMessage::Content::ComputerScreenshot::Detail
383
+ )
384
+ end
385
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
386
+
387
+ LOW =
388
+ T.let(
389
+ :low,
390
+ OpenAI::Beta::BetaResponseOutputItem::AgentMessage::Content::ComputerScreenshot::Detail::TaggedSymbol
391
+ )
392
+ HIGH =
393
+ T.let(
394
+ :high,
395
+ OpenAI::Beta::BetaResponseOutputItem::AgentMessage::Content::ComputerScreenshot::Detail::TaggedSymbol
396
+ )
397
+ AUTO =
398
+ T.let(
399
+ :auto,
400
+ OpenAI::Beta::BetaResponseOutputItem::AgentMessage::Content::ComputerScreenshot::Detail::TaggedSymbol
401
+ )
402
+ ORIGINAL =
403
+ T.let(
404
+ :original,
405
+ OpenAI::Beta::BetaResponseOutputItem::AgentMessage::Content::ComputerScreenshot::Detail::TaggedSymbol
406
+ )
407
+
408
+ sig do
409
+ override.returns(
410
+ T::Array[
411
+ OpenAI::Beta::BetaResponseOutputItem::AgentMessage::Content::ComputerScreenshot::Detail::TaggedSymbol
412
+ ]
413
+ )
414
+ end
415
+ def self.values
416
+ end
417
+ end
418
+
419
+ class PromptCacheBreakpoint < OpenAI::Internal::Type::BaseModel
420
+ OrHash =
421
+ T.type_alias do
422
+ T.any(
423
+ OpenAI::Beta::BetaResponseOutputItem::AgentMessage::Content::ComputerScreenshot::PromptCacheBreakpoint,
424
+ OpenAI::Internal::AnyHash
425
+ )
426
+ end
427
+
428
+ # The breakpoint mode. Always `explicit`.
429
+ sig { returns(Symbol) }
430
+ attr_accessor :mode
431
+
432
+ # Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL
433
+ # from the request's `prompt_cache_options.ttl`; the boundary is not rounded to a
434
+ # token block.
435
+ sig { params(mode: Symbol).returns(T.attached_class) }
436
+ def self.new(
437
+ # The breakpoint mode. Always `explicit`.
438
+ mode: :explicit
439
+ )
440
+ end
441
+
442
+ sig { override.returns({ mode: Symbol }) }
443
+ def to_hash
444
+ end
445
+ end
446
+ end
447
+
448
+ class EncryptedContent < OpenAI::Internal::Type::BaseModel
449
+ OrHash =
450
+ T.type_alias do
451
+ T.any(
452
+ OpenAI::Beta::BetaResponseOutputItem::AgentMessage::Content::EncryptedContent,
453
+ OpenAI::Internal::AnyHash
454
+ )
455
+ end
456
+
457
+ # Opaque encrypted content.
458
+ sig { returns(String) }
459
+ attr_accessor :encrypted_content
460
+
461
+ # The type of the input item. Always `encrypted_content`.
462
+ sig { returns(Symbol) }
463
+ attr_accessor :type
464
+
465
+ # Opaque encrypted content that Responses API decrypts inside trusted model
466
+ # execution.
467
+ sig do
468
+ params(encrypted_content: String, type: Symbol).returns(
469
+ T.attached_class
470
+ )
471
+ end
472
+ def self.new(
473
+ # Opaque encrypted content.
474
+ encrypted_content:,
475
+ # The type of the input item. Always `encrypted_content`.
476
+ type: :encrypted_content
477
+ )
478
+ end
479
+
480
+ sig do
481
+ override.returns({ encrypted_content: String, type: Symbol })
482
+ end
483
+ def to_hash
484
+ end
485
+ end
486
+
487
+ sig do
488
+ override.returns(
489
+ T::Array[
490
+ OpenAI::Beta::BetaResponseOutputItem::AgentMessage::Content::Variants
491
+ ]
492
+ )
493
+ end
494
+ def self.variants
495
+ end
496
+ end
497
+
498
+ class Agent < OpenAI::Internal::Type::BaseModel
499
+ OrHash =
500
+ T.type_alias do
501
+ T.any(
502
+ OpenAI::Beta::BetaResponseOutputItem::AgentMessage::Agent,
503
+ OpenAI::Internal::AnyHash
504
+ )
505
+ end
506
+
507
+ # The canonical name of the agent that produced this item.
508
+ sig { returns(String) }
509
+ attr_accessor :agent_name
510
+
511
+ # The agent that produced this item.
512
+ sig { params(agent_name: String).returns(T.attached_class) }
513
+ def self.new(
514
+ # The canonical name of the agent that produced this item.
515
+ agent_name:
516
+ )
517
+ end
518
+
519
+ sig { override.returns({ agent_name: String }) }
520
+ def to_hash
521
+ end
522
+ end
523
+ end
524
+
525
+ class MultiAgentCall < OpenAI::Internal::Type::BaseModel
526
+ OrHash =
527
+ T.type_alias do
528
+ T.any(
529
+ OpenAI::Beta::BetaResponseOutputItem::MultiAgentCall,
530
+ OpenAI::Internal::AnyHash
531
+ )
532
+ end
533
+
534
+ # The unique ID of the multi-agent call item.
535
+ sig { returns(String) }
536
+ attr_accessor :id
537
+
538
+ # The multi-agent action to execute.
539
+ sig do
540
+ returns(
541
+ OpenAI::Beta::BetaResponseOutputItem::MultiAgentCall::Action::TaggedSymbol
542
+ )
543
+ end
544
+ attr_accessor :action
545
+
546
+ # The JSON string of arguments generated for the action.
547
+ sig { returns(String) }
548
+ attr_accessor :arguments
549
+
550
+ # The unique ID linking this call to its output.
551
+ sig { returns(String) }
552
+ attr_accessor :call_id
553
+
554
+ # The type of the multi-agent call. Always `multi_agent_call`.
555
+ sig { returns(Symbol) }
556
+ attr_accessor :type
557
+
558
+ # The agent that produced this item.
559
+ sig do
560
+ returns(
561
+ T.nilable(
562
+ OpenAI::Beta::BetaResponseOutputItem::MultiAgentCall::Agent
563
+ )
564
+ )
565
+ end
566
+ attr_reader :agent
567
+
568
+ sig do
569
+ params(
570
+ agent:
571
+ OpenAI::Beta::BetaResponseOutputItem::MultiAgentCall::Agent::OrHash
572
+ ).void
573
+ end
574
+ attr_writer :agent
575
+
576
+ sig do
577
+ params(
578
+ id: String,
579
+ action:
580
+ OpenAI::Beta::BetaResponseOutputItem::MultiAgentCall::Action::OrSymbol,
581
+ arguments: String,
582
+ call_id: String,
583
+ agent:
584
+ OpenAI::Beta::BetaResponseOutputItem::MultiAgentCall::Agent::OrHash,
585
+ type: Symbol
586
+ ).returns(T.attached_class)
587
+ end
588
+ def self.new(
589
+ # The unique ID of the multi-agent call item.
590
+ id:,
591
+ # The multi-agent action to execute.
592
+ action:,
593
+ # The JSON string of arguments generated for the action.
594
+ arguments:,
595
+ # The unique ID linking this call to its output.
596
+ call_id:,
597
+ # The agent that produced this item.
598
+ agent: nil,
599
+ # The type of the multi-agent call. Always `multi_agent_call`.
600
+ type: :multi_agent_call
601
+ )
602
+ end
603
+
604
+ sig do
605
+ override.returns(
606
+ {
607
+ id: String,
608
+ action:
609
+ OpenAI::Beta::BetaResponseOutputItem::MultiAgentCall::Action::TaggedSymbol,
610
+ arguments: String,
611
+ call_id: String,
612
+ type: Symbol,
613
+ agent:
614
+ OpenAI::Beta::BetaResponseOutputItem::MultiAgentCall::Agent
615
+ }
616
+ )
617
+ end
618
+ def to_hash
619
+ end
620
+
621
+ # The multi-agent action to execute.
622
+ module Action
623
+ extend OpenAI::Internal::Type::Enum
624
+
625
+ TaggedSymbol =
626
+ T.type_alias do
627
+ T.all(
628
+ Symbol,
629
+ OpenAI::Beta::BetaResponseOutputItem::MultiAgentCall::Action
630
+ )
631
+ end
632
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
633
+
634
+ SPAWN_AGENT =
635
+ T.let(
636
+ :spawn_agent,
637
+ OpenAI::Beta::BetaResponseOutputItem::MultiAgentCall::Action::TaggedSymbol
638
+ )
639
+ INTERRUPT_AGENT =
640
+ T.let(
641
+ :interrupt_agent,
642
+ OpenAI::Beta::BetaResponseOutputItem::MultiAgentCall::Action::TaggedSymbol
643
+ )
644
+ LIST_AGENTS =
645
+ T.let(
646
+ :list_agents,
647
+ OpenAI::Beta::BetaResponseOutputItem::MultiAgentCall::Action::TaggedSymbol
648
+ )
649
+ SEND_MESSAGE =
650
+ T.let(
651
+ :send_message,
652
+ OpenAI::Beta::BetaResponseOutputItem::MultiAgentCall::Action::TaggedSymbol
653
+ )
654
+ FOLLOWUP_TASK =
655
+ T.let(
656
+ :followup_task,
657
+ OpenAI::Beta::BetaResponseOutputItem::MultiAgentCall::Action::TaggedSymbol
658
+ )
659
+ WAIT_AGENT =
660
+ T.let(
661
+ :wait_agent,
662
+ OpenAI::Beta::BetaResponseOutputItem::MultiAgentCall::Action::TaggedSymbol
663
+ )
664
+
665
+ sig do
666
+ override.returns(
667
+ T::Array[
668
+ OpenAI::Beta::BetaResponseOutputItem::MultiAgentCall::Action::TaggedSymbol
669
+ ]
670
+ )
671
+ end
672
+ def self.values
673
+ end
674
+ end
675
+
676
+ class Agent < OpenAI::Internal::Type::BaseModel
677
+ OrHash =
678
+ T.type_alias do
679
+ T.any(
680
+ OpenAI::Beta::BetaResponseOutputItem::MultiAgentCall::Agent,
681
+ OpenAI::Internal::AnyHash
682
+ )
683
+ end
684
+
685
+ # The canonical name of the agent that produced this item.
686
+ sig { returns(String) }
687
+ attr_accessor :agent_name
688
+
689
+ # The agent that produced this item.
690
+ sig { params(agent_name: String).returns(T.attached_class) }
691
+ def self.new(
692
+ # The canonical name of the agent that produced this item.
693
+ agent_name:
694
+ )
695
+ end
696
+
697
+ sig { override.returns({ agent_name: String }) }
698
+ def to_hash
699
+ end
700
+ end
701
+ end
702
+
703
+ class MultiAgentCallOutput < OpenAI::Internal::Type::BaseModel
704
+ OrHash =
705
+ T.type_alias do
706
+ T.any(
707
+ OpenAI::Beta::BetaResponseOutputItem::MultiAgentCallOutput,
708
+ OpenAI::Internal::AnyHash
709
+ )
710
+ end
711
+
712
+ # The unique ID of the multi-agent call output item.
713
+ sig { returns(String) }
714
+ attr_accessor :id
715
+
716
+ # The multi-agent action that produced this result.
717
+ sig do
718
+ returns(
719
+ OpenAI::Beta::BetaResponseOutputItem::MultiAgentCallOutput::Action::TaggedSymbol
720
+ )
721
+ end
722
+ attr_accessor :action
723
+
724
+ # The unique ID of the multi-agent call.
725
+ sig { returns(String) }
726
+ attr_accessor :call_id
727
+
728
+ # Text output returned by the multi-agent action.
729
+ sig { returns(T::Array[OpenAI::Beta::BetaResponseOutputText]) }
730
+ attr_accessor :output
731
+
732
+ # The type of the multi-agent result. Always `multi_agent_call_output`.
733
+ sig { returns(Symbol) }
734
+ attr_accessor :type
735
+
736
+ # The agent that produced this item.
737
+ sig do
738
+ returns(
739
+ T.nilable(
740
+ OpenAI::Beta::BetaResponseOutputItem::MultiAgentCallOutput::Agent
741
+ )
742
+ )
743
+ end
744
+ attr_reader :agent
745
+
746
+ sig do
747
+ params(
748
+ agent:
749
+ OpenAI::Beta::BetaResponseOutputItem::MultiAgentCallOutput::Agent::OrHash
750
+ ).void
751
+ end
752
+ attr_writer :agent
753
+
754
+ sig do
755
+ params(
756
+ id: String,
757
+ action:
758
+ OpenAI::Beta::BetaResponseOutputItem::MultiAgentCallOutput::Action::OrSymbol,
759
+ call_id: String,
760
+ output: T::Array[OpenAI::Beta::BetaResponseOutputText::OrHash],
761
+ agent:
762
+ OpenAI::Beta::BetaResponseOutputItem::MultiAgentCallOutput::Agent::OrHash,
763
+ type: Symbol
764
+ ).returns(T.attached_class)
765
+ end
766
+ def self.new(
767
+ # The unique ID of the multi-agent call output item.
768
+ id:,
769
+ # The multi-agent action that produced this result.
770
+ action:,
771
+ # The unique ID of the multi-agent call.
772
+ call_id:,
773
+ # Text output returned by the multi-agent action.
774
+ output:,
775
+ # The agent that produced this item.
776
+ agent: nil,
777
+ # The type of the multi-agent result. Always `multi_agent_call_output`.
778
+ type: :multi_agent_call_output
779
+ )
780
+ end
781
+
782
+ sig do
783
+ override.returns(
784
+ {
785
+ id: String,
786
+ action:
787
+ OpenAI::Beta::BetaResponseOutputItem::MultiAgentCallOutput::Action::TaggedSymbol,
788
+ call_id: String,
789
+ output: T::Array[OpenAI::Beta::BetaResponseOutputText],
790
+ type: Symbol,
791
+ agent:
792
+ OpenAI::Beta::BetaResponseOutputItem::MultiAgentCallOutput::Agent
793
+ }
794
+ )
795
+ end
796
+ def to_hash
797
+ end
798
+
799
+ # The multi-agent action that produced this result.
800
+ module Action
801
+ extend OpenAI::Internal::Type::Enum
802
+
803
+ TaggedSymbol =
804
+ T.type_alias do
805
+ T.all(
806
+ Symbol,
807
+ OpenAI::Beta::BetaResponseOutputItem::MultiAgentCallOutput::Action
808
+ )
809
+ end
810
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
811
+
812
+ SPAWN_AGENT =
813
+ T.let(
814
+ :spawn_agent,
815
+ OpenAI::Beta::BetaResponseOutputItem::MultiAgentCallOutput::Action::TaggedSymbol
816
+ )
817
+ INTERRUPT_AGENT =
818
+ T.let(
819
+ :interrupt_agent,
820
+ OpenAI::Beta::BetaResponseOutputItem::MultiAgentCallOutput::Action::TaggedSymbol
821
+ )
822
+ LIST_AGENTS =
823
+ T.let(
824
+ :list_agents,
825
+ OpenAI::Beta::BetaResponseOutputItem::MultiAgentCallOutput::Action::TaggedSymbol
826
+ )
827
+ SEND_MESSAGE =
828
+ T.let(
829
+ :send_message,
830
+ OpenAI::Beta::BetaResponseOutputItem::MultiAgentCallOutput::Action::TaggedSymbol
831
+ )
832
+ FOLLOWUP_TASK =
833
+ T.let(
834
+ :followup_task,
835
+ OpenAI::Beta::BetaResponseOutputItem::MultiAgentCallOutput::Action::TaggedSymbol
836
+ )
837
+ WAIT_AGENT =
838
+ T.let(
839
+ :wait_agent,
840
+ OpenAI::Beta::BetaResponseOutputItem::MultiAgentCallOutput::Action::TaggedSymbol
841
+ )
842
+
843
+ sig do
844
+ override.returns(
845
+ T::Array[
846
+ OpenAI::Beta::BetaResponseOutputItem::MultiAgentCallOutput::Action::TaggedSymbol
847
+ ]
848
+ )
849
+ end
850
+ def self.values
851
+ end
852
+ end
853
+
854
+ class Agent < OpenAI::Internal::Type::BaseModel
855
+ OrHash =
856
+ T.type_alias do
857
+ T.any(
858
+ OpenAI::Beta::BetaResponseOutputItem::MultiAgentCallOutput::Agent,
859
+ OpenAI::Internal::AnyHash
860
+ )
861
+ end
862
+
863
+ # The canonical name of the agent that produced this item.
864
+ sig { returns(String) }
865
+ attr_accessor :agent_name
866
+
867
+ # The agent that produced this item.
868
+ sig { params(agent_name: String).returns(T.attached_class) }
869
+ def self.new(
870
+ # The canonical name of the agent that produced this item.
871
+ agent_name:
872
+ )
873
+ end
874
+
875
+ sig { override.returns({ agent_name: String }) }
876
+ def to_hash
877
+ end
878
+ end
879
+ end
880
+
881
+ class Program < OpenAI::Internal::Type::BaseModel
882
+ OrHash =
883
+ T.type_alias do
884
+ T.any(
885
+ OpenAI::Beta::BetaResponseOutputItem::Program,
886
+ OpenAI::Internal::AnyHash
887
+ )
888
+ end
889
+
890
+ # The unique ID of the program item.
891
+ sig { returns(String) }
892
+ attr_accessor :id
893
+
894
+ # The stable call ID of the program item.
895
+ sig { returns(String) }
896
+ attr_accessor :call_id
897
+
898
+ # The JavaScript source executed by programmatic tool calling.
899
+ sig { returns(String) }
900
+ attr_accessor :code
901
+
902
+ # Opaque program replay fingerprint that must be round-tripped.
903
+ sig { returns(String) }
904
+ attr_accessor :fingerprint
905
+
906
+ # The type of the item. Always `program`.
907
+ sig { returns(Symbol) }
908
+ attr_accessor :type
909
+
910
+ # The agent that produced this item.
911
+ sig do
912
+ returns(
913
+ T.nilable(OpenAI::Beta::BetaResponseOutputItem::Program::Agent)
914
+ )
915
+ end
916
+ attr_reader :agent
917
+
918
+ sig do
919
+ params(
920
+ agent:
921
+ OpenAI::Beta::BetaResponseOutputItem::Program::Agent::OrHash
922
+ ).void
923
+ end
924
+ attr_writer :agent
925
+
926
+ sig do
927
+ params(
928
+ id: String,
929
+ call_id: String,
930
+ code: String,
931
+ fingerprint: String,
932
+ agent:
933
+ OpenAI::Beta::BetaResponseOutputItem::Program::Agent::OrHash,
934
+ type: Symbol
935
+ ).returns(T.attached_class)
936
+ end
937
+ def self.new(
938
+ # The unique ID of the program item.
939
+ id:,
940
+ # The stable call ID of the program item.
941
+ call_id:,
942
+ # The JavaScript source executed by programmatic tool calling.
943
+ code:,
944
+ # Opaque program replay fingerprint that must be round-tripped.
945
+ fingerprint:,
946
+ # The agent that produced this item.
947
+ agent: nil,
948
+ # The type of the item. Always `program`.
949
+ type: :program
950
+ )
951
+ end
952
+
953
+ sig do
954
+ override.returns(
955
+ {
956
+ id: String,
957
+ call_id: String,
958
+ code: String,
959
+ fingerprint: String,
960
+ type: Symbol,
961
+ agent: OpenAI::Beta::BetaResponseOutputItem::Program::Agent
962
+ }
963
+ )
964
+ end
965
+ def to_hash
966
+ end
967
+
968
+ class Agent < OpenAI::Internal::Type::BaseModel
969
+ OrHash =
970
+ T.type_alias do
971
+ T.any(
972
+ OpenAI::Beta::BetaResponseOutputItem::Program::Agent,
973
+ OpenAI::Internal::AnyHash
974
+ )
975
+ end
976
+
977
+ # The canonical name of the agent that produced this item.
978
+ sig { returns(String) }
979
+ attr_accessor :agent_name
980
+
981
+ # The agent that produced this item.
982
+ sig { params(agent_name: String).returns(T.attached_class) }
983
+ def self.new(
984
+ # The canonical name of the agent that produced this item.
985
+ agent_name:
986
+ )
987
+ end
988
+
989
+ sig { override.returns({ agent_name: String }) }
990
+ def to_hash
991
+ end
992
+ end
993
+ end
994
+
995
+ class ProgramOutput < OpenAI::Internal::Type::BaseModel
996
+ OrHash =
997
+ T.type_alias do
998
+ T.any(
999
+ OpenAI::Beta::BetaResponseOutputItem::ProgramOutput,
1000
+ OpenAI::Internal::AnyHash
1001
+ )
1002
+ end
1003
+
1004
+ # The unique ID of the program output item.
1005
+ sig { returns(String) }
1006
+ attr_accessor :id
1007
+
1008
+ # The call ID of the program item.
1009
+ sig { returns(String) }
1010
+ attr_accessor :call_id
1011
+
1012
+ # The result produced by the program item.
1013
+ sig { returns(String) }
1014
+ attr_accessor :result
1015
+
1016
+ # The terminal status of the program output item.
1017
+ sig do
1018
+ returns(
1019
+ OpenAI::Beta::BetaResponseOutputItem::ProgramOutput::Status::TaggedSymbol
1020
+ )
1021
+ end
1022
+ attr_accessor :status
1023
+
1024
+ # The type of the item. Always `program_output`.
1025
+ sig { returns(Symbol) }
1026
+ attr_accessor :type
1027
+
1028
+ # The agent that produced this item.
1029
+ sig do
1030
+ returns(
1031
+ T.nilable(
1032
+ OpenAI::Beta::BetaResponseOutputItem::ProgramOutput::Agent
1033
+ )
1034
+ )
1035
+ end
1036
+ attr_reader :agent
1037
+
1038
+ sig do
1039
+ params(
1040
+ agent:
1041
+ OpenAI::Beta::BetaResponseOutputItem::ProgramOutput::Agent::OrHash
1042
+ ).void
1043
+ end
1044
+ attr_writer :agent
1045
+
1046
+ sig do
1047
+ params(
1048
+ id: String,
1049
+ call_id: String,
1050
+ result: String,
1051
+ status:
1052
+ OpenAI::Beta::BetaResponseOutputItem::ProgramOutput::Status::OrSymbol,
1053
+ agent:
1054
+ OpenAI::Beta::BetaResponseOutputItem::ProgramOutput::Agent::OrHash,
1055
+ type: Symbol
1056
+ ).returns(T.attached_class)
1057
+ end
1058
+ def self.new(
1059
+ # The unique ID of the program output item.
1060
+ id:,
1061
+ # The call ID of the program item.
1062
+ call_id:,
1063
+ # The result produced by the program item.
1064
+ result:,
1065
+ # The terminal status of the program output item.
1066
+ status:,
1067
+ # The agent that produced this item.
1068
+ agent: nil,
1069
+ # The type of the item. Always `program_output`.
1070
+ type: :program_output
1071
+ )
1072
+ end
1073
+
1074
+ sig do
1075
+ override.returns(
1076
+ {
1077
+ id: String,
1078
+ call_id: String,
1079
+ result: String,
1080
+ status:
1081
+ OpenAI::Beta::BetaResponseOutputItem::ProgramOutput::Status::TaggedSymbol,
1082
+ type: Symbol,
1083
+ agent:
1084
+ OpenAI::Beta::BetaResponseOutputItem::ProgramOutput::Agent
1085
+ }
1086
+ )
1087
+ end
1088
+ def to_hash
1089
+ end
1090
+
1091
+ # The terminal status of the program output item.
1092
+ module Status
1093
+ extend OpenAI::Internal::Type::Enum
1094
+
1095
+ TaggedSymbol =
1096
+ T.type_alias do
1097
+ T.all(
1098
+ Symbol,
1099
+ OpenAI::Beta::BetaResponseOutputItem::ProgramOutput::Status
1100
+ )
1101
+ end
1102
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1103
+
1104
+ COMPLETED =
1105
+ T.let(
1106
+ :completed,
1107
+ OpenAI::Beta::BetaResponseOutputItem::ProgramOutput::Status::TaggedSymbol
1108
+ )
1109
+ INCOMPLETE =
1110
+ T.let(
1111
+ :incomplete,
1112
+ OpenAI::Beta::BetaResponseOutputItem::ProgramOutput::Status::TaggedSymbol
1113
+ )
1114
+
1115
+ sig do
1116
+ override.returns(
1117
+ T::Array[
1118
+ OpenAI::Beta::BetaResponseOutputItem::ProgramOutput::Status::TaggedSymbol
1119
+ ]
1120
+ )
1121
+ end
1122
+ def self.values
1123
+ end
1124
+ end
1125
+
1126
+ class Agent < OpenAI::Internal::Type::BaseModel
1127
+ OrHash =
1128
+ T.type_alias do
1129
+ T.any(
1130
+ OpenAI::Beta::BetaResponseOutputItem::ProgramOutput::Agent,
1131
+ OpenAI::Internal::AnyHash
1132
+ )
1133
+ end
1134
+
1135
+ # The canonical name of the agent that produced this item.
1136
+ sig { returns(String) }
1137
+ attr_accessor :agent_name
1138
+
1139
+ # The agent that produced this item.
1140
+ sig { params(agent_name: String).returns(T.attached_class) }
1141
+ def self.new(
1142
+ # The canonical name of the agent that produced this item.
1143
+ agent_name:
1144
+ )
1145
+ end
1146
+
1147
+ sig { override.returns({ agent_name: String }) }
1148
+ def to_hash
1149
+ end
1150
+ end
1151
+ end
1152
+
1153
+ class AdditionalTools < OpenAI::Internal::Type::BaseModel
1154
+ OrHash =
1155
+ T.type_alias do
1156
+ T.any(
1157
+ OpenAI::Beta::BetaResponseOutputItem::AdditionalTools,
1158
+ OpenAI::Internal::AnyHash
1159
+ )
1160
+ end
1161
+
1162
+ # The unique ID of the additional tools item.
1163
+ sig { returns(String) }
1164
+ attr_accessor :id
1165
+
1166
+ # The role that provided the additional tools.
1167
+ sig do
1168
+ returns(
1169
+ OpenAI::Beta::BetaResponseOutputItem::AdditionalTools::Role::TaggedSymbol
1170
+ )
1171
+ end
1172
+ attr_accessor :role
1173
+
1174
+ # The additional tool definitions made available at this item.
1175
+ sig { returns(T::Array[OpenAI::Beta::BetaTool::Variants]) }
1176
+ attr_accessor :tools
1177
+
1178
+ # The type of the item. Always `additional_tools`.
1179
+ sig { returns(Symbol) }
1180
+ attr_accessor :type
1181
+
1182
+ # The agent that produced this item.
1183
+ sig do
1184
+ returns(
1185
+ T.nilable(
1186
+ OpenAI::Beta::BetaResponseOutputItem::AdditionalTools::Agent
1187
+ )
1188
+ )
1189
+ end
1190
+ attr_reader :agent
1191
+
1192
+ sig do
1193
+ params(
1194
+ agent:
1195
+ OpenAI::Beta::BetaResponseOutputItem::AdditionalTools::Agent::OrHash
1196
+ ).void
1197
+ end
1198
+ attr_writer :agent
1199
+
1200
+ sig do
1201
+ params(
1202
+ id: String,
1203
+ role:
1204
+ OpenAI::Beta::BetaResponseOutputItem::AdditionalTools::Role::OrSymbol,
1205
+ tools:
1206
+ T::Array[
1207
+ T.any(
1208
+ OpenAI::Beta::BetaFunctionTool::OrHash,
1209
+ OpenAI::Beta::BetaFileSearchTool::OrHash,
1210
+ OpenAI::Beta::BetaComputerTool::OrHash,
1211
+ OpenAI::Beta::BetaComputerUsePreviewTool::OrHash,
1212
+ OpenAI::Beta::BetaTool::Mcp::OrHash,
1213
+ OpenAI::Beta::BetaTool::CodeInterpreter::OrHash,
1214
+ OpenAI::Beta::BetaTool::ProgrammaticToolCalling::OrHash,
1215
+ OpenAI::Beta::BetaTool::ImageGeneration::OrHash,
1216
+ OpenAI::Beta::BetaTool::LocalShell::OrHash,
1217
+ OpenAI::Beta::BetaFunctionShellTool::OrHash,
1218
+ OpenAI::Beta::BetaCustomTool::OrHash,
1219
+ OpenAI::Beta::BetaNamespaceTool::OrHash,
1220
+ OpenAI::Beta::BetaToolSearchTool::OrHash,
1221
+ OpenAI::Beta::BetaApplyPatchTool::OrHash,
1222
+ OpenAI::Beta::BetaWebSearchTool::OrHash,
1223
+ OpenAI::Beta::BetaWebSearchPreviewTool::OrHash
1224
+ )
1225
+ ],
1226
+ agent:
1227
+ OpenAI::Beta::BetaResponseOutputItem::AdditionalTools::Agent::OrHash,
1228
+ type: Symbol
1229
+ ).returns(T.attached_class)
1230
+ end
1231
+ def self.new(
1232
+ # The unique ID of the additional tools item.
1233
+ id:,
1234
+ # The role that provided the additional tools.
1235
+ role:,
1236
+ # The additional tool definitions made available at this item.
1237
+ tools:,
1238
+ # The agent that produced this item.
1239
+ agent: nil,
1240
+ # The type of the item. Always `additional_tools`.
1241
+ type: :additional_tools
1242
+ )
1243
+ end
1244
+
1245
+ sig do
1246
+ override.returns(
1247
+ {
1248
+ id: String,
1249
+ role:
1250
+ OpenAI::Beta::BetaResponseOutputItem::AdditionalTools::Role::TaggedSymbol,
1251
+ tools: T::Array[OpenAI::Beta::BetaTool::Variants],
1252
+ type: Symbol,
1253
+ agent:
1254
+ OpenAI::Beta::BetaResponseOutputItem::AdditionalTools::Agent
1255
+ }
1256
+ )
1257
+ end
1258
+ def to_hash
1259
+ end
1260
+
1261
+ # The role that provided the additional tools.
1262
+ module Role
1263
+ extend OpenAI::Internal::Type::Enum
1264
+
1265
+ TaggedSymbol =
1266
+ T.type_alias do
1267
+ T.all(
1268
+ Symbol,
1269
+ OpenAI::Beta::BetaResponseOutputItem::AdditionalTools::Role
1270
+ )
1271
+ end
1272
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1273
+
1274
+ UNKNOWN =
1275
+ T.let(
1276
+ :unknown,
1277
+ OpenAI::Beta::BetaResponseOutputItem::AdditionalTools::Role::TaggedSymbol
1278
+ )
1279
+ USER =
1280
+ T.let(
1281
+ :user,
1282
+ OpenAI::Beta::BetaResponseOutputItem::AdditionalTools::Role::TaggedSymbol
1283
+ )
1284
+ ASSISTANT =
1285
+ T.let(
1286
+ :assistant,
1287
+ OpenAI::Beta::BetaResponseOutputItem::AdditionalTools::Role::TaggedSymbol
1288
+ )
1289
+ SYSTEM =
1290
+ T.let(
1291
+ :system,
1292
+ OpenAI::Beta::BetaResponseOutputItem::AdditionalTools::Role::TaggedSymbol
1293
+ )
1294
+ CRITIC =
1295
+ T.let(
1296
+ :critic,
1297
+ OpenAI::Beta::BetaResponseOutputItem::AdditionalTools::Role::TaggedSymbol
1298
+ )
1299
+ DISCRIMINATOR =
1300
+ T.let(
1301
+ :discriminator,
1302
+ OpenAI::Beta::BetaResponseOutputItem::AdditionalTools::Role::TaggedSymbol
1303
+ )
1304
+ DEVELOPER =
1305
+ T.let(
1306
+ :developer,
1307
+ OpenAI::Beta::BetaResponseOutputItem::AdditionalTools::Role::TaggedSymbol
1308
+ )
1309
+ TOOL =
1310
+ T.let(
1311
+ :tool,
1312
+ OpenAI::Beta::BetaResponseOutputItem::AdditionalTools::Role::TaggedSymbol
1313
+ )
1314
+
1315
+ sig do
1316
+ override.returns(
1317
+ T::Array[
1318
+ OpenAI::Beta::BetaResponseOutputItem::AdditionalTools::Role::TaggedSymbol
1319
+ ]
1320
+ )
1321
+ end
1322
+ def self.values
1323
+ end
1324
+ end
1325
+
1326
+ class Agent < OpenAI::Internal::Type::BaseModel
1327
+ OrHash =
1328
+ T.type_alias do
1329
+ T.any(
1330
+ OpenAI::Beta::BetaResponseOutputItem::AdditionalTools::Agent,
1331
+ OpenAI::Internal::AnyHash
1332
+ )
1333
+ end
1334
+
1335
+ # The canonical name of the agent that produced this item.
1336
+ sig { returns(String) }
1337
+ attr_accessor :agent_name
1338
+
1339
+ # The agent that produced this item.
1340
+ sig { params(agent_name: String).returns(T.attached_class) }
1341
+ def self.new(
1342
+ # The canonical name of the agent that produced this item.
1343
+ agent_name:
1344
+ )
1345
+ end
1346
+
1347
+ sig { override.returns({ agent_name: String }) }
1348
+ def to_hash
1349
+ end
1350
+ end
1351
+ end
1352
+
1353
+ class ImageGenerationCall < OpenAI::Internal::Type::BaseModel
1354
+ OrHash =
1355
+ T.type_alias do
1356
+ T.any(
1357
+ OpenAI::Beta::BetaResponseOutputItem::ImageGenerationCall,
1358
+ OpenAI::Internal::AnyHash
1359
+ )
1360
+ end
1361
+
1362
+ # The unique ID of the image generation call.
1363
+ sig { returns(String) }
1364
+ attr_accessor :id
1365
+
1366
+ # The generated image encoded in base64.
1367
+ sig { returns(T.nilable(String)) }
1368
+ attr_accessor :result
1369
+
1370
+ # The status of the image generation call.
1371
+ sig do
1372
+ returns(
1373
+ OpenAI::Beta::BetaResponseOutputItem::ImageGenerationCall::Status::TaggedSymbol
1374
+ )
1375
+ end
1376
+ attr_accessor :status
1377
+
1378
+ # The type of the image generation call. Always `image_generation_call`.
1379
+ sig { returns(Symbol) }
1380
+ attr_accessor :type
1381
+
1382
+ # The agent that produced this item.
1383
+ sig do
1384
+ returns(
1385
+ T.nilable(
1386
+ OpenAI::Beta::BetaResponseOutputItem::ImageGenerationCall::Agent
1387
+ )
1388
+ )
1389
+ end
1390
+ attr_reader :agent
1391
+
1392
+ sig do
1393
+ params(
1394
+ agent:
1395
+ T.nilable(
1396
+ OpenAI::Beta::BetaResponseOutputItem::ImageGenerationCall::Agent::OrHash
1397
+ )
1398
+ ).void
1399
+ end
1400
+ attr_writer :agent
1401
+
1402
+ # An image generation request made by the model.
1403
+ sig do
1404
+ params(
1405
+ id: String,
1406
+ result: T.nilable(String),
1407
+ status:
1408
+ OpenAI::Beta::BetaResponseOutputItem::ImageGenerationCall::Status::OrSymbol,
1409
+ agent:
1410
+ T.nilable(
1411
+ OpenAI::Beta::BetaResponseOutputItem::ImageGenerationCall::Agent::OrHash
1412
+ ),
1413
+ type: Symbol
1414
+ ).returns(T.attached_class)
1415
+ end
1416
+ def self.new(
1417
+ # The unique ID of the image generation call.
1418
+ id:,
1419
+ # The generated image encoded in base64.
1420
+ result:,
1421
+ # The status of the image generation call.
1422
+ status:,
1423
+ # The agent that produced this item.
1424
+ agent: nil,
1425
+ # The type of the image generation call. Always `image_generation_call`.
1426
+ type: :image_generation_call
1427
+ )
1428
+ end
1429
+
1430
+ sig do
1431
+ override.returns(
1432
+ {
1433
+ id: String,
1434
+ result: T.nilable(String),
1435
+ status:
1436
+ OpenAI::Beta::BetaResponseOutputItem::ImageGenerationCall::Status::TaggedSymbol,
1437
+ type: Symbol,
1438
+ agent:
1439
+ T.nilable(
1440
+ OpenAI::Beta::BetaResponseOutputItem::ImageGenerationCall::Agent
1441
+ )
1442
+ }
1443
+ )
1444
+ end
1445
+ def to_hash
1446
+ end
1447
+
1448
+ # The status of the image generation call.
1449
+ module Status
1450
+ extend OpenAI::Internal::Type::Enum
1451
+
1452
+ TaggedSymbol =
1453
+ T.type_alias do
1454
+ T.all(
1455
+ Symbol,
1456
+ OpenAI::Beta::BetaResponseOutputItem::ImageGenerationCall::Status
1457
+ )
1458
+ end
1459
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1460
+
1461
+ IN_PROGRESS =
1462
+ T.let(
1463
+ :in_progress,
1464
+ OpenAI::Beta::BetaResponseOutputItem::ImageGenerationCall::Status::TaggedSymbol
1465
+ )
1466
+ COMPLETED =
1467
+ T.let(
1468
+ :completed,
1469
+ OpenAI::Beta::BetaResponseOutputItem::ImageGenerationCall::Status::TaggedSymbol
1470
+ )
1471
+ GENERATING =
1472
+ T.let(
1473
+ :generating,
1474
+ OpenAI::Beta::BetaResponseOutputItem::ImageGenerationCall::Status::TaggedSymbol
1475
+ )
1476
+ FAILED =
1477
+ T.let(
1478
+ :failed,
1479
+ OpenAI::Beta::BetaResponseOutputItem::ImageGenerationCall::Status::TaggedSymbol
1480
+ )
1481
+
1482
+ sig do
1483
+ override.returns(
1484
+ T::Array[
1485
+ OpenAI::Beta::BetaResponseOutputItem::ImageGenerationCall::Status::TaggedSymbol
1486
+ ]
1487
+ )
1488
+ end
1489
+ def self.values
1490
+ end
1491
+ end
1492
+
1493
+ class Agent < OpenAI::Internal::Type::BaseModel
1494
+ OrHash =
1495
+ T.type_alias do
1496
+ T.any(
1497
+ OpenAI::Beta::BetaResponseOutputItem::ImageGenerationCall::Agent,
1498
+ OpenAI::Internal::AnyHash
1499
+ )
1500
+ end
1501
+
1502
+ # The canonical name of the agent that produced this item.
1503
+ sig { returns(String) }
1504
+ attr_accessor :agent_name
1505
+
1506
+ # The agent that produced this item.
1507
+ sig { params(agent_name: String).returns(T.attached_class) }
1508
+ def self.new(
1509
+ # The canonical name of the agent that produced this item.
1510
+ agent_name:
1511
+ )
1512
+ end
1513
+
1514
+ sig { override.returns({ agent_name: String }) }
1515
+ def to_hash
1516
+ end
1517
+ end
1518
+ end
1519
+
1520
+ class LocalShellCall < OpenAI::Internal::Type::BaseModel
1521
+ OrHash =
1522
+ T.type_alias do
1523
+ T.any(
1524
+ OpenAI::Beta::BetaResponseOutputItem::LocalShellCall,
1525
+ OpenAI::Internal::AnyHash
1526
+ )
1527
+ end
1528
+
1529
+ # The unique ID of the local shell call.
1530
+ sig { returns(String) }
1531
+ attr_accessor :id
1532
+
1533
+ # Execute a shell command on the server.
1534
+ sig do
1535
+ returns(
1536
+ OpenAI::Beta::BetaResponseOutputItem::LocalShellCall::Action
1537
+ )
1538
+ end
1539
+ attr_reader :action
1540
+
1541
+ sig do
1542
+ params(
1543
+ action:
1544
+ OpenAI::Beta::BetaResponseOutputItem::LocalShellCall::Action::OrHash
1545
+ ).void
1546
+ end
1547
+ attr_writer :action
1548
+
1549
+ # The unique ID of the local shell tool call generated by the model.
1550
+ sig { returns(String) }
1551
+ attr_accessor :call_id
1552
+
1553
+ # The status of the local shell call.
1554
+ sig do
1555
+ returns(
1556
+ OpenAI::Beta::BetaResponseOutputItem::LocalShellCall::Status::TaggedSymbol
1557
+ )
1558
+ end
1559
+ attr_accessor :status
1560
+
1561
+ # The type of the local shell call. Always `local_shell_call`.
1562
+ sig { returns(Symbol) }
1563
+ attr_accessor :type
1564
+
1565
+ # The agent that produced this item.
1566
+ sig do
1567
+ returns(
1568
+ T.nilable(
1569
+ OpenAI::Beta::BetaResponseOutputItem::LocalShellCall::Agent
1570
+ )
1571
+ )
1572
+ end
1573
+ attr_reader :agent
1574
+
1575
+ sig do
1576
+ params(
1577
+ agent:
1578
+ T.nilable(
1579
+ OpenAI::Beta::BetaResponseOutputItem::LocalShellCall::Agent::OrHash
1580
+ )
1581
+ ).void
1582
+ end
1583
+ attr_writer :agent
1584
+
1585
+ # A tool call to run a command on the local shell.
1586
+ sig do
1587
+ params(
1588
+ id: String,
1589
+ action:
1590
+ OpenAI::Beta::BetaResponseOutputItem::LocalShellCall::Action::OrHash,
1591
+ call_id: String,
1592
+ status:
1593
+ OpenAI::Beta::BetaResponseOutputItem::LocalShellCall::Status::OrSymbol,
1594
+ agent:
1595
+ T.nilable(
1596
+ OpenAI::Beta::BetaResponseOutputItem::LocalShellCall::Agent::OrHash
1597
+ ),
1598
+ type: Symbol
1599
+ ).returns(T.attached_class)
1600
+ end
1601
+ def self.new(
1602
+ # The unique ID of the local shell call.
1603
+ id:,
1604
+ # Execute a shell command on the server.
1605
+ action:,
1606
+ # The unique ID of the local shell tool call generated by the model.
1607
+ call_id:,
1608
+ # The status of the local shell call.
1609
+ status:,
1610
+ # The agent that produced this item.
1611
+ agent: nil,
1612
+ # The type of the local shell call. Always `local_shell_call`.
1613
+ type: :local_shell_call
1614
+ )
1615
+ end
1616
+
1617
+ sig do
1618
+ override.returns(
1619
+ {
1620
+ id: String,
1621
+ action:
1622
+ OpenAI::Beta::BetaResponseOutputItem::LocalShellCall::Action,
1623
+ call_id: String,
1624
+ status:
1625
+ OpenAI::Beta::BetaResponseOutputItem::LocalShellCall::Status::TaggedSymbol,
1626
+ type: Symbol,
1627
+ agent:
1628
+ T.nilable(
1629
+ OpenAI::Beta::BetaResponseOutputItem::LocalShellCall::Agent
1630
+ )
1631
+ }
1632
+ )
1633
+ end
1634
+ def to_hash
1635
+ end
1636
+
1637
+ class Action < OpenAI::Internal::Type::BaseModel
1638
+ OrHash =
1639
+ T.type_alias do
1640
+ T.any(
1641
+ OpenAI::Beta::BetaResponseOutputItem::LocalShellCall::Action,
1642
+ OpenAI::Internal::AnyHash
1643
+ )
1644
+ end
1645
+
1646
+ # The command to run.
1647
+ sig { returns(T::Array[String]) }
1648
+ attr_accessor :command
1649
+
1650
+ # Environment variables to set for the command.
1651
+ sig { returns(T::Hash[Symbol, String]) }
1652
+ attr_accessor :env
1653
+
1654
+ # The type of the local shell action. Always `exec`.
1655
+ sig { returns(Symbol) }
1656
+ attr_accessor :type
1657
+
1658
+ # Optional timeout in milliseconds for the command.
1659
+ sig { returns(T.nilable(Integer)) }
1660
+ attr_accessor :timeout_ms
1661
+
1662
+ # Optional user to run the command as.
1663
+ sig { returns(T.nilable(String)) }
1664
+ attr_accessor :user
1665
+
1666
+ # Optional working directory to run the command in.
1667
+ sig { returns(T.nilable(String)) }
1668
+ attr_accessor :working_directory
1669
+
1670
+ # Execute a shell command on the server.
1671
+ sig do
1672
+ params(
1673
+ command: T::Array[String],
1674
+ env: T::Hash[Symbol, String],
1675
+ timeout_ms: T.nilable(Integer),
1676
+ user: T.nilable(String),
1677
+ working_directory: T.nilable(String),
1678
+ type: Symbol
1679
+ ).returns(T.attached_class)
1680
+ end
1681
+ def self.new(
1682
+ # The command to run.
1683
+ command:,
1684
+ # Environment variables to set for the command.
1685
+ env:,
1686
+ # Optional timeout in milliseconds for the command.
1687
+ timeout_ms: nil,
1688
+ # Optional user to run the command as.
1689
+ user: nil,
1690
+ # Optional working directory to run the command in.
1691
+ working_directory: nil,
1692
+ # The type of the local shell action. Always `exec`.
1693
+ type: :exec
1694
+ )
1695
+ end
1696
+
1697
+ sig do
1698
+ override.returns(
1699
+ {
1700
+ command: T::Array[String],
1701
+ env: T::Hash[Symbol, String],
1702
+ type: Symbol,
1703
+ timeout_ms: T.nilable(Integer),
1704
+ user: T.nilable(String),
1705
+ working_directory: T.nilable(String)
1706
+ }
1707
+ )
1708
+ end
1709
+ def to_hash
1710
+ end
1711
+ end
1712
+
1713
+ # The status of the local shell call.
1714
+ module Status
1715
+ extend OpenAI::Internal::Type::Enum
1716
+
1717
+ TaggedSymbol =
1718
+ T.type_alias do
1719
+ T.all(
1720
+ Symbol,
1721
+ OpenAI::Beta::BetaResponseOutputItem::LocalShellCall::Status
1722
+ )
1723
+ end
1724
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1725
+
1726
+ IN_PROGRESS =
1727
+ T.let(
1728
+ :in_progress,
1729
+ OpenAI::Beta::BetaResponseOutputItem::LocalShellCall::Status::TaggedSymbol
1730
+ )
1731
+ COMPLETED =
1732
+ T.let(
1733
+ :completed,
1734
+ OpenAI::Beta::BetaResponseOutputItem::LocalShellCall::Status::TaggedSymbol
1735
+ )
1736
+ INCOMPLETE =
1737
+ T.let(
1738
+ :incomplete,
1739
+ OpenAI::Beta::BetaResponseOutputItem::LocalShellCall::Status::TaggedSymbol
1740
+ )
1741
+
1742
+ sig do
1743
+ override.returns(
1744
+ T::Array[
1745
+ OpenAI::Beta::BetaResponseOutputItem::LocalShellCall::Status::TaggedSymbol
1746
+ ]
1747
+ )
1748
+ end
1749
+ def self.values
1750
+ end
1751
+ end
1752
+
1753
+ class Agent < OpenAI::Internal::Type::BaseModel
1754
+ OrHash =
1755
+ T.type_alias do
1756
+ T.any(
1757
+ OpenAI::Beta::BetaResponseOutputItem::LocalShellCall::Agent,
1758
+ OpenAI::Internal::AnyHash
1759
+ )
1760
+ end
1761
+
1762
+ # The canonical name of the agent that produced this item.
1763
+ sig { returns(String) }
1764
+ attr_accessor :agent_name
1765
+
1766
+ # The agent that produced this item.
1767
+ sig { params(agent_name: String).returns(T.attached_class) }
1768
+ def self.new(
1769
+ # The canonical name of the agent that produced this item.
1770
+ agent_name:
1771
+ )
1772
+ end
1773
+
1774
+ sig { override.returns({ agent_name: String }) }
1775
+ def to_hash
1776
+ end
1777
+ end
1778
+ end
1779
+
1780
+ class LocalShellCallOutput < OpenAI::Internal::Type::BaseModel
1781
+ OrHash =
1782
+ T.type_alias do
1783
+ T.any(
1784
+ OpenAI::Beta::BetaResponseOutputItem::LocalShellCallOutput,
1785
+ OpenAI::Internal::AnyHash
1786
+ )
1787
+ end
1788
+
1789
+ # The unique ID of the local shell tool call generated by the model.
1790
+ sig { returns(String) }
1791
+ attr_accessor :id
1792
+
1793
+ # A JSON string of the output of the local shell tool call.
1794
+ sig { returns(String) }
1795
+ attr_accessor :output
1796
+
1797
+ # The type of the local shell tool call output. Always `local_shell_call_output`.
1798
+ sig { returns(Symbol) }
1799
+ attr_accessor :type
1800
+
1801
+ # The agent that produced this item.
1802
+ sig do
1803
+ returns(
1804
+ T.nilable(
1805
+ OpenAI::Beta::BetaResponseOutputItem::LocalShellCallOutput::Agent
1806
+ )
1807
+ )
1808
+ end
1809
+ attr_reader :agent
1810
+
1811
+ sig do
1812
+ params(
1813
+ agent:
1814
+ T.nilable(
1815
+ OpenAI::Beta::BetaResponseOutputItem::LocalShellCallOutput::Agent::OrHash
1816
+ )
1817
+ ).void
1818
+ end
1819
+ attr_writer :agent
1820
+
1821
+ # The status of the item. One of `in_progress`, `completed`, or `incomplete`.
1822
+ sig do
1823
+ returns(
1824
+ T.nilable(
1825
+ OpenAI::Beta::BetaResponseOutputItem::LocalShellCallOutput::Status::TaggedSymbol
1826
+ )
1827
+ )
1828
+ end
1829
+ attr_accessor :status
1830
+
1831
+ # The output of a local shell tool call.
1832
+ sig do
1833
+ params(
1834
+ id: String,
1835
+ output: String,
1836
+ agent:
1837
+ T.nilable(
1838
+ OpenAI::Beta::BetaResponseOutputItem::LocalShellCallOutput::Agent::OrHash
1839
+ ),
1840
+ status:
1841
+ T.nilable(
1842
+ OpenAI::Beta::BetaResponseOutputItem::LocalShellCallOutput::Status::OrSymbol
1843
+ ),
1844
+ type: Symbol
1845
+ ).returns(T.attached_class)
1846
+ end
1847
+ def self.new(
1848
+ # The unique ID of the local shell tool call generated by the model.
1849
+ id:,
1850
+ # A JSON string of the output of the local shell tool call.
1851
+ output:,
1852
+ # The agent that produced this item.
1853
+ agent: nil,
1854
+ # The status of the item. One of `in_progress`, `completed`, or `incomplete`.
1855
+ status: nil,
1856
+ # The type of the local shell tool call output. Always `local_shell_call_output`.
1857
+ type: :local_shell_call_output
1858
+ )
1859
+ end
1860
+
1861
+ sig do
1862
+ override.returns(
1863
+ {
1864
+ id: String,
1865
+ output: String,
1866
+ type: Symbol,
1867
+ agent:
1868
+ T.nilable(
1869
+ OpenAI::Beta::BetaResponseOutputItem::LocalShellCallOutput::Agent
1870
+ ),
1871
+ status:
1872
+ T.nilable(
1873
+ OpenAI::Beta::BetaResponseOutputItem::LocalShellCallOutput::Status::TaggedSymbol
1874
+ )
1875
+ }
1876
+ )
1877
+ end
1878
+ def to_hash
1879
+ end
1880
+
1881
+ class Agent < OpenAI::Internal::Type::BaseModel
1882
+ OrHash =
1883
+ T.type_alias do
1884
+ T.any(
1885
+ OpenAI::Beta::BetaResponseOutputItem::LocalShellCallOutput::Agent,
1886
+ OpenAI::Internal::AnyHash
1887
+ )
1888
+ end
1889
+
1890
+ # The canonical name of the agent that produced this item.
1891
+ sig { returns(String) }
1892
+ attr_accessor :agent_name
1893
+
1894
+ # The agent that produced this item.
1895
+ sig { params(agent_name: String).returns(T.attached_class) }
1896
+ def self.new(
1897
+ # The canonical name of the agent that produced this item.
1898
+ agent_name:
1899
+ )
1900
+ end
1901
+
1902
+ sig { override.returns({ agent_name: String }) }
1903
+ def to_hash
1904
+ end
1905
+ end
1906
+
1907
+ # The status of the item. One of `in_progress`, `completed`, or `incomplete`.
1908
+ module Status
1909
+ extend OpenAI::Internal::Type::Enum
1910
+
1911
+ TaggedSymbol =
1912
+ T.type_alias do
1913
+ T.all(
1914
+ Symbol,
1915
+ OpenAI::Beta::BetaResponseOutputItem::LocalShellCallOutput::Status
1916
+ )
1917
+ end
1918
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1919
+
1920
+ IN_PROGRESS =
1921
+ T.let(
1922
+ :in_progress,
1923
+ OpenAI::Beta::BetaResponseOutputItem::LocalShellCallOutput::Status::TaggedSymbol
1924
+ )
1925
+ COMPLETED =
1926
+ T.let(
1927
+ :completed,
1928
+ OpenAI::Beta::BetaResponseOutputItem::LocalShellCallOutput::Status::TaggedSymbol
1929
+ )
1930
+ INCOMPLETE =
1931
+ T.let(
1932
+ :incomplete,
1933
+ OpenAI::Beta::BetaResponseOutputItem::LocalShellCallOutput::Status::TaggedSymbol
1934
+ )
1935
+
1936
+ sig do
1937
+ override.returns(
1938
+ T::Array[
1939
+ OpenAI::Beta::BetaResponseOutputItem::LocalShellCallOutput::Status::TaggedSymbol
1940
+ ]
1941
+ )
1942
+ end
1943
+ def self.values
1944
+ end
1945
+ end
1946
+ end
1947
+
1948
+ class McpCall < OpenAI::Internal::Type::BaseModel
1949
+ OrHash =
1950
+ T.type_alias do
1951
+ T.any(
1952
+ OpenAI::Beta::BetaResponseOutputItem::McpCall,
1953
+ OpenAI::Internal::AnyHash
1954
+ )
1955
+ end
1956
+
1957
+ # The unique ID of the tool call.
1958
+ sig { returns(String) }
1959
+ attr_accessor :id
1960
+
1961
+ # A JSON string of the arguments passed to the tool.
1962
+ sig { returns(String) }
1963
+ attr_accessor :arguments
1964
+
1965
+ # The name of the tool that was run.
1966
+ sig { returns(String) }
1967
+ attr_accessor :name
1968
+
1969
+ # The label of the MCP server running the tool.
1970
+ sig { returns(String) }
1971
+ attr_accessor :server_label
1972
+
1973
+ # The type of the item. Always `mcp_call`.
1974
+ sig { returns(Symbol) }
1975
+ attr_accessor :type
1976
+
1977
+ # The agent that produced this item.
1978
+ sig do
1979
+ returns(
1980
+ T.nilable(OpenAI::Beta::BetaResponseOutputItem::McpCall::Agent)
1981
+ )
1982
+ end
1983
+ attr_reader :agent
1984
+
1985
+ sig do
1986
+ params(
1987
+ agent:
1988
+ T.nilable(
1989
+ OpenAI::Beta::BetaResponseOutputItem::McpCall::Agent::OrHash
1990
+ )
1991
+ ).void
1992
+ end
1993
+ attr_writer :agent
1994
+
1995
+ # Unique identifier for the MCP tool call approval request. Include this value in
1996
+ # a subsequent `mcp_approval_response` input to approve or reject the
1997
+ # corresponding tool call.
1998
+ sig { returns(T.nilable(String)) }
1999
+ attr_accessor :approval_request_id
2000
+
2001
+ # The error from the tool call, if any.
2002
+ sig { returns(T.nilable(String)) }
2003
+ attr_accessor :error
2004
+
2005
+ # The output from the tool call.
2006
+ sig { returns(T.nilable(String)) }
2007
+ attr_accessor :output
2008
+
2009
+ # The status of the tool call. One of `in_progress`, `completed`, `incomplete`,
2010
+ # `calling`, or `failed`.
2011
+ sig do
2012
+ returns(
2013
+ T.nilable(
2014
+ OpenAI::Beta::BetaResponseOutputItem::McpCall::Status::TaggedSymbol
2015
+ )
2016
+ )
2017
+ end
2018
+ attr_reader :status
2019
+
2020
+ sig do
2021
+ params(
2022
+ status:
2023
+ OpenAI::Beta::BetaResponseOutputItem::McpCall::Status::OrSymbol
2024
+ ).void
2025
+ end
2026
+ attr_writer :status
2027
+
2028
+ # An invocation of a tool on an MCP server.
2029
+ sig do
2030
+ params(
2031
+ id: String,
2032
+ arguments: String,
2033
+ name: String,
2034
+ server_label: String,
2035
+ agent:
2036
+ T.nilable(
2037
+ OpenAI::Beta::BetaResponseOutputItem::McpCall::Agent::OrHash
2038
+ ),
2039
+ approval_request_id: T.nilable(String),
2040
+ error: T.nilable(String),
2041
+ output: T.nilable(String),
2042
+ status:
2043
+ OpenAI::Beta::BetaResponseOutputItem::McpCall::Status::OrSymbol,
2044
+ type: Symbol
2045
+ ).returns(T.attached_class)
2046
+ end
2047
+ def self.new(
2048
+ # The unique ID of the tool call.
2049
+ id:,
2050
+ # A JSON string of the arguments passed to the tool.
2051
+ arguments:,
2052
+ # The name of the tool that was run.
2053
+ name:,
2054
+ # The label of the MCP server running the tool.
2055
+ server_label:,
2056
+ # The agent that produced this item.
2057
+ agent: nil,
2058
+ # Unique identifier for the MCP tool call approval request. Include this value in
2059
+ # a subsequent `mcp_approval_response` input to approve or reject the
2060
+ # corresponding tool call.
2061
+ approval_request_id: nil,
2062
+ # The error from the tool call, if any.
2063
+ error: nil,
2064
+ # The output from the tool call.
2065
+ output: nil,
2066
+ # The status of the tool call. One of `in_progress`, `completed`, `incomplete`,
2067
+ # `calling`, or `failed`.
2068
+ status: nil,
2069
+ # The type of the item. Always `mcp_call`.
2070
+ type: :mcp_call
2071
+ )
2072
+ end
2073
+
2074
+ sig do
2075
+ override.returns(
2076
+ {
2077
+ id: String,
2078
+ arguments: String,
2079
+ name: String,
2080
+ server_label: String,
2081
+ type: Symbol,
2082
+ agent:
2083
+ T.nilable(
2084
+ OpenAI::Beta::BetaResponseOutputItem::McpCall::Agent
2085
+ ),
2086
+ approval_request_id: T.nilable(String),
2087
+ error: T.nilable(String),
2088
+ output: T.nilable(String),
2089
+ status:
2090
+ OpenAI::Beta::BetaResponseOutputItem::McpCall::Status::TaggedSymbol
2091
+ }
2092
+ )
2093
+ end
2094
+ def to_hash
2095
+ end
2096
+
2097
+ class Agent < OpenAI::Internal::Type::BaseModel
2098
+ OrHash =
2099
+ T.type_alias do
2100
+ T.any(
2101
+ OpenAI::Beta::BetaResponseOutputItem::McpCall::Agent,
2102
+ OpenAI::Internal::AnyHash
2103
+ )
2104
+ end
2105
+
2106
+ # The canonical name of the agent that produced this item.
2107
+ sig { returns(String) }
2108
+ attr_accessor :agent_name
2109
+
2110
+ # The agent that produced this item.
2111
+ sig { params(agent_name: String).returns(T.attached_class) }
2112
+ def self.new(
2113
+ # The canonical name of the agent that produced this item.
2114
+ agent_name:
2115
+ )
2116
+ end
2117
+
2118
+ sig { override.returns({ agent_name: String }) }
2119
+ def to_hash
2120
+ end
2121
+ end
2122
+
2123
+ # The status of the tool call. One of `in_progress`, `completed`, `incomplete`,
2124
+ # `calling`, or `failed`.
2125
+ module Status
2126
+ extend OpenAI::Internal::Type::Enum
2127
+
2128
+ TaggedSymbol =
2129
+ T.type_alias do
2130
+ T.all(
2131
+ Symbol,
2132
+ OpenAI::Beta::BetaResponseOutputItem::McpCall::Status
2133
+ )
2134
+ end
2135
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
2136
+
2137
+ IN_PROGRESS =
2138
+ T.let(
2139
+ :in_progress,
2140
+ OpenAI::Beta::BetaResponseOutputItem::McpCall::Status::TaggedSymbol
2141
+ )
2142
+ COMPLETED =
2143
+ T.let(
2144
+ :completed,
2145
+ OpenAI::Beta::BetaResponseOutputItem::McpCall::Status::TaggedSymbol
2146
+ )
2147
+ INCOMPLETE =
2148
+ T.let(
2149
+ :incomplete,
2150
+ OpenAI::Beta::BetaResponseOutputItem::McpCall::Status::TaggedSymbol
2151
+ )
2152
+ CALLING =
2153
+ T.let(
2154
+ :calling,
2155
+ OpenAI::Beta::BetaResponseOutputItem::McpCall::Status::TaggedSymbol
2156
+ )
2157
+ FAILED =
2158
+ T.let(
2159
+ :failed,
2160
+ OpenAI::Beta::BetaResponseOutputItem::McpCall::Status::TaggedSymbol
2161
+ )
2162
+
2163
+ sig do
2164
+ override.returns(
2165
+ T::Array[
2166
+ OpenAI::Beta::BetaResponseOutputItem::McpCall::Status::TaggedSymbol
2167
+ ]
2168
+ )
2169
+ end
2170
+ def self.values
2171
+ end
2172
+ end
2173
+ end
2174
+
2175
+ class McpListTools < OpenAI::Internal::Type::BaseModel
2176
+ OrHash =
2177
+ T.type_alias do
2178
+ T.any(
2179
+ OpenAI::Beta::BetaResponseOutputItem::McpListTools,
2180
+ OpenAI::Internal::AnyHash
2181
+ )
2182
+ end
2183
+
2184
+ # The unique ID of the list.
2185
+ sig { returns(String) }
2186
+ attr_accessor :id
2187
+
2188
+ # The label of the MCP server.
2189
+ sig { returns(String) }
2190
+ attr_accessor :server_label
2191
+
2192
+ # The tools available on the server.
2193
+ sig do
2194
+ returns(
2195
+ T::Array[OpenAI::Beta::BetaResponseOutputItem::McpListTools::Tool]
2196
+ )
2197
+ end
2198
+ attr_accessor :tools
2199
+
2200
+ # The type of the item. Always `mcp_list_tools`.
2201
+ sig { returns(Symbol) }
2202
+ attr_accessor :type
2203
+
2204
+ # The agent that produced this item.
2205
+ sig do
2206
+ returns(
2207
+ T.nilable(
2208
+ OpenAI::Beta::BetaResponseOutputItem::McpListTools::Agent
2209
+ )
2210
+ )
2211
+ end
2212
+ attr_reader :agent
2213
+
2214
+ sig do
2215
+ params(
2216
+ agent:
2217
+ T.nilable(
2218
+ OpenAI::Beta::BetaResponseOutputItem::McpListTools::Agent::OrHash
2219
+ )
2220
+ ).void
2221
+ end
2222
+ attr_writer :agent
2223
+
2224
+ # Error message if the server could not list tools.
2225
+ sig { returns(T.nilable(String)) }
2226
+ attr_accessor :error
2227
+
2228
+ # A list of tools available on an MCP server.
2229
+ sig do
2230
+ params(
2231
+ id: String,
2232
+ server_label: String,
2233
+ tools:
2234
+ T::Array[
2235
+ OpenAI::Beta::BetaResponseOutputItem::McpListTools::Tool::OrHash
2236
+ ],
2237
+ agent:
2238
+ T.nilable(
2239
+ OpenAI::Beta::BetaResponseOutputItem::McpListTools::Agent::OrHash
2240
+ ),
2241
+ error: T.nilable(String),
2242
+ type: Symbol
2243
+ ).returns(T.attached_class)
2244
+ end
2245
+ def self.new(
2246
+ # The unique ID of the list.
2247
+ id:,
2248
+ # The label of the MCP server.
2249
+ server_label:,
2250
+ # The tools available on the server.
2251
+ tools:,
2252
+ # The agent that produced this item.
2253
+ agent: nil,
2254
+ # Error message if the server could not list tools.
2255
+ error: nil,
2256
+ # The type of the item. Always `mcp_list_tools`.
2257
+ type: :mcp_list_tools
2258
+ )
2259
+ end
2260
+
2261
+ sig do
2262
+ override.returns(
2263
+ {
2264
+ id: String,
2265
+ server_label: String,
2266
+ tools:
2267
+ T::Array[
2268
+ OpenAI::Beta::BetaResponseOutputItem::McpListTools::Tool
2269
+ ],
2270
+ type: Symbol,
2271
+ agent:
2272
+ T.nilable(
2273
+ OpenAI::Beta::BetaResponseOutputItem::McpListTools::Agent
2274
+ ),
2275
+ error: T.nilable(String)
2276
+ }
2277
+ )
2278
+ end
2279
+ def to_hash
2280
+ end
2281
+
2282
+ class Tool < OpenAI::Internal::Type::BaseModel
2283
+ OrHash =
2284
+ T.type_alias do
2285
+ T.any(
2286
+ OpenAI::Beta::BetaResponseOutputItem::McpListTools::Tool,
2287
+ OpenAI::Internal::AnyHash
2288
+ )
2289
+ end
2290
+
2291
+ # The JSON schema describing the tool's input.
2292
+ sig { returns(T.anything) }
2293
+ attr_accessor :input_schema
2294
+
2295
+ # The name of the tool.
2296
+ sig { returns(String) }
2297
+ attr_accessor :name
2298
+
2299
+ # Additional annotations about the tool.
2300
+ sig { returns(T.nilable(T.anything)) }
2301
+ attr_accessor :annotations
2302
+
2303
+ # The description of the tool.
2304
+ sig { returns(T.nilable(String)) }
2305
+ attr_accessor :description
2306
+
2307
+ # A tool available on an MCP server.
2308
+ sig do
2309
+ params(
2310
+ input_schema: T.anything,
2311
+ name: String,
2312
+ annotations: T.nilable(T.anything),
2313
+ description: T.nilable(String)
2314
+ ).returns(T.attached_class)
2315
+ end
2316
+ def self.new(
2317
+ # The JSON schema describing the tool's input.
2318
+ input_schema:,
2319
+ # The name of the tool.
2320
+ name:,
2321
+ # Additional annotations about the tool.
2322
+ annotations: nil,
2323
+ # The description of the tool.
2324
+ description: nil
2325
+ )
2326
+ end
2327
+
2328
+ sig do
2329
+ override.returns(
2330
+ {
2331
+ input_schema: T.anything,
2332
+ name: String,
2333
+ annotations: T.nilable(T.anything),
2334
+ description: T.nilable(String)
2335
+ }
2336
+ )
2337
+ end
2338
+ def to_hash
2339
+ end
2340
+ end
2341
+
2342
+ class Agent < OpenAI::Internal::Type::BaseModel
2343
+ OrHash =
2344
+ T.type_alias do
2345
+ T.any(
2346
+ OpenAI::Beta::BetaResponseOutputItem::McpListTools::Agent,
2347
+ OpenAI::Internal::AnyHash
2348
+ )
2349
+ end
2350
+
2351
+ # The canonical name of the agent that produced this item.
2352
+ sig { returns(String) }
2353
+ attr_accessor :agent_name
2354
+
2355
+ # The agent that produced this item.
2356
+ sig { params(agent_name: String).returns(T.attached_class) }
2357
+ def self.new(
2358
+ # The canonical name of the agent that produced this item.
2359
+ agent_name:
2360
+ )
2361
+ end
2362
+
2363
+ sig { override.returns({ agent_name: String }) }
2364
+ def to_hash
2365
+ end
2366
+ end
2367
+ end
2368
+
2369
+ class McpApprovalRequest < OpenAI::Internal::Type::BaseModel
2370
+ OrHash =
2371
+ T.type_alias do
2372
+ T.any(
2373
+ OpenAI::Beta::BetaResponseOutputItem::McpApprovalRequest,
2374
+ OpenAI::Internal::AnyHash
2375
+ )
2376
+ end
2377
+
2378
+ # The unique ID of the approval request.
2379
+ sig { returns(String) }
2380
+ attr_accessor :id
2381
+
2382
+ # A JSON string of arguments for the tool.
2383
+ sig { returns(String) }
2384
+ attr_accessor :arguments
2385
+
2386
+ # The name of the tool to run.
2387
+ sig { returns(String) }
2388
+ attr_accessor :name
2389
+
2390
+ # The label of the MCP server making the request.
2391
+ sig { returns(String) }
2392
+ attr_accessor :server_label
2393
+
2394
+ # The type of the item. Always `mcp_approval_request`.
2395
+ sig { returns(Symbol) }
2396
+ attr_accessor :type
2397
+
2398
+ # The agent that produced this item.
2399
+ sig do
2400
+ returns(
2401
+ T.nilable(
2402
+ OpenAI::Beta::BetaResponseOutputItem::McpApprovalRequest::Agent
2403
+ )
2404
+ )
2405
+ end
2406
+ attr_reader :agent
2407
+
2408
+ sig do
2409
+ params(
2410
+ agent:
2411
+ T.nilable(
2412
+ OpenAI::Beta::BetaResponseOutputItem::McpApprovalRequest::Agent::OrHash
2413
+ )
2414
+ ).void
2415
+ end
2416
+ attr_writer :agent
2417
+
2418
+ # A request for human approval of a tool invocation.
2419
+ sig do
2420
+ params(
2421
+ id: String,
2422
+ arguments: String,
2423
+ name: String,
2424
+ server_label: String,
2425
+ agent:
2426
+ T.nilable(
2427
+ OpenAI::Beta::BetaResponseOutputItem::McpApprovalRequest::Agent::OrHash
2428
+ ),
2429
+ type: Symbol
2430
+ ).returns(T.attached_class)
2431
+ end
2432
+ def self.new(
2433
+ # The unique ID of the approval request.
2434
+ id:,
2435
+ # A JSON string of arguments for the tool.
2436
+ arguments:,
2437
+ # The name of the tool to run.
2438
+ name:,
2439
+ # The label of the MCP server making the request.
2440
+ server_label:,
2441
+ # The agent that produced this item.
2442
+ agent: nil,
2443
+ # The type of the item. Always `mcp_approval_request`.
2444
+ type: :mcp_approval_request
2445
+ )
2446
+ end
2447
+
2448
+ sig do
2449
+ override.returns(
2450
+ {
2451
+ id: String,
2452
+ arguments: String,
2453
+ name: String,
2454
+ server_label: String,
2455
+ type: Symbol,
2456
+ agent:
2457
+ T.nilable(
2458
+ OpenAI::Beta::BetaResponseOutputItem::McpApprovalRequest::Agent
2459
+ )
2460
+ }
2461
+ )
2462
+ end
2463
+ def to_hash
2464
+ end
2465
+
2466
+ class Agent < OpenAI::Internal::Type::BaseModel
2467
+ OrHash =
2468
+ T.type_alias do
2469
+ T.any(
2470
+ OpenAI::Beta::BetaResponseOutputItem::McpApprovalRequest::Agent,
2471
+ OpenAI::Internal::AnyHash
2472
+ )
2473
+ end
2474
+
2475
+ # The canonical name of the agent that produced this item.
2476
+ sig { returns(String) }
2477
+ attr_accessor :agent_name
2478
+
2479
+ # The agent that produced this item.
2480
+ sig { params(agent_name: String).returns(T.attached_class) }
2481
+ def self.new(
2482
+ # The canonical name of the agent that produced this item.
2483
+ agent_name:
2484
+ )
2485
+ end
2486
+
2487
+ sig { override.returns({ agent_name: String }) }
2488
+ def to_hash
2489
+ end
2490
+ end
2491
+ end
2492
+
2493
+ class McpApprovalResponse < OpenAI::Internal::Type::BaseModel
2494
+ OrHash =
2495
+ T.type_alias do
2496
+ T.any(
2497
+ OpenAI::Beta::BetaResponseOutputItem::McpApprovalResponse,
2498
+ OpenAI::Internal::AnyHash
2499
+ )
2500
+ end
2501
+
2502
+ # The unique ID of the approval response
2503
+ sig { returns(String) }
2504
+ attr_accessor :id
2505
+
2506
+ # The ID of the approval request being answered.
2507
+ sig { returns(String) }
2508
+ attr_accessor :approval_request_id
2509
+
2510
+ # Whether the request was approved.
2511
+ sig { returns(T::Boolean) }
2512
+ attr_accessor :approve
2513
+
2514
+ # The type of the item. Always `mcp_approval_response`.
2515
+ sig { returns(Symbol) }
2516
+ attr_accessor :type
2517
+
2518
+ # The agent that produced this item.
2519
+ sig do
2520
+ returns(
2521
+ T.nilable(
2522
+ OpenAI::Beta::BetaResponseOutputItem::McpApprovalResponse::Agent
2523
+ )
2524
+ )
2525
+ end
2526
+ attr_reader :agent
2527
+
2528
+ sig do
2529
+ params(
2530
+ agent:
2531
+ T.nilable(
2532
+ OpenAI::Beta::BetaResponseOutputItem::McpApprovalResponse::Agent::OrHash
2533
+ )
2534
+ ).void
2535
+ end
2536
+ attr_writer :agent
2537
+
2538
+ # Optional reason for the decision.
2539
+ sig { returns(T.nilable(String)) }
2540
+ attr_accessor :reason
2541
+
2542
+ # A response to an MCP approval request.
2543
+ sig do
2544
+ params(
2545
+ id: String,
2546
+ approval_request_id: String,
2547
+ approve: T::Boolean,
2548
+ agent:
2549
+ T.nilable(
2550
+ OpenAI::Beta::BetaResponseOutputItem::McpApprovalResponse::Agent::OrHash
2551
+ ),
2552
+ reason: T.nilable(String),
2553
+ type: Symbol
2554
+ ).returns(T.attached_class)
2555
+ end
2556
+ def self.new(
2557
+ # The unique ID of the approval response
2558
+ id:,
2559
+ # The ID of the approval request being answered.
2560
+ approval_request_id:,
2561
+ # Whether the request was approved.
2562
+ approve:,
2563
+ # The agent that produced this item.
2564
+ agent: nil,
2565
+ # Optional reason for the decision.
2566
+ reason: nil,
2567
+ # The type of the item. Always `mcp_approval_response`.
2568
+ type: :mcp_approval_response
2569
+ )
2570
+ end
2571
+
2572
+ sig do
2573
+ override.returns(
2574
+ {
2575
+ id: String,
2576
+ approval_request_id: String,
2577
+ approve: T::Boolean,
2578
+ type: Symbol,
2579
+ agent:
2580
+ T.nilable(
2581
+ OpenAI::Beta::BetaResponseOutputItem::McpApprovalResponse::Agent
2582
+ ),
2583
+ reason: T.nilable(String)
2584
+ }
2585
+ )
2586
+ end
2587
+ def to_hash
2588
+ end
2589
+
2590
+ class Agent < OpenAI::Internal::Type::BaseModel
2591
+ OrHash =
2592
+ T.type_alias do
2593
+ T.any(
2594
+ OpenAI::Beta::BetaResponseOutputItem::McpApprovalResponse::Agent,
2595
+ OpenAI::Internal::AnyHash
2596
+ )
2597
+ end
2598
+
2599
+ # The canonical name of the agent that produced this item.
2600
+ sig { returns(String) }
2601
+ attr_accessor :agent_name
2602
+
2603
+ # The agent that produced this item.
2604
+ sig { params(agent_name: String).returns(T.attached_class) }
2605
+ def self.new(
2606
+ # The canonical name of the agent that produced this item.
2607
+ agent_name:
2608
+ )
2609
+ end
2610
+
2611
+ sig { override.returns({ agent_name: String }) }
2612
+ def to_hash
2613
+ end
2614
+ end
2615
+ end
2616
+
2617
+ sig do
2618
+ override.returns(
2619
+ T::Array[OpenAI::Beta::BetaResponseOutputItem::Variants]
2620
+ )
2621
+ end
2622
+ def self.variants
2623
+ end
2624
+ end
2625
+ end
2626
+ end
2627
+ end