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
@@ -0,0 +1,245 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Responses
6
+ class WebSearchPreviewTool < OpenAI::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ OpenAI::Responses::WebSearchPreviewTool,
11
+ OpenAI::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # The type of the web search tool. One of `web_search_preview` or
16
+ # `web_search_preview_2025_03_11`.
17
+ sig { returns(OpenAI::Responses::WebSearchPreviewTool::Type::OrSymbol) }
18
+ attr_accessor :type
19
+
20
+ # High level guidance for the amount of context window space to use for the
21
+ # search. One of `low`, `medium`, or `high`. `medium` is the default.
22
+ sig do
23
+ returns(
24
+ T.nilable(
25
+ OpenAI::Responses::WebSearchPreviewTool::SearchContextSize::OrSymbol
26
+ )
27
+ )
28
+ end
29
+ attr_reader :search_context_size
30
+
31
+ sig do
32
+ params(
33
+ search_context_size:
34
+ OpenAI::Responses::WebSearchPreviewTool::SearchContextSize::OrSymbol
35
+ ).void
36
+ end
37
+ attr_writer :search_context_size
38
+
39
+ # The user's location.
40
+ sig do
41
+ returns(
42
+ T.nilable(OpenAI::Responses::WebSearchPreviewTool::UserLocation)
43
+ )
44
+ end
45
+ attr_reader :user_location
46
+
47
+ sig do
48
+ params(
49
+ user_location:
50
+ T.nilable(
51
+ OpenAI::Responses::WebSearchPreviewTool::UserLocation::OrHash
52
+ )
53
+ ).void
54
+ end
55
+ attr_writer :user_location
56
+
57
+ # This tool searches the web for relevant results to use in a response. Learn more
58
+ # about the
59
+ # [web search tool](https://platform.openai.com/docs/guides/tools-web-search).
60
+ sig do
61
+ params(
62
+ type: OpenAI::Responses::WebSearchPreviewTool::Type::OrSymbol,
63
+ search_context_size:
64
+ OpenAI::Responses::WebSearchPreviewTool::SearchContextSize::OrSymbol,
65
+ user_location:
66
+ T.nilable(
67
+ OpenAI::Responses::WebSearchPreviewTool::UserLocation::OrHash
68
+ )
69
+ ).returns(T.attached_class)
70
+ end
71
+ def self.new(
72
+ # The type of the web search tool. One of `web_search_preview` or
73
+ # `web_search_preview_2025_03_11`.
74
+ type:,
75
+ # High level guidance for the amount of context window space to use for the
76
+ # search. One of `low`, `medium`, or `high`. `medium` is the default.
77
+ search_context_size: nil,
78
+ # The user's location.
79
+ user_location: nil
80
+ )
81
+ end
82
+
83
+ sig do
84
+ override.returns(
85
+ {
86
+ type: OpenAI::Responses::WebSearchPreviewTool::Type::OrSymbol,
87
+ search_context_size:
88
+ OpenAI::Responses::WebSearchPreviewTool::SearchContextSize::OrSymbol,
89
+ user_location:
90
+ T.nilable(OpenAI::Responses::WebSearchPreviewTool::UserLocation)
91
+ }
92
+ )
93
+ end
94
+ def to_hash
95
+ end
96
+
97
+ # The type of the web search tool. One of `web_search_preview` or
98
+ # `web_search_preview_2025_03_11`.
99
+ module Type
100
+ extend OpenAI::Internal::Type::Enum
101
+
102
+ TaggedSymbol =
103
+ T.type_alias do
104
+ T.all(Symbol, OpenAI::Responses::WebSearchPreviewTool::Type)
105
+ end
106
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
107
+
108
+ WEB_SEARCH_PREVIEW =
109
+ T.let(
110
+ :web_search_preview,
111
+ OpenAI::Responses::WebSearchPreviewTool::Type::TaggedSymbol
112
+ )
113
+ WEB_SEARCH_PREVIEW_2025_03_11 =
114
+ T.let(
115
+ :web_search_preview_2025_03_11,
116
+ OpenAI::Responses::WebSearchPreviewTool::Type::TaggedSymbol
117
+ )
118
+
119
+ sig do
120
+ override.returns(
121
+ T::Array[
122
+ OpenAI::Responses::WebSearchPreviewTool::Type::TaggedSymbol
123
+ ]
124
+ )
125
+ end
126
+ def self.values
127
+ end
128
+ end
129
+
130
+ # High level guidance for the amount of context window space to use for the
131
+ # search. One of `low`, `medium`, or `high`. `medium` is the default.
132
+ module SearchContextSize
133
+ extend OpenAI::Internal::Type::Enum
134
+
135
+ TaggedSymbol =
136
+ T.type_alias do
137
+ T.all(
138
+ Symbol,
139
+ OpenAI::Responses::WebSearchPreviewTool::SearchContextSize
140
+ )
141
+ end
142
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
143
+
144
+ LOW =
145
+ T.let(
146
+ :low,
147
+ OpenAI::Responses::WebSearchPreviewTool::SearchContextSize::TaggedSymbol
148
+ )
149
+ MEDIUM =
150
+ T.let(
151
+ :medium,
152
+ OpenAI::Responses::WebSearchPreviewTool::SearchContextSize::TaggedSymbol
153
+ )
154
+ HIGH =
155
+ T.let(
156
+ :high,
157
+ OpenAI::Responses::WebSearchPreviewTool::SearchContextSize::TaggedSymbol
158
+ )
159
+
160
+ sig do
161
+ override.returns(
162
+ T::Array[
163
+ OpenAI::Responses::WebSearchPreviewTool::SearchContextSize::TaggedSymbol
164
+ ]
165
+ )
166
+ end
167
+ def self.values
168
+ end
169
+ end
170
+
171
+ class UserLocation < OpenAI::Internal::Type::BaseModel
172
+ OrHash =
173
+ T.type_alias do
174
+ T.any(
175
+ OpenAI::Responses::WebSearchPreviewTool::UserLocation,
176
+ OpenAI::Internal::AnyHash
177
+ )
178
+ end
179
+
180
+ # The type of location approximation. Always `approximate`.
181
+ sig { returns(Symbol) }
182
+ attr_accessor :type
183
+
184
+ # Free text input for the city of the user, e.g. `San Francisco`.
185
+ sig { returns(T.nilable(String)) }
186
+ attr_accessor :city
187
+
188
+ # The two-letter [ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1) of
189
+ # the user, e.g. `US`.
190
+ sig { returns(T.nilable(String)) }
191
+ attr_accessor :country
192
+
193
+ # Free text input for the region of the user, e.g. `California`.
194
+ sig { returns(T.nilable(String)) }
195
+ attr_accessor :region
196
+
197
+ # The [IANA timezone](https://timeapi.io/documentation/iana-timezones) of the
198
+ # user, e.g. `America/Los_Angeles`.
199
+ sig { returns(T.nilable(String)) }
200
+ attr_accessor :timezone
201
+
202
+ # The user's location.
203
+ sig do
204
+ params(
205
+ city: T.nilable(String),
206
+ country: T.nilable(String),
207
+ region: T.nilable(String),
208
+ timezone: T.nilable(String),
209
+ type: Symbol
210
+ ).returns(T.attached_class)
211
+ end
212
+ def self.new(
213
+ # Free text input for the city of the user, e.g. `San Francisco`.
214
+ city: nil,
215
+ # The two-letter [ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1) of
216
+ # the user, e.g. `US`.
217
+ country: nil,
218
+ # Free text input for the region of the user, e.g. `California`.
219
+ region: nil,
220
+ # The [IANA timezone](https://timeapi.io/documentation/iana-timezones) of the
221
+ # user, e.g. `America/Los_Angeles`.
222
+ timezone: nil,
223
+ # The type of location approximation. Always `approximate`.
224
+ type: :approximate
225
+ )
226
+ end
227
+
228
+ sig do
229
+ override.returns(
230
+ {
231
+ type: Symbol,
232
+ city: T.nilable(String),
233
+ country: T.nilable(String),
234
+ region: T.nilable(String),
235
+ timezone: T.nilable(String)
236
+ }
237
+ )
238
+ end
239
+ def to_hash
240
+ end
241
+ end
242
+ end
243
+ end
244
+ end
245
+ end
@@ -9,11 +9,22 @@ module OpenAI
9
9
  T.any(OpenAI::Responses::WebSearchTool, OpenAI::Internal::AnyHash)
