openai 0.20.0 → 0.21.1

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 (363) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +21 -0
  3. data/README.md +1 -1
  4. data/lib/openai/client.rb +4 -0
  5. data/lib/openai/internal/stream.rb +3 -2
  6. data/lib/openai/models/audio/speech_create_params.rb +6 -0
  7. data/lib/openai/models/chat/chat_completion_audio_param.rb +6 -0
  8. data/lib/openai/models/eval_create_params.rb +10 -6
  9. data/lib/openai/models/evals/create_eval_completions_run_data_source.rb +10 -6
  10. data/lib/openai/models/evals/run_cancel_response.rb +12 -8
  11. data/lib/openai/models/evals/run_create_params.rb +12 -8
  12. data/lib/openai/models/evals/run_create_response.rb +12 -8
  13. data/lib/openai/models/evals/run_list_response.rb +12 -8
  14. data/lib/openai/models/evals/run_retrieve_response.rb +12 -8
  15. data/lib/openai/models/graders/label_model_grader.rb +10 -6
  16. data/lib/openai/models/graders/score_model_grader.rb +10 -6
  17. data/lib/openai/models/realtime/client_secret_create_params.rb +93 -0
  18. data/lib/openai/models/realtime/client_secret_create_response.rb +300 -0
  19. data/lib/openai/models/realtime/conversation_created_event.rb +70 -0
  20. data/lib/openai/models/realtime/conversation_item.rb +44 -0
  21. data/lib/openai/models/realtime/conversation_item_added.rb +48 -0
  22. data/lib/openai/models/realtime/conversation_item_create_event.rb +57 -0
  23. data/lib/openai/models/realtime/conversation_item_created_event.rb +59 -0
  24. data/lib/openai/models/realtime/conversation_item_delete_event.rb +39 -0
  25. data/lib/openai/models/realtime/conversation_item_deleted_event.rb +38 -0
  26. data/lib/openai/models/realtime/conversation_item_done.rb +48 -0
  27. data/lib/openai/models/realtime/conversation_item_input_audio_transcription_completed_event.rb +189 -0
  28. data/lib/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rb +63 -0
  29. data/lib/openai/models/realtime/conversation_item_input_audio_transcription_failed_event.rb +96 -0
  30. data/lib/openai/models/realtime/conversation_item_input_audio_transcription_segment.rb +84 -0
  31. data/lib/openai/models/realtime/conversation_item_retrieve_event.rb +40 -0
  32. data/lib/openai/models/realtime/conversation_item_truncate_event.rb +68 -0
  33. data/lib/openai/models/realtime/conversation_item_truncated_event.rb +60 -0
  34. data/lib/openai/models/realtime/conversation_item_with_reference.rb +235 -0
  35. data/lib/openai/models/realtime/input_audio_buffer_append_event.rb +49 -0
  36. data/lib/openai/models/realtime/input_audio_buffer_clear_event.rb +29 -0
  37. data/lib/openai/models/realtime/input_audio_buffer_cleared_event.rb +29 -0
  38. data/lib/openai/models/realtime/input_audio_buffer_commit_event.rb +35 -0
  39. data/lib/openai/models/realtime/input_audio_buffer_committed_event.rb +51 -0
  40. data/lib/openai/models/realtime/input_audio_buffer_speech_started_event.rb +59 -0
  41. data/lib/openai/models/realtime/input_audio_buffer_speech_stopped_event.rb +51 -0
  42. data/lib/openai/models/realtime/input_audio_buffer_timeout_triggered.rb +52 -0
  43. data/lib/openai/models/realtime/log_prob_properties.rb +39 -0
  44. data/lib/openai/models/realtime/mcp_list_tools_completed.rb +36 -0
  45. data/lib/openai/models/realtime/mcp_list_tools_failed.rb +36 -0
  46. data/lib/openai/models/realtime/mcp_list_tools_in_progress.rb +36 -0
  47. data/lib/openai/models/realtime/output_audio_buffer_clear_event.rb +32 -0
  48. data/lib/openai/models/realtime/rate_limits_updated_event.rb +91 -0
  49. data/lib/openai/models/realtime/realtime_audio_config.rb +446 -0
  50. data/lib/openai/models/realtime/realtime_client_event.rb +123 -0
  51. data/lib/openai/models/realtime/realtime_client_secret_config.rb +64 -0
  52. data/lib/openai/models/realtime/realtime_conversation_item_assistant_message.rb +118 -0
  53. data/lib/openai/models/realtime/realtime_conversation_item_function_call.rb +94 -0
  54. data/lib/openai/models/realtime/realtime_conversation_item_function_call_output.rb +86 -0
  55. data/lib/openai/models/realtime/realtime_conversation_item_system_message.rb +118 -0
  56. data/lib/openai/models/realtime/realtime_conversation_item_user_message.rb +135 -0
  57. data/lib/openai/models/realtime/realtime_error.rb +55 -0
  58. data/lib/openai/models/realtime/realtime_error_event.rb +38 -0
  59. data/lib/openai/models/realtime/realtime_mcp_approval_request.rb +52 -0
  60. data/lib/openai/models/realtime/realtime_mcp_approval_response.rb +52 -0
  61. data/lib/openai/models/realtime/realtime_mcp_list_tools.rb +84 -0
  62. data/lib/openai/models/realtime/realtime_mcp_protocol_error.rb +29 -0
  63. data/lib/openai/models/realtime/realtime_mcp_tool_call.rb +94 -0
  64. data/lib/openai/models/realtime/realtime_mcp_tool_execution_error.rb +23 -0
  65. data/lib/openai/models/realtime/realtime_mcphttp_error.rb +29 -0
  66. data/lib/openai/models/realtime/realtime_response.rb +259 -0
  67. data/lib/openai/models/realtime/realtime_response_status.rb +103 -0
  68. data/lib/openai/models/realtime/realtime_response_usage.rb +61 -0
  69. data/lib/openai/models/realtime/realtime_response_usage_input_token_details.rb +36 -0
  70. data/lib/openai/models/realtime/realtime_response_usage_output_token_details.rb +28 -0
  71. data/lib/openai/models/realtime/realtime_server_event.rb +369 -0
  72. data/lib/openai/models/realtime/realtime_session.rb +696 -0
  73. data/lib/openai/models/realtime/realtime_session_create_request.rb +234 -0
  74. data/lib/openai/models/realtime/realtime_session_create_response.rb +579 -0
  75. data/lib/openai/models/realtime/realtime_tool_choice_config.rb +32 -0
  76. data/lib/openai/models/realtime/realtime_tools_config.rb +11 -0
  77. data/lib/openai/models/realtime/realtime_tools_config_union.rb +379 -0
  78. data/lib/openai/models/realtime/realtime_tracing_config.rb +61 -0
  79. data/lib/openai/models/realtime/realtime_transcription_session_create_request.rb +312 -0
  80. data/lib/openai/models/realtime/realtime_truncation.rb +67 -0
  81. data/lib/openai/models/realtime/response_audio_delta_event.rb +68 -0
  82. data/lib/openai/models/realtime/response_audio_done_event.rb +61 -0
  83. data/lib/openai/models/realtime/response_audio_transcript_delta_event.rb +68 -0
  84. data/lib/openai/models/realtime/response_audio_transcript_done_event.rb +70 -0
  85. data/lib/openai/models/realtime/response_cancel_event.rb +42 -0
  86. data/lib/openai/models/realtime/response_content_part_added_event.rb +120 -0
  87. data/lib/openai/models/realtime/response_content_part_done_event.rb +120 -0
  88. data/lib/openai/models/realtime/response_create_event.rb +391 -0
  89. data/lib/openai/models/realtime/response_created_event.rb +37 -0
  90. data/lib/openai/models/realtime/response_done_event.rb +38 -0
  91. data/lib/openai/models/realtime/response_function_call_arguments_delta_event.rb +72 -0
  92. data/lib/openai/models/realtime/response_function_call_arguments_done_event.rb +73 -0
  93. data/lib/openai/models/realtime/response_mcp_call_arguments_delta.rb +68 -0
  94. data/lib/openai/models/realtime/response_mcp_call_arguments_done.rb +60 -0
  95. data/lib/openai/models/realtime/response_mcp_call_completed.rb +44 -0
  96. data/lib/openai/models/realtime/response_mcp_call_failed.rb +44 -0
  97. data/lib/openai/models/realtime/response_mcp_call_in_progress.rb +44 -0
  98. data/lib/openai/models/realtime/response_output_item_added_event.rb +52 -0
  99. data/lib/openai/models/realtime/response_output_item_done_event.rb +53 -0
  100. data/lib/openai/models/realtime/response_text_delta_event.rb +68 -0
  101. data/lib/openai/models/realtime/response_text_done_event.rb +69 -0
  102. data/lib/openai/models/realtime/session_created_event.rb +38 -0
  103. data/lib/openai/models/realtime/session_update_event.rb +44 -0
  104. data/lib/openai/models/realtime/session_updated_event.rb +37 -0
  105. data/lib/openai/models/realtime/transcription_session_created.rb +278 -0
  106. data/lib/openai/models/realtime/transcription_session_update.rb +36 -0
  107. data/lib/openai/models/realtime/transcription_session_updated_event.rb +279 -0
  108. data/lib/openai/models/responses/easy_input_message.rb +3 -3
  109. data/lib/openai/models/responses/response.rb +6 -3
  110. data/lib/openai/models/responses/response_content.rb +4 -1
  111. data/lib/openai/models/responses/response_create_params.rb +6 -3
  112. data/lib/openai/models/responses/response_input_audio.rb +39 -23
  113. data/lib/openai/models/responses/response_input_content.rb +4 -1
  114. data/lib/openai/models/responses/response_input_item.rb +2 -2
  115. data/lib/openai/models/responses/response_input_message_item.rb +2 -2
  116. data/lib/openai/models/responses/tool.rb +3 -156
  117. data/lib/openai/models/responses/web_search_preview_tool.rb +124 -0
  118. data/lib/openai/models/responses/web_search_tool.rb +58 -21
  119. data/lib/openai/models/webhooks/realtime_call_incoming_webhook_event.rb +119 -0
  120. data/lib/openai/models/webhooks/unwrap_webhook_event.rb +4 -1
  121. data/lib/openai/models.rb +2 -0
  122. data/lib/openai/resources/realtime/client_secrets.rb +44 -0
  123. data/lib/openai/resources/realtime.rb +18 -0
  124. data/lib/openai/resources/responses.rb +2 -2
  125. data/lib/openai/resources/webhooks.rb +1 -1
  126. data/lib/openai/version.rb +1 -1
  127. data/lib/openai.rb +95 -0
  128. data/rbi/openai/client.rbi +3 -0
  129. data/rbi/openai/models/audio/speech_create_params.rbi +10 -0
  130. data/rbi/openai/models/chat/chat_completion_audio_param.rbi +10 -0
  131. data/rbi/openai/models/eval_create_params.rbi +5 -1
  132. data/rbi/openai/models/evals/create_eval_completions_run_data_source.rbi +5 -1
  133. data/rbi/openai/models/evals/run_cancel_response.rbi +7 -5
  134. data/rbi/openai/models/evals/run_create_params.rbi +13 -9
  135. data/rbi/openai/models/evals/run_create_response.rbi +7 -5
  136. data/rbi/openai/models/evals/run_list_response.rbi +7 -5
  137. data/rbi/openai/models/evals/run_retrieve_response.rbi +7 -5
  138. data/rbi/openai/models/graders/label_model_grader.rbi +5 -1
  139. data/rbi/openai/models/graders/score_model_grader.rbi +5 -1
  140. data/rbi/openai/models/realtime/client_secret_create_params.rbi +222 -0
  141. data/rbi/openai/models/realtime/client_secret_create_response.rbi +676 -0
  142. data/rbi/openai/models/realtime/conversation_created_event.rbi +164 -0
  143. data/rbi/openai/models/realtime/conversation_item.rbi +35 -0
  144. data/rbi/openai/models/realtime/conversation_item_added.rbi +105 -0
  145. data/rbi/openai/models/realtime/conversation_item_create_event.rbi +123 -0
  146. data/rbi/openai/models/realtime/conversation_item_created_event.rbi +117 -0
  147. data/rbi/openai/models/realtime/conversation_item_delete_event.rbi +57 -0
  148. data/rbi/openai/models/realtime/conversation_item_deleted_event.rbi +53 -0
  149. data/rbi/openai/models/realtime/conversation_item_done.rbi +105 -0
  150. data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_completed_event.rbi +305 -0
  151. data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rbi +93 -0
  152. data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_failed_event.rbi +158 -0
  153. data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_segment.rbi +107 -0
  154. data/rbi/openai/models/realtime/conversation_item_retrieve_event.rbi +58 -0
  155. data/rbi/openai/models/realtime/conversation_item_truncate_event.rbi +94 -0
  156. data/rbi/openai/models/realtime/conversation_item_truncated_event.rbi +80 -0
  157. data/rbi/openai/models/realtime/conversation_item_with_reference.rbi +549 -0
  158. data/rbi/openai/models/realtime/input_audio_buffer_append_event.rbi +65 -0
  159. data/rbi/openai/models/realtime/input_audio_buffer_clear_event.rbi +43 -0
  160. data/rbi/openai/models/realtime/input_audio_buffer_cleared_event.rbi +40 -0
  161. data/rbi/openai/models/realtime/input_audio_buffer_commit_event.rbi +49 -0
  162. data/rbi/openai/models/realtime/input_audio_buffer_committed_event.rbi +72 -0
  163. data/rbi/openai/models/realtime/input_audio_buffer_speech_started_event.rbi +82 -0
  164. data/rbi/openai/models/realtime/input_audio_buffer_speech_stopped_event.rbi +73 -0
  165. data/rbi/openai/models/realtime/input_audio_buffer_timeout_triggered.rbi +75 -0
  166. data/rbi/openai/models/realtime/log_prob_properties.rbi +55 -0
  167. data/rbi/openai/models/realtime/mcp_list_tools_completed.rbi +51 -0
  168. data/rbi/openai/models/realtime/mcp_list_tools_failed.rbi +51 -0
  169. data/rbi/openai/models/realtime/mcp_list_tools_in_progress.rbi +51 -0
  170. data/rbi/openai/models/realtime/output_audio_buffer_clear_event.rbi +46 -0
  171. data/rbi/openai/models/realtime/rate_limits_updated_event.rbi +187 -0
  172. data/rbi/openai/models/realtime/realtime_audio_config.rbi +1004 -0
  173. data/rbi/openai/models/realtime/realtime_client_event.rbi +38 -0
  174. data/rbi/openai/models/realtime/realtime_client_secret_config.rbi +147 -0
  175. data/rbi/openai/models/realtime/realtime_conversation_item_assistant_message.rbi +292 -0
  176. data/rbi/openai/models/realtime/realtime_conversation_item_function_call.rbi +199 -0
  177. data/rbi/openai/models/realtime/realtime_conversation_item_function_call_output.rbi +188 -0
  178. data/rbi/openai/models/realtime/realtime_conversation_item_system_message.rbi +292 -0
  179. data/rbi/openai/models/realtime/realtime_conversation_item_user_message.rbi +319 -0
  180. data/rbi/openai/models/realtime/realtime_error.rbi +72 -0
  181. data/rbi/openai/models/realtime/realtime_error_event.rbi +64 -0
  182. data/rbi/openai/models/realtime/realtime_mcp_approval_request.rbi +75 -0
  183. data/rbi/openai/models/realtime/realtime_mcp_approval_response.rbi +75 -0
  184. data/rbi/openai/models/realtime/realtime_mcp_list_tools.rbi +131 -0
  185. data/rbi/openai/models/realtime/realtime_mcp_protocol_error.rbi +40 -0
  186. data/rbi/openai/models/realtime/realtime_mcp_tool_call.rbi +145 -0
  187. data/rbi/openai/models/realtime/realtime_mcp_tool_execution_error.rbi +31 -0
  188. data/rbi/openai/models/realtime/realtime_mcphttp_error.rbi +40 -0
  189. data/rbi/openai/models/realtime/realtime_response.rbi +573 -0
  190. data/rbi/openai/models/realtime/realtime_response_status.rbi +233 -0
  191. data/rbi/openai/models/realtime/realtime_response_usage.rbi +121 -0
  192. data/rbi/openai/models/realtime/realtime_response_usage_input_token_details.rbi +68 -0
  193. data/rbi/openai/models/realtime/realtime_response_usage_output_token_details.rbi +51 -0
  194. data/rbi/openai/models/realtime/realtime_server_event.rbi +311 -0
  195. data/rbi/openai/models/realtime/realtime_session.rbi +1426 -0
  196. data/rbi/openai/models/realtime/realtime_session_create_request.rbi +560 -0
  197. data/rbi/openai/models/realtime/realtime_session_create_response.rbi +1249 -0
  198. data/rbi/openai/models/realtime/realtime_tool_choice_config.rbi +30 -0
  199. data/rbi/openai/models/realtime/realtime_tools_config.rbi +15 -0
  200. data/rbi/openai/models/realtime/realtime_tools_config_union.rbi +755 -0
  201. data/rbi/openai/models/realtime/realtime_tracing_config.rbi +95 -0
  202. data/rbi/openai/models/realtime/realtime_transcription_session_create_request.rbi +703 -0
  203. data/rbi/openai/models/realtime/realtime_truncation.rbi +117 -0
  204. data/rbi/openai/models/realtime/response_audio_delta_event.rbi +91 -0
  205. data/rbi/openai/models/realtime/response_audio_done_event.rbi +84 -0
  206. data/rbi/openai/models/realtime/response_audio_transcript_delta_event.rbi +91 -0
  207. data/rbi/openai/models/realtime/response_audio_transcript_done_event.rbi +93 -0
  208. data/rbi/openai/models/realtime/response_cancel_event.rbi +63 -0
  209. data/rbi/openai/models/realtime/response_content_part_added_event.rbi +219 -0
  210. data/rbi/openai/models/realtime/response_content_part_done_event.rbi +219 -0
  211. data/rbi/openai/models/realtime/response_create_event.rbi +863 -0
  212. data/rbi/openai/models/realtime/response_created_event.rbi +65 -0
  213. data/rbi/openai/models/realtime/response_done_event.rbi +66 -0
  214. data/rbi/openai/models/realtime/response_function_call_arguments_delta_event.rbi +91 -0
  215. data/rbi/openai/models/realtime/response_function_call_arguments_done_event.rbi +92 -0
  216. data/rbi/openai/models/realtime/response_mcp_call_arguments_delta.rbi +91 -0
  217. data/rbi/openai/models/realtime/response_mcp_call_arguments_done.rbi +83 -0
  218. data/rbi/openai/models/realtime/response_mcp_call_completed.rbi +67 -0
  219. data/rbi/openai/models/realtime/response_mcp_call_failed.rbi +67 -0
  220. data/rbi/openai/models/realtime/response_mcp_call_in_progress.rbi +67 -0
  221. data/rbi/openai/models/realtime/response_output_item_added_event.rbi +111 -0
  222. data/rbi/openai/models/realtime/response_output_item_done_event.rbi +112 -0
  223. data/rbi/openai/models/realtime/response_text_delta_event.rbi +91 -0
  224. data/rbi/openai/models/realtime/response_text_done_event.rbi +92 -0
  225. data/rbi/openai/models/realtime/session_created_event.rbi +64 -0
  226. data/rbi/openai/models/realtime/session_update_event.rbi +77 -0
  227. data/rbi/openai/models/realtime/session_updated_event.rbi +63 -0
  228. data/rbi/openai/models/realtime/transcription_session_created.rbi +653 -0
  229. data/rbi/openai/models/realtime/transcription_session_update.rbi +74 -0
  230. data/rbi/openai/models/realtime/transcription_session_updated_event.rbi +657 -0
  231. data/rbi/openai/models/responses/response.rbi +10 -4
  232. data/rbi/openai/models/responses/response_content.rbi +1 -0
  233. data/rbi/openai/models/responses/response_create_params.rbi +16 -10
  234. data/rbi/openai/models/responses/response_input_audio.rbi +85 -34
  235. data/rbi/openai/models/responses/response_input_content.rbi +2 -1
  236. data/rbi/openai/models/responses/response_input_item.rbi +6 -3
  237. data/rbi/openai/models/responses/response_input_message_item.rbi +2 -1
  238. data/rbi/openai/models/responses/tool.rbi +2 -348
  239. data/rbi/openai/models/responses/web_search_preview_tool.rbi +245 -0
  240. data/rbi/openai/models/responses/web_search_tool.rbi +120 -23
  241. data/rbi/openai/models/webhooks/realtime_call_incoming_webhook_event.rbi +222 -0
  242. data/rbi/openai/models/webhooks/unwrap_webhook_event.rbi +1 -0
  243. data/rbi/openai/models.rbi +2 -0
  244. data/rbi/openai/resources/realtime/client_secrets.rbi +38 -0
  245. data/rbi/openai/resources/realtime.rbi +15 -0
  246. data/rbi/openai/resources/responses.rbi +12 -6
  247. data/rbi/openai/resources/webhooks.rbi +1 -0
  248. data/sig/openai/client.rbs +2 -0
  249. data/sig/openai/models/audio/speech_create_params.rbs +4 -0
  250. data/sig/openai/models/chat/chat_completion_audio_param.rbs +4 -0
  251. data/sig/openai/models/eval_create_params.rbs +2 -1
  252. data/sig/openai/models/evals/create_eval_completions_run_data_source.rbs +2 -1
  253. data/sig/openai/models/evals/run_cancel_response.rbs +2 -1
  254. data/sig/openai/models/evals/run_create_params.rbs +2 -1
  255. data/sig/openai/models/evals/run_create_response.rbs +2 -1
  256. data/sig/openai/models/evals/run_list_response.rbs +2 -1
  257. data/sig/openai/models/evals/run_retrieve_response.rbs +2 -1
  258. data/sig/openai/models/graders/label_model_grader.rbs +2 -1
  259. data/sig/openai/models/graders/score_model_grader.rbs +2 -1
  260. data/sig/openai/models/realtime/client_secret_create_params.rbs +89 -0
  261. data/sig/openai/models/realtime/client_secret_create_response.rbs +292 -0
  262. data/sig/openai/models/realtime/conversation_created_event.rbs +70 -0
  263. data/sig/openai/models/realtime/conversation_item.rbs +22 -0
  264. data/sig/openai/models/realtime/conversation_item_added.rbs +37 -0
  265. data/sig/openai/models/realtime/conversation_item_create_event.rbs +41 -0
  266. data/sig/openai/models/realtime/conversation_item_created_event.rbs +37 -0
  267. data/sig/openai/models/realtime/conversation_item_delete_event.rbs +30 -0
  268. data/sig/openai/models/realtime/conversation_item_deleted_event.rbs +32 -0
  269. data/sig/openai/models/realtime/conversation_item_done.rbs +37 -0
  270. data/sig/openai/models/realtime/conversation_item_input_audio_transcription_completed_event.rbs +136 -0
  271. data/sig/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rbs +51 -0
  272. data/sig/openai/models/realtime/conversation_item_input_audio_transcription_failed_event.rbs +77 -0
  273. data/sig/openai/models/realtime/conversation_item_input_audio_transcription_segment.rbs +62 -0
  274. data/sig/openai/models/realtime/conversation_item_retrieve_event.rbs +34 -0
  275. data/sig/openai/models/realtime/conversation_item_truncate_event.rbs +44 -0
  276. data/sig/openai/models/realtime/conversation_item_truncated_event.rbs +42 -0
  277. data/sig/openai/models/realtime/conversation_item_with_reference.rbs +207 -0
  278. data/sig/openai/models/realtime/input_audio_buffer_append_event.rbs +30 -0
  279. data/sig/openai/models/realtime/input_audio_buffer_clear_event.rbs +23 -0
  280. data/sig/openai/models/realtime/input_audio_buffer_cleared_event.rbs +24 -0
  281. data/sig/openai/models/realtime/input_audio_buffer_commit_event.rbs +23 -0
  282. data/sig/openai/models/realtime/input_audio_buffer_committed_event.rbs +37 -0
  283. data/sig/openai/models/realtime/input_audio_buffer_speech_started_event.rbs +37 -0
  284. data/sig/openai/models/realtime/input_audio_buffer_speech_stopped_event.rbs +37 -0
  285. data/sig/openai/models/realtime/input_audio_buffer_timeout_triggered.rbs +42 -0
  286. data/sig/openai/models/realtime/log_prob_properties.rbs +28 -0
  287. data/sig/openai/models/realtime/mcp_list_tools_completed.rbs +28 -0
  288. data/sig/openai/models/realtime/mcp_list_tools_failed.rbs +28 -0
  289. data/sig/openai/models/realtime/mcp_list_tools_in_progress.rbs +32 -0
  290. data/sig/openai/models/realtime/output_audio_buffer_clear_event.rbs +23 -0
  291. data/sig/openai/models/realtime/rate_limits_updated_event.rbs +85 -0
  292. data/sig/openai/models/realtime/realtime_audio_config.rbs +354 -0
  293. data/sig/openai/models/realtime/realtime_client_event.rbs +25 -0
  294. data/sig/openai/models/realtime/realtime_client_secret_config.rbs +60 -0
  295. data/sig/openai/models/realtime/realtime_conversation_item_assistant_message.rbs +117 -0
  296. data/sig/openai/models/realtime/realtime_conversation_item_function_call.rbs +86 -0
  297. data/sig/openai/models/realtime/realtime_conversation_item_function_call_output.rbs +79 -0
  298. data/sig/openai/models/realtime/realtime_conversation_item_system_message.rbs +117 -0
  299. data/sig/openai/models/realtime/realtime_conversation_item_user_message.rbs +132 -0
  300. data/sig/openai/models/realtime/realtime_error.rbs +42 -0
  301. data/sig/openai/models/realtime/realtime_error_event.rbs +32 -0
  302. data/sig/openai/models/realtime/realtime_mcp_approval_request.rbs +42 -0
  303. data/sig/openai/models/realtime/realtime_mcp_approval_response.rbs +42 -0
  304. data/sig/openai/models/realtime/realtime_mcp_list_tools.rbs +71 -0
  305. data/sig/openai/models/realtime/realtime_mcp_protocol_error.rbs +28 -0
  306. data/sig/openai/models/realtime/realtime_mcp_tool_call.rbs +68 -0
  307. data/sig/openai/models/realtime/realtime_mcp_tool_execution_error.rbs +18 -0
  308. data/sig/openai/models/realtime/realtime_mcphttp_error.rbs +24 -0
  309. data/sig/openai/models/realtime/realtime_response.rbs +210 -0
  310. data/sig/openai/models/realtime/realtime_response_status.rbs +90 -0
  311. data/sig/openai/models/realtime/realtime_response_usage.rbs +56 -0
  312. data/sig/openai/models/realtime/realtime_response_usage_input_token_details.rbs +34 -0
  313. data/sig/openai/models/realtime/realtime_response_usage_output_token_details.rbs +22 -0
  314. data/sig/openai/models/realtime/realtime_server_event.rbs +168 -0
  315. data/sig/openai/models/realtime/realtime_session.rbs +521 -0
  316. data/sig/openai/models/realtime/realtime_session_create_request.rbs +178 -0
  317. data/sig/openai/models/realtime/realtime_session_create_response.rbs +526 -0
  318. data/sig/openai/models/realtime/realtime_tool_choice_config.rbs +16 -0
  319. data/sig/openai/models/realtime/realtime_tools_config.rbs +10 -0
  320. data/sig/openai/models/realtime/realtime_tools_config_union.rbs +280 -0
  321. data/sig/openai/models/realtime/realtime_tracing_config.rbs +43 -0
  322. data/sig/openai/models/realtime/realtime_transcription_session_create_request.rbs +242 -0
  323. data/sig/openai/models/realtime/realtime_truncation.rbs +53 -0
  324. data/sig/openai/models/realtime/response_audio_delta_event.rbs +52 -0
  325. data/sig/openai/models/realtime/response_audio_done_event.rbs +47 -0
  326. data/sig/openai/models/realtime/response_audio_transcript_delta_event.rbs +52 -0
  327. data/sig/openai/models/realtime/response_audio_transcript_done_event.rbs +52 -0
  328. data/sig/openai/models/realtime/response_cancel_event.rbs +32 -0
  329. data/sig/openai/models/realtime/response_content_part_added_event.rbs +105 -0
  330. data/sig/openai/models/realtime/response_content_part_done_event.rbs +105 -0
  331. data/sig/openai/models/realtime/response_create_event.rbs +281 -0
  332. data/sig/openai/models/realtime/response_created_event.rbs +32 -0
  333. data/sig/openai/models/realtime/response_done_event.rbs +32 -0
  334. data/sig/openai/models/realtime/response_function_call_arguments_delta_event.rbs +52 -0
  335. data/sig/openai/models/realtime/response_function_call_arguments_done_event.rbs +52 -0
  336. data/sig/openai/models/realtime/response_mcp_call_arguments_delta.rbs +52 -0
  337. data/sig/openai/models/realtime/response_mcp_call_arguments_done.rbs +47 -0
  338. data/sig/openai/models/realtime/response_mcp_call_completed.rbs +37 -0
  339. data/sig/openai/models/realtime/response_mcp_call_failed.rbs +37 -0
  340. data/sig/openai/models/realtime/response_mcp_call_in_progress.rbs +37 -0
  341. data/sig/openai/models/realtime/response_output_item_added_event.rbs +42 -0
  342. data/sig/openai/models/realtime/response_output_item_done_event.rbs +42 -0
  343. data/sig/openai/models/realtime/response_text_delta_event.rbs +52 -0
  344. data/sig/openai/models/realtime/response_text_done_event.rbs +52 -0
  345. data/sig/openai/models/realtime/session_created_event.rbs +32 -0
  346. data/sig/openai/models/realtime/session_update_event.rbs +34 -0
  347. data/sig/openai/models/realtime/session_updated_event.rbs +32 -0
  348. data/sig/openai/models/realtime/transcription_session_created.rbs +282 -0
  349. data/sig/openai/models/realtime/transcription_session_update.rbs +34 -0
  350. data/sig/openai/models/realtime/transcription_session_updated_event.rbs +282 -0
  351. data/sig/openai/models/responses/response_content.rbs +1 -0
  352. data/sig/openai/models/responses/response_input_audio.rbs +32 -15
  353. data/sig/openai/models/responses/response_input_content.rbs +1 -0
  354. data/sig/openai/models/responses/tool.rbs +1 -121
  355. data/sig/openai/models/responses/web_search_preview_tool.rbs +96 -0
  356. data/sig/openai/models/responses/web_search_tool.rbs +39 -10
  357. data/sig/openai/models/webhooks/realtime_call_incoming_webhook_event.rbs +90 -0
  358. data/sig/openai/models/webhooks/unwrap_webhook_event.rbs +1 -0
  359. data/sig/openai/models.rbs +2 -0
  360. data/sig/openai/resources/realtime/client_secrets.rbs +15 -0
  361. data/sig/openai/resources/realtime.rbs +9 -0
  362. data/sig/openai/resources/webhooks.rbs +1 -0
  363. metadata +287 -2
