openai 0.102.0 → 0.104.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 (426) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +88 -0
  3. data/README.md +23 -1
  4. data/lib/openai/client.rb +3 -386
  5. data/lib/openai/helpers/admin/organization/projects/api_keys.rb +42 -0
  6. data/lib/openai/helpers/agents/session_stream_resource.rb +60 -0
  7. data/lib/openai/helpers/beta/agents/artifacts.rb +18 -0
  8. data/lib/openai/helpers/beta/agents/files.rb +41 -0
  9. data/lib/openai/helpers/client_runtime.rb +391 -0
  10. data/lib/openai/helpers/files.rb +47 -0
  11. data/lib/openai/helpers/live/websocket.rb +8 -57
  12. data/lib/openai/helpers/models/chat/parsed.rb +32 -0
  13. data/lib/openai/helpers/models/responses/parsed.rb +30 -0
  14. data/lib/openai/helpers/models/responses/response.rb +32 -0
  15. data/lib/openai/helpers/models/webhooks/webhook_endpoint_with_secret.rb +20 -0
  16. data/lib/openai/helpers/realtime/client_extension.rb +1 -2
  17. data/lib/openai/helpers/realtime/connection_manager.rb +1 -1
  18. data/lib/openai/helpers/realtime/translation.rb +7 -50
  19. data/lib/openai/helpers/responses_websocket/client_extension.rb +1 -2
  20. data/lib/openai/helpers/streaming/chat_completion_resource.rb +36 -0
  21. data/lib/openai/helpers/streaming/response_stream.rb +1 -16
  22. data/lib/openai/helpers/streaming/response_stream_resource.rb +78 -0
  23. data/lib/openai/helpers/vector_stores/file_batches.rb +188 -0
  24. data/lib/openai/helpers/vector_stores/files.rb +198 -0
  25. data/lib/openai/helpers/websocket/client_request.rb +31 -6
  26. data/lib/openai/helpers/websocket/connection.rb +58 -0
  27. data/lib/openai/helpers/websocket/connection_manager.rb +4 -2
  28. data/lib/openai/helpers/websocket/protocol.rb +2 -1
  29. data/lib/openai/helpers/websocket/resource.rb +54 -0
  30. data/lib/openai/helpers/websocket/typed_connection.rb +95 -0
  31. data/lib/openai/helpers/websocket.rb +4 -0
  32. data/lib/openai/models/admin/organization/audit_log_list_response.rb +5 -3
  33. data/lib/openai/models/admin/organization/external_storage_configuration.rb +5 -3
  34. data/lib/openai/models/admin/organization/external_storage_create_params.rb +33 -3
  35. data/lib/openai/models/admin/organization/oci_external_storage_provider.rb +37 -0
  36. data/lib/openai/models/admin/organization/project_residency.rb +3 -0
  37. data/lib/openai/models/admin/organization/projects/api_key_update_params.rb +64 -0
  38. data/lib/openai/models/admin/organization/projects/api_key_update_scopes_params.rb +34 -0
  39. data/lib/openai/models/admin/organization/usage_decisions_params.rb +177 -0
  40. data/lib/openai/models/admin/organization/usage_decisions_response.rb +351 -0
  41. data/lib/openai/models/audio/speech_create_params.rb +6 -3
  42. data/lib/openai/models/audio/translation_create_response.rb +0 -1
  43. data/lib/openai/models/audio/voice.rb +17 -2
  44. data/lib/openai/models/audio/voice_create_params.rb +100 -3
  45. data/lib/openai/models/beta/agent_create_params.rb +4 -2
  46. data/lib/openai/models/beta/agent_list_params.rb +4 -4
  47. data/lib/openai/models/beta/agent_session.rb +37 -1
  48. data/lib/openai/models/beta/agent_session_environment_expired_event.rb +57 -0
  49. data/lib/openai/models/beta/agent_session_environment_state.rb +6 -0
  50. data/lib/openai/models/beta/agent_session_environment_suspended_event.rb +57 -0
  51. data/lib/openai/models/beta/agent_session_event.rb +7 -1
  52. data/lib/openai/models/beta/agent_update_params.rb +4 -2
  53. data/lib/openai/models/beta/agents/environment_info.rb +3 -0
  54. data/lib/openai/models/beta/agents/environment_list_params.rb +7 -7
  55. data/lib/openai/models/beta/agents/session_create_params.rb +39 -3
  56. data/lib/openai/models/beta/agents/session_list_params.rb +7 -10
  57. data/lib/openai/models/beta/agents/session_update_params.rb +33 -1
  58. data/lib/openai/models/beta/agents/sessions/artifact_list_params.rb +11 -11
  59. data/lib/openai/models/beta/agents/vault_list_params.rb +23 -13
  60. data/lib/openai/models/beta/agents/vault_status_filter.rb +1 -3
  61. data/lib/openai/models/beta/agents/vault_update_params.rb +47 -0
  62. data/lib/openai/models/beta/agents/vaults/credential_list_params.rb +23 -13
  63. data/lib/openai/models/beta/beta_response.rb +23 -2
  64. data/lib/openai/models/beta/beta_response_error.rb +19 -1
  65. data/lib/openai/models/beta/beta_response_input_item.rb +107 -1
  66. data/lib/openai/models/beta/beta_response_item.rb +107 -1
  67. data/lib/openai/models/beta/beta_response_output_item.rb +107 -1
  68. data/lib/openai/models/beta/beta_responses_client_event.rb +23 -2
  69. data/lib/openai/models/beta/response_compact_params.rb +21 -0
  70. data/lib/openai/models/beta/response_create_params.rb +23 -2
  71. data/lib/openai/models/beta/session_turn_error.rb +3 -0
  72. data/lib/openai/models/chat/chat_completion_audio_param.rb +3 -3
  73. data/lib/openai/models/chat/chat_completion_message.rb +0 -8
  74. data/lib/openai/models/chat/chat_completion_message_function_tool_call.rb +0 -8
  75. data/lib/openai/models/chat/completion_create_params.rb +5 -12
  76. data/lib/openai/models/chat_model.rb +21 -0
  77. data/lib/openai/models/conversations/conversation_item.rb +107 -1
  78. data/lib/openai/models/decision.rb +17 -2
  79. data/lib/openai/models/decision_create_params.rb +29 -12
  80. data/lib/openai/models/decision_input_image.rb +4 -3
  81. data/lib/openai/models/decision_input_message.rb +4 -4
  82. data/lib/openai/models/decision_input_part.rb +3 -2
  83. data/lib/openai/models/image_edit_completed_event.rb +1 -2
  84. data/lib/openai/models/image_edit_partial_image_event.rb +1 -2
  85. data/lib/openai/models/image_gen_completed_event.rb +1 -2
  86. data/lib/openai/models/image_gen_partial_image_event.rb +1 -2
  87. data/lib/openai/models/images_response.rb +1 -2
  88. data/lib/openai/models/live/built_in_voice.rb +1 -0
  89. data/lib/openai/models/live/client_event.rb +14 -2
  90. data/lib/openai/models/live/decision_create_event.rb +26 -0
  91. data/lib/openai/models/live/decision_event.rb +117 -0
  92. data/lib/openai/models/live/decision_item_create_event.rb +194 -0
  93. data/lib/openai/models/live/decision_item_created_event.rb +202 -0
  94. data/lib/openai/models/live/decision_item_delete_event.rb +38 -0
  95. data/lib/openai/models/live/decision_item_deleted_event.rb +46 -0
  96. data/lib/openai/models/live/decision_trigger.rb +244 -0
  97. data/lib/openai/models/live/decisions_delegation_config.rb +201 -0
  98. data/lib/openai/models/live/decisions_delegation_update_config.rb +208 -0
  99. data/lib/openai/models/live/delegation_created_event.rb +10 -10
  100. data/lib/openai/models/live/fork_client_event.rb +14 -2
  101. data/lib/openai/models/live/fork_server_event.rb +17 -2
  102. data/lib/openai/models/live/media_session_config.rb +47 -11
  103. data/lib/openai/models/live/output_audio_fixture_play_event.rb +48 -0
  104. data/lib/openai/models/live/output_audio_fixture_played_event.rb +42 -0
  105. data/lib/openai/models/live/output_audio_fixture_playing_event.rb +41 -0
  106. data/lib/openai/models/live/server_event.rb +17 -2
  107. data/lib/openai/models/live/session_accept_params.rb +47 -11
  108. data/lib/openai/models/live/session_config.rb +47 -11
  109. data/lib/openai/models/live/session_resource.rb +47 -11
  110. data/lib/openai/models/live/session_update_config.rb +38 -6
  111. data/lib/openai/models/live/session_update_event.rb +8 -8
  112. data/lib/openai/models/live/sideband_client_event.rb +57 -0
  113. data/lib/openai/models/live/sideband_server_event.rb +78 -0
  114. data/lib/openai/models/realtime/realtime_audio_config_output.rb +6 -3
  115. data/lib/openai/models/realtime/realtime_response_create_audio_output.rb +6 -3
  116. data/lib/openai/models/realtime/realtime_response_status.rb +10 -1
  117. data/lib/openai/models/response_format_json_schema.rb +1 -1
  118. data/lib/openai/models/responses/function_tool.rb +8 -6
  119. data/lib/openai/models/responses/response.rb +2 -23
  120. data/lib/openai/models/responses/response_compact_params.rb +21 -0
  121. data/lib/openai/models/responses/response_create_params.rb +3 -6
  122. data/lib/openai/models/responses/response_error.rb +19 -1
  123. data/lib/openai/models/responses/response_format_text_config.rb +0 -4
  124. data/lib/openai/models/responses/response_function_tool_call.rb +0 -8
  125. data/lib/openai/models/responses/response_input_item.rb +107 -1
  126. data/lib/openai/models/responses/response_item.rb +107 -1
  127. data/lib/openai/models/responses/response_output_item.rb +107 -1
  128. data/lib/openai/models/responses/response_output_text.rb +0 -8
  129. data/lib/openai/models/responses/responses_client_event.rb +2 -2
  130. data/lib/openai/models/safety/safety_alert.rb +12 -1
  131. data/lib/openai/models/video_create_error.rb +19 -1
  132. data/lib/openai/models/webhooks/agent_environment_expired_webhook_event.rb +72 -0
  133. data/lib/openai/models/webhooks/agent_environment_suspended_webhook_event.rb +72 -0
  134. data/lib/openai/models/webhooks/unwrap_webhook_event.rb +8 -3
  135. data/lib/openai/models/webhooks/webhook_create_params.rb +2 -0
  136. data/lib/openai/models/webhooks/webhook_endpoint_with_secret.rb +0 -9
  137. data/lib/openai/models/webhooks/webhook_test_params.rb +2 -0
  138. data/lib/openai/models/webhooks/webhook_update_params.rb +2 -0
  139. data/lib/openai/resources/admin/organization/external_storage.rb +1 -1
  140. data/lib/openai/resources/admin/organization/projects/api_keys.rb +61 -0
  141. data/lib/openai/resources/admin/organization/usage.rb +67 -0
  142. data/lib/openai/resources/audio/speech.rb +2 -1
  143. data/lib/openai/resources/audio/voices.rb +10 -10
  144. data/lib/openai/resources/beta/agents/environments/files.rb +3 -31
  145. data/lib/openai/resources/beta/agents/environments.rb +3 -3
  146. data/lib/openai/resources/beta/agents/sessions/artifacts.rb +5 -11
  147. data/lib/openai/resources/beta/agents/sessions/events.rb +1 -1
  148. data/lib/openai/resources/beta/agents/sessions.rb +20 -56
  149. data/lib/openai/resources/beta/agents/vaults/credentials.rb +10 -6
  150. data/lib/openai/resources/beta/agents/vaults.rb +45 -6
  151. data/lib/openai/resources/beta/agents.rb +6 -4
  152. data/lib/openai/resources/beta/responses.rb +2 -2
  153. data/lib/openai/resources/chat/completions.rb +11 -37
  154. data/lib/openai/resources/decisions.rb +9 -15
  155. data/lib/openai/resources/files.rb +0 -39
  156. data/lib/openai/resources/live/forks.rb +19 -0
  157. data/lib/openai/resources/live/sideband.rb +19 -0
  158. data/lib/openai/resources/live.rb +19 -0
  159. data/lib/openai/resources/realtime/translations.rb +19 -0
  160. data/lib/openai/resources/realtime.rb +19 -0
  161. data/lib/openai/resources/responses.rb +44 -95
  162. data/lib/openai/resources/vector_stores/file_batches.rb +0 -178
  163. data/lib/openai/resources/vector_stores/files.rb +0 -188
  164. data/lib/openai/resources/webhooks.rb +13 -29
  165. data/lib/openai/version.rb +1 -1
  166. data/lib/openai.rb +35 -0
  167. data/rbi/openai/client.rbi +0 -103
  168. data/rbi/openai/helpers/admin/organization/projects/api_keys.rbi +25 -0
  169. data/rbi/openai/helpers/beta/agents/artifacts.rbi +25 -0
  170. data/rbi/openai/helpers/beta/agents/files.rbi +48 -0
  171. data/rbi/openai/helpers/client_runtime.rbi +108 -0
  172. data/rbi/openai/helpers/files.rbi +25 -0
  173. data/rbi/openai/helpers/models/chat/parsed.rbi +21 -0
  174. data/rbi/openai/helpers/models/responses/parsed.rbi +19 -0
  175. data/rbi/openai/helpers/models/responses/response.rbi +15 -0
  176. data/rbi/openai/helpers/streaming/response_stream.rbi +301 -0
  177. data/rbi/openai/helpers/vector_stores/file_batches.rbi +102 -0
  178. data/rbi/openai/helpers/vector_stores/files.rbi +122 -0
  179. data/rbi/openai/helpers/websocket.rbi +82 -0
  180. data/rbi/openai/models/admin/organization/audit_log_list_response.rbi +6 -3
  181. data/rbi/openai/models/admin/organization/external_storage_configuration.rbi +4 -2
  182. data/rbi/openai/models/admin/organization/external_storage_create_params.rbi +63 -4
  183. data/rbi/openai/models/admin/organization/oci_external_storage_provider.rbi +71 -0
  184. data/rbi/openai/models/admin/organization/project_residency.rbi +12 -0
  185. data/rbi/openai/models/admin/organization/projects/api_key_update_params.rbi +110 -0
  186. data/rbi/openai/models/admin/organization/projects/api_key_update_scopes_params.rbi +72 -0
  187. data/rbi/openai/models/admin/organization/usage_decisions_params.rbi +229 -0
  188. data/rbi/openai/models/admin/organization/usage_decisions_response.rbi +479 -0
  189. data/rbi/openai/models/audio/speech_create_params.rbi +6 -3
  190. data/rbi/openai/models/audio/voice.rbi +21 -2
  191. data/rbi/openai/models/audio/voice_create_params.rbi +149 -4
  192. data/rbi/openai/models/beta/agent_create_params.rbi +4 -2
  193. data/rbi/openai/models/beta/agent_list_params.rbi +8 -5
  194. data/rbi/openai/models/beta/agent_session.rbi +64 -1
  195. data/rbi/openai/models/beta/agent_session_environment_expired_event.rbi +95 -0
  196. data/rbi/openai/models/beta/agent_session_environment_state.rbi +6 -0
  197. data/rbi/openai/models/beta/agent_session_environment_suspended_event.rbi +95 -0
  198. data/rbi/openai/models/beta/agent_session_event.rbi +2 -0
  199. data/rbi/openai/models/beta/agent_update_params.rbi +4 -2
  200. data/rbi/openai/models/beta/agents/environment_info.rbi +3 -0
  201. data/rbi/openai/models/beta/agents/environment_list_params.rbi +7 -7
  202. data/rbi/openai/models/beta/agents/session_create_params.rbi +62 -2
  203. data/rbi/openai/models/beta/agents/session_list_params.rbi +11 -11
  204. data/rbi/openai/models/beta/agents/session_update_params.rbi +56 -0
  205. data/rbi/openai/models/beta/agents/sessions/artifact_list_params.rbi +19 -13
  206. data/rbi/openai/models/beta/agents/vault_list_params.rbi +30 -13
  207. data/rbi/openai/models/beta/agents/vault_status_filter.rbi +1 -3
  208. data/rbi/openai/models/beta/agents/vault_update_params.rbi +87 -0
  209. data/rbi/openai/models/beta/agents/vaults/credential_list_params.rbi +30 -13
  210. data/rbi/openai/models/beta/beta_response.rbi +2 -2
  211. data/rbi/openai/models/beta/beta_response_error.rbi +24 -3
  212. data/rbi/openai/models/beta/beta_response_input_item.rbi +191 -0
  213. data/rbi/openai/models/beta/beta_response_item.rbi +189 -0
  214. data/rbi/openai/models/beta/beta_response_output_item.rbi +191 -0
  215. data/rbi/openai/models/beta/beta_responses_client_event.rbi +2 -2
  216. data/rbi/openai/models/beta/response_create_params.rbi +2 -2
  217. data/rbi/openai/models/beta/session_turn_error.rbi +3 -0
  218. data/rbi/openai/models/chat/chat_completion_audio_param.rbi +3 -3
  219. data/rbi/openai/models/chat/chat_completion_message.rbi +0 -4
  220. data/rbi/openai/models/chat/chat_completion_message_function_tool_call.rbi +0 -4
  221. data/rbi/openai/models/chat/completion_create_params.rbi +63 -78
  222. data/rbi/openai/models/conversations/conversation_item.rbi +191 -0
  223. data/rbi/openai/models/decision.rbi +14 -1
  224. data/rbi/openai/models/decision_create_params.rbi +23 -12
  225. data/rbi/openai/models/decision_input_image.rbi +4 -3
  226. data/rbi/openai/models/decision_input_message.rbi +4 -4
  227. data/rbi/openai/models/decision_input_part.rbi +2 -1
  228. data/rbi/openai/models/image_edit_completed_event.rbi +1 -0
  229. data/rbi/openai/models/image_edit_partial_image_event.rbi +1 -0
  230. data/rbi/openai/models/image_gen_completed_event.rbi +1 -0
  231. data/rbi/openai/models/image_gen_partial_image_event.rbi +1 -0
  232. data/rbi/openai/models/images_response.rbi +1 -0
  233. data/rbi/openai/models/live/built_in_voice.rbi +1 -0
  234. data/rbi/openai/models/live/client_event.rbi +4 -0
  235. data/rbi/openai/models/live/decision_create_event.rbi +55 -0
  236. data/rbi/openai/models/live/decision_event.rbi +185 -0
  237. data/rbi/openai/models/live/decision_item_create_event.rbi +338 -0
  238. data/rbi/openai/models/live/decision_item_created_event.rbi +354 -0
  239. data/rbi/openai/models/live/decision_item_delete_event.rbi +66 -0
  240. data/rbi/openai/models/live/decision_item_deleted_event.rbi +77 -0
  241. data/rbi/openai/models/live/decision_trigger.rbi +465 -0
  242. data/rbi/openai/models/live/decisions_delegation_config.rbi +393 -0
  243. data/rbi/openai/models/live/decisions_delegation_update_config.rbi +412 -0
  244. data/rbi/openai/models/live/delegation_created_event.rbi +8 -10
  245. data/rbi/openai/models/live/fork_client_event.rbi +4 -0
  246. data/rbi/openai/models/live/fork_server_event.rbi +5 -0
  247. data/rbi/openai/models/live/media_session_config.rbi +95 -14
  248. data/rbi/openai/models/live/output_audio_fixture_play_event.rbi +76 -0
  249. data/rbi/openai/models/live/output_audio_fixture_played_event.rbi +73 -0
  250. data/rbi/openai/models/live/output_audio_fixture_playing_event.rbi +72 -0
  251. data/rbi/openai/models/live/server_event.rbi +5 -0
  252. data/rbi/openai/models/live/session_accept_params.rbi +88 -12
  253. data/rbi/openai/models/live/session_config.rbi +100 -14
  254. data/rbi/openai/models/live/session_resource.rbi +81 -10
  255. data/rbi/openai/models/live/session_update_config.rbi +86 -9
  256. data/rbi/openai/models/live/session_update_event.rbi +8 -8
  257. data/rbi/openai/models/live/sideband_client_event.rbi +40 -0
  258. data/rbi/openai/models/live/sideband_server_event.rbi +47 -0
  259. data/rbi/openai/models/realtime/realtime_audio_config_output.rbi +6 -3
  260. data/rbi/openai/models/realtime/realtime_response_create_audio_output.rbi +6 -3
  261. data/rbi/openai/models/realtime/realtime_response_status.rbi +13 -1
  262. data/rbi/openai/models/realtime/realtime_translation_input_audio_buffer_append_event.rbi +1 -1
  263. data/rbi/openai/models/realtime/realtime_translation_output_audio_delta_event.rbi +3 -3
  264. data/rbi/openai/models/realtime/realtime_translation_session_close_event.rbi +1 -1
  265. data/rbi/openai/models/realtime/realtime_translation_session_update_event.rbi +5 -1
  266. data/rbi/openai/models/responses/response.rbi +2 -7
  267. data/rbi/openai/models/responses/response_create_params.rbi +5 -9
  268. data/rbi/openai/models/responses/response_error.rbi +24 -3
  269. data/rbi/openai/models/responses/response_function_tool_call.rbi +0 -4
  270. data/rbi/openai/models/responses/response_function_web_search.rbi +21 -17
  271. data/rbi/openai/models/responses/response_input_item.rbi +191 -0
  272. data/rbi/openai/models/responses/response_item.rbi +189 -0
  273. data/rbi/openai/models/responses/response_output_item.rbi +191 -0
  274. data/rbi/openai/models/responses/response_output_text.rbi +0 -4
  275. data/rbi/openai/models/responses/responses_client_event.rbi +2 -2
  276. data/rbi/openai/models/safety/safety_alert.rbi +13 -1
  277. data/rbi/openai/models/video_create_error.rbi +24 -3
  278. data/rbi/openai/models/webhooks/agent_environment_expired_webhook_event.rbi +133 -0
  279. data/rbi/openai/models/webhooks/agent_environment_suspended_webhook_event.rbi +133 -0
  280. data/rbi/openai/models/webhooks/unwrap_webhook_event.rbi +3 -2
  281. data/rbi/openai/models/webhooks/webhook_create_params.rbi +8 -0
  282. data/rbi/openai/models/webhooks/webhook_test_params.rbi +8 -0
  283. data/rbi/openai/models/webhooks/webhook_update_params.rbi +8 -0
  284. data/rbi/openai/resources/admin/organization/external_storage.rbi +2 -1
  285. data/rbi/openai/resources/admin/organization/projects/api_keys.rbi +48 -0
  286. data/rbi/openai/resources/admin/organization/usage.rbi +56 -0
  287. data/rbi/openai/resources/audio/speech.rbi +2 -1
  288. data/rbi/openai/resources/audio/voices.rbi +13 -10
  289. data/rbi/openai/resources/beta/agents/environments/files.rbi +3 -33
  290. data/rbi/openai/resources/beta/agents/environments.rbi +3 -3
  291. data/rbi/openai/resources/beta/agents/sessions/artifacts.rbi +5 -13
  292. data/rbi/openai/resources/beta/agents/sessions.rbi +15 -4
  293. data/rbi/openai/resources/beta/agents/vaults/credentials.rbi +9 -5
  294. data/rbi/openai/resources/beta/agents/vaults.rbi +34 -5
  295. data/rbi/openai/resources/beta/agents.rbi +6 -4
  296. data/rbi/openai/resources/beta/responses.rbi +2 -2
  297. data/rbi/openai/resources/chat/completions.rbi +26 -29
  298. data/rbi/openai/resources/decisions.rbi +9 -15
  299. data/rbi/openai/resources/files.rbi +0 -18
  300. data/rbi/openai/resources/live/forks.rbi +17 -0
  301. data/rbi/openai/resources/live/sideband.rbi +17 -0
  302. data/rbi/openai/resources/live.rbi +17 -0
  303. data/rbi/openai/resources/realtime/translations.rbi +17 -0
  304. data/rbi/openai/resources/realtime.rbi +17 -0
  305. data/rbi/openai/resources/responses.rbi +41 -333
  306. data/rbi/openai/resources/vector_stores/file_batches.rbi +0 -93
  307. data/rbi/openai/resources/vector_stores/files.rbi +0 -113
  308. data/rbi/openai/resources/webhooks.rbi +2 -0
  309. data/sig/openai/client.rbs +0 -50
  310. data/sig/openai/helpers/admin/organization/projects/api_keys.rbs +18 -0
  311. data/sig/openai/helpers/beta/agents/artifacts.rbs +17 -0
  312. data/sig/openai/helpers/beta/agents/files.rbs +30 -0
  313. data/sig/openai/helpers/client_runtime.rbs +53 -0
  314. data/sig/openai/helpers/files.rbs +12 -0
  315. data/sig/openai/helpers/models/responses/response.rbs +9 -0
  316. data/sig/openai/helpers/streaming/response_stream.rbs +37 -0
  317. data/sig/openai/helpers/vector_stores/file_batches.rbs +38 -0
  318. data/sig/openai/helpers/vector_stores/files.rbs +43 -0
  319. data/sig/openai/helpers/websocket.rbs +40 -0
  320. data/sig/openai/models/admin/organization/audit_log_list_response.rbs +1 -0
  321. data/sig/openai/models/admin/organization/external_storage_configuration.rbs +1 -0
  322. data/sig/openai/models/admin/organization/external_storage_create_params.rbs +33 -0
  323. data/sig/openai/models/admin/organization/oci_external_storage_provider.rbs +34 -0
  324. data/sig/openai/models/admin/organization/project_residency.rbs +6 -0
  325. data/sig/openai/models/admin/organization/projects/api_key_update_params.rbs +77 -0
  326. data/sig/openai/models/admin/organization/projects/api_key_update_scopes_params.rbs +38 -0
  327. data/sig/openai/models/admin/organization/usage_decisions_params.rbs +170 -0
  328. data/sig/openai/models/admin/organization/usage_decisions_response.rbs +319 -0
  329. data/sig/openai/models/audio/speech_create_params.rbs +4 -2
  330. data/sig/openai/models/audio/voice.rbs +21 -3
  331. data/sig/openai/models/audio/voice_create_params.rbs +90 -1
  332. data/sig/openai/models/beta/agent_create_params.rbs +4 -2
  333. data/sig/openai/models/beta/agent_list_params.rbs +9 -6
  334. data/sig/openai/models/beta/agent_session.rbs +36 -2
  335. data/sig/openai/models/beta/agent_session_environment_expired_event.rbs +57 -0
  336. data/sig/openai/models/beta/agent_session_environment_state.rbs +14 -1
  337. data/sig/openai/models/beta/agent_session_environment_suspended_event.rbs +57 -0
  338. data/sig/openai/models/beta/agent_session_event.rbs +2 -0
  339. data/sig/openai/models/beta/agent_update_params.rbs +4 -2
  340. data/sig/openai/models/beta/agents/environment_info.rbs +11 -1
  341. data/sig/openai/models/beta/agents/environment_list_params.rbs +9 -9
  342. data/sig/openai/models/beta/agents/session_create_params.rbs +29 -2
  343. data/sig/openai/models/beta/agents/session_list_params.rbs +12 -12
  344. data/sig/openai/models/beta/agents/session_update_params.rbs +23 -0
  345. data/sig/openai/models/beta/agents/sessions/artifact_list_params.rbs +21 -15
  346. data/sig/openai/models/beta/agents/vault_list_params.rbs +32 -14
  347. data/sig/openai/models/beta/agents/vault_update_params.rbs +54 -0
  348. data/sig/openai/models/beta/agents/vaults/credential_list_params.rbs +32 -14
  349. data/sig/openai/models/beta/beta_response.rbs +2 -2
  350. data/sig/openai/models/beta/beta_response_error.rbs +19 -3
  351. data/sig/openai/models/beta/beta_response_input_item.rbs +110 -0
  352. data/sig/openai/models/beta/beta_response_item.rbs +110 -0
  353. data/sig/openai/models/beta/beta_response_output_item.rbs +110 -0
  354. data/sig/openai/models/beta/beta_responses_client_event.rbs +2 -2
  355. data/sig/openai/models/beta/response_create_params.rbs +2 -2
  356. data/sig/openai/models/beta/session_turn_error.rbs +4 -0
  357. data/sig/openai/models/chat/chat_completion_audio_param.rbs +2 -2
  358. data/sig/openai/models/chat/completion_create_params.rbs +2 -2
  359. data/sig/openai/models/conversations/conversation_item.rbs +110 -0
  360. data/sig/openai/models/decision.rbs +13 -0
  361. data/sig/openai/models/decision_create_params.rbs +19 -8
  362. data/sig/openai/models/decision_input_image.rbs +2 -2
  363. data/sig/openai/models/decision_input_message.rbs +2 -2
  364. data/sig/openai/models/live/built_in_voice.rbs +2 -0
  365. data/sig/openai/models/live/client_event.rbs +4 -0
  366. data/sig/openai/models/live/decision_create_event.rbs +18 -0
  367. data/sig/openai/models/live/decision_event.rbs +102 -0
  368. data/sig/openai/models/live/decision_item_create_event.rbs +183 -0
  369. data/sig/openai/models/live/decision_item_created_event.rbs +195 -0
  370. data/sig/openai/models/live/decision_item_delete_event.rbs +33 -0
  371. data/sig/openai/models/live/decision_item_deleted_event.rbs +49 -0
  372. data/sig/openai/models/live/decision_trigger.rbs +234 -0
  373. data/sig/openai/models/live/decisions_delegation_config.rbs +195 -0
  374. data/sig/openai/models/live/decisions_delegation_update_config.rbs +202 -0
  375. data/sig/openai/models/live/delegation_created_event.rbs +6 -7
  376. data/sig/openai/models/live/fork_client_event.rbs +4 -0
  377. data/sig/openai/models/live/fork_server_event.rbs +5 -0
  378. data/sig/openai/models/live/media_session_config.rbs +58 -11
  379. data/sig/openai/models/live/output_audio_fixture_play_event.rbs +42 -0
  380. data/sig/openai/models/live/output_audio_fixture_played_event.rbs +44 -0
  381. data/sig/openai/models/live/output_audio_fixture_playing_event.rbs +44 -0
  382. data/sig/openai/models/live/server_event.rbs +5 -0
  383. data/sig/openai/models/live/session_accept_params.rbs +57 -10
  384. data/sig/openai/models/live/session_config.rbs +58 -11
  385. data/sig/openai/models/live/session_resource.rbs +57 -10
  386. data/sig/openai/models/live/session_update_config.rbs +54 -3
  387. data/sig/openai/models/live/session_update_event.rbs +6 -6
  388. data/sig/openai/models/live/sideband_client_event.rbs +26 -0
  389. data/sig/openai/models/live/sideband_server_event.rbs +33 -0
  390. data/sig/openai/models/realtime/realtime_audio_config_output.rbs +6 -3
  391. data/sig/openai/models/realtime/realtime_response_create_audio_output.rbs +6 -3
  392. data/sig/openai/models/realtime/realtime_response_status.rbs +15 -3
  393. data/sig/openai/models/responses/response.rbs +2 -4
  394. data/sig/openai/models/responses/response_create_params.rbs +2 -2
  395. data/sig/openai/models/responses/response_error.rbs +19 -3
  396. data/sig/openai/models/responses/response_input_item.rbs +110 -0
  397. data/sig/openai/models/responses/response_item.rbs +110 -0
  398. data/sig/openai/models/responses/response_output_item.rbs +110 -0
  399. data/sig/openai/models/responses/responses_client_event.rbs +2 -2
  400. data/sig/openai/models/safety/safety_alert.rbs +12 -2
  401. data/sig/openai/models/video_create_error.rbs +19 -3
  402. data/sig/openai/models/webhooks/agent_environment_expired_webhook_event.rbs +70 -0
  403. data/sig/openai/models/webhooks/agent_environment_suspended_webhook_event.rbs +70 -0
  404. data/sig/openai/models/webhooks/unwrap_webhook_event.rbs +3 -1
  405. data/sig/openai/models/webhooks/webhook_create_params.rbs +4 -0
  406. data/sig/openai/models/webhooks/webhook_test_params.rbs +4 -0
  407. data/sig/openai/models/webhooks/webhook_update_params.rbs +4 -0
  408. data/sig/openai/resources/admin/organization/projects/api_keys.rbs +8 -0
  409. data/sig/openai/resources/admin/organization/usage.rbs +15 -0
  410. data/sig/openai/resources/beta/agents/environments/files.rbs +0 -17
  411. data/sig/openai/resources/beta/agents/sessions/artifacts.rbs +2 -6
  412. data/sig/openai/resources/beta/agents/sessions.rbs +4 -1
  413. data/sig/openai/resources/beta/agents/vaults/credentials.rbs +2 -1
  414. data/sig/openai/resources/beta/agents/vaults.rbs +9 -1
  415. data/sig/openai/resources/beta/agents.rbs +1 -1
  416. data/sig/openai/resources/files.rbs +0 -7
  417. data/sig/openai/resources/live/forks.rbs +8 -0
  418. data/sig/openai/resources/live/sideband.rbs +8 -0
  419. data/sig/openai/resources/live.rbs +7 -0
  420. data/sig/openai/resources/realtime/translations.rbs +7 -0
  421. data/sig/openai/resources/realtime.rbs +7 -0
  422. data/sig/openai/resources/responses.rbs +7 -31
  423. data/sig/openai/resources/vector_stores/file_batches.rbs +0 -31
  424. data/sig/openai/resources/vector_stores/files.rbs +0 -36
  425. data/sig/openai/resources/webhooks.rbs +3 -1
  426. metadata +101 -1
