openai 0.19.0 → 0.21.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 (346) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +28 -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/chat/chat_completion_message.rb +7 -5
  9. data/lib/openai/models/chat/chat_completion_message_function_tool_call.rb +7 -5
  10. data/lib/openai/models/conversations/item_list_params.rb +2 -0
  11. data/lib/openai/models/evals/run_cancel_response.rb +2 -2
  12. data/lib/openai/models/evals/run_create_params.rb +2 -2
  13. data/lib/openai/models/evals/run_create_response.rb +2 -2
  14. data/lib/openai/models/evals/run_list_response.rb +2 -2
  15. data/lib/openai/models/evals/run_retrieve_response.rb +2 -2
  16. data/lib/openai/models/realtime/client_secret_create_params.rb +93 -0
  17. data/lib/openai/models/realtime/client_secret_create_response.rb +300 -0
  18. data/lib/openai/models/realtime/conversation_created_event.rb +70 -0
  19. data/lib/openai/models/realtime/conversation_item.rb +44 -0
  20. data/lib/openai/models/realtime/conversation_item_added.rb +48 -0
  21. data/lib/openai/models/realtime/conversation_item_create_event.rb +57 -0
  22. data/lib/openai/models/realtime/conversation_item_created_event.rb +59 -0
  23. data/lib/openai/models/realtime/conversation_item_delete_event.rb +39 -0
  24. data/lib/openai/models/realtime/conversation_item_deleted_event.rb +38 -0
  25. data/lib/openai/models/realtime/conversation_item_done.rb +48 -0
  26. data/lib/openai/models/realtime/conversation_item_input_audio_transcription_completed_event.rb +189 -0
  27. data/lib/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rb +63 -0
  28. data/lib/openai/models/realtime/conversation_item_input_audio_transcription_failed_event.rb +96 -0
  29. data/lib/openai/models/realtime/conversation_item_input_audio_transcription_segment.rb +84 -0
  30. data/lib/openai/models/realtime/conversation_item_retrieve_event.rb +40 -0
  31. data/lib/openai/models/realtime/conversation_item_truncate_event.rb +68 -0
  32. data/lib/openai/models/realtime/conversation_item_truncated_event.rb +60 -0
  33. data/lib/openai/models/realtime/conversation_item_with_reference.rb +235 -0
  34. data/lib/openai/models/realtime/input_audio_buffer_append_event.rb +49 -0
  35. data/lib/openai/models/realtime/input_audio_buffer_clear_event.rb +29 -0
  36. data/lib/openai/models/realtime/input_audio_buffer_cleared_event.rb +29 -0
  37. data/lib/openai/models/realtime/input_audio_buffer_commit_event.rb +35 -0
  38. data/lib/openai/models/realtime/input_audio_buffer_committed_event.rb +51 -0
  39. data/lib/openai/models/realtime/input_audio_buffer_speech_started_event.rb +59 -0
  40. data/lib/openai/models/realtime/input_audio_buffer_speech_stopped_event.rb +51 -0
  41. data/lib/openai/models/realtime/input_audio_buffer_timeout_triggered.rb +52 -0
  42. data/lib/openai/models/realtime/log_prob_properties.rb +39 -0
  43. data/lib/openai/models/realtime/mcp_list_tools_completed.rb +36 -0
  44. data/lib/openai/models/realtime/mcp_list_tools_failed.rb +36 -0
  45. data/lib/openai/models/realtime/mcp_list_tools_in_progress.rb +36 -0
  46. data/lib/openai/models/realtime/output_audio_buffer_clear_event.rb +32 -0
  47. data/lib/openai/models/realtime/rate_limits_updated_event.rb +91 -0
  48. data/lib/openai/models/realtime/realtime_audio_config.rb +446 -0
  49. data/lib/openai/models/realtime/realtime_client_event.rb +123 -0
  50. data/lib/openai/models/realtime/realtime_client_secret_config.rb +64 -0
  51. data/lib/openai/models/realtime/realtime_conversation_item_assistant_message.rb +118 -0
  52. data/lib/openai/models/realtime/realtime_conversation_item_function_call.rb +94 -0
  53. data/lib/openai/models/realtime/realtime_conversation_item_function_call_output.rb +86 -0
  54. data/lib/openai/models/realtime/realtime_conversation_item_system_message.rb +118 -0
  55. data/lib/openai/models/realtime/realtime_conversation_item_user_message.rb +135 -0
  56. data/lib/openai/models/realtime/realtime_error.rb +55 -0
  57. data/lib/openai/models/realtime/realtime_error_event.rb +38 -0
  58. data/lib/openai/models/realtime/realtime_mcp_approval_request.rb +52 -0
  59. data/lib/openai/models/realtime/realtime_mcp_approval_response.rb +52 -0
  60. data/lib/openai/models/realtime/realtime_mcp_list_tools.rb +84 -0
  61. data/lib/openai/models/realtime/realtime_mcp_protocol_error.rb +29 -0
  62. data/lib/openai/models/realtime/realtime_mcp_tool_call.rb +94 -0
  63. data/lib/openai/models/realtime/realtime_mcp_tool_execution_error.rb +23 -0
  64. data/lib/openai/models/realtime/realtime_mcphttp_error.rb +29 -0
  65. data/lib/openai/models/realtime/realtime_response.rb +259 -0
  66. data/lib/openai/models/realtime/realtime_response_status.rb +103 -0
  67. data/lib/openai/models/realtime/realtime_response_usage.rb +61 -0
  68. data/lib/openai/models/realtime/realtime_response_usage_input_token_details.rb +36 -0
  69. data/lib/openai/models/realtime/realtime_response_usage_output_token_details.rb +28 -0
  70. data/lib/openai/models/realtime/realtime_server_event.rb +369 -0
  71. data/lib/openai/models/realtime/realtime_session.rb +696 -0
  72. data/lib/openai/models/realtime/realtime_session_create_request.rb +234 -0
  73. data/lib/openai/models/realtime/realtime_session_create_response.rb +579 -0
  74. data/lib/openai/models/realtime/realtime_tool_choice_config.rb +32 -0
  75. data/lib/openai/models/realtime/realtime_tools_config.rb +11 -0
  76. data/lib/openai/models/realtime/realtime_tools_config_union.rb +379 -0
  77. data/lib/openai/models/realtime/realtime_tracing_config.rb +61 -0
  78. data/lib/openai/models/realtime/realtime_transcription_session_create_request.rb +312 -0
  79. data/lib/openai/models/realtime/realtime_truncation.rb +67 -0
  80. data/lib/openai/models/realtime/response_audio_delta_event.rb +68 -0
  81. data/lib/openai/models/realtime/response_audio_done_event.rb +61 -0
  82. data/lib/openai/models/realtime/response_audio_transcript_delta_event.rb +68 -0
  83. data/lib/openai/models/realtime/response_audio_transcript_done_event.rb +70 -0
  84. data/lib/openai/models/realtime/response_cancel_event.rb +42 -0
  85. data/lib/openai/models/realtime/response_content_part_added_event.rb +120 -0
  86. data/lib/openai/models/realtime/response_content_part_done_event.rb +120 -0
  87. data/lib/openai/models/realtime/response_create_event.rb +391 -0
  88. data/lib/openai/models/realtime/response_created_event.rb +37 -0
  89. data/lib/openai/models/realtime/response_done_event.rb +38 -0
  90. data/lib/openai/models/realtime/response_function_call_arguments_delta_event.rb +72 -0
  91. data/lib/openai/models/realtime/response_function_call_arguments_done_event.rb +73 -0
  92. data/lib/openai/models/realtime/response_mcp_call_arguments_delta.rb +68 -0
  93. data/lib/openai/models/realtime/response_mcp_call_arguments_done.rb +60 -0
  94. data/lib/openai/models/realtime/response_mcp_call_completed.rb +44 -0
  95. data/lib/openai/models/realtime/response_mcp_call_failed.rb +44 -0
  96. data/lib/openai/models/realtime/response_mcp_call_in_progress.rb +44 -0
  97. data/lib/openai/models/realtime/response_output_item_added_event.rb +52 -0
  98. data/lib/openai/models/realtime/response_output_item_done_event.rb +53 -0
  99. data/lib/openai/models/realtime/response_text_delta_event.rb +68 -0
  100. data/lib/openai/models/realtime/response_text_done_event.rb +69 -0
  101. data/lib/openai/models/realtime/session_created_event.rb +38 -0
  102. data/lib/openai/models/realtime/session_update_event.rb +44 -0
  103. data/lib/openai/models/realtime/session_updated_event.rb +37 -0
  104. data/lib/openai/models/realtime/transcription_session_created.rb +278 -0
  105. data/lib/openai/models/realtime/transcription_session_update.rb +36 -0
  106. data/lib/openai/models/realtime/transcription_session_updated_event.rb +279 -0
  107. data/lib/openai/models/responses/response.rb +6 -3
  108. data/lib/openai/models/responses/response_create_params.rb +8 -3
  109. data/lib/openai/models/responses/response_function_tool_call.rb +7 -5
  110. data/lib/openai/models/responses/response_function_web_search.rb +35 -1
  111. data/lib/openai/models/responses/response_includable.rb +2 -0
  112. data/lib/openai/models/responses/response_output_text.rb +7 -5
  113. data/lib/openai/models/responses/tool.rb +6 -2
  114. data/lib/openai/models/responses/web_search_preview_tool.rb +124 -0
  115. data/lib/openai/models/responses/web_search_tool.rb +58 -21
  116. data/lib/openai/models/webhooks/realtime_call_incoming_webhook_event.rb +119 -0
  117. data/lib/openai/models/webhooks/unwrap_webhook_event.rb +4 -1
  118. data/lib/openai/models.rb +2 -0
  119. data/lib/openai/resources/conversations.rb +1 -1
  120. data/lib/openai/resources/realtime/client_secrets.rb +44 -0
  121. data/lib/openai/resources/realtime.rb +18 -0
  122. data/lib/openai/resources/responses.rb +2 -2
  123. data/lib/openai/resources/webhooks.rb +1 -1
  124. data/lib/openai/version.rb +1 -1
  125. data/lib/openai.rb +95 -0
  126. data/rbi/openai/client.rbi +3 -0
  127. data/rbi/openai/models/audio/speech_create_params.rbi +10 -0
  128. data/rbi/openai/models/chat/chat_completion_audio_param.rbi +10 -0
  129. data/rbi/openai/models/conversations/item_list_params.rbi +4 -0
  130. data/rbi/openai/models/evals/run_cancel_response.rbi +4 -2
  131. data/rbi/openai/models/evals/run_create_params.rbi +8 -4
  132. data/rbi/openai/models/evals/run_create_response.rbi +4 -2
  133. data/rbi/openai/models/evals/run_list_response.rbi +4 -2
  134. data/rbi/openai/models/evals/run_retrieve_response.rbi +4 -2
  135. data/rbi/openai/models/realtime/client_secret_create_params.rbi +222 -0
  136. data/rbi/openai/models/realtime/client_secret_create_response.rbi +676 -0
  137. data/rbi/openai/models/realtime/conversation_created_event.rbi +164 -0
  138. data/rbi/openai/models/realtime/conversation_item.rbi +35 -0
  139. data/rbi/openai/models/realtime/conversation_item_added.rbi +105 -0
  140. data/rbi/openai/models/realtime/conversation_item_create_event.rbi +123 -0
  141. data/rbi/openai/models/realtime/conversation_item_created_event.rbi +117 -0
  142. data/rbi/openai/models/realtime/conversation_item_delete_event.rbi +57 -0
  143. data/rbi/openai/models/realtime/conversation_item_deleted_event.rbi +53 -0
  144. data/rbi/openai/models/realtime/conversation_item_done.rbi +105 -0
  145. data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_completed_event.rbi +305 -0
  146. data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rbi +93 -0
  147. data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_failed_event.rbi +158 -0
  148. data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_segment.rbi +107 -0
  149. data/rbi/openai/models/realtime/conversation_item_retrieve_event.rbi +58 -0
  150. data/rbi/openai/models/realtime/conversation_item_truncate_event.rbi +94 -0
  151. data/rbi/openai/models/realtime/conversation_item_truncated_event.rbi +80 -0
  152. data/rbi/openai/models/realtime/conversation_item_with_reference.rbi +549 -0
  153. data/rbi/openai/models/realtime/input_audio_buffer_append_event.rbi +65 -0
  154. data/rbi/openai/models/realtime/input_audio_buffer_clear_event.rbi +43 -0
  155. data/rbi/openai/models/realtime/input_audio_buffer_cleared_event.rbi +40 -0
  156. data/rbi/openai/models/realtime/input_audio_buffer_commit_event.rbi +49 -0
  157. data/rbi/openai/models/realtime/input_audio_buffer_committed_event.rbi +72 -0
  158. data/rbi/openai/models/realtime/input_audio_buffer_speech_started_event.rbi +82 -0
  159. data/rbi/openai/models/realtime/input_audio_buffer_speech_stopped_event.rbi +73 -0
  160. data/rbi/openai/models/realtime/input_audio_buffer_timeout_triggered.rbi +75 -0
  161. data/rbi/openai/models/realtime/log_prob_properties.rbi +55 -0
  162. data/rbi/openai/models/realtime/mcp_list_tools_completed.rbi +51 -0
  163. data/rbi/openai/models/realtime/mcp_list_tools_failed.rbi +51 -0
  164. data/rbi/openai/models/realtime/mcp_list_tools_in_progress.rbi +51 -0
  165. data/rbi/openai/models/realtime/output_audio_buffer_clear_event.rbi +46 -0
  166. data/rbi/openai/models/realtime/rate_limits_updated_event.rbi +187 -0
  167. data/rbi/openai/models/realtime/realtime_audio_config.rbi +1004 -0
  168. data/rbi/openai/models/realtime/realtime_client_event.rbi +38 -0
  169. data/rbi/openai/models/realtime/realtime_client_secret_config.rbi +147 -0
  170. data/rbi/openai/models/realtime/realtime_conversation_item_assistant_message.rbi +292 -0
  171. data/rbi/openai/models/realtime/realtime_conversation_item_function_call.rbi +199 -0
  172. data/rbi/openai/models/realtime/realtime_conversation_item_function_call_output.rbi +188 -0
  173. data/rbi/openai/models/realtime/realtime_conversation_item_system_message.rbi +292 -0
  174. data/rbi/openai/models/realtime/realtime_conversation_item_user_message.rbi +319 -0
  175. data/rbi/openai/models/realtime/realtime_error.rbi +72 -0
  176. data/rbi/openai/models/realtime/realtime_error_event.rbi +64 -0
  177. data/rbi/openai/models/realtime/realtime_mcp_approval_request.rbi +75 -0
  178. data/rbi/openai/models/realtime/realtime_mcp_approval_response.rbi +75 -0
  179. data/rbi/openai/models/realtime/realtime_mcp_list_tools.rbi +131 -0
  180. data/rbi/openai/models/realtime/realtime_mcp_protocol_error.rbi +40 -0
  181. data/rbi/openai/models/realtime/realtime_mcp_tool_call.rbi +145 -0
  182. data/rbi/openai/models/realtime/realtime_mcp_tool_execution_error.rbi +31 -0
  183. data/rbi/openai/models/realtime/realtime_mcphttp_error.rbi +40 -0
  184. data/rbi/openai/models/realtime/realtime_response.rbi +573 -0
  185. data/rbi/openai/models/realtime/realtime_response_status.rbi +233 -0
  186. data/rbi/openai/models/realtime/realtime_response_usage.rbi +121 -0
  187. data/rbi/openai/models/realtime/realtime_response_usage_input_token_details.rbi +68 -0
  188. data/rbi/openai/models/realtime/realtime_response_usage_output_token_details.rbi +51 -0
  189. data/rbi/openai/models/realtime/realtime_server_event.rbi +311 -0
  190. data/rbi/openai/models/realtime/realtime_session.rbi +1426 -0
  191. data/rbi/openai/models/realtime/realtime_session_create_request.rbi +560 -0
  192. data/rbi/openai/models/realtime/realtime_session_create_response.rbi +1249 -0
  193. data/rbi/openai/models/realtime/realtime_tool_choice_config.rbi +30 -0
  194. data/rbi/openai/models/realtime/realtime_tools_config.rbi +15 -0
  195. data/rbi/openai/models/realtime/realtime_tools_config_union.rbi +755 -0
  196. data/rbi/openai/models/realtime/realtime_tracing_config.rbi +95 -0
  197. data/rbi/openai/models/realtime/realtime_transcription_session_create_request.rbi +703 -0
  198. data/rbi/openai/models/realtime/realtime_truncation.rbi +117 -0
  199. data/rbi/openai/models/realtime/response_audio_delta_event.rbi +91 -0
  200. data/rbi/openai/models/realtime/response_audio_done_event.rbi +84 -0
  201. data/rbi/openai/models/realtime/response_audio_transcript_delta_event.rbi +91 -0
  202. data/rbi/openai/models/realtime/response_audio_transcript_done_event.rbi +93 -0
  203. data/rbi/openai/models/realtime/response_cancel_event.rbi +63 -0
  204. data/rbi/openai/models/realtime/response_content_part_added_event.rbi +219 -0
  205. data/rbi/openai/models/realtime/response_content_part_done_event.rbi +219 -0
  206. data/rbi/openai/models/realtime/response_create_event.rbi +863 -0
  207. data/rbi/openai/models/realtime/response_created_event.rbi +65 -0
  208. data/rbi/openai/models/realtime/response_done_event.rbi +66 -0
  209. data/rbi/openai/models/realtime/response_function_call_arguments_delta_event.rbi +91 -0
  210. data/rbi/openai/models/realtime/response_function_call_arguments_done_event.rbi +92 -0
  211. data/rbi/openai/models/realtime/response_mcp_call_arguments_delta.rbi +91 -0
  212. data/rbi/openai/models/realtime/response_mcp_call_arguments_done.rbi +83 -0
  213. data/rbi/openai/models/realtime/response_mcp_call_completed.rbi +67 -0
  214. data/rbi/openai/models/realtime/response_mcp_call_failed.rbi +67 -0
  215. data/rbi/openai/models/realtime/response_mcp_call_in_progress.rbi +67 -0
  216. data/rbi/openai/models/realtime/response_output_item_added_event.rbi +111 -0
  217. data/rbi/openai/models/realtime/response_output_item_done_event.rbi +112 -0
  218. data/rbi/openai/models/realtime/response_text_delta_event.rbi +91 -0
  219. data/rbi/openai/models/realtime/response_text_done_event.rbi +92 -0
  220. data/rbi/openai/models/realtime/session_created_event.rbi +64 -0
  221. data/rbi/openai/models/realtime/session_update_event.rbi +77 -0
  222. data/rbi/openai/models/realtime/session_updated_event.rbi +63 -0
  223. data/rbi/openai/models/realtime/transcription_session_created.rbi +653 -0
  224. data/rbi/openai/models/realtime/transcription_session_update.rbi +74 -0
  225. data/rbi/openai/models/realtime/transcription_session_updated_event.rbi +657 -0
  226. data/rbi/openai/models/responses/response.rbi +10 -3
  227. data/rbi/openai/models/responses/response_create_params.rbi +20 -6
  228. data/rbi/openai/models/responses/response_function_web_search.rbi +78 -2
  229. data/rbi/openai/models/responses/response_includable.rbi +2 -0
  230. data/rbi/openai/models/responses/tool.rbi +2 -1
  231. data/rbi/openai/models/responses/web_search_preview_tool.rbi +245 -0
  232. data/rbi/openai/models/responses/web_search_tool.rbi +120 -23
  233. data/rbi/openai/models/webhooks/realtime_call_incoming_webhook_event.rbi +222 -0
  234. data/rbi/openai/models/webhooks/unwrap_webhook_event.rbi +1 -0
  235. data/rbi/openai/models.rbi +2 -0
  236. data/rbi/openai/resources/conversations/items.rbi +2 -0
  237. data/rbi/openai/resources/conversations.rbi +1 -1
  238. data/rbi/openai/resources/realtime/client_secrets.rbi +38 -0
  239. data/rbi/openai/resources/realtime.rbi +15 -0
  240. data/rbi/openai/resources/responses.rbi +16 -4
  241. data/rbi/openai/resources/webhooks.rbi +1 -0
  242. data/sig/openai/client.rbs +2 -0
  243. data/sig/openai/models/audio/speech_create_params.rbs +4 -0
  244. data/sig/openai/models/chat/chat_completion_audio_param.rbs +4 -0
  245. data/sig/openai/models/realtime/client_secret_create_params.rbs +89 -0
  246. data/sig/openai/models/realtime/client_secret_create_response.rbs +292 -0
  247. data/sig/openai/models/realtime/conversation_created_event.rbs +70 -0
  248. data/sig/openai/models/realtime/conversation_item.rbs +22 -0
  249. data/sig/openai/models/realtime/conversation_item_added.rbs +37 -0
  250. data/sig/openai/models/realtime/conversation_item_create_event.rbs +41 -0
  251. data/sig/openai/models/realtime/conversation_item_created_event.rbs +37 -0
  252. data/sig/openai/models/realtime/conversation_item_delete_event.rbs +30 -0
  253. data/sig/openai/models/realtime/conversation_item_deleted_event.rbs +32 -0
  254. data/sig/openai/models/realtime/conversation_item_done.rbs +37 -0
  255. data/sig/openai/models/realtime/conversation_item_input_audio_transcription_completed_event.rbs +136 -0
  256. data/sig/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rbs +51 -0
  257. data/sig/openai/models/realtime/conversation_item_input_audio_transcription_failed_event.rbs +77 -0
  258. data/sig/openai/models/realtime/conversation_item_input_audio_transcription_segment.rbs +62 -0
  259. data/sig/openai/models/realtime/conversation_item_retrieve_event.rbs +34 -0
  260. data/sig/openai/models/realtime/conversation_item_truncate_event.rbs +44 -0
  261. data/sig/openai/models/realtime/conversation_item_truncated_event.rbs +42 -0
  262. data/sig/openai/models/realtime/conversation_item_with_reference.rbs +207 -0
  263. data/sig/openai/models/realtime/input_audio_buffer_append_event.rbs +30 -0
  264. data/sig/openai/models/realtime/input_audio_buffer_clear_event.rbs +23 -0
  265. data/sig/openai/models/realtime/input_audio_buffer_cleared_event.rbs +24 -0
  266. data/sig/openai/models/realtime/input_audio_buffer_commit_event.rbs +23 -0
  267. data/sig/openai/models/realtime/input_audio_buffer_committed_event.rbs +37 -0
  268. data/sig/openai/models/realtime/input_audio_buffer_speech_started_event.rbs +37 -0
  269. data/sig/openai/models/realtime/input_audio_buffer_speech_stopped_event.rbs +37 -0
  270. data/sig/openai/models/realtime/input_audio_buffer_timeout_triggered.rbs +42 -0
  271. data/sig/openai/models/realtime/log_prob_properties.rbs +28 -0
  272. data/sig/openai/models/realtime/mcp_list_tools_completed.rbs +28 -0
  273. data/sig/openai/models/realtime/mcp_list_tools_failed.rbs +28 -0
  274. data/sig/openai/models/realtime/mcp_list_tools_in_progress.rbs +32 -0
  275. data/sig/openai/models/realtime/output_audio_buffer_clear_event.rbs +23 -0
  276. data/sig/openai/models/realtime/rate_limits_updated_event.rbs +85 -0
  277. data/sig/openai/models/realtime/realtime_audio_config.rbs +354 -0
  278. data/sig/openai/models/realtime/realtime_client_event.rbs +25 -0
  279. data/sig/openai/models/realtime/realtime_client_secret_config.rbs +60 -0
  280. data/sig/openai/models/realtime/realtime_conversation_item_assistant_message.rbs +117 -0
  281. data/sig/openai/models/realtime/realtime_conversation_item_function_call.rbs +86 -0
  282. data/sig/openai/models/realtime/realtime_conversation_item_function_call_output.rbs +79 -0
  283. data/sig/openai/models/realtime/realtime_conversation_item_system_message.rbs +117 -0
  284. data/sig/openai/models/realtime/realtime_conversation_item_user_message.rbs +132 -0
  285. data/sig/openai/models/realtime/realtime_error.rbs +42 -0
  286. data/sig/openai/models/realtime/realtime_error_event.rbs +32 -0
  287. data/sig/openai/models/realtime/realtime_mcp_approval_request.rbs +42 -0
  288. data/sig/openai/models/realtime/realtime_mcp_approval_response.rbs +42 -0
  289. data/sig/openai/models/realtime/realtime_mcp_list_tools.rbs +71 -0
  290. data/sig/openai/models/realtime/realtime_mcp_protocol_error.rbs +28 -0
  291. data/sig/openai/models/realtime/realtime_mcp_tool_call.rbs +68 -0
  292. data/sig/openai/models/realtime/realtime_mcp_tool_execution_error.rbs +18 -0
  293. data/sig/openai/models/realtime/realtime_mcphttp_error.rbs +24 -0
  294. data/sig/openai/models/realtime/realtime_response.rbs +210 -0
  295. data/sig/openai/models/realtime/realtime_response_status.rbs +90 -0
  296. data/sig/openai/models/realtime/realtime_response_usage.rbs +56 -0
  297. data/sig/openai/models/realtime/realtime_response_usage_input_token_details.rbs +34 -0
  298. data/sig/openai/models/realtime/realtime_response_usage_output_token_details.rbs +22 -0
  299. data/sig/openai/models/realtime/realtime_server_event.rbs +168 -0
  300. data/sig/openai/models/realtime/realtime_session.rbs +521 -0
  301. data/sig/openai/models/realtime/realtime_session_create_request.rbs +178 -0
  302. data/sig/openai/models/realtime/realtime_session_create_response.rbs +526 -0
  303. data/sig/openai/models/realtime/realtime_tool_choice_config.rbs +16 -0
  304. data/sig/openai/models/realtime/realtime_tools_config.rbs +10 -0
  305. data/sig/openai/models/realtime/realtime_tools_config_union.rbs +280 -0
  306. data/sig/openai/models/realtime/realtime_tracing_config.rbs +43 -0
  307. data/sig/openai/models/realtime/realtime_transcription_session_create_request.rbs +242 -0
  308. data/sig/openai/models/realtime/realtime_truncation.rbs +53 -0
  309. data/sig/openai/models/realtime/response_audio_delta_event.rbs +52 -0
  310. data/sig/openai/models/realtime/response_audio_done_event.rbs +47 -0
  311. data/sig/openai/models/realtime/response_audio_transcript_delta_event.rbs +52 -0
  312. data/sig/openai/models/realtime/response_audio_transcript_done_event.rbs +52 -0
  313. data/sig/openai/models/realtime/response_cancel_event.rbs +32 -0
  314. data/sig/openai/models/realtime/response_content_part_added_event.rbs +105 -0
  315. data/sig/openai/models/realtime/response_content_part_done_event.rbs +105 -0
  316. data/sig/openai/models/realtime/response_create_event.rbs +281 -0
  317. data/sig/openai/models/realtime/response_created_event.rbs +32 -0
  318. data/sig/openai/models/realtime/response_done_event.rbs +32 -0
  319. data/sig/openai/models/realtime/response_function_call_arguments_delta_event.rbs +52 -0
  320. data/sig/openai/models/realtime/response_function_call_arguments_done_event.rbs +52 -0
  321. data/sig/openai/models/realtime/response_mcp_call_arguments_delta.rbs +52 -0
  322. data/sig/openai/models/realtime/response_mcp_call_arguments_done.rbs +47 -0
  323. data/sig/openai/models/realtime/response_mcp_call_completed.rbs +37 -0
  324. data/sig/openai/models/realtime/response_mcp_call_failed.rbs +37 -0
  325. data/sig/openai/models/realtime/response_mcp_call_in_progress.rbs +37 -0
  326. data/sig/openai/models/realtime/response_output_item_added_event.rbs +42 -0
  327. data/sig/openai/models/realtime/response_output_item_done_event.rbs +42 -0
  328. data/sig/openai/models/realtime/response_text_delta_event.rbs +52 -0
  329. data/sig/openai/models/realtime/response_text_done_event.rbs +52 -0
  330. data/sig/openai/models/realtime/session_created_event.rbs +32 -0
  331. data/sig/openai/models/realtime/session_update_event.rbs +34 -0
  332. data/sig/openai/models/realtime/session_updated_event.rbs +32 -0
  333. data/sig/openai/models/realtime/transcription_session_created.rbs +282 -0
  334. data/sig/openai/models/realtime/transcription_session_update.rbs +34 -0
  335. data/sig/openai/models/realtime/transcription_session_updated_event.rbs +282 -0
  336. data/sig/openai/models/responses/response_function_web_search.rbs +34 -3
  337. data/sig/openai/models/responses/tool.rbs +1 -0
  338. data/sig/openai/models/responses/web_search_preview_tool.rbs +96 -0
  339. data/sig/openai/models/responses/web_search_tool.rbs +39 -10
  340. data/sig/openai/models/webhooks/realtime_call_incoming_webhook_event.rbs +90 -0
  341. data/sig/openai/models/webhooks/unwrap_webhook_event.rbs +1 -0
  342. data/sig/openai/models.rbs +2 -0
  343. data/sig/openai/resources/realtime/client_secrets.rbs +15 -0
  344. data/sig/openai/resources/realtime.rbs +9 -0
  345. data/sig/openai/resources/webhooks.rbs +1 -0
  346. metadata +287 -2