@@ -13,6 +13,7 @@ module OpenAI
13
13
  OpenAI::Responses::ResponseInputText,
14
14
  OpenAI::Responses::ResponseInputImage,
15
15
  OpenAI::Responses::ResponseInputFile,
16
+ OpenAI::Responses::ResponseInputAudio,
16
17
  OpenAI::Responses::ResponseOutputText,
17
18
  OpenAI::Responses::ResponseOutputRefusal
18
19
  )
@@ -304,7 +304,7 @@ module OpenAI
304
304
  # An array of tools the model may call while generating a response. You can
305
305
  # specify which tool to use by setting the `tool_choice` parameter.
306
306
  #
307
- # The two categories of tools you can provide the model are:
307
+ # We support the following categories of tools:
308
308
  #
309
309
  # - **Built-in tools**: Tools that are provided by OpenAI that extend the model's
310
310
  # capabilities, like
@@ -312,6 +312,9 @@ module OpenAI
312
312
  # [file search](https://platform.openai.com/docs/guides/tools-file-search).
313
313
  # Learn more about
314
314
  # [built-in tools](https://platform.openai.com/docs/guides/tools).
315
+ # - **MCP Tools**: Integrations with third-party systems via custom MCP servers or
316
+ # predefined connectors such as Google Drive and SharePoint. Learn more about
317
+ # [MCP Tools](https://platform.openai.com/docs/guides/tools-connectors-mcp).
315
318
  # - **Function calls (custom tools)**: Functions that are defined by you, enabling
