openai 0.20.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 (332) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +13 -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/evals/run_cancel_response.rb +2 -2
  9. data/lib/openai/models/evals/run_create_params.rb +2 -2
  10. data/lib/openai/models/evals/run_create_response.rb +2 -2
  11. data/lib/openai/models/evals/run_list_response.rb +2 -2
  12. data/lib/openai/models/evals/run_retrieve_response.rb +2 -2
  13. data/lib/openai/models/realtime/client_secret_create_params.rb +93 -0
  14. data/lib/openai/models/realtime/client_secret_create_response.rb +300 -0
  15. data/lib/openai/models/realtime/conversation_created_event.rb +70 -0
  16. data/lib/openai/models/realtime/conversation_item.rb +44 -0
  17. data/lib/openai/models/realtime/conversation_item_added.rb +48 -0
  18. data/lib/openai/models/realtime/conversation_item_create_event.rb +57 -0
  19. data/lib/openai/models/realtime/conversation_item_created_event.rb +59 -0
  20. data/lib/openai/models/realtime/conversation_item_delete_event.rb +39 -0
  21. data/lib/openai/models/realtime/conversation_item_deleted_event.rb +38 -0
  22. data/lib/openai/models/realtime/conversation_item_done.rb +48 -0
  23. data/lib/openai/models/realtime/conversation_item_input_audio_transcription_completed_event.rb +189 -0
  24. data/lib/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rb +63 -0
  25. data/lib/openai/models/realtime/conversation_item_input_audio_transcription_failed_event.rb +96 -0
  26. data/lib/openai/models/realtime/conversation_item_input_audio_transcription_segment.rb +84 -0
  27. data/lib/openai/models/realtime/conversation_item_retrieve_event.rb +40 -0
  28. data/lib/openai/models/realtime/conversation_item_truncate_event.rb +68 -0
  29. data/lib/openai/models/realtime/conversation_item_truncated_event.rb +60 -0
  30. data/lib/openai/models/realtime/conversation_item_with_reference.rb +235 -0
  31. data/lib/openai/models/realtime/input_audio_buffer_append_event.rb +49 -0
  32. data/lib/openai/models/realtime/input_audio_buffer_clear_event.rb +29 -0
  33. data/lib/openai/models/realtime/input_audio_buffer_cleared_event.rb +29 -0
  34. data/lib/openai/models/realtime/input_audio_buffer_commit_event.rb +35 -0
  35. data/lib/openai/models/realtime/input_audio_buffer_committed_event.rb +51 -0
  36. data/lib/openai/models/realtime/input_audio_buffer_speech_started_event.rb +59 -0
  37. data/lib/openai/models/realtime/input_audio_buffer_speech_stopped_event.rb +51 -0
  38. data/lib/openai/models/realtime/input_audio_buffer_timeout_triggered.rb +52 -0
  39. data/lib/openai/models/realtime/log_prob_properties.rb +39 -0
  40. data/lib/openai/models/realtime/mcp_list_tools_completed.rb +36 -0
  41. data/lib/openai/models/realtime/mcp_list_tools_failed.rb +36 -0
  42. data/lib/openai/models/realtime/mcp_list_tools_in_progress.rb +36 -0
  43. data/lib/openai/models/realtime/output_audio_buffer_clear_event.rb +32 -0
  44. data/lib/openai/models/realtime/rate_limits_updated_event.rb +91 -0
  45. data/lib/openai/models/realtime/realtime_audio_config.rb +446 -0
  46. data/lib/openai/models/realtime/realtime_client_event.rb +123 -0
  47. data/lib/openai/models/realtime/realtime_client_secret_config.rb +64 -0
  48. data/lib/openai/models/realtime/realtime_conversation_item_assistant_message.rb +118 -0
  49. data/lib/openai/models/realtime/realtime_conversation_item_function_call.rb +94 -0
  50. data/lib/openai/models/realtime/realtime_conversation_item_function_call_output.rb +86 -0
  51. data/lib/openai/models/realtime/realtime_conversation_item_system_message.rb +118 -0
  52. data/lib/openai/models/realtime/realtime_conversation_item_user_message.rb +135 -0
  53. data/lib/openai/models/realtime/realtime_error.rb +55 -0
  54. data/lib/openai/models/realtime/realtime_error_event.rb +38 -0
  55. data/lib/openai/models/realtime/realtime_mcp_approval_request.rb +52 -0
  56. data/lib/openai/models/realtime/realtime_mcp_approval_response.rb +52 -0
  57. data/lib/openai/models/realtime/realtime_mcp_list_tools.rb +84 -0
  58. data/lib/openai/models/realtime/realtime_mcp_protocol_error.rb +29 -0
  59. data/lib/openai/models/realtime/realtime_mcp_tool_call.rb +94 -0
  60. data/lib/openai/models/realtime/realtime_mcp_tool_execution_error.rb +23 -0
  61. data/lib/openai/models/realtime/realtime_mcphttp_error.rb +29 -0
  62. data/lib/openai/models/realtime/realtime_response.rb +259 -0
  63. data/lib/openai/models/realtime/realtime_response_status.rb +103 -0
  64. data/lib/openai/models/realtime/realtime_response_usage.rb +61 -0
  65. data/lib/openai/models/realtime/realtime_response_usage_input_token_details.rb +36 -0
  66. data/lib/openai/models/realtime/realtime_response_usage_output_token_details.rb +28 -0
  67. data/lib/openai/models/realtime/realtime_server_event.rb +369 -0
  68. data/lib/openai/models/realtime/realtime_session.rb +696 -0
  69. data/lib/openai/models/realtime/realtime_session_create_request.rb +234 -0
  70. data/lib/openai/models/realtime/realtime_session_create_response.rb +579 -0
  71. data/lib/openai/models/realtime/realtime_tool_choice_config.rb +32 -0
  72. data/lib/openai/models/realtime/realtime_tools_config.rb +11 -0
  73. data/lib/openai/models/realtime/realtime_tools_config_union.rb +379 -0
  74. data/lib/openai/models/realtime/realtime_tracing_config.rb +61 -0
  75. data/lib/openai/models/realtime/realtime_transcription_session_create_request.rb +312 -0
  76. data/lib/openai/models/realtime/realtime_truncation.rb +67 -0
  77. data/lib/openai/models/realtime/response_audio_delta_event.rb +68 -0
  78. data/lib/openai/models/realtime/response_audio_done_event.rb +61 -0
  79. data/lib/openai/models/realtime/response_audio_transcript_delta_event.rb +68 -0
  80. data/lib/openai/models/realtime/response_audio_transcript_done_event.rb +70 -0
  81. data/lib/openai/models/realtime/response_cancel_event.rb +42 -0
  82. data/lib/openai/models/realtime/response_content_part_added_event.rb +120 -0
  83. data/lib/openai/models/realtime/response_content_part_done_event.rb +120 -0
  84. data/lib/openai/models/realtime/response_create_event.rb +391 -0
  85. data/lib/openai/models/realtime/response_created_event.rb +37 -0
  86. data/lib/openai/models/realtime/response_done_event.rb +38 -0
  87. data/lib/openai/models/realtime/response_function_call_arguments_delta_event.rb +72 -0
  88. data/lib/openai/models/realtime/response_function_call_arguments_done_event.rb +73 -0
  89. data/lib/openai/models/realtime/response_mcp_call_arguments_delta.rb +68 -0
  90. data/lib/openai/models/realtime/response_mcp_call_arguments_done.rb +60 -0
  91. data/lib/openai/models/realtime/response_mcp_call_completed.rb +44 -0
  92. data/lib/openai/models/realtime/response_mcp_call_failed.rb +44 -0
  93. data/lib/openai/models/realtime/response_mcp_call_in_progress.rb +44 -0
  94. data/lib/openai/models/realtime/response_output_item_added_event.rb +52 -0
  95. data/lib/openai/models/realtime/response_output_item_done_event.rb +53 -0
  96. data/lib/openai/models/realtime/response_text_delta_event.rb +68 -0
  97. data/lib/openai/models/realtime/response_text_done_event.rb +69 -0
  98. data/lib/openai/models/realtime/session_created_event.rb +38 -0
  99. data/lib/openai/models/realtime/session_update_event.rb +44 -0
  100. data/lib/openai/models/realtime/session_updated_event.rb +37 -0
  101. data/lib/openai/models/realtime/transcription_session_created.rb +278 -0
  102. data/lib/openai/models/realtime/transcription_session_update.rb +36 -0
  103. data/lib/openai/models/realtime/transcription_session_updated_event.rb +279 -0
  104. data/lib/openai/models/responses/response.rb +6 -3
  105. data/lib/openai/models/responses/response_create_params.rb +6 -3
  106. data/lib/openai/models/responses/tool.rb +3 -156
  107. data/lib/openai/models/responses/web_search_preview_tool.rb +124 -0
  108. data/lib/openai/models/responses/web_search_tool.rb +58 -21
  109. data/lib/openai/models/webhooks/realtime_call_incoming_webhook_event.rb +119 -0
  110. data/lib/openai/models/webhooks/unwrap_webhook_event.rb +4 -1
  111. data/lib/openai/models.rb +2 -0
  112. data/lib/openai/resources/realtime/client_secrets.rb +44 -0
  113. data/lib/openai/resources/realtime.rb +18 -0
  114. data/lib/openai/resources/responses.rb +2 -2
  115. data/lib/openai/resources/webhooks.rb +1 -1
  116. data/lib/openai/version.rb +1 -1
  117. data/lib/openai.rb +95 -0
  118. data/rbi/openai/client.rbi +3 -0
  119. data/rbi/openai/models/audio/speech_create_params.rbi +10 -0
  120. data/rbi/openai/models/chat/chat_completion_audio_param.rbi +10 -0
  121. data/rbi/openai/models/evals/run_cancel_response.rbi +4 -4
  122. data/rbi/openai/models/evals/run_create_params.rbi +8 -8
  123. data/rbi/openai/models/evals/run_create_response.rbi +4 -4
  124. data/rbi/openai/models/evals/run_list_response.rbi +4 -4
  125. data/rbi/openai/models/evals/run_retrieve_response.rbi +4 -4
  126. data/rbi/openai/models/realtime/client_secret_create_params.rbi +222 -0
  127. data/rbi/openai/models/realtime/client_secret_create_response.rbi +676 -0
  128. data/rbi/openai/models/realtime/conversation_created_event.rbi +164 -0
  129. data/rbi/openai/models/realtime/conversation_item.rbi +35 -0
  130. data/rbi/openai/models/realtime/conversation_item_added.rbi +105 -0
  131. data/rbi/openai/models/realtime/conversation_item_create_event.rbi +123 -0
  132. data/rbi/openai/models/realtime/conversation_item_created_event.rbi +117 -0
  133. data/rbi/openai/models/realtime/conversation_item_delete_event.rbi +57 -0
  134. data/rbi/openai/models/realtime/conversation_item_deleted_event.rbi +53 -0
  135. data/rbi/openai/models/realtime/conversation_item_done.rbi +105 -0
  136. data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_completed_event.rbi +305 -0
  137. data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rbi +93 -0
  138. data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_failed_event.rbi +158 -0
  139. data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_segment.rbi +107 -0
  140. data/rbi/openai/models/realtime/conversation_item_retrieve_event.rbi +58 -0
  141. data/rbi/openai/models/realtime/conversation_item_truncate_event.rbi +94 -0
  142. data/rbi/openai/models/realtime/conversation_item_truncated_event.rbi +80 -0
  143. data/rbi/openai/models/realtime/conversation_item_with_reference.rbi +549 -0
  144. data/rbi/openai/models/realtime/input_audio_buffer_append_event.rbi +65 -0
  145. data/rbi/openai/models/realtime/input_audio_buffer_clear_event.rbi +43 -0
  146. data/rbi/openai/models/realtime/input_audio_buffer_cleared_event.rbi +40 -0
  147. data/rbi/openai/models/realtime/input_audio_buffer_commit_event.rbi +49 -0
  148. data/rbi/openai/models/realtime/input_audio_buffer_committed_event.rbi +72 -0
  149. data/rbi/openai/models/realtime/input_audio_buffer_speech_started_event.rbi +82 -0
  150. data/rbi/openai/models/realtime/input_audio_buffer_speech_stopped_event.rbi +73 -0
  151. data/rbi/openai/models/realtime/input_audio_buffer_timeout_triggered.rbi +75 -0
  152. data/rbi/openai/models/realtime/log_prob_properties.rbi +55 -0
  153. data/rbi/openai/models/realtime/mcp_list_tools_completed.rbi +51 -0
  154. data/rbi/openai/models/realtime/mcp_list_tools_failed.rbi +51 -0
  155. data/rbi/openai/models/realtime/mcp_list_tools_in_progress.rbi +51 -0
  156. data/rbi/openai/models/realtime/output_audio_buffer_clear_event.rbi +46 -0
  157. data/rbi/openai/models/realtime/rate_limits_updated_event.rbi +187 -0
  158. data/rbi/openai/models/realtime/realtime_audio_config.rbi +1004 -0
  159. data/rbi/openai/models/realtime/realtime_client_event.rbi +38 -0
  160. data/rbi/openai/models/realtime/realtime_client_secret_config.rbi +147 -0
  161. data/rbi/openai/models/realtime/realtime_conversation_item_assistant_message.rbi +292 -0
  162. data/rbi/openai/models/realtime/realtime_conversation_item_function_call.rbi +199 -0
  163. data/rbi/openai/models/realtime/realtime_conversation_item_function_call_output.rbi +188 -0
  164. data/rbi/openai/models/realtime/realtime_conversation_item_system_message.rbi +292 -0
  165. data/rbi/openai/models/realtime/realtime_conversation_item_user_message.rbi +319 -0
  166. data/rbi/openai/models/realtime/realtime_error.rbi +72 -0
  167. data/rbi/openai/models/realtime/realtime_error_event.rbi +64 -0
  168. data/rbi/openai/models/realtime/realtime_mcp_approval_request.rbi +75 -0
  169. data/rbi/openai/models/realtime/realtime_mcp_approval_response.rbi +75 -0
  170. data/rbi/openai/models/realtime/realtime_mcp_list_tools.rbi +131 -0
  171. data/rbi/openai/models/realtime/realtime_mcp_protocol_error.rbi +40 -0
  172. data/rbi/openai/models/realtime/realtime_mcp_tool_call.rbi +145 -0
  173. data/rbi/openai/models/realtime/realtime_mcp_tool_execution_error.rbi +31 -0
  174. data/rbi/openai/models/realtime/realtime_mcphttp_error.rbi +40 -0
  175. data/rbi/openai/models/realtime/realtime_response.rbi +573 -0
  176. data/rbi/openai/models/realtime/realtime_response_status.rbi +233 -0
  177. data/rbi/openai/models/realtime/realtime_response_usage.rbi +121 -0
  178. data/rbi/openai/models/realtime/realtime_response_usage_input_token_details.rbi +68 -0
  179. data/rbi/openai/models/realtime/realtime_response_usage_output_token_details.rbi +51 -0
  180. data/rbi/openai/models/realtime/realtime_server_event.rbi +311 -0
  181. data/rbi/openai/models/realtime/realtime_session.rbi +1426 -0
  182. data/rbi/openai/models/realtime/realtime_session_create_request.rbi +560 -0
  183. data/rbi/openai/models/realtime/realtime_session_create_response.rbi +1249 -0
  184. data/rbi/openai/models/realtime/realtime_tool_choice_config.rbi +30 -0
  185. data/rbi/openai/models/realtime/realtime_tools_config.rbi +15 -0
  186. data/rbi/openai/models/realtime/realtime_tools_config_union.rbi +755 -0
  187. data/rbi/openai/models/realtime/realtime_tracing_config.rbi +95 -0
  188. data/rbi/openai/models/realtime/realtime_transcription_session_create_request.rbi +703 -0
  189. data/rbi/openai/models/realtime/realtime_truncation.rbi +117 -0
  190. data/rbi/openai/models/realtime/response_audio_delta_event.rbi +91 -0
  191. data/rbi/openai/models/realtime/response_audio_done_event.rbi +84 -0
  192. data/rbi/openai/models/realtime/response_audio_transcript_delta_event.rbi +91 -0
  193. data/rbi/openai/models/realtime/response_audio_transcript_done_event.rbi +93 -0
  194. data/rbi/openai/models/realtime/response_cancel_event.rbi +63 -0
  195. data/rbi/openai/models/realtime/response_content_part_added_event.rbi +219 -0
  196. data/rbi/openai/models/realtime/response_content_part_done_event.rbi +219 -0
  197. data/rbi/openai/models/realtime/response_create_event.rbi +863 -0
  198. data/rbi/openai/models/realtime/response_created_event.rbi +65 -0
  199. data/rbi/openai/models/realtime/response_done_event.rbi +66 -0
  200. data/rbi/openai/models/realtime/response_function_call_arguments_delta_event.rbi +91 -0
  201. data/rbi/openai/models/realtime/response_function_call_arguments_done_event.rbi +92 -0
  202. data/rbi/openai/models/realtime/response_mcp_call_arguments_delta.rbi +91 -0
  203. data/rbi/openai/models/realtime/response_mcp_call_arguments_done.rbi +83 -0
  204. data/rbi/openai/models/realtime/response_mcp_call_completed.rbi +67 -0
  205. data/rbi/openai/models/realtime/response_mcp_call_failed.rbi +67 -0
  206. data/rbi/openai/models/realtime/response_mcp_call_in_progress.rbi +67 -0
  207. data/rbi/openai/models/realtime/response_output_item_added_event.rbi +111 -0
  208. data/rbi/openai/models/realtime/response_output_item_done_event.rbi +112 -0
  209. data/rbi/openai/models/realtime/response_text_delta_event.rbi +91 -0
  210. data/rbi/openai/models/realtime/response_text_done_event.rbi +92 -0
  211. data/rbi/openai/models/realtime/session_created_event.rbi +64 -0
  212. data/rbi/openai/models/realtime/session_update_event.rbi +77 -0
  213. data/rbi/openai/models/realtime/session_updated_event.rbi +63 -0
  214. data/rbi/openai/models/realtime/transcription_session_created.rbi +653 -0
  215. data/rbi/openai/models/realtime/transcription_session_update.rbi +74 -0
  216. data/rbi/openai/models/realtime/transcription_session_updated_event.rbi +657 -0
  217. data/rbi/openai/models/responses/response.rbi +10 -4
  218. data/rbi/openai/models/responses/response_create_params.rbi +16 -10
  219. data/rbi/openai/models/responses/tool.rbi +2 -348
  220. data/rbi/openai/models/responses/web_search_preview_tool.rbi +245 -0
  221. data/rbi/openai/models/responses/web_search_tool.rbi +120 -23
  222. data/rbi/openai/models/webhooks/realtime_call_incoming_webhook_event.rbi +222 -0
  223. data/rbi/openai/models/webhooks/unwrap_webhook_event.rbi +1 -0
  224. data/rbi/openai/models.rbi +2 -0
  225. data/rbi/openai/resources/realtime/client_secrets.rbi +38 -0
  226. data/rbi/openai/resources/realtime.rbi +15 -0
  227. data/rbi/openai/resources/responses.rbi +12 -6
  228. data/rbi/openai/resources/webhooks.rbi +1 -0
  229. data/sig/openai/client.rbs +2 -0
  230. data/sig/openai/models/audio/speech_create_params.rbs +4 -0
  231. data/sig/openai/models/chat/chat_completion_audio_param.rbs +4 -0
  232. data/sig/openai/models/realtime/client_secret_create_params.rbs +89 -0
  233. data/sig/openai/models/realtime/client_secret_create_response.rbs +292 -0
  234. data/sig/openai/models/realtime/conversation_created_event.rbs +70 -0
  235. data/sig/openai/models/realtime/conversation_item.rbs +22 -0
  236. data/sig/openai/models/realtime/conversation_item_added.rbs +37 -0
  237. data/sig/openai/models/realtime/conversation_item_create_event.rbs +41 -0
  238. data/sig/openai/models/realtime/conversation_item_created_event.rbs +37 -0
  239. data/sig/openai/models/realtime/conversation_item_delete_event.rbs +30 -0
  240. data/sig/openai/models/realtime/conversation_item_deleted_event.rbs +32 -0
  241. data/sig/openai/models/realtime/conversation_item_done.rbs +37 -0
  242. data/sig/openai/models/realtime/conversation_item_input_audio_transcription_completed_event.rbs +136 -0
  243. data/sig/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rbs +51 -0
  244. data/sig/openai/models/realtime/conversation_item_input_audio_transcription_failed_event.rbs +77 -0
  245. data/sig/openai/models/realtime/conversation_item_input_audio_transcription_segment.rbs +62 -0
  246. data/sig/openai/models/realtime/conversation_item_retrieve_event.rbs +34 -0
  247. data/sig/openai/models/realtime/conversation_item_truncate_event.rbs +44 -0
  248. data/sig/openai/models/realtime/conversation_item_truncated_event.rbs +42 -0
  249. data/sig/openai/models/realtime/conversation_item_with_reference.rbs +207 -0
  250. data/sig/openai/models/realtime/input_audio_buffer_append_event.rbs +30 -0
  251. data/sig/openai/models/realtime/input_audio_buffer_clear_event.rbs +23 -0
  252. data/sig/openai/models/realtime/input_audio_buffer_cleared_event.rbs +24 -0
  253. data/sig/openai/models/realtime/input_audio_buffer_commit_event.rbs +23 -0
  254. data/sig/openai/models/realtime/input_audio_buffer_committed_event.rbs +37 -0
  255. data/sig/openai/models/realtime/input_audio_buffer_speech_started_event.rbs +37 -0
  256. data/sig/openai/models/realtime/input_audio_buffer_speech_stopped_event.rbs +37 -0
  257. data/sig/openai/models/realtime/input_audio_buffer_timeout_triggered.rbs +42 -0
  258. data/sig/openai/models/realtime/log_prob_properties.rbs +28 -0
  259. data/sig/openai/models/realtime/mcp_list_tools_completed.rbs +28 -0
  260. data/sig/openai/models/realtime/mcp_list_tools_failed.rbs +28 -0
  261. data/sig/openai/models/realtime/mcp_list_tools_in_progress.rbs +32 -0
  262. data/sig/openai/models/realtime/output_audio_buffer_clear_event.rbs +23 -0
  263. data/sig/openai/models/realtime/rate_limits_updated_event.rbs +85 -0
  264. data/sig/openai/models/realtime/realtime_audio_config.rbs +354 -0
  265. data/sig/openai/models/realtime/realtime_client_event.rbs +25 -0
  266. data/sig/openai/models/realtime/realtime_client_secret_config.rbs +60 -0
  267. data/sig/openai/models/realtime/realtime_conversation_item_assistant_message.rbs +117 -0
  268. data/sig/openai/models/realtime/realtime_conversation_item_function_call.rbs +86 -0
  269. data/sig/openai/models/realtime/realtime_conversation_item_function_call_output.rbs +79 -0
  270. data/sig/openai/models/realtime/realtime_conversation_item_system_message.rbs +117 -0
  271. data/sig/openai/models/realtime/realtime_conversation_item_user_message.rbs +132 -0
  272. data/sig/openai/models/realtime/realtime_error.rbs +42 -0
  273. data/sig/openai/models/realtime/realtime_error_event.rbs +32 -0
  274. data/sig/openai/models/realtime/realtime_mcp_approval_request.rbs +42 -0
  275. data/sig/openai/models/realtime/realtime_mcp_approval_response.rbs +42 -0
  276. data/sig/openai/models/realtime/realtime_mcp_list_tools.rbs +71 -0
  277. data/sig/openai/models/realtime/realtime_mcp_protocol_error.rbs +28 -0
  278. data/sig/openai/models/realtime/realtime_mcp_tool_call.rbs +68 -0
  279. data/sig/openai/models/realtime/realtime_mcp_tool_execution_error.rbs +18 -0
  280. data/sig/openai/models/realtime/realtime_mcphttp_error.rbs +24 -0
  281. data/sig/openai/models/realtime/realtime_response.rbs +210 -0
  282. data/sig/openai/models/realtime/realtime_response_status.rbs +90 -0
  283. data/sig/openai/models/realtime/realtime_response_usage.rbs +56 -0
  284. data/sig/openai/models/realtime/realtime_response_usage_input_token_details.rbs +34 -0
  285. data/sig/openai/models/realtime/realtime_response_usage_output_token_details.rbs +22 -0
  286. data/sig/openai/models/realtime/realtime_server_event.rbs +168 -0
  287. data/sig/openai/models/realtime/realtime_session.rbs +521 -0
  288. data/sig/openai/models/realtime/realtime_session_create_request.rbs +178 -0
  289. data/sig/openai/models/realtime/realtime_session_create_response.rbs +526 -0
  290. data/sig/openai/models/realtime/realtime_tool_choice_config.rbs +16 -0
  291. data/sig/openai/models/realtime/realtime_tools_config.rbs +10 -0
  292. data/sig/openai/models/realtime/realtime_tools_config_union.rbs +280 -0
  293. data/sig/openai/models/realtime/realtime_tracing_config.rbs +43 -0
  294. data/sig/openai/models/realtime/realtime_transcription_session_create_request.rbs +242 -0
  295. data/sig/openai/models/realtime/realtime_truncation.rbs +53 -0
  296. data/sig/openai/models/realtime/response_audio_delta_event.rbs +52 -0
  297. data/sig/openai/models/realtime/response_audio_done_event.rbs +47 -0
  298. data/sig/openai/models/realtime/response_audio_transcript_delta_event.rbs +52 -0
  299. data/sig/openai/models/realtime/response_audio_transcript_done_event.rbs +52 -0
  300. data/sig/openai/models/realtime/response_cancel_event.rbs +32 -0
  301. data/sig/openai/models/realtime/response_content_part_added_event.rbs +105 -0
  302. data/sig/openai/models/realtime/response_content_part_done_event.rbs +105 -0
  303. data/sig/openai/models/realtime/response_create_event.rbs +281 -0
  304. data/sig/openai/models/realtime/response_created_event.rbs +32 -0
  305. data/sig/openai/models/realtime/response_done_event.rbs +32 -0
  306. data/sig/openai/models/realtime/response_function_call_arguments_delta_event.rbs +52 -0
  307. data/sig/openai/models/realtime/response_function_call_arguments_done_event.rbs +52 -0
  308. data/sig/openai/models/realtime/response_mcp_call_arguments_delta.rbs +52 -0
  309. data/sig/openai/models/realtime/response_mcp_call_arguments_done.rbs +47 -0
  310. data/sig/openai/models/realtime/response_mcp_call_completed.rbs +37 -0
  311. data/sig/openai/models/realtime/response_mcp_call_failed.rbs +37 -0
  312. data/sig/openai/models/realtime/response_mcp_call_in_progress.rbs +37 -0
  313. data/sig/openai/models/realtime/response_output_item_added_event.rbs +42 -0
  314. data/sig/openai/models/realtime/response_output_item_done_event.rbs +42 -0
  315. data/sig/openai/models/realtime/response_text_delta_event.rbs +52 -0
  316. data/sig/openai/models/realtime/response_text_done_event.rbs +52 -0
  317. data/sig/openai/models/realtime/session_created_event.rbs +32 -0
  318. data/sig/openai/models/realtime/session_update_event.rbs +34 -0
  319. data/sig/openai/models/realtime/session_updated_event.rbs +32 -0
  320. data/sig/openai/models/realtime/transcription_session_created.rbs +282 -0
  321. data/sig/openai/models/realtime/transcription_session_update.rbs +34 -0
  322. data/sig/openai/models/realtime/transcription_session_updated_event.rbs +282 -0
  323. data/sig/openai/models/responses/tool.rbs +1 -121
  324. data/sig/openai/models/responses/web_search_preview_tool.rbs +96 -0
  325. data/sig/openai/models/responses/web_search_tool.rbs +39 -10
  326. data/sig/openai/models/webhooks/realtime_call_incoming_webhook_event.rbs +90 -0
  327. data/sig/openai/models/webhooks/unwrap_webhook_event.rbs +1 -0
  328. data/sig/openai/models.rbs +2 -0
  329. data/sig/openai/resources/realtime/client_secrets.rbs +15 -0
  330. data/sig/openai/resources/realtime.rbs +9 -0
  331. data/sig/openai/resources/webhooks.rbs +1 -0
  332. metadata +287 -2