@@ -52,13 +52,14 @@ module OpenAI
52
52
  attr_writer :client
53
53
 
54
54
  # Who handles tasks delegated by the Live model. Omitted or null selects your
55
- # application; use `responses` to let the API manage a Responses backend.
55
+ # application; use `responses` or `decisions` to delegate to the corresponding
56
+ # API.
56
57
  sig { returns(T.nilable(OpenAI::Live::SessionResource::Delegation::Variants)) }
57
58
  attr_accessor :delegation
58
59
 
59
60
  # Ordered text-only history supplied before startup. Supports developer, user, and
60
- # assistant messages with one text part each; at most 128 messages and 8,192
61
- # rendered tokens in total.
61
+ # assistant messages with one text part each; at most 128 messages and a
62
+ # configured rendered-token limit (8,192 by default).
62
63
  sig {
63
64
  returns(
64
65
  T.nilable(
@@ -106,6 +107,16 @@ module OpenAI
106
107
  sig { params(store: T::Boolean).void }
107
108
  attr_writer :store
108
109
 
110
+ # At most one Decisions trigger per transcript event type. Triggers run
111
+ # independently of delegation. On update, omit triggers to keep the current
112
+ # configuration, send a list to replace it, or send an empty list to disable
113
+ # triggers.
114
+ sig { returns(T.nilable(T::Array[OpenAI::Live::DecisionTrigger])) }
115
+ attr_reader :triggers
116
+
117
+ sig { params(triggers: T::Array[OpenAI::Live::DecisionTrigger::OrHash]).void }
118
+ attr_writer :triggers
119
+
109
120
  # The resolved Live session configuration and server-assigned session metadata.
110
121
  sig do
111
122
  params(
@@ -123,7 +134,8 @@ module OpenAI
123
134
  delegation: T.nilable(
124
135
  T.any(
125
136
  OpenAI::Live::ClientDelegation::OrHash,
126
- OpenAI::Live::SessionResource::Delegation::Responses::OrHash
137
+ OpenAI::Live::SessionResource::Delegation::Responses::OrHash,
138
+ OpenAI::Live::SessionResource::Delegation::Decisions::OrHash
127
139
  )
128
140
  ),
129
141
 
@@ -139,6 +151,8 @@ module OpenAI
139
151
 
140
152
  store: T::Boolean,
141
153
 
154
+ triggers: T::Array[OpenAI::Live::DecisionTrigger::OrHash],
155
+
142
156
  status: Symbol
143
157
  )
144
158
  .returns(T.attached_class)
@@ -166,12 +180,13 @@ module OpenAI
166
180
  client: nil,
167
181
 
168
182
  # Who handles tasks delegated by the Live model. Omitted or null selects your
169
- # application; use `responses` to let the API manage a Responses backend.
183
+ # application; use `responses` or `decisions` to delegate to the corresponding
184
+ # API.
170
185
  delegation: nil,
171
186
 
172
187
  # Ordered text-only history supplied before startup. Supports developer, user, and
173
- # assistant messages with one text part each; at most 128 messages and 8,192
174
- # rendered tokens in total.
188
+ # assistant messages with one text part each; at most 128 messages and a
189
+ # configured rendered-token limit (8,192 by default).
175
190
  input: nil,
176
191
 
177
192
  # Frontend instructions for voice, conversation, interruptions, and when to
@@ -187,6 +202,12 @@ module OpenAI
187
202
  # to false for new sessions.
188
203
  store: nil,
189
204
 
205
+ # At most one Decisions trigger per transcript event type. Triggers run
206
+ # independently of delegation. On update, omit triggers to keep the current
207
+ # configuration, send a list to replace it, or send an empty list to disable
208
+ # triggers.
209
+ triggers: nil,
210
+
190
211
  # The status of the session snapshot. Always `active`, including the final
191
212
  # snapshot in session.closed; use the event type to determine that the session has
192
213
  # closed.
@@ -213,7 +234,8 @@ module OpenAI
213
234
  )
214
235
  ],
215
236
  instructions: T.nilable(String),
216
- store: T::Boolean
237
+ store: T::Boolean,
238
+ triggers: T::Array[OpenAI::Live::DecisionTrigger]
217
239
  }