10
10
  end
11
11
 
12
- # The type of the web search tool. One of `web_search_preview` or
13
- # `web_search_preview_2025_03_11`.
12
+ # The type of the web search tool. One of `web_search` or `web_search_2025_08_26`.
14
13
  sig { returns(OpenAI::Responses::WebSearchTool::Type::OrSymbol) }
15
14
  attr_accessor :type
16
15
 
16
+ # Filters for the search.
17
+ sig { returns(T.nilable(OpenAI::Responses::WebSearchTool::Filters)) }
18
+ attr_reader :filters
19
+
20
+ sig do
21
+ params(
22
+ filters:
23
+ T.nilable(OpenAI::Responses::WebSearchTool::Filters::OrHash)
24
+ ).void
25
+ end
26
+ attr_writer :filters
27
+
17
28
  # High level guidance for the amount of context window space to use for the
18
29
  # search. One of `low`, `medium`, or `high`. `medium` is the default.
19
30
  sig do
@@ -33,7 +44,7 @@ module OpenAI
33
44
  end
34
45
  attr_writer :search_context_size
35
46
 
36
- # The user's location.
47
+ # The approximate location of the user.
37
48
  sig do
38
49
  returns(T.nilable(OpenAI::Responses::WebSearchTool::UserLocation))
39
50
  end
