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,79 @@
1
+ module OpenAI
2
+ module Models
3
+ module Realtime
4
+ type realtime_conversation_item_function_call_output =
5
+ {
6
+ call_id: String,
7
+ output: String,
8
+ type: :function_call_output,
9
+ id: String,
10
+ object: OpenAI::Models::Realtime::RealtimeConversationItemFunctionCallOutput::object,
11
+ status: OpenAI::Models::Realtime::RealtimeConversationItemFunctionCallOutput::status
12
+ }
13
+
14
+ class RealtimeConversationItemFunctionCallOutput < OpenAI::Internal::Type::BaseModel
15
+ attr_accessor call_id: String
16
+
17
+ attr_accessor output: String
18
+
19
+ attr_accessor type: :function_call_output
20
+
21
+ attr_reader id: String?
22
+
23
+ def id=: (String) -> String
24
+
25
+ attr_reader object: OpenAI::Models::Realtime::RealtimeConversationItemFunctionCallOutput::object?
26
+
27
+ def object=: (
28
+ OpenAI::Models::Realtime::RealtimeConversationItemFunctionCallOutput::object
29
+ ) -> OpenAI::Models::Realtime::RealtimeConversationItemFunctionCallOutput::object
30
+
31
+ attr_reader status: OpenAI::Models::Realtime::RealtimeConversationItemFunctionCallOutput::status?
32
+
33
+ def status=: (
34
+ OpenAI::Models::Realtime::RealtimeConversationItemFunctionCallOutput::status
35
+ ) -> OpenAI::Models::Realtime::RealtimeConversationItemFunctionCallOutput::status
36
+
37
+ def initialize: (
38
+ call_id: String,
39
+ output: String,
40
+ ?id: String,
41
+ ?object: OpenAI::Models::Realtime::RealtimeConversationItemFunctionCallOutput::object,
42
+ ?status: OpenAI::Models::Realtime::RealtimeConversationItemFunctionCallOutput::status,
43
+ ?type: :function_call_output
44
+ ) -> void
45
+
46
+ def to_hash: -> {
47
+ call_id: String,
48
+ output: String,
49
+ type: :function_call_output,
50
+ id: String,
51
+ object: OpenAI::Models::Realtime::RealtimeConversationItemFunctionCallOutput::object,
52
+ status: OpenAI::Models::Realtime::RealtimeConversationItemFunctionCallOutput::status
53
+ }
54
+
55
+ type object = :"realtime.item"
56
+
57
+ module Object
58
+ extend OpenAI::Internal::Type::Enum
59
+
60
+ REALTIME_ITEM: :"realtime.item"
61
+
62
+ def self?.values: -> ::Array[OpenAI::Models::Realtime::RealtimeConversationItemFunctionCallOutput::object]
63
+ end
64
+
65
+ type status = :completed | :incomplete | :in_progress
66
+
67
+ module Status
68
+ extend OpenAI::Internal::Type::Enum
69
+
70
+ COMPLETED: :completed
71
+ INCOMPLETE: :incomplete
72
+ IN_PROGRESS: :in_progress
73
+
74
+ def self?.values: -> ::Array[OpenAI::Models::Realtime::RealtimeConversationItemFunctionCallOutput::status]
75
+ end
76
+ end
77
+ end
78
+ end
79
+ end
@@ -0,0 +1,117 @@
1
+ module OpenAI
2
+ module Models
3
+ module Realtime
4
+ type realtime_conversation_item_system_message =
5
+ {
6
+ content: ::Array[OpenAI::Realtime::RealtimeConversationItemSystemMessage::Content],
7
+ role: :system,
8
+ type: :message,
9
+ id: String,
10
+ object: OpenAI::Models::Realtime::RealtimeConversationItemSystemMessage::object,
11
+ status: OpenAI::Models::Realtime::RealtimeConversationItemSystemMessage::status
12
+ }
13
+
14
+ class RealtimeConversationItemSystemMessage < OpenAI::Internal::Type::BaseModel
15
+ attr_accessor content: ::Array[OpenAI::Realtime::RealtimeConversationItemSystemMessage::Content]
16
+
17
+ attr_accessor role: :system
18
+
19
+ attr_accessor type: :message
20
+
21
+ attr_reader id: String?
22
+
23
+ def id=: (String) -> String
24
+
25
+ attr_reader object: OpenAI::Models::Realtime::RealtimeConversationItemSystemMessage::object?
26
+
27
+ def object=: (
28
+ OpenAI::Models::Realtime::RealtimeConversationItemSystemMessage::object
29
+ ) -> OpenAI::Models::Realtime::RealtimeConversationItemSystemMessage::object
30
+
31
+ attr_reader status: OpenAI::Models::Realtime::RealtimeConversationItemSystemMessage::status?
32
+
33
+ def status=: (
34
+ OpenAI::Models::Realtime::RealtimeConversationItemSystemMessage::status
35
+ ) -> OpenAI::Models::Realtime::RealtimeConversationItemSystemMessage::status
36
+
37
+ def initialize: (
38
+ content: ::Array[OpenAI::Realtime::RealtimeConversationItemSystemMessage::Content],
39
+ ?id: String,
40
+ ?object: OpenAI::Models::Realtime::RealtimeConversationItemSystemMessage::object,
41
+ ?status: OpenAI::Models::Realtime::RealtimeConversationItemSystemMessage::status,
42
+ ?role: :system,
43
+ ?type: :message
44
+ ) -> void
45
+
46
+ def to_hash: -> {
47
+ content: ::Array[OpenAI::Realtime::RealtimeConversationItemSystemMessage::Content],
48
+ role: :system,
49
+ type: :message,
50
+ id: String,
51
+ object: OpenAI::Models::Realtime::RealtimeConversationItemSystemMessage::object,
52
+ status: OpenAI::Models::Realtime::RealtimeConversationItemSystemMessage::status
53
+ }
54
+
55
+ type content =
56
+ {
57
+ text: String,
58
+ type: OpenAI::Models::Realtime::RealtimeConversationItemSystemMessage::Content::type_
59
+ }
60
+
61
+ class Content < OpenAI::Internal::Type::BaseModel
62
+ attr_reader text: String?
63
+
64
+ def text=: (String) -> String
65
+
66
+ attr_reader type: OpenAI::Models::Realtime::RealtimeConversationItemSystemMessage::Content::type_?
67
+
68
+ def type=: (
69
+ OpenAI::Models::Realtime::RealtimeConversationItemSystemMessage::Content::type_
70
+ ) -> OpenAI::Models::Realtime::RealtimeConversationItemSystemMessage::Content::type_
71
+
72
+ def initialize: (
73
+ ?text: String,
74
+ ?type: OpenAI::Models::Realtime::RealtimeConversationItemSystemMessage::Content::type_
75
+ ) -> void
76
+
77
+ def to_hash: -> {
78
+ text: String,
79
+ type: OpenAI::Models::Realtime::RealtimeConversationItemSystemMessage::Content::type_
80
+ }
81
+
82
+ type type_ = :input_text
83
+
84
+ module Type
85
+ extend OpenAI::Internal::Type::Enum
86
+
87
+ INPUT_TEXT: :input_text
88
+
89
+ def self?.values: -> ::Array[OpenAI::Models::Realtime::RealtimeConversationItemSystemMessage::Content::type_]
90
+ end
91
+ end
92
+
93
+ type object = :"realtime.item"
94
+
95
+ module Object
96
+ extend OpenAI::Internal::Type::Enum
97
+
98
+ REALTIME_ITEM: :"realtime.item"
99
+
100
+ def self?.values: -> ::Array[OpenAI::Models::Realtime::RealtimeConversationItemSystemMessage::object]
101
+ end
102
+
103
+ type status = :completed | :incomplete | :in_progress
104
+
105
+ module Status
106
+ extend OpenAI::Internal::Type::Enum
107
+
108
+ COMPLETED: :completed
109
+ INCOMPLETE: :incomplete
110
+ IN_PROGRESS: :in_progress
111
+
112
+ def self?.values: -> ::Array[OpenAI::Models::Realtime::RealtimeConversationItemSystemMessage::status]
113
+ end
114
+ end
115
+ end
116
+ end
117
+ end
@@ -0,0 +1,132 @@
1
+ module OpenAI
2
+ module Models
3
+ module Realtime
4
+ type realtime_conversation_item_user_message =
5
+ {
6
+ content: ::Array[OpenAI::Realtime::RealtimeConversationItemUserMessage::Content],
7
+ role: :user,
8
+ type: :message,
9
+ id: String,
10
+ object: OpenAI::Models::Realtime::RealtimeConversationItemUserMessage::object,
11
+ status: OpenAI::Models::Realtime::RealtimeConversationItemUserMessage::status
12
+ }
13
+
14
+ class RealtimeConversationItemUserMessage < OpenAI::Internal::Type::BaseModel
15
+ attr_accessor content: ::Array[OpenAI::Realtime::RealtimeConversationItemUserMessage::Content]
16
+
17
+ attr_accessor role: :user
18
+
19
+ attr_accessor type: :message
20
+
21
+ attr_reader id: String?
22
+
23
+ def id=: (String) -> String
24
+
25
+ attr_reader object: OpenAI::Models::Realtime::RealtimeConversationItemUserMessage::object?
26
+
27
+ def object=: (
28
+ OpenAI::Models::Realtime::RealtimeConversationItemUserMessage::object
29
+ ) -> OpenAI::Models::Realtime::RealtimeConversationItemUserMessage::object
30
+
31
+ attr_reader status: OpenAI::Models::Realtime::RealtimeConversationItemUserMessage::status?
32
+
33
+ def status=: (
34
+ OpenAI::Models::Realtime::RealtimeConversationItemUserMessage::status
35
+ ) -> OpenAI::Models::Realtime::RealtimeConversationItemUserMessage::status
36
+
37
+ def initialize: (
38
+ content: ::Array[OpenAI::Realtime::RealtimeConversationItemUserMessage::Content],
39
+ ?id: String,
40
+ ?object: OpenAI::Models::Realtime::RealtimeConversationItemUserMessage::object,
41
+ ?status: OpenAI::Models::Realtime::RealtimeConversationItemUserMessage::status,
42
+ ?role: :user,
43
+ ?type: :message
44
+ ) -> void
45
+
46
+ def to_hash: -> {
47
+ content: ::Array[OpenAI::Realtime::RealtimeConversationItemUserMessage::Content],
48
+ role: :user,
49
+ type: :message,
50
+ id: String,
51
+ object: OpenAI::Models::Realtime::RealtimeConversationItemUserMessage::object,
52
+ status: OpenAI::Models::Realtime::RealtimeConversationItemUserMessage::status
53
+ }
54
+
55
+ type content =
56
+ {
57
+ audio: String,
58
+ text: String,
59
+ transcript: String,
60
+ type: OpenAI::Models::Realtime::RealtimeConversationItemUserMessage::Content::type_
61
+ }
62
+
63
+ class Content < OpenAI::Internal::Type::BaseModel
64
+ attr_reader audio: String?
65
+
66
+ def audio=: (String) -> String
67
+
68
+ attr_reader text: String?
69
+
70
+ def text=: (String) -> String
71
+
72
+ attr_reader transcript: String?
73
+
74
+ def transcript=: (String) -> String
75
+
76
+ attr_reader type: OpenAI::Models::Realtime::RealtimeConversationItemUserMessage::Content::type_?
77
+
78
+ def type=: (
79
+ OpenAI::Models::Realtime::RealtimeConversationItemUserMessage::Content::type_
80
+ ) -> OpenAI::Models::Realtime::RealtimeConversationItemUserMessage::Content::type_
81
+
82
+ def initialize: (
83
+ ?audio: String,
84
+ ?text: String,
85
+ ?transcript: String,
86
+ ?type: OpenAI::Models::Realtime::RealtimeConversationItemUserMessage::Content::type_
87
+ ) -> void
88
+
89
+ def to_hash: -> {
90
+ audio: String,
91
+ text: String,
92
+ transcript: String,
93
+ type: OpenAI::Models::Realtime::RealtimeConversationItemUserMessage::Content::type_
94
+ }
95
+
96
+ type type_ = :input_text | :input_audio
97
+
98
+ module Type
99
+ extend OpenAI::Internal::Type::Enum
100
+
101
+ INPUT_TEXT: :input_text
102
+ INPUT_AUDIO: :input_audio
103
+
104
+ def self?.values: -> ::Array[OpenAI::Models::Realtime::RealtimeConversationItemUserMessage::Content::type_]
105
+ end
106
+ end
107
+
108
+ type object = :"realtime.item"
109
+
110
+ module Object
111
+ extend OpenAI::Internal::Type::Enum
112
+
113
+ REALTIME_ITEM: :"realtime.item"
114
+
115
+ def self?.values: -> ::Array[OpenAI::Models::Realtime::RealtimeConversationItemUserMessage::object]
116
+ end
117
+
118
+ type status = :completed | :incomplete | :in_progress
119
+
120
+ module Status
121
+ extend OpenAI::Internal::Type::Enum
122
+
123
+ COMPLETED: :completed
124
+ INCOMPLETE: :incomplete
125
+ IN_PROGRESS: :in_progress
126
+
127
+ def self?.values: -> ::Array[OpenAI::Models::Realtime::RealtimeConversationItemUserMessage::status]
128
+ end
129
+ end
130
+ end
131
+ end
132
+ end
@@ -0,0 +1,42 @@
1
+ module OpenAI
2
+ module Models
3
+ module Realtime
4
+ type realtime_error =
5
+ {
6
+ message: String,
7
+ type: String,
8
+ code: String?,
9
+ event_id: String?,
10
+ param: String?
11
+ }
12
+
13
+ class RealtimeError < OpenAI::Internal::Type::BaseModel
14
+ attr_accessor message: String
15
+
16
+ attr_accessor type: String
17
+
18
+ attr_accessor code: String?
19
+
20
+ attr_accessor event_id: String?
21
+
22
+ attr_accessor param: String?
23
+
24
+ def initialize: (
25
+ message: String,
26
+ type: String,
27
+ ?code: String?,
28
+ ?event_id: String?,
29
+ ?param: String?
30
+ ) -> void
31
+
32
+ def to_hash: -> {
33
+ message: String,
34
+ type: String,
35
+ code: String?,
36
+ event_id: String?,
37
+ param: String?
38
+ }
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,32 @@
1
+ module OpenAI
2
+ module Models
3
+ module Realtime
4
+ type realtime_error_event =
5
+ {
6
+ error: OpenAI::Realtime::RealtimeError,
7
+ event_id: String,
8
+ type: :error
9
+ }
10
+
11
+ class RealtimeErrorEvent < OpenAI::Internal::Type::BaseModel
12
+ attr_accessor error: OpenAI::Realtime::RealtimeError
13
+
14
+ attr_accessor event_id: String
15
+
16
+ attr_accessor type: :error
17
+
18
+ def initialize: (
19
+ error: OpenAI::Realtime::RealtimeError,
20
+ event_id: String,
21
+ ?type: :error
22
+ ) -> void
23
+
24
+ def to_hash: -> {
25
+ error: OpenAI::Realtime::RealtimeError,
26
+ event_id: String,
27
+ type: :error
28
+ }
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,42 @@
1
+ module OpenAI
2
+ module Models
3
+ module Realtime
4
+ type realtime_mcp_approval_request =
5
+ {
6
+ id: String,
7
+ arguments: String,
8
+ name: String,
9
+ server_label: String,
10
+ type: :mcp_approval_request
11
+ }
12
+
13
+ class RealtimeMcpApprovalRequest < OpenAI::Internal::Type::BaseModel
14
+ attr_accessor id: String
15
+
16
+ attr_accessor arguments: String
17
+
18
+ attr_accessor name: String
19
+
20
+ attr_accessor server_label: String
21
+
22
+ attr_accessor type: :mcp_approval_request
23
+
24
+ def initialize: (
25
+ id: String,
26
+ arguments: String,
27
+ name: String,
28
+ server_label: String,
29
+ ?type: :mcp_approval_request
30
+ ) -> void
31
+
32
+ def to_hash: -> {
33
+ id: String,
34
+ arguments: String,
35
+ name: String,
36
+ server_label: String,
37
+ type: :mcp_approval_request
38
+ }
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,42 @@
1
+ module OpenAI
2
+ module Models
3
+ module Realtime
4
+ type realtime_mcp_approval_response =
5
+ {
6
+ id: String,
7
+ approval_request_id: String,
8
+ approve: bool,
9
+ type: :mcp_approval_response,
10
+ reason: String?
11
+ }
12
+
13
+ class RealtimeMcpApprovalResponse < OpenAI::Internal::Type::BaseModel
14
+ attr_accessor id: String
15
+
16
+ attr_accessor approval_request_id: String
17
+
18
+ attr_accessor approve: bool
19
+
20
+ attr_accessor type: :mcp_approval_response
21
+
22
+ attr_accessor reason: String?
23
+
24
+ def initialize: (
25
+ id: String,
26
+ approval_request_id: String,
27
+ approve: bool,
28
+ ?reason: String?,
29
+ ?type: :mcp_approval_response
30
+ ) -> void
31
+
32
+ def to_hash: -> {
33
+ id: String,
34
+ approval_request_id: String,
35
+ approve: bool,
36
+ type: :mcp_approval_response,
37
+ reason: String?
38
+ }
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,71 @@
1
+ module OpenAI
2
+ module Models
3
+ module Realtime
4
+ type realtime_mcp_list_tools =
5
+ {
6
+ server_label: String,
7
+ tools: ::Array[OpenAI::Realtime::RealtimeMcpListTools::Tool],
8
+ type: :mcp_list_tools,
9
+ id: String
10
+ }
11
+
12
+ class RealtimeMcpListTools < OpenAI::Internal::Type::BaseModel
13
+ attr_accessor server_label: String
14
+
15
+ attr_accessor tools: ::Array[OpenAI::Realtime::RealtimeMcpListTools::Tool]
16
+
17
+ attr_accessor type: :mcp_list_tools
18
+
19
+ attr_reader id: String?
20
+
21
+ def id=: (String) -> String
22
+
23
+ def initialize: (
24
+ server_label: String,
25
+ tools: ::Array[OpenAI::Realtime::RealtimeMcpListTools::Tool],
26
+ ?id: String,
27
+ ?type: :mcp_list_tools
28
+ ) -> void
29
+
30
+ def to_hash: -> {
31
+ server_label: String,
32
+ tools: ::Array[OpenAI::Realtime::RealtimeMcpListTools::Tool],
33
+ type: :mcp_list_tools,
34
+ id: String
35
+ }
36
+
37
+ type tool =
38
+ {
39
+ input_schema: top,
40
+ name: String,
41
+ annotations: top?,
42
+ description: String?
43
+ }
44
+
45
+ class Tool < OpenAI::Internal::Type::BaseModel
46
+ attr_accessor input_schema: top
47
+
48
+ attr_accessor name: String
49
+
50
+ attr_accessor annotations: top?
51
+
52
+ attr_accessor description: String?
53
+
54
+ def initialize: (
55
+ input_schema: top,
56
+ name: String,
57
+ ?annotations: top?,
58
+ ?description: String?
59
+ ) -> void
60
+
61
+ def to_hash: -> {
62
+ input_schema: top,
63
+ name: String,
64
+ annotations: top?,
65
+ description: String?
66
+ }
67
+ end
68
+ end
69
+ end
70
+ end
71
+ end
@@ -0,0 +1,28 @@
1
+ module OpenAI
2
+ module Models
3
+ module Realtime
4
+ type realtime_mcp_protocol_error =
5
+ { code: Integer, message: String, type: :protocol_error }
6
+
7
+ class RealtimeMcpProtocolError < OpenAI::Internal::Type::BaseModel
8
+ attr_accessor code: Integer
9
+
10
+ attr_accessor message: String
11
+
12
+ attr_accessor type: :protocol_error
13
+
14
+ def initialize: (
15
+ code: Integer,
16
+ message: String,
17
+ ?type: :protocol_error
18
+ ) -> void
19
+
20
+ def to_hash: -> {
21
+ code: Integer,
22
+ message: String,
23
+ type: :protocol_error
24
+ }
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,68 @@
1
+ module OpenAI
2
+ module Models
3
+ module Realtime
4
+ type realtime_mcp_tool_call =
5
+ {
6
+ id: String,
7
+ arguments: String,
8
+ name: String,
9
+ server_label: String,
10
+ type: :mcp_tool_call,
11
+ approval_request_id: String?,
12
+ error: OpenAI::Models::Realtime::RealtimeMcpToolCall::error?,
13
+ output: String?
14
+ }
15
+
16
+ class RealtimeMcpToolCall < OpenAI::Internal::Type::BaseModel
17
+ attr_accessor id: String
18
+
19
+ attr_accessor arguments: String
20
+
21
+ attr_accessor name: String
22
+
23
+ attr_accessor server_label: String
24
+
25
+ attr_accessor type: :mcp_tool_call
26
+
27
+ attr_accessor approval_request_id: String?
28
+
29
+ attr_accessor error: OpenAI::Models::Realtime::RealtimeMcpToolCall::error?
30
+
31
+ attr_accessor output: String?
32
+
33
+ def initialize: (
34
+ id: String,
35
+ arguments: String,
36
+ name: String,
37
+ server_label: String,
38
+ ?approval_request_id: String?,
39
+ ?error: OpenAI::Models::Realtime::RealtimeMcpToolCall::error?,
40
+ ?output: String?,
41
+ ?type: :mcp_tool_call
42
+ ) -> void
43
+
44
+ def to_hash: -> {
45
+ id: String,
46
+ arguments: String,
47
+ name: String,
48
+ server_label: String,
49
+ type: :mcp_tool_call,
50
+ approval_request_id: String?,
51
+ error: OpenAI::Models::Realtime::RealtimeMcpToolCall::error?,
52
+ output: String?
53
+ }
54
+
55
+ type error =
56
+ OpenAI::Realtime::RealtimeMcpProtocolError
57
+ | OpenAI::Realtime::RealtimeMcpToolExecutionError
58
+ | OpenAI::Realtime::RealtimeMcphttpError
59
+
60
+ module Error
61
+ extend OpenAI::Internal::Type::Union
62
+
63
+ def self?.variants: -> ::Array[OpenAI::Models::Realtime::RealtimeMcpToolCall::error]
64
+ end
65
+ end
66
+ end
67
+ end
68
+ end
@@ -0,0 +1,18 @@
1
+ module OpenAI
2
+ module Models
3
+ module Realtime
4
+ type realtime_mcp_tool_execution_error =
5
+ { message: String, type: :tool_execution_error }
6
+
7
+ class RealtimeMcpToolExecutionError < OpenAI::Internal::Type::BaseModel
8
+ attr_accessor message: String
9
+
10
+ attr_accessor type: :tool_execution_error
11
+
12
+ def initialize: (message: String, ?type: :tool_execution_error) -> void
13
+
14
+ def to_hash: -> { message: String, type: :tool_execution_error }
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,24 @@
1
+ module OpenAI
2
+ module Models
3
+ module Realtime
4
+ type realtime_mcphttp_error =
5
+ { code: Integer, message: String, type: :http_error }
6
+
7
+ class RealtimeMcphttpError < OpenAI::Internal::Type::BaseModel
8
+ attr_accessor code: Integer
9
+
10
+ attr_accessor message: String
11
+
12
+ attr_accessor type: :http_error
13
+
14
+ def initialize: (
15
+ code: Integer,
16
+ message: String,
17
+ ?type: :http_error
18
+ ) -> void
19
+
20
+ def to_hash: -> { code: Integer, message: String, type: :http_error }
21
+ end
22
+ end
23
+ end
24
+ end