@@ -36,6 +36,8 @@ module OpenAI
36
36
  # Specify additional output data to include in the model response. Currently
37
37
  # supported values are:
38
38
  #
39
+ # - `web_search_call.action.sources`: Include the sources of the web search tool
40
+ # call.
39
41
  # - `code_interpreter_call.outputs`: Includes the outputs of python code execution
40
42
  # in code interpreter tool call items.
41
43
  # - `computer_call_output.output.image_url`: Include image urls from the computer
@@ -302,7 +304,7 @@ module OpenAI
302
304
  # An array of tools the model may call while generating a response. You can
303
305
  # specify which tool to use by setting the `tool_choice` parameter.
304
306
  #
305
- # The two categories of tools you can provide the model are:
307
+ # We support the following categories of tools:
306
308
  #
307
309
  # - **Built-in tools**: Tools that are provided by OpenAI that extend the model's
308
310
  # capabilities, like
@@ -310,6 +312,9 @@ module OpenAI
310
312
  # [file search](https://platform.openai.com/docs/guides/tools-file-search).
311
313
  # Learn more about
312
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 Notion. Learn more about
317
+ # [MCP Tools](https://platform.openai.com/docs/guides/tools-connectors-mcp).
313
318
  # - **Function calls (custom tools)**: Functions that are defined by you, enabling