316
319
  # the model to call your own code with strongly typed arguments and outputs.
317
320
  # Learn more about
@@ -330,8 +333,8 @@ module OpenAI
330
333
  OpenAI::Responses::Tool::ImageGeneration,
331
334
  OpenAI::Responses::Tool::LocalShell,
332
335
  OpenAI::Responses::CustomTool,
333
- OpenAI::Responses::Tool::WebSearchTool,
334
- OpenAI::Responses::WebSearchTool
336
+ OpenAI::Responses::WebSearchTool,
337
+ OpenAI::Responses::WebSearchPreviewTool
335
338
  )
336
339
  ]
337
340
  )
@@ -352,8 +355,8 @@ module OpenAI
352
355
  OpenAI::Responses::Tool::ImageGeneration::OrHash,
353
356
  OpenAI::Responses::Tool::LocalShell::OrHash,
354
357
  OpenAI::Responses::CustomTool::OrHash,
355
- OpenAI::Responses::Tool::WebSearchTool::OrHash,
356
- OpenAI::Responses::WebSearchTool::OrHash
358
+ OpenAI::Responses::WebSearchTool::OrHash,
359
+ OpenAI::Responses::WebSearchPreviewTool::OrHash
357
360
  )
358
361
  ]
359
362
  ).void
@@ -462,8 +465,8 @@ module OpenAI
462
465
  OpenAI::Responses::Tool::ImageGeneration::OrHash,
