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,549 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class ConversationItemWithReference < OpenAI::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ OpenAI::Realtime::ConversationItemWithReference,
11
+ OpenAI::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # For an item of type (`message` | `function_call` | `function_call_output`) this
16
+ # field allows the client to assign the unique ID of the item. It is not required
17
+ # because the server will generate one if not provided.
18
+ #
19
+ # For an item of type `item_reference`, this field is required and is a reference
20
+ # to any item that has previously existed in the conversation.
21
+ sig { returns(T.nilable(String)) }
22
+ attr_reader :id
23
+
24
+ sig { params(id: String).void }
25
+ attr_writer :id
26
+
27
+ # The arguments of the function call (for `function_call` items).
28
+ sig { returns(T.nilable(String)) }
29
+ attr_reader :arguments
30
+
31
+ sig { params(arguments: String).void }
32
+ attr_writer :arguments
33
+
34
+ # The ID of the function call (for `function_call` and `function_call_output`
35
+ # items). If passed on a `function_call_output` item, the server will check that a
36
+ # `function_call` item with the same ID exists in the conversation history.
37
+ sig { returns(T.nilable(String)) }
38
+ attr_reader :call_id
39
+
40
+ sig { params(call_id: String).void }
41
+ attr_writer :call_id
42
+
43
+ # The content of the message, applicable for `message` items.
44
+ #
45
+ # - Message items of role `system` support only `input_text` content
46
+ # - Message items of role `user` support `input_text` and `input_audio` content
47
+ # - Message items of role `assistant` support `text` content.
48
+ sig do
49
+ returns(
50
+ T.nilable(
51
+ T::Array[OpenAI::Realtime::ConversationItemWithReference::Content]
52
+ )
53
+ )
54
+ end
55
+ attr_reader :content
56
+
57
+ sig do
58
+ params(
59
+ content:
60
+ T::Array[
61
+ OpenAI::Realtime::ConversationItemWithReference::Content::OrHash
62
+ ]
63
+ ).void
64
+ end
65
+ attr_writer :content
66
+
67
+ # The name of the function being called (for `function_call` items).
68
+ sig { returns(T.nilable(String)) }
69
+ attr_reader :name
70
+
71
+ sig { params(name: String).void }
72
+ attr_writer :name
73
+
74
+ # Identifier for the API object being returned - always `realtime.item`.
75
+ sig do
76
+ returns(
77
+ T.nilable(
78
+ OpenAI::Realtime::ConversationItemWithReference::Object::OrSymbol
79
+ )
80
+ )
81
+ end
82
+ attr_reader :object
83
+
84
+ sig do
85
+ params(
86
+ object:
87
+ OpenAI::Realtime::ConversationItemWithReference::Object::OrSymbol
88
+ ).void
89
+ end
90
+ attr_writer :object
91
+
92
+ # The output of the function call (for `function_call_output` items).
93
+ sig { returns(T.nilable(String)) }
94
+ attr_reader :output
95
+
96
+ sig { params(output: String).void }
97
+ attr_writer :output
98
+
99
+ # The role of the message sender (`user`, `assistant`, `system`), only applicable
100
+ # for `message` items.
101
+ sig do
102
+ returns(
103
+ T.nilable(
104
+ OpenAI::Realtime::ConversationItemWithReference::Role::OrSymbol
105
+ )
106
+ )
107
+ end
108
+ attr_reader :role
109
+
110
+ sig do
111
+ params(
112
+ role:
113
+ OpenAI::Realtime::ConversationItemWithReference::Role::OrSymbol
114
+ ).void
115
+ end
116
+ attr_writer :role
117
+
118
+ # The status of the item (`completed`, `incomplete`, `in_progress`). These have no
119
+ # effect on the conversation, but are accepted for consistency with the
120
+ # `conversation.item.created` event.
121
+ sig do
122
+ returns(
123
+ T.nilable(
124
+ OpenAI::Realtime::ConversationItemWithReference::Status::OrSymbol
125
+ )
126
+ )
127
+ end
128
+ attr_reader :status
129
+
130
+ sig do
131
+ params(
132
+ status:
133
+ OpenAI::Realtime::ConversationItemWithReference::Status::OrSymbol
134
+ ).void
135
+ end
136
+ attr_writer :status
137
+
138
+ # The type of the item (`message`, `function_call`, `function_call_output`,
139
+ # `item_reference`).
140
+ sig do
141
+ returns(
142
+ T.nilable(
143
+ OpenAI::Realtime::ConversationItemWithReference::Type::OrSymbol
144
+ )
145
+ )
146
+ end
147
+ attr_reader :type
148
+
149
+ sig do
150
+ params(
151
+ type:
152
+ OpenAI::Realtime::ConversationItemWithReference::Type::OrSymbol
153
+ ).void
154
+ end
155
+ attr_writer :type
156
+
157
+ # The item to add to the conversation.
158
+ sig do
159
+ params(
160
+ id: String,
161
+ arguments: String,
162
+ call_id: String,
163
+ content:
164
+ T::Array[
165
+ OpenAI::Realtime::ConversationItemWithReference::Content::OrHash
166
+ ],
167
+ name: String,
168
+ object:
169
+ OpenAI::Realtime::ConversationItemWithReference::Object::OrSymbol,
170
+ output: String,
171
+ role:
172
+ OpenAI::Realtime::ConversationItemWithReference::Role::OrSymbol,
173
+ status:
174
+ OpenAI::Realtime::ConversationItemWithReference::Status::OrSymbol,
175
+ type:
176
+ OpenAI::Realtime::ConversationItemWithReference::Type::OrSymbol
177
+ ).returns(T.attached_class)
178
+ end
179
+ def self.new(
180
+ # For an item of type (`message` | `function_call` | `function_call_output`) this
181
+ # field allows the client to assign the unique ID of the item. It is not required
182
+ # because the server will generate one if not provided.
183
+ #
184
+ # For an item of type `item_reference`, this field is required and is a reference
185
+ # to any item that has previously existed in the conversation.
186
+ id: nil,
187
+ # The arguments of the function call (for `function_call` items).
188
+ arguments: nil,
189
+ # The ID of the function call (for `function_call` and `function_call_output`
190
+ # items). If passed on a `function_call_output` item, the server will check that a
191
+ # `function_call` item with the same ID exists in the conversation history.
192
+ call_id: nil,
193
+ # The content of the message, applicable for `message` items.
194
+ #
195
+ # - Message items of role `system` support only `input_text` content
196
+ # - Message items of role `user` support `input_text` and `input_audio` content
197
+ # - Message items of role `assistant` support `text` content.
198
+ content: nil,
199
+ # The name of the function being called (for `function_call` items).
200
+ name: nil,
201
+ # Identifier for the API object being returned - always `realtime.item`.
202
+ object: nil,
203
+ # The output of the function call (for `function_call_output` items).
204
+ output: nil,
205
+ # The role of the message sender (`user`, `assistant`, `system`), only applicable
206
+ # for `message` items.
207
+ role: nil,
208
+ # The status of the item (`completed`, `incomplete`, `in_progress`). These have no
209
+ # effect on the conversation, but are accepted for consistency with the
210
+ # `conversation.item.created` event.
211
+ status: nil,
212
+ # The type of the item (`message`, `function_call`, `function_call_output`,
213
+ # `item_reference`).
214
+ type: nil
215
+ )
216
+ end
217
+
218
+ sig do
219
+ override.returns(
220
+ {
221
+ id: String,
222
+ arguments: String,
223
+ call_id: String,
224
+ content:
225
+ T::Array[
226
+ OpenAI::Realtime::ConversationItemWithReference::Content
227
+ ],
228
+ name: String,
229
+ object:
230
+ OpenAI::Realtime::ConversationItemWithReference::Object::OrSymbol,
231
+ output: String,
232
+ role:
233
+ OpenAI::Realtime::ConversationItemWithReference::Role::OrSymbol,
234
+ status:
235
+ OpenAI::Realtime::ConversationItemWithReference::Status::OrSymbol,
236
+ type:
237
+ OpenAI::Realtime::ConversationItemWithReference::Type::OrSymbol
238
+ }
239
+ )
240
+ end
241
+ def to_hash
242
+ end
243
+
244
+ class Content < OpenAI::Internal::Type::BaseModel
245
+ OrHash =
246
+ T.type_alias do
247
+ T.any(
248
+ OpenAI::Realtime::ConversationItemWithReference::Content,
249
+ OpenAI::Internal::AnyHash
250
+ )
251
+ end
252
+
253
+ # ID of a previous conversation item to reference (for `item_reference` content
254
+ # types in `response.create` events). These can reference both client and server
255
+ # created items.
256
+ sig { returns(T.nilable(String)) }
257
+ attr_reader :id
258
+
259
+ sig { params(id: String).void }
260
+ attr_writer :id
261
+
262
+ # Base64-encoded audio bytes, used for `input_audio` content type.
263
+ sig { returns(T.nilable(String)) }
264
+ attr_reader :audio
265
+
266
+ sig { params(audio: String).void }
267
+ attr_writer :audio
268
+
269
+ # The text content, used for `input_text` and `text` content types.
270
+ sig { returns(T.nilable(String)) }
271
+ attr_reader :text
272
+
273
+ sig { params(text: String).void }
274
+ attr_writer :text
275
+
276
+ # The transcript of the audio, used for `input_audio` content type.
277
+ sig { returns(T.nilable(String)) }
278
+ attr_reader :transcript
279
+
280
+ sig { params(transcript: String).void }
281
+ attr_writer :transcript
282
+
283
+ # The content type (`input_text`, `input_audio`, `item_reference`, `text`).
284
+ sig do
285
+ returns(
286
+ T.nilable(
287
+ OpenAI::Realtime::ConversationItemWithReference::Content::Type::OrSymbol
288
+ )
289
+ )
290
+ end
291
+ attr_reader :type
292
+
293
+ sig do
294
+ params(
295
+ type:
296
+ OpenAI::Realtime::ConversationItemWithReference::Content::Type::OrSymbol
297
+ ).void
298
+ end
299
+ attr_writer :type
300
+
301
+ sig do
302
+ params(
303
+ id: String,
304
+ audio: String,
305
+ text: String,
306
+ transcript: String,
307
+ type:
308
+ OpenAI::Realtime::ConversationItemWithReference::Content::Type::OrSymbol
309
+ ).returns(T.attached_class)
310
+ end
311
+ def self.new(
312
+ # ID of a previous conversation item to reference (for `item_reference` content
313
+ # types in `response.create` events). These can reference both client and server
314
+ # created items.
315
+ id: nil,
316
+ # Base64-encoded audio bytes, used for `input_audio` content type.
317
+ audio: nil,
318
+ # The text content, used for `input_text` and `text` content types.
319
+ text: nil,
320
+ # The transcript of the audio, used for `input_audio` content type.
321
+ transcript: nil,
322
+ # The content type (`input_text`, `input_audio`, `item_reference`, `text`).
323
+ type: nil
324
+ )
325
+ end
326
+
327
+ sig do
328
+ override.returns(
329
+ {
330
+ id: String,
331
+ audio: String,
332
+ text: String,
333
+ transcript: String,
334
+ type:
335
+ OpenAI::Realtime::ConversationItemWithReference::Content::Type::OrSymbol
336
+ }
337
+ )
338
+ end
339
+ def to_hash
340
+ end
341
+
342
+ # The content type (`input_text`, `input_audio`, `item_reference`, `text`).
343
+ module Type
344
+ extend OpenAI::Internal::Type::Enum
345
+
346
+ TaggedSymbol =
347
+ T.type_alias do
348
+ T.all(
349
+ Symbol,
350
+ OpenAI::Realtime::ConversationItemWithReference::Content::Type
351
+ )
352
+ end
353
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
354
+
355
+ INPUT_TEXT =
356
+ T.let(
357
+ :input_text,
358
+ OpenAI::Realtime::ConversationItemWithReference::Content::Type::TaggedSymbol
359
+ )
360
+ INPUT_AUDIO =
361
+ T.let(
362
+ :input_audio,
363
+ OpenAI::Realtime::ConversationItemWithReference::Content::Type::TaggedSymbol
364
+ )
365
+ ITEM_REFERENCE =
366
+ T.let(
367
+ :item_reference,
368
+ OpenAI::Realtime::ConversationItemWithReference::Content::Type::TaggedSymbol
369
+ )
370
+ TEXT =
371
+ T.let(
372
+ :text,
373
+ OpenAI::Realtime::ConversationItemWithReference::Content::Type::TaggedSymbol
374
+ )
375
+
376
+ sig do
377
+ override.returns(
378
+ T::Array[
379
+ OpenAI::Realtime::ConversationItemWithReference::Content::Type::TaggedSymbol
380
+ ]
381
+ )
382
+ end
383
+ def self.values
384
+ end
385
+ end
386
+ end
387
+
388
+ # Identifier for the API object being returned - always `realtime.item`.
389
+ module Object
390
+ extend OpenAI::Internal::Type::Enum
391
+
392
+ TaggedSymbol =
393
+ T.type_alias do
394
+ T.all(
395
+ Symbol,
396
+ OpenAI::Realtime::ConversationItemWithReference::Object
397
+ )
398
+ end
399
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
400
+
401
+ REALTIME_ITEM =
402
+ T.let(
403
+ :"realtime.item",
404
+ OpenAI::Realtime::ConversationItemWithReference::Object::TaggedSymbol
405
+ )
406
+
407
+ sig do
408
+ override.returns(
409
+ T::Array[
410
+ OpenAI::Realtime::ConversationItemWithReference::Object::TaggedSymbol
411
+ ]
412
+ )
413
+ end
414
+ def self.values
415
+ end
416
+ end
417
+
418
+ # The role of the message sender (`user`, `assistant`, `system`), only applicable
419
+ # for `message` items.
420
+ module Role
421
+ extend OpenAI::Internal::Type::Enum
422
+
423
+ TaggedSymbol =
424
+ T.type_alias do
425
+ T.all(
426
+ Symbol,
427
+ OpenAI::Realtime::ConversationItemWithReference::Role
428
+ )
429
+ end
430
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
431
+
432
+ USER =
433
+ T.let(
434
+ :user,
435
+ OpenAI::Realtime::ConversationItemWithReference::Role::TaggedSymbol
436
+ )
437
+ ASSISTANT =
438
+ T.let(
439
+ :assistant,
440
+ OpenAI::Realtime::ConversationItemWithReference::Role::TaggedSymbol
441
+ )
442
+ SYSTEM =
443
+ T.let(
444
+ :system,
445
+ OpenAI::Realtime::ConversationItemWithReference::Role::TaggedSymbol
446
+ )
447
+
448
+ sig do
449
+ override.returns(
450
+ T::Array[
451
+ OpenAI::Realtime::ConversationItemWithReference::Role::TaggedSymbol
452
+ ]
453
+ )
454
+ end
455
+ def self.values
456
+ end
457
+ end
458
+
459
+ # The status of the item (`completed`, `incomplete`, `in_progress`). These have no
460
+ # effect on the conversation, but are accepted for consistency with the
461
+ # `conversation.item.created` event.
462
+ module Status
463
+ extend OpenAI::Internal::Type::Enum
464
+
465
+ TaggedSymbol =
466
+ T.type_alias do
467
+ T.all(
468
+ Symbol,
469
+ OpenAI::Realtime::ConversationItemWithReference::Status
470
+ )
471
+ end
472
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
473
+
474
+ COMPLETED =
475
+ T.let(
476
+ :completed,
477
+ OpenAI::Realtime::ConversationItemWithReference::Status::TaggedSymbol
478
+ )
479
+ INCOMPLETE =
480
+ T.let(
481
+ :incomplete,
482
+ OpenAI::Realtime::ConversationItemWithReference::Status::TaggedSymbol
483
+ )
484
+ IN_PROGRESS =
485
+ T.let(
486
+ :in_progress,
487
+ OpenAI::Realtime::ConversationItemWithReference::Status::TaggedSymbol
488
+ )
489
+
490
+ sig do
491
+ override.returns(
492
+ T::Array[
493
+ OpenAI::Realtime::ConversationItemWithReference::Status::TaggedSymbol
494
+ ]
495
+ )
496
+ end
497
+ def self.values
498
+ end
499
+ end
500
+
501
+ # The type of the item (`message`, `function_call`, `function_call_output`,
502
+ # `item_reference`).
503
+ module Type
504
+ extend OpenAI::Internal::Type::Enum
505
+
506
+ TaggedSymbol =
507
+ T.type_alias do
508
+ T.all(
509
+ Symbol,
510
+ OpenAI::Realtime::ConversationItemWithReference::Type
511
+ )
512
+ end
513
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
514
+
515
+ MESSAGE =
516
+ T.let(
517
+ :message,
518
+ OpenAI::Realtime::ConversationItemWithReference::Type::TaggedSymbol
519
+ )
520
+ FUNCTION_CALL =
521
+ T.let(
522
+ :function_call,
523
+ OpenAI::Realtime::ConversationItemWithReference::Type::TaggedSymbol
524
+ )
525
+ FUNCTION_CALL_OUTPUT =
526
+ T.let(
527
+ :function_call_output,
528
+ OpenAI::Realtime::ConversationItemWithReference::Type::TaggedSymbol
529
+ )
530
+ ITEM_REFERENCE =
531
+ T.let(
532
+ :item_reference,
533
+ OpenAI::Realtime::ConversationItemWithReference::Type::TaggedSymbol
534
+ )
535
+
536
+ sig do
537
+ override.returns(
538
+ T::Array[
539
+ OpenAI::Realtime::ConversationItemWithReference::Type::TaggedSymbol
540
+ ]
541
+ )
542
+ end
543
+ def self.values
544
+ end
545
+ end
546
+ end
547
+ end
548
+ end
549
+ end
@@ -0,0 +1,65 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class InputAudioBufferAppendEvent < OpenAI::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ OpenAI::Realtime::InputAudioBufferAppendEvent,
11
+ OpenAI::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # Base64-encoded audio bytes. This must be in the format specified by the
16
+ # `input_audio_format` field in the session configuration.
17
+ sig { returns(String) }
18
+ attr_accessor :audio
19
+
20
+ # The event type, must be `input_audio_buffer.append`.
21
+ sig { returns(Symbol) }
22
+ attr_accessor :type
23
+
24
+ # Optional client-generated ID used to identify this event.
25
+ sig { returns(T.nilable(String)) }
26
+ attr_reader :event_id
27
+
28
+ sig { params(event_id: String).void }
29
+ attr_writer :event_id
30
+
31
+ # Send this event to append audio bytes to the input audio buffer. The audio
32
+ # buffer is temporary storage you can write to and later commit. In Server VAD
33
+ # mode, the audio buffer is used to detect speech and the server will decide when
34
+ # to commit. When Server VAD is disabled, you must commit the audio buffer
35
+ # manually.
36
+ #
37
+ # The client may choose how much audio to place in each event up to a maximum of
38
+ # 15 MiB, for example streaming smaller chunks from the client may allow the VAD
39
+ # to be more responsive. Unlike made other client events, the server will not send
40
+ # a confirmation response to this event.
41
+ sig do
42
+ params(audio: String, event_id: String, type: Symbol).returns(
43
+ T.attached_class
44
+ )
45
+ end
46
+ def self.new(
47
+ # Base64-encoded audio bytes. This must be in the format specified by the
48
+ # `input_audio_format` field in the session configuration.
49
+ audio:,
50
+ # Optional client-generated ID used to identify this event.
51
+ event_id: nil,
52
+ # The event type, must be `input_audio_buffer.append`.
53
+ type: :"input_audio_buffer.append"
54
+ )
55
+ end
56
+
57
+ sig do
58
+ override.returns({ audio: String, type: Symbol, event_id: String })
59
+ end
60
+ def to_hash
61
+ end
62
+ end
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,43 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class InputAudioBufferClearEvent < OpenAI::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ OpenAI::Realtime::InputAudioBufferClearEvent,
11
+ OpenAI::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # The event type, must be `input_audio_buffer.clear`.
16
+ sig { returns(Symbol) }
17
+ attr_accessor :type
18
+
19
+ # Optional client-generated ID used to identify this event.
20
+ sig { returns(T.nilable(String)) }
21
+ attr_reader :event_id
22
+
23
+ sig { params(event_id: String).void }
24
+ attr_writer :event_id
25
+
26
+ # Send this event to clear the audio bytes in the buffer. The server will respond
27
+ # with an `input_audio_buffer.cleared` event.
28
+ sig { params(event_id: String, type: Symbol).returns(T.attached_class) }
29
+ def self.new(
30
+ # Optional client-generated ID used to identify this event.
31
+ event_id: nil,
32
+ # The event type, must be `input_audio_buffer.clear`.
33
+ type: :"input_audio_buffer.clear"
34
+ )
35
+ end
36
+
37
+ sig { override.returns({ type: Symbol, event_id: String }) }
38
+ def to_hash
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,40 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class InputAudioBufferClearedEvent < OpenAI::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ OpenAI::Realtime::InputAudioBufferClearedEvent,
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
+ # The event type, must be `input_audio_buffer.cleared`.
20
+ sig { returns(Symbol) }
21
+ attr_accessor :type
22
+
23
+ # Returned when the input audio buffer is cleared by the client with a
24
+ # `input_audio_buffer.clear` event.
25
+ sig { params(event_id: String, type: Symbol).returns(T.attached_class) }
26
+ def self.new(
27
+ # The unique ID of the server event.
28
+ event_id:,
29
+ # The event type, must be `input_audio_buffer.cleared`.
30
+ type: :"input_audio_buffer.cleared"
31
+ )
32
+ end
33
+
34
+ sig { override.returns({ event_id: String, type: Symbol }) }
35
+ def to_hash
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end