@@ -47,12 +58,13 @@ module OpenAI
47
58
  end
48
59
  attr_writer :user_location
49
60
 
50
- # This tool searches the web for relevant results to use in a response. Learn more
51
- # about the
61
+ # Search the Internet for sources related to the prompt. Learn more about the
52
62
  # [web search tool](https://platform.openai.com/docs/guides/tools-web-search).
53
63
  sig do
54
64
  params(
55
65
  type: OpenAI::Responses::WebSearchTool::Type::OrSymbol,
66
+ filters:
67
+ T.nilable(OpenAI::Responses::WebSearchTool::Filters::OrHash),
56
68
  search_context_size:
57
69
  OpenAI::Responses::WebSearchTool::SearchContextSize::OrSymbol,
58
70
  user_location:
@@ -60,13 +72,14 @@ module OpenAI
60
72
  ).returns(T.attached_class)
61
73
  end
62
74
  def self.new(
63
- # The type of the web search tool. One of `web_search_preview` or
64
- # `web_search_preview_2025_03_11`.
75
+ # The type of the web search tool. One of `web_search` or `web_search_2025_08_26`.
65
76
  type:,
77
+ # Filters for the search.
78
+ filters: nil,
66
79
  # High level guidance for the amount of context window space to use for the
67
80
  # search. One of `low`, `medium`, or `high`. `medium` is the default.
68
81
  search_context_size: nil,
69
- # The user's location.
82
+ # The approximate location of the user.
70
83
  user_location: nil
71
84
  )
72
85
  end