218
240
  )
219
241
  end
@@ -387,12 +409,17 @@ module OpenAI
387
409
  end
388
410
 
389
411
  # Who handles tasks delegated by the Live model. Omitted or null selects your
390
- # application; use `responses` to let the API manage a Responses backend.
412
+ # application; use `responses` or `decisions` to delegate to the corresponding
413
+ # API.
391
414
  module Delegation
392
415
  extend OpenAI::Internal::Type::Union
393
416
 
394
417
  Variants = T.type_alias {
395
- T.any(OpenAI::Live::ClientDelegation, OpenAI::Live::SessionResource::Delegation::Responses)
418
+ T.any(
419
+ OpenAI::Live::ClientDelegation,
420
+ OpenAI::Live::SessionResource::Delegation::Responses,
421
+ OpenAI::Live::SessionResource::Delegation::Decisions
422
+ )
396
423
  }
397
424
 
398
425
  class Responses < OpenAI::Internal::Type::BaseModel
@@ -447,6 +474,50 @@ module OpenAI
447
474
 
448
475
  end
449
476
 
477
+ class Decisions < OpenAI::Internal::Type::BaseModel
478
+ OrHash = T.type_alias do
479
+ T.any(
480
+ OpenAI::Live::SessionResource::Delegation::Decisions,
481
+ OpenAI::Internal::AnyHash
482
+ )
483
+ end
484
+
485
+ sig { returns(OpenAI::Live::DecisionsDelegationConfig) }
486
+ attr_reader :decisions
487
+
488
+ sig { params(decisions: OpenAI::Live::DecisionsDelegationConfig::OrHash).void }
489
+ attr_writer :decisions
490
+
491
+ sig { returns(Symbol) }
492
+ attr_accessor :type
493
+
494
+ sig do
495
+ params(
496
+
497
+ decisions: OpenAI::Live::DecisionsDelegationConfig::OrHash,
498
+
499
+ type: Symbol
500
+ )
501
+ .returns(T.attached_class)
502
+ end
503
+ def self.new(
504
+
505
+ decisions:,
506
+
507
+ type: :decisions
508
+ )
509
+ end
510
+
511
+ sig do
512
+ override.returns(
513
+ {decisions: OpenAI::Live::DecisionsDelegationConfig, type: Symbol}
514
+ )
515
+ end
516
+ def to_hash
517
+ end
518
+
519
+ end
520
+
450
521
  sig { override.returns(T::Array[OpenAI::Live::SessionResource::Delegation::Variants]) }
