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,47 @@
1
+ module OpenAI
2
+ module Models
3
+ module Realtime
4
+ type response_audio_done_event =
5
+ {
6
+ content_index: Integer,
7
+ event_id: String,
8
+ item_id: String,
9
+ output_index: Integer,
10
+ response_id: String,
11
+ type: :"response.output_audio.done"
12
+ }
13
+
14
+ class ResponseAudioDoneEvent < OpenAI::Internal::Type::BaseModel
15
+ attr_accessor content_index: Integer
16
+
17
+ attr_accessor event_id: String
18
+
19
+ attr_accessor item_id: String
20
+
21
+ attr_accessor output_index: Integer
22
+
23
+ attr_accessor response_id: String
24
+
25
+ attr_accessor type: :"response.output_audio.done"
26
+
27
+ def initialize: (
28
+ content_index: Integer,
29
+ event_id: String,
30
+ item_id: String,
31
+ output_index: Integer,
32
+ response_id: String,
33
+ ?type: :"response.output_audio.done"
34
+ ) -> void
35
+
36
+ def to_hash: -> {
37
+ content_index: Integer,
38
+ event_id: String,
39
+ item_id: String,
40
+ output_index: Integer,
41
+ response_id: String,
42
+ type: :"response.output_audio.done"
43
+ }
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,52 @@
1
+ module OpenAI
2
+ module Models
3
+ module Realtime
4
+ type response_audio_transcript_delta_event =
5
+ {
6
+ content_index: Integer,
7
+ delta: String,
8
+ event_id: String,
9
+ item_id: String,
10
+ output_index: Integer,
11
+ response_id: String,
12
+ type: :"response.output_audio_transcript.delta"
13
+ }
14
+
15
+ class ResponseAudioTranscriptDeltaEvent < OpenAI::Internal::Type::BaseModel
16
+ attr_accessor content_index: Integer
17
+
18
+ attr_accessor delta: String
19
+
20
+ attr_accessor event_id: String
21
+
22
+ attr_accessor item_id: String
23
+
24
+ attr_accessor output_index: Integer
25
+
26
+ attr_accessor response_id: String
27
+
28
+ attr_accessor type: :"response.output_audio_transcript.delta"
29
+
30
+ def initialize: (
31
+ content_index: Integer,
32
+ delta: String,
33
+ event_id: String,
34
+ item_id: String,
35
+ output_index: Integer,
36
+ response_id: String,
37
+ ?type: :"response.output_audio_transcript.delta"
38
+ ) -> void
39
+
40
+ def to_hash: -> {
41
+ content_index: Integer,
42
+ delta: String,
43
+ event_id: String,
44
+ item_id: String,
45
+ output_index: Integer,
46
+ response_id: String,
47
+ type: :"response.output_audio_transcript.delta"
48
+ }
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,52 @@
1
+ module OpenAI
2
+ module Models
3
+ module Realtime
4
+ type response_audio_transcript_done_event =
5
+ {
6
+ content_index: Integer,
7
+ event_id: String,
8
+ item_id: String,
9
+ output_index: Integer,
10
+ response_id: String,
11
+ transcript: String,
12
+ type: :"response.output_audio_transcript.done"
13
+ }
14
+
15
+ class ResponseAudioTranscriptDoneEvent < OpenAI::Internal::Type::BaseModel
16
+ attr_accessor content_index: Integer
17
+
18
+ attr_accessor event_id: String
19
+
20
+ attr_accessor item_id: String
21
+
22
+ attr_accessor output_index: Integer
23
+
24
+ attr_accessor response_id: String
25
+
26
+ attr_accessor transcript: String
27
+
28
+ attr_accessor type: :"response.output_audio_transcript.done"
29
+
30
+ def initialize: (
31
+ content_index: Integer,
32
+ event_id: String,
33
+ item_id: String,
34
+ output_index: Integer,
35
+ response_id: String,
36
+ transcript: String,
37
+ ?type: :"response.output_audio_transcript.done"
38
+ ) -> void
39
+
40
+ def to_hash: -> {
41
+ content_index: Integer,
42
+ event_id: String,
43
+ item_id: String,
44
+ output_index: Integer,
45
+ response_id: String,
46
+ transcript: String,
47
+ type: :"response.output_audio_transcript.done"
48
+ }
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,32 @@
1
+ module OpenAI
2
+ module Models
3
+ module Realtime
4
+ type response_cancel_event =
5
+ { type: :"response.cancel", event_id: String, response_id: String }
6
+
7
+ class ResponseCancelEvent < OpenAI::Internal::Type::BaseModel
8
+ attr_accessor type: :"response.cancel"
9
+
10
+ attr_reader event_id: String?
11
+
12
+ def event_id=: (String) -> String
13
+
14
+ attr_reader response_id: String?
15
+
16
+ def response_id=: (String) -> String
17
+
18
+ def initialize: (
19
+ ?event_id: String,
20
+ ?response_id: String,
21
+ ?type: :"response.cancel"
22
+ ) -> void
23
+
24
+ def to_hash: -> {
25
+ type: :"response.cancel",
26
+ event_id: String,
27
+ response_id: String
28
+ }
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,105 @@
1
+ module OpenAI
2
+ module Models
3
+ module Realtime
4
+ type response_content_part_added_event =
5
+ {
6
+ content_index: Integer,
7
+ event_id: String,
8
+ item_id: String,
9
+ output_index: Integer,
10
+ part: OpenAI::Realtime::ResponseContentPartAddedEvent::Part,
11
+ response_id: String,
12
+ type: :"response.content_part.added"
13
+ }
14
+
15
+ class ResponseContentPartAddedEvent < OpenAI::Internal::Type::BaseModel
16
+ attr_accessor content_index: Integer
17
+
18
+ attr_accessor event_id: String
19
+
20
+ attr_accessor item_id: String
21
+
22
+ attr_accessor output_index: Integer
23
+
24
+ attr_accessor part: OpenAI::Realtime::ResponseContentPartAddedEvent::Part
25
+
26
+ attr_accessor response_id: String
27
+
28
+ attr_accessor type: :"response.content_part.added"
29
+
30
+ def initialize: (
31
+ content_index: Integer,
32
+ event_id: String,
33
+ item_id: String,
34
+ output_index: Integer,
35
+ part: OpenAI::Realtime::ResponseContentPartAddedEvent::Part,
36
+ response_id: String,
37
+ ?type: :"response.content_part.added"
38
+ ) -> void
39
+
40
+ def to_hash: -> {
41
+ content_index: Integer,
42
+ event_id: String,
43
+ item_id: String,
44
+ output_index: Integer,
45
+ part: OpenAI::Realtime::ResponseContentPartAddedEvent::Part,
46
+ response_id: String,
47
+ type: :"response.content_part.added"
48
+ }
49
+
50
+ type part =
51
+ {
52
+ audio: String,
53
+ text: String,
54
+ transcript: String,
55
+ type: OpenAI::Models::Realtime::ResponseContentPartAddedEvent::Part::type_
56
+ }
57
+
58
+ class Part < OpenAI::Internal::Type::BaseModel
59
+ attr_reader audio: String?
60
+
61
+ def audio=: (String) -> String
62
+
63
+ attr_reader text: String?
64
+
65
+ def text=: (String) -> String
66
+
67
+ attr_reader transcript: String?
68
+
69
+ def transcript=: (String) -> String
70
+
71
+ attr_reader type: OpenAI::Models::Realtime::ResponseContentPartAddedEvent::Part::type_?
72
+
73
+ def type=: (
74
+ OpenAI::Models::Realtime::ResponseContentPartAddedEvent::Part::type_
75
+ ) -> OpenAI::Models::Realtime::ResponseContentPartAddedEvent::Part::type_
76
+
77
+ def initialize: (
78
+ ?audio: String,
79
+ ?text: String,
80
+ ?transcript: String,
81
+ ?type: OpenAI::Models::Realtime::ResponseContentPartAddedEvent::Part::type_
82
+ ) -> void
83
+
84
+ def to_hash: -> {
85
+ audio: String,
86
+ text: String,
87
+ transcript: String,
88
+ type: OpenAI::Models::Realtime::ResponseContentPartAddedEvent::Part::type_
89
+ }
90
+
91
+ type type_ = :text | :audio
92
+
93
+ module Type
94
+ extend OpenAI::Internal::Type::Enum
95
+
96
+ TEXT: :text
97
+ AUDIO: :audio
98
+
99
+ def self?.values: -> ::Array[OpenAI::Models::Realtime::ResponseContentPartAddedEvent::Part::type_]
100
+ end
101
+ end
102
+ end
103
+ end
104
+ end
105
+ end
@@ -0,0 +1,105 @@
1
+ module OpenAI
2
+ module Models
3
+ module Realtime
4
+ type response_content_part_done_event =
5
+ {
6
+ content_index: Integer,
7
+ event_id: String,
8
+ item_id: String,
9
+ output_index: Integer,
10
+ part: OpenAI::Realtime::ResponseContentPartDoneEvent::Part,
11
+ response_id: String,
12
+ type: :"response.content_part.done"
13
+ }
14
+
15
+ class ResponseContentPartDoneEvent < OpenAI::Internal::Type::BaseModel
16
+ attr_accessor content_index: Integer
17
+
18
+ attr_accessor event_id: String
19
+
20
+ attr_accessor item_id: String
21
+
22
+ attr_accessor output_index: Integer
23
+
24
+ attr_accessor part: OpenAI::Realtime::ResponseContentPartDoneEvent::Part
25
+
26
+ attr_accessor response_id: String
27
+
28
+ attr_accessor type: :"response.content_part.done"
29
+
30
+ def initialize: (
31
+ content_index: Integer,
32
+ event_id: String,
33
+ item_id: String,
34
+ output_index: Integer,
35
+ part: OpenAI::Realtime::ResponseContentPartDoneEvent::Part,
36
+ response_id: String,
37
+ ?type: :"response.content_part.done"
38
+ ) -> void
39
+
40
+ def to_hash: -> {
41
+ content_index: Integer,
42
+ event_id: String,
43
+ item_id: String,
44
+ output_index: Integer,
45
+ part: OpenAI::Realtime::ResponseContentPartDoneEvent::Part,
46
+ response_id: String,
47
+ type: :"response.content_part.done"
48
+ }
49
+
50
+ type part =
51
+ {
52
+ audio: String,
53
+ text: String,
54
+ transcript: String,
55
+ type: OpenAI::Models::Realtime::ResponseContentPartDoneEvent::Part::type_
56
+ }
57
+
58
+ class Part < OpenAI::Internal::Type::BaseModel
59
+ attr_reader audio: String?
60
+
61
+ def audio=: (String) -> String
62
+
63
+ attr_reader text: String?
64
+
65
+ def text=: (String) -> String
66
+
67
+ attr_reader transcript: String?
68
+
69
+ def transcript=: (String) -> String
70
+
71
+ attr_reader type: OpenAI::Models::Realtime::ResponseContentPartDoneEvent::Part::type_?
72
+
73
+ def type=: (
74
+ OpenAI::Models::Realtime::ResponseContentPartDoneEvent::Part::type_
75
+ ) -> OpenAI::Models::Realtime::ResponseContentPartDoneEvent::Part::type_
76
+
77
+ def initialize: (
78
+ ?audio: String,
79
+ ?text: String,
80
+ ?transcript: String,
81
+ ?type: OpenAI::Models::Realtime::ResponseContentPartDoneEvent::Part::type_
82
+ ) -> void
83
+
84
+ def to_hash: -> {
85
+ audio: String,
86
+ text: String,
87
+ transcript: String,
88
+ type: OpenAI::Models::Realtime::ResponseContentPartDoneEvent::Part::type_
89
+ }
90
+
91
+ type type_ = :text | :audio
92
+
93
+ module Type
94
+ extend OpenAI::Internal::Type::Enum
95
+
96
+ TEXT: :text
97
+ AUDIO: :audio
98
+
99
+ def self?.values: -> ::Array[OpenAI::Models::Realtime::ResponseContentPartDoneEvent::Part::type_]
100
+ end
101
+ end
102
+ end
103
+ end
104
+ end
105
+ end
@@ -0,0 +1,281 @@
1
+ module OpenAI
2
+ module Models
3
+ module Realtime
4
+ type response_create_event =
5
+ {
6
+ type: :"response.create",
7
+ event_id: String,
8
+ response: OpenAI::Realtime::ResponseCreateEvent::Response
9
+ }
10
+
11
+ class ResponseCreateEvent < OpenAI::Internal::Type::BaseModel
12
+ attr_accessor type: :"response.create"
13
+
14
+ attr_reader event_id: String?
15
+
16
+ def event_id=: (String) -> String
17
+
18
+ attr_reader response: OpenAI::Realtime::ResponseCreateEvent::Response?
19
+
20
+ def response=: (
21
+ OpenAI::Realtime::ResponseCreateEvent::Response
22
+ ) -> OpenAI::Realtime::ResponseCreateEvent::Response
23
+
24
+ def initialize: (
25
+ ?event_id: String,
26
+ ?response: OpenAI::Realtime::ResponseCreateEvent::Response,
27
+ ?type: :"response.create"
28
+ ) -> void
29
+
30
+ def to_hash: -> {
31
+ type: :"response.create",
32
+ event_id: String,
33
+ response: OpenAI::Realtime::ResponseCreateEvent::Response
34
+ }
35
+
36
+ type response =
37
+ {
38
+ conversation: OpenAI::Models::Realtime::ResponseCreateEvent::Response::conversation,
39
+ input: ::Array[OpenAI::Models::Realtime::conversation_item],
40
+ instructions: String,
41
+ max_output_tokens: OpenAI::Models::Realtime::ResponseCreateEvent::Response::max_output_tokens,
42
+ metadata: OpenAI::Models::metadata?,
43
+ modalities: ::Array[OpenAI::Models::Realtime::ResponseCreateEvent::Response::modality],
44
+ output_audio_format: OpenAI::Models::Realtime::ResponseCreateEvent::Response::output_audio_format,
45
+ prompt: OpenAI::Responses::ResponsePrompt?,
46
+ temperature: Float,
47
+ tool_choice: OpenAI::Models::Realtime::ResponseCreateEvent::Response::tool_choice,
48
+ tools: ::Array[OpenAI::Realtime::ResponseCreateEvent::Response::Tool],
49
+ voice: OpenAI::Models::Realtime::ResponseCreateEvent::Response::voice
50
+ }
51
+
52
+ class Response < OpenAI::Internal::Type::BaseModel
53
+ attr_reader conversation: OpenAI::Models::Realtime::ResponseCreateEvent::Response::conversation?
54
+
55
+ def conversation=: (
56
+ OpenAI::Models::Realtime::ResponseCreateEvent::Response::conversation
57
+ ) -> OpenAI::Models::Realtime::ResponseCreateEvent::Response::conversation
58
+
59
+ attr_reader input: ::Array[OpenAI::Models::Realtime::conversation_item]?
60
+
61
+ def input=: (
62
+ ::Array[OpenAI::Models::Realtime::conversation_item]
63
+ ) -> ::Array[OpenAI::Models::Realtime::conversation_item]
64
+
65
+ attr_reader instructions: String?
66
+
67
+ def instructions=: (String) -> String
68
+
69
+ attr_reader max_output_tokens: OpenAI::Models::Realtime::ResponseCreateEvent::Response::max_output_tokens?
70
+
71
+ def max_output_tokens=: (
72
+ OpenAI::Models::Realtime::ResponseCreateEvent::Response::max_output_tokens
73
+ ) -> OpenAI::Models::Realtime::ResponseCreateEvent::Response::max_output_tokens
74
+
75
+ attr_accessor metadata: OpenAI::Models::metadata?
76
+
77
+ attr_reader modalities: ::Array[OpenAI::Models::Realtime::ResponseCreateEvent::Response::modality]?
78
+
79
+ def modalities=: (
80
+ ::Array[OpenAI::Models::Realtime::ResponseCreateEvent::Response::modality]
81
+ ) -> ::Array[OpenAI::Models::Realtime::ResponseCreateEvent::Response::modality]
82
+
83
+ attr_reader output_audio_format: OpenAI::Models::Realtime::ResponseCreateEvent::Response::output_audio_format?
84
+
85
+ def output_audio_format=: (
86
+ OpenAI::Models::Realtime::ResponseCreateEvent::Response::output_audio_format
87
+ ) -> OpenAI::Models::Realtime::ResponseCreateEvent::Response::output_audio_format
88
+
89
+ attr_accessor prompt: OpenAI::Responses::ResponsePrompt?
90
+
91
+ attr_reader temperature: Float?
92
+
93
+ def temperature=: (Float) -> Float
94
+
95
+ attr_reader tool_choice: OpenAI::Models::Realtime::ResponseCreateEvent::Response::tool_choice?
96
+
97
+ def tool_choice=: (
98
+ OpenAI::Models::Realtime::ResponseCreateEvent::Response::tool_choice
99
+ ) -> OpenAI::Models::Realtime::ResponseCreateEvent::Response::tool_choice
100
+
101
+ attr_reader tools: ::Array[OpenAI::Realtime::ResponseCreateEvent::Response::Tool]?
102
+
103
+ def tools=: (
104
+ ::Array[OpenAI::Realtime::ResponseCreateEvent::Response::Tool]
105
+ ) -> ::Array[OpenAI::Realtime::ResponseCreateEvent::Response::Tool]
106
+
107
+ attr_reader voice: OpenAI::Models::Realtime::ResponseCreateEvent::Response::voice?
108
+
109
+ def voice=: (
110
+ OpenAI::Models::Realtime::ResponseCreateEvent::Response::voice
111
+ ) -> OpenAI::Models::Realtime::ResponseCreateEvent::Response::voice
112
+
113
+ def initialize: (
114
+ ?conversation: OpenAI::Models::Realtime::ResponseCreateEvent::Response::conversation,
115
+ ?input: ::Array[OpenAI::Models::Realtime::conversation_item],
116
+ ?instructions: String,
117
+ ?max_output_tokens: OpenAI::Models::Realtime::ResponseCreateEvent::Response::max_output_tokens,
118
+ ?metadata: OpenAI::Models::metadata?,
119
+ ?modalities: ::Array[OpenAI::Models::Realtime::ResponseCreateEvent::Response::modality],
120
+ ?output_audio_format: OpenAI::Models::Realtime::ResponseCreateEvent::Response::output_audio_format,
121
+ ?prompt: OpenAI::Responses::ResponsePrompt?,
122
+ ?temperature: Float,
123
+ ?tool_choice: OpenAI::Models::Realtime::ResponseCreateEvent::Response::tool_choice,
124
+ ?tools: ::Array[OpenAI::Realtime::ResponseCreateEvent::Response::Tool],
125
+ ?voice: OpenAI::Models::Realtime::ResponseCreateEvent::Response::voice
126
+ ) -> void
127
+
128
+ def to_hash: -> {
129
+ conversation: OpenAI::Models::Realtime::ResponseCreateEvent::Response::conversation,
130
+ input: ::Array[OpenAI::Models::Realtime::conversation_item],
131
+ instructions: String,
132
+ max_output_tokens: OpenAI::Models::Realtime::ResponseCreateEvent::Response::max_output_tokens,
133
+ metadata: OpenAI::Models::metadata?,
134
+ modalities: ::Array[OpenAI::Models::Realtime::ResponseCreateEvent::Response::modality],
135
+ output_audio_format: OpenAI::Models::Realtime::ResponseCreateEvent::Response::output_audio_format,
136
+ prompt: OpenAI::Responses::ResponsePrompt?,
137
+ temperature: Float,
138
+ tool_choice: OpenAI::Models::Realtime::ResponseCreateEvent::Response::tool_choice,
139
+ tools: ::Array[OpenAI::Realtime::ResponseCreateEvent::Response::Tool],
140
+ voice: OpenAI::Models::Realtime::ResponseCreateEvent::Response::voice
141
+ }
142
+
143
+ type conversation = String | :auto | :none
144
+
145
+ module Conversation
146
+ extend OpenAI::Internal::Type::Union
147
+
148
+ def self?.variants: -> ::Array[OpenAI::Models::Realtime::ResponseCreateEvent::Response::conversation]
149
+
150
+ AUTO: :auto
151
+ NONE: :none
152
+ end
153
+
154
+ type max_output_tokens = Integer | :inf
155
+
156
+ module MaxOutputTokens
157
+ extend OpenAI::Internal::Type::Union
158
+
159
+ def self?.variants: -> ::Array[OpenAI::Models::Realtime::ResponseCreateEvent::Response::max_output_tokens]
160
+ end
161
+
162
+ type modality = :text | :audio
163
+
164
+ module Modality
165
+ extend OpenAI::Internal::Type::Enum
166
+
167
+ TEXT: :text
168
+ AUDIO: :audio
169
+
170
+ def self?.values: -> ::Array[OpenAI::Models::Realtime::ResponseCreateEvent::Response::modality]
171
+ end
172
+
173
+ type output_audio_format = :pcm16 | :g711_ulaw | :g711_alaw
174
+
175
+ module OutputAudioFormat
176
+ extend OpenAI::Internal::Type::Enum
177
+
178
+ PCM16: :pcm16
179
+ G711_ULAW: :g711_ulaw
180
+ G711_ALAW: :g711_alaw
181
+
182
+ def self?.values: -> ::Array[OpenAI::Models::Realtime::ResponseCreateEvent::Response::output_audio_format]
183
+ end
184
+
185
+ type tool_choice =
186
+ OpenAI::Models::Responses::tool_choice_options
187
+ | OpenAI::Responses::ToolChoiceFunction
188
+ | OpenAI::Responses::ToolChoiceMcp
189
+
190
+ module ToolChoice
191
+ extend OpenAI::Internal::Type::Union
192
+
193
+ def self?.variants: -> ::Array[OpenAI::Models::Realtime::ResponseCreateEvent::Response::tool_choice]
194
+ end
195
+
196
+ type tool =
197
+ {
198
+ description: String,
199
+ name: String,
200
+ parameters: top,
201
+ type: OpenAI::Models::Realtime::ResponseCreateEvent::Response::Tool::type_
202
+ }
203
+
204
+ class Tool < OpenAI::Internal::Type::BaseModel
205
+ attr_reader description: String?
206
+
207
+ def description=: (String) -> String
208
+
209
+ attr_reader name: String?
210
+
211
+ def name=: (String) -> String
212
+
213
+ attr_reader parameters: top?
214
+
215
+ def parameters=: (top) -> top
216
+
217
+ attr_reader type: OpenAI::Models::Realtime::ResponseCreateEvent::Response::Tool::type_?
218
+
219
+ def type=: (
220
+ OpenAI::Models::Realtime::ResponseCreateEvent::Response::Tool::type_
221
+ ) -> OpenAI::Models::Realtime::ResponseCreateEvent::Response::Tool::type_
222
+
223
+ def initialize: (
224
+ ?description: String,
225
+ ?name: String,
226
+ ?parameters: top,
227
+ ?type: OpenAI::Models::Realtime::ResponseCreateEvent::Response::Tool::type_
228
+ ) -> void
229
+
230
+ def to_hash: -> {
231
+ description: String,
232
+ name: String,
233
+ parameters: top,
234
+ type: OpenAI::Models::Realtime::ResponseCreateEvent::Response::Tool::type_
235
+ }
236
+
237
+ type type_ = :function
238
+
239
+ module Type
240
+ extend OpenAI::Internal::Type::Enum
241
+
242
+ FUNCTION: :function
243
+
244
+ def self?.values: -> ::Array[OpenAI::Models::Realtime::ResponseCreateEvent::Response::Tool::type_]
245
+ end
246
+ end
247
+
248
+ type voice =
249
+ String
250
+ | :alloy
251
+ | :ash
252
+ | :ballad
253
+ | :coral
254
+ | :echo
255
+ | :sage
256
+ | :shimmer
257
+ | :verse
258
+ | :marin
259
+ | :cedar
260
+
261
+ module Voice
262
+ extend OpenAI::Internal::Type::Union
263
+
264
+ def self?.variants: -> ::Array[OpenAI::Models::Realtime::ResponseCreateEvent::Response::voice]
265
+
266
+ ALLOY: :alloy
267
+ ASH: :ash
268
+ BALLAD: :ballad
269
+ CORAL: :coral
270
+ ECHO: :echo
271
+ SAGE: :sage
272
+ SHIMMER: :shimmer
273
+ VERSE: :verse
274
+ MARIN: :marin
275
+ CEDAR: :cedar
276
+ end
277
+ end
278
+ end
279
+ end
280
+ end
281
+ end