314
319
  # the model to call your own code with strongly typed arguments and outputs.
315
320
  # Learn more about
@@ -328,7 +333,8 @@ module OpenAI
328
333
  OpenAI::Responses::Tool::ImageGeneration,
329
334
  OpenAI::Responses::Tool::LocalShell,
330
335
  OpenAI::Responses::CustomTool,
331
- OpenAI::Responses::WebSearchTool
336
+ OpenAI::Responses::WebSearchTool,
337
+ OpenAI::Responses::WebSearchPreviewTool
332
338
  )
333
339
  ]
334
340
  )
@@ -349,7 +355,8 @@ module OpenAI
349
355
  OpenAI::Responses::Tool::ImageGeneration::OrHash,
350
356
  OpenAI::Responses::Tool::LocalShell::OrHash,
351
357
  OpenAI::Responses::CustomTool::OrHash,
352
- OpenAI::Responses::WebSearchTool::OrHash
358
+ OpenAI::Responses::WebSearchTool::OrHash,
359
+ OpenAI::Responses::WebSearchPreviewTool::OrHash
353
360
  )
354
361
  ]
355
362
  ).void
@@ -458,7 +465,8 @@ module OpenAI
458
465
  OpenAI::Responses::Tool::ImageGeneration::OrHash,
459
466
  OpenAI::Responses::Tool::LocalShell::OrHash,