451
522
  def self.variants
452
523
  end
@@ -18,22 +18,40 @@ module OpenAI
18
18
  # session; omitted settings retain their values.
19
19
  sig {
20
20
  returns(
21
- T.nilable(T.any(OpenAI::Live::ClientDelegation, OpenAI::Live::SessionUpdateConfig::Delegation::Responses))
21
+ T.nilable(
22
+ T.any(
23
+ OpenAI::Live::ClientDelegation,
24
+ OpenAI::Live::SessionUpdateConfig::Delegation::Responses,
25
+ OpenAI::Live::SessionUpdateConfig::Delegation::Decisions
26
+ )
27
+ )
22
28
  )
23
29
  }
24
30
  attr_accessor :delegation
25
31
 
26
- # Changes to an active Live session. Only delegation backend settings can be
27
- # updated after startup.
32
+ # At most one Decisions trigger per transcript event type. Triggers run
33
+ # independently of delegation. On update, omit triggers to keep the current
34
+ # configuration, send a list to replace it, or send an empty list to disable
35
+ # triggers.
36
+ sig { returns(T.nilable(T::Array[OpenAI::Live::DecisionTrigger])) }
37
+ attr_reader :triggers
38
+
39
+ sig { params(triggers: T::Array[OpenAI::Live::DecisionTrigger::OrHash]).void }
40
+ attr_writer :triggers
41
+
42
+ # Changes to an active Live session's delegation settings and transcript triggers.
28
43
  sig do
