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,164 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class ConversationCreatedEvent < OpenAI::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ OpenAI::Realtime::ConversationCreatedEvent,
11
+ OpenAI::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # The conversation resource.
16
+ sig do
17
+ returns(OpenAI::Realtime::ConversationCreatedEvent::Conversation)
18
+ end
19
+ attr_reader :conversation
20
+
21
+ sig do
22
+ params(
23
+ conversation:
24
+ OpenAI::Realtime::ConversationCreatedEvent::Conversation::OrHash
25
+ ).void
26
+ end
27
+ attr_writer :conversation
28
+
29
+ # The unique ID of the server event.
30
+ sig { returns(String) }
31
+ attr_accessor :event_id
32
+
33
+ # The event type, must be `conversation.created`.
34
+ sig { returns(Symbol) }
35
+ attr_accessor :type
36
+
37
+ # Returned when a conversation is created. Emitted right after session creation.
38
+ sig do
39
+ params(
40
+ conversation:
41
+ OpenAI::Realtime::ConversationCreatedEvent::Conversation::OrHash,
42
+ event_id: String,
43
+ type: Symbol
44
+ ).returns(T.attached_class)
45
+ end
46
+ def self.new(
47
+ # The conversation resource.
48
+ conversation:,
49
+ # The unique ID of the server event.
50
+ event_id:,
51
+ # The event type, must be `conversation.created`.
52
+ type: :"conversation.created"
53
+ )
54
+ end
55
+
56
+ sig do
57
+ override.returns(
58
+ {
59
+ conversation:
60
+ OpenAI::Realtime::ConversationCreatedEvent::Conversation,
61
+ event_id: String,
62
+ type: Symbol
63
+ }
64
+ )
65
+ end
66
+ def to_hash
67
+ end
68
+
69
+ class Conversation < OpenAI::Internal::Type::BaseModel
70
+ OrHash =
71
+ T.type_alias do
72
+ T.any(
73
+ OpenAI::Realtime::ConversationCreatedEvent::Conversation,
74
+ OpenAI::Internal::AnyHash
75
+ )
76
+ end
77
+
78
+ # The unique ID of the conversation.
79
+ sig { returns(T.nilable(String)) }
80
+ attr_reader :id
81
+
82
+ sig { params(id: String).void }
83
+ attr_writer :id
84
+
85
+ # The object type, must be `realtime.conversation`.
86
+ sig do
87
+ returns(
88
+ T.nilable(
89
+ OpenAI::Realtime::ConversationCreatedEvent::Conversation::Object::OrSymbol
90
+ )
91
+ )
92
+ end
93
+ attr_reader :object
94
+
95
+ sig do
96
+ params(
97
+ object:
98
+ OpenAI::Realtime::ConversationCreatedEvent::Conversation::Object::OrSymbol
99
+ ).void
100
+ end
101
+ attr_writer :object
102
+
103
+ # The conversation resource.
104
+ sig do
105
+ params(
106
+ id: String,
107
+ object:
108
+ OpenAI::Realtime::ConversationCreatedEvent::Conversation::Object::OrSymbol
109
+ ).returns(T.attached_class)
110
+ end
111
+ def self.new(
112
+ # The unique ID of the conversation.
113
+ id: nil,
114
+ # The object type, must be `realtime.conversation`.
115
+ object: nil
116
+ )
117
+ end
118
+
119
+ sig do
120
+ override.returns(
121
+ {
122
+ id: String,
123
+ object:
124
+ OpenAI::Realtime::ConversationCreatedEvent::Conversation::Object::OrSymbol
125
+ }
126
+ )
127
+ end
128
+ def to_hash
129
+ end
130
+
131
+ # The object type, must be `realtime.conversation`.
132
+ module Object
133
+ extend OpenAI::Internal::Type::Enum
134
+
135
+ TaggedSymbol =
136
+ T.type_alias do
137
+ T.all(
138
+ Symbol,
139
+ OpenAI::Realtime::ConversationCreatedEvent::Conversation::Object
140
+ )
141
+ end
142
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
143
+
144
+ REALTIME_CONVERSATION =
145
+ T.let(
146
+ :"realtime.conversation",
147
+ OpenAI::Realtime::ConversationCreatedEvent::Conversation::Object::TaggedSymbol
148
+ )
149
+
150
+ sig do
151
+ override.returns(
152
+ T::Array[
153
+ OpenAI::Realtime::ConversationCreatedEvent::Conversation::Object::TaggedSymbol
154
+ ]
155
+ )
156
+ end
157
+ def self.values
158
+ end
159
+ end
160
+ end
161
+ end
162
+ end
163
+ end
164
+ end
@@ -0,0 +1,35 @@
1
+ # typed: strong
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
+ Variants =
11
+ T.type_alias do
12
+ T.any(
13
+ OpenAI::Realtime::RealtimeConversationItemSystemMessage,
14
+ OpenAI::Realtime::RealtimeConversationItemUserMessage,
15
+ OpenAI::Realtime::RealtimeConversationItemAssistantMessage,
16
+ OpenAI::Realtime::RealtimeConversationItemFunctionCall,
17
+ OpenAI::Realtime::RealtimeConversationItemFunctionCallOutput,
18
+ OpenAI::Realtime::RealtimeMcpApprovalResponse,
19
+ OpenAI::Realtime::RealtimeMcpListTools,
20
+ OpenAI::Realtime::RealtimeMcpToolCall,
21
+ OpenAI::Realtime::RealtimeMcpApprovalRequest
22
+ )
23
+ end
24
+
25
+ sig do
26
+ override.returns(
27
+ T::Array[OpenAI::Realtime::ConversationItem::Variants]
28
+ )
29
+ end
30
+ def self.variants
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,105 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class ConversationItemAdded < OpenAI::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ OpenAI::Realtime::ConversationItemAdded,
11
+ OpenAI::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # The unique ID of the server event.
16
+ sig { returns(String) }
17
+ attr_accessor :event_id
18
+
19
+ # A single item within a Realtime conversation.
20
+ sig do
21
+ returns(
22
+ T.any(
23
+ OpenAI::Realtime::RealtimeConversationItemSystemMessage,
24
+ OpenAI::Realtime::RealtimeConversationItemUserMessage,
25
+ OpenAI::Realtime::RealtimeConversationItemAssistantMessage,
26
+ OpenAI::Realtime::RealtimeConversationItemFunctionCall,
27
+ OpenAI::Realtime::RealtimeConversationItemFunctionCallOutput,
28
+ OpenAI::Realtime::RealtimeMcpApprovalResponse,
29
+ OpenAI::Realtime::RealtimeMcpListTools,
30
+ OpenAI::Realtime::RealtimeMcpToolCall,
31
+ OpenAI::Realtime::RealtimeMcpApprovalRequest
32
+ )
33
+ )
34
+ end
35
+ attr_accessor :item
36
+
37
+ # The event type, must be `conversation.item.added`.
38
+ sig { returns(Symbol) }
39
+ attr_accessor :type
40
+
41
+ # The ID of the item that precedes this one, if any. This is used to maintain
42
+ # ordering when items are inserted.
43
+ sig { returns(T.nilable(String)) }
44
+ attr_accessor :previous_item_id
45
+
46
+ # Returned when a conversation item is added.
47
+ sig do
48
+ params(
49
+ event_id: String,
50
+ item:
51
+ T.any(
52
+ OpenAI::Realtime::RealtimeConversationItemSystemMessage::OrHash,
53
+ OpenAI::Realtime::RealtimeConversationItemUserMessage::OrHash,
54
+ OpenAI::Realtime::RealtimeConversationItemAssistantMessage::OrHash,
55
+ OpenAI::Realtime::RealtimeConversationItemFunctionCall::OrHash,
56
+ OpenAI::Realtime::RealtimeConversationItemFunctionCallOutput::OrHash,
57
+ OpenAI::Realtime::RealtimeMcpApprovalResponse::OrHash,
58
+ OpenAI::Realtime::RealtimeMcpListTools::OrHash,
59
+ OpenAI::Realtime::RealtimeMcpToolCall::OrHash,
60
+ OpenAI::Realtime::RealtimeMcpApprovalRequest::OrHash
61
+ ),
62
+ previous_item_id: T.nilable(String),
63
+ type: Symbol
64
+ ).returns(T.attached_class)
65
+ end
66
+ def self.new(
67
+ # The unique ID of the server event.
68
+ event_id:,
69
+ # A single item within a Realtime conversation.
70
+ item:,
71
+ # The ID of the item that precedes this one, if any. This is used to maintain
72
+ # ordering when items are inserted.
73
+ previous_item_id: nil,
74
+ # The event type, must be `conversation.item.added`.
75
+ type: :"conversation.item.added"
76
+ )
77
+ end
78
+
79
+ sig do
80
+ override.returns(
81
+ {
82
+ event_id: String,
83
+ item:
84
+ T.any(
85
+ OpenAI::Realtime::RealtimeConversationItemSystemMessage,
86
+ OpenAI::Realtime::RealtimeConversationItemUserMessage,
87
+ OpenAI::Realtime::RealtimeConversationItemAssistantMessage,
88
+ OpenAI::Realtime::RealtimeConversationItemFunctionCall,
89
+ OpenAI::Realtime::RealtimeConversationItemFunctionCallOutput,
90
+ OpenAI::Realtime::RealtimeMcpApprovalResponse,
91
+ OpenAI::Realtime::RealtimeMcpListTools,
92
+ OpenAI::Realtime::RealtimeMcpToolCall,
93
+ OpenAI::Realtime::RealtimeMcpApprovalRequest
94
+ ),
95
+ type: Symbol,
96
+ previous_item_id: T.nilable(String)
97
+ }
98
+ )
99
+ end
100
+ def to_hash
101
+ end
102
+ end
103
+ end
104
+ end
105
+ end
@@ -0,0 +1,123 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class ConversationItemCreateEvent < OpenAI::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ OpenAI::Realtime::ConversationItemCreateEvent,
11
+ OpenAI::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # A single item within a Realtime conversation.
16
+ sig do
17
+ returns(
18
+ T.any(
19
+ OpenAI::Realtime::RealtimeConversationItemSystemMessage,
20
+ OpenAI::Realtime::RealtimeConversationItemUserMessage,
21
+ OpenAI::Realtime::RealtimeConversationItemAssistantMessage,
22
+ OpenAI::Realtime::RealtimeConversationItemFunctionCall,
23
+ OpenAI::Realtime::RealtimeConversationItemFunctionCallOutput,
24
+ OpenAI::Realtime::RealtimeMcpApprovalResponse,
25
+ OpenAI::Realtime::RealtimeMcpListTools,
26
+ OpenAI::Realtime::RealtimeMcpToolCall,
27
+ OpenAI::Realtime::RealtimeMcpApprovalRequest
28
+ )
29
+ )
30
+ end
31
+ attr_accessor :item
32
+
33
+ # The event type, must be `conversation.item.create`.
34
+ sig { returns(Symbol) }
35
+ attr_accessor :type
36
+
37
+ # Optional client-generated ID used to identify this event.
38
+ sig { returns(T.nilable(String)) }
39
+ attr_reader :event_id
40
+
41
+ sig { params(event_id: String).void }
42
+ attr_writer :event_id
43
+
44
+ # The ID of the preceding item after which the new item will be inserted. If not
45
+ # set, the new item will be appended to the end of the conversation. If set to
46
+ # `root`, the new item will be added to the beginning of the conversation. If set
47
+ # to an existing ID, it allows an item to be inserted mid-conversation. If the ID
48
+ # cannot be found, an error will be returned and the item will not be added.
49
+ sig { returns(T.nilable(String)) }
50
+ attr_reader :previous_item_id
51
+
52
+ sig { params(previous_item_id: String).void }
53
+ attr_writer :previous_item_id
54
+
55
+ # Add a new Item to the Conversation's context, including messages, function
56
+ # calls, and function call responses. This event can be used both to populate a
57
+ # "history" of the conversation and to add new items mid-stream, but has the
58
+ # current limitation that it cannot populate assistant audio messages.
59
+ #
60
+ # If successful, the server will respond with a `conversation.item.created` event,
61
+ # otherwise an `error` event will be sent.
62
+ sig do
63
+ params(
64
+ item:
65
+ T.any(
66
+ OpenAI::Realtime::RealtimeConversationItemSystemMessage::OrHash,
67
+ OpenAI::Realtime::RealtimeConversationItemUserMessage::OrHash,
68
+ OpenAI::Realtime::RealtimeConversationItemAssistantMessage::OrHash,
69
+ OpenAI::Realtime::RealtimeConversationItemFunctionCall::OrHash,
70
+ OpenAI::Realtime::RealtimeConversationItemFunctionCallOutput::OrHash,
71
+ OpenAI::Realtime::RealtimeMcpApprovalResponse::OrHash,
72
+ OpenAI::Realtime::RealtimeMcpListTools::OrHash,
73
+ OpenAI::Realtime::RealtimeMcpToolCall::OrHash,
74
+ OpenAI::Realtime::RealtimeMcpApprovalRequest::OrHash
75
+ ),
76
+ event_id: String,
77
+ previous_item_id: String,
78
+ type: Symbol
79
+ ).returns(T.attached_class)
80
+ end
81
+ def self.new(
82
+ # A single item within a Realtime conversation.
83
+ item:,
84
+ # Optional client-generated ID used to identify this event.
85
+ event_id: nil,
86
+ # The ID of the preceding item after which the new item will be inserted. If not
87
+ # set, the new item will be appended to the end of the conversation. If set to
88
+ # `root`, the new item will be added to the beginning of the conversation. If set
89
+ # to an existing ID, it allows an item to be inserted mid-conversation. If the ID
90
+ # cannot be found, an error will be returned and the item will not be added.
91
+ previous_item_id: nil,
92
+ # The event type, must be `conversation.item.create`.
93
+ type: :"conversation.item.create"
94
+ )
95
+ end
96
+
97
+ sig do
98
+ override.returns(
99
+ {
100
+ item:
101
+ T.any(
102
+ OpenAI::Realtime::RealtimeConversationItemSystemMessage,
103
+ OpenAI::Realtime::RealtimeConversationItemUserMessage,
104
+ OpenAI::Realtime::RealtimeConversationItemAssistantMessage,
105
+ OpenAI::Realtime::RealtimeConversationItemFunctionCall,
106
+ OpenAI::Realtime::RealtimeConversationItemFunctionCallOutput,
107
+ OpenAI::Realtime::RealtimeMcpApprovalResponse,
108
+ OpenAI::Realtime::RealtimeMcpListTools,
109
+ OpenAI::Realtime::RealtimeMcpToolCall,
110
+ OpenAI::Realtime::RealtimeMcpApprovalRequest
111
+ ),
112
+ type: Symbol,
113
+ event_id: String,
114
+ previous_item_id: String
115
+ }
116
+ )
117
+ end
118
+ def to_hash
119
+ end
120
+ end
121
+ end
122
+ end
123
+ end
@@ -0,0 +1,117 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class ConversationItemCreatedEvent < OpenAI::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ OpenAI::Realtime::ConversationItemCreatedEvent,
11
+ OpenAI::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # The unique ID of the server event.
16
+ sig { returns(String) }
17
+ attr_accessor :event_id
18
+
19
+ # A single item within a Realtime conversation.
20
+ sig do
21
+ returns(
22
+ T.any(
23
+ OpenAI::Realtime::RealtimeConversationItemSystemMessage,
24
+ OpenAI::Realtime::RealtimeConversationItemUserMessage,
25
+ OpenAI::Realtime::RealtimeConversationItemAssistantMessage,
26
+ OpenAI::Realtime::RealtimeConversationItemFunctionCall,
27
+ OpenAI::Realtime::RealtimeConversationItemFunctionCallOutput,
28
+ OpenAI::Realtime::RealtimeMcpApprovalResponse,
29
+ OpenAI::Realtime::RealtimeMcpListTools,
30
+ OpenAI::Realtime::RealtimeMcpToolCall,
31
+ OpenAI::Realtime::RealtimeMcpApprovalRequest
32
+ )
33
+ )
34
+ end
35
+ attr_accessor :item
36
+
37
+ # The event type, must be `conversation.item.created`.
38
+ sig { returns(Symbol) }
39
+ attr_accessor :type
40
+
41
+ # The ID of the preceding item in the Conversation context, allows the client to
42
+ # understand the order of the conversation. Can be `null` if the item has no
43
+ # predecessor.
44
+ sig { returns(T.nilable(String)) }
45
+ attr_accessor :previous_item_id
46
+
47
+ # Returned when a conversation item is created. There are several scenarios that
48
+ # produce this event:
49
+ #
50
+ # - The server is generating a Response, which if successful will produce either
51
+ # one or two Items, which will be of type `message` (role `assistant`) or type
52
+ # `function_call`.
53
+ # - The input audio buffer has been committed, either by the client or the server
54
+ # (in `server_vad` mode). The server will take the content of the input audio
55
+ # buffer and add it to a new user message Item.
56
+ # - The client has sent a `conversation.item.create` event to add a new Item to
57
+ # the Conversation.
58
+ sig do
59
+ params(
60
+ event_id: String,
61
+ item:
62
+ T.any(
63
+ OpenAI::Realtime::RealtimeConversationItemSystemMessage::OrHash,
64
+ OpenAI::Realtime::RealtimeConversationItemUserMessage::OrHash,
65
+ OpenAI::Realtime::RealtimeConversationItemAssistantMessage::OrHash,
66
+ OpenAI::Realtime::RealtimeConversationItemFunctionCall::OrHash,
67
+ OpenAI::Realtime::RealtimeConversationItemFunctionCallOutput::OrHash,
68
+ OpenAI::Realtime::RealtimeMcpApprovalResponse::OrHash,
69
+ OpenAI::Realtime::RealtimeMcpListTools::OrHash,
70
+ OpenAI::Realtime::RealtimeMcpToolCall::OrHash,
71
+ OpenAI::Realtime::RealtimeMcpApprovalRequest::OrHash
72
+ ),
73
+ previous_item_id: T.nilable(String),
74
+ type: Symbol
75
+ ).returns(T.attached_class)
76
+ end
77
+ def self.new(
78
+ # The unique ID of the server event.
79
+ event_id:,
80
+ # A single item within a Realtime conversation.
81
+ item:,
82
+ # The ID of the preceding item in the Conversation context, allows the client to
83
+ # understand the order of the conversation. Can be `null` if the item has no
84
+ # predecessor.
85
+ previous_item_id: nil,
86
+ # The event type, must be `conversation.item.created`.
87
+ type: :"conversation.item.created"
88
+ )
89
+ end
90
+
91
+ sig do
92
+ override.returns(
93
+ {
94
+ event_id: String,
95
+ item:
96
+ T.any(
97
+ OpenAI::Realtime::RealtimeConversationItemSystemMessage,
98
+ OpenAI::Realtime::RealtimeConversationItemUserMessage,
99
+ OpenAI::Realtime::RealtimeConversationItemAssistantMessage,
100
+ OpenAI::Realtime::RealtimeConversationItemFunctionCall,
101
+ OpenAI::Realtime::RealtimeConversationItemFunctionCallOutput,
102
+ OpenAI::Realtime::RealtimeMcpApprovalResponse,
103
+ OpenAI::Realtime::RealtimeMcpListTools,
104
+ OpenAI::Realtime::RealtimeMcpToolCall,
105
+ OpenAI::Realtime::RealtimeMcpApprovalRequest
106
+ ),
107
+ type: Symbol,
108
+ previous_item_id: T.nilable(String)
109
+ }
110
+ )
111
+ end
112
+ def to_hash
113
+ end
114
+ end
115
+ end
116
+ end
117
+ end
@@ -0,0 +1,57 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class ConversationItemDeleteEvent < OpenAI::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ OpenAI::Realtime::ConversationItemDeleteEvent,
11
+ OpenAI::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # The ID of the item to delete.
16
+ sig { returns(String) }
17
+ attr_accessor :item_id
18
+
19
+ # The event type, must be `conversation.item.delete`.
20
+ sig { returns(Symbol) }
21
+ attr_accessor :type
22
+
23
+ # Optional client-generated ID used to identify this event.
24
+ sig { returns(T.nilable(String)) }
25
+ attr_reader :event_id
26
+
27
+ sig { params(event_id: String).void }
28
+ attr_writer :event_id
29
+
30
+ # Send this event when you want to remove any item from the conversation history.
31
+ # The server will respond with a `conversation.item.deleted` event, unless the
32
+ # item does not exist in the conversation history, in which case the server will
33
+ # respond with an error.
34
+ sig do
35
+ params(item_id: String, event_id: String, type: Symbol).returns(
36
+ T.attached_class
37
+ )
38
+ end
39
+ def self.new(
40
+ # The ID of the item to delete.
41
+ item_id:,
42
+ # Optional client-generated ID used to identify this event.
43
+ event_id: nil,
44
+ # The event type, must be `conversation.item.delete`.
45
+ type: :"conversation.item.delete"
46
+ )
47
+ end
48
+
49
+ sig do
50
+ override.returns({ item_id: String, type: Symbol, event_id: String })
51
+ end
52
+ def to_hash
53
+ end
54
+ end
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,53 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Realtime
6
+ class ConversationItemDeletedEvent < OpenAI::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ OpenAI::Realtime::ConversationItemDeletedEvent,
11
+ OpenAI::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # The unique ID of the server event.
16
+ sig { returns(String) }
17
+ attr_accessor :event_id
18
+
19
+ # The ID of the item that was deleted.
20
+ sig { returns(String) }
21
+ attr_accessor :item_id
22
+
23
+ # The event type, must be `conversation.item.deleted`.
24
+ sig { returns(Symbol) }
25
+ attr_accessor :type
26
+
27
+ # Returned when an item in the conversation is deleted by the client with a
28
+ # `conversation.item.delete` event. This event is used to synchronize the server's
29
+ # understanding of the conversation history with the client's view.
30
+ sig do
31
+ params(event_id: String, item_id: String, type: Symbol).returns(
32
+ T.attached_class
33
+ )
34
+ end
35
+ def self.new(
36
+ # The unique ID of the server event.
37
+ event_id:,
38
+ # The ID of the item that was deleted.
39
+ item_id:,
40
+ # The event type, must be `conversation.item.deleted`.
41
+ type: :"conversation.item.deleted"
42
+ )
43
+ end
44
+
45
+ sig do
46
+ override.returns({ event_id: String, item_id: String, type: Symbol })
47
+ end
48
+ def to_hash
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end