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,52 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class RealtimeMcpApprovalRequest < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute id
8
+ # The unique ID of the approval request.
9
+ #
10
+ # @return [String]
11
+ required :id, String
12
+
13
+ # @!attribute arguments
14
+ # A JSON string of arguments for the tool.
15
+ #
16
+ # @return [String]
17
+ required :arguments, String
18
+
19
+ # @!attribute name
20
+ # The name of the tool to run.
21
+ #
22
+ # @return [String]
23
+ required :name, String
24
+
25
+ # @!attribute server_label
26
+ # The label of the MCP server making the request.
27
+ #
28
+ # @return [String]
29
+ required :server_label, String
30
+
31
+ # @!attribute type
32
+ # The type of the item. Always `mcp_approval_request`.
33
+ #
34
+ # @return [Symbol, :mcp_approval_request]
35
+ required :type, const: :mcp_approval_request
36
+
37
+ # @!method initialize(id:, arguments:, name:, server_label:, type: :mcp_approval_request)
38
+ # A Realtime item requesting human approval of a tool invocation.
39
+ #
40
+ # @param id [String] The unique ID of the approval request.
41
+ #
42
+ # @param arguments [String] A JSON string of arguments for the tool.
43
+ #
44
+ # @param name [String] The name of the tool to run.
45
+ #
46
+ # @param server_label [String] The label of the MCP server making the request.
47
+ #
48
+ # @param type [Symbol, :mcp_approval_request] The type of the item. Always `mcp_approval_request`.
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,52 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class RealtimeMcpApprovalResponse < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute id
8
+ # The unique ID of the approval response.
9
+ #
10
+ # @return [String]
11
+ required :id, String
12
+
13
+ # @!attribute approval_request_id
14
+ # The ID of the approval request being answered.
15
+ #
16
+ # @return [String]
17
+ required :approval_request_id, String
18
+
19
+ # @!attribute approve
20
+ # Whether the request was approved.
21
+ #
22
+ # @return [Boolean]
23
+ required :approve, OpenAI::Internal::Type::Boolean
24
+
25
+ # @!attribute type
26
+ # The type of the item. Always `mcp_approval_response`.
27
+ #
28
+ # @return [Symbol, :mcp_approval_response]
29
+ required :type, const: :mcp_approval_response
30
+
31
+ # @!attribute reason
32
+ # Optional reason for the decision.
33
+ #
34
+ # @return [String, nil]
35
+ optional :reason, String, nil?: true
36
+
37
+ # @!method initialize(id:, approval_request_id:, approve:, reason: nil, type: :mcp_approval_response)
38
+ # A Realtime item responding to an MCP approval request.
39
+ #
40
+ # @param id [String] The unique ID of the approval response.
41
+ #
42
+ # @param approval_request_id [String] The ID of the approval request being answered.
43
+ #
44
+ # @param approve [Boolean] Whether the request was approved.
45
+ #
46
+ # @param reason [String, nil] Optional reason for the decision.
47
+ #
48
+ # @param type [Symbol, :mcp_approval_response] The type of the item. Always `mcp_approval_response`.
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,84 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class RealtimeMcpListTools < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute server_label
8
+ # The label of the MCP server.
9
+ #
10
+ # @return [String]
11
+ required :server_label, String
12
+
13
+ # @!attribute tools
14
+ # The tools available on the server.
15
+ #
16
+ # @return [Array<OpenAI::Models::Realtime::RealtimeMcpListTools::Tool>]
17
+ required :tools, -> { OpenAI::Internal::Type::ArrayOf[OpenAI::Realtime::RealtimeMcpListTools::Tool] }
18
+
19
+ # @!attribute type
20
+ # The type of the item. Always `mcp_list_tools`.
21
+ #
22
+ # @return [Symbol, :mcp_list_tools]
23
+ required :type, const: :mcp_list_tools
24
+
25
+ # @!attribute id
26
+ # The unique ID of the list.
27
+ #
28
+ # @return [String, nil]
29
+ optional :id, String
30
+
31
+ # @!method initialize(server_label:, tools:, id: nil, type: :mcp_list_tools)
32
+ # A Realtime item listing tools available on an MCP server.
33
+ #
34
+ # @param server_label [String] The label of the MCP server.
35
+ #
36
+ # @param tools [Array<OpenAI::Models::Realtime::RealtimeMcpListTools::Tool>] The tools available on the server.
37
+ #
38
+ # @param id [String] The unique ID of the list.
39
+ #
40
+ # @param type [Symbol, :mcp_list_tools] The type of the item. Always `mcp_list_tools`.
41
+
42
+ class Tool < OpenAI::Internal::Type::BaseModel
43
+ # @!attribute input_schema
44
+ # The JSON schema describing the tool's input.
45
+ #
46
+ # @return [Object]
47
+ required :input_schema, OpenAI::Internal::Type::Unknown
48
+
49
+ # @!attribute name
50
+ # The name of the tool.
51
+ #
52
+ # @return [String]
53
+ required :name, String
54
+
55
+ # @!attribute annotations
56
+ # Additional annotations about the tool.
57
+ #
58
+ # @return [Object, nil]
59
+ optional :annotations, OpenAI::Internal::Type::Unknown, nil?: true
60
+
61
+ # @!attribute description
62
+ # The description of the tool.
63
+ #
64
+ # @return [String, nil]
65
+ optional :description, String, nil?: true
66
+
67
+ # @!method initialize(input_schema:, name:, annotations: nil, description: nil)
68
+ # Some parameter documentations has been truncated, see
69
+ # {OpenAI::Models::Realtime::RealtimeMcpListTools::Tool} for more details.
70
+ #
71
+ # A tool available on an MCP server.
72
+ #
73
+ # @param input_schema [Object] The JSON schema describing the tool's input.
74
+ #
75
+ # @param name [String] The name of the tool.
76
+ #
77
+ # @param annotations [Object, nil] Additional annotations about the tool.
78
+ #
79
+ # @param description [String, nil] The description of the tool.
80
+ end
81
+ end
82
+ end
83
+ end
84
+ end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class RealtimeMcpProtocolError < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute code
8
+ #
9
+ # @return [Integer]
10
+ required :code, Integer
11
+
12
+ # @!attribute message
13
+ #
14
+ # @return [String]
15
+ required :message, String
16
+
17
+ # @!attribute type
18
+ #
19
+ # @return [Symbol, :protocol_error]
20
+ required :type, const: :protocol_error
21
+
22
+ # @!method initialize(code:, message:, type: :protocol_error)
23
+ # @param code [Integer]
24
+ # @param message [String]
25
+ # @param type [Symbol, :protocol_error]
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,94 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class RealtimeMcpToolCall < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute id
8
+ # The unique ID of the tool call.
9
+ #
10
+ # @return [String]
11
+ required :id, String
12
+
13
+ # @!attribute arguments
14
+ # A JSON string of the arguments passed to the tool.
15
+ #
16
+ # @return [String]
17
+ required :arguments, String
18
+
19
+ # @!attribute name
20
+ # The name of the tool that was run.
21
+ #
22
+ # @return [String]
23
+ required :name, String
24
+
25
+ # @!attribute server_label
26
+ # The label of the MCP server running the tool.
27
+ #
28
+ # @return [String]
29
+ required :server_label, String
30
+
31
+ # @!attribute type
32
+ # The type of the item. Always `mcp_tool_call`.
33
+ #
34
+ # @return [Symbol, :mcp_tool_call]
35
+ required :type, const: :mcp_tool_call
36
+
37
+ # @!attribute approval_request_id
38
+ # The ID of an associated approval request, if any.
39
+ #
40
+ # @return [String, nil]
41
+ optional :approval_request_id, String, nil?: true
42
+
43
+ # @!attribute error
44
+ # The error from the tool call, if any.
45
+ #
46
+ # @return [OpenAI::Models::Realtime::RealtimeMcpProtocolError, OpenAI::Models::Realtime::RealtimeMcpToolExecutionError, OpenAI::Models::Realtime::RealtimeMcphttpError, nil]
47
+ optional :error, union: -> { OpenAI::Realtime::RealtimeMcpToolCall::Error }, nil?: true
48
+
49
+ # @!attribute output
50
+ # The output from the tool call.
51
+ #
52
+ # @return [String, nil]
53
+ optional :output, String, nil?: true
54
+
55
+ # @!method initialize(id:, arguments:, name:, server_label:, approval_request_id: nil, error: nil, output: nil, type: :mcp_tool_call)
56
+ # A Realtime item representing an invocation of a tool on an MCP server.
57
+ #
58
+ # @param id [String] The unique ID of the tool call.
59
+ #
60
+ # @param arguments [String] A JSON string of the arguments passed to the tool.
61
+ #
62
+ # @param name [String] The name of the tool that was run.
63
+ #
64
+ # @param server_label [String] The label of the MCP server running the tool.
65
+ #
66
+ # @param approval_request_id [String, nil] The ID of an associated approval request, if any.
67
+ #
68
+ # @param error [OpenAI::Models::Realtime::RealtimeMcpProtocolError, OpenAI::Models::Realtime::RealtimeMcpToolExecutionError, OpenAI::Models::Realtime::RealtimeMcphttpError, nil] The error from the tool call, if any.
69
+ #
70
+ # @param output [String, nil] The output from the tool call.
71
+ #
72
+ # @param type [Symbol, :mcp_tool_call] The type of the item. Always `mcp_tool_call`.
73
+
74
+ # The error from the tool call, if any.
75
+ #
76
+ # @see OpenAI::Models::Realtime::RealtimeMcpToolCall#error
77
+ module Error
78
+ extend OpenAI::Internal::Type::Union
79
+
80
+ discriminator :type
81
+
82
+ variant :protocol_error, -> { OpenAI::Realtime::RealtimeMcpProtocolError }
83
+
84
+ variant :tool_execution_error, -> { OpenAI::Realtime::RealtimeMcpToolExecutionError }
85
+
86
+ variant :http_error, -> { OpenAI::Realtime::RealtimeMcphttpError }
87
+
88
+ # @!method self.variants
89
+ # @return [Array(OpenAI::Models::Realtime::RealtimeMcpProtocolError, OpenAI::Models::Realtime::RealtimeMcpToolExecutionError, OpenAI::Models::Realtime::RealtimeMcphttpError)]
90
+ end
91
+ end
92
+ end
93
+ end
94
+ end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class RealtimeMcpToolExecutionError < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute message
8
+ #
9
+ # @return [String]
10
+ required :message, String
11
+
12
+ # @!attribute type
13
+ #
14
+ # @return [Symbol, :tool_execution_error]
15
+ required :type, const: :tool_execution_error
16
+
17
+ # @!method initialize(message:, type: :tool_execution_error)
18
+ # @param message [String]
19
+ # @param type [Symbol, :tool_execution_error]
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class RealtimeMcphttpError < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute code
8
+ #
9
+ # @return [Integer]
10
+ required :code, Integer
11
+
12
+ # @!attribute message
13
+ #
14
+ # @return [String]
15
+ required :message, String
16
+
17
+ # @!attribute type
18
+ #
19
+ # @return [Symbol, :http_error]
20
+ required :type, const: :http_error
21
+
22
+ # @!method initialize(code:, message:, type: :http_error)
23
+ # @param code [Integer]
24
+ # @param message [String]
25
+ # @param type [Symbol, :http_error]
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,259 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class RealtimeResponse < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute id
8
+ # The unique ID of the response.
9
+ #
10
+ # @return [String, nil]
11
+ optional :id, String
12
+
13
+ # @!attribute conversation_id
14
+ # Which conversation the response is added to, determined by the `conversation`
15
+ # field in the `response.create` event. If `auto`, the response will be added to
16
+ # the default conversation and the value of `conversation_id` will be an id like
17
+ # `conv_1234`. If `none`, the response will not be added to any conversation and
18
+ # the value of `conversation_id` will be `null`. If responses are being triggered
19
+ # by server VAD, the response will be added to the default conversation, thus the
20
+ # `conversation_id` will be an id like `conv_1234`.
21
+ #
22
+ # @return [String, nil]
23
+ optional :conversation_id, String
24
+
25
+ # @!attribute max_output_tokens
26
+ # Maximum number of output tokens for a single assistant response, inclusive of
27
+ # tool calls, that was used in this response.
28
+ #
29
+ # @return [Integer, Symbol, :inf, nil]
30
+ optional :max_output_tokens, union: -> { OpenAI::Realtime::RealtimeResponse::MaxOutputTokens }
31
+
32
+ # @!attribute metadata
33
+ # Set of 16 key-value pairs that can be attached to an object. This can be useful
34
+ # for storing additional information about the object in a structured format, and
35
+ # querying for objects via API or the dashboard.
36
+ #
37
+ # Keys are strings with a maximum length of 64 characters. Values are strings with
38
+ # a maximum length of 512 characters.
39
+ #
40
+ # @return [Hash{Symbol=>String}, nil]
41
+ optional :metadata, OpenAI::Internal::Type::HashOf[String], nil?: true
42
+
43
+ # @!attribute modalities
44
+ # The set of modalities the model used to respond. If there are multiple
45
+ # modalities, the model will pick one, for example if `modalities` is
46
+ # `["text", "audio"]`, the model could be responding in either text or audio.
47
+ #
48
+ # @return [Array<Symbol, OpenAI::Models::Realtime::RealtimeResponse::Modality>, nil]
49
+ optional :modalities,
50
+ -> { OpenAI::Internal::Type::ArrayOf[enum: OpenAI::Realtime::RealtimeResponse::Modality] }
51
+
52
+ # @!attribute object
53
+ # The object type, must be `realtime.response`.
54
+ #
55
+ # @return [Symbol, OpenAI::Models::Realtime::RealtimeResponse::Object, nil]
56
+ optional :object, enum: -> { OpenAI::Realtime::RealtimeResponse::Object }
57
+
58
+ # @!attribute output
59
+ # The list of output items generated by the response.
60
+ #
61
+ # @return [Array<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>, nil]
62
+ optional :output, -> { OpenAI::Internal::Type::ArrayOf[union: OpenAI::Realtime::ConversationItem] }
63
+
64
+ # @!attribute output_audio_format
65
+ # The format of output audio. Options are `pcm16`, `g711_ulaw`, or `g711_alaw`.
66
+ #
67
+ # @return [Symbol, OpenAI::Models::Realtime::RealtimeResponse::OutputAudioFormat, nil]
68
+ optional :output_audio_format, enum: -> { OpenAI::Realtime::RealtimeResponse::OutputAudioFormat }
69
+
70
+ # @!attribute status
71
+ # The final status of the response (`completed`, `cancelled`, `failed`, or
72
+ # `incomplete`, `in_progress`).
73
+ #
74
+ # @return [Symbol, OpenAI::Models::Realtime::RealtimeResponse::Status, nil]
75
+ optional :status, enum: -> { OpenAI::Realtime::RealtimeResponse::Status }
76
+
77
+ # @!attribute status_details
78
+ # Additional details about the status.
79
+ #
80
+ # @return [OpenAI::Models::Realtime::RealtimeResponseStatus, nil]
81
+ optional :status_details, -> { OpenAI::Realtime::RealtimeResponseStatus }
82
+
83
+ # @!attribute temperature
84
+ # Sampling temperature for the model, limited to [0.6, 1.2]. Defaults to 0.8.
85
+ #
86
+ # @return [Float, nil]
87
+ optional :temperature, Float
88
+
89
+ # @!attribute usage
90
+ # Usage statistics for the Response, this will correspond to billing. A Realtime
91
+ # API session will maintain a conversation context and append new Items to the
92
+ # Conversation, thus output from previous turns (text and audio tokens) will
93
+ # become the input for later turns.
94
+ #
95
+ # @return [OpenAI::Models::Realtime::RealtimeResponseUsage, nil]
96
+ optional :usage, -> { OpenAI::Realtime::RealtimeResponseUsage }
97
+
98
+ # @!attribute voice
99
+ # The voice the model used to respond. Current voice options are `alloy`, `ash`,
100
+ # `ballad`, `coral`, `echo`, `sage`, `shimmer`, and `verse`.
101
+ #
102
+ # @return [String, Symbol, OpenAI::Models::Realtime::RealtimeResponse::Voice, nil]
103
+ optional :voice, union: -> { OpenAI::Realtime::RealtimeResponse::Voice }
104
+
105
+ # @!method initialize(id: nil, conversation_id: nil, max_output_tokens: nil, metadata: nil, modalities: nil, object: nil, output: nil, output_audio_format: nil, status: nil, status_details: nil, temperature: nil, usage: nil, voice: nil)
106
+ # Some parameter documentations has been truncated, see
107
+ # {OpenAI::Models::Realtime::RealtimeResponse} for more details.
108
+ #
109
+ # The response resource.
110
+ #
111
+ # @param id [String] The unique ID of the response.
112
+ #
113
+ # @param conversation_id [String] Which conversation the response is added to, determined by the `conversation`
114
+ #
115
+ # @param max_output_tokens [Integer, Symbol, :inf] Maximum number of output tokens for a single assistant response,
116
+ #
117
+ # @param metadata [Hash{Symbol=>String}, nil] Set of 16 key-value pairs that can be attached to an object. This can be
118
+ #
119
+ # @param modalities [Array<Symbol, OpenAI::Models::Realtime::RealtimeResponse::Modality>] The set of modalities the model used to respond. If there are multiple modalitie
120
+ #
121
+ # @param object [Symbol, OpenAI::Models::Realtime::RealtimeResponse::Object] The object type, must be `realtime.response`.
122
+ #
123
+ # @param output [Array<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>] The list of output items generated by the response.
124
+ #
125
+ # @param output_audio_format [Symbol, OpenAI::Models::Realtime::RealtimeResponse::OutputAudioFormat] The format of output audio. Options are `pcm16`, `g711_ulaw`, or `g711_alaw`.
126
+ #
127
+ # @param status [Symbol, OpenAI::Models::Realtime::RealtimeResponse::Status] The final status of the response (`completed`, `cancelled`, `failed`, or
128
+ #
129
+ # @param status_details [OpenAI::Models::Realtime::RealtimeResponseStatus] Additional details about the status.
130
+ #
131
+ # @param temperature [Float] Sampling temperature for the model, limited to [0.6, 1.2]. Defaults to 0.8.
132
+ #
133
+ # @param usage [OpenAI::Models::Realtime::RealtimeResponseUsage] Usage statistics for the Response, this will correspond to billing. A
134
+ #
135
+ # @param voice [String, Symbol, OpenAI::Models::Realtime::RealtimeResponse::Voice] The voice the model used to respond.
136
+
137
+ # Maximum number of output tokens for a single assistant response, inclusive of
138
+ # tool calls, that was used in this response.
139
+ #
140
+ # @see OpenAI::Models::Realtime::RealtimeResponse#max_output_tokens
141
+ module MaxOutputTokens
142
+ extend OpenAI::Internal::Type::Union
143
+
144
+ variant Integer
145
+
146
+ variant const: :inf
147
+
148
+ # @!method self.variants
149
+ # @return [Array(Integer, Symbol, :inf)]
150
+ end
151
+
152
+ module Modality
153
+ extend OpenAI::Internal::Type::Enum
154
+
155
+ TEXT = :text
156
+ AUDIO = :audio
157
+
158
+ # @!method self.values
159
+ # @return [Array<Symbol>]
160
+ end
161
+
162
+ # The object type, must be `realtime.response`.
163
+ #
164
+ # @see OpenAI::Models::Realtime::RealtimeResponse#object
165
+ module Object
166
+ extend OpenAI::Internal::Type::Enum
167
+
168
+ REALTIME_RESPONSE = :"realtime.response"
169
+
170
+ # @!method self.values
171
+ # @return [Array<Symbol>]
172
+ end
173
+
174
+ # The format of output audio. Options are `pcm16`, `g711_ulaw`, or `g711_alaw`.
175
+ #
176
+ # @see OpenAI::Models::Realtime::RealtimeResponse#output_audio_format
177
+ module OutputAudioFormat
178
+ extend OpenAI::Internal::Type::Enum
179
+
180
+ PCM16 = :pcm16
181
+ G711_ULAW = :g711_ulaw
182
+ G711_ALAW = :g711_alaw
183
+
184
+ # @!method self.values
185
+ # @return [Array<Symbol>]
186
+ end
187
+
188
+ # The final status of the response (`completed`, `cancelled`, `failed`, or
189
+ # `incomplete`, `in_progress`).
190
+ #
191
+ # @see OpenAI::Models::Realtime::RealtimeResponse#status
192
+ module Status
193
+ extend OpenAI::Internal::Type::Enum
194
+
195
+ COMPLETED = :completed
196
+ CANCELLED = :cancelled
197
+ FAILED = :failed
198
+ INCOMPLETE = :incomplete
199
+ IN_PROGRESS = :in_progress
200
+
201
+ # @!method self.values
202
+ # @return [Array<Symbol>]
203
+ end
204
+
205
+ # The voice the model used to respond. Current voice options are `alloy`, `ash`,
206
+ # `ballad`, `coral`, `echo`, `sage`, `shimmer`, and `verse`.
207
+ #
208
+ # @see OpenAI::Models::Realtime::RealtimeResponse#voice
209
+ module Voice
210
+ extend OpenAI::Internal::Type::Union
211
+
212
+ variant String
213
+
214
+ variant const: -> { OpenAI::Models::Realtime::RealtimeResponse::Voice::ALLOY }
215
+
216
+ variant const: -> { OpenAI::Models::Realtime::RealtimeResponse::Voice::ASH }
217
+
218
+ variant const: -> { OpenAI::Models::Realtime::RealtimeResponse::Voice::BALLAD }
219
+
220
+ variant const: -> { OpenAI::Models::Realtime::RealtimeResponse::Voice::CORAL }
221
+
222
+ variant const: -> { OpenAI::Models::Realtime::RealtimeResponse::Voice::ECHO }
223
+
224
+ variant const: -> { OpenAI::Models::Realtime::RealtimeResponse::Voice::SAGE }
225
+
226
+ variant const: -> { OpenAI::Models::Realtime::RealtimeResponse::Voice::SHIMMER }
227
+
228
+ variant const: -> { OpenAI::Models::Realtime::RealtimeResponse::Voice::VERSE }
229
+
230
+ variant const: -> { OpenAI::Models::Realtime::RealtimeResponse::Voice::MARIN }
231
+
232
+ variant const: -> { OpenAI::Models::Realtime::RealtimeResponse::Voice::CEDAR }
233
+
234
+ # @!method self.variants
235
+ # @return [Array(String, Symbol)]
236
+
237
+ define_sorbet_constant!(:Variants) do
238
+ T.type_alias { T.any(String, OpenAI::Realtime::RealtimeResponse::Voice::TaggedSymbol) }
239
+ end
240
+
241
+ # @!group
242
+
243
+ ALLOY = :alloy
244
+ ASH = :ash
245
+ BALLAD = :ballad
246
+ CORAL = :coral
247
+ ECHO = :echo
248
+ SAGE = :sage
249
+ SHIMMER = :shimmer
250
+ VERSE = :verse
251
+ MARIN = :marin
252
+ CEDAR = :cedar
253
+
254
+ # @!endgroup
255
+ end
256
+ end
257
+ end
258
+ end
259
+ end