@@ -0,0 +1,657 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class TranscriptionSessionUpdatedEvent < OpenAI::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ OpenAI::Realtime::TranscriptionSessionUpdatedEvent,
11
+ OpenAI::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # The unique ID of the server event.
16
+ sig { returns(String) }
17
+ attr_accessor :event_id
18
+
19
+ # A Realtime transcription session configuration object.
20
+ sig do
21
+ returns(OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session)
22
+ end
23
+ attr_reader :session
24
+
25
+ sig do
26
+ params(
27
+ session:
28
+ OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session::OrHash
29
+ ).void
30
+ end
31
+ attr_writer :session
32
+
33
+ # The event type, must be `transcription_session.updated`.
34
+ sig { returns(Symbol) }
35
+ attr_accessor :type
36
+
37
+ # Returned when a transcription session is updated with a
38
+ # `transcription_session.update` event, unless there is an error.
39
+ sig do
40
+ params(
41
+ event_id: String,
42
+ session:
43
+ OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session::OrHash,
44
+ type: Symbol
45
+ ).returns(T.attached_class)
46
+ end
47
+ def self.new(
48
+ # The unique ID of the server event.
49
+ event_id:,
50
+ # A Realtime transcription session configuration object.
51
+ session:,
52
+ # The event type, must be `transcription_session.updated`.
53
+ type: :"transcription_session.updated"
54
+ )
55
+ end
56
+
57
+ sig do
58
+ override.returns(
59
+ {
60
+ event_id: String,
61
+ session:
62
+ OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session,
63
+ type: Symbol
64
+ }
65
+ )
66
+ end
67
+ def to_hash
68
+ end
69
+
70
+ class Session < OpenAI::Internal::Type::BaseModel
71
+ OrHash =
72
+ T.type_alias do
73
+ T.any(
74
+ OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session,
75
+ OpenAI::Internal::AnyHash
76
+ )
77
+ end
78
+
79
+ # Unique identifier for the session that looks like `sess_1234567890abcdef`.
80
+ sig { returns(T.nilable(String)) }
81
+ attr_reader :id
82
+
83
+ sig { params(id: String).void }
84
+ attr_writer :id
85
+
86
+ # Configuration for input audio for the session.
87
+ sig do
88
+ returns(
89
+ T.nilable(
90
+ OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio
91
+ )
92
+ )
93
+ end
94
+ attr_reader :audio
95
+
96
+ sig do
97
+ params(
98
+ audio:
99
+ OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::OrHash
100
+ ).void
101
+ end
102
+ attr_writer :audio
103
+
104
+ # Expiration timestamp for the session, in seconds since epoch.
105
+ sig { returns(T.nilable(Integer)) }
106
+ attr_reader :expires_at
107
+
108
+ sig { params(expires_at: Integer).void }
109
+ attr_writer :expires_at
110
+
111
+ # Additional fields to include in server outputs.
112
+ #
113
+ # - `item.input_audio_transcription.logprobs`: Include logprobs for input audio
114
+ # transcription.
115
+ sig do
116
+ returns(
117
+ T.nilable(
118
+ T::Array[
119
+ OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session::Include::OrSymbol
120
+ ]
121
+ )
122
+ )
123
+ end
124
+ attr_reader :include
125
+
126
+ sig do
127
+ params(
128
+ include:
129
+ T::Array[
130
+ OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session::Include::OrSymbol
131
+ ]
132
+ ).void
133
+ end
134
+ attr_writer :include
135
+
136
+ # The object type. Always `realtime.transcription_session`.
137
+ sig { returns(T.nilable(String)) }
138
+ attr_reader :object
139
+
140
+ sig { params(object: String).void }
141
+ attr_writer :object
142
+
143
+ # A Realtime transcription session configuration object.
144
+ sig do
145
+ params(
146
+ id: String,
147
+ audio:
148
+ OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::OrHash,
149
+ expires_at: Integer,
150
+ include:
151
+ T::Array[
152
+ OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session::Include::OrSymbol
153
+ ],
154
+ object: String
155
+ ).returns(T.attached_class)
156
+ end
157
+ def self.new(
158
+ # Unique identifier for the session that looks like `sess_1234567890abcdef`.
159
+ id: nil,
160
+ # Configuration for input audio for the session.
161
+ audio: nil,
162
+ # Expiration timestamp for the session, in seconds since epoch.
163
+ expires_at: nil,
164
+ # Additional fields to include in server outputs.
165
+ #
166
+ # - `item.input_audio_transcription.logprobs`: Include logprobs for input audio
167
+ # transcription.
168
+ include: nil,
169
+ # The object type. Always `realtime.transcription_session`.
170
+ object: nil
171
+ )
172
+ end
173
+
174
+ sig do
175
+ override.returns(
176
+ {
177
+ id: String,
178
+ audio:
179
+ OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio,
180
+ expires_at: Integer,
181
+ include:
182
+ T::Array[
183
+ OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session::Include::OrSymbol
184
+ ],
185
+ object: String
186
+ }
187
+ )
188
+ end
189
+ def to_hash
190
+ end
191
+
192
+ class Audio < OpenAI::Internal::Type::BaseModel
193
+ OrHash =
194
+ T.type_alias do
195
+ T.any(
196
+ OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio,
197
+ OpenAI::Internal::AnyHash
198
+ )
199
+ end
200
+
201
+ sig do
202
+ returns(
203
+ T.nilable(
204
+ OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input
205
+ )
206
+ )
207
+ end
208
+ attr_reader :input
209
+
210
+ sig do
211
+ params(
212
+ input:
213
+ OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input::OrHash
214
+ ).void
215
+ end
216
+ attr_writer :input
217
+
218
+ # Configuration for input audio for the session.
219
+ sig do
220
+ params(
221
+ input:
222
+ OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input::OrHash
223
+ ).returns(T.attached_class)
224
+ end
225
+ def self.new(input: nil)
226
+ end
227
+
228
+ sig do
229
+ override.returns(
230
+ {
231
+ input:
232
+ OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input
233
+ }
234
+ )
235
+ end
236
+ def to_hash
237
+ end
238
+
239
+ class Input < OpenAI::Internal::Type::BaseModel
240
+ OrHash =
241
+ T.type_alias do
242
+ T.any(
243
+ OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input,
244
+ OpenAI::Internal::AnyHash
245
+ )
246
+ end
247
+
248
+ # The format of input audio. Options are `pcm16`, `g711_ulaw`, or `g711_alaw`.
249
+ sig { returns(T.nilable(String)) }
250
+ attr_reader :format_
251
+
252
+ sig { params(format_: String).void }
253
+ attr_writer :format_
254
+
255
+ # Configuration for input audio noise reduction.
256
+ sig do
257
+ returns(
258
+ T.nilable(
259
+ OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input::NoiseReduction
260
+ )
261
+ )
262
+ end
263
+ attr_reader :noise_reduction
264
+
265
+ sig do
266
+ params(
267
+ noise_reduction:
268
+ OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input::NoiseReduction::OrHash
269
+ ).void
270
+ end
271
+ attr_writer :noise_reduction
272
+
273
+ # Configuration of the transcription model.
274
+ sig do
275
+ returns(
276
+ T.nilable(
277
+ OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input::Transcription
278
+ )
279
+ )
280
+ end
281
+ attr_reader :transcription
282
+
283
+ sig do
284
+ params(
285
+ transcription:
286
+ OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input::Transcription::OrHash
287
+ ).void
288
+ end
289
+ attr_writer :transcription
290
+
291
+ # Configuration for turn detection.
292
+ sig do
293
+ returns(
294
+ T.nilable(
295
+ OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input::TurnDetection
296
+ )
297
+ )
298
+ end
299
+ attr_reader :turn_detection
300
+
301
+ sig do
302
+ params(
303
+ turn_detection:
304
+ OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input::TurnDetection::OrHash
305
+ ).void
306
+ end
307
+ attr_writer :turn_detection
308
+
309
+ sig do
310
+ params(
311
+ format_: String,
312
+ noise_reduction:
313
+ OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input::NoiseReduction::OrHash,
314
+ transcription:
315
+ OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input::Transcription::OrHash,
316
+ turn_detection:
317
+ OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input::TurnDetection::OrHash
318
+ ).returns(T.attached_class)
319
+ end
320
+ def self.new(
321
+ # The format of input audio. Options are `pcm16`, `g711_ulaw`, or `g711_alaw`.
322
+ format_: nil,
323
+ # Configuration for input audio noise reduction.
324
+ noise_reduction: nil,
325
+ # Configuration of the transcription model.
326
+ transcription: nil,
327
+ # Configuration for turn detection.
328
+ turn_detection: nil
329
+ )
330
+ end
331
+
332
+ sig do
333
+ override.returns(
334
+ {
335
+ format_: String,
336
+ noise_reduction:
337
+ OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input::NoiseReduction,
338
+ transcription:
339
+ OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input::Transcription,
340
+ turn_detection:
341
+ OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input::TurnDetection
342
+ }
343
+ )
344
+ end
345
+ def to_hash
346
+ end
347
+
348
+ class NoiseReduction < OpenAI::Internal::Type::BaseModel
349
+ OrHash =
350
+ T.type_alias do
351
+ T.any(
352
+ OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input::NoiseReduction,
353
+ OpenAI::Internal::AnyHash
354
+ )
355
+ end
356
+
357
+ sig do
358
+ returns(
359
+ T.nilable(
360
+ OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input::NoiseReduction::Type::OrSymbol
361
+ )
362
+ )
363
+ end
364
+ attr_reader :type
365
+
366
+ sig do
367
+ params(
368
+ type:
369
+ OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input::NoiseReduction::Type::OrSymbol
370
+ ).void
371
+ end
372
+ attr_writer :type
373
+
374
+ # Configuration for input audio noise reduction.
375
+ sig do
376
+ params(
377
+ type:
378
+ OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input::NoiseReduction::Type::OrSymbol
379
+ ).returns(T.attached_class)
380
+ end
381
+ def self.new(type: nil)
382
+ end
383
+
384
+ sig do
385
+ override.returns(
386
+ {
387
+ type:
388
+ OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input::NoiseReduction::Type::OrSymbol
389
+ }
390
+ )
391
+ end
392
+ def to_hash
393
+ end
394
+
395
+ module Type
396
+ extend OpenAI::Internal::Type::Enum
397
+
398
+ TaggedSymbol =
399
+ T.type_alias do
400
+ T.all(
401
+ Symbol,
402
+ OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input::NoiseReduction::Type
403
+ )
404
+ end
405
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
406
+
407
+ NEAR_FIELD =
408
+ T.let(
409
+ :near_field,
410
+ OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input::NoiseReduction::Type::TaggedSymbol
411
+ )
412
+ FAR_FIELD =
413
+ T.let(
414
+ :far_field,
415
+ OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input::NoiseReduction::Type::TaggedSymbol
416
+ )
417
+
418
+ sig do
419
+ override.returns(
420
+ T::Array[
421
+ OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input::NoiseReduction::Type::TaggedSymbol
422
+ ]
423
+ )
424
+ end
425
+ def self.values
426
+ end
427
+ end
428
+ end
429
+
430
+ class Transcription < OpenAI::Internal::Type::BaseModel
431
+ OrHash =
432
+ T.type_alias do
433
+ T.any(
434
+ OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input::Transcription,
435
+ OpenAI::Internal::AnyHash
436
+ )
437
+ end
438
+
439
+ # The language of the input audio. Supplying the input language in
440
+ # [ISO-639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) (e.g. `en`)
441
+ # format will improve accuracy and latency.
442
+ sig { returns(T.nilable(String)) }
443
+ attr_reader :language
444
+
445
+ sig { params(language: String).void }
446
+ attr_writer :language
447
+
448
+ # The model to use for transcription. Can be `gpt-4o-transcribe`,
449
+ # `gpt-4o-mini-transcribe`, or `whisper-1`.
450
+ sig do
451
+ returns(
452
+ T.nilable(
453
+ OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input::Transcription::Model::OrSymbol
454
+ )
455
+ )
456
+ end
457
+ attr_reader :model
458
+
459
+ sig do
460
+ params(
461
+ model:
462
+ OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input::Transcription::Model::OrSymbol
463
+ ).void
464
+ end
465
+ attr_writer :model
466
+
467
+ # An optional text to guide the model's style or continue a previous audio
468
+ # segment. The
469
+ # [prompt](https://platform.openai.com/docs/guides/speech-to-text#prompting)
470
+ # should match the audio language.
471
+ sig { returns(T.nilable(String)) }
472
+ attr_reader :prompt
473
+
474
+ sig { params(prompt: String).void }
475
+ attr_writer :prompt
476
+
477
+ # Configuration of the transcription model.
478
+ sig do
479
+ params(
480
+ language: String,
481
+ model:
482
+ OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input::Transcription::Model::OrSymbol,
483
+ prompt: String
484
+ ).returns(T.attached_class)
485
+ end
486
+ def self.new(
487
+ # The language of the input audio. Supplying the input language in
488
+ # [ISO-639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) (e.g. `en`)
489
+ # format will improve accuracy and latency.
490
+ language: nil,
491
+ # The model to use for transcription. Can be `gpt-4o-transcribe`,
492
+ # `gpt-4o-mini-transcribe`, or `whisper-1`.
493
+ model: nil,
494
+ # An optional text to guide the model's style or continue a previous audio
495
+ # segment. The
496
+ # [prompt](https://platform.openai.com/docs/guides/speech-to-text#prompting)
497
+ # should match the audio language.
498
+ prompt: nil
499
+ )
500
+ end
501
+
502
+ sig do
503
+ override.returns(
504
+ {
505
+ language: String,
506
+ model:
507
+ OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input::Transcription::Model::OrSymbol,
508
+ prompt: String
509
+ }
510
+ )
511
+ end
512
+ def to_hash
513
+ end
514
+
515
+ # The model to use for transcription. Can be `gpt-4o-transcribe`,
516
+ # `gpt-4o-mini-transcribe`, or `whisper-1`.
517
+ module Model
518
+ extend OpenAI::Internal::Type::Enum
519
+
520
+ TaggedSymbol =
521
+ T.type_alias do
522
+ T.all(
523
+ Symbol,
524
+ OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input::Transcription::Model
525
+ )
526
+ end
527
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
528
+
529
+ GPT_4O_TRANSCRIBE =
530
+ T.let(
531
+ :"gpt-4o-transcribe",
532
+ OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input::Transcription::Model::TaggedSymbol
533
+ )
534
+ GPT_4O_MINI_TRANSCRIBE =
535
+ T.let(
536
+ :"gpt-4o-mini-transcribe",
537
+ OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input::Transcription::Model::TaggedSymbol
538
+ )
539
+ WHISPER_1 =
540
+ T.let(
541
+ :"whisper-1",
542
+ OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input::Transcription::Model::TaggedSymbol
543
+ )
544
+
545
+ sig do
546
+ override.returns(
547
+ T::Array[
548
+ OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input::Transcription::Model::TaggedSymbol
549
+ ]
550
+ )
551
+ end
552
+ def self.values
553
+ end
554
+ end
555
+ end
556
+
557
+ class TurnDetection < OpenAI::Internal::Type::BaseModel
558
+ OrHash =
559
+ T.type_alias do
560
+ T.any(
561
+ OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session::Audio::Input::TurnDetection,
562
+ OpenAI::Internal::AnyHash
563
+ )
564
+ end
565
+
566
+ sig { returns(T.nilable(Integer)) }
567
+ attr_reader :prefix_padding_ms
568
+
569
+ sig { params(prefix_padding_ms: Integer).void }
570
+ attr_writer :prefix_padding_ms
571
+
572
+ sig { returns(T.nilable(Integer)) }
573
+ attr_reader :silence_duration_ms
574
+
575
+ sig { params(silence_duration_ms: Integer).void }
576
+ attr_writer :silence_duration_ms
577
+
578
+ sig { returns(T.nilable(Float)) }
579
+ attr_reader :threshold
580
+
581
+ sig { params(threshold: Float).void }
582
+ attr_writer :threshold
583
+
584
+ # Type of turn detection, only `server_vad` is currently supported.
585
+ sig { returns(T.nilable(String)) }
586
+ attr_reader :type
587
+
588
+ sig { params(type: String).void }
589
+ attr_writer :type
590
+
591
+ # Configuration for turn detection.
592
+ sig do
593
+ params(
594
+ prefix_padding_ms: Integer,
595
+ silence_duration_ms: Integer,
596
+ threshold: Float,
597
+ type: String
598
+ ).returns(T.attached_class)
599
+ end
600
+ def self.new(
601
+ prefix_padding_ms: nil,
602
+ silence_duration_ms: nil,
603
+ threshold: nil,
604
+ # Type of turn detection, only `server_vad` is currently supported.
605
+ type: nil
606
+ )
607
+ end
608
+
609
+ sig do
610
+ override.returns(
611
+ {
612
+ prefix_padding_ms: Integer,
613
+ silence_duration_ms: Integer,
614
+ threshold: Float,
615
+ type: String
616
+ }
617
+ )
618
+ end
619
+ def to_hash
620
+ end
621
+ end
622
+ end
623
+ end
624
+
625
+ module Include
626
+ extend OpenAI::Internal::Type::Enum
627
+
628
+ TaggedSymbol =
629
+ T.type_alias do
630
+ T.all(
631
+ Symbol,
632
+ OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session::Include
633
+ )
634
+ end
635
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
636
+
637
+ ITEM_INPUT_AUDIO_TRANSCRIPTION_LOGPROBS =
638
+ T.let(
639
+ :"item.input_audio_transcription.logprobs",
640
+ OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session::Include::TaggedSymbol
641
+ )
642
+
643
+ sig do
644
+ override.returns(
645
+ T::Array[
646
+ OpenAI::Realtime::TranscriptionSessionUpdatedEvent::Session::Include::TaggedSymbol
647
+ ]
648
+ )
649
+ end
650
+ def self.values
651
+ end
652
+ end
653
+ end
654
+ end
655
+ end
656
+ end
657
+ end
@@ -107,7 +107,7 @@ module OpenAI
107
107
  # An array of tools the model may call while generating a response. You can