463
466
  OpenAI::Responses::Tool::LocalShell::OrHash,
464
467
  OpenAI::Responses::CustomTool::OrHash,
465
- OpenAI::Responses::Tool::WebSearchTool::OrHash,
466
- OpenAI::Responses::WebSearchTool::OrHash
468
+ OpenAI::Responses::WebSearchTool::OrHash,
469
+ OpenAI::Responses::WebSearchPreviewTool::OrHash
467
470
  )
468
471
  ],
469
472
  top_logprobs: T.nilable(Integer),
@@ -606,7 +609,7 @@ module OpenAI
606
609
  # An array of tools the model may call while generating a response. You can
607
610
  # specify which tool to use by setting the `tool_choice` parameter.
608
611
  #
609
- # The two categories of tools you can provide the model are:
612
+ # We support the following categories of tools:
610
613
  #
611
614
  # - **Built-in tools**: Tools that are provided by OpenAI that extend the model's
612
615
  # capabilities, like
@@ -614,6 +617,9 @@ module OpenAI
614
617
  # [file search](https://platform.openai.com/docs/guides/tools-file-search).
615
618
  # Learn more about
616
619
  # [built-in tools](https://platform.openai.com/docs/guides/tools).
620
+ # - **MCP Tools**: Integrations with third-party systems via custom MCP servers or
621
+ # predefined connectors such as Google Drive and SharePoint. Learn more about
622
+ # [MCP Tools](https://platform.openai.com/docs/guides/tools-connectors-mcp).
617
623
  # - **Function calls (custom tools)**: Functions that are defined by you, enabling
