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
@@ -0,0 +1,369 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ # A realtime server event.
7
+ module RealtimeServerEvent
8
+ extend OpenAI::Internal::Type::Union
9
+
10
+ discriminator :type
11
+
12
+ # Returned when a conversation is created. Emitted right after session creation.
13
+ variant :"conversation.created", -> { OpenAI::Realtime::ConversationCreatedEvent }
14
+
15
+ # Returned when a conversation item is created. There are several scenarios that produce this event:
16
+ # - The server is generating a Response, which if successful will produce
17
+ # either one or two Items, which will be of type `message`
18
+ # (role `assistant`) or type `function_call`.
19
+ # - The input audio buffer has been committed, either by the client or the
20
+ # server (in `server_vad` mode). The server will take the content of the
21
+ # input audio buffer and add it to a new user message Item.
22
+ # - The client has sent a `conversation.item.create` event to add a new Item
23
+ # to the Conversation.
24
+ variant :"conversation.item.created", -> { OpenAI::Realtime::ConversationItemCreatedEvent }
25
+
26
+ # Returned when an item in the conversation is deleted by the client with a
27
+ # `conversation.item.delete` event. This event is used to synchronize the
28
+ # server's understanding of the conversation history with the client's view.
29
+ variant :"conversation.item.deleted", -> { OpenAI::Realtime::ConversationItemDeletedEvent }
30
+
31
+ # This event is the output of audio transcription for user audio written to the
32
+ # user audio buffer. Transcription begins when the input audio buffer is
33
+ # committed by the client or server (in `server_vad` mode). Transcription runs
34
+ # asynchronously with Response creation, so this event may come before or after
35
+ # the Response events.
36
+ #
37
+ # Realtime API models accept audio natively, and thus input transcription is a
38
+ # separate process run on a separate ASR (Automatic Speech Recognition) model.
39
+ # The transcript may diverge somewhat from the model's interpretation, and
40
+ # should be treated as a rough guide.
41
+ variant :"conversation.item.input_audio_transcription.completed",
42
+ -> { OpenAI::Realtime::ConversationItemInputAudioTranscriptionCompletedEvent }
43
+
44
+ # Returned when the text value of an input audio transcription content part is updated.
45
+ variant :"conversation.item.input_audio_transcription.delta",
46
+ -> { OpenAI::Realtime::ConversationItemInputAudioTranscriptionDeltaEvent }
47
+
48
+ # Returned when input audio transcription is configured, and a transcription
49
+ # request for a user message failed. These events are separate from other
50
+ # `error` events so that the client can identify the related Item.
51
+ variant :"conversation.item.input_audio_transcription.failed",
52
+ -> { OpenAI::Realtime::ConversationItemInputAudioTranscriptionFailedEvent }
53
+
54
+ # Returned when a conversation item is retrieved with `conversation.item.retrieve`.
55
+ variant :"conversation.item.retrieved",
56
+ -> { OpenAI::Realtime::RealtimeServerEvent::ConversationItemRetrieved }
57
+
58
+ # Returned when an earlier assistant audio message item is truncated by the
59
+ # client with a `conversation.item.truncate` event. This event is used to
60
+ # synchronize the server's understanding of the audio with the client's playback.
61
+ #
62
+ # This action will truncate the audio and remove the server-side text transcript
63
+ # to ensure there is no text in the context that hasn't been heard by the user.
64
+ variant :"conversation.item.truncated", -> { OpenAI::Realtime::ConversationItemTruncatedEvent }
65
+
66
+ # Returned when an error occurs, which could be a client problem or a server
67
+ # problem. Most errors are recoverable and the session will stay open, we
68
+ # recommend to implementors to monitor and log error messages by default.
69
+ variant :error, -> { OpenAI::Realtime::RealtimeErrorEvent }
70
+
71
+ # Returned when the input audio buffer is cleared by the client with a
72
+ # `input_audio_buffer.clear` event.
73
+ variant :"input_audio_buffer.cleared", -> { OpenAI::Realtime::InputAudioBufferClearedEvent }
74
+
75
+ # Returned when an input audio buffer is committed, either by the client or
76
+ # automatically in server VAD mode. The `item_id` property is the ID of the user
77
+ # message item that will be created, thus a `conversation.item.created` event
78
+ # will also be sent to the client.
79
+ variant :"input_audio_buffer.committed", -> { OpenAI::Realtime::InputAudioBufferCommittedEvent }
80
+
81
+ # Sent by the server when in `server_vad` mode to indicate that speech has been
82
+ # detected in the audio buffer. This can happen any time audio is added to the
83
+ # buffer (unless speech is already detected). The client may want to use this
84
+ # event to interrupt audio playback or provide visual feedback to the user.
85
+ #
86
+ # The client should expect to receive a `input_audio_buffer.speech_stopped` event
87
+ # when speech stops. The `item_id` property is the ID of the user message item
88
+ # that will be created when speech stops and will also be included in the
89
+ # `input_audio_buffer.speech_stopped` event (unless the client manually commits
90
+ # the audio buffer during VAD activation).
91
+ variant :"input_audio_buffer.speech_started", -> { OpenAI::Realtime::InputAudioBufferSpeechStartedEvent }
92
+
93
+ # Returned in `server_vad` mode when the server detects the end of speech in
94
+ # the audio buffer. The server will also send an `conversation.item.created`
95
+ # event with the user message item that is created from the audio buffer.
96
+ variant :"input_audio_buffer.speech_stopped", -> { OpenAI::Realtime::InputAudioBufferSpeechStoppedEvent }
97
+
98
+ # Emitted at the beginning of a Response to indicate the updated rate limits.
99
+ # When a Response is created some tokens will be "reserved" for the output
100
+ # tokens, the rate limits shown here reflect that reservation, which is then
101
+ # adjusted accordingly once the Response is completed.
102
+ variant :"rate_limits.updated", -> { OpenAI::Realtime::RateLimitsUpdatedEvent }
103
+
104
+ # Returned when the model-generated audio is updated.
105
+ variant :"response.output_audio.delta", -> { OpenAI::Realtime::ResponseAudioDeltaEvent }
106
+
107
+ # Returned when the model-generated audio is done. Also emitted when a Response
108
+ # is interrupted, incomplete, or cancelled.
109
+ variant :"response.output_audio.done", -> { OpenAI::Realtime::ResponseAudioDoneEvent }
110
+
111
+ # Returned when the model-generated transcription of audio output is updated.
112
+ variant :"response.output_audio_transcript.delta",
113
+ -> { OpenAI::Realtime::ResponseAudioTranscriptDeltaEvent }
114
+
115
+ # Returned when the model-generated transcription of audio output is done
116
+ # streaming. Also emitted when a Response is interrupted, incomplete, or
117
+ # cancelled.
118
+ variant :"response.output_audio_transcript.done",
119
+ -> { OpenAI::Realtime::ResponseAudioTranscriptDoneEvent }
120
+
121
+ # Returned when a new content part is added to an assistant message item during
122
+ # response generation.
123
+ variant :"response.content_part.added", -> { OpenAI::Realtime::ResponseContentPartAddedEvent }
124
+
125
+ # Returned when a content part is done streaming in an assistant message item.
126
+ # Also emitted when a Response is interrupted, incomplete, or cancelled.
127
+ variant :"response.content_part.done", -> { OpenAI::Realtime::ResponseContentPartDoneEvent }
128
+
129
+ # Returned when a new Response is created. The first event of response creation,
130
+ # where the response is in an initial state of `in_progress`.
131
+ variant :"response.created", -> { OpenAI::Realtime::ResponseCreatedEvent }
132
+
133
+ # Returned when a Response is done streaming. Always emitted, no matter the
134
+ # final state. The Response object included in the `response.done` event will
135
+ # include all output Items in the Response but will omit the raw audio data.
136
+ variant :"response.done", -> { OpenAI::Realtime::ResponseDoneEvent }
137
+
138
+ # Returned when the model-generated function call arguments are updated.
139
+ variant :"response.function_call_arguments.delta",
140
+ -> { OpenAI::Realtime::ResponseFunctionCallArgumentsDeltaEvent }
141
+
142
+ # Returned when the model-generated function call arguments are done streaming.
143
+ # Also emitted when a Response is interrupted, incomplete, or cancelled.
144
+ variant :"response.function_call_arguments.done",
145
+ -> { OpenAI::Realtime::ResponseFunctionCallArgumentsDoneEvent }
146
+
147
+ # Returned when a new Item is created during Response generation.
148
+ variant :"response.output_item.added", -> { OpenAI::Realtime::ResponseOutputItemAddedEvent }
149
+
150
+ # Returned when an Item is done streaming. Also emitted when a Response is
151
+ # interrupted, incomplete, or cancelled.
152
+ variant :"response.output_item.done", -> { OpenAI::Realtime::ResponseOutputItemDoneEvent }
153
+
154
+ # Returned when the text value of an "output_text" content part is updated.
155
+ variant :"response.output_text.delta", -> { OpenAI::Realtime::ResponseTextDeltaEvent }
156
+
157
+ # Returned when the text value of an "output_text" content part is done streaming. Also
158
+ # emitted when a Response is interrupted, incomplete, or cancelled.
159
+ variant :"response.output_text.done", -> { OpenAI::Realtime::ResponseTextDoneEvent }
160
+
161
+ # Returned when a Session is created. Emitted automatically when a new
162
+ # connection is established as the first server event. This event will contain
163
+ # the default Session configuration.
164
+ variant :"session.created", -> { OpenAI::Realtime::SessionCreatedEvent }
165
+
166
+ # Returned when a session is updated with a `session.update` event, unless
167
+ # there is an error.
168
+ variant :"session.updated", -> { OpenAI::Realtime::SessionUpdatedEvent }
169
+
170
+ # Returned when a transcription session is updated with a `transcription_session.update` event, unless
171
+ # there is an error.
172
+ variant :"transcription_session.updated", -> { OpenAI::Realtime::TranscriptionSessionUpdatedEvent }
173
+
174
+ # Returned when a transcription session is created.
175
+ variant :"transcription_session.created", -> { OpenAI::Realtime::TranscriptionSessionCreated }
176
+
177
+ # **WebRTC Only:** Emitted when the server begins streaming audio to the client. This event is
178
+ # emitted after an audio content part has been added (`response.content_part.added`)
179
+ # to the response.
180
+ # [Learn more](https://platform.openai.com/docs/guides/realtime-conversations#client-and-server-events-for-audio-in-webrtc).
181
+ variant :"output_audio_buffer.started",
182
+ -> { OpenAI::Realtime::RealtimeServerEvent::OutputAudioBufferStarted }
183
+
184
+ # **WebRTC Only:** Emitted when the output audio buffer has been completely drained on the server,
185
+ # and no more audio is forthcoming. This event is emitted after the full response
186
+ # data has been sent to the client (`response.done`).
187
+ # [Learn more](https://platform.openai.com/docs/guides/realtime-conversations#client-and-server-events-for-audio-in-webrtc).
188
+ variant :"output_audio_buffer.stopped",
189
+ -> { OpenAI::Realtime::RealtimeServerEvent::OutputAudioBufferStopped }
190
+
191
+ # **WebRTC Only:** Emitted when the output audio buffer is cleared. This happens either in VAD
192
+ # mode when the user has interrupted (`input_audio_buffer.speech_started`),
193
+ # or when the client has emitted the `output_audio_buffer.clear` event to manually
194
+ # cut off the current audio response.
195
+ # [Learn more](https://platform.openai.com/docs/guides/realtime-conversations#client-and-server-events-for-audio-in-webrtc).
196
+ variant :"output_audio_buffer.cleared",
197
+ -> { OpenAI::Realtime::RealtimeServerEvent::OutputAudioBufferCleared }
198
+
199
+ # Returned when a conversation item is added.
200
+ variant :"conversation.item.added", -> { OpenAI::Realtime::ConversationItemAdded }
201
+
202
+ # Returned when a conversation item is finalized.
203
+ variant :"conversation.item.done", -> { OpenAI::Realtime::ConversationItemDone }
204
+
205
+ # Returned when the server VAD timeout is triggered for the input audio buffer.
206
+ variant :"input_audio_buffer.timeout_triggered", -> { OpenAI::Realtime::InputAudioBufferTimeoutTriggered }
207
+
208
+ # Returned when an input audio transcription segment is identified for an item.
209
+ variant :"conversation.item.input_audio_transcription.segment",
210
+ -> { OpenAI::Realtime::ConversationItemInputAudioTranscriptionSegment }
211
+
212
+ # Returned when listing MCP tools is in progress for an item.
213
+ variant :"mcp_list_tools.in_progress", -> { OpenAI::Realtime::McpListToolsInProgress }
214
+
215
+ # Returned when listing MCP tools has completed for an item.
216
+ variant :"mcp_list_tools.completed", -> { OpenAI::Realtime::McpListToolsCompleted }
217
+
218
+ # Returned when listing MCP tools has failed for an item.
219
+ variant :"mcp_list_tools.failed", -> { OpenAI::Realtime::McpListToolsFailed }
220
+
221
+ # Returned when MCP tool call arguments are updated during response generation.
222
+ variant :"response.mcp_call_arguments.delta", -> { OpenAI::Realtime::ResponseMcpCallArgumentsDelta }
223
+
224
+ # Returned when MCP tool call arguments are finalized during response generation.
225
+ variant :"response.mcp_call_arguments.done", -> { OpenAI::Realtime::ResponseMcpCallArgumentsDone }
226
+
227
+ # Returned when an MCP tool call has started and is in progress.
228
+ variant :"response.mcp_call.in_progress", -> { OpenAI::Realtime::ResponseMcpCallInProgress }
229
+
230
+ # Returned when an MCP tool call has completed successfully.
231
+ variant :"response.mcp_call.completed", -> { OpenAI::Realtime::ResponseMcpCallCompleted }
232
+
233
+ # Returned when an MCP tool call has failed.
234
+ variant :"response.mcp_call.failed", -> { OpenAI::Realtime::ResponseMcpCallFailed }
235
+
236
+ class ConversationItemRetrieved < OpenAI::Internal::Type::BaseModel
237
+ # @!attribute event_id
238
+ # The unique ID of the server event.
239
+ #
240
+ # @return [String]
241
+ required :event_id, String
242
+
243
+ # @!attribute item
244
+ # A single item within a Realtime conversation.
245
+ #
246
+ # @return [OpenAI::Models::Realtime::RealtimeConversationItemSystemMessage, OpenAI::Models::Realtime::RealtimeConversationItemUserMessage, OpenAI::Models::Realtime::RealtimeConversationItemAssistantMessage, OpenAI::Models::Realtime::RealtimeConversationItemFunctionCall, OpenAI::Models::Realtime::RealtimeConversationItemFunctionCallOutput, OpenAI::Models::Realtime::RealtimeMcpApprovalResponse, OpenAI::Models::Realtime::RealtimeMcpListTools, OpenAI::Models::Realtime::RealtimeMcpToolCall, OpenAI::Models::Realtime::RealtimeMcpApprovalRequest]
247
+ required :item, union: -> { OpenAI::Realtime::ConversationItem }
248
+
249
+ # @!attribute type
250
+ # The event type, must be `conversation.item.retrieved`.
251
+ #
252
+ # @return [Symbol, :"conversation.item.retrieved"]
253
+ required :type, const: :"conversation.item.retrieved"
254
+
255
+ # @!method initialize(event_id:, item:, type: :"conversation.item.retrieved")
256
+ # Returned when a conversation item is retrieved with
257
+ # `conversation.item.retrieve`.
258
+ #
259
+ # @param event_id [String] The unique ID of the server event.
260
+ #
261
+ # @param item [OpenAI::Models::Realtime::RealtimeConversationItemSystemMessage, OpenAI::Models::Realtime::RealtimeConversationItemUserMessage, OpenAI::Models::Realtime::RealtimeConversationItemAssistantMessage, OpenAI::Models::Realtime::RealtimeConversationItemFunctionCall, OpenAI::Models::Realtime::RealtimeConversationItemFunctionCallOutput, OpenAI::Models::Realtime::RealtimeMcpApprovalResponse, OpenAI::Models::Realtime::RealtimeMcpListTools, OpenAI::Models::Realtime::RealtimeMcpToolCall, OpenAI::Models::Realtime::RealtimeMcpApprovalRequest] A single item within a Realtime conversation.
262
+ #
263
+ # @param type [Symbol, :"conversation.item.retrieved"] The event type, must be `conversation.item.retrieved`.
264
+ end
265
+
266
+ class OutputAudioBufferStarted < OpenAI::Internal::Type::BaseModel
267
+ # @!attribute event_id
268
+ # The unique ID of the server event.
269
+ #
270
+ # @return [String]
271
+ required :event_id, String
272
+
273
+ # @!attribute response_id
274
+ # The unique ID of the response that produced the audio.
275
+ #
276
+ # @return [String]
277
+ required :response_id, String
278
+
279
+ # @!attribute type
280
+ # The event type, must be `output_audio_buffer.started`.
281
+ #
282
+ # @return [Symbol, :"output_audio_buffer.started"]
283
+ required :type, const: :"output_audio_buffer.started"
284
+
285
+ # @!method initialize(event_id:, response_id:, type: :"output_audio_buffer.started")
286
+ # **WebRTC Only:** Emitted when the server begins streaming audio to the client.
287
+ # This event is emitted after an audio content part has been added
288
+ # (`response.content_part.added`) to the response.
289
+ # [Learn more](https://platform.openai.com/docs/guides/realtime-conversations#client-and-server-events-for-audio-in-webrtc).
290
+ #
291
+ # @param event_id [String] The unique ID of the server event.
292
+ #
293
+ # @param response_id [String] The unique ID of the response that produced the audio.
294
+ #
295
+ # @param type [Symbol, :"output_audio_buffer.started"] The event type, must be `output_audio_buffer.started`.
296
+ end
297
+
298
+ class OutputAudioBufferStopped < OpenAI::Internal::Type::BaseModel
299
+ # @!attribute event_id
300
+ # The unique ID of the server event.
301
+ #
302
+ # @return [String]
303
+ required :event_id, String
304
+
305
+ # @!attribute response_id
306
+ # The unique ID of the response that produced the audio.
307
+ #
308
+ # @return [String]
309
+ required :response_id, String
310
+
311
+ # @!attribute type
312
+ # The event type, must be `output_audio_buffer.stopped`.
313
+ #
314
+ # @return [Symbol, :"output_audio_buffer.stopped"]
315
+ required :type, const: :"output_audio_buffer.stopped"
316
+
317
+ # @!method initialize(event_id:, response_id:, type: :"output_audio_buffer.stopped")
318
+ # **WebRTC Only:** Emitted when the output audio buffer has been completely
319
+ # drained on the server, and no more audio is forthcoming. This event is emitted
320
+ # after the full response data has been sent to the client (`response.done`).
321
+ # [Learn more](https://platform.openai.com/docs/guides/realtime-conversations#client-and-server-events-for-audio-in-webrtc).
322
+ #
323
+ # @param event_id [String] The unique ID of the server event.
324
+ #
325
+ # @param response_id [String] The unique ID of the response that produced the audio.
326
+ #
327
+ # @param type [Symbol, :"output_audio_buffer.stopped"] The event type, must be `output_audio_buffer.stopped`.
328
+ end
329
+
330
+ class OutputAudioBufferCleared < OpenAI::Internal::Type::BaseModel
331
+ # @!attribute event_id
332
+ # The unique ID of the server event.
333
+ #
334
+ # @return [String]
335
+ required :event_id, String
336
+
337
+ # @!attribute response_id
338
+ # The unique ID of the response that produced the audio.
339
+ #
340
+ # @return [String]
341
+ required :response_id, String
342
+
343
+ # @!attribute type
344
+ # The event type, must be `output_audio_buffer.cleared`.
345
+ #
346
+ # @return [Symbol, :"output_audio_buffer.cleared"]
347
+ required :type, const: :"output_audio_buffer.cleared"
348
+
349
+ # @!method initialize(event_id:, response_id:, type: :"output_audio_buffer.cleared")
350
+ # **WebRTC Only:** Emitted when the output audio buffer is cleared. This happens
351
+ # either in VAD mode when the user has interrupted
352
+ # (`input_audio_buffer.speech_started`), or when the client has emitted the
353
+ # `output_audio_buffer.clear` event to manually cut off the current audio
354
+ # response.
355
+ # [Learn more](https://platform.openai.com/docs/guides/realtime-conversations#client-and-server-events-for-audio-in-webrtc).
356
+ #
357
+ # @param event_id [String] The unique ID of the server event.
358
+ #
359
+ # @param response_id [String] The unique ID of the response that produced the audio.
360
+ #
361
+ # @param type [Symbol, :"output_audio_buffer.cleared"] The event type, must be `output_audio_buffer.cleared`.
362
+ end
363
+
364
+ # @!method self.variants
365
+ # @return [Array(OpenAI::Models::Realtime::ConversationCreatedEvent, OpenAI::Models::Realtime::ConversationItemCreatedEvent, OpenAI::Models::Realtime::ConversationItemDeletedEvent, OpenAI::Models::Realtime::ConversationItemInputAudioTranscriptionCompletedEvent, OpenAI::Models::Realtime::ConversationItemInputAudioTranscriptionDeltaEvent, OpenAI::Models::Realtime::ConversationItemInputAudioTranscriptionFailedEvent, OpenAI::Models::Realtime::RealtimeServerEvent::ConversationItemRetrieved, OpenAI::Models::Realtime::ConversationItemTruncatedEvent, OpenAI::Models::Realtime::RealtimeErrorEvent, OpenAI::Models::Realtime::InputAudioBufferClearedEvent, OpenAI::Models::Realtime::InputAudioBufferCommittedEvent, OpenAI::Models::Realtime::InputAudioBufferSpeechStartedEvent, OpenAI::Models::Realtime::InputAudioBufferSpeechStoppedEvent, OpenAI::Models::Realtime::RateLimitsUpdatedEvent, OpenAI::Models::Realtime::ResponseAudioDeltaEvent, OpenAI::Models::Realtime::ResponseAudioDoneEvent, OpenAI::Models::Realtime::ResponseAudioTranscriptDeltaEvent, OpenAI::Models::Realtime::ResponseAudioTranscriptDoneEvent, OpenAI::Models::Realtime::ResponseContentPartAddedEvent, OpenAI::Models::Realtime::ResponseContentPartDoneEvent, OpenAI::Models::Realtime::ResponseCreatedEvent, OpenAI::Models::Realtime::ResponseDoneEvent, OpenAI::Models::Realtime::ResponseFunctionCallArgumentsDeltaEvent, OpenAI::Models::Realtime::ResponseFunctionCallArgumentsDoneEvent, OpenAI::Models::Realtime::ResponseOutputItemAddedEvent, OpenAI::Models::Realtime::ResponseOutputItemDoneEvent, OpenAI::Models::Realtime::ResponseTextDeltaEvent, OpenAI::Models::Realtime::ResponseTextDoneEvent, OpenAI::Models::Realtime::SessionCreatedEvent, OpenAI::Models::Realtime::SessionUpdatedEvent, OpenAI::Models::Realtime::TranscriptionSessionUpdatedEvent, OpenAI::Models::Realtime::TranscriptionSessionCreated, OpenAI::Models::Realtime::RealtimeServerEvent::OutputAudioBufferStarted, OpenAI::Models::Realtime::RealtimeServerEvent::OutputAudioBufferStopped, OpenAI::Models::Realtime::RealtimeServerEvent::OutputAudioBufferCleared, OpenAI::Models::Realtime::ConversationItemAdded, OpenAI::Models::Realtime::ConversationItemDone, OpenAI::Models::Realtime::InputAudioBufferTimeoutTriggered, OpenAI::Models::Realtime::ConversationItemInputAudioTranscriptionSegment, OpenAI::Models::Realtime::McpListToolsInProgress, OpenAI::Models::Realtime::McpListToolsCompleted, OpenAI::Models::Realtime::McpListToolsFailed, OpenAI::Models::Realtime::ResponseMcpCallArgumentsDelta, OpenAI::Models::Realtime::ResponseMcpCallArgumentsDone, OpenAI::Models::Realtime::ResponseMcpCallInProgress, OpenAI::Models::Realtime::ResponseMcpCallCompleted, OpenAI::Models::Realtime::ResponseMcpCallFailed)]
366
+ end
367
+ end
368
+ end
369
+ end