openai 0.19.0 → 0.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (346) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +28 -0
  3. data/README.md +1 -1
  4. data/lib/openai/client.rb +4 -0
  5. data/lib/openai/internal/stream.rb +3 -2
  6. data/lib/openai/models/audio/speech_create_params.rb +6 -0
  7. data/lib/openai/models/chat/chat_completion_audio_param.rb +6 -0
  8. data/lib/openai/models/chat/chat_completion_message.rb +7 -5
  9. data/lib/openai/models/chat/chat_completion_message_function_tool_call.rb +7 -5
  10. data/lib/openai/models/conversations/item_list_params.rb +2 -0
  11. data/lib/openai/models/evals/run_cancel_response.rb +2 -2
  12. data/lib/openai/models/evals/run_create_params.rb +2 -2
  13. data/lib/openai/models/evals/run_create_response.rb +2 -2
  14. data/lib/openai/models/evals/run_list_response.rb +2 -2
  15. data/lib/openai/models/evals/run_retrieve_response.rb +2 -2
  16. data/lib/openai/models/realtime/client_secret_create_params.rb +93 -0
  17. data/lib/openai/models/realtime/client_secret_create_response.rb +300 -0
  18. data/lib/openai/models/realtime/conversation_created_event.rb +70 -0
  19. data/lib/openai/models/realtime/conversation_item.rb +44 -0
  20. data/lib/openai/models/realtime/conversation_item_added.rb +48 -0
  21. data/lib/openai/models/realtime/conversation_item_create_event.rb +57 -0
  22. data/lib/openai/models/realtime/conversation_item_created_event.rb +59 -0
  23. data/lib/openai/models/realtime/conversation_item_delete_event.rb +39 -0
  24. data/lib/openai/models/realtime/conversation_item_deleted_event.rb +38 -0
  25. data/lib/openai/models/realtime/conversation_item_done.rb +48 -0
  26. data/lib/openai/models/realtime/conversation_item_input_audio_transcription_completed_event.rb +189 -0
  27. data/lib/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rb +63 -0
  28. data/lib/openai/models/realtime/conversation_item_input_audio_transcription_failed_event.rb +96 -0
  29. data/lib/openai/models/realtime/conversation_item_input_audio_transcription_segment.rb +84 -0
  30. data/lib/openai/models/realtime/conversation_item_retrieve_event.rb +40 -0
  31. data/lib/openai/models/realtime/conversation_item_truncate_event.rb +68 -0
  32. data/lib/openai/models/realtime/conversation_item_truncated_event.rb +60 -0
  33. data/lib/openai/models/realtime/conversation_item_with_reference.rb +235 -0
  34. data/lib/openai/models/realtime/input_audio_buffer_append_event.rb +49 -0
  35. data/lib/openai/models/realtime/input_audio_buffer_clear_event.rb +29 -0
  36. data/lib/openai/models/realtime/input_audio_buffer_cleared_event.rb +29 -0
  37. data/lib/openai/models/realtime/input_audio_buffer_commit_event.rb +35 -0
  38. data/lib/openai/models/realtime/input_audio_buffer_committed_event.rb +51 -0
  39. data/lib/openai/models/realtime/input_audio_buffer_speech_started_event.rb +59 -0
  40. data/lib/openai/models/realtime/input_audio_buffer_speech_stopped_event.rb +51 -0
  41. data/lib/openai/models/realtime/input_audio_buffer_timeout_triggered.rb +52 -0
  42. data/lib/openai/models/realtime/log_prob_properties.rb +39 -0
  43. data/lib/openai/models/realtime/mcp_list_tools_completed.rb +36 -0
  44. data/lib/openai/models/realtime/mcp_list_tools_failed.rb +36 -0
  45. data/lib/openai/models/realtime/mcp_list_tools_in_progress.rb +36 -0
  46. data/lib/openai/models/realtime/output_audio_buffer_clear_event.rb +32 -0
  47. data/lib/openai/models/realtime/rate_limits_updated_event.rb +91 -0
  48. data/lib/openai/models/realtime/realtime_audio_config.rb +446 -0
  49. data/lib/openai/models/realtime/realtime_client_event.rb +123 -0
  50. data/lib/openai/models/realtime/realtime_client_secret_config.rb +64 -0
  51. data/lib/openai/models/realtime/realtime_conversation_item_assistant_message.rb +118 -0
  52. data/lib/openai/models/realtime/realtime_conversation_item_function_call.rb +94 -0
  53. data/lib/openai/models/realtime/realtime_conversation_item_function_call_output.rb +86 -0
  54. data/lib/openai/models/realtime/realtime_conversation_item_system_message.rb +118 -0
  55. data/lib/openai/models/realtime/realtime_conversation_item_user_message.rb +135 -0
  56. data/lib/openai/models/realtime/realtime_error.rb +55 -0
  57. data/lib/openai/models/realtime/realtime_error_event.rb +38 -0
  58. data/lib/openai/models/realtime/realtime_mcp_approval_request.rb +52 -0
  59. data/lib/openai/models/realtime/realtime_mcp_approval_response.rb +52 -0
  60. data/lib/openai/models/realtime/realtime_mcp_list_tools.rb +84 -0
  61. data/lib/openai/models/realtime/realtime_mcp_protocol_error.rb +29 -0
  62. data/lib/openai/models/realtime/realtime_mcp_tool_call.rb +94 -0
  63. data/lib/openai/models/realtime/realtime_mcp_tool_execution_error.rb +23 -0
  64. data/lib/openai/models/realtime/realtime_mcphttp_error.rb +29 -0
  65. data/lib/openai/models/realtime/realtime_response.rb +259 -0
  66. data/lib/openai/models/realtime/realtime_response_status.rb +103 -0
  67. data/lib/openai/models/realtime/realtime_response_usage.rb +61 -0
  68. data/lib/openai/models/realtime/realtime_response_usage_input_token_details.rb +36 -0
  69. data/lib/openai/models/realtime/realtime_response_usage_output_token_details.rb +28 -0
  70. data/lib/openai/models/realtime/realtime_server_event.rb +369 -0
  71. data/lib/openai/models/realtime/realtime_session.rb +696 -0
  72. data/lib/openai/models/realtime/realtime_session_create_request.rb +234 -0
  73. data/lib/openai/models/realtime/realtime_session_create_response.rb +579 -0
  74. data/lib/openai/models/realtime/realtime_tool_choice_config.rb +32 -0
  75. data/lib/openai/models/realtime/realtime_tools_config.rb +11 -0
  76. data/lib/openai/models/realtime/realtime_tools_config_union.rb +379 -0
  77. data/lib/openai/models/realtime/realtime_tracing_config.rb +61 -0
  78. data/lib/openai/models/realtime/realtime_transcription_session_create_request.rb +312 -0
  79. data/lib/openai/models/realtime/realtime_truncation.rb +67 -0
  80. data/lib/openai/models/realtime/response_audio_delta_event.rb +68 -0
  81. data/lib/openai/models/realtime/response_audio_done_event.rb +61 -0
  82. data/lib/openai/models/realtime/response_audio_transcript_delta_event.rb +68 -0
  83. data/lib/openai/models/realtime/response_audio_transcript_done_event.rb +70 -0
  84. data/lib/openai/models/realtime/response_cancel_event.rb +42 -0
  85. data/lib/openai/models/realtime/response_content_part_added_event.rb +120 -0
  86. data/lib/openai/models/realtime/response_content_part_done_event.rb +120 -0
  87. data/lib/openai/models/realtime/response_create_event.rb +391 -0
  88. data/lib/openai/models/realtime/response_created_event.rb +37 -0
  89. data/lib/openai/models/realtime/response_done_event.rb +38 -0
  90. data/lib/openai/models/realtime/response_function_call_arguments_delta_event.rb +72 -0
  91. data/lib/openai/models/realtime/response_function_call_arguments_done_event.rb +73 -0
  92. data/lib/openai/models/realtime/response_mcp_call_arguments_delta.rb +68 -0
  93. data/lib/openai/models/realtime/response_mcp_call_arguments_done.rb +60 -0
  94. data/lib/openai/models/realtime/response_mcp_call_completed.rb +44 -0
  95. data/lib/openai/models/realtime/response_mcp_call_failed.rb +44 -0
  96. data/lib/openai/models/realtime/response_mcp_call_in_progress.rb +44 -0
  97. data/lib/openai/models/realtime/response_output_item_added_event.rb +52 -0
  98. data/lib/openai/models/realtime/response_output_item_done_event.rb +53 -0
  99. data/lib/openai/models/realtime/response_text_delta_event.rb +68 -0
  100. data/lib/openai/models/realtime/response_text_done_event.rb +69 -0
  101. data/lib/openai/models/realtime/session_created_event.rb +38 -0
  102. data/lib/openai/models/realtime/session_update_event.rb +44 -0
  103. data/lib/openai/models/realtime/session_updated_event.rb +37 -0
  104. data/lib/openai/models/realtime/transcription_session_created.rb +278 -0
  105. data/lib/openai/models/realtime/transcription_session_update.rb +36 -0
  106. data/lib/openai/models/realtime/transcription_session_updated_event.rb +279 -0
  107. data/lib/openai/models/responses/response.rb +6 -3
  108. data/lib/openai/models/responses/response_create_params.rb +8 -3
  109. data/lib/openai/models/responses/response_function_tool_call.rb +7 -5
  110. data/lib/openai/models/responses/response_function_web_search.rb +35 -1
  111. data/lib/openai/models/responses/response_includable.rb +2 -0
  112. data/lib/openai/models/responses/response_output_text.rb +7 -5
  113. data/lib/openai/models/responses/tool.rb +6 -2
  114. data/lib/openai/models/responses/web_search_preview_tool.rb +124 -0
  115. data/lib/openai/models/responses/web_search_tool.rb +58 -21
  116. data/lib/openai/models/webhooks/realtime_call_incoming_webhook_event.rb +119 -0
  117. data/lib/openai/models/webhooks/unwrap_webhook_event.rb +4 -1
  118. data/lib/openai/models.rb +2 -0
  119. data/lib/openai/resources/conversations.rb +1 -1
  120. data/lib/openai/resources/realtime/client_secrets.rb +44 -0
  121. data/lib/openai/resources/realtime.rb +18 -0
  122. data/lib/openai/resources/responses.rb +2 -2
  123. data/lib/openai/resources/webhooks.rb +1 -1
  124. data/lib/openai/version.rb +1 -1
  125. data/lib/openai.rb +95 -0
  126. data/rbi/openai/client.rbi +3 -0
  127. data/rbi/openai/models/audio/speech_create_params.rbi +10 -0
  128. data/rbi/openai/models/chat/chat_completion_audio_param.rbi +10 -0
  129. data/rbi/openai/models/conversations/item_list_params.rbi +4 -0
  130. data/rbi/openai/models/evals/run_cancel_response.rbi +4 -2
  131. data/rbi/openai/models/evals/run_create_params.rbi +8 -4
  132. data/rbi/openai/models/evals/run_create_response.rbi +4 -2
  133. data/rbi/openai/models/evals/run_list_response.rbi +4 -2
  134. data/rbi/openai/models/evals/run_retrieve_response.rbi +4 -2
  135. data/rbi/openai/models/realtime/client_secret_create_params.rbi +222 -0
  136. data/rbi/openai/models/realtime/client_secret_create_response.rbi +676 -0
  137. data/rbi/openai/models/realtime/conversation_created_event.rbi +164 -0
  138. data/rbi/openai/models/realtime/conversation_item.rbi +35 -0
  139. data/rbi/openai/models/realtime/conversation_item_added.rbi +105 -0
  140. data/rbi/openai/models/realtime/conversation_item_create_event.rbi +123 -0
  141. data/rbi/openai/models/realtime/conversation_item_created_event.rbi +117 -0
  142. data/rbi/openai/models/realtime/conversation_item_delete_event.rbi +57 -0
  143. data/rbi/openai/models/realtime/conversation_item_deleted_event.rbi +53 -0
  144. data/rbi/openai/models/realtime/conversation_item_done.rbi +105 -0
  145. data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_completed_event.rbi +305 -0
  146. data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rbi +93 -0
  147. data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_failed_event.rbi +158 -0
  148. data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_segment.rbi +107 -0
  149. data/rbi/openai/models/realtime/conversation_item_retrieve_event.rbi +58 -0
  150. data/rbi/openai/models/realtime/conversation_item_truncate_event.rbi +94 -0
  151. data/rbi/openai/models/realtime/conversation_item_truncated_event.rbi +80 -0
  152. data/rbi/openai/models/realtime/conversation_item_with_reference.rbi +549 -0
  153. data/rbi/openai/models/realtime/input_audio_buffer_append_event.rbi +65 -0
  154. data/rbi/openai/models/realtime/input_audio_buffer_clear_event.rbi +43 -0
  155. data/rbi/openai/models/realtime/input_audio_buffer_cleared_event.rbi +40 -0
  156. data/rbi/openai/models/realtime/input_audio_buffer_commit_event.rbi +49 -0
  157. data/rbi/openai/models/realtime/input_audio_buffer_committed_event.rbi +72 -0
  158. data/rbi/openai/models/realtime/input_audio_buffer_speech_started_event.rbi +82 -0
  159. data/rbi/openai/models/realtime/input_audio_buffer_speech_stopped_event.rbi +73 -0
  160. data/rbi/openai/models/realtime/input_audio_buffer_timeout_triggered.rbi +75 -0
  161. data/rbi/openai/models/realtime/log_prob_properties.rbi +55 -0
  162. data/rbi/openai/models/realtime/mcp_list_tools_completed.rbi +51 -0
  163. data/rbi/openai/models/realtime/mcp_list_tools_failed.rbi +51 -0
  164. data/rbi/openai/models/realtime/mcp_list_tools_in_progress.rbi +51 -0
  165. data/rbi/openai/models/realtime/output_audio_buffer_clear_event.rbi +46 -0
  166. data/rbi/openai/models/realtime/rate_limits_updated_event.rbi +187 -0
  167. data/rbi/openai/models/realtime/realtime_audio_config.rbi +1004 -0
  168. data/rbi/openai/models/realtime/realtime_client_event.rbi +38 -0
  169. data/rbi/openai/models/realtime/realtime_client_secret_config.rbi +147 -0
  170. data/rbi/openai/models/realtime/realtime_conversation_item_assistant_message.rbi +292 -0
  171. data/rbi/openai/models/realtime/realtime_conversation_item_function_call.rbi +199 -0
  172. data/rbi/openai/models/realtime/realtime_conversation_item_function_call_output.rbi +188 -0
  173. data/rbi/openai/models/realtime/realtime_conversation_item_system_message.rbi +292 -0
  174. data/rbi/openai/models/realtime/realtime_conversation_item_user_message.rbi +319 -0
  175. data/rbi/openai/models/realtime/realtime_error.rbi +72 -0
  176. data/rbi/openai/models/realtime/realtime_error_event.rbi +64 -0
  177. data/rbi/openai/models/realtime/realtime_mcp_approval_request.rbi +75 -0
  178. data/rbi/openai/models/realtime/realtime_mcp_approval_response.rbi +75 -0
  179. data/rbi/openai/models/realtime/realtime_mcp_list_tools.rbi +131 -0
  180. data/rbi/openai/models/realtime/realtime_mcp_protocol_error.rbi +40 -0
  181. data/rbi/openai/models/realtime/realtime_mcp_tool_call.rbi +145 -0
  182. data/rbi/openai/models/realtime/realtime_mcp_tool_execution_error.rbi +31 -0
  183. data/rbi/openai/models/realtime/realtime_mcphttp_error.rbi +40 -0
  184. data/rbi/openai/models/realtime/realtime_response.rbi +573 -0
  185. data/rbi/openai/models/realtime/realtime_response_status.rbi +233 -0
  186. data/rbi/openai/models/realtime/realtime_response_usage.rbi +121 -0
  187. data/rbi/openai/models/realtime/realtime_response_usage_input_token_details.rbi +68 -0
  188. data/rbi/openai/models/realtime/realtime_response_usage_output_token_details.rbi +51 -0
  189. data/rbi/openai/models/realtime/realtime_server_event.rbi +311 -0
  190. data/rbi/openai/models/realtime/realtime_session.rbi +1426 -0
  191. data/rbi/openai/models/realtime/realtime_session_create_request.rbi +560 -0
  192. data/rbi/openai/models/realtime/realtime_session_create_response.rbi +1249 -0
  193. data/rbi/openai/models/realtime/realtime_tool_choice_config.rbi +30 -0
  194. data/rbi/openai/models/realtime/realtime_tools_config.rbi +15 -0
  195. data/rbi/openai/models/realtime/realtime_tools_config_union.rbi +755 -0
  196. data/rbi/openai/models/realtime/realtime_tracing_config.rbi +95 -0
  197. data/rbi/openai/models/realtime/realtime_transcription_session_create_request.rbi +703 -0
  198. data/rbi/openai/models/realtime/realtime_truncation.rbi +117 -0
  199. data/rbi/openai/models/realtime/response_audio_delta_event.rbi +91 -0
  200. data/rbi/openai/models/realtime/response_audio_done_event.rbi +84 -0
  201. data/rbi/openai/models/realtime/response_audio_transcript_delta_event.rbi +91 -0
  202. data/rbi/openai/models/realtime/response_audio_transcript_done_event.rbi +93 -0
  203. data/rbi/openai/models/realtime/response_cancel_event.rbi +63 -0
  204. data/rbi/openai/models/realtime/response_content_part_added_event.rbi +219 -0
  205. data/rbi/openai/models/realtime/response_content_part_done_event.rbi +219 -0
  206. data/rbi/openai/models/realtime/response_create_event.rbi +863 -0
  207. data/rbi/openai/models/realtime/response_created_event.rbi +65 -0
  208. data/rbi/openai/models/realtime/response_done_event.rbi +66 -0
  209. data/rbi/openai/models/realtime/response_function_call_arguments_delta_event.rbi +91 -0
  210. data/rbi/openai/models/realtime/response_function_call_arguments_done_event.rbi +92 -0
  211. data/rbi/openai/models/realtime/response_mcp_call_arguments_delta.rbi +91 -0
  212. data/rbi/openai/models/realtime/response_mcp_call_arguments_done.rbi +83 -0
  213. data/rbi/openai/models/realtime/response_mcp_call_completed.rbi +67 -0
  214. data/rbi/openai/models/realtime/response_mcp_call_failed.rbi +67 -0
  215. data/rbi/openai/models/realtime/response_mcp_call_in_progress.rbi +67 -0
  216. data/rbi/openai/models/realtime/response_output_item_added_event.rbi +111 -0
  217. data/rbi/openai/models/realtime/response_output_item_done_event.rbi +112 -0
  218. data/rbi/openai/models/realtime/response_text_delta_event.rbi +91 -0
  219. data/rbi/openai/models/realtime/response_text_done_event.rbi +92 -0
  220. data/rbi/openai/models/realtime/session_created_event.rbi +64 -0
  221. data/rbi/openai/models/realtime/session_update_event.rbi +77 -0
  222. data/rbi/openai/models/realtime/session_updated_event.rbi +63 -0
  223. data/rbi/openai/models/realtime/transcription_session_created.rbi +653 -0
  224. data/rbi/openai/models/realtime/transcription_session_update.rbi +74 -0
  225. data/rbi/openai/models/realtime/transcription_session_updated_event.rbi +657 -0
  226. data/rbi/openai/models/responses/response.rbi +10 -3
  227. data/rbi/openai/models/responses/response_create_params.rbi +20 -6
  228. data/rbi/openai/models/responses/response_function_web_search.rbi +78 -2
  229. data/rbi/openai/models/responses/response_includable.rbi +2 -0
  230. data/rbi/openai/models/responses/tool.rbi +2 -1
  231. data/rbi/openai/models/responses/web_search_preview_tool.rbi +245 -0
  232. data/rbi/openai/models/responses/web_search_tool.rbi +120 -23
  233. data/rbi/openai/models/webhooks/realtime_call_incoming_webhook_event.rbi +222 -0
  234. data/rbi/openai/models/webhooks/unwrap_webhook_event.rbi +1 -0
  235. data/rbi/openai/models.rbi +2 -0
  236. data/rbi/openai/resources/conversations/items.rbi +2 -0
  237. data/rbi/openai/resources/conversations.rbi +1 -1
  238. data/rbi/openai/resources/realtime/client_secrets.rbi +38 -0
  239. data/rbi/openai/resources/realtime.rbi +15 -0
  240. data/rbi/openai/resources/responses.rbi +16 -4
  241. data/rbi/openai/resources/webhooks.rbi +1 -0
  242. data/sig/openai/client.rbs +2 -0
  243. data/sig/openai/models/audio/speech_create_params.rbs +4 -0
  244. data/sig/openai/models/chat/chat_completion_audio_param.rbs +4 -0
  245. data/sig/openai/models/realtime/client_secret_create_params.rbs +89 -0
  246. data/sig/openai/models/realtime/client_secret_create_response.rbs +292 -0
  247. data/sig/openai/models/realtime/conversation_created_event.rbs +70 -0
  248. data/sig/openai/models/realtime/conversation_item.rbs +22 -0
  249. data/sig/openai/models/realtime/conversation_item_added.rbs +37 -0
  250. data/sig/openai/models/realtime/conversation_item_create_event.rbs +41 -0
  251. data/sig/openai/models/realtime/conversation_item_created_event.rbs +37 -0
  252. data/sig/openai/models/realtime/conversation_item_delete_event.rbs +30 -0
  253. data/sig/openai/models/realtime/conversation_item_deleted_event.rbs +32 -0
  254. data/sig/openai/models/realtime/conversation_item_done.rbs +37 -0
  255. data/sig/openai/models/realtime/conversation_item_input_audio_transcription_completed_event.rbs +136 -0
  256. data/sig/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rbs +51 -0
  257. data/sig/openai/models/realtime/conversation_item_input_audio_transcription_failed_event.rbs +77 -0
  258. data/sig/openai/models/realtime/conversation_item_input_audio_transcription_segment.rbs +62 -0
  259. data/sig/openai/models/realtime/conversation_item_retrieve_event.rbs +34 -0
  260. data/sig/openai/models/realtime/conversation_item_truncate_event.rbs +44 -0
  261. data/sig/openai/models/realtime/conversation_item_truncated_event.rbs +42 -0
  262. data/sig/openai/models/realtime/conversation_item_with_reference.rbs +207 -0
  263. data/sig/openai/models/realtime/input_audio_buffer_append_event.rbs +30 -0
  264. data/sig/openai/models/realtime/input_audio_buffer_clear_event.rbs +23 -0
  265. data/sig/openai/models/realtime/input_audio_buffer_cleared_event.rbs +24 -0
  266. data/sig/openai/models/realtime/input_audio_buffer_commit_event.rbs +23 -0
  267. data/sig/openai/models/realtime/input_audio_buffer_committed_event.rbs +37 -0
  268. data/sig/openai/models/realtime/input_audio_buffer_speech_started_event.rbs +37 -0
  269. data/sig/openai/models/realtime/input_audio_buffer_speech_stopped_event.rbs +37 -0
  270. data/sig/openai/models/realtime/input_audio_buffer_timeout_triggered.rbs +42 -0
  271. data/sig/openai/models/realtime/log_prob_properties.rbs +28 -0
  272. data/sig/openai/models/realtime/mcp_list_tools_completed.rbs +28 -0
  273. data/sig/openai/models/realtime/mcp_list_tools_failed.rbs +28 -0
  274. data/sig/openai/models/realtime/mcp_list_tools_in_progress.rbs +32 -0
  275. data/sig/openai/models/realtime/output_audio_buffer_clear_event.rbs +23 -0
  276. data/sig/openai/models/realtime/rate_limits_updated_event.rbs +85 -0
  277. data/sig/openai/models/realtime/realtime_audio_config.rbs +354 -0
  278. data/sig/openai/models/realtime/realtime_client_event.rbs +25 -0
  279. data/sig/openai/models/realtime/realtime_client_secret_config.rbs +60 -0
  280. data/sig/openai/models/realtime/realtime_conversation_item_assistant_message.rbs +117 -0
  281. data/sig/openai/models/realtime/realtime_conversation_item_function_call.rbs +86 -0
  282. data/sig/openai/models/realtime/realtime_conversation_item_function_call_output.rbs +79 -0
  283. data/sig/openai/models/realtime/realtime_conversation_item_system_message.rbs +117 -0
  284. data/sig/openai/models/realtime/realtime_conversation_item_user_message.rbs +132 -0
  285. data/sig/openai/models/realtime/realtime_error.rbs +42 -0
  286. data/sig/openai/models/realtime/realtime_error_event.rbs +32 -0
  287. data/sig/openai/models/realtime/realtime_mcp_approval_request.rbs +42 -0
  288. data/sig/openai/models/realtime/realtime_mcp_approval_response.rbs +42 -0
  289. data/sig/openai/models/realtime/realtime_mcp_list_tools.rbs +71 -0
  290. data/sig/openai/models/realtime/realtime_mcp_protocol_error.rbs +28 -0
  291. data/sig/openai/models/realtime/realtime_mcp_tool_call.rbs +68 -0
  292. data/sig/openai/models/realtime/realtime_mcp_tool_execution_error.rbs +18 -0
  293. data/sig/openai/models/realtime/realtime_mcphttp_error.rbs +24 -0
  294. data/sig/openai/models/realtime/realtime_response.rbs +210 -0
  295. data/sig/openai/models/realtime/realtime_response_status.rbs +90 -0
  296. data/sig/openai/models/realtime/realtime_response_usage.rbs +56 -0
  297. data/sig/openai/models/realtime/realtime_response_usage_input_token_details.rbs +34 -0
  298. data/sig/openai/models/realtime/realtime_response_usage_output_token_details.rbs +22 -0
  299. data/sig/openai/models/realtime/realtime_server_event.rbs +168 -0
  300. data/sig/openai/models/realtime/realtime_session.rbs +521 -0
  301. data/sig/openai/models/realtime/realtime_session_create_request.rbs +178 -0
  302. data/sig/openai/models/realtime/realtime_session_create_response.rbs +526 -0
  303. data/sig/openai/models/realtime/realtime_tool_choice_config.rbs +16 -0
  304. data/sig/openai/models/realtime/realtime_tools_config.rbs +10 -0
  305. data/sig/openai/models/realtime/realtime_tools_config_union.rbs +280 -0
  306. data/sig/openai/models/realtime/realtime_tracing_config.rbs +43 -0
  307. data/sig/openai/models/realtime/realtime_transcription_session_create_request.rbs +242 -0
  308. data/sig/openai/models/realtime/realtime_truncation.rbs +53 -0
  309. data/sig/openai/models/realtime/response_audio_delta_event.rbs +52 -0
  310. data/sig/openai/models/realtime/response_audio_done_event.rbs +47 -0
  311. data/sig/openai/models/realtime/response_audio_transcript_delta_event.rbs +52 -0
  312. data/sig/openai/models/realtime/response_audio_transcript_done_event.rbs +52 -0
  313. data/sig/openai/models/realtime/response_cancel_event.rbs +32 -0
  314. data/sig/openai/models/realtime/response_content_part_added_event.rbs +105 -0
  315. data/sig/openai/models/realtime/response_content_part_done_event.rbs +105 -0
  316. data/sig/openai/models/realtime/response_create_event.rbs +281 -0
  317. data/sig/openai/models/realtime/response_created_event.rbs +32 -0
  318. data/sig/openai/models/realtime/response_done_event.rbs +32 -0
  319. data/sig/openai/models/realtime/response_function_call_arguments_delta_event.rbs +52 -0
  320. data/sig/openai/models/realtime/response_function_call_arguments_done_event.rbs +52 -0
  321. data/sig/openai/models/realtime/response_mcp_call_arguments_delta.rbs +52 -0
  322. data/sig/openai/models/realtime/response_mcp_call_arguments_done.rbs +47 -0
  323. data/sig/openai/models/realtime/response_mcp_call_completed.rbs +37 -0
  324. data/sig/openai/models/realtime/response_mcp_call_failed.rbs +37 -0
  325. data/sig/openai/models/realtime/response_mcp_call_in_progress.rbs +37 -0
  326. data/sig/openai/models/realtime/response_output_item_added_event.rbs +42 -0
  327. data/sig/openai/models/realtime/response_output_item_done_event.rbs +42 -0
  328. data/sig/openai/models/realtime/response_text_delta_event.rbs +52 -0
  329. data/sig/openai/models/realtime/response_text_done_event.rbs +52 -0
  330. data/sig/openai/models/realtime/session_created_event.rbs +32 -0
  331. data/sig/openai/models/realtime/session_update_event.rbs +34 -0
  332. data/sig/openai/models/realtime/session_updated_event.rbs +32 -0
  333. data/sig/openai/models/realtime/transcription_session_created.rbs +282 -0
  334. data/sig/openai/models/realtime/transcription_session_update.rbs +34 -0
  335. data/sig/openai/models/realtime/transcription_session_updated_event.rbs +282 -0
  336. data/sig/openai/models/responses/response_function_web_search.rbs +34 -3
  337. data/sig/openai/models/responses/tool.rbs +1 -0
  338. data/sig/openai/models/responses/web_search_preview_tool.rbs +96 -0
  339. data/sig/openai/models/responses/web_search_tool.rbs +39 -10
  340. data/sig/openai/models/webhooks/realtime_call_incoming_webhook_event.rbs +90 -0
  341. data/sig/openai/models/webhooks/unwrap_webhook_event.rbs +1 -0
  342. data/sig/openai/models.rbs +2 -0
  343. data/sig/openai/resources/realtime/client_secrets.rbs +15 -0
  344. data/sig/openai/resources/realtime.rbs +9 -0
  345. data/sig/openai/resources/webhooks.rbs +1 -0
  346. metadata +287 -2
