openai 0.19.0 → 0.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (346) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +28 -0
  3. data/README.md +1 -1
  4. data/lib/openai/client.rb +4 -0
  5. data/lib/openai/internal/stream.rb +3 -2
  6. data/lib/openai/models/audio/speech_create_params.rb +6 -0
  7. data/lib/openai/models/chat/chat_completion_audio_param.rb +6 -0
  8. data/lib/openai/models/chat/chat_completion_message.rb +7 -5
  9. data/lib/openai/models/chat/chat_completion_message_function_tool_call.rb +7 -5
  10. data/lib/openai/models/conversations/item_list_params.rb +2 -0
  11. data/lib/openai/models/evals/run_cancel_response.rb +2 -2
  12. data/lib/openai/models/evals/run_create_params.rb +2 -2
  13. data/lib/openai/models/evals/run_create_response.rb +2 -2
  14. data/lib/openai/models/evals/run_list_response.rb +2 -2
  15. data/lib/openai/models/evals/run_retrieve_response.rb +2 -2
  16. data/lib/openai/models/realtime/client_secret_create_params.rb +93 -0
  17. data/lib/openai/models/realtime/client_secret_create_response.rb +300 -0
  18. data/lib/openai/models/realtime/conversation_created_event.rb +70 -0
  19. data/lib/openai/models/realtime/conversation_item.rb +44 -0
  20. data/lib/openai/models/realtime/conversation_item_added.rb +48 -0
  21. data/lib/openai/models/realtime/conversation_item_create_event.rb +57 -0
  22. data/lib/openai/models/realtime/conversation_item_created_event.rb +59 -0
  23. data/lib/openai/models/realtime/conversation_item_delete_event.rb +39 -0
  24. data/lib/openai/models/realtime/conversation_item_deleted_event.rb +38 -0
  25. data/lib/openai/models/realtime/conversation_item_done.rb +48 -0
  26. data/lib/openai/models/realtime/conversation_item_input_audio_transcription_completed_event.rb +189 -0
  27. data/lib/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rb +63 -0
  28. data/lib/openai/models/realtime/conversation_item_input_audio_transcription_failed_event.rb +96 -0
  29. data/lib/openai/models/realtime/conversation_item_input_audio_transcription_segment.rb +84 -0
  30. data/lib/openai/models/realtime/conversation_item_retrieve_event.rb +40 -0
  31. data/lib/openai/models/realtime/conversation_item_truncate_event.rb +68 -0
  32. data/lib/openai/models/realtime/conversation_item_truncated_event.rb +60 -0
  33. data/lib/openai/models/realtime/conversation_item_with_reference.rb +235 -0
  34. data/lib/openai/models/realtime/input_audio_buffer_append_event.rb +49 -0
  35. data/lib/openai/models/realtime/input_audio_buffer_clear_event.rb +29 -0
  36. data/lib/openai/models/realtime/input_audio_buffer_cleared_event.rb +29 -0
  37. data/lib/openai/models/realtime/input_audio_buffer_commit_event.rb +35 -0
  38. data/lib/openai/models/realtime/input_audio_buffer_committed_event.rb +51 -0
  39. data/lib/openai/models/realtime/input_audio_buffer_speech_started_event.rb +59 -0
  40. data/lib/openai/models/realtime/input_audio_buffer_speech_stopped_event.rb +51 -0
  41. data/lib/openai/models/realtime/input_audio_buffer_timeout_triggered.rb +52 -0
  42. data/lib/openai/models/realtime/log_prob_properties.rb +39 -0
  43. data/lib/openai/models/realtime/mcp_list_tools_completed.rb +36 -0
  44. data/lib/openai/models/realtime/mcp_list_tools_failed.rb +36 -0
  45. data/lib/openai/models/realtime/mcp_list_tools_in_progress.rb +36 -0
  46. data/lib/openai/models/realtime/output_audio_buffer_clear_event.rb +32 -0
  47. data/lib/openai/models/realtime/rate_limits_updated_event.rb +91 -0
  48. data/lib/openai/models/realtime/realtime_audio_config.rb +446 -0
  49. data/lib/openai/models/realtime/realtime_client_event.rb +123 -0
  50. data/lib/openai/models/realtime/realtime_client_secret_config.rb +64 -0
  51. data/lib/openai/models/realtime/realtime_conversation_item_assistant_message.rb +118 -0
  52. data/lib/openai/models/realtime/realtime_conversation_item_function_call.rb +94 -0
  53. data/lib/openai/models/realtime/realtime_conversation_item_function_call_output.rb +86 -0
  54. data/lib/openai/models/realtime/realtime_conversation_item_system_message.rb +118 -0
  55. data/lib/openai/models/realtime/realtime_conversation_item_user_message.rb +135 -0
  56. data/lib/openai/models/realtime/realtime_error.rb +55 -0
  57. data/lib/openai/models/realtime/realtime_error_event.rb +38 -0
  58. data/lib/openai/models/realtime/realtime_mcp_approval_request.rb +52 -0
  59. data/lib/openai/models/realtime/realtime_mcp_approval_response.rb +52 -0
  60. data/lib/openai/models/realtime/realtime_mcp_list_tools.rb +84 -0
  61. data/lib/openai/models/realtime/realtime_mcp_protocol_error.rb +29 -0
  62. data/lib/openai/models/realtime/realtime_mcp_tool_call.rb +94 -0
  63. data/lib/openai/models/realtime/realtime_mcp_tool_execution_error.rb +23 -0
  64. data/lib/openai/models/realtime/realtime_mcphttp_error.rb +29 -0
  65. data/lib/openai/models/realtime/realtime_response.rb +259 -0
  66. data/lib/openai/models/realtime/realtime_response_status.rb +103 -0
  67. data/lib/openai/models/realtime/realtime_response_usage.rb +61 -0
  68. data/lib/openai/models/realtime/realtime_response_usage_input_token_details.rb +36 -0
  69. data/lib/openai/models/realtime/realtime_response_usage_output_token_details.rb +28 -0
  70. data/lib/openai/models/realtime/realtime_server_event.rb +369 -0
  71. data/lib/openai/models/realtime/realtime_session.rb +696 -0
  72. data/lib/openai/models/realtime/realtime_session_create_request.rb +234 -0
  73. data/lib/openai/models/realtime/realtime_session_create_response.rb +579 -0
  74. data/lib/openai/models/realtime/realtime_tool_choice_config.rb +32 -0
  75. data/lib/openai/models/realtime/realtime_tools_config.rb +11 -0
  76. data/lib/openai/models/realtime/realtime_tools_config_union.rb +379 -0
  77. data/lib/openai/models/realtime/realtime_tracing_config.rb +61 -0
  78. data/lib/openai/models/realtime/realtime_transcription_session_create_request.rb +312 -0
  79. data/lib/openai/models/realtime/realtime_truncation.rb +67 -0
  80. data/lib/openai/models/realtime/response_audio_delta_event.rb +68 -0
  81. data/lib/openai/models/realtime/response_audio_done_event.rb +61 -0
  82. data/lib/openai/models/realtime/response_audio_transcript_delta_event.rb +68 -0
  83. data/lib/openai/models/realtime/response_audio_transcript_done_event.rb +70 -0
  84. data/lib/openai/models/realtime/response_cancel_event.rb +42 -0
  85. data/lib/openai/models/realtime/response_content_part_added_event.rb +120 -0
  86. data/lib/openai/models/realtime/response_content_part_done_event.rb +120 -0
  87. data/lib/openai/models/realtime/response_create_event.rb +391 -0
  88. data/lib/openai/models/realtime/response_created_event.rb +37 -0
  89. data/lib/openai/models/realtime/response_done_event.rb +38 -0
  90. data/lib/openai/models/realtime/response_function_call_arguments_delta_event.rb +72 -0
  91. data/lib/openai/models/realtime/response_function_call_arguments_done_event.rb +73 -0
  92. data/lib/openai/models/realtime/response_mcp_call_arguments_delta.rb +68 -0
  93. data/lib/openai/models/realtime/response_mcp_call_arguments_done.rb +60 -0
  94. data/lib/openai/models/realtime/response_mcp_call_completed.rb +44 -0
  95. data/lib/openai/models/realtime/response_mcp_call_failed.rb +44 -0
  96. data/lib/openai/models/realtime/response_mcp_call_in_progress.rb +44 -0
  97. data/lib/openai/models/realtime/response_output_item_added_event.rb +52 -0
  98. data/lib/openai/models/realtime/response_output_item_done_event.rb +53 -0
  99. data/lib/openai/models/realtime/response_text_delta_event.rb +68 -0
  100. data/lib/openai/models/realtime/response_text_done_event.rb +69 -0
  101. data/lib/openai/models/realtime/session_created_event.rb +38 -0
  102. data/lib/openai/models/realtime/session_update_event.rb +44 -0
  103. data/lib/openai/models/realtime/session_updated_event.rb +37 -0
  104. data/lib/openai/models/realtime/transcription_session_created.rb +278 -0
  105. data/lib/openai/models/realtime/transcription_session_update.rb +36 -0
  106. data/lib/openai/models/realtime/transcription_session_updated_event.rb +279 -0
  107. data/lib/openai/models/responses/response.rb +6 -3
  108. data/lib/openai/models/responses/response_create_params.rb +8 -3
  109. data/lib/openai/models/responses/response_function_tool_call.rb +7 -5
  110. data/lib/openai/models/responses/response_function_web_search.rb +35 -1
  111. data/lib/openai/models/responses/response_includable.rb +2 -0
  112. data/lib/openai/models/responses/response_output_text.rb +7 -5
  113. data/lib/openai/models/responses/tool.rb +6 -2
  114. data/lib/openai/models/responses/web_search_preview_tool.rb +124 -0
  115. data/lib/openai/models/responses/web_search_tool.rb +58 -21
  116. data/lib/openai/models/webhooks/realtime_call_incoming_webhook_event.rb +119 -0
  117. data/lib/openai/models/webhooks/unwrap_webhook_event.rb +4 -1
  118. data/lib/openai/models.rb +2 -0
  119. data/lib/openai/resources/conversations.rb +1 -1
  120. data/lib/openai/resources/realtime/client_secrets.rb +44 -0
  121. data/lib/openai/resources/realtime.rb +18 -0
  122. data/lib/openai/resources/responses.rb +2 -2
  123. data/lib/openai/resources/webhooks.rb +1 -1
  124. data/lib/openai/version.rb +1 -1
  125. data/lib/openai.rb +95 -0
  126. data/rbi/openai/client.rbi +3 -0
  127. data/rbi/openai/models/audio/speech_create_params.rbi +10 -0
  128. data/rbi/openai/models/chat/chat_completion_audio_param.rbi +10 -0
  129. data/rbi/openai/models/conversations/item_list_params.rbi +4 -0
  130. data/rbi/openai/models/evals/run_cancel_response.rbi +4 -2
  131. data/rbi/openai/models/evals/run_create_params.rbi +8 -4
  132. data/rbi/openai/models/evals/run_create_response.rbi +4 -2
  133. data/rbi/openai/models/evals/run_list_response.rbi +4 -2
  134. data/rbi/openai/models/evals/run_retrieve_response.rbi +4 -2
  135. data/rbi/openai/models/realtime/client_secret_create_params.rbi +222 -0
  136. data/rbi/openai/models/realtime/client_secret_create_response.rbi +676 -0
  137. data/rbi/openai/models/realtime/conversation_created_event.rbi +164 -0
  138. data/rbi/openai/models/realtime/conversation_item.rbi +35 -0
  139. data/rbi/openai/models/realtime/conversation_item_added.rbi +105 -0
  140. data/rbi/openai/models/realtime/conversation_item_create_event.rbi +123 -0
  141. data/rbi/openai/models/realtime/conversation_item_created_event.rbi +117 -0
  142. data/rbi/openai/models/realtime/conversation_item_delete_event.rbi +57 -0
  143. data/rbi/openai/models/realtime/conversation_item_deleted_event.rbi +53 -0
  144. data/rbi/openai/models/realtime/conversation_item_done.rbi +105 -0
  145. data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_completed_event.rbi +305 -0
  146. data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rbi +93 -0
  147. data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_failed_event.rbi +158 -0
  148. data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_segment.rbi +107 -0
  149. data/rbi/openai/models/realtime/conversation_item_retrieve_event.rbi +58 -0
  150. data/rbi/openai/models/realtime/conversation_item_truncate_event.rbi +94 -0
  151. data/rbi/openai/models/realtime/conversation_item_truncated_event.rbi +80 -0
  152. data/rbi/openai/models/realtime/conversation_item_with_reference.rbi +549 -0
  153. data/rbi/openai/models/realtime/input_audio_buffer_append_event.rbi +65 -0
  154. data/rbi/openai/models/realtime/input_audio_buffer_clear_event.rbi +43 -0
  155. data/rbi/openai/models/realtime/input_audio_buffer_cleared_event.rbi +40 -0
  156. data/rbi/openai/models/realtime/input_audio_buffer_commit_event.rbi +49 -0
  157. data/rbi/openai/models/realtime/input_audio_buffer_committed_event.rbi +72 -0
  158. data/rbi/openai/models/realtime/input_audio_buffer_speech_started_event.rbi +82 -0
  159. data/rbi/openai/models/realtime/input_audio_buffer_speech_stopped_event.rbi +73 -0
  160. data/rbi/openai/models/realtime/input_audio_buffer_timeout_triggered.rbi +75 -0
  161. data/rbi/openai/models/realtime/log_prob_properties.rbi +55 -0
  162. data/rbi/openai/models/realtime/mcp_list_tools_completed.rbi +51 -0
  163. data/rbi/openai/models/realtime/mcp_list_tools_failed.rbi +51 -0
  164. data/rbi/openai/models/realtime/mcp_list_tools_in_progress.rbi +51 -0
  165. data/rbi/openai/models/realtime/output_audio_buffer_clear_event.rbi +46 -0
  166. data/rbi/openai/models/realtime/rate_limits_updated_event.rbi +187 -0
  167. data/rbi/openai/models/realtime/realtime_audio_config.rbi +1004 -0
  168. data/rbi/openai/models/realtime/realtime_client_event.rbi +38 -0
  169. data/rbi/openai/models/realtime/realtime_client_secret_config.rbi +147 -0
  170. data/rbi/openai/models/realtime/realtime_conversation_item_assistant_message.rbi +292 -0
  171. data/rbi/openai/models/realtime/realtime_conversation_item_function_call.rbi +199 -0
  172. data/rbi/openai/models/realtime/realtime_conversation_item_function_call_output.rbi +188 -0
  173. data/rbi/openai/models/realtime/realtime_conversation_item_system_message.rbi +292 -0
  174. data/rbi/openai/models/realtime/realtime_conversation_item_user_message.rbi +319 -0
  175. data/rbi/openai/models/realtime/realtime_error.rbi +72 -0
  176. data/rbi/openai/models/realtime/realtime_error_event.rbi +64 -0
  177. data/rbi/openai/models/realtime/realtime_mcp_approval_request.rbi +75 -0
  178. data/rbi/openai/models/realtime/realtime_mcp_approval_response.rbi +75 -0
  179. data/rbi/openai/models/realtime/realtime_mcp_list_tools.rbi +131 -0
  180. data/rbi/openai/models/realtime/realtime_mcp_protocol_error.rbi +40 -0
  181. data/rbi/openai/models/realtime/realtime_mcp_tool_call.rbi +145 -0
  182. data/rbi/openai/models/realtime/realtime_mcp_tool_execution_error.rbi +31 -0
  183. data/rbi/openai/models/realtime/realtime_mcphttp_error.rbi +40 -0
  184. data/rbi/openai/models/realtime/realtime_response.rbi +573 -0
  185. data/rbi/openai/models/realtime/realtime_response_status.rbi +233 -0
  186. data/rbi/openai/models/realtime/realtime_response_usage.rbi +121 -0
  187. data/rbi/openai/models/realtime/realtime_response_usage_input_token_details.rbi +68 -0
  188. data/rbi/openai/models/realtime/realtime_response_usage_output_token_details.rbi +51 -0
  189. data/rbi/openai/models/realtime/realtime_server_event.rbi +311 -0
  190. data/rbi/openai/models/realtime/realtime_session.rbi +1426 -0
  191. data/rbi/openai/models/realtime/realtime_session_create_request.rbi +560 -0
  192. data/rbi/openai/models/realtime/realtime_session_create_response.rbi +1249 -0
  193. data/rbi/openai/models/realtime/realtime_tool_choice_config.rbi +30 -0
  194. data/rbi/openai/models/realtime/realtime_tools_config.rbi +15 -0
  195. data/rbi/openai/models/realtime/realtime_tools_config_union.rbi +755 -0
  196. data/rbi/openai/models/realtime/realtime_tracing_config.rbi +95 -0
  197. data/rbi/openai/models/realtime/realtime_transcription_session_create_request.rbi +703 -0
  198. data/rbi/openai/models/realtime/realtime_truncation.rbi +117 -0
  199. data/rbi/openai/models/realtime/response_audio_delta_event.rbi +91 -0
  200. data/rbi/openai/models/realtime/response_audio_done_event.rbi +84 -0
  201. data/rbi/openai/models/realtime/response_audio_transcript_delta_event.rbi +91 -0
  202. data/rbi/openai/models/realtime/response_audio_transcript_done_event.rbi +93 -0
  203. data/rbi/openai/models/realtime/response_cancel_event.rbi +63 -0
  204. data/rbi/openai/models/realtime/response_content_part_added_event.rbi +219 -0
  205. data/rbi/openai/models/realtime/response_content_part_done_event.rbi +219 -0
  206. data/rbi/openai/models/realtime/response_create_event.rbi +863 -0
  207. data/rbi/openai/models/realtime/response_created_event.rbi +65 -0
  208. data/rbi/openai/models/realtime/response_done_event.rbi +66 -0
  209. data/rbi/openai/models/realtime/response_function_call_arguments_delta_event.rbi +91 -0
  210. data/rbi/openai/models/realtime/response_function_call_arguments_done_event.rbi +92 -0
  211. data/rbi/openai/models/realtime/response_mcp_call_arguments_delta.rbi +91 -0
  212. data/rbi/openai/models/realtime/response_mcp_call_arguments_done.rbi +83 -0
  213. data/rbi/openai/models/realtime/response_mcp_call_completed.rbi +67 -0
  214. data/rbi/openai/models/realtime/response_mcp_call_failed.rbi +67 -0
  215. data/rbi/openai/models/realtime/response_mcp_call_in_progress.rbi +67 -0
  216. data/rbi/openai/models/realtime/response_output_item_added_event.rbi +111 -0
  217. data/rbi/openai/models/realtime/response_output_item_done_event.rbi +112 -0
  218. data/rbi/openai/models/realtime/response_text_delta_event.rbi +91 -0
  219. data/rbi/openai/models/realtime/response_text_done_event.rbi +92 -0
  220. data/rbi/openai/models/realtime/session_created_event.rbi +64 -0
  221. data/rbi/openai/models/realtime/session_update_event.rbi +77 -0
  222. data/rbi/openai/models/realtime/session_updated_event.rbi +63 -0
  223. data/rbi/openai/models/realtime/transcription_session_created.rbi +653 -0
  224. data/rbi/openai/models/realtime/transcription_session_update.rbi +74 -0
  225. data/rbi/openai/models/realtime/transcription_session_updated_event.rbi +657 -0
  226. data/rbi/openai/models/responses/response.rbi +10 -3
  227. data/rbi/openai/models/responses/response_create_params.rbi +20 -6
  228. data/rbi/openai/models/responses/response_function_web_search.rbi +78 -2
  229. data/rbi/openai/models/responses/response_includable.rbi +2 -0
  230. data/rbi/openai/models/responses/tool.rbi +2 -1
  231. data/rbi/openai/models/responses/web_search_preview_tool.rbi +245 -0
  232. data/rbi/openai/models/responses/web_search_tool.rbi +120 -23
  233. data/rbi/openai/models/webhooks/realtime_call_incoming_webhook_event.rbi +222 -0
  234. data/rbi/openai/models/webhooks/unwrap_webhook_event.rbi +1 -0
  235. data/rbi/openai/models.rbi +2 -0
  236. data/rbi/openai/resources/conversations/items.rbi +2 -0
  237. data/rbi/openai/resources/conversations.rbi +1 -1
  238. data/rbi/openai/resources/realtime/client_secrets.rbi +38 -0
  239. data/rbi/openai/resources/realtime.rbi +15 -0
  240. data/rbi/openai/resources/responses.rbi +16 -4
  241. data/rbi/openai/resources/webhooks.rbi +1 -0
  242. data/sig/openai/client.rbs +2 -0
  243. data/sig/openai/models/audio/speech_create_params.rbs +4 -0
  244. data/sig/openai/models/chat/chat_completion_audio_param.rbs +4 -0
  245. data/sig/openai/models/realtime/client_secret_create_params.rbs +89 -0
  246. data/sig/openai/models/realtime/client_secret_create_response.rbs +292 -0
  247. data/sig/openai/models/realtime/conversation_created_event.rbs +70 -0
  248. data/sig/openai/models/realtime/conversation_item.rbs +22 -0
  249. data/sig/openai/models/realtime/conversation_item_added.rbs +37 -0
  250. data/sig/openai/models/realtime/conversation_item_create_event.rbs +41 -0
  251. data/sig/openai/models/realtime/conversation_item_created_event.rbs +37 -0
  252. data/sig/openai/models/realtime/conversation_item_delete_event.rbs +30 -0
  253. data/sig/openai/models/realtime/conversation_item_deleted_event.rbs +32 -0
  254. data/sig/openai/models/realtime/conversation_item_done.rbs +37 -0
  255. data/sig/openai/models/realtime/conversation_item_input_audio_transcription_completed_event.rbs +136 -0
  256. data/sig/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rbs +51 -0
  257. data/sig/openai/models/realtime/conversation_item_input_audio_transcription_failed_event.rbs +77 -0
  258. data/sig/openai/models/realtime/conversation_item_input_audio_transcription_segment.rbs +62 -0
  259. data/sig/openai/models/realtime/conversation_item_retrieve_event.rbs +34 -0
  260. data/sig/openai/models/realtime/conversation_item_truncate_event.rbs +44 -0
  261. data/sig/openai/models/realtime/conversation_item_truncated_event.rbs +42 -0
  262. data/sig/openai/models/realtime/conversation_item_with_reference.rbs +207 -0
  263. data/sig/openai/models/realtime/input_audio_buffer_append_event.rbs +30 -0
  264. data/sig/openai/models/realtime/input_audio_buffer_clear_event.rbs +23 -0
  265. data/sig/openai/models/realtime/input_audio_buffer_cleared_event.rbs +24 -0
  266. data/sig/openai/models/realtime/input_audio_buffer_commit_event.rbs +23 -0
  267. data/sig/openai/models/realtime/input_audio_buffer_committed_event.rbs +37 -0
  268. data/sig/openai/models/realtime/input_audio_buffer_speech_started_event.rbs +37 -0
  269. data/sig/openai/models/realtime/input_audio_buffer_speech_stopped_event.rbs +37 -0
  270. data/sig/openai/models/realtime/input_audio_buffer_timeout_triggered.rbs +42 -0
  271. data/sig/openai/models/realtime/log_prob_properties.rbs +28 -0
  272. data/sig/openai/models/realtime/mcp_list_tools_completed.rbs +28 -0
  273. data/sig/openai/models/realtime/mcp_list_tools_failed.rbs +28 -0
  274. data/sig/openai/models/realtime/mcp_list_tools_in_progress.rbs +32 -0
  275. data/sig/openai/models/realtime/output_audio_buffer_clear_event.rbs +23 -0
  276. data/sig/openai/models/realtime/rate_limits_updated_event.rbs +85 -0
  277. data/sig/openai/models/realtime/realtime_audio_config.rbs +354 -0
  278. data/sig/openai/models/realtime/realtime_client_event.rbs +25 -0
  279. data/sig/openai/models/realtime/realtime_client_secret_config.rbs +60 -0
  280. data/sig/openai/models/realtime/realtime_conversation_item_assistant_message.rbs +117 -0
  281. data/sig/openai/models/realtime/realtime_conversation_item_function_call.rbs +86 -0
  282. data/sig/openai/models/realtime/realtime_conversation_item_function_call_output.rbs +79 -0
  283. data/sig/openai/models/realtime/realtime_conversation_item_system_message.rbs +117 -0
  284. data/sig/openai/models/realtime/realtime_conversation_item_user_message.rbs +132 -0
  285. data/sig/openai/models/realtime/realtime_error.rbs +42 -0
  286. data/sig/openai/models/realtime/realtime_error_event.rbs +32 -0
  287. data/sig/openai/models/realtime/realtime_mcp_approval_request.rbs +42 -0
  288. data/sig/openai/models/realtime/realtime_mcp_approval_response.rbs +42 -0
  289. data/sig/openai/models/realtime/realtime_mcp_list_tools.rbs +71 -0
  290. data/sig/openai/models/realtime/realtime_mcp_protocol_error.rbs +28 -0
  291. data/sig/openai/models/realtime/realtime_mcp_tool_call.rbs +68 -0
  292. data/sig/openai/models/realtime/realtime_mcp_tool_execution_error.rbs +18 -0
  293. data/sig/openai/models/realtime/realtime_mcphttp_error.rbs +24 -0
  294. data/sig/openai/models/realtime/realtime_response.rbs +210 -0
  295. data/sig/openai/models/realtime/realtime_response_status.rbs +90 -0
  296. data/sig/openai/models/realtime/realtime_response_usage.rbs +56 -0
  297. data/sig/openai/models/realtime/realtime_response_usage_input_token_details.rbs +34 -0
  298. data/sig/openai/models/realtime/realtime_response_usage_output_token_details.rbs +22 -0
  299. data/sig/openai/models/realtime/realtime_server_event.rbs +168 -0
  300. data/sig/openai/models/realtime/realtime_session.rbs +521 -0
  301. data/sig/openai/models/realtime/realtime_session_create_request.rbs +178 -0
  302. data/sig/openai/models/realtime/realtime_session_create_response.rbs +526 -0
  303. data/sig/openai/models/realtime/realtime_tool_choice_config.rbs +16 -0
  304. data/sig/openai/models/realtime/realtime_tools_config.rbs +10 -0
  305. data/sig/openai/models/realtime/realtime_tools_config_union.rbs +280 -0
  306. data/sig/openai/models/realtime/realtime_tracing_config.rbs +43 -0
  307. data/sig/openai/models/realtime/realtime_transcription_session_create_request.rbs +242 -0
  308. data/sig/openai/models/realtime/realtime_truncation.rbs +53 -0
  309. data/sig/openai/models/realtime/response_audio_delta_event.rbs +52 -0
  310. data/sig/openai/models/realtime/response_audio_done_event.rbs +47 -0
  311. data/sig/openai/models/realtime/response_audio_transcript_delta_event.rbs +52 -0
  312. data/sig/openai/models/realtime/response_audio_transcript_done_event.rbs +52 -0
  313. data/sig/openai/models/realtime/response_cancel_event.rbs +32 -0
  314. data/sig/openai/models/realtime/response_content_part_added_event.rbs +105 -0
  315. data/sig/openai/models/realtime/response_content_part_done_event.rbs +105 -0
  316. data/sig/openai/models/realtime/response_create_event.rbs +281 -0
  317. data/sig/openai/models/realtime/response_created_event.rbs +32 -0
  318. data/sig/openai/models/realtime/response_done_event.rbs +32 -0
  319. data/sig/openai/models/realtime/response_function_call_arguments_delta_event.rbs +52 -0
  320. data/sig/openai/models/realtime/response_function_call_arguments_done_event.rbs +52 -0
  321. data/sig/openai/models/realtime/response_mcp_call_arguments_delta.rbs +52 -0
  322. data/sig/openai/models/realtime/response_mcp_call_arguments_done.rbs +47 -0
  323. data/sig/openai/models/realtime/response_mcp_call_completed.rbs +37 -0
  324. data/sig/openai/models/realtime/response_mcp_call_failed.rbs +37 -0
  325. data/sig/openai/models/realtime/response_mcp_call_in_progress.rbs +37 -0
  326. data/sig/openai/models/realtime/response_output_item_added_event.rbs +42 -0
  327. data/sig/openai/models/realtime/response_output_item_done_event.rbs +42 -0
  328. data/sig/openai/models/realtime/response_text_delta_event.rbs +52 -0
  329. data/sig/openai/models/realtime/response_text_done_event.rbs +52 -0
  330. data/sig/openai/models/realtime/session_created_event.rbs +32 -0
  331. data/sig/openai/models/realtime/session_update_event.rbs +34 -0
  332. data/sig/openai/models/realtime/session_updated_event.rbs +32 -0
  333. data/sig/openai/models/realtime/transcription_session_created.rbs +282 -0
  334. data/sig/openai/models/realtime/transcription_session_update.rbs +34 -0
  335. data/sig/openai/models/realtime/transcription_session_updated_event.rbs +282 -0
  336. data/sig/openai/models/responses/response_function_web_search.rbs +34 -3
  337. data/sig/openai/models/responses/tool.rbs +1 -0
  338. data/sig/openai/models/responses/web_search_preview_tool.rbs +96 -0
  339. data/sig/openai/models/responses/web_search_tool.rbs +39 -10
  340. data/sig/openai/models/webhooks/realtime_call_incoming_webhook_event.rbs +90 -0
  341. data/sig/openai/models/webhooks/unwrap_webhook_event.rbs +1 -0
  342. data/sig/openai/models.rbs +2 -0
  343. data/sig/openai/resources/realtime/client_secrets.rbs +15 -0
  344. data/sig/openai/resources/realtime.rbs +9 -0
  345. data/sig/openai/resources/webhooks.rbs +1 -0
  346. metadata +287 -2