618
624
  # the model to call your own code with strongly typed arguments and outputs.
619
625
  # Learn more about
@@ -707,8 +713,8 @@ module OpenAI
707
713
  OpenAI::Responses::Tool::ImageGeneration,
708
714
  OpenAI::Responses::Tool::LocalShell,
709
715
  OpenAI::Responses::CustomTool,
710
- OpenAI::Responses::Tool::WebSearchTool,
711
- OpenAI::Responses::WebSearchTool
716
+ OpenAI::Responses::WebSearchTool,
717
+ OpenAI::Responses::WebSearchPreviewTool
712
718
  )
713
719
  ],
714
720
  top_logprobs: T.nilable(Integer),
@@ -12,13 +12,16 @@ module OpenAI
12
12
  )
13
13
  end
14
14
 
15
- # Base64-encoded audio data.
16
- sig { returns(String) }
17
- attr_accessor :data
15
+ sig { returns(OpenAI::Responses::ResponseInputAudio::InputAudio) }
16
+ attr_reader :input_audio
18
17
 
19
- # The format of the audio data. Currently supported formats are `mp3` and `wav`.
20
- sig { returns(OpenAI::Responses::ResponseInputAudio::Format::OrSymbol) }
21
- attr_accessor :format_
18
+ sig do
19
+ params(
20
+ input_audio:
21
+ OpenAI::Responses::ResponseInputAudio::InputAudio::OrHash
22
+ ).void
23
+ end
24
+ attr_writer :input_audio
22
25
 
