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,526 @@
1
+ module OpenAI
2
+ module Models
3
+ class RealtimeSessionCreateResponse = Realtime::RealtimeSessionCreateResponse
4
+
5
+ module Realtime
6
+ type realtime_session_create_response =
7
+ {
8
+ id: String,
9
+ audio: OpenAI::Realtime::RealtimeSessionCreateResponse::Audio,
10
+ expires_at: Integer,
11
+ include: ::Array[OpenAI::Models::Realtime::RealtimeSessionCreateResponse::include_],
12
+ instructions: String,
13
+ max_output_tokens: OpenAI::Models::Realtime::RealtimeSessionCreateResponse::max_output_tokens,
14
+ model: String,
15
+ object: String,
16
+ output_modalities: ::Array[OpenAI::Models::Realtime::RealtimeSessionCreateResponse::output_modality],
17
+ tool_choice: String,
18
+ tools: ::Array[OpenAI::Realtime::RealtimeSessionCreateResponse::Tool],
19
+ tracing: OpenAI::Models::Realtime::RealtimeSessionCreateResponse::tracing,
20
+ turn_detection: OpenAI::Realtime::RealtimeSessionCreateResponse::TurnDetection
21
+ }
22
+
23
+ class RealtimeSessionCreateResponse < OpenAI::Internal::Type::BaseModel
24
+ attr_reader id: String?
25
+
26
+ def id=: (String) -> String
27
+
28
+ attr_reader audio: OpenAI::Realtime::RealtimeSessionCreateResponse::Audio?
29
+
30
+ def audio=: (
31
+ OpenAI::Realtime::RealtimeSessionCreateResponse::Audio
32
+ ) -> OpenAI::Realtime::RealtimeSessionCreateResponse::Audio
33
+
34
+ attr_reader expires_at: Integer?
35
+
36
+ def expires_at=: (Integer) -> Integer
37
+
38
+ attr_reader include: ::Array[OpenAI::Models::Realtime::RealtimeSessionCreateResponse::include_]?
39
+
40
+ def include=: (
41
+ ::Array[OpenAI::Models::Realtime::RealtimeSessionCreateResponse::include_]
42
+ ) -> ::Array[OpenAI::Models::Realtime::RealtimeSessionCreateResponse::include_]
43
+
44
+ attr_reader instructions: String?
45
+
46
+ def instructions=: (String) -> String
47
+
48
+ attr_reader max_output_tokens: OpenAI::Models::Realtime::RealtimeSessionCreateResponse::max_output_tokens?
49
+
50
+ def max_output_tokens=: (
51
+ OpenAI::Models::Realtime::RealtimeSessionCreateResponse::max_output_tokens
52
+ ) -> OpenAI::Models::Realtime::RealtimeSessionCreateResponse::max_output_tokens
53
+
54
+ attr_reader model: String?
55
+
56
+ def model=: (String) -> String
57
+
58
+ attr_reader object: String?
59
+
60
+ def object=: (String) -> String
61
+
62
+ attr_reader output_modalities: ::Array[OpenAI::Models::Realtime::RealtimeSessionCreateResponse::output_modality]?
63
+
64
+ def output_modalities=: (
65
+ ::Array[OpenAI::Models::Realtime::RealtimeSessionCreateResponse::output_modality]
66
+ ) -> ::Array[OpenAI::Models::Realtime::RealtimeSessionCreateResponse::output_modality]
67
+
68
+ attr_reader tool_choice: String?
69
+
70
+ def tool_choice=: (String) -> String
71
+
72
+ attr_reader tools: ::Array[OpenAI::Realtime::RealtimeSessionCreateResponse::Tool]?
73
+
74
+ def tools=: (
75
+ ::Array[OpenAI::Realtime::RealtimeSessionCreateResponse::Tool]
76
+ ) -> ::Array[OpenAI::Realtime::RealtimeSessionCreateResponse::Tool]
77
+
78
+ attr_reader tracing: OpenAI::Models::Realtime::RealtimeSessionCreateResponse::tracing?
79
+
80
+ def tracing=: (
81
+ OpenAI::Models::Realtime::RealtimeSessionCreateResponse::tracing
82
+ ) -> OpenAI::Models::Realtime::RealtimeSessionCreateResponse::tracing
83
+
84
+ attr_reader turn_detection: OpenAI::Realtime::RealtimeSessionCreateResponse::TurnDetection?
85
+
86
+ def turn_detection=: (
87
+ OpenAI::Realtime::RealtimeSessionCreateResponse::TurnDetection
88
+ ) -> OpenAI::Realtime::RealtimeSessionCreateResponse::TurnDetection
89
+
90
+ def initialize: (
91
+ ?id: String,
92
+ ?audio: OpenAI::Realtime::RealtimeSessionCreateResponse::Audio,
93
+ ?expires_at: Integer,
94
+ ?include: ::Array[OpenAI::Models::Realtime::RealtimeSessionCreateResponse::include_],
95
+ ?instructions: String,
96
+ ?max_output_tokens: OpenAI::Models::Realtime::RealtimeSessionCreateResponse::max_output_tokens,
97
+ ?model: String,
98
+ ?object: String,
99
+ ?output_modalities: ::Array[OpenAI::Models::Realtime::RealtimeSessionCreateResponse::output_modality],
100
+ ?tool_choice: String,
101
+ ?tools: ::Array[OpenAI::Realtime::RealtimeSessionCreateResponse::Tool],
102
+ ?tracing: OpenAI::Models::Realtime::RealtimeSessionCreateResponse::tracing,
103
+ ?turn_detection: OpenAI::Realtime::RealtimeSessionCreateResponse::TurnDetection
104
+ ) -> void
105
+
106
+ def to_hash: -> {
107
+ id: String,
108
+ audio: OpenAI::Realtime::RealtimeSessionCreateResponse::Audio,
109
+ expires_at: Integer,
110
+ include: ::Array[OpenAI::Models::Realtime::RealtimeSessionCreateResponse::include_],
111
+ instructions: String,
112
+ max_output_tokens: OpenAI::Models::Realtime::RealtimeSessionCreateResponse::max_output_tokens,
113
+ model: String,
114
+ object: String,
115
+ output_modalities: ::Array[OpenAI::Models::Realtime::RealtimeSessionCreateResponse::output_modality],
116
+ tool_choice: String,
117
+ tools: ::Array[OpenAI::Realtime::RealtimeSessionCreateResponse::Tool],
118
+ tracing: OpenAI::Models::Realtime::RealtimeSessionCreateResponse::tracing,
119
+ turn_detection: OpenAI::Realtime::RealtimeSessionCreateResponse::TurnDetection
120
+ }
121
+
122
+ type audio =
123
+ {
124
+ input: OpenAI::Realtime::RealtimeSessionCreateResponse::Audio::Input,
125
+ output: OpenAI::Realtime::RealtimeSessionCreateResponse::Audio::Output
126
+ }
127
+
128
+ class Audio < OpenAI::Internal::Type::BaseModel
129
+ attr_reader input: OpenAI::Realtime::RealtimeSessionCreateResponse::Audio::Input?
130
+
131
+ def input=: (
132
+ OpenAI::Realtime::RealtimeSessionCreateResponse::Audio::Input
133
+ ) -> OpenAI::Realtime::RealtimeSessionCreateResponse::Audio::Input
134
+
135
+ attr_reader output: OpenAI::Realtime::RealtimeSessionCreateResponse::Audio::Output?
136
+
137
+ def output=: (
138
+ OpenAI::Realtime::RealtimeSessionCreateResponse::Audio::Output
139
+ ) -> OpenAI::Realtime::RealtimeSessionCreateResponse::Audio::Output
140
+
141
+ def initialize: (
142
+ ?input: OpenAI::Realtime::RealtimeSessionCreateResponse::Audio::Input,
143
+ ?output: OpenAI::Realtime::RealtimeSessionCreateResponse::Audio::Output
144
+ ) -> void
145
+
146
+ def to_hash: -> {
147
+ input: OpenAI::Realtime::RealtimeSessionCreateResponse::Audio::Input,
148
+ output: OpenAI::Realtime::RealtimeSessionCreateResponse::Audio::Output
149
+ }
150
+
151
+ type input =
152
+ {
153
+ format_: String,
154
+ noise_reduction: OpenAI::Realtime::RealtimeSessionCreateResponse::Audio::Input::NoiseReduction,
155
+ transcription: OpenAI::Realtime::RealtimeSessionCreateResponse::Audio::Input::Transcription,
156
+ turn_detection: OpenAI::Realtime::RealtimeSessionCreateResponse::Audio::Input::TurnDetection
157
+ }
158
+
159
+ class Input < OpenAI::Internal::Type::BaseModel
160
+ attr_reader format_: String?
161
+
162
+ def format_=: (String) -> String
163
+
164
+ attr_reader noise_reduction: OpenAI::Realtime::RealtimeSessionCreateResponse::Audio::Input::NoiseReduction?
165
+
166
+ def noise_reduction=: (
167
+ OpenAI::Realtime::RealtimeSessionCreateResponse::Audio::Input::NoiseReduction
168
+ ) -> OpenAI::Realtime::RealtimeSessionCreateResponse::Audio::Input::NoiseReduction
169
+
170
+ attr_reader transcription: OpenAI::Realtime::RealtimeSessionCreateResponse::Audio::Input::Transcription?
171
+
172
+ def transcription=: (
173
+ OpenAI::Realtime::RealtimeSessionCreateResponse::Audio::Input::Transcription
174
+ ) -> OpenAI::Realtime::RealtimeSessionCreateResponse::Audio::Input::Transcription
175
+
176
+ attr_reader turn_detection: OpenAI::Realtime::RealtimeSessionCreateResponse::Audio::Input::TurnDetection?
177
+
178
+ def turn_detection=: (
179
+ OpenAI::Realtime::RealtimeSessionCreateResponse::Audio::Input::TurnDetection
180
+ ) -> OpenAI::Realtime::RealtimeSessionCreateResponse::Audio::Input::TurnDetection
181
+
182
+ def initialize: (
183
+ ?format_: String,
184
+ ?noise_reduction: OpenAI::Realtime::RealtimeSessionCreateResponse::Audio::Input::NoiseReduction,
185
+ ?transcription: OpenAI::Realtime::RealtimeSessionCreateResponse::Audio::Input::Transcription,
186
+ ?turn_detection: OpenAI::Realtime::RealtimeSessionCreateResponse::Audio::Input::TurnDetection
187
+ ) -> void
188
+
189
+ def to_hash: -> {
190
+ format_: String,
191
+ noise_reduction: OpenAI::Realtime::RealtimeSessionCreateResponse::Audio::Input::NoiseReduction,
192
+ transcription: OpenAI::Realtime::RealtimeSessionCreateResponse::Audio::Input::Transcription,
193
+ turn_detection: OpenAI::Realtime::RealtimeSessionCreateResponse::Audio::Input::TurnDetection
194
+ }
195
+
196
+ type noise_reduction =
197
+ {
198
+ type: OpenAI::Models::Realtime::RealtimeSessionCreateResponse::Audio::Input::NoiseReduction::type_
199
+ }
200
+
201
+ class NoiseReduction < OpenAI::Internal::Type::BaseModel
202
+ attr_reader type: OpenAI::Models::Realtime::RealtimeSessionCreateResponse::Audio::Input::NoiseReduction::type_?
203
+
204
+ def type=: (
205
+ OpenAI::Models::Realtime::RealtimeSessionCreateResponse::Audio::Input::NoiseReduction::type_
206
+ ) -> OpenAI::Models::Realtime::RealtimeSessionCreateResponse::Audio::Input::NoiseReduction::type_
207
+
208
+ def initialize: (
209
+ ?type: OpenAI::Models::Realtime::RealtimeSessionCreateResponse::Audio::Input::NoiseReduction::type_
210
+ ) -> void
211
+
212
+ def to_hash: -> {
213
+ type: OpenAI::Models::Realtime::RealtimeSessionCreateResponse::Audio::Input::NoiseReduction::type_
214
+ }
215
+
216
+ type type_ = :near_field | :far_field
217
+
218
+ module Type
219
+ extend OpenAI::Internal::Type::Enum
220
+
221
+ NEAR_FIELD: :near_field
222
+ FAR_FIELD: :far_field
223
+
224
+ def self?.values: -> ::Array[OpenAI::Models::Realtime::RealtimeSessionCreateResponse::Audio::Input::NoiseReduction::type_]
225
+ end
226
+ end
227
+
228
+ type transcription =
229
+ { language: String, model: String, prompt: String }
230
+
231
+ class Transcription < OpenAI::Internal::Type::BaseModel
232
+ attr_reader language: String?
233
+
234
+ def language=: (String) -> String
235
+
236
+ attr_reader model: String?
237
+
238
+ def model=: (String) -> String
239
+
240
+ attr_reader prompt: String?
241
+
242
+ def prompt=: (String) -> String
243
+
244
+ def initialize: (
245
+ ?language: String,
246
+ ?model: String,
247
+ ?prompt: String
248
+ ) -> void
249
+
250
+ def to_hash: -> {
251
+ language: String,
252
+ model: String,
253
+ prompt: String
254
+ }
255
+ end
256
+
257
+ type turn_detection =
258
+ {
259
+ prefix_padding_ms: Integer,
260
+ silence_duration_ms: Integer,
261
+ threshold: Float,
262
+ type: String
263
+ }
264
+
265
+ class TurnDetection < OpenAI::Internal::Type::BaseModel
266
+ attr_reader prefix_padding_ms: Integer?
267
+
268
+ def prefix_padding_ms=: (Integer) -> Integer
269
+
270
+ attr_reader silence_duration_ms: Integer?
271
+
272
+ def silence_duration_ms=: (Integer) -> Integer
273
+
274
+ attr_reader threshold: Float?
275
+
276
+ def threshold=: (Float) -> Float
277
+
278
+ attr_reader type: String?
279
+
280
+ def type=: (String) -> String
281
+
282
+ def initialize: (
283
+ ?prefix_padding_ms: Integer,
284
+ ?silence_duration_ms: Integer,
285
+ ?threshold: Float,
286
+ ?type: String
287
+ ) -> void
288
+
289
+ def to_hash: -> {
290
+ prefix_padding_ms: Integer,
291
+ silence_duration_ms: Integer,
292
+ threshold: Float,
293
+ type: String
294
+ }
295
+ end
296
+ end
297
+
298
+ type output =
299
+ {
300
+ format_: String,
301
+ speed: Float,
302
+ voice: OpenAI::Models::Realtime::RealtimeSessionCreateResponse::Audio::Output::voice
303
+ }
304
+
305
+ class Output < OpenAI::Internal::Type::BaseModel
306
+ attr_reader format_: String?
307
+
308
+ def format_=: (String) -> String
309
+
310
+ attr_reader speed: Float?
311
+
312
+ def speed=: (Float) -> Float
313
+
314
+ attr_reader voice: OpenAI::Models::Realtime::RealtimeSessionCreateResponse::Audio::Output::voice?
315
+
316
+ def voice=: (
317
+ OpenAI::Models::Realtime::RealtimeSessionCreateResponse::Audio::Output::voice
318
+ ) -> OpenAI::Models::Realtime::RealtimeSessionCreateResponse::Audio::Output::voice
319
+
320
+ def initialize: (
321
+ ?format_: String,
322
+ ?speed: Float,
323
+ ?voice: OpenAI::Models::Realtime::RealtimeSessionCreateResponse::Audio::Output::voice
324
+ ) -> void
325
+
326
+ def to_hash: -> {
327
+ format_: String,
328
+ speed: Float,
329
+ voice: OpenAI::Models::Realtime::RealtimeSessionCreateResponse::Audio::Output::voice
330
+ }
331
+
332
+ type voice =
333
+ String
334
+ | :alloy
335
+ | :ash
336
+ | :ballad
337
+ | :coral
338
+ | :echo
339
+ | :sage
340
+ | :shimmer
341
+ | :verse
342
+ | :marin
343
+ | :cedar
344
+
345
+ module Voice
346
+ extend OpenAI::Internal::Type::Union
347
+
348
+ def self?.variants: -> ::Array[OpenAI::Models::Realtime::RealtimeSessionCreateResponse::Audio::Output::voice]
349
+
350
+ ALLOY: :alloy
351
+ ASH: :ash
352
+ BALLAD: :ballad
353
+ CORAL: :coral
354
+ ECHO: :echo
355
+ SAGE: :sage
356
+ SHIMMER: :shimmer
357
+ VERSE: :verse
358
+ MARIN: :marin
359
+ CEDAR: :cedar
360
+ end
361
+ end
362
+ end
363
+
364
+ type include_ = :"item.input_audio_transcription.logprobs"
365
+
366
+ module Include
367
+ extend OpenAI::Internal::Type::Enum
368
+
369
+ ITEM_INPUT_AUDIO_TRANSCRIPTION_LOGPROBS: :"item.input_audio_transcription.logprobs"
370
+
371
+ def self?.values: -> ::Array[OpenAI::Models::Realtime::RealtimeSessionCreateResponse::include_]
372
+ end
373
+
374
+ type max_output_tokens = Integer | :inf
375
+
376
+ module MaxOutputTokens
377
+ extend OpenAI::Internal::Type::Union
378
+
379
+ def self?.variants: -> ::Array[OpenAI::Models::Realtime::RealtimeSessionCreateResponse::max_output_tokens]
380
+ end
381
+
382
+ type output_modality = :text | :audio
383
+
384
+ module OutputModality
385
+ extend OpenAI::Internal::Type::Enum
386
+
387
+ TEXT: :text
388
+ AUDIO: :audio
389
+
390
+ def self?.values: -> ::Array[OpenAI::Models::Realtime::RealtimeSessionCreateResponse::output_modality]
391
+ end
392
+
393
+ type tool =
394
+ {
395
+ description: String,
396
+ name: String,
397
+ parameters: top,
398
+ type: OpenAI::Models::Realtime::RealtimeSessionCreateResponse::Tool::type_
399
+ }
400
+
401
+ class Tool < OpenAI::Internal::Type::BaseModel
402
+ attr_reader description: String?
403
+
404
+ def description=: (String) -> String
405
+
406
+ attr_reader name: String?
407
+
408
+ def name=: (String) -> String
409
+
410
+ attr_reader parameters: top?
411
+
412
+ def parameters=: (top) -> top
413
+
414
+ attr_reader type: OpenAI::Models::Realtime::RealtimeSessionCreateResponse::Tool::type_?
415
+
416
+ def type=: (
417
+ OpenAI::Models::Realtime::RealtimeSessionCreateResponse::Tool::type_
418
+ ) -> OpenAI::Models::Realtime::RealtimeSessionCreateResponse::Tool::type_
419
+
420
+ def initialize: (
421
+ ?description: String,
422
+ ?name: String,
423
+ ?parameters: top,
424
+ ?type: OpenAI::Models::Realtime::RealtimeSessionCreateResponse::Tool::type_
425
+ ) -> void
426
+
427
+ def to_hash: -> {
428
+ description: String,
429
+ name: String,
430
+ parameters: top,
431
+ type: OpenAI::Models::Realtime::RealtimeSessionCreateResponse::Tool::type_
432
+ }
433
+
434
+ type type_ = :function
435
+
436
+ module Type
437
+ extend OpenAI::Internal::Type::Enum
438
+
439
+ FUNCTION: :function
440
+
441
+ def self?.values: -> ::Array[OpenAI::Models::Realtime::RealtimeSessionCreateResponse::Tool::type_]
442
+ end
443
+ end
444
+
445
+ type tracing =
446
+ :auto
447
+ | OpenAI::Realtime::RealtimeSessionCreateResponse::Tracing::TracingConfiguration
448
+
449
+ module Tracing
450
+ extend OpenAI::Internal::Type::Union
451
+
452
+ type tracing_configuration =
453
+ { group_id: String, metadata: top, workflow_name: String }
454
+
455
+ class TracingConfiguration < OpenAI::Internal::Type::BaseModel
456
+ attr_reader group_id: String?
457
+
458
+ def group_id=: (String) -> String
459
+
460
+ attr_reader metadata: top?
461
+
462
+ def metadata=: (top) -> top
463
+
464
+ attr_reader workflow_name: String?
465
+
466
+ def workflow_name=: (String) -> String
467
+
468
+ def initialize: (
469
+ ?group_id: String,
470
+ ?metadata: top,
471
+ ?workflow_name: String
472
+ ) -> void
473
+
474
+ def to_hash: -> {
475
+ group_id: String,
476
+ metadata: top,
477
+ workflow_name: String
478
+ }
479
+ end
480
+
481
+ def self?.variants: -> ::Array[OpenAI::Models::Realtime::RealtimeSessionCreateResponse::tracing]
482
+ end
483
+
484
+ type turn_detection =
485
+ {
486
+ prefix_padding_ms: Integer,
487
+ silence_duration_ms: Integer,
488
+ threshold: Float,
489
+ type: String
490
+ }
491
+
492
+ class TurnDetection < OpenAI::Internal::Type::BaseModel
493
+ attr_reader prefix_padding_ms: Integer?
494
+
495
+ def prefix_padding_ms=: (Integer) -> Integer
496
+
497
+ attr_reader silence_duration_ms: Integer?
498
+
499
+ def silence_duration_ms=: (Integer) -> Integer
500
+
501
+ attr_reader threshold: Float?
502
+
503
+ def threshold=: (Float) -> Float
504
+
505
+ attr_reader type: String?
506
+
507
+ def type=: (String) -> String
508
+
509
+ def initialize: (
510
+ ?prefix_padding_ms: Integer,
511
+ ?silence_duration_ms: Integer,
512
+ ?threshold: Float,
513
+ ?type: String
514
+ ) -> void
515
+
516
+ def to_hash: -> {
517
+ prefix_padding_ms: Integer,
518
+ silence_duration_ms: Integer,
519
+ threshold: Float,
520
+ type: String
521
+ }
522
+ end
523
+ end
524
+ end
525
+ end
526
+ end
@@ -0,0 +1,16 @@
1
+ module OpenAI
2
+ module Models
3
+ module Realtime
4
+ type realtime_tool_choice_config =
5
+ OpenAI::Models::Responses::tool_choice_options
6
+ | OpenAI::Responses::ToolChoiceFunction
7
+ | OpenAI::Responses::ToolChoiceMcp
8
+
9
+ module RealtimeToolChoiceConfig
10
+ extend OpenAI::Internal::Type::Union
11
+
12
+ def self?.variants: -> ::Array[OpenAI::Models::Realtime::realtime_tool_choice_config]
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,10 @@
1
+ module OpenAI
2
+ module Models
3
+ module Realtime
4
+ type realtime_tools_config =
5
+ ::Array[OpenAI::Models::Realtime::realtime_tools_config_union]
6
+
7
+ RealtimeToolsConfig: OpenAI::Internal::Type::Converter
8
+ end
9
+ end
10
+ end