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
@@ -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
@@ -0,0 +1,222 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Webhooks
6
+ class RealtimeCallIncomingWebhookEvent < OpenAI::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ OpenAI::Webhooks::RealtimeCallIncomingWebhookEvent,
11
+ OpenAI::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # The unique ID of the event.
16
+ sig { returns(String) }
17
+ attr_accessor :id
18
+
19
+ # The Unix timestamp (in seconds) of when the model response was completed.
20
+ sig { returns(Integer) }
21
+ attr_accessor :created_at
22
+
23
+ # Event data payload.
24
+ sig do
25
+ returns(OpenAI::Webhooks::RealtimeCallIncomingWebhookEvent::Data)
26
+ end
27
+ attr_reader :data
28
+
29
+ sig do
30
+ params(
31
+ data:
32
+ OpenAI::Webhooks::RealtimeCallIncomingWebhookEvent::Data::OrHash
33
+ ).void
34
+ end
35
+ attr_writer :data
36
+
37
+ # The type of the event. Always `realtime.call.incoming`.
38
+ sig { returns(Symbol) }
39
+ attr_accessor :type
40
+
41
+ # The object of the event. Always `event`.
42
+ sig do
43
+ returns(
44
+ T.nilable(
45
+ OpenAI::Webhooks::RealtimeCallIncomingWebhookEvent::Object::TaggedSymbol
46
+ )
47
+ )
48
+ end
49
+ attr_reader :object
50
+
51
+ sig do
52
+ params(
53
+ object:
54
+ OpenAI::Webhooks::RealtimeCallIncomingWebhookEvent::Object::OrSymbol
55
+ ).void
56
+ end
57
+ attr_writer :object
58
+
59
+ # Sent when Realtime API Receives a incoming SIP call.
60
+ sig do
61
+ params(
62
+ id: String,
63
+ created_at: Integer,
64
+ data:
65
+ OpenAI::Webhooks::RealtimeCallIncomingWebhookEvent::Data::OrHash,
66
+ object:
67
+ OpenAI::Webhooks::RealtimeCallIncomingWebhookEvent::Object::OrSymbol,
68
+ type: Symbol
69
+ ).returns(T.attached_class)
70
+ end
71
+ def self.new(
72
+ # The unique ID of the event.
73
+ id:,
74
+ # The Unix timestamp (in seconds) of when the model response was completed.
75
+ created_at:,
76
+ # Event data payload.
77
+ data:,
78
+ # The object of the event. Always `event`.
79
+ object: nil,
80
+ # The type of the event. Always `realtime.call.incoming`.
81
+ type: :"realtime.call.incoming"
82
+ )
83
+ end
84
+
85
+ sig do
86
+ override.returns(
87
+ {
88
+ id: String,
89
+ created_at: Integer,
90
+ data: OpenAI::Webhooks::RealtimeCallIncomingWebhookEvent::Data,
91
+ type: Symbol,
92
+ object:
93
+ OpenAI::Webhooks::RealtimeCallIncomingWebhookEvent::Object::TaggedSymbol
94
+ }
95
+ )
96
+ end
97
+ def to_hash
98
+ end
99
+
100
+ class Data < OpenAI::Internal::Type::BaseModel
101
+ OrHash =
102
+ T.type_alias do
103
+ T.any(
104
+ OpenAI::Webhooks::RealtimeCallIncomingWebhookEvent::Data,
105
+ OpenAI::Internal::AnyHash
106
+ )
107
+ end
108
+
109
+ # The unique ID of this call.
110
+ sig { returns(String) }
111
+ attr_accessor :call_id
112
+
113
+ # Headers from the SIP Invite.
114
+ sig do
115
+ returns(
116
+ T::Array[
117
+ OpenAI::Webhooks::RealtimeCallIncomingWebhookEvent::Data::SipHeader
118
+ ]
119
+ )
120
+ end
121
+ attr_accessor :sip_headers
122
+
123
+ # Event data payload.
124
+ sig do
125
+ params(
126
+ call_id: String,
127
+ sip_headers:
128
+ T::Array[
129
+ OpenAI::Webhooks::RealtimeCallIncomingWebhookEvent::Data::SipHeader::OrHash
130
+ ]
131
+ ).returns(T.attached_class)
132
+ end
133
+ def self.new(
134
+ # The unique ID of this call.
135
+ call_id:,
136
+ # Headers from the SIP Invite.
137
+ sip_headers:
138
+ )
139
+ end
140
+
141
+ sig do
142
+ override.returns(
143
+ {
144
+ call_id: String,
145
+ sip_headers:
146
+ T::Array[
147
+ OpenAI::Webhooks::RealtimeCallIncomingWebhookEvent::Data::SipHeader
148
+ ]
149
+ }
150
+ )
151
+ end
152
+ def to_hash
153
+ end
154
+
155
+ class SipHeader < OpenAI::Internal::Type::BaseModel
156
+ OrHash =
157
+ T.type_alias do
158
+ T.any(
159
+ OpenAI::Webhooks::RealtimeCallIncomingWebhookEvent::Data::SipHeader,
160
+ OpenAI::Internal::AnyHash
161
+ )
162
+ end
163
+
164
+ # Name of the SIP Header.
165
+ sig { returns(String) }
166
+ attr_accessor :name
167
+
168
+ # Value of the SIP Header.
169
+ sig { returns(String) }
170
+ attr_accessor :value
171
+
172
+ # A header from the SIP Invite.
173
+ sig do
174
+ params(name: String, value: String).returns(T.attached_class)
175
+ end
176
+ def self.new(
177
+ # Name of the SIP Header.
178
+ name:,
179
+ # Value of the SIP Header.
180
+ value:
181
+ )
182
+ end
183
+
184
+ sig { override.returns({ name: String, value: String }) }
185
+ def to_hash
186
+ end
187
+ end
188
+ end
189
+
190
+ # The object of the event. Always `event`.
191
+ module Object
192
+ extend OpenAI::Internal::Type::Enum
193
+
194
+ TaggedSymbol =
195
+ T.type_alias do
196
+ T.all(
197
+ Symbol,
198
+ OpenAI::Webhooks::RealtimeCallIncomingWebhookEvent::Object
199
+ )
200
+ end
201
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
202
+
203
+ EVENT =
204
+ T.let(
205
+ :event,
206
+ OpenAI::Webhooks::RealtimeCallIncomingWebhookEvent::Object::TaggedSymbol
207
+ )
208
+
209
+ sig do
210
+ override.returns(
211
+ T::Array[
212
+ OpenAI::Webhooks::RealtimeCallIncomingWebhookEvent::Object::TaggedSymbol
213
+ ]
214
+ )
215
+ end
216
+ def self.values
217
+ end
218
+ end
219
+ end
220
+ end
221
+ end
222
+ end
@@ -20,6 +20,7 @@ module OpenAI
20
20
  OpenAI::Webhooks::FineTuningJobCancelledWebhookEvent,