23
26
  # The type of the input item. Always `input_audio`.
24
27
  sig { returns(Symbol) }
@@ -27,16 +30,13 @@ module OpenAI
27
30
  # An audio input to the model.
28
31
  sig do
29
32
  params(
30
- data: String,
31
- format_: OpenAI::Responses::ResponseInputAudio::Format::OrSymbol,
33
+ input_audio:
34
+ OpenAI::Responses::ResponseInputAudio::InputAudio::OrHash,
32
35
  type: Symbol
33
36
  ).returns(T.attached_class)
34
37
  end
35
38
  def self.new(
36
- # Base64-encoded audio data.
37
- data:,
38
- # The format of the audio data. Currently supported formats are `mp3` and `wav`.
39
- format_:,
39
+ input_audio:,
40
40
  # The type of the input item. Always `input_audio`.
41
41
  type: :input_audio
42
42
  )
@@ -45,8 +45,7 @@ module OpenAI
45
45
  sig do
46
46
  override.returns(
47
47
  {
48
- data: String,
49
- format_: OpenAI::Responses::ResponseInputAudio::Format::OrSymbol,
48
+ input_audio: OpenAI::Responses::ResponseInputAudio::InputAudio,
50
49
  type: Symbol
51
50
  }
52
51
  )
@@ -54,35 +53,87 @@ module OpenAI
54
53
  def to_hash
55
54
  end
56
55
 
57
- # The format of the audio data. Currently supported formats are `mp3` and `wav`.
58
- module Format
59
- extend OpenAI::Internal::Type::Enum
60
-
61
- TaggedSymbol =
56
+ class InputAudio < OpenAI::Internal::Type::BaseModel
57
+ OrHash =
62
58
  T.type_alias do
63
- T.all(Symbol, OpenAI::Responses::ResponseInputAudio::Format)
59
+ T.any(
60
+ OpenAI::Responses::ResponseInputAudio::InputAudio,
61
+ OpenAI::Internal::AnyHash
62
+ )
64
63
  end
65
- OrSymbol = T.type_alias { T.any(Symbol, String) }
66
64
 
67
- MP3 =
68
- T.let(
69
- :mp3,
70
- OpenAI::Responses::ResponseInputAudio::Format::TaggedSymbol
71
- )
72
- WAV =
73
- T.let(
74
- :wav,
75
- OpenAI::Responses::ResponseInputAudio::Format::TaggedSymbol
65
+ # Base64-encoded audio data.
66
+ sig { returns(String) }
67
+ attr_accessor :data
68
+
69
+ # The format of the audio data. Currently supported formats are `mp3` and `wav`.
70
+ sig do
71
+ returns(
72
+ OpenAI::Responses::ResponseInputAudio::InputAudio::Format::OrSymbol
76
73
  )
74
+ end
75
+ attr_accessor :format_
76
+
77
+ sig do
78
+ params(
79
+ data: String,
80
+ format_:
81
+ OpenAI::Responses::ResponseInputAudio::InputAudio::Format::OrSymbol
82
+ ).returns(T.attached_class)
83
+ end
84
+ def self.new(
85
+ # Base64-encoded audio data.
86
+ data:,
87
+ # The format of the audio data. Currently supported formats are `mp3` and `wav`.
88
+ format_:
89
+ )
90
+ end
77
91
 
78
92
  sig do
79
93
  override.returns(
80
- T::Array[
81
- OpenAI::Responses::ResponseInputAudio::Format::TaggedSymbol
82
- ]
94
+ {
95
+ data: String,
96
+ format_:
97
+ OpenAI::Responses::ResponseInputAudio::InputAudio::Format::OrSymbol
98
+ }
83
99
  )
84
100
  end
85
- def self.values
101
+ def to_hash
102
+ end
103
+
104
+ # The format of the audio data. Currently supported formats are `mp3` and `wav`.
105
+ module Format
106
+ extend OpenAI::Internal::Type::Enum
107
+
108
+ TaggedSymbol =
109
+ T.type_alias do
110
+ T.all(
111
+ Symbol,
112
+ OpenAI::Responses::ResponseInputAudio::InputAudio::Format
113
+ )
114
+ end
115
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
116
+
117
+ MP3 =
118
+ T.let(
119
+ :mp3,
120
+ OpenAI::Responses::ResponseInputAudio::InputAudio::Format::TaggedSymbol
121
+ )
122
+ WAV =
123
+ T.let(
124
+ :wav,
125
+ OpenAI::Responses::ResponseInputAudio::InputAudio::Format::TaggedSymbol
126
+ )
127
+
128
+ sig do
129
+ override.returns(
130
+ T::Array[
131
+ OpenAI::Responses::ResponseInputAudio::InputAudio::Format::TaggedSymbol
132
+ ]
133
+ )
134
+ end
135
+ def self.values
136
+ end
86
137
  end
87
138
  end
88
139
  end
@@ -12,7 +12,8 @@ module OpenAI
12
12
  T.any(
13
13
  OpenAI::Responses::ResponseInputText,
14
14
  OpenAI::Responses::ResponseInputImage,
15
- OpenAI::Responses::ResponseInputFile
15
+ OpenAI::Responses::ResponseInputFile,
16
+ OpenAI::Responses::ResponseInputAudio
16
17
  )
17
18
  end
18
19
 
@@ -55,7 +55,8 @@ module OpenAI
55
55
  T.any(
56
56
  OpenAI::Responses::ResponseInputText,
57
57
  OpenAI::Responses::ResponseInputImage,
58
- OpenAI::Responses::ResponseInputFile
58
+ OpenAI::Responses::ResponseInputFile,
59
+ OpenAI::Responses::ResponseInputAudio
59
60
  )
60
61
  ]