@@ -0,0 +1,300 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ # @see OpenAI::Resources::Realtime::ClientSecrets#create
7
+ class ClientSecretCreateResponse < OpenAI::Internal::Type::BaseModel
8
+ # @!attribute expires_at
9
+ # Expiration timestamp for the client secret, in seconds since epoch.
10
+ #
11
+ # @return [Integer]
12
+ required :expires_at, Integer
13
+
14
+ # @!attribute session
15
+ # The session configuration for either a realtime or transcription session.
16
+ #
17
+ # @return [OpenAI::Models::Realtime::RealtimeSessionCreateResponse, OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse]
18
+ required :session, union: -> { OpenAI::Models::Realtime::ClientSecretCreateResponse::Session }
19
+
20
+ # @!attribute value
21
+ # The generated client secret value.
22
+ #
23
+ # @return [String]
24
+ required :value, String
25
+
26
+ # @!method initialize(expires_at:, session:, value:)
27
+ # Some parameter documentations has been truncated, see
28
+ # {OpenAI::Models::Realtime::ClientSecretCreateResponse} for more details.
29
+ #
30
+ # Response from creating a session and client secret for the Realtime API.
31
+ #
32
+ # @param expires_at [Integer] Expiration timestamp for the client secret, in seconds since epoch.
33
+ #
34
+ # @param session [OpenAI::Models::Realtime::RealtimeSessionCreateResponse, OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse] The session configuration for either a realtime or transcription session.
35
+ #
36
+ # @param value [String] The generated client secret value.
37
+
38
+ # The session configuration for either a realtime or transcription session.
39
+ #
40
+ # @see OpenAI::Models::Realtime::ClientSecretCreateResponse#session
41
+ module Session
42
+ extend OpenAI::Internal::Type::Union
43
+
44
+ # A Realtime session configuration object.
45
+ variant -> { OpenAI::Realtime::RealtimeSessionCreateResponse }
46
+
47
+ # A Realtime transcription session configuration object.
48
+ variant -> { OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse }
49
+
50
+ class RealtimeTranscriptionSessionCreateResponse < OpenAI::Internal::Type::BaseModel
51
+ # @!attribute id
52
+ # Unique identifier for the session that looks like `sess_1234567890abcdef`.
53
+ #
54
+ # @return [String, nil]
55
+ optional :id, String
56
+
57
+ # @!attribute audio
58
+ # Configuration for input audio for the session.
59
+ #
60
+ # @return [OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio, nil]
61
+ optional :audio,
62
+ -> { OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio }
63
+
64
+ # @!attribute expires_at
65
+ # Expiration timestamp for the session, in seconds since epoch.
66
+ #
67
+ # @return [Integer, nil]
68
+ optional :expires_at, Integer
69
+
70
+ # @!attribute include
71
+ # Additional fields to include in server outputs.
72
+ #
73
+ # - `item.input_audio_transcription.logprobs`: Include logprobs for input audio
74
+ # transcription.
75
+ #
76
+ # @return [Array<Symbol, OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Include>, nil]
77
+ optional :include,
78
+ -> do
79
+ OpenAI::Internal::Type::ArrayOf[
80
+ enum: OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Include
81
+ ]
82
+ end
83
+
84
+ # @!attribute object
85
+ # The object type. Always `realtime.transcription_session`.
86
+ #
87
+ # @return [String, nil]
88
+ optional :object, String
89
+
90
+ # @!method initialize(id: nil, audio: nil, expires_at: nil, include: nil, object: nil)
91
+ # Some parameter documentations has been truncated, see
92
+ # {OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse}
93
+ # for more details.
94
+ #
95
+ # A Realtime transcription session configuration object.
96
+ #
97
+ # @param id [String] Unique identifier for the session that looks like `sess_1234567890abcdef`.
98
+ #
99
+ # @param audio [OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio] Configuration for input audio for the session.
100
+ #
101
+ # @param expires_at [Integer] Expiration timestamp for the session, in seconds since epoch.
102
+ #
103
+ # @param include [Array<Symbol, OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Include>] Additional fields to include in server outputs.
104
+ #
105
+ # @param object [String] The object type. Always `realtime.transcription_session`.
106
+
107
+ # @see OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse#audio
108
+ class Audio < OpenAI::Internal::Type::BaseModel
109
+ # @!attribute input
110
+ #
111
+ # @return [OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input, nil]
112
+ optional :input,
113
+ -> { OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input }
114
+
115
+ # @!method initialize(input: nil)
116
+ # Configuration for input audio for the session.
117
+ #
118
+ # @param input [OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input]
119
+
120
+ # @see OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio#input
121
+ class Input < OpenAI::Internal::Type::BaseModel
122
+ # @!attribute format_
123
+ # The format of input audio. Options are `pcm16`, `g711_ulaw`, or `g711_alaw`.
124
+ #
125
+ # @return [String, nil]
126
+ optional :format_, String, api_name: :format
127
+
128
+ # @!attribute noise_reduction
129
+ # Configuration for input audio noise reduction.
130
+ #
131
+ # @return [OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::NoiseReduction, nil]
132
+ optional :noise_reduction,
133
+ -> { OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::NoiseReduction }
134
+
135
+ # @!attribute transcription
136
+ # Configuration of the transcription model.
137
+ #
138
+ # @return [OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::Transcription, nil]
139
+ optional :transcription,
140
+ -> { OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::Transcription }
141
+
142
+ # @!attribute turn_detection
143
+ # Configuration for turn detection.
144
+ #
145
+ # @return [OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::TurnDetection, nil]
146
+ optional :turn_detection,
147
+ -> { OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::TurnDetection }
148
+
149
+ # @!method initialize(format_: nil, noise_reduction: nil, transcription: nil, turn_detection: nil)
150
+ # Some parameter documentations has been truncated, see
151
+ # {OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input}
152
+ # for more details.
153
+ #
154
+ # @param format_ [String] The format of input audio. Options are `pcm16`, `g711_ulaw`, or `g711_alaw`.
155
+ #
156
+ # @param noise_reduction [OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::NoiseReduction] Configuration for input audio noise reduction.
157
+ #
158
+ # @param transcription [OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::Transcription] Configuration of the transcription model.
159
+ #
160
+ # @param turn_detection [OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::TurnDetection] Configuration for turn detection.
161
+
162
+ # @see OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input#noise_reduction
163
+ class NoiseReduction < OpenAI::Internal::Type::BaseModel
164
+ # @!attribute type
165
+ #
166
+ # @return [Symbol, OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::NoiseReduction::Type, nil]
167
+ optional :type,
168
+ enum: -> { OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::NoiseReduction::Type }
169
+
170
+ # @!method initialize(type: nil)
171
+ # Configuration for input audio noise reduction.
172
+ #
173
+ # @param type [Symbol, OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::NoiseReduction::Type]
174
+
175
+ # @see OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::NoiseReduction#type
176
+ module Type
177
+ extend OpenAI::Internal::Type::Enum
178
+
179
+ NEAR_FIELD = :near_field
180
+ FAR_FIELD = :far_field
181
+
182
+ # @!method self.values
183
+ # @return [Array<Symbol>]
184
+ end
185
+ end
186
+
187
+ # @see OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input#transcription
188
+ class Transcription < OpenAI::Internal::Type::BaseModel
189
+ # @!attribute language
190
+ # The language of the input audio. Supplying the input language in
191
+ # [ISO-639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) (e.g. `en`)
192
+ # format will improve accuracy and latency.
193
+ #
194
+ # @return [String, nil]
195
+ optional :language, String
196
+
197
+ # @!attribute model
198
+ # The model to use for transcription. Can be `gpt-4o-transcribe`,
199
+ # `gpt-4o-mini-transcribe`, or `whisper-1`.
200
+ #
201
+ # @return [Symbol, OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::Transcription::Model, nil]
202
+ optional :model,
203
+ enum: -> { OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::Transcription::Model }
204
+
205
+ # @!attribute prompt
206
+ # An optional text to guide the model's style or continue a previous audio
207
+ # segment. The
208
+ # [prompt](https://platform.openai.com/docs/guides/speech-to-text#prompting)
209
+ # should match the audio language.
210
+ #
211
+ # @return [String, nil]
212
+ optional :prompt, String
213
+
214
+ # @!method initialize(language: nil, model: nil, prompt: nil)
215
+ # Some parameter documentations has been truncated, see
216
+ # {OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::Transcription}
217
+ # for more details.
218
+ #
219
+ # Configuration of the transcription model.
220
+ #
221
+ # @param language [String] The language of the input audio. Supplying the input language in
222
+ #
223
+ # @param model [Symbol, OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::Transcription::Model] The model to use for transcription. Can be `gpt-4o-transcribe`, `gpt-4o-mini-tra
224
+ #
225
+ # @param prompt [String] An optional text to guide the model's style or continue a previous audio segment
226
+
227
+ # The model to use for transcription. Can be `gpt-4o-transcribe`,
228
+ # `gpt-4o-mini-transcribe`, or `whisper-1`.
229
+ #
230
+ # @see OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::Transcription#model
231
+ module Model
232
+ extend OpenAI::Internal::Type::Enum
233
+
234
+ GPT_4O_TRANSCRIBE = :"gpt-4o-transcribe"
235
+ GPT_4O_MINI_TRANSCRIBE = :"gpt-4o-mini-transcribe"
236
+ WHISPER_1 = :"whisper-1"
237
+
238
+ # @!method self.values
239
+ # @return [Array<Symbol>]
240
+ end
241
+ end
242
+
243
+ # @see OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input#turn_detection
244
+ class TurnDetection < OpenAI::Internal::Type::BaseModel
245
+ # @!attribute prefix_padding_ms
246
+ #
247
+ # @return [Integer, nil]
248
+ optional :prefix_padding_ms, Integer
249
+
250
+ # @!attribute silence_duration_ms
251
+ #
252
+ # @return [Integer, nil]
253
+ optional :silence_duration_ms, Integer
254
+
255
+ # @!attribute threshold
256
+ #
257
+ # @return [Float, nil]
258
+ optional :threshold, Float
259
+
260
+ # @!attribute type
261
+ # Type of turn detection, only `server_vad` is currently supported.
262
+ #
263
+ # @return [String, nil]
264
+ optional :type, String
265
+
266
+ # @!method initialize(prefix_padding_ms: nil, silence_duration_ms: nil, threshold: nil, type: nil)
267
+ # Some parameter documentations has been truncated, see
268
+ # {OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse::Audio::Input::TurnDetection}
269
+ # for more details.
270
+ #
271
+ # Configuration for turn detection.
272
+ #
273
+ # @param prefix_padding_ms [Integer]
274
+ #
275
+ # @param silence_duration_ms [Integer]
276
+ #
277
+ # @param threshold [Float]
278
+ #
279
+ # @param type [String] Type of turn detection, only `server_vad` is currently supported.
280
+ end
281
+ end
282
+ end
283
+
284
+ module Include
285
+ extend OpenAI::Internal::Type::Enum
286
+
287
+ ITEM_INPUT_AUDIO_TRANSCRIPTION_LOGPROBS = :"item.input_audio_transcription.logprobs"
288
+
289
+ # @!method self.values
290
+ # @return [Array<Symbol>]
291
+ end
292
+ end
293
+
294
+ # @!method self.variants
295
+ # @return [Array(OpenAI::Models::Realtime::RealtimeSessionCreateResponse, OpenAI::Models::Realtime::ClientSecretCreateResponse::Session::RealtimeTranscriptionSessionCreateResponse)]
296
+ end
297
+ end
298
+ end
299
+ end
300
+ end
@@ -0,0 +1,70 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class ConversationCreatedEvent < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute conversation
8
+ # The conversation resource.
9
+ #
10
+ # @return [OpenAI::Models::Realtime::ConversationCreatedEvent::Conversation]
11
+ required :conversation, -> { OpenAI::Realtime::ConversationCreatedEvent::Conversation }
12
+
13
+ # @!attribute event_id
14
+ # The unique ID of the server event.
15
+ #
16
+ # @return [String]
17
+ required :event_id, String
18
+
19
+ # @!attribute type
20
+ # The event type, must be `conversation.created`.
21
+ #
22
+ # @return [Symbol, :"conversation.created"]
23
+ required :type, const: :"conversation.created"
24
+
25
+ # @!method initialize(conversation:, event_id:, type: :"conversation.created")
26
+ # Returned when a conversation is created. Emitted right after session creation.
27
+ #
28
+ # @param conversation [OpenAI::Models::Realtime::ConversationCreatedEvent::Conversation] The conversation resource.
29
+ #
30
+ # @param event_id [String] The unique ID of the server event.
31
+ #
32
+ # @param type [Symbol, :"conversation.created"] The event type, must be `conversation.created`.
33
+
34
+ # @see OpenAI::Models::Realtime::ConversationCreatedEvent#conversation
35
+ class Conversation < OpenAI::Internal::Type::BaseModel
36
+ # @!attribute id
37
+ # The unique ID of the conversation.
38
+ #
39
+ # @return [String, nil]
40
+ optional :id, String
41
+
42
+ # @!attribute object
43
+ # The object type, must be `realtime.conversation`.
44
+ #
45
+ # @return [Symbol, OpenAI::Models::Realtime::ConversationCreatedEvent::Conversation::Object, nil]
46
+ optional :object, enum: -> { OpenAI::Realtime::ConversationCreatedEvent::Conversation::Object }
47
+
48
+ # @!method initialize(id: nil, object: nil)
49
+ # The conversation resource.
50
+ #
51
+ # @param id [String] The unique ID of the conversation.
52
+ #
53
+ # @param object [Symbol, OpenAI::Models::Realtime::ConversationCreatedEvent::Conversation::Object] The object type, must be `realtime.conversation`.
54
+
55
+ # The object type, must be `realtime.conversation`.
56
+ #
57
+ # @see OpenAI::Models::Realtime::ConversationCreatedEvent::Conversation#object
58
+ module Object
59
+ extend OpenAI::Internal::Type::Enum
60
+
61
+ REALTIME_CONVERSATION = :"realtime.conversation"
62
+
63
+ # @!method self.values
64
+ # @return [Array<Symbol>]
65
+ end
66
+ end
67
+ end
68
+ end
69
+ end
70
+ end
@@ -0,0 +1,44 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ # A single item within a Realtime conversation.
7
+ module ConversationItem
8
+ extend OpenAI::Internal::Type::Union
9
+
10
+ discriminator :type
11
+
12
+ # A system message item in a Realtime conversation.
13
+ variant :message, -> { OpenAI::Realtime::RealtimeConversationItemSystemMessage }
14
+
15
+ # A user message item in a Realtime conversation.
16
+ variant :message, -> { OpenAI::Realtime::RealtimeConversationItemUserMessage }
17
+
18
+ # An assistant message item in a Realtime conversation.
19
+ variant :message, -> { OpenAI::Realtime::RealtimeConversationItemAssistantMessage }
20
+
21
+ # A function call item in a Realtime conversation.
22
+ variant :function_call, -> { OpenAI::Realtime::RealtimeConversationItemFunctionCall }
23
+
24
+ # A function call output item in a Realtime conversation.
25
+ variant :function_call_output, -> { OpenAI::Realtime::RealtimeConversationItemFunctionCallOutput }
26
+
27
+ # A Realtime item responding to an MCP approval request.
28
+ variant :mcp_approval_response, -> { OpenAI::Realtime::RealtimeMcpApprovalResponse }
29
+
30
+ # A Realtime item listing tools available on an MCP server.
31
+ variant :mcp_list_tools, -> { OpenAI::Realtime::RealtimeMcpListTools }
32
+
33
+ # A Realtime item representing an invocation of a tool on an MCP server.
34
+ variant :mcp_tool_call, -> { OpenAI::Realtime::RealtimeMcpToolCall }
35
+
36
+ # A Realtime item requesting human approval of a tool invocation.
37
+ variant :mcp_approval_request, -> { OpenAI::Realtime::RealtimeMcpApprovalRequest }
38
+
39
+ # @!method self.variants
40
+ # @return [Array(OpenAI::Models::Realtime::RealtimeConversationItemSystemMessage, OpenAI::Models::Realtime::RealtimeConversationItemUserMessage, OpenAI::Models::Realtime::RealtimeConversationItemAssistantMessage, OpenAI::Models::Realtime::RealtimeConversationItemFunctionCall, OpenAI::Models::Realtime::RealtimeConversationItemFunctionCallOutput, OpenAI::Models::Realtime::RealtimeMcpApprovalResponse, OpenAI::Models::Realtime::RealtimeMcpListTools, OpenAI::Models::Realtime::RealtimeMcpToolCall, OpenAI::Models::Realtime::RealtimeMcpApprovalRequest)]
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class ConversationItemAdded < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute event_id
8
+ # The unique ID of the server event.
9
+ #
10
+ # @return [String]
11
+ required :event_id, String
12
+
13
+ # @!attribute item
14
+ # A single item within a Realtime conversation.
15
+ #
16
+ # @return [OpenAI::Models::Realtime::RealtimeConversationItemSystemMessage, OpenAI::Models::Realtime::RealtimeConversationItemUserMessage, OpenAI::Models::Realtime::RealtimeConversationItemAssistantMessage, OpenAI::Models::Realtime::RealtimeConversationItemFunctionCall, OpenAI::Models::Realtime::RealtimeConversationItemFunctionCallOutput, OpenAI::Models::Realtime::RealtimeMcpApprovalResponse, OpenAI::Models::Realtime::RealtimeMcpListTools, OpenAI::Models::Realtime::RealtimeMcpToolCall, OpenAI::Models::Realtime::RealtimeMcpApprovalRequest]
17
+ required :item, union: -> { OpenAI::Realtime::ConversationItem }
18
+
19
+ # @!attribute type
20
+ # The event type, must be `conversation.item.added`.
21
+ #
22
+ # @return [Symbol, :"conversation.item.added"]
23
+ required :type, const: :"conversation.item.added"
24
+
25
+ # @!attribute previous_item_id
26
+ # The ID of the item that precedes this one, if any. This is used to maintain
27
+ # ordering when items are inserted.
28
+ #
29
+ # @return [String, nil]
30
+ optional :previous_item_id, String, nil?: true
31
+
32
+ # @!method initialize(event_id:, item:, previous_item_id: nil, type: :"conversation.item.added")
33
+ # Some parameter documentations has been truncated, see
34
+ # {OpenAI::Models::Realtime::ConversationItemAdded} for more details.
35
+ #
36
+ # Returned when a conversation item is added.
37
+ #
38
+ # @param event_id [String] The unique ID of the server event.
39
+ #
40
+ # @param item [OpenAI::Models::Realtime::RealtimeConversationItemSystemMessage, OpenAI::Models::Realtime::RealtimeConversationItemUserMessage, OpenAI::Models::Realtime::RealtimeConversationItemAssistantMessage, OpenAI::Models::Realtime::RealtimeConversationItemFunctionCall, OpenAI::Models::Realtime::RealtimeConversationItemFunctionCallOutput, OpenAI::Models::Realtime::RealtimeMcpApprovalResponse, OpenAI::Models::Realtime::RealtimeMcpListTools, OpenAI::Models::Realtime::RealtimeMcpToolCall, OpenAI::Models::Realtime::RealtimeMcpApprovalRequest] A single item within a Realtime conversation.
41
+ #
42
+ # @param previous_item_id [String, nil] The ID of the item that precedes this one, if any. This is used to
43
+ #
44
+ # @param type [Symbol, :"conversation.item.added"] The event type, must be `conversation.item.added`.
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,57 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class ConversationItemCreateEvent < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute item
8
+ # A single item within a Realtime conversation.
9
+ #
10
+ # @return [OpenAI::Models::Realtime::RealtimeConversationItemSystemMessage, OpenAI::Models::Realtime::RealtimeConversationItemUserMessage, OpenAI::Models::Realtime::RealtimeConversationItemAssistantMessage, OpenAI::Models::Realtime::RealtimeConversationItemFunctionCall, OpenAI::Models::Realtime::RealtimeConversationItemFunctionCallOutput, OpenAI::Models::Realtime::RealtimeMcpApprovalResponse, OpenAI::Models::Realtime::RealtimeMcpListTools, OpenAI::Models::Realtime::RealtimeMcpToolCall, OpenAI::Models::Realtime::RealtimeMcpApprovalRequest]
11
+ required :item, union: -> { OpenAI::Realtime::ConversationItem }
12
+
13
+ # @!attribute type
14
+ # The event type, must be `conversation.item.create`.
15
+ #
16
+ # @return [Symbol, :"conversation.item.create"]
17
+ required :type, const: :"conversation.item.create"
18
+
19
+ # @!attribute event_id
20
+ # Optional client-generated ID used to identify this event.
21
+ #
22
+ # @return [String, nil]
23
+ optional :event_id, String
24
+
25
+ # @!attribute previous_item_id
26
+ # The ID of the preceding item after which the new item will be inserted. If not
27
+ # set, the new item will be appended to the end of the conversation. If set to
28
+ # `root`, the new item will be added to the beginning of the conversation. If set
29
+ # to an existing ID, it allows an item to be inserted mid-conversation. If the ID
30
+ # cannot be found, an error will be returned and the item will not be added.
31
+ #
32
+ # @return [String, nil]
33
+ optional :previous_item_id, String
34
+
35
+ # @!method initialize(item:, event_id: nil, previous_item_id: nil, type: :"conversation.item.create")
36
+ # Some parameter documentations has been truncated, see
37
+ # {OpenAI::Models::Realtime::ConversationItemCreateEvent} for more details.
38
+ #
39
+ # Add a new Item to the Conversation's context, including messages, function
40
+ # calls, and function call responses. This event can be used both to populate a
41
+ # "history" of the conversation and to add new items mid-stream, but has the
42
+ # current limitation that it cannot populate assistant audio messages.
43
+ #
44
+ # If successful, the server will respond with a `conversation.item.created` event,
45
+ # otherwise an `error` event will be sent.
46
+ #
47
+ # @param item [OpenAI::Models::Realtime::RealtimeConversationItemSystemMessage, OpenAI::Models::Realtime::RealtimeConversationItemUserMessage, OpenAI::Models::Realtime::RealtimeConversationItemAssistantMessage, OpenAI::Models::Realtime::RealtimeConversationItemFunctionCall, OpenAI::Models::Realtime::RealtimeConversationItemFunctionCallOutput, OpenAI::Models::Realtime::RealtimeMcpApprovalResponse, OpenAI::Models::Realtime::RealtimeMcpListTools, OpenAI::Models::Realtime::RealtimeMcpToolCall, OpenAI::Models::Realtime::RealtimeMcpApprovalRequest] A single item within a Realtime conversation.
48
+ #
49
+ # @param event_id [String] Optional client-generated ID used to identify this event.
50
+ #
51
+ # @param previous_item_id [String] The ID of the preceding item after which the new item will be inserted.
52
+ #
53
+ # @param type [Symbol, :"conversation.item.create"] The event type, must be `conversation.item.create`.
54
+ end
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,59 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class ConversationItemCreatedEvent < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute event_id
8
+ # The unique ID of the server event.
9
+ #
10
+ # @return [String]
11
+ required :event_id, String
12
+
13
+ # @!attribute item
14
+ # A single item within a Realtime conversation.
15
+ #
16
+ # @return [OpenAI::Models::Realtime::RealtimeConversationItemSystemMessage, OpenAI::Models::Realtime::RealtimeConversationItemUserMessage, OpenAI::Models::Realtime::RealtimeConversationItemAssistantMessage, OpenAI::Models::Realtime::RealtimeConversationItemFunctionCall, OpenAI::Models::Realtime::RealtimeConversationItemFunctionCallOutput, OpenAI::Models::Realtime::RealtimeMcpApprovalResponse, OpenAI::Models::Realtime::RealtimeMcpListTools, OpenAI::Models::Realtime::RealtimeMcpToolCall, OpenAI::Models::Realtime::RealtimeMcpApprovalRequest]
17
+ required :item, union: -> { OpenAI::Realtime::ConversationItem }
18
+
19
+ # @!attribute type
20
+ # The event type, must be `conversation.item.created`.
21
+ #
22
+ # @return [Symbol, :"conversation.item.created"]
23
+ required :type, const: :"conversation.item.created"
24
+
25
+ # @!attribute previous_item_id
26
+ # The ID of the preceding item in the Conversation context, allows the client to
27
+ # understand the order of the conversation. Can be `null` if the item has no
28
+ # predecessor.
29
+ #
30
+ # @return [String, nil]
31
+ optional :previous_item_id, String, nil?: true
32
+
33
+ # @!method initialize(event_id:, item:, previous_item_id: nil, type: :"conversation.item.created")
34
+ # Some parameter documentations has been truncated, see
35
+ # {OpenAI::Models::Realtime::ConversationItemCreatedEvent} for more details.
36
+ #
37
+ # Returned when a conversation item is created. There are several scenarios that
38
+ # produce this event:
39
+ #
40
+ # - The server is generating a Response, which if successful will produce either
41
+ # one or two Items, which will be of type `message` (role `assistant`) or type
42
+ # `function_call`.
43
+ # - The input audio buffer has been committed, either by the client or the server
44
+ # (in `server_vad` mode). The server will take the content of the input audio
45
+ # buffer and add it to a new user message Item.
46
+ # - The client has sent a `conversation.item.create` event to add a new Item to
47
+ # the Conversation.
48
+ #
49
+ # @param event_id [String] The unique ID of the server event.
50
+ #
51
+ # @param item [OpenAI::Models::Realtime::RealtimeConversationItemSystemMessage, OpenAI::Models::Realtime::RealtimeConversationItemUserMessage, OpenAI::Models::Realtime::RealtimeConversationItemAssistantMessage, OpenAI::Models::Realtime::RealtimeConversationItemFunctionCall, OpenAI::Models::Realtime::RealtimeConversationItemFunctionCallOutput, OpenAI::Models::Realtime::RealtimeMcpApprovalResponse, OpenAI::Models::Realtime::RealtimeMcpListTools, OpenAI::Models::Realtime::RealtimeMcpToolCall, OpenAI::Models::Realtime::RealtimeMcpApprovalRequest] A single item within a Realtime conversation.
52
+ #
53
+ # @param previous_item_id [String, nil] The ID of the preceding item in the Conversation context, allows the
54
+ #
55
+ # @param type [Symbol, :"conversation.item.created"] The event type, must be `conversation.item.created`.
56
+ end
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class ConversationItemDeleteEvent < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute item_id
8
+ # The ID of the item to delete.
9
+ #
10
+ # @return [String]
11
+ required :item_id, String
12
+
13
+ # @!attribute type
14
+ # The event type, must be `conversation.item.delete`.
15
+ #
16
+ # @return [Symbol, :"conversation.item.delete"]
17
+ required :type, const: :"conversation.item.delete"
18
+
19
+ # @!attribute event_id
20
+ # Optional client-generated ID used to identify this event.
21
+ #
22
+ # @return [String, nil]
23
+ optional :event_id, String
24
+
25
+ # @!method initialize(item_id:, event_id: nil, type: :"conversation.item.delete")
26
+ # Send this event when you want to remove any item from the conversation history.
27
+ # The server will respond with a `conversation.item.deleted` event, unless the
28
+ # item does not exist in the conversation history, in which case the server will
29
+ # respond with an error.
30
+ #
31
+ # @param item_id [String] The ID of the item to delete.
32
+ #
33
+ # @param event_id [String] Optional client-generated ID used to identify this event.
34
+ #
35
+ # @param type [Symbol, :"conversation.item.delete"] The event type, must be `conversation.item.delete`.
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class ConversationItemDeletedEvent < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute event_id
8
+ # The unique ID of the server event.
9
+ #
10
+ # @return [String]
11
+ required :event_id, String
12
+
13
+ # @!attribute item_id
14
+ # The ID of the item that was deleted.
15
+ #
16
+ # @return [String]
17
+ required :item_id, String
18
+
19
+ # @!attribute type
20
+ # The event type, must be `conversation.item.deleted`.
21
+ #
22
+ # @return [Symbol, :"conversation.item.deleted"]
23
+ required :type, const: :"conversation.item.deleted"
24
+
25
+ # @!method initialize(event_id:, item_id:, type: :"conversation.item.deleted")
26
+ # Returned when an item in the conversation is deleted by the client with a
27
+ # `conversation.item.delete` event. This event is used to synchronize the server's
28
+ # understanding of the conversation history with the client's view.
29
+ #
30
+ # @param event_id [String] The unique ID of the server event.
31
+ #
32
+ # @param item_id [String] The ID of the item that was deleted.
33
+ #
34
+ # @param type [Symbol, :"conversation.item.deleted"] The event type, must be `conversation.item.deleted`.
35
+ end
36
+ end
37
+ end
38
+ end