@@ -75,6 +88,7 @@ module OpenAI
75
88
  override.returns(
76
89
  {
77
90
  type: OpenAI::Responses::WebSearchTool::Type::OrSymbol,
91
+ filters: T.nilable(OpenAI::Responses::WebSearchTool::Filters),
78
92
  search_context_size:
79
93
  OpenAI::Responses::WebSearchTool::SearchContextSize::OrSymbol,
80
94
  user_location:
@@ -85,8 +99,7 @@ module OpenAI
85
99
  def to_hash
86
100
  end
87
101
 
88
- # The type of the web search tool. One of `web_search_preview` or
89
- # `web_search_preview_2025_03_11`.
102
+ # The type of the web search tool. One of `web_search` or `web_search_2025_08_26`.
90
103
  module Type
91
104
  extend OpenAI::Internal::Type::Enum
92
105
 
@@ -96,14 +109,14 @@ module OpenAI
96
109
  end
97
110
  OrSymbol = T.type_alias { T.any(Symbol, String) }
98
111
 
99
- WEB_SEARCH_PREVIEW =
112
+ WEB_SEARCH =
100
113
  T.let(
101
- :web_search_preview,
114
+ :web_search,
102
115
  OpenAI::Responses::WebSearchTool::Type::TaggedSymbol
103
116
  )
104
- WEB_SEARCH_PREVIEW_2025_03_11 =
117
+ WEB_SEARCH_2025_08_26 =
105
118
  T.let(
106
- :web_search_preview_2025_03_11,
119
+ :web_search_2025_08_26,
107
120
  OpenAI::Responses::WebSearchTool::Type::TaggedSymbol
108
121
  )
109
122
 
@@ -116,6 +129,44 @@ module OpenAI
116
129
  end
117
130
  end
118
131
 
132
+ class Filters < OpenAI::Internal::Type::BaseModel
133
+ OrHash =
134
+ T.type_alias do
135
+ T.any(
136
+ OpenAI::Responses::WebSearchTool::Filters,
137
+ OpenAI::Internal::AnyHash
138
+ )
139
+ end
140
+
141
+ # Allowed domains for the search. If not provided, all domains are allowed.
142
+ # Subdomains of the provided domains are allowed as well.
143
+ #
144
+ # Example: `["pubmed.ncbi.nlm.nih.gov"]`
145
+ sig { returns(T.nilable(T::Array[String])) }
146
+ attr_accessor :allowed_domains
147
+
148
+ # Filters for the search.
149
+ sig do
150
+ params(allowed_domains: T.nilable(T::Array[String])).returns(
151
+ T.attached_class
152
+ )
153
+ end
154
+ def self.new(
155
+ # Allowed domains for the search. If not provided, all domains are allowed.
156
+ # Subdomains of the provided domains are allowed as well.
157
+ #
158
+ # Example: `["pubmed.ncbi.nlm.nih.gov"]`
159
+ allowed_domains: nil
160
+ )
161
+ end
162
+
163
+ sig do
164
+ override.returns({ allowed_domains: T.nilable(T::Array[String]) })
165
+ end
166
+ def to_hash
167
+ end
168
+ end
169
+
119
170
  # High level guidance for the amount of context window space to use for the
120
171
  # search. One of `low`, `medium`, or `high`. `medium` is the default.
121
172
  module SearchContextSize
@@ -163,10 +214,6 @@ module OpenAI
163
214
  )
164
215
  end
165
216
 
166
- # The type of location approximation. Always `approximate`.
167
- sig { returns(Symbol) }
168
- attr_accessor :type
169
-
170
217
  # Free text input for the city of the user, e.g. `San Francisco`.
171
218
  sig { returns(T.nilable(String)) }
172
219
  attr_accessor :city
@@ -185,14 +232,33 @@ module OpenAI
185
232
  sig { returns(T.nilable(String)) }
186
233
  attr_accessor :timezone
187
234
 
188
- # The user's location.
235
+ # The type of location approximation. Always `approximate`.
236
+ sig do
237
+ returns(
238
+ T.nilable(
239
+ OpenAI::Responses::WebSearchTool::UserLocation::Type::OrSymbol
240
+ )
241
+ )
242
+ end
243
+ attr_reader :type
244
+
245
+ sig do
246
+ params(
247
+ type:
248
+ OpenAI::Responses::WebSearchTool::UserLocation::Type::OrSymbol
249
+ ).void
250
+ end
251
+ attr_writer :type
252
+
253
+ # The approximate location of the user.
189
254
  sig do
190
255
  params(
191
256
  city: T.nilable(String),
192
257
  country: T.nilable(String),
193
258
  region: T.nilable(String),
194
259
  timezone: T.nilable(String),
195
- type: Symbol
260
+ type:
261
+ OpenAI::Responses::WebSearchTool::UserLocation::Type::OrSymbol
196
262
  ).returns(T.attached_class)
197
263
  end
198
264
  def self.new(
@@ -207,23 +273,54 @@ module OpenAI
207
273
  # user, e.g. `America/Los_Angeles`.
208
274
  timezone: nil,
209
275
  # The type of location approximation. Always `approximate`.
210
- type: :approximate
276
+ type: nil
211
277
  )
212
278
  end
213
279
 
214
280
  sig do
215
281
  override.returns(
216
282
  {
217
- type: Symbol,
218
283
  city: T.nilable(String),
219
284
  country: T.nilable(String),
220
285
  region: T.nilable(String),
221
- timezone: T.nilable(String)
286
+ timezone: T.nilable(String),
287
+ type:
288
+ OpenAI::Responses::WebSearchTool::UserLocation::Type::OrSymbol
222
289
  }
223
290
  )
224
291
  end
225
292
  def to_hash
226
293
  end
294
+
295
+ # The type of location approximation. Always `approximate`.
296
+ module Type
297
+ extend OpenAI::Internal::Type::Enum
298
+
299
+ TaggedSymbol =
300
+ T.type_alias do
301
+ T.all(
302
+ Symbol,
303
+ OpenAI::Responses::WebSearchTool::UserLocation::Type
304
+ )
305
+ end
306
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
307
+
308
+ APPROXIMATE =
309
+ T.let(
310
+ :approximate,
311
+ OpenAI::Responses::WebSearchTool::UserLocation::Type::TaggedSymbol
312
+ )
313
+
314
+ sig do
315
+ override.returns(
316
+ T::Array[
317
+ OpenAI::Responses::WebSearchTool::UserLocation::Type::TaggedSymbol
318
+ ]
319
+ )
320
+ end
321
+ def self.values
322
+ end
323
+ end
227
324
  end
228
325
  end
229
326
  end