460
467
  OpenAI::Responses::CustomTool::OrHash,
461
- OpenAI::Responses::WebSearchTool::OrHash
468
+ OpenAI::Responses::WebSearchTool::OrHash,
469
+ OpenAI::Responses::WebSearchPreviewTool::OrHash
462
470
  )
463
471
  ],
464
472
  top_logprobs: T.nilable(Integer),
@@ -483,6 +491,8 @@ module OpenAI
483
491
  # Specify additional output data to include in the model response. Currently
484
492
  # supported values are:
485
493
  #
494
+ # - `web_search_call.action.sources`: Include the sources of the web search tool
495
+ # call.
486
496
  # - `code_interpreter_call.outputs`: Includes the outputs of python code execution
487
497
  # in code interpreter tool call items.
488
498
  # - `computer_call_output.output.image_url`: Include image urls from the computer
@@ -599,7 +609,7 @@ module OpenAI
599
609
  # An array of tools the model may call while generating a response. You can
600
610
  # specify which tool to use by setting the `tool_choice` parameter.
601
611
  #
602
- # The two categories of tools you can provide the model are:
612
+ # We support the following categories of tools:
603
613
  #
604
614
  # - **Built-in tools**: Tools that are provided by OpenAI that extend the model's
605
615
  # capabilities, like