21
21
  OpenAI::Webhooks::FineTuningJobFailedWebhookEvent,
22
22
  OpenAI::Webhooks::FineTuningJobSucceededWebhookEvent,
23
+ OpenAI::Webhooks::RealtimeCallIncomingWebhookEvent,
23
24
  OpenAI::Webhooks::ResponseCancelledWebhookEvent,
24
25
  OpenAI::Webhooks::ResponseCompletedWebhookEvent,
25
26
  OpenAI::Webhooks::ResponseFailedWebhookEvent,
@@ -166,6 +166,8 @@ module OpenAI
166
166
  OtherFileChunkingStrategyObject =
167
167
  OpenAI::Models::OtherFileChunkingStrategyObject
168
168
 
169
+ Realtime = OpenAI::Models::Realtime
170
+
169
171
  Reasoning = OpenAI::Models::Reasoning
170
172
 
171
173
  ReasoningEffort = OpenAI::Models::ReasoningEffort
@@ -99,6 +99,8 @@ module OpenAI
99
99
  # Specify additional output data to include in the model response. Currently
100
100
  # supported values are:
101
101
  #
102
+ # - `web_search_call.action.sources`: Include the sources of the web search tool
103
+ # call.
102
104
  # - `code_interpreter_call.outputs`: Includes the outputs of python code execution