29
44
  params(
30
45
 
31
46
  delegation: T.nilable(
32
47
  T.any(
33
48
  OpenAI::Live::ClientDelegation::OrHash,
34
- OpenAI::Live::SessionUpdateConfig::Delegation::Responses::OrHash
49
+ OpenAI::Live::SessionUpdateConfig::Delegation::Responses::OrHash,
50
+ OpenAI::Live::SessionUpdateConfig::Delegation::Decisions::OrHash
35
51
  )
36
- )
52
+ ),
53
+
54
+ triggers: T::Array[OpenAI::Live::DecisionTrigger::OrHash]
37
55
  )
38
56
  .returns(T.attached_class)
39
57
  end
@@ -41,8 +59,14 @@ module OpenAI
41
59
 
42
60
  # Delegation settings to update. The delegation type must match the current
43
61
  # session; omitted settings retain their values.
62
+ delegation: nil,
63
+
64
+ # At most one Decisions trigger per transcript event type. Triggers run
65
+ # independently of delegation. On update, omit triggers to keep the current
66
+ # configuration, send a list to replace it, or send an empty list to disable
67
+ # triggers.
44
68
 
45
- delegation: nil
69
+ triggers: nil
46
70
  )
47
71
  end
48
72
 
@@ -50,8 +74,13 @@ module OpenAI
50
74
  override.returns(
51
75
  {
52
76
  delegation: T.nilable(
53
- T.any(OpenAI::Live::ClientDelegation, OpenAI::Live::SessionUpdateConfig::Delegation::Responses)
54
- )
77
+ T.any(
78
+ OpenAI::Live::ClientDelegation,
79
+ OpenAI::Live::SessionUpdateConfig::Delegation::Responses,
80
+ OpenAI::Live::SessionUpdateConfig::Delegation::Decisions
81
+ )
82
+ ),
83
+ triggers: T::Array[OpenAI::Live::DecisionTrigger]
55
84
  }