@@ -607,6 +617,9 @@ module OpenAI
607
617
  # [file search](https://platform.openai.com/docs/guides/tools-file-search).
608
618
  # Learn more about
609
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 Notion. Learn more about
622
+ # [MCP Tools](https://platform.openai.com/docs/guides/tools-connectors-mcp).
610
623
  # - **Function calls (custom tools)**: Functions that are defined by you, enabling
611
624
  # the model to call your own code with strongly typed arguments and outputs.
612
625
  # Learn more about
@@ -700,7 +713,8 @@ module OpenAI
700
713
  OpenAI::Responses::Tool::ImageGeneration,
701
714
  OpenAI::Responses::Tool::LocalShell,
702
715
  OpenAI::Responses::CustomTool,
703
- OpenAI::Responses::WebSearchTool
716
+ OpenAI::Responses::WebSearchTool,
717
+ OpenAI::Responses::WebSearchPreviewTool
704
718
  )
705
719
  ],
706
720
  top_logprobs: T.nilable(Integer),
@@ -121,21 +121,97 @@ module OpenAI
121
121
  sig { returns(Symbol) }
122
122
  attr_accessor :type
123
123
 
124
+ # The sources used in the search.
125
+ sig do
126
+ returns(
127
+ T.nilable(
128
+ T::Array[
129
+ OpenAI::Responses::ResponseFunctionWebSearch::Action::Search::Source
130
+ ]
131
+ )
132
+ )
133
+ end
134
+ attr_reader :sources
135
+
136
+ sig do
137
+ params(
138
+ sources:
139
+ T::Array[
140
+ OpenAI::Responses::ResponseFunctionWebSearch::Action::Search::Source::OrHash
141
+ ]
142
+ ).void
143
+ end
144
+ attr_writer :sources
145
+
124
146
  # Action type "search" - Performs a web search query.