61
62
  )
@@ -117,7 +118,8 @@ module OpenAI
117
118
  T.any(
118
119
  OpenAI::Responses::ResponseInputText::OrHash,
119
120
  OpenAI::Responses::ResponseInputImage::OrHash,
120
- OpenAI::Responses::ResponseInputFile::OrHash
121
+ OpenAI::Responses::ResponseInputFile::OrHash,
122
+ OpenAI::Responses::ResponseInputAudio::OrHash
121
123
  )
122
124
  ],
123
125
  role:
@@ -150,7 +152,8 @@ module OpenAI
150
152
  T.any(
151
153
  OpenAI::Responses::ResponseInputText,
152
154
  OpenAI::Responses::ResponseInputImage,
153
- OpenAI::Responses::ResponseInputFile
155
+ OpenAI::Responses::ResponseInputFile,
156
+ OpenAI::Responses::ResponseInputAudio
154
157
  )
155
158
  ],
156
159
  role:
@@ -75,7 +75,8 @@ module OpenAI
75
75
  T.any(
76
76
  OpenAI::Responses::ResponseInputText::OrHash,
77
77
  OpenAI::Responses::ResponseInputImage::OrHash,
78
- OpenAI::Responses::ResponseInputFile::OrHash
78
+ OpenAI::Responses::ResponseInputFile::OrHash,
79
+ OpenAI::Responses::ResponseInputAudio::OrHash
79
80
  )
80
81
  ],
81
82
  role: OpenAI::Responses::ResponseInputMessageItem::Role::OrSymbol,
@@ -18,357 +18,11 @@ module OpenAI
18
18
  OpenAI::Responses::Tool::ImageGeneration,
19
19
  OpenAI::Responses::Tool::LocalShell,
20
20
  OpenAI::Responses::CustomTool,
21
- OpenAI::Responses::Tool::WebSearchTool,
22
- OpenAI::Responses::WebSearchTool
21
+ OpenAI::Responses::WebSearchTool,
22
+ OpenAI::Responses::WebSearchPreviewTool
23
23
  )
24
24
  end
25
25
 