103
105
  # in code interpreter tool call items.
104
106
  # - `computer_call_output.output.image_url`: Include image urls from the computer
@@ -6,7 +6,7 @@ module OpenAI
6
6
  sig { returns(OpenAI::Resources::Conversations::Items) }
7
7
  attr_reader :items
8
8
 
9
- # Create a conversation with the given ID.
9
+ # Create a conversation.
10
10
  sig do
11
11
  params(
12
12
  items:
@@ -0,0 +1,38 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Resources
5
+ class Realtime
6
+ class ClientSecrets
7
+ # Create a Realtime session and client secret for either realtime or
8
+ # transcription.
9
+ sig do
10
+ params(
11
+ expires_after:
12
+ OpenAI::Realtime::ClientSecretCreateParams::ExpiresAfter::OrHash,
13
+ session:
14
+ T.any(
15
+ OpenAI::Realtime::RealtimeSessionCreateRequest::OrHash,
16
+ OpenAI::Realtime::RealtimeTranscriptionSessionCreateRequest::OrHash
17
+ ),
18
+ request_options: OpenAI::RequestOptions::OrHash
19
+ ).returns(OpenAI::Models::Realtime::ClientSecretCreateResponse)
20
+ end
21
+ def create(
22
+ # Configuration for the ephemeral token expiration.
23
+ expires_after: nil,
24
+ # Session configuration to use for the client secret. Choose either a realtime
25
+ # session or a transcription session.
26
+ session: nil,
27
+ request_options: {}
28
+ )
29
+ end
30
+
31
+ # @api private
32
+ sig { params(client: OpenAI::Client).returns(T.attached_class) }
33
+ def self.new(client:)
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,15 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Resources
5
+ class Realtime
6
+ sig { returns(OpenAI::Resources::Realtime::ClientSecrets) }
7
+ attr_reader :client_secrets
8
+
9
+ # @api private
10
+ sig { params(client: OpenAI::Client).returns(T.attached_class) }
11
+ def self.new(client:)
12
+ end
13
+ end
14
+ end
15
+ end
@@ -85,7 +85,8 @@ module OpenAI
85
85
  OpenAI::Responses::Tool::ImageGeneration::OrHash,
86
86
  OpenAI::Responses::Tool::LocalShell::OrHash,
87
87
  OpenAI::Responses::CustomTool::OrHash,
88
- OpenAI::Responses::WebSearchTool::OrHash
88
+ OpenAI::Responses::WebSearchTool::OrHash,
89
+ OpenAI::Responses::WebSearchPreviewTool::OrHash
89
90
  )
90
91
  ],
91
92
  top_logprobs: T.nilable(Integer),
@@ -111,6 +112,8 @@ module OpenAI
111
112
  # Specify additional output data to include in the model response. Currently
112
113
  # supported values are:
113
114
  #
115
+ # - `web_search_call.action.sources`: Include the sources of the web search tool
116
+ # call.
114
117
  # - `code_interpreter_call.outputs`: Includes the outputs of python code execution
115
118
  # in code interpreter tool call items.
116
119
  # - `computer_call_output.output.image_url`: Include image urls from the computer
@@ -227,7 +230,7 @@ module OpenAI
227
230
  # An array of tools the model may call while generating a response. You can
228
231
  # specify which tool to use by setting the `tool_choice` parameter.
229
232
  #
230
- # The two categories of tools you can provide the model are:
233
+ # We support the following categories of tools:
231
234
  #
232
235
  # - **Built-in tools**: Tools that are provided by OpenAI that extend the model's
233
236
  # capabilities, like
@@ -235,6 +238,9 @@ module OpenAI
235
238
  # [file search](https://platform.openai.com/docs/guides/tools-file-search).
236
239
  # Learn more about
237
240
  # [built-in tools](https://platform.openai.com/docs/guides/tools).
241
+ # - **MCP Tools**: Integrations with third-party systems via custom MCP servers or
242
+ # predefined connectors such as Google Drive and Notion. Learn more about
243
+ # [MCP Tools](https://platform.openai.com/docs/guides/tools-connectors-mcp).
238
244
  # - **Function calls (custom tools)**: Functions that are defined by you, enabling