56
85
  )
57
86
  end
@@ -64,7 +93,11 @@ module OpenAI
64
93
  extend OpenAI::Internal::Type::Union
65
94
 
66
95
  Variants = T.type_alias {
67
- T.any(OpenAI::Live::ClientDelegation, OpenAI::Live::SessionUpdateConfig::Delegation::Responses)
96
+ T.any(
97
+ OpenAI::Live::ClientDelegation,
98
+ OpenAI::Live::SessionUpdateConfig::Delegation::Responses,
99
+ OpenAI::Live::SessionUpdateConfig::Delegation::Decisions
100
+ )
68
101
  }
69
102
 
70
103
  class Responses < OpenAI::Internal::Type::BaseModel
@@ -120,6 +153,50 @@ module OpenAI
120
153
 
121
154
  end
122
155
 
156
+ class Decisions < OpenAI::Internal::Type::BaseModel
157
+ OrHash = T.type_alias do
158
+ T.any(
159
+ OpenAI::Live::SessionUpdateConfig::Delegation::Decisions,
160
+ OpenAI::Internal::AnyHash
161
+ )
162
+ end
163
+
164
+ sig { returns(Symbol) }
165
+ attr_accessor :type
166
+
167
+ sig { returns(T.nilable(OpenAI::Live::DecisionsDelegationUpdateConfig)) }
168
+ attr_reader :decisions
169
+
170
+ sig { params(decisions: OpenAI::Live::DecisionsDelegationUpdateConfig::OrHash).void }
171
+ attr_writer :decisions
172
+
173
+ sig do
174
+ params(
175
+
176
+ decisions: OpenAI::Live::DecisionsDelegationUpdateConfig::OrHash,
177
+
178
+ type: Symbol
179
+ )
180
+ .returns(T.attached_class)
181
+ end
182
+ def self.new(
183
+
184
+ decisions: nil,
185
+
186
+ type: :decisions
187
+ )
188
+ end
189
+
190
+ sig do
191
+ override.returns(
192
+ {type: Symbol, decisions: OpenAI::Live::DecisionsDelegationUpdateConfig}
193
+ )
194
+ end
195
+ def to_hash
196
+ end
197
+
198
+ end
199
+
123
200
  sig { override.returns(T::Array[OpenAI::Live::SessionUpdateConfig::Delegation::Variants]) }