@@ -0,0 +1,135 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class RealtimeConversationItemUserMessage < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute content
8
+ # The content of the message.
9
+ #
10
+ # @return [Array<OpenAI::Models::Realtime::RealtimeConversationItemUserMessage::Content>]
11
+ required :content,
12
+ -> { OpenAI::Internal::Type::ArrayOf[OpenAI::Realtime::RealtimeConversationItemUserMessage::Content] }
13
+
14
+ # @!attribute role
15
+ # The role of the message sender. Always `user`.
16
+ #
17
+ # @return [Symbol, :user]
18
+ required :role, const: :user
19
+
20
+ # @!attribute type
21
+ # The type of the item. Always `message`.
22
+ #
23
+ # @return [Symbol, :message]
24
+ required :type, const: :message
25
+
26
+ # @!attribute id
27
+ # The unique ID of the item.
28
+ #
29
+ # @return [String, nil]
30
+ optional :id, String
31
+
32
+ # @!attribute object
33
+ # Identifier for the API object being returned - always `realtime.item`.
34
+ #
35
+ # @return [Symbol, OpenAI::Models::Realtime::RealtimeConversationItemUserMessage::Object, nil]
36
+ optional :object, enum: -> { OpenAI::Realtime::RealtimeConversationItemUserMessage::Object }
37
+
38
+ # @!attribute status
39
+ # The status of the item. Has no effect on the conversation.
40
+ #
41
+ # @return [Symbol, OpenAI::Models::Realtime::RealtimeConversationItemUserMessage::Status, nil]
42
+ optional :status, enum: -> { OpenAI::Realtime::RealtimeConversationItemUserMessage::Status }
43
+
44
+ # @!method initialize(content:, id: nil, object: nil, status: nil, role: :user, type: :message)
45
+ # A user message item in a Realtime conversation.
46
+ #
47
+ # @param content [Array<OpenAI::Models::Realtime::RealtimeConversationItemUserMessage::Content>] The content of the message.
48
+ #
49
+ # @param id [String] The unique ID of the item.
50
+ #
51
+ # @param object [Symbol, OpenAI::Models::Realtime::RealtimeConversationItemUserMessage::Object] Identifier for the API object being returned - always `realtime.item`.
52
+ #
53
+ # @param status [Symbol, OpenAI::Models::Realtime::RealtimeConversationItemUserMessage::Status] The status of the item. Has no effect on the conversation.
54
+ #
55
+ # @param role [Symbol, :user] The role of the message sender. Always `user`.
56
+ #
57
+ # @param type [Symbol, :message] The type of the item. Always `message`.
58
+
59
+ class Content < OpenAI::Internal::Type::BaseModel
60
+ # @!attribute audio
61
+ # Base64-encoded audio bytes (for `input_audio`).
62
+ #
63
+ # @return [String, nil]
64
+ optional :audio, String
65
+
66
+ # @!attribute text
67
+ # The text content (for `input_text`).
68
+ #
69
+ # @return [String, nil]
70
+ optional :text, String
71
+
72
+ # @!attribute transcript
73
+ # Transcript of the audio (for `input_audio`).
74
+ #
75
+ # @return [String, nil]
76
+ optional :transcript, String
77
+
78
+ # @!attribute type
79
+ # The content type (`input_text` or `input_audio`).
80
+ #
81
+ # @return [Symbol, OpenAI::Models::Realtime::RealtimeConversationItemUserMessage::Content::Type, nil]
82
+ optional :type, enum: -> { OpenAI::Realtime::RealtimeConversationItemUserMessage::Content::Type }
83
+
84
+ # @!method initialize(audio: nil, text: nil, transcript: nil, type: nil)
85
+ # @param audio [String] Base64-encoded audio bytes (for `input_audio`).
86
+ #
87
+ # @param text [String] The text content (for `input_text`).
88
+ #
89
+ # @param transcript [String] Transcript of the audio (for `input_audio`).
90
+ #
91
+ # @param type [Symbol, OpenAI::Models::Realtime::RealtimeConversationItemUserMessage::Content::Type] The content type (`input_text` or `input_audio`).
92
+
93
+ # The content type (`input_text` or `input_audio`).
94
+ #
95
+ # @see OpenAI::Models::Realtime::RealtimeConversationItemUserMessage::Content#type
96
+ module Type
97
+ extend OpenAI::Internal::Type::Enum
98
+
99
+ INPUT_TEXT = :input_text
100
+ INPUT_AUDIO = :input_audio
101
+
102
+ # @!method self.values
103
+ # @return [Array<Symbol>]
104
+ end
105
+ end
106
+
107
+ # Identifier for the API object being returned - always `realtime.item`.
108
+ #
109
+ # @see OpenAI::Models::Realtime::RealtimeConversationItemUserMessage#object
110
+ module Object
111
+ extend OpenAI::Internal::Type::Enum
112
+
113
+ REALTIME_ITEM = :"realtime.item"
114
+
115
+ # @!method self.values
116
+ # @return [Array<Symbol>]
117
+ end
118
+
119
+ # The status of the item. Has no effect on the conversation.
120
+ #
121
+ # @see OpenAI::Models::Realtime::RealtimeConversationItemUserMessage#status
122
+ module Status
123
+ extend OpenAI::Internal::Type::Enum
124
+
125
+ COMPLETED = :completed
126
+ INCOMPLETE = :incomplete
127
+ IN_PROGRESS = :in_progress
128
+
129
+ # @!method self.values
130
+ # @return [Array<Symbol>]
131
+ end
132
+ end
133
+ end
134
+ end
135
+ end
@@ -0,0 +1,55 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class RealtimeError < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute message
8
+ # A human-readable error message.
9
+ #
10
+ # @return [String]
11
+ required :message, String
12
+
13
+ # @!attribute type
14
+ # The type of error (e.g., "invalid_request_error", "server_error").
15
+ #
16
+ # @return [String]
17
+ required :type, String
18
+
19
+ # @!attribute code
20
+ # Error code, if any.
21
+ #
22
+ # @return [String, nil]
23
+ optional :code, String, nil?: true
24
+
25
+ # @!attribute event_id
26
+ # The event_id of the client event that caused the error, if applicable.
27
+ #
28
+ # @return [String, nil]
29
+ optional :event_id, String, nil?: true
30
+
31
+ # @!attribute param
32
+ # Parameter related to the error, if any.
33
+ #
34
+ # @return [String, nil]
35
+ optional :param, String, nil?: true
36
+
37
+ # @!method initialize(message:, type:, code: nil, event_id: nil, param: nil)
38
+ # Some parameter documentations has been truncated, see
39
+ # {OpenAI::Models::Realtime::RealtimeError} for more details.
40
+ #
41
+ # Details of the error.
42
+ #
43
+ # @param message [String] A human-readable error message.
44
+ #
45
+ # @param type [String] The type of error (e.g., "invalid_request_error", "server_error").
46
+ #
47
+ # @param code [String, nil] Error code, if any.
48
+ #
49
+ # @param event_id [String, nil] The event_id of the client event that caused the error, if applicable.
50
+ #
51
+ # @param param [String, nil] Parameter related to the error, if any.
52
+ end
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class RealtimeErrorEvent < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute error
8
+ # Details of the error.
9
+ #
10
+ # @return [OpenAI::Models::Realtime::RealtimeError]
11
+ required :error, -> { OpenAI::Realtime::RealtimeError }
12
+
13
+ # @!attribute event_id
14
+ # The unique ID of the server event.
15
+ #
16
+ # @return [String]
17
+ required :event_id, String
18
+
19
+ # @!attribute type
20
+ # The event type, must be `error`.
21
+ #
22
+ # @return [Symbol, :error]
23
+ required :type, const: :error
24
+
25
+ # @!method initialize(error:, event_id:, type: :error)
26
+ # Returned when an error occurs, which could be a client problem or a server
27
+ # problem. Most errors are recoverable and the session will stay open, we
28
+ # recommend to implementors to monitor and log error messages by default.
29
+ #
30
+ # @param error [OpenAI::Models::Realtime::RealtimeError] Details of the error.
31
+ #
32
+ # @param event_id [String] The unique ID of the server event.
33
+ #
34
+ # @param type [Symbol, :error] The event type, must be `error`.
35
+ end
36
+ end
37
+ end
38
+ end
@@ -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