125
147
  sig do
126
- params(query: String, type: Symbol).returns(T.attached_class)
148
+ params(
149
+ query: String,
150
+ sources:
151
+ T::Array[
152
+ OpenAI::Responses::ResponseFunctionWebSearch::Action::Search::Source::OrHash
153
+ ],
154
+ type: Symbol
155
+ ).returns(T.attached_class)
127
156
  end
128
157
  def self.new(
129
158
  # The search query.
130
159
  query:,
160
+ # The sources used in the search.
161
+ sources: nil,
131
162
  # The action type.
132
163
  type: :search
133
164
  )
134
165
  end
135
166
 
136
- sig { override.returns({ query: String, type: Symbol }) }
167
+ sig do
168
+ override.returns(
169
+ {
170
+ query: String,
171
+ type: Symbol,
172
+ sources:
173
+ T::Array[
174
+ OpenAI::Responses::ResponseFunctionWebSearch::Action::Search::Source
175
+ ]
176
+ }
177
+ )
178
+ end
137
179
  def to_hash
138
180
  end
181
+
182
+ class Source < OpenAI::Internal::Type::BaseModel
183
+ OrHash =
184
+ T.type_alias do
185
+ T.any(
186
+ OpenAI::Responses::ResponseFunctionWebSearch::Action::Search::Source,
187
+ OpenAI::Internal::AnyHash
188
+ )
189
+ end
190
+
191
+ # The type of source. Always `url`.
192
+ sig { returns(Symbol) }
193
+ attr_accessor :type
194
+
195
+ # The URL of the source.
196
+ sig { returns(String) }
197
+ attr_accessor :url
198
+
199
+ # A source used in the search.
200
+ sig do
201
+ params(url: String, type: Symbol).returns(T.attached_class)
202
+ end
203
+ def self.new(
204
+ # The URL of the source.
205
+ url:,
206
+ # The type of source. Always `url`.
207
+ type: :url
208
+ )
209
+ end
210
+
211
+ sig { override.returns({ type: Symbol, url: String }) }
212
+ def to_hash
213
+ end
214
+ end
139
215
  end
140
216
 
141
217
  class OpenPage < OpenAI::Internal::Type::BaseModel
@@ -6,6 +6,8 @@ module OpenAI
6
6
  # Specify additional output data to include in the model response. Currently
7
7
  # supported values are:
8
8
  #
9
+ # - `web_search_call.action.sources`: Include the sources of the web search tool
10
+ # call.
9
11
  # - `code_interpreter_call.outputs`: Includes the outputs of python code execution
10
12
  # in code interpreter tool call items.
11
13
  # - `computer_call_output.output.image_url`: Include image urls from the computer
@@ -18,7 +18,8 @@ module OpenAI
18
18
  OpenAI::Responses::Tool::ImageGeneration,
19
19
  OpenAI::Responses::Tool::LocalShell,
20
20
  OpenAI::Responses::CustomTool,
21
- OpenAI::Responses::WebSearchTool
21
+ OpenAI::Responses::WebSearchTool,
22
+ OpenAI::Responses::WebSearchPreviewTool
22
23
  )
23
24
  end
24
25
 
@@ -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