124
201
  def self.variants
125
202
  end
@@ -14,9 +14,9 @@ module OpenAI
14
14
  )
15
15
  end
16
16
 
17
- # Sparse delegation updates. Omitted settings retain their values. The delegation
18
- # type cannot change, including resetting Responses delegation to null or client.
19
- # Model, frontend instructions, audio, and startup input are immutable.
17
+ # Sparse delegation and trigger updates. Omitted settings retain their values. The
18
+ # delegation type cannot change. Model, frontend instructions, audio, and startup
19
+ # input are immutable.
20
20
  sig { returns(OpenAI::Live::SessionUpdateConfig) }
21
21
  attr_reader :session
22
22
 
@@ -32,8 +32,8 @@ module OpenAI
32
32
  sig { returns(T.nilable(String)) }
33
33
  attr_accessor :event_id
34
34
 
35
- # Update the delegation settings of an active Live session. The server
36
- # acknowledges accepted changes with `session.updated`.
35
+ # Update the delegation settings or transcript triggers of an active Live session.
36
+ # The server acknowledges accepted changes with `session.updated`.
37
37
  sig do
38
38
  params(
39
39
 
@@ -47,9 +47,9 @@ module OpenAI
47
47
  end
48
48
  def self.new(
49
49
 
50
- # Sparse delegation updates. Omitted settings retain their values. The delegation
51
- # type cannot change, including resetting Responses delegation to null or client.
52
- # Model, frontend instructions, audio, and startup input are immutable.
50
+ # Sparse delegation and trigger updates. Omitted settings retain their values. The
51
+ # delegation type cannot change. Model, frontend instructions, audio, and startup
52
+ # input are immutable.
53
53
  session:,
54
54
 
55
55
  # Optional client identifier for correlating this command with a server event's
@@ -0,0 +1,40 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+
6
+ module Live
7
+
8
+ # Client events accepted by an attached Live sideband WebSocket. The session has
9
+ # already started. Send input audio over the primary connection.
10
+ module SidebandClientEvent
11
+ extend OpenAI::Internal::Type::Union
12
+
13
+ Variants = T.type_alias do
14
+ T.any(
15
+ OpenAI::Live::SessionUpdateEvent,
16
+ OpenAI::Live::InputAudioMuteEvent,
17
+ OpenAI::Live::InputAudioUnmuteEvent,
18
+ OpenAI::Live::OutputAudioFixturePlayEvent,
19
+ OpenAI::Live::InstructionsAppendEvent,
20
+ OpenAI::Live::ThinkingAppendEvent,
21
+ OpenAI::Live::CommentaryAppendEvent,
22
+ OpenAI::Live::DecisionCreateEvent,
23
+ OpenAI::Live::DecisionItemCreateEvent,
24
+ OpenAI::Live::DecisionItemDeleteEvent,
25
+ OpenAI::Live::ResponseItemCreateEvent,
26
+ OpenAI::Live::ResponseCreateEvent,
27
+ OpenAI::Live::SessionCloseEvent
28
+ )
29
+ end
30
+
31
+ sig { override.returns(T::Array[OpenAI::Live::SidebandClientEvent::Variants]) }
32
+ def self.variants
33
+ end
34
+
35
+ end
36
+
37
+ end
38
+
39
+ end
40
+ end
@@ -0,0 +1,47 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+
6
+ module Live
7
+
8
+ # Server events received by an attached Live sideband WebSocket. Audio deltas are
9
+ # delivered over the primary connection.
10
+ module SidebandServerEvent
11
+ extend OpenAI::Internal::Type::Union
12
+
13
+ Variants = T.type_alias do
14
+ T.any(
15
+ OpenAI::Live::SessionStartedEvent,
16
+ OpenAI::Live::SessionUpdatedEvent,
17
+ OpenAI::Live::InputAudioMutedEvent,
18
+ OpenAI::Live::InputAudioUnmutedEvent,
19
+ OpenAI::Live::OutputAudioFixturePlayingEvent,
20
+ OpenAI::Live::OutputAudioFixturePlayedEvent,
21
+ OpenAI::Live::InstructionsAppendedEvent,
22
+ OpenAI::Live::ThinkingAppendedEvent,
23
+ OpenAI::Live::CommentaryAppendedEvent,
24
+ OpenAI::Live::InputTranscriptDeltaEvent,
25
+ OpenAI::Live::OutputTranscriptDeltaEvent,
26
+ OpenAI::Live::DelegationCreatedEvent,
27
+ OpenAI::Live::DecisionEvent,
28
+ OpenAI::Live::DecisionItemCreatedEvent,
29
+ OpenAI::Live::DecisionItemDeletedEvent,
30
+ OpenAI::Live::ResponseEvent,
31
+ OpenAI::Live::SessionUsageUpdatedEvent,
32
+ OpenAI::Live::SessionClosedEvent,
33
+ OpenAI::Live::ErrorEvent,
34
+ OpenAI::Live::InfoEvent
35
+ )
36
+ end
37
+
38
+ sig { override.returns(T::Array[OpenAI::Live::SidebandServerEvent::Variants]) }
39
+ def self.variants
40
+ end
41
+
42
+ end
43
+
44
+ end
45
+
46
+ end
47
+ end
@@ -58,7 +58,8 @@ module OpenAI
58
58
  # `cedar`. You may also provide a custom voice object with an `id`, for example
59
59
  # `{ "id": "voice_1234" }`. Voice cannot be changed during the session once the
60
60
  # model has responded with audio at least once. Custom voices must be created from
61
- # audio samples. We recommend `marin` and `cedar` for best quality.
61
+ # audio samples. Voices created from text prompts are supported only in Live. We
62
+ # recommend `marin` and `cedar` for best quality.
62
63
  sig {
63
64
  returns(
64
65
  T.nilable(
@@ -122,7 +123,8 @@ module OpenAI
122
123
  # `cedar`. You may also provide a custom voice object with an `id`, for example
123
124
  # `{ "id": "voice_1234" }`. Voice cannot be changed during the session once the
124
125
  # model has responded with audio at least once. Custom voices must be created from
125
- # audio samples. We recommend `marin` and `cedar` for best quality.
126
+ # audio samples. Voices created from text prompts are supported only in Live. We
127
+ # recommend `marin` and `cedar` for best quality.
126
128
 
127
129
  voice: nil
128
130
  )
@@ -153,7 +155,8 @@ module OpenAI
153
155
  # `cedar`. You may also provide a custom voice object with an `id`, for example
154
156
  # `{ "id": "voice_1234" }`. Voice cannot be changed during the session once the
155
157
  # model has responded with audio at least once. Custom voices must be created from
156
- # audio samples. We recommend `marin` and `cedar` for best quality.
158
+ # audio samples. Voices created from text prompts are supported only in Live. We
159
+ # recommend `marin` and `cedar` for best quality.
157
160
  module Voice
158
161
  extend OpenAI::Internal::Type::Union
159
162
 
@@ -81,7 +81,8 @@ module OpenAI
81
81
  # `cedar`. You may also provide a custom voice object with an `id`, for example
82
82
  # `{ "id": "voice_1234" }`. Voice cannot be changed during the session once the
83
83
  # model has responded with audio at least once. Custom voices must be created from
84
- # audio samples. We recommend `marin` and `cedar` for best quality.
84
+ # audio samples. Voices created from text prompts are supported only in Live. We
85
+ # recommend `marin` and `cedar` for best quality.
85
86
  sig {
86
87
  returns(
87
88
  T.nilable(
@@ -134,7 +135,8 @@ module OpenAI
134
135
  # `cedar`. You may also provide a custom voice object with an `id`, for example
135
136
  # `{ "id": "voice_1234" }`. Voice cannot be changed during the session once the
136
137
  # model has responded with audio at least once. Custom voices must be created from
137
- # audio samples. We recommend `marin` and `cedar` for best quality.
138
+ # audio samples. Voices created from text prompts are supported only in Live. We
139
+ # recommend `marin` and `cedar` for best quality.
138
140
 
139
141
  voice: nil
140
142
  )
@@ -164,7 +166,8 @@ module OpenAI
164
166
  # `cedar`. You may also provide a custom voice object with an `id`, for example
165
167
  # `{ "id": "voice_1234" }`. Voice cannot be changed during the session once the
166
168
  # model has responded with audio at least once. Custom voices must be created from
167
- # audio samples. We recommend `marin` and `cedar` for best quality.
169
+ # audio samples. Voices created from text prompts are supported only in Live. We
170
+ # recommend `marin` and `cedar` for best quality.
168
171
  module Voice
169
172
  extend OpenAI::Internal::Type::Union
170
173
 
@@ -100,6 +100,13 @@ module OpenAI
100
100
  sig { params(code: String).void }
101
101
  attr_writer :code
102
102
 
103
+ # A human-readable error message.
104
+ sig { returns(T.nilable(String)) }
105
+ attr_reader :message
106
+
107
+ sig { params(message: String).void }
108
+ attr_writer :message
109
+
103
110
  # The type of error.
104
111
  sig { returns(T.nilable(String)) }
105
112
  attr_reader :type
@@ -114,6 +121,8 @@ module OpenAI
114
121
 
115
122
  code: String,
116
123
 
124
+ message: String,
125
+
117
126
  type: String
118
127
  )
119
128
  .returns(T.attached_class)
@@ -123,6 +132,9 @@ module OpenAI
123
132
  # Error code, if any.
124
133
  code: nil,
125
134
 
135
+ # A human-readable error message.
136
+ message: nil,
137
+
126
138
  # The type of error.
127
139
 
128
140
  type: nil
@@ -131,7 +143,7 @@ module OpenAI
131
143
 
132
144
  sig do
133
145
  override.returns(
134
- {code: String, type: String}
146
+ {code: String, message: String, type: String}
135
147
  )
136
148
  end
137
149
  def to_hash
@@ -72,7 +72,7 @@ module OpenAI
72
72
 
73
73
  sig do
74
74
  override.returns(
75
- {audio: String, type: Symbol, event_id: String}
75
+ {audio: String, type: Symbol, event_id: T.nilable(String)}
76
76
  )
77
77
  end
78
78
  def to_hash
@@ -109,10 +109,10 @@ module OpenAI
109
109
  delta: String,
110
110
  event_id: String,
111
111
  type: Symbol,
112
- channels: Integer,
112
+ channels: T.nilable(Integer),
113
113
  elapsed_ms: T.nilable(Integer),
114
- format_: OpenAI::Realtime::RealtimeTranslationOutputAudioDeltaEvent::Format::OrSymbol,
115
- sample_rate: Integer
114
+ format_: T.nilable(OpenAI::Realtime::RealtimeTranslationOutputAudioDeltaEvent::Format::OrSymbol),
115
+ sample_rate: T.nilable(Integer)
116
116
  }
117
117
  )
118
118
  end
@@ -50,7 +50,7 @@ module OpenAI
50
50
 
51
51
  sig do
52
52
  override.returns(
53
- {type: Symbol, event_id: String}
53
+ {type: Symbol, event_id: T.nilable(String)}
54
54
  )
55
55
  end
56
56
  def to_hash
@@ -64,7 +64,11 @@ module OpenAI
64
64
 
65
65
  sig do
66
66
  override.returns(
67
- {session: OpenAI::Realtime::RealtimeTranslationSessionUpdateRequest, type: Symbol, event_id: String}
67
+ {
68
+ session: OpenAI::Realtime::RealtimeTranslationSessionUpdateRequest,
69
+ type: Symbol,
70
+ event_id: T.nilable(String)
71
+ }
68
72
  )
69
73
  end
70
74
  def to_hash
@@ -81,11 +81,6 @@ module OpenAI
81
81
  sig { returns(T::Array[OpenAI::Responses::ResponseOutputItem::Variants]) }
82
82
  attr_accessor :output
83
83
 
84
- # Concatenates text from all output messages.
85
- sig { returns(String) }
86
- def output_text
87
- end
88
-
89
84
  # Whether to allow the model to run tool calls in parallel.
90
85
  sig { returns(T::Boolean) }
91
86
  attr_accessor :parallel_tool_calls
@@ -249,7 +244,7 @@ module OpenAI
249
244
 
250
245
  # A stable identifier used to help detect users of your application that may be
251
246
  # violating OpenAI's usage policies. The IDs should be a string that uniquely
252
- # identifies each user, with a maximum length of 64 characters. We recommend
247
+ # identifies each user, with a maximum length of 128 characters. We recommend
253
248
  # hashing their username or email address, in order to avoid sending us any
254
249
  # identifying information.
255
250
  # [Learn more](https://developers.openai.com/api/docs/guides/safety-best-practices#implement-safety-identifiers).
@@ -645,7 +640,7 @@ module OpenAI
645
640
 
646
641
  # A stable identifier used to help detect users of your application that may be
647
642
  # violating OpenAI's usage policies. The IDs should be a string that uniquely
648
- # identifies each user, with a maximum length of 64 characters. We recommend
643
+ # identifies each user, with a maximum length of 128 characters. We recommend
649
644
  # hashing their username or email address, in order to avoid sending us any
650
645
  # identifying information.
651
646
  # [Learn more](https://developers.openai.com/api/docs/guides/safety-best-practices#implement-safety-identifiers).
@@ -203,7 +203,7 @@ module OpenAI
203
203
 
204
204
  # A stable identifier used to help detect users of your application that may be
205
205
  # violating OpenAI's usage policies. The IDs should be a string that uniquely
206
- # identifies each user, with a maximum length of 64 characters. We recommend
206
+ # identifies each user, with a maximum length of 128 characters. We recommend
207
207
  # hashing their username or email address, in order to avoid sending us any
208
208
  # identifying information.
209
209
  # [Learn more](https://developers.openai.com/api/docs/guides/safety-best-practices#implement-safety-identifiers).
@@ -268,16 +268,12 @@ module OpenAI
268
268
  sig { returns(T.nilable(OpenAI::Responses::ResponseTextConfig)) }
269
269
  attr_reader :text
270
270
 
271
- sig do
271
+ sig {
272
272
  params(
273
- text: T.any(
274
- OpenAI::Responses::ResponseTextConfig::OrHash,
275
- OpenAI::StructuredOutput::JsonSchemaConverter
276
- )
273
+ text: T.any(OpenAI::Responses::ResponseTextConfig::OrHash, OpenAI::StructuredOutput::JsonSchemaConverter)
277
274
  )
278
275
  .void
279
- end
280
-
276
+ }
281
277
  attr_writer :text
282
278
 
283
279
  # How the model should select which tool (or tools) to use when generating a
@@ -667,7 +663,7 @@ module OpenAI
667
663
 
668
664
  # A stable identifier used to help detect users of your application that may be
669
665
  # violating OpenAI's usage policies. The IDs should be a string that uniquely
670
- # identifies each user, with a maximum length of 64 characters. We recommend
666
+ # identifies each user, with a maximum length of 128 characters. We recommend
671
667
  # hashing their username or email address, in order to avoid sending us any
672
668
  # identifying information.
673
669
  # [Learn more](https://developers.openai.com/api/docs/guides/safety-best-practices#implement-safety-identifiers).