108
108
  # specify which tool to use by setting the `tool_choice` parameter.
109
109
  #
110
- # The two categories of tools you can provide the model are:
110
+ # We support the following categories of tools:
111
111
  #
112
112
  # - **Built-in tools**: Tools that are provided by OpenAI that extend the model's
113
113
  # capabilities, like
@@ -115,6 +115,9 @@ module OpenAI
115
115
  # [file search](https://platform.openai.com/docs/guides/tools-file-search).
116
116
  # Learn more about
117
117
  # [built-in tools](https://platform.openai.com/docs/guides/tools).
118
+ # - **MCP Tools**: Integrations with third-party systems via custom MCP servers or
119
+ # predefined connectors such as Google Drive and Notion. Learn more about
120
+ # [MCP Tools](https://platform.openai.com/docs/guides/tools-connectors-mcp).
118
121
  # - **Function calls (custom tools)**: Functions that are defined by you, enabling
119
122
  # the model to call your own code with strongly typed arguments and outputs.
120
123
  # Learn more about
@@ -349,8 +352,8 @@ module OpenAI
349
352
  OpenAI::Responses::Tool::ImageGeneration::OrHash,
350
353
  OpenAI::Responses::Tool::LocalShell::OrHash,
351
354
  OpenAI::Responses::CustomTool::OrHash,