239
245
  # the model to call your own code with strongly typed arguments and outputs.
240
246
  # Learn more about
@@ -352,7 +358,8 @@ module OpenAI
352
358
  OpenAI::Responses::Tool::ImageGeneration::OrHash,
353
359
  OpenAI::Responses::Tool::LocalShell::OrHash,
354
360
  OpenAI::Responses::CustomTool::OrHash,
355
- OpenAI::Responses::WebSearchTool::OrHash
361
+ OpenAI::Responses::WebSearchTool::OrHash,
362
+ OpenAI::Responses::WebSearchPreviewTool::OrHash
356
363
  )
357
364
  ],
358
365
  top_logprobs: T.nilable(Integer),
@@ -382,6 +389,8 @@ module OpenAI
382
389
  # Specify additional output data to include in the model response. Currently
383
390
  # supported values are:
384
391
  #
392
+ # - `web_search_call.action.sources`: Include the sources of the web search tool
393
+ # call.
385
394
  # - `code_interpreter_call.outputs`: Includes the outputs of python code execution
386
395
  # in code interpreter tool call items.
387
396
  # - `computer_call_output.output.image_url`: Include image urls from the computer
@@ -498,7 +507,7 @@ module OpenAI
498
507
  # An array of tools the model may call while generating a response. You can
499
508
  # specify which tool to use by setting the `tool_choice` parameter.
500
509
  #
501
- # The two categories of tools you can provide the model are:
510
+ # We support the following categories of tools:
502
511
  #
503
512
  # - **Built-in tools**: Tools that are provided by OpenAI that extend the model's
504
513
  # capabilities, like
@@ -506,6 +515,9 @@ module OpenAI
506
515
  # [file search](https://platform.openai.com/docs/guides/tools-file-search).
507
516
  # Learn more about
508
517
  # [built-in tools](https://platform.openai.com/docs/guides/tools).
518
+ # - **MCP Tools**: Integrations with third-party systems via custom MCP servers or
519
+ # predefined connectors such as Google Drive and Notion. Learn more about
520
+ # [MCP Tools](https://platform.openai.com/docs/guides/tools-connectors-mcp).
509
521
  # - **Function calls (custom tools)**: Functions that are defined by you, enabling
510
522
  # the model to call your own code with strongly typed arguments and outputs.
511
523
  # Learn more about
@@ -21,6 +21,7 @@ module OpenAI
21
21
  OpenAI::Webhooks::FineTuningJobCancelledWebhookEvent,
22
22
  OpenAI::Webhooks::FineTuningJobFailedWebhookEvent,
23
23
  OpenAI::Webhooks::FineTuningJobSucceededWebhookEvent,
24
+ OpenAI::Webhooks::RealtimeCallIncomingWebhookEvent,
24
25
  OpenAI::Webhooks::ResponseCancelledWebhookEvent,
25
26
  OpenAI::Webhooks::ResponseCompletedWebhookEvent,
26
27
  OpenAI::Webhooks::ResponseFailedWebhookEvent,
@@ -46,6 +46,8 @@ module OpenAI
46
46
 
47
47
  attr_reader responses: OpenAI::Resources::Responses
48
48
 
49
+ attr_reader realtime: OpenAI::Resources::Realtime
50
+
49
51
  attr_reader conversations: OpenAI::Resources::Conversations
50
52
 
51
53
  attr_reader evals: OpenAI::Resources::Evals
@@ -83,6 +83,8 @@ module OpenAI
83
83
  | :sage
84
84
  | :shimmer
85
85
  | :verse
86
+ | :marin
87
+ | :cedar
86
88
 
87
89
  module Voice
88
90
  extend OpenAI::Internal::Type::Union
@@ -97,6 +99,8 @@ module OpenAI
97
99
  SAGE: :sage
98
100
  SHIMMER: :shimmer
99
101
  VERSE: :verse
102
+ MARIN: :marin
103
+ CEDAR: :cedar
100
104
  end
101
105
 
102
106
  type response_format = :mp3 | :opus | :aac | :flac | :wav | :pcm