26
- class WebSearchTool < OpenAI::Internal::Type::BaseModel
27
- OrHash =
28
- T.type_alias do
29
- T.any(
30
- OpenAI::Responses::Tool::WebSearchTool,
31
- OpenAI::Internal::AnyHash
32
- )
33
- end
34
-
35
- # The type of the web search tool. One of `web_search` or `web_search_2025_08_26`.
36
- sig do
37
- returns(OpenAI::Responses::Tool::WebSearchTool::Type::OrSymbol)
38
- end
39
- attr_accessor :type
40
-
41
- # Filters for the search.
42
- sig do
43
- returns(T.nilable(OpenAI::Responses::Tool::WebSearchTool::Filters))
44
- end
45
- attr_reader :filters
46
-
47
- sig do
48
- params(
49
- filters:
50
- T.nilable(
51
- OpenAI::Responses::Tool::WebSearchTool::Filters::OrHash
52
- )
53
- ).void
54
- end
55
- attr_writer :filters
56
-
57
- # High level guidance for the amount of context window space to use for the
58
- # search. One of `low`, `medium`, or `high`. `medium` is the default.
59
- sig do
60
- returns(
61
- T.nilable(
62
- OpenAI::Responses::Tool::WebSearchTool::SearchContextSize::OrSymbol
63
- )
64
- )
65
- end
66
- attr_reader :search_context_size
67
-
68
- sig do
69
- params(
70
- search_context_size:
71
- OpenAI::Responses::Tool::WebSearchTool::SearchContextSize::OrSymbol
72
- ).void
73
- end
74
- attr_writer :search_context_size
75
-
76
- # The approximate location of the user.
77
- sig do
78
- returns(
79
- T.nilable(OpenAI::Responses::Tool::WebSearchTool::UserLocation)
80
- )
81
- end
82
- attr_reader :user_location
83
-
84
- sig do
85
- params(
86
- user_location:
87
- T.nilable(
88
- OpenAI::Responses::Tool::WebSearchTool::UserLocation::OrHash
89
- )
90
- ).void
91
- end
92
- attr_writer :user_location
93
-
94
- # Search the Internet for sources related to the prompt. Learn more about the
95
- # [web search tool](https://platform.openai.com/docs/guides/tools-web-search).
96
- sig do
97
- params(
98
- type: OpenAI::Responses::Tool::WebSearchTool::Type::OrSymbol,
99
- filters:
100
- T.nilable(
101
- OpenAI::Responses::Tool::WebSearchTool::Filters::OrHash
102
- ),
103
- search_context_size:
104
- OpenAI::Responses::Tool::WebSearchTool::SearchContextSize::OrSymbol,
105
- user_location:
106
- T.nilable(
107
- OpenAI::Responses::Tool::WebSearchTool::UserLocation::OrHash
108
- )
109
- ).returns(T.attached_class)
110
- end
111
- def self.new(
112
- # The type of the web search tool. One of `web_search` or `web_search_2025_08_26`.
113
- type:,
114
- # Filters for the search.
115
- filters: nil,
116
- # High level guidance for the amount of context window space to use for the
117
- # search. One of `low`, `medium`, or `high`. `medium` is the default.
118
- search_context_size: nil,
119
- # The approximate location of the user.
120
- user_location: nil
121
- )
122
- end
123
-
124
- sig do
125
- override.returns(
126
- {
127
- type: OpenAI::Responses::Tool::WebSearchTool::Type::OrSymbol,
128
- filters:
129
- T.nilable(OpenAI::Responses::Tool::WebSearchTool::Filters),
130
- search_context_size:
131
- OpenAI::Responses::Tool::WebSearchTool::SearchContextSize::OrSymbol,
132
- user_location:
133
- T.nilable(
134
- OpenAI::Responses::Tool::WebSearchTool::UserLocation
135
- )
136
- }
137
- )
138
- end
139
- def to_hash
140
- end
141
-
142
- # The type of the web search tool. One of `web_search` or `web_search_2025_08_26`.
143
- module Type
144
- extend OpenAI::Internal::Type::Enum
145
-
146
- TaggedSymbol =
147
- T.type_alias do
148
- T.all(Symbol, OpenAI::Responses::Tool::WebSearchTool::Type)
149
- end
150
- OrSymbol = T.type_alias { T.any(Symbol, String) }
151
-
152
- WEB_SEARCH =
153
- T.let(
154
- :web_search,
155
- OpenAI::Responses::Tool::WebSearchTool::Type::TaggedSymbol
156
- )
157
- WEB_SEARCH_2025_08_26 =
158
- T.let(
159
- :web_search_2025_08_26,
160
- OpenAI::Responses::Tool::WebSearchTool::Type::TaggedSymbol
161
- )
162
-
163
- sig do
164
- override.returns(
165
- T::Array[
166
- OpenAI::Responses::Tool::WebSearchTool::Type::TaggedSymbol
167
- ]
168
- )
169
- end
170
- def self.values
171
- end
172
- end
173
-
174
- class Filters < OpenAI::Internal::Type::BaseModel
175
- OrHash =
176
- T.type_alias do
177
- T.any(
178
- OpenAI::Responses::Tool::WebSearchTool::Filters,
179
- OpenAI::Internal::AnyHash
180
- )
181
- end
182
-
183
- # Allowed domains for the search. If not provided, all domains are allowed.
184
- # Subdomains of the provided domains are allowed as well.
185
- #
186
- # Example: `["pubmed.ncbi.nlm.nih.gov"]`
187
- sig { returns(T.nilable(T::Array[String])) }
188
- attr_accessor :allowed_domains
189
-
190
- # Filters for the search.
191
- sig do
192
- params(allowed_domains: T.nilable(T::Array[String])).returns(
193
- T.attached_class
194
- )
195
- end
196
- def self.new(
197
- # Allowed domains for the search. If not provided, all domains are allowed.
198
- # Subdomains of the provided domains are allowed as well.
199
- #
200
- # Example: `["pubmed.ncbi.nlm.nih.gov"]`
201
- allowed_domains: nil
202
- )
203
- end
204
-
205
- sig do
206
- override.returns({ allowed_domains: T.nilable(T::Array[String]) })
207
- end
208
- def to_hash
209
- end
210
- end
211
-
212
- # High level guidance for the amount of context window space to use for the
213
- # search. One of `low`, `medium`, or `high`. `medium` is the default.
214
- module SearchContextSize
215
- extend OpenAI::Internal::Type::Enum
216
-
217
- TaggedSymbol =
218
- T.type_alias do
219
- T.all(
220
- Symbol,
221
- OpenAI::Responses::Tool::WebSearchTool::SearchContextSize
222
- )
223
- end
224
- OrSymbol = T.type_alias { T.any(Symbol, String) }
225
-
226
- LOW =
227
- T.let(
228
- :low,
229
- OpenAI::Responses::Tool::WebSearchTool::SearchContextSize::TaggedSymbol
230
- )
231
- MEDIUM =
232
- T.let(
233
- :medium,
234
- OpenAI::Responses::Tool::WebSearchTool::SearchContextSize::TaggedSymbol
235
- )
236
- HIGH =
237
- T.let(
238
- :high,
239
- OpenAI::Responses::Tool::WebSearchTool::SearchContextSize::TaggedSymbol
240
- )
241
-
242
- sig do
243
- override.returns(
244
- T::Array[
245
- OpenAI::Responses::Tool::WebSearchTool::SearchContextSize::TaggedSymbol
246
- ]
247
- )
248
- end
249
- def self.values
250
- end
251
- end
252
-
253
- class UserLocation < OpenAI::Internal::Type::BaseModel
254
- OrHash =
255
- T.type_alias do
256
- T.any(
257
- OpenAI::Responses::Tool::WebSearchTool::UserLocation,
258
- OpenAI::Internal::AnyHash
259
- )
260
- end
261
-
262
- # Free text input for the city of the user, e.g. `San Francisco`.
263
- sig { returns(T.nilable(String)) }
264
- attr_accessor :city
265
-
266
- # The two-letter [ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1) of
267
- # the user, e.g. `US`.
268
- sig { returns(T.nilable(String)) }
269
- attr_accessor :country
270
-
271
- # Free text input for the region of the user, e.g. `California`.
272
- sig { returns(T.nilable(String)) }
273
- attr_accessor :region
274
-
275
- # The [IANA timezone](https://timeapi.io/documentation/iana-timezones) of the
276
- # user, e.g. `America/Los_Angeles`.
277
- sig { returns(T.nilable(String)) }
278
- attr_accessor :timezone
279
-
280
- # The type of location approximation. Always `approximate`.
281
- sig do
282
- returns(
283
- T.nilable(
284
- OpenAI::Responses::Tool::WebSearchTool::UserLocation::Type::OrSymbol
285
- )
286
- )
287
- end
288
- attr_reader :type
289
-
290
- sig do
291
- params(
292
- type:
293
- OpenAI::Responses::Tool::WebSearchTool::UserLocation::Type::OrSymbol
294
- ).void
295
- end
296
- attr_writer :type
297
-
298
- # The approximate location of the user.
299
- sig do
300
- params(
301
- city: T.nilable(String),
302
- country: T.nilable(String),
303
- region: T.nilable(String),
304
- timezone: T.nilable(String),
305
- type:
306
- OpenAI::Responses::Tool::WebSearchTool::UserLocation::Type::OrSymbol
307
- ).returns(T.attached_class)
308
- end
309
- def self.new(
310
- # Free text input for the city of the user, e.g. `San Francisco`.
311
- city: nil,
312
- # The two-letter [ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1) of
313
- # the user, e.g. `US`.
314
- country: nil,
315
- # Free text input for the region of the user, e.g. `California`.
316
- region: nil,
317
- # The [IANA timezone](https://timeapi.io/documentation/iana-timezones) of the
318
- # user, e.g. `America/Los_Angeles`.
319
- timezone: nil,
320
- # The type of location approximation. Always `approximate`.
321
- type: nil
322
- )
323
- end
324
-
325
- sig do
326
- override.returns(
327
- {
328
- city: T.nilable(String),
329
- country: T.nilable(String),
330
- region: T.nilable(String),
331
- timezone: T.nilable(String),
332
- type:
333
- OpenAI::Responses::Tool::WebSearchTool::UserLocation::Type::OrSymbol
334
- }
335
- )
336
- end
337
- def to_hash
338
- end
339
-
340
- # The type of location approximation. Always `approximate`.
341
- module Type
342
- extend OpenAI::Internal::Type::Enum
343
-
344
- TaggedSymbol =
345
- T.type_alias do
346
- T.all(
347
- Symbol,
348
- OpenAI::Responses::Tool::WebSearchTool::UserLocation::Type
349
- )
350
- end
351
- OrSymbol = T.type_alias { T.any(Symbol, String) }
352
-
353
- APPROXIMATE =
354
- T.let(
355
- :approximate,
356
- OpenAI::Responses::Tool::WebSearchTool::UserLocation::Type::TaggedSymbol
357
- )
358
-
359
- sig do
360
- override.returns(
361
- T::Array[
362
- OpenAI::Responses::Tool::WebSearchTool::UserLocation::Type::TaggedSymbol
363
- ]
364
- )
365
- end
366
- def self.values
367
- end
368
- end
369
- end
370
- end
371
-
372
26
  class Mcp < OpenAI::Internal::Type::BaseModel
373
27
  OrHash =
374
28
  T.type_alias do