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,89 @@
1
+ module OpenAI
2
+ module Models
3
+ module Realtime
4
+ type client_secret_create_params =
5
+ {
6
+ expires_after: OpenAI::Realtime::ClientSecretCreateParams::ExpiresAfter,
7
+ session: OpenAI::Models::Realtime::ClientSecretCreateParams::session
8
+ }
9
+ & OpenAI::Internal::Type::request_parameters
10
+
11
+ class ClientSecretCreateParams < OpenAI::Internal::Type::BaseModel
12
+ extend OpenAI::Internal::Type::RequestParameters::Converter
13
+ include OpenAI::Internal::Type::RequestParameters
14
+
15
+ attr_reader expires_after: OpenAI::Realtime::ClientSecretCreateParams::ExpiresAfter?
16
+
17
+ def expires_after=: (
18
+ OpenAI::Realtime::ClientSecretCreateParams::ExpiresAfter
19
+ ) -> OpenAI::Realtime::ClientSecretCreateParams::ExpiresAfter
20
+
21
+ attr_reader session: OpenAI::Models::Realtime::ClientSecretCreateParams::session?
22
+
23
+ def session=: (
24
+ OpenAI::Models::Realtime::ClientSecretCreateParams::session
25
+ ) -> OpenAI::Models::Realtime::ClientSecretCreateParams::session
26
+
27
+ def initialize: (
28
+ ?expires_after: OpenAI::Realtime::ClientSecretCreateParams::ExpiresAfter,
29
+ ?session: OpenAI::Models::Realtime::ClientSecretCreateParams::session,
30
+ ?request_options: OpenAI::request_opts
31
+ ) -> void
32
+
33
+ def to_hash: -> {
34
+ expires_after: OpenAI::Realtime::ClientSecretCreateParams::ExpiresAfter,
35
+ session: OpenAI::Models::Realtime::ClientSecretCreateParams::session,
36
+ request_options: OpenAI::RequestOptions
37
+ }
38
+
39
+ type expires_after =
40
+ {
41
+ anchor: OpenAI::Models::Realtime::ClientSecretCreateParams::ExpiresAfter::anchor,
42
+ seconds: Integer
43
+ }
44
+
45
+ class ExpiresAfter < OpenAI::Internal::Type::BaseModel
46
+ attr_reader anchor: OpenAI::Models::Realtime::ClientSecretCreateParams::ExpiresAfter::anchor?
47
+
48
+ def anchor=: (
49
+ OpenAI::Models::Realtime::ClientSecretCreateParams::ExpiresAfter::anchor
50
+ ) -> OpenAI::Models::Realtime::ClientSecretCreateParams::ExpiresAfter::anchor
51
+
52
+ attr_reader seconds: Integer?
53
+
54
+ def seconds=: (Integer) -> Integer
55
+
56
+ def initialize: (
57
+ ?anchor: OpenAI::Models::Realtime::ClientSecretCreateParams::ExpiresAfter::anchor,
58
+ ?seconds: Integer
59
+ ) -> void
60
+
61
+ def to_hash: -> {
62
+ anchor: OpenAI::Models::Realtime::ClientSecretCreateParams::ExpiresAfter::anchor,
63
+ seconds: Integer
64
+ }
65
+
66
+ type anchor = :created_at
67
+
68
+ module Anchor
69
+ extend OpenAI::Internal::Type::Enum
70
+
71
+ CREATED_AT: :created_at
72
+
73
+ def self?.values: -> ::Array[OpenAI::Models::Realtime::ClientSecretCreateParams::ExpiresAfter::anchor]
74
+ end
75
+ end
76
+
77
+ type session =
78
+ OpenAI::Realtime::RealtimeSessionCreateRequest
79
+ | OpenAI::Realtime::RealtimeTranscriptionSessionCreateRequest
80
+
81
+ module Session
82
+ extend OpenAI::Internal::Type::Union
83
+
84
+ def self?.variants: -> ::Array[OpenAI::Models::Realtime::ClientSecretCreateParams::session]
85
+ end
86
+ end
87
+ end
88
+ end
89
+ end
@@ -0,0 +1,292 @@
1
+ module OpenAI
2
+ module Models
3
+ module Realtime
4
+ type client_secret_create_response =
5
+ {
6
+ expires_at: Integer,
7
+ session: OpenAI::Models::Realtime::ClientSecretCreateResponse::session,
8
+ value: String
9
+ }
10
+
11
+ class ClientSecretCreateResponse < OpenAI::Internal::Type::BaseModel
12
+ attr_accessor expires_at: Integer
13
+
14
+ attr_accessor session: OpenAI::Models::Realtime::ClientSecretCreateResponse::session
15
+
16
+ attr_accessor value: String
17
+
18
+ def initialize: (
19
+ expires_at: Integer,
20
+ session: OpenAI::Models::Realtime::ClientSecretCreateResponse::session,
21
+ value: String
22
+ ) -> void
23
+
24
+ def to_hash: -> {
25
+ expires_at: Integer,
26
+ session: OpenAI::Models::Realtime::ClientSecretCreateResponse::session,
27
+ value: String
28
+ }
29
+
30
+ type session =
31
+ OpenAI::Realtime::RealtimeSessionCreateResponse
32
+ | OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse
33
+
34
+ module Session
35
+ extend OpenAI::Internal::Type::Union
36
+
37
+ type realtime_transcription_session_create_response =
38
+ {
39
+ id: String,
40
+ audio: OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio,
41
+ expires_at: Integer,
42
+ include: ::Array[OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::include_],
43
+ object: String
44
+ }
45
+
46
+ class RealtimeTranscriptionSessionCreateResponse < OpenAI::Internal::Type::BaseModel
47
+ attr_reader id: String?
48
+
49
+ def id=: (String) -> String
50
+
51
+ attr_reader audio: OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio?
52
+
53
+ def audio=: (
54
+ OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio
55
+ ) -> OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio
56
+
57
+ attr_reader expires_at: Integer?
58
+
59
+ def expires_at=: (Integer) -> Integer
60
+
61
+ attr_reader include: ::Array[OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::include_]?
62
+
63
+ def include=: (
64
+ ::Array[OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::include_]
65
+ ) -> ::Array[OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::include_]
66
+
67
+ attr_reader object: String?
68
+
69
+ def object=: (String) -> String
70
+
71
+ def initialize: (
72
+ ?id: String,
73
+ ?audio: OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio,
74
+ ?expires_at: Integer,
75
+ ?include: ::Array[OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::include_],
76
+ ?object: String
77
+ ) -> void
78
+
79
+ def to_hash: -> {
80
+ id: String,
81
+ audio: OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio,
82
+ expires_at: Integer,
83
+ include: ::Array[OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::include_],
84
+ object: String
85
+ }
86
+
87
+ type audio =
88
+ {
89
+ input: OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input
90
+ }
91
+
92
+ class Audio < OpenAI::Internal::Type::BaseModel
93
+ attr_reader input: OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input?
94
+
95
+ def input=: (
96
+ OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input
97
+ ) -> OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input
98
+
99
+ def initialize: (
100
+ ?input: OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input
101
+ ) -> void
102
+
103
+ def to_hash: -> {
104
+ input: OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input
105
+ }
106
+
107
+ type input =
108
+ {
109
+ format_: String,
110
+ noise_reduction: OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::NoiseReduction,
111
+ transcription: OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::Transcription,
112
+ turn_detection: OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::TurnDetection
113
+ }
114
+
115
+ class Input < OpenAI::Internal::Type::BaseModel
116
+ attr_reader format_: String?
117
+
118
+ def format_=: (String) -> String
119
+
120
+ attr_reader noise_reduction: OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::NoiseReduction?
121
+
122
+ def noise_reduction=: (
123
+ OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::NoiseReduction
124
+ ) -> OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::NoiseReduction
125
+
126
+ attr_reader transcription: OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::Transcription?
127
+
128
+ def transcription=: (
129
+ OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::Transcription
130
+ ) -> OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::Transcription
131
+
132
+ attr_reader turn_detection: OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::TurnDetection?
133
+
134
+ def turn_detection=: (
135
+ OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::TurnDetection
136
+ ) -> OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::TurnDetection
137
+
138
+ def initialize: (
139
+ ?format_: String,
140
+ ?noise_reduction: OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::NoiseReduction,
141
+ ?transcription: OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::Transcription,
142
+ ?turn_detection: OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::TurnDetection
143
+ ) -> void
144
+
145
+ def to_hash: -> {
146
+ format_: String,
147
+ noise_reduction: OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::NoiseReduction,
148
+ transcription: OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::Transcription,
149
+ turn_detection: OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::TurnDetection
150
+ }
151
+
152
+ type noise_reduction =
153
+ {
154
+ type: OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::NoiseReduction::type_
155
+ }
156
+
157
+ class NoiseReduction < OpenAI::Internal::Type::BaseModel
158
+ attr_reader type: OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::NoiseReduction::type_?
159
+
160
+ def type=: (
161
+ OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::NoiseReduction::type_
162
+ ) -> OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::NoiseReduction::type_
163
+
164
+ def initialize: (
165
+ ?type: OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::NoiseReduction::type_
166
+ ) -> void
167
+
168
+ def to_hash: -> {
169
+ type: OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::NoiseReduction::type_
170
+ }
171
+
172
+ type type_ = :near_field | :far_field
173
+
174
+ module Type
175
+ extend OpenAI::Internal::Type::Enum
176
+
177
+ NEAR_FIELD: :near_field
178
+ FAR_FIELD: :far_field
179
+
180
+ def self?.values: -> ::Array[OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::NoiseReduction::type_]
181
+ end
182
+ end
183
+
184
+ type transcription =
185
+ {
186
+ language: String,
187
+ model: OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::Transcription::model,
188
+ prompt: String
189
+ }
190
+
191
+ class Transcription < OpenAI::Internal::Type::BaseModel
192
+ attr_reader language: String?
193
+
194
+ def language=: (String) -> String
195
+
196
+ attr_reader model: OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::Transcription::model?
197
+
198
+ def model=: (
199
+ OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::Transcription::model
200
+ ) -> OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::Transcription::model
201
+
202
+ attr_reader prompt: String?
203
+
204
+ def prompt=: (String) -> String
205
+
206
+ def initialize: (
207
+ ?language: String,
208
+ ?model: OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::Transcription::model,
209
+ ?prompt: String
210
+ ) -> void
211
+
212
+ def to_hash: -> {
213
+ language: String,
214
+ model: OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::Transcription::model,
215
+ prompt: String
216
+ }
217
+
218
+ type model =
219
+ :"gpt-4o-transcribe"
220
+ | :"gpt-4o-mini-transcribe"
221
+ | :"whisper-1"
222
+
223
+ module Model
224
+ extend OpenAI::Internal::Type::Enum
225
+
226
+ GPT_4O_TRANSCRIBE: :"gpt-4o-transcribe"
227
+ GPT_4O_MINI_TRANSCRIBE: :"gpt-4o-mini-transcribe"
228
+ WHISPER_1: :"whisper-1"
229
+
230
+ def self?.values: -> ::Array[OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::Transcription::model]
231
+ end
232
+ end
233
+
234
+ type turn_detection =
235
+ {
236
+ prefix_padding_ms: Integer,
237
+ silence_duration_ms: Integer,
238
+ threshold: Float,
239
+ type: String
240
+ }
241
+
242
+ class TurnDetection < OpenAI::Internal::Type::BaseModel
243
+ attr_reader prefix_padding_ms: Integer?
244
+
245
+ def prefix_padding_ms=: (Integer) -> Integer
246
+
247
+ attr_reader silence_duration_ms: Integer?
248
+
249
+ def silence_duration_ms=: (Integer) -> Integer
250
+
251
+ attr_reader threshold: Float?
252
+
253
+ def threshold=: (Float) -> Float
254
+
255
+ attr_reader type: String?
256
+
257
+ def type=: (String) -> String
258
+
259
+ def initialize: (
260
+ ?prefix_padding_ms: Integer,
261
+ ?silence_duration_ms: Integer,
262
+ ?threshold: Float,
263
+ ?type: String
264
+ ) -> void
265
+
266
+ def to_hash: -> {
267
+ prefix_padding_ms: Integer,
268
+ silence_duration_ms: Integer,
269
+ threshold: Float,
270
+ type: String
271
+ }
272
+ end
273
+ end
274
+ end
275
+
276
+ type include_ = :"item.input_audio_transcription.logprobs"
277
+
278
+ module Include
279
+ extend OpenAI::Internal::Type::Enum
280
+
281
+ ITEM_INPUT_AUDIO_TRANSCRIPTION_LOGPROBS: :"item.input_audio_transcription.logprobs"
282
+
283
+ def self?.values: -> ::Array[OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::include_]
284
+ end
285
+ end
286
+
287
+ def self?.variants: -> ::Array[OpenAI::Models::Realtime::ClientSecretCreateResponse::session]
288
+ end
289
+ end
290
+ end
291
+ end
292
+ end
@@ -0,0 +1,70 @@
1
+ module OpenAI
2
+ module Models
3
+ module Realtime
4
+ type conversation_created_event =
5
+ {
6
+ conversation: OpenAI::Realtime::ConversationCreatedEvent::Conversation,
7
+ event_id: String,
8
+ type: :"conversation.created"
9
+ }
10
+
11
+ class ConversationCreatedEvent < OpenAI::Internal::Type::BaseModel
12
+ attr_accessor conversation: OpenAI::Realtime::ConversationCreatedEvent::Conversation
13
+
14
+ attr_accessor event_id: String
15
+
16
+ attr_accessor type: :"conversation.created"
17
+
18
+ def initialize: (
19
+ conversation: OpenAI::Realtime::ConversationCreatedEvent::Conversation,
20
+ event_id: String,
21
+ ?type: :"conversation.created"
22
+ ) -> void
23
+
24
+ def to_hash: -> {
25
+ conversation: OpenAI::Realtime::ConversationCreatedEvent::Conversation,
26
+ event_id: String,
27
+ type: :"conversation.created"
28
+ }
29
+
30
+ type conversation =
31
+ {
32
+ id: String,
33
+ object: OpenAI::Models::Realtime::ConversationCreatedEvent::Conversation::object
34
+ }
35
+
36
+ class Conversation < OpenAI::Internal::Type::BaseModel
37
+ attr_reader id: String?
38
+
39
+ def id=: (String) -> String
40
+
41
+ attr_reader object: OpenAI::Models::Realtime::ConversationCreatedEvent::Conversation::object?
42
+
43
+ def object=: (
44
+ OpenAI::Models::Realtime::ConversationCreatedEvent::Conversation::object
45
+ ) -> OpenAI::Models::Realtime::ConversationCreatedEvent::Conversation::object
46
+
47
+ def initialize: (
48
+ ?id: String,
49
+ ?object: OpenAI::Models::Realtime::ConversationCreatedEvent::Conversation::object
50
+ ) -> void
51
+
52
+ def to_hash: -> {
53
+ id: String,
54
+ object: OpenAI::Models::Realtime::ConversationCreatedEvent::Conversation::object
55
+ }
56
+
57
+ type object = :"realtime.conversation"
58
+
59
+ module Object
60
+ extend OpenAI::Internal::Type::Enum
61
+
62
+ REALTIME_CONVERSATION: :"realtime.conversation"
63
+
64
+ def self?.values: -> ::Array[OpenAI::Models::Realtime::ConversationCreatedEvent::Conversation::object]
65
+ end
66
+ end
67
+ end
68
+ end
69
+ end
70
+ end
@@ -0,0 +1,22 @@
1
+ module OpenAI
2
+ module Models
3
+ module Realtime
4
+ type conversation_item =
5
+ OpenAI::Realtime::RealtimeConversationItemSystemMessage
6
+ | OpenAI::Realtime::RealtimeConversationItemUserMessage
7
+ | OpenAI::Realtime::RealtimeConversationItemAssistantMessage
8
+ | OpenAI::Realtime::RealtimeConversationItemFunctionCall
9
+ | OpenAI::Realtime::RealtimeConversationItemFunctionCallOutput
10
+ | OpenAI::Realtime::RealtimeMcpApprovalResponse
11
+ | OpenAI::Realtime::RealtimeMcpListTools
12
+ | OpenAI::Realtime::RealtimeMcpToolCall
13
+ | OpenAI::Realtime::RealtimeMcpApprovalRequest
14
+
15
+ module ConversationItem
16
+ extend OpenAI::Internal::Type::Union
17
+
18
+ def self?.variants: -> ::Array[OpenAI::Models::Realtime::conversation_item]
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,37 @@
1
+ module OpenAI
2
+ module Models
3
+ module Realtime
4
+ type conversation_item_added =
5
+ {
6
+ event_id: String,
7
+ item: OpenAI::Models::Realtime::conversation_item,
8
+ type: :"conversation.item.added",
9
+ previous_item_id: String?
10
+ }
11
+
12
+ class ConversationItemAdded < OpenAI::Internal::Type::BaseModel
13
+ attr_accessor event_id: String
14
+
15
+ attr_accessor item: OpenAI::Models::Realtime::conversation_item
16
+
17
+ attr_accessor type: :"conversation.item.added"
18
+
19
+ attr_accessor previous_item_id: String?
20
+
21
+ def initialize: (
22
+ event_id: String,
23
+ item: OpenAI::Models::Realtime::conversation_item,
24
+ ?previous_item_id: String?,
25
+ ?type: :"conversation.item.added"
26
+ ) -> void
27
+
28
+ def to_hash: -> {
29
+ event_id: String,
30
+ item: OpenAI::Models::Realtime::conversation_item,
31
+ type: :"conversation.item.added",
32
+ previous_item_id: String?
33
+ }
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,41 @@
1
+ module OpenAI
2
+ module Models
3
+ module Realtime
4
+ type conversation_item_create_event =
5
+ {
6
+ item: OpenAI::Models::Realtime::conversation_item,
7
+ type: :"conversation.item.create",
8
+ event_id: String,
9
+ previous_item_id: String
10
+ }
11
+
12
+ class ConversationItemCreateEvent < OpenAI::Internal::Type::BaseModel
13
+ attr_accessor item: OpenAI::Models::Realtime::conversation_item
14
+
15
+ attr_accessor type: :"conversation.item.create"
16
+
17
+ attr_reader event_id: String?
18
+
19
+ def event_id=: (String) -> String
20
+
21
+ attr_reader previous_item_id: String?
22
+
23
+ def previous_item_id=: (String) -> String
24
+
25
+ def initialize: (
26
+ item: OpenAI::Models::Realtime::conversation_item,
27
+ ?event_id: String,
28
+ ?previous_item_id: String,
29
+ ?type: :"conversation.item.create"
30
+ ) -> void
31
+
32
+ def to_hash: -> {
33
+ item: OpenAI::Models::Realtime::conversation_item,
34
+ type: :"conversation.item.create",
35
+ event_id: String,
36
+ previous_item_id: String
37
+ }
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,37 @@
1
+ module OpenAI
2
+ module Models
3
+ module Realtime
4
+ type conversation_item_created_event =
5
+ {
6
+ event_id: String,
7
+ item: OpenAI::Models::Realtime::conversation_item,
8
+ type: :"conversation.item.created",
9
+ previous_item_id: String?
10
+ }
11
+
12
+ class ConversationItemCreatedEvent < OpenAI::Internal::Type::BaseModel
13
+ attr_accessor event_id: String
14
+
15
+ attr_accessor item: OpenAI::Models::Realtime::conversation_item
16
+
17
+ attr_accessor type: :"conversation.item.created"
18
+
19
+ attr_accessor previous_item_id: String?
20
+
21
+ def initialize: (
22
+ event_id: String,
23
+ item: OpenAI::Models::Realtime::conversation_item,
24
+ ?previous_item_id: String?,
25
+ ?type: :"conversation.item.created"
26
+ ) -> void
27
+
28
+ def to_hash: -> {
29
+ event_id: String,
30
+ item: OpenAI::Models::Realtime::conversation_item,
31
+ type: :"conversation.item.created",
32
+ previous_item_id: String?
33
+ }
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,30 @@
1
+ module OpenAI
2
+ module Models
3
+ module Realtime
4
+ type conversation_item_delete_event =
5
+ { item_id: String, type: :"conversation.item.delete", event_id: String }
6
+
7
+ class ConversationItemDeleteEvent < OpenAI::Internal::Type::BaseModel
8
+ attr_accessor item_id: String
9
+
10
+ attr_accessor type: :"conversation.item.delete"
11
+
12
+ attr_reader event_id: String?
13
+
14
+ def event_id=: (String) -> String
15
+
16
+ def initialize: (
17
+ item_id: String,
18
+ ?event_id: String,
19
+ ?type: :"conversation.item.delete"
20
+ ) -> void
21
+
22
+ def to_hash: -> {
23
+ item_id: String,
24
+ type: :"conversation.item.delete",
25
+ event_id: String
26
+ }
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,32 @@
1
+ module OpenAI
2
+ module Models
3
+ module Realtime
4
+ type conversation_item_deleted_event =
5
+ {
6
+ event_id: String,
7
+ item_id: String,
8
+ type: :"conversation.item.deleted"
9
+ }
10
+
11
+ class ConversationItemDeletedEvent < OpenAI::Internal::Type::BaseModel
12
+ attr_accessor event_id: String
13
+
14
+ attr_accessor item_id: String
15
+
16
+ attr_accessor type: :"conversation.item.deleted"
17
+
18
+ def initialize: (
19
+ event_id: String,
20
+ item_id: String,
21
+ ?type: :"conversation.item.deleted"
22
+ ) -> void
23
+
24
+ def to_hash: -> {
25
+ event_id: String,
26
+ item_id: String,
27
+ type: :"conversation.item.deleted"
28
+ }
29
+ end
30
+ end
31
+ end
32
+ end