352
- OpenAI::Responses::Tool::WebSearchTool::OrHash,
353
- OpenAI::Responses::WebSearchTool::OrHash
355
+ OpenAI::Responses::WebSearchTool::OrHash,
356
+ OpenAI::Responses::WebSearchPreviewTool::OrHash
354
357
  )
355
358
  ],
356
359
  top_p: T.nilable(Float),
@@ -426,7 +429,7 @@ module OpenAI
426
429
  # An array of tools the model may call while generating a response. You can
427
430
  # specify which tool to use by setting the `tool_choice` parameter.
428
431
  #
429
- # The two categories of tools you can provide the model are:
432
+ # We support the following categories of tools:
430
433
  #
431
434
  # - **Built-in tools**: Tools that are provided by OpenAI that extend the model's
432
435
  # capabilities, like
@@ -434,6 +437,9 @@ module OpenAI
434
437
  # [file search](https://platform.openai.com/docs/guides/tools-file-search).
435
438
  # Learn more about
436
439
  # [built-in tools](https://platform.openai.com/docs/guides/tools).
440
+ # - **MCP Tools**: Integrations with third-party systems via custom MCP servers or
441
+ # predefined connectors such as Google Drive and Notion. Learn more about
442
+ # [MCP Tools](https://platform.openai.com/docs/guides/tools-connectors-mcp).
437
443
  # - **Function calls (custom tools)**: Functions that are defined by you, enabling
438
444
  # the model to call your own code with strongly typed arguments and outputs.
439
445
  # Learn more about