openai 0.103.0 → 0.105.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 (407) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +98 -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_update_params.rb +4 -2
  49. data/lib/openai/models/beta/agents/environment_list_params.rb +7 -7
  50. data/lib/openai/models/beta/agents/session_create_params.rb +39 -3
  51. data/lib/openai/models/beta/agents/session_list_params.rb +7 -10
  52. data/lib/openai/models/beta/agents/session_update_params.rb +33 -1
  53. data/lib/openai/models/beta/agents/sessions/artifact_list_params.rb +11 -11
  54. data/lib/openai/models/beta/agents/vault_list_params.rb +23 -13
  55. data/lib/openai/models/beta/agents/vault_status_filter.rb +1 -3
  56. data/lib/openai/models/beta/agents/vault_update_params.rb +47 -0
  57. data/lib/openai/models/beta/agents/vaults/credential_list_params.rb +23 -13
  58. data/lib/openai/models/beta/beta_response.rb +23 -2
  59. data/lib/openai/models/beta/beta_response_error.rb +19 -1
  60. data/lib/openai/models/beta/beta_response_input_item.rb +107 -1
  61. data/lib/openai/models/beta/beta_response_item.rb +107 -1
  62. data/lib/openai/models/beta/beta_response_output_item.rb +107 -1
  63. data/lib/openai/models/beta/beta_responses_client_event.rb +23 -2
  64. data/lib/openai/models/beta/response_compact_params.rb +21 -0
  65. data/lib/openai/models/beta/response_create_params.rb +23 -2
  66. data/lib/openai/models/beta/session_turn_error.rb +3 -0
  67. data/lib/openai/models/chat/chat_completion_audio_param.rb +3 -3
  68. data/lib/openai/models/chat/chat_completion_message.rb +0 -8
  69. data/lib/openai/models/chat/chat_completion_message_function_tool_call.rb +0 -8
  70. data/lib/openai/models/chat/completion_create_params.rb +5 -12
  71. data/lib/openai/models/chat_model.rb +21 -0
  72. data/lib/openai/models/conversations/conversation_item.rb +107 -1
  73. data/lib/openai/models/decision.rb +17 -2
  74. data/lib/openai/models/decision_create_params.rb +29 -12
  75. data/lib/openai/models/decision_input_image.rb +4 -3
  76. data/lib/openai/models/decision_input_message.rb +4 -4
  77. data/lib/openai/models/decision_input_part.rb +3 -2
  78. data/lib/openai/models/image_edit_completed_event.rb +15 -3
  79. data/lib/openai/models/image_edit_params.rb +28 -5
  80. data/lib/openai/models/image_edit_partial_image_event.rb +1 -2
  81. data/lib/openai/models/image_gen_completed_event.rb +15 -3
  82. data/lib/openai/models/image_gen_partial_image_event.rb +1 -2
  83. data/lib/openai/models/image_generate_params.rb +28 -5
  84. data/lib/openai/models/images_response.rb +15 -3
  85. data/lib/openai/models/live/built_in_voice.rb +1 -0
  86. data/lib/openai/models/live/client_event.rb +14 -2
  87. data/lib/openai/models/live/decision_create_event.rb +26 -0
  88. data/lib/openai/models/live/decision_event.rb +117 -0
  89. data/lib/openai/models/live/decision_item_create_event.rb +194 -0
  90. data/lib/openai/models/live/decision_item_created_event.rb +202 -0
  91. data/lib/openai/models/live/decision_item_delete_event.rb +38 -0
  92. data/lib/openai/models/live/decision_item_deleted_event.rb +46 -0
  93. data/lib/openai/models/live/decision_trigger.rb +244 -0
  94. data/lib/openai/models/live/decisions_delegation_config.rb +201 -0
  95. data/lib/openai/models/live/decisions_delegation_update_config.rb +208 -0
  96. data/lib/openai/models/live/delegation_created_event.rb +10 -10
  97. data/lib/openai/models/live/fork_client_event.rb +14 -2
  98. data/lib/openai/models/live/fork_server_event.rb +17 -2
  99. data/lib/openai/models/live/media_session_config.rb +47 -11
  100. data/lib/openai/models/live/output_audio_fixture_play_event.rb +48 -0
  101. data/lib/openai/models/live/output_audio_fixture_played_event.rb +42 -0
  102. data/lib/openai/models/live/output_audio_fixture_playing_event.rb +41 -0
  103. data/lib/openai/models/live/server_event.rb +17 -2
  104. data/lib/openai/models/live/session_accept_params.rb +47 -11
  105. data/lib/openai/models/live/session_config.rb +47 -11
  106. data/lib/openai/models/live/session_resource.rb +47 -11
  107. data/lib/openai/models/live/session_update_config.rb +38 -6
  108. data/lib/openai/models/live/session_update_event.rb +8 -8
  109. data/lib/openai/models/live/sideband_client_event.rb +57 -0
  110. data/lib/openai/models/live/sideband_server_event.rb +78 -0
  111. data/lib/openai/models/realtime/realtime_audio_config_output.rb +6 -3
  112. data/lib/openai/models/realtime/realtime_response_create_audio_output.rb +6 -3
  113. data/lib/openai/models/realtime/realtime_response_status.rb +10 -1
  114. data/lib/openai/models/response_format_json_schema.rb +1 -1
  115. data/lib/openai/models/responses/function_tool.rb +8 -6
  116. data/lib/openai/models/responses/response.rb +2 -23
  117. data/lib/openai/models/responses/response_compact_params.rb +21 -0
  118. data/lib/openai/models/responses/response_create_params.rb +3 -6
  119. data/lib/openai/models/responses/response_error.rb +19 -1
  120. data/lib/openai/models/responses/response_format_text_config.rb +0 -4
  121. data/lib/openai/models/responses/response_function_tool_call.rb +0 -8
  122. data/lib/openai/models/responses/response_input_item.rb +107 -1
  123. data/lib/openai/models/responses/response_item.rb +107 -1
  124. data/lib/openai/models/responses/response_output_item.rb +107 -1
  125. data/lib/openai/models/responses/response_output_text.rb +0 -8
  126. data/lib/openai/models/responses/responses_client_event.rb +2 -2
  127. data/lib/openai/models/safety/safety_alert.rb +12 -1
  128. data/lib/openai/models/video_create_error.rb +19 -1
  129. data/lib/openai/models/webhooks/unwrap_webhook_event.rb +4 -4
  130. data/lib/openai/models/webhooks/webhook_endpoint_with_secret.rb +0 -9
  131. data/lib/openai/resources/admin/organization/external_storage.rb +1 -1
  132. data/lib/openai/resources/admin/organization/projects/api_keys.rb +61 -0
  133. data/lib/openai/resources/admin/organization/usage.rb +67 -0
  134. data/lib/openai/resources/audio/speech.rb +2 -1
  135. data/lib/openai/resources/audio/voices.rb +10 -10
  136. data/lib/openai/resources/beta/agents/environments/files.rb +3 -31
  137. data/lib/openai/resources/beta/agents/environments.rb +3 -3
  138. data/lib/openai/resources/beta/agents/sessions/artifacts.rb +5 -11
  139. data/lib/openai/resources/beta/agents/sessions.rb +20 -56
  140. data/lib/openai/resources/beta/agents/vaults/credentials.rb +10 -6
  141. data/lib/openai/resources/beta/agents/vaults.rb +45 -6
  142. data/lib/openai/resources/beta/agents.rb +6 -4
  143. data/lib/openai/resources/beta/responses.rb +2 -2
  144. data/lib/openai/resources/chat/completions.rb +11 -37
  145. data/lib/openai/resources/decisions.rb +9 -15
  146. data/lib/openai/resources/files.rb +0 -39
  147. data/lib/openai/resources/images.rb +50 -12
  148. data/lib/openai/resources/live/forks.rb +19 -0
  149. data/lib/openai/resources/live/sideband.rb +19 -0
  150. data/lib/openai/resources/live.rb +19 -0
  151. data/lib/openai/resources/realtime/translations.rb +19 -0
  152. data/lib/openai/resources/realtime.rb +19 -0
  153. data/lib/openai/resources/responses.rb +44 -95
  154. data/lib/openai/resources/vector_stores/file_batches.rb +0 -178
  155. data/lib/openai/resources/vector_stores/files.rb +0 -188
  156. data/lib/openai/resources/webhooks.rb +13 -29
  157. data/lib/openai/version.rb +1 -1
  158. data/lib/openai.rb +31 -0
  159. data/rbi/openai/client.rbi +0 -103
  160. data/rbi/openai/helpers/admin/organization/projects/api_keys.rbi +25 -0
  161. data/rbi/openai/helpers/beta/agents/artifacts.rbi +25 -0
  162. data/rbi/openai/helpers/beta/agents/files.rbi +48 -0
  163. data/rbi/openai/helpers/client_runtime.rbi +108 -0
  164. data/rbi/openai/helpers/files.rbi +25 -0
  165. data/rbi/openai/helpers/models/chat/parsed.rbi +21 -0
  166. data/rbi/openai/helpers/models/responses/parsed.rbi +19 -0
  167. data/rbi/openai/helpers/models/responses/response.rbi +15 -0
  168. data/rbi/openai/helpers/streaming/response_stream.rbi +301 -0
  169. data/rbi/openai/helpers/vector_stores/file_batches.rbi +102 -0
  170. data/rbi/openai/helpers/vector_stores/files.rbi +122 -0
  171. data/rbi/openai/helpers/websocket.rbi +82 -0
  172. data/rbi/openai/models/admin/organization/audit_log_list_response.rbi +6 -3
  173. data/rbi/openai/models/admin/organization/external_storage_configuration.rbi +4 -2
  174. data/rbi/openai/models/admin/organization/external_storage_create_params.rbi +63 -4
  175. data/rbi/openai/models/admin/organization/oci_external_storage_provider.rbi +71 -0
  176. data/rbi/openai/models/admin/organization/project_residency.rbi +12 -0
  177. data/rbi/openai/models/admin/organization/projects/api_key_update_params.rbi +110 -0
  178. data/rbi/openai/models/admin/organization/projects/api_key_update_scopes_params.rbi +72 -0
  179. data/rbi/openai/models/admin/organization/usage_decisions_params.rbi +229 -0
  180. data/rbi/openai/models/admin/organization/usage_decisions_response.rbi +479 -0
  181. data/rbi/openai/models/audio/speech_create_params.rbi +6 -3
  182. data/rbi/openai/models/audio/voice.rbi +21 -2
  183. data/rbi/openai/models/audio/voice_create_params.rbi +149 -4
  184. data/rbi/openai/models/beta/agent_create_params.rbi +4 -2
  185. data/rbi/openai/models/beta/agent_list_params.rbi +8 -5
  186. data/rbi/openai/models/beta/agent_session.rbi +64 -1
  187. data/rbi/openai/models/beta/agent_update_params.rbi +4 -2
  188. data/rbi/openai/models/beta/agents/environment_list_params.rbi +7 -7
  189. data/rbi/openai/models/beta/agents/session_create_params.rbi +62 -2
  190. data/rbi/openai/models/beta/agents/session_list_params.rbi +11 -11
  191. data/rbi/openai/models/beta/agents/session_update_params.rbi +56 -0
  192. data/rbi/openai/models/beta/agents/sessions/artifact_list_params.rbi +19 -13
  193. data/rbi/openai/models/beta/agents/vault_list_params.rbi +30 -13
  194. data/rbi/openai/models/beta/agents/vault_status_filter.rbi +1 -3
  195. data/rbi/openai/models/beta/agents/vault_update_params.rbi +87 -0
  196. data/rbi/openai/models/beta/agents/vaults/credential_list_params.rbi +30 -13
  197. data/rbi/openai/models/beta/beta_response.rbi +2 -2
  198. data/rbi/openai/models/beta/beta_response_error.rbi +24 -3
  199. data/rbi/openai/models/beta/beta_response_input_item.rbi +191 -0
  200. data/rbi/openai/models/beta/beta_response_item.rbi +189 -0
  201. data/rbi/openai/models/beta/beta_response_output_item.rbi +191 -0
  202. data/rbi/openai/models/beta/beta_responses_client_event.rbi +2 -2
  203. data/rbi/openai/models/beta/response_create_params.rbi +2 -2
  204. data/rbi/openai/models/beta/session_turn_error.rbi +3 -0
  205. data/rbi/openai/models/chat/chat_completion_audio_param.rbi +3 -3
  206. data/rbi/openai/models/chat/chat_completion_message.rbi +0 -4
  207. data/rbi/openai/models/chat/chat_completion_message_function_tool_call.rbi +0 -4
  208. data/rbi/openai/models/chat/completion_create_params.rbi +63 -78
  209. data/rbi/openai/models/conversations/conversation_item.rbi +191 -0
  210. data/rbi/openai/models/decision.rbi +14 -1
  211. data/rbi/openai/models/decision_create_params.rbi +23 -12
  212. data/rbi/openai/models/decision_input_image.rbi +4 -3
  213. data/rbi/openai/models/decision_input_message.rbi +4 -4
  214. data/rbi/openai/models/decision_input_part.rbi +2 -1
  215. data/rbi/openai/models/image_edit_completed_event.rbi +16 -1
  216. data/rbi/openai/models/image_edit_params.rbi +26 -4
  217. data/rbi/openai/models/image_edit_partial_image_event.rbi +1 -0
  218. data/rbi/openai/models/image_gen_completed_event.rbi +16 -1
  219. data/rbi/openai/models/image_gen_partial_image_event.rbi +1 -0
  220. data/rbi/openai/models/image_generate_params.rbi +26 -4
  221. data/rbi/openai/models/images_response.rbi +15 -0
  222. data/rbi/openai/models/live/built_in_voice.rbi +1 -0
  223. data/rbi/openai/models/live/client_event.rbi +4 -0
  224. data/rbi/openai/models/live/decision_create_event.rbi +55 -0
  225. data/rbi/openai/models/live/decision_event.rbi +185 -0
  226. data/rbi/openai/models/live/decision_item_create_event.rbi +338 -0
  227. data/rbi/openai/models/live/decision_item_created_event.rbi +354 -0
  228. data/rbi/openai/models/live/decision_item_delete_event.rbi +66 -0
  229. data/rbi/openai/models/live/decision_item_deleted_event.rbi +77 -0
  230. data/rbi/openai/models/live/decision_trigger.rbi +465 -0
  231. data/rbi/openai/models/live/decisions_delegation_config.rbi +393 -0
  232. data/rbi/openai/models/live/decisions_delegation_update_config.rbi +412 -0
  233. data/rbi/openai/models/live/delegation_created_event.rbi +8 -10
  234. data/rbi/openai/models/live/fork_client_event.rbi +4 -0
  235. data/rbi/openai/models/live/fork_server_event.rbi +5 -0
  236. data/rbi/openai/models/live/media_session_config.rbi +95 -14
  237. data/rbi/openai/models/live/output_audio_fixture_play_event.rbi +76 -0
  238. data/rbi/openai/models/live/output_audio_fixture_played_event.rbi +73 -0
  239. data/rbi/openai/models/live/output_audio_fixture_playing_event.rbi +72 -0
  240. data/rbi/openai/models/live/server_event.rbi +5 -0
  241. data/rbi/openai/models/live/session_accept_params.rbi +88 -12
  242. data/rbi/openai/models/live/session_config.rbi +100 -14
  243. data/rbi/openai/models/live/session_resource.rbi +81 -10
  244. data/rbi/openai/models/live/session_update_config.rbi +86 -9
  245. data/rbi/openai/models/live/session_update_event.rbi +8 -8
  246. data/rbi/openai/models/live/sideband_client_event.rbi +40 -0
  247. data/rbi/openai/models/live/sideband_server_event.rbi +47 -0
  248. data/rbi/openai/models/realtime/realtime_audio_config_output.rbi +6 -3
  249. data/rbi/openai/models/realtime/realtime_response_create_audio_output.rbi +6 -3
  250. data/rbi/openai/models/realtime/realtime_response_status.rbi +13 -1
  251. data/rbi/openai/models/realtime/realtime_translation_input_audio_buffer_append_event.rbi +1 -1
  252. data/rbi/openai/models/realtime/realtime_translation_output_audio_delta_event.rbi +3 -3
  253. data/rbi/openai/models/realtime/realtime_translation_session_close_event.rbi +1 -1
  254. data/rbi/openai/models/realtime/realtime_translation_session_update_event.rbi +5 -1
  255. data/rbi/openai/models/responses/response.rbi +2 -7
  256. data/rbi/openai/models/responses/response_create_params.rbi +5 -9
  257. data/rbi/openai/models/responses/response_error.rbi +24 -3
  258. data/rbi/openai/models/responses/response_function_tool_call.rbi +0 -4
  259. data/rbi/openai/models/responses/response_function_web_search.rbi +21 -17
  260. data/rbi/openai/models/responses/response_input_item.rbi +191 -0
  261. data/rbi/openai/models/responses/response_item.rbi +189 -0
  262. data/rbi/openai/models/responses/response_output_item.rbi +191 -0
  263. data/rbi/openai/models/responses/response_output_text.rbi +0 -4
  264. data/rbi/openai/models/responses/responses_client_event.rbi +2 -2
  265. data/rbi/openai/models/safety/safety_alert.rbi +13 -1
  266. data/rbi/openai/models/video_create_error.rbi +24 -3
  267. data/rbi/openai/models/webhooks/unwrap_webhook_event.rbi +1 -1
  268. data/rbi/openai/resources/admin/organization/external_storage.rbi +2 -1
  269. data/rbi/openai/resources/admin/organization/projects/api_keys.rbi +48 -0
  270. data/rbi/openai/resources/admin/organization/usage.rbi +56 -0
  271. data/rbi/openai/resources/audio/speech.rbi +2 -1
  272. data/rbi/openai/resources/audio/voices.rbi +13 -10
  273. data/rbi/openai/resources/beta/agents/environments/files.rbi +3 -33
  274. data/rbi/openai/resources/beta/agents/environments.rbi +3 -3
  275. data/rbi/openai/resources/beta/agents/sessions/artifacts.rbi +5 -13
  276. data/rbi/openai/resources/beta/agents/sessions.rbi +15 -4
  277. data/rbi/openai/resources/beta/agents/vaults/credentials.rbi +9 -5
  278. data/rbi/openai/resources/beta/agents/vaults.rbi +34 -5
  279. data/rbi/openai/resources/beta/agents.rbi +6 -4
  280. data/rbi/openai/resources/beta/responses.rbi +2 -2
  281. data/rbi/openai/resources/chat/completions.rbi +26 -29
  282. data/rbi/openai/resources/decisions.rbi +9 -15
  283. data/rbi/openai/resources/files.rbi +0 -18
  284. data/rbi/openai/resources/images.rbi +44 -8
  285. data/rbi/openai/resources/live/forks.rbi +17 -0
  286. data/rbi/openai/resources/live/sideband.rbi +17 -0
  287. data/rbi/openai/resources/live.rbi +17 -0
  288. data/rbi/openai/resources/realtime/translations.rbi +17 -0
  289. data/rbi/openai/resources/realtime.rbi +17 -0
  290. data/rbi/openai/resources/responses.rbi +41 -333
  291. data/rbi/openai/resources/vector_stores/file_batches.rbi +0 -93
  292. data/rbi/openai/resources/vector_stores/files.rbi +0 -113
  293. data/rbi/openai/resources/webhooks.rbi +1 -1
  294. data/sig/openai/client.rbs +0 -50
  295. data/sig/openai/helpers/admin/organization/projects/api_keys.rbs +18 -0
  296. data/sig/openai/helpers/beta/agents/artifacts.rbs +17 -0
  297. data/sig/openai/helpers/beta/agents/files.rbs +30 -0
  298. data/sig/openai/helpers/client_runtime.rbs +53 -0
  299. data/sig/openai/helpers/files.rbs +12 -0
  300. data/sig/openai/helpers/models/responses/response.rbs +9 -0
  301. data/sig/openai/helpers/streaming/response_stream.rbs +37 -0
  302. data/sig/openai/helpers/vector_stores/file_batches.rbs +38 -0
  303. data/sig/openai/helpers/vector_stores/files.rbs +43 -0
  304. data/sig/openai/helpers/websocket.rbs +40 -0
  305. data/sig/openai/models/admin/organization/audit_log_list_response.rbs +1 -0
  306. data/sig/openai/models/admin/organization/external_storage_configuration.rbs +1 -0
  307. data/sig/openai/models/admin/organization/external_storage_create_params.rbs +33 -0
  308. data/sig/openai/models/admin/organization/oci_external_storage_provider.rbs +34 -0
  309. data/sig/openai/models/admin/organization/project_residency.rbs +6 -0
  310. data/sig/openai/models/admin/organization/projects/api_key_update_params.rbs +77 -0
  311. data/sig/openai/models/admin/organization/projects/api_key_update_scopes_params.rbs +38 -0
  312. data/sig/openai/models/admin/organization/usage_decisions_params.rbs +170 -0
  313. data/sig/openai/models/admin/organization/usage_decisions_response.rbs +319 -0
  314. data/sig/openai/models/audio/speech_create_params.rbs +4 -2
  315. data/sig/openai/models/audio/voice.rbs +21 -3
  316. data/sig/openai/models/audio/voice_create_params.rbs +90 -1
  317. data/sig/openai/models/beta/agent_create_params.rbs +4 -2
  318. data/sig/openai/models/beta/agent_list_params.rbs +9 -6
  319. data/sig/openai/models/beta/agent_session.rbs +36 -2
  320. data/sig/openai/models/beta/agent_update_params.rbs +4 -2
  321. data/sig/openai/models/beta/agents/environment_list_params.rbs +9 -9
  322. data/sig/openai/models/beta/agents/session_create_params.rbs +29 -2
  323. data/sig/openai/models/beta/agents/session_list_params.rbs +12 -12
  324. data/sig/openai/models/beta/agents/session_update_params.rbs +23 -0
  325. data/sig/openai/models/beta/agents/sessions/artifact_list_params.rbs +21 -15
  326. data/sig/openai/models/beta/agents/vault_list_params.rbs +32 -14
  327. data/sig/openai/models/beta/agents/vault_update_params.rbs +54 -0
  328. data/sig/openai/models/beta/agents/vaults/credential_list_params.rbs +32 -14
  329. data/sig/openai/models/beta/beta_response.rbs +2 -2
  330. data/sig/openai/models/beta/beta_response_error.rbs +19 -3
  331. data/sig/openai/models/beta/beta_response_input_item.rbs +110 -0
  332. data/sig/openai/models/beta/beta_response_item.rbs +110 -0
  333. data/sig/openai/models/beta/beta_response_output_item.rbs +110 -0
  334. data/sig/openai/models/beta/beta_responses_client_event.rbs +2 -2
  335. data/sig/openai/models/beta/response_create_params.rbs +2 -2
  336. data/sig/openai/models/beta/session_turn_error.rbs +4 -0
  337. data/sig/openai/models/chat/chat_completion_audio_param.rbs +2 -2
  338. data/sig/openai/models/chat/completion_create_params.rbs +2 -2
  339. data/sig/openai/models/conversations/conversation_item.rbs +110 -0
  340. data/sig/openai/models/decision.rbs +13 -0
  341. data/sig/openai/models/decision_create_params.rbs +19 -8
  342. data/sig/openai/models/decision_input_image.rbs +2 -2
  343. data/sig/openai/models/decision_input_message.rbs +2 -2
  344. data/sig/openai/models/image_edit_completed_event.rbs +14 -2
  345. data/sig/openai/models/image_edit_params.rbs +27 -6
  346. data/sig/openai/models/image_gen_completed_event.rbs +14 -2
  347. data/sig/openai/models/image_generate_params.rbs +27 -6
  348. data/sig/openai/models/images_response.rbs +12 -0
  349. data/sig/openai/models/live/built_in_voice.rbs +2 -0
  350. data/sig/openai/models/live/client_event.rbs +4 -0
  351. data/sig/openai/models/live/decision_create_event.rbs +18 -0
  352. data/sig/openai/models/live/decision_event.rbs +102 -0
  353. data/sig/openai/models/live/decision_item_create_event.rbs +183 -0
  354. data/sig/openai/models/live/decision_item_created_event.rbs +195 -0
  355. data/sig/openai/models/live/decision_item_delete_event.rbs +33 -0
  356. data/sig/openai/models/live/decision_item_deleted_event.rbs +49 -0
  357. data/sig/openai/models/live/decision_trigger.rbs +234 -0
  358. data/sig/openai/models/live/decisions_delegation_config.rbs +195 -0
  359. data/sig/openai/models/live/decisions_delegation_update_config.rbs +202 -0
  360. data/sig/openai/models/live/delegation_created_event.rbs +6 -7
  361. data/sig/openai/models/live/fork_client_event.rbs +4 -0
  362. data/sig/openai/models/live/fork_server_event.rbs +5 -0
  363. data/sig/openai/models/live/media_session_config.rbs +58 -11
  364. data/sig/openai/models/live/output_audio_fixture_play_event.rbs +42 -0
  365. data/sig/openai/models/live/output_audio_fixture_played_event.rbs +44 -0
  366. data/sig/openai/models/live/output_audio_fixture_playing_event.rbs +44 -0
  367. data/sig/openai/models/live/server_event.rbs +5 -0
  368. data/sig/openai/models/live/session_accept_params.rbs +57 -10
  369. data/sig/openai/models/live/session_config.rbs +58 -11
  370. data/sig/openai/models/live/session_resource.rbs +57 -10
  371. data/sig/openai/models/live/session_update_config.rbs +54 -3
  372. data/sig/openai/models/live/session_update_event.rbs +6 -6
  373. data/sig/openai/models/live/sideband_client_event.rbs +26 -0
  374. data/sig/openai/models/live/sideband_server_event.rbs +33 -0
  375. data/sig/openai/models/realtime/realtime_audio_config_output.rbs +6 -3
  376. data/sig/openai/models/realtime/realtime_response_create_audio_output.rbs +6 -3
  377. data/sig/openai/models/realtime/realtime_response_status.rbs +15 -3
  378. data/sig/openai/models/responses/response.rbs +2 -4
  379. data/sig/openai/models/responses/response_create_params.rbs +2 -2
  380. data/sig/openai/models/responses/response_error.rbs +19 -3
  381. data/sig/openai/models/responses/response_input_item.rbs +110 -0
  382. data/sig/openai/models/responses/response_item.rbs +110 -0
  383. data/sig/openai/models/responses/response_output_item.rbs +110 -0
  384. data/sig/openai/models/responses/responses_client_event.rbs +2 -2
  385. data/sig/openai/models/safety/safety_alert.rbs +12 -2
  386. data/sig/openai/models/video_create_error.rbs +19 -3
  387. data/sig/openai/models/webhooks/unwrap_webhook_event.rbs +1 -1
  388. data/sig/openai/resources/admin/organization/projects/api_keys.rbs +8 -0
  389. data/sig/openai/resources/admin/organization/usage.rbs +15 -0
  390. data/sig/openai/resources/beta/agents/environments/files.rbs +0 -17
  391. data/sig/openai/resources/beta/agents/sessions/artifacts.rbs +2 -6
  392. data/sig/openai/resources/beta/agents/sessions.rbs +4 -1
  393. data/sig/openai/resources/beta/agents/vaults/credentials.rbs +2 -1
  394. data/sig/openai/resources/beta/agents/vaults.rbs +9 -1
  395. data/sig/openai/resources/beta/agents.rbs +1 -1
  396. data/sig/openai/resources/files.rbs +0 -7
  397. data/sig/openai/resources/images.rbs +4 -0
  398. data/sig/openai/resources/live/forks.rbs +8 -0
  399. data/sig/openai/resources/live/sideband.rbs +8 -0
  400. data/sig/openai/resources/live.rbs +7 -0
  401. data/sig/openai/resources/realtime/translations.rbs +7 -0
  402. data/sig/openai/resources/realtime.rbs +7 -0
  403. data/sig/openai/resources/responses.rbs +7 -31
  404. data/sig/openai/resources/vector_stores/file_batches.rbs +0 -31
  405. data/sig/openai/resources/vector_stores/files.rbs +0 -36
  406. data/sig/openai/resources/webhooks.rbs +1 -1
  407. metadata +89 -1
@@ -41,7 +41,8 @@ module OpenAI
41
41
  ?delegation: OpenAI::Models::Live::SessionAcceptParams::Session::delegation?,
42
42
  ?input: ::Array[OpenAI::Models::Live::initial_item],
43
43
  ?instructions: String?,
44
- ?store: bool
44
+ ?store: bool,
45
+ ?triggers: ::Array[OpenAI::Live::DecisionTrigger]
45
46
  }
46
47
 
47
48
  class Session < OpenAI::Internal::Type::BaseModel
@@ -64,17 +65,18 @@ module OpenAI
64
65
  ) -> OpenAI::Live::SessionAcceptParams::Session::Audio
65
66
 
66
67
  # Who handles tasks delegated by the Live model. Omitted or null selects your
67
- # application; use `responses` to let the API manage a Responses backend.
68
+ # application; use `responses` or `decisions` to delegate to the corresponding
69
+ # API.
68
70
  attr_accessor delegation: OpenAI::Models::Live::SessionAcceptParams::Session::delegation?
69
71
 
70
72
  # Ordered text-only history supplied before startup. Supports developer, user, and
71
- # assistant messages with one text part each; at most 128 messages and 8,192
72
- # rendered tokens in total.
73
+ # assistant messages with one text part each; at most 128 messages and a
74
+ # configured rendered-token limit (8,192 by default).
73
75
  attr_reader input: ::Array[OpenAI::Models::Live::initial_item]?
74
76
 
75
77
  # Ordered text-only history supplied before startup. Supports developer, user, and
76
- # assistant messages with one text part each; at most 128 messages and 8,192
77
- # rendered tokens in total.
78
+ # assistant messages with one text part each; at most 128 messages and a
79
+ # configured rendered-token limit (8,192 by default).
78
80
  def input=: (
79
81
  ::Array[OpenAI::Models::Live::initial_item]
80
82
  ) -> ::Array[OpenAI::Models::Live::initial_item]
@@ -96,6 +98,20 @@ module OpenAI
96
98
  # to false for new sessions.
97
99
  def store=: (bool) -> bool
98
100
 
101
+ # At most one Decisions trigger per transcript event type. Triggers run
102
+ # independently of delegation. On update, omit triggers to keep the current
103
+ # configuration, send a list to replace it, or send an empty list to disable
104
+ # triggers.
105
+ attr_reader triggers: ::Array[OpenAI::Live::DecisionTrigger]?
106
+
107
+ # At most one Decisions trigger per transcript event type. Triggers run
108
+ # independently of delegation. On update, omit triggers to keep the current
109
+ # configuration, send a list to replace it, or send an empty list to disable
110
+ # triggers.
111
+ def triggers=: (
112
+ ::Array[OpenAI::Live::DecisionTrigger]
113
+ ) -> ::Array[OpenAI::Live::DecisionTrigger]
114
+
99
115
  # @param model
100
116
  # The Live model to use for the accepted call.
101
117
  # @param audio
@@ -104,11 +120,12 @@ module OpenAI
104
120
  # startup.
105
121
  # @param delegation
106
122
  # Who handles tasks delegated by the Live model. Omitted or null selects your
107
- # application; use `responses` to let the API manage a Responses backend.
123
+ # application; use `responses` or `decisions` to delegate to the corresponding
124
+ # API.
108
125
  # @param input
109
126
  # Ordered text-only history supplied before startup. Supports developer, user, and
110
- # assistant messages with one text part each; at most 128 messages and 8,192
111
- # rendered tokens in total.
127
+ # assistant messages with one text part each; at most 128 messages and a
128
+ # configured rendered-token limit (8,192 by default).
112
129
  # @param instructions
113
130
  # Frontend instructions for voice, conversation, interruptions, and when to
114
131
  # delegate. Start with the
@@ -120,6 +137,11 @@ module OpenAI
120
137
  # @param store
121
138
  # Whether to store the session for later forking and recording download. Defaults
122
139
  # to false for new sessions.
140
+ # @param triggers
141
+ # At most one Decisions trigger per transcript event type. Triggers run
142
+ # independently of delegation. On update, omit triggers to keep the current
143
+ # configuration, send a list to replace it, or send an empty list to disable
144
+ # triggers.
123
145
  # @param type
124
146
  # The session type. Always `live`.
125
147
  def initialize: (
@@ -129,6 +151,7 @@ module OpenAI
129
151
  ?input: ::Array[OpenAI::Models::Live::initial_item],
130
152
  ?instructions: String?,
131
153
  ?store: bool,
154
+ ?triggers: ::Array[OpenAI::Live::DecisionTrigger],
132
155
  ?type: :live
133
156
  ) -> void
134
157
 
@@ -139,7 +162,8 @@ module OpenAI
139
162
  ?delegation: OpenAI::Models::Live::SessionAcceptParams::Session::delegation?,
140
163
  ?input: ::Array[OpenAI::Models::Live::initial_item],
141
164
  ?instructions: String?,
142
- ?store: bool
165
+ ?store: bool,
166
+ ?triggers: ::Array[OpenAI::Live::DecisionTrigger]
143
167
  }
144
168
 
145
169
  type model = String | :"gpt-live-1"
@@ -222,6 +246,7 @@ module OpenAI
222
246
  type delegation =
223
247
  OpenAI::Live::ClientDelegation
224
248
  | OpenAI::Live::SessionAcceptParams::Session::Delegation::Responses
249
+ | OpenAI::Live::SessionAcceptParams::Session::Delegation::Decisions
225
250
 
226
251
  module Delegation
227
252
  extend OpenAI::Internal::Type::Union
@@ -256,6 +281,28 @@ module OpenAI
256
281
  }
257
282
  end
258
283
 
284
+ type decisions =
285
+ {
286
+ decisions: OpenAI::Live::DecisionsDelegationConfig,
287
+ ?type: :decisions
288
+ }
289
+
290
+ class Decisions < OpenAI::Internal::Type::BaseModel
291
+ attr_accessor decisions: OpenAI::Live::DecisionsDelegationConfig
292
+
293
+ attr_accessor type: :decisions
294
+
295
+ def initialize: (
296
+ decisions: OpenAI::Live::DecisionsDelegationConfig,
297
+ ?type: :decisions
298
+ ) -> void
299
+
300
+ def to_hash: -> {
301
+ decisions: OpenAI::Live::DecisionsDelegationConfig,
302
+ ?type: :decisions
303
+ }
304
+ end
305
+
259
306
  def self?.variants: -> ::Array[OpenAI::Models::Live::SessionAcceptParams::Session::delegation]
260
307
  end
261
308
  end
@@ -9,7 +9,8 @@ module OpenAI
9
9
  ?delegation: OpenAI::Models::Live::SessionConfig::delegation?,
10
10
  ?input: ::Array[OpenAI::Models::Live::initial_item],
11
11
  ?instructions: String?,
12
- ?store: bool
12
+ ?store: bool,
13
+ ?triggers: ::Array[OpenAI::Live::DecisionTrigger]
13
14
  }
14
15
 
15
16
  class SessionConfig < OpenAI::Internal::Type::BaseModel
@@ -38,17 +39,18 @@ module OpenAI
38
39
  def client=: (OpenAI::Live::ClientConfig) -> OpenAI::Live::ClientConfig
39
40
 
40
41
  # Who handles tasks delegated by the Live model. Omitted or null selects your
41
- # application; use `responses` to let the API manage a Responses backend.
42
+ # application; use `responses` or `decisions` to delegate to the corresponding
43
+ # API.
42
44
  attr_accessor delegation: OpenAI::Models::Live::SessionConfig::delegation?
43
45
 
44
46
  # Ordered text-only history supplied before startup. Supports developer, user, and
45
- # assistant messages with one text part each; at most 128 messages and 8,192
46
- # rendered tokens in total.
47
+ # assistant messages with one text part each; at most 128 messages and a
48
+ # configured rendered-token limit (8,192 by default).
47
49
  attr_reader input: ::Array[OpenAI::Models::Live::initial_item]?
48
50
 
49
51
  # Ordered text-only history supplied before startup. Supports developer, user, and
50
- # assistant messages with one text part each; at most 128 messages and 8,192
51
- # rendered tokens in total.
52
+ # assistant messages with one text part each; at most 128 messages and a
53
+ # configured rendered-token limit (8,192 by default).
52
54
  def input=: (
53
55
  ::Array[OpenAI::Models::Live::initial_item]
54
56
  ) -> ::Array[OpenAI::Models::Live::initial_item]
@@ -70,6 +72,20 @@ module OpenAI
70
72
  # to false for new sessions.
71
73
  def store=: (bool) -> bool
72
74
 
75
+ # At most one Decisions trigger per transcript event type. Triggers run
76
+ # independently of delegation. On update, omit triggers to keep the current
77
+ # configuration, send a list to replace it, or send an empty list to disable
78
+ # triggers.
79
+ attr_reader triggers: ::Array[OpenAI::Live::DecisionTrigger]?
80
+
81
+ # At most one Decisions trigger per transcript event type. Triggers run
82
+ # independently of delegation. On update, omit triggers to keep the current
83
+ # configuration, send a list to replace it, or send an empty list to disable
84
+ # triggers.
85
+ def triggers=: (
86
+ ::Array[OpenAI::Live::DecisionTrigger]
87
+ ) -> ::Array[OpenAI::Live::DecisionTrigger]
88
+
73
89
  # @param model
74
90
  # The Live model. Required in the session configuration for every transport; do
75
91
  # not pass it as a URL query parameter.
@@ -82,11 +98,12 @@ module OpenAI
82
98
  # session. Trusted sideband connections are unaffected.
83
99
  # @param delegation
84
100
  # Who handles tasks delegated by the Live model. Omitted or null selects your
85
- # application; use `responses` to let the API manage a Responses backend.
101
+ # application; use `responses` or `decisions` to delegate to the corresponding
102
+ # API.
86
103
  # @param input
87
104
  # Ordered text-only history supplied before startup. Supports developer, user, and
88
- # assistant messages with one text part each; at most 128 messages and 8,192
89
- # rendered tokens in total.
105
+ # assistant messages with one text part each; at most 128 messages and a
106
+ # configured rendered-token limit (8,192 by default).
90
107
  # @param instructions
91
108
  # Frontend instructions for voice, conversation, interruptions, and when to
92
109
  # delegate. Start with the
@@ -98,6 +115,11 @@ module OpenAI
98
115
  # @param store
99
116
  # Whether to store the session for later forking and recording download. Defaults
100
117
  # to false for new sessions.
118
+ # @param triggers
119
+ # At most one Decisions trigger per transcript event type. Triggers run
120
+ # independently of delegation. On update, omit triggers to keep the current
121
+ # configuration, send a list to replace it, or send an empty list to disable
122
+ # triggers.
101
123
  def initialize: (
102
124
  model: OpenAI::Models::Live::SessionConfig::model,
103
125
  ?audio: OpenAI::Live::SessionConfig::Audio,
@@ -105,7 +127,8 @@ module OpenAI
105
127
  ?delegation: OpenAI::Models::Live::SessionConfig::delegation?,
106
128
  ?input: ::Array[OpenAI::Models::Live::initial_item],
107
129
  ?instructions: String?,
108
- ?store: bool
130
+ ?store: bool,
131
+ ?triggers: ::Array[OpenAI::Live::DecisionTrigger]
109
132
  ) -> void
110
133
 
111
134
  def to_hash: -> {
@@ -115,7 +138,8 @@ module OpenAI
115
138
  ?delegation: OpenAI::Models::Live::SessionConfig::delegation?,
116
139
  ?input: ::Array[OpenAI::Models::Live::initial_item],
117
140
  ?instructions: String?,
118
- ?store: bool
141
+ ?store: bool,
142
+ ?triggers: ::Array[OpenAI::Live::DecisionTrigger]
119
143
  }
120
144
 
121
145
  type model = String | :"gpt-live-1"
@@ -211,6 +235,7 @@ module OpenAI
211
235
  type delegation =
212
236
  OpenAI::Live::ClientDelegation
213
237
  | OpenAI::Live::SessionConfig::Delegation::Responses
238
+ | OpenAI::Live::SessionConfig::Delegation::Decisions
214
239
 
215
240
  module Delegation
216
241
  extend OpenAI::Internal::Type::Union
@@ -245,6 +270,28 @@ module OpenAI
245
270
  }
246
271
  end
247
272
 
273
+ type decisions =
274
+ {
275
+ decisions: OpenAI::Live::DecisionsDelegationConfig,
276
+ ?type: :decisions
277
+ }
278
+
279
+ class Decisions < OpenAI::Internal::Type::BaseModel
280
+ attr_accessor decisions: OpenAI::Live::DecisionsDelegationConfig
281
+
282
+ attr_accessor type: :decisions
283
+
284
+ def initialize: (
285
+ decisions: OpenAI::Live::DecisionsDelegationConfig,
286
+ ?type: :decisions
287
+ ) -> void
288
+
289
+ def to_hash: -> {
290
+ decisions: OpenAI::Live::DecisionsDelegationConfig,
291
+ ?type: :decisions
292
+ }
293
+ end
294
+
248
295
  def self?.variants: -> ::Array[OpenAI::Models::Live::SessionConfig::delegation]
249
296
  end
250
297
  end
@@ -12,7 +12,8 @@ module OpenAI
12
12
  ?delegation: OpenAI::Models::Live::SessionResource::delegation?,
13
13
  ?input: ::Array[OpenAI::Models::Live::initial_item],
14
14
  ?instructions: String?,
15
- ?store: bool
15
+ ?store: bool,
16
+ ?triggers: ::Array[OpenAI::Live::DecisionTrigger]
16
17
  }
17
18
 
18
19
  class SessionResource < OpenAI::Internal::Type::BaseModel
@@ -53,17 +54,18 @@ module OpenAI
53
54
  def client=: (OpenAI::Live::ClientConfig) -> OpenAI::Live::ClientConfig
54
55
 
55
56
  # Who handles tasks delegated by the Live model. Omitted or null selects your
56
- # application; use `responses` to let the API manage a Responses backend.
57
+ # application; use `responses` or `decisions` to delegate to the corresponding
58
+ # API.
57
59
  attr_accessor delegation: OpenAI::Models::Live::SessionResource::delegation?
58
60
 
59
61
  # 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.
62
+ # assistant messages with one text part each; at most 128 messages and a
63
+ # configured rendered-token limit (8,192 by default).
62
64
  attr_reader input: ::Array[OpenAI::Models::Live::initial_item]?
63
65
 
64
66
  # Ordered text-only history supplied before startup. Supports developer, user, and
65
- # assistant messages with one text part each; at most 128 messages and 8,192
66
- # rendered tokens in total.
67
+ # assistant messages with one text part each; at most 128 messages and a
68
+ # configured rendered-token limit (8,192 by default).
67
69
  def input=: (
68
70
  ::Array[OpenAI::Models::Live::initial_item]
69
71
  ) -> ::Array[OpenAI::Models::Live::initial_item]
@@ -85,6 +87,20 @@ module OpenAI
85
87
  # to false for new sessions.
86
88
  def store=: (bool) -> bool
87
89
 
90
+ # At most one Decisions trigger per transcript event type. Triggers run
91
+ # independently of delegation. On update, omit triggers to keep the current
92
+ # configuration, send a list to replace it, or send an empty list to disable
93
+ # triggers.
94
+ attr_reader triggers: ::Array[OpenAI::Live::DecisionTrigger]?
95
+
96
+ # At most one Decisions trigger per transcript event type. Triggers run
97
+ # independently of delegation. On update, omit triggers to keep the current
98
+ # configuration, send a list to replace it, or send an empty list to disable
99
+ # triggers.
100
+ def triggers=: (
101
+ ::Array[OpenAI::Live::DecisionTrigger]
102
+ ) -> ::Array[OpenAI::Live::DecisionTrigger]
103
+
88
104
  # @param id
89
105
  # The unique ID of the Live session. Use this ID for sideband connections,
90
106
  # forking, and recording download.
@@ -102,11 +118,12 @@ module OpenAI
102
118
  # session. Trusted sideband connections are unaffected.
103
119
  # @param delegation
104
120
  # Who handles tasks delegated by the Live model. Omitted or null selects your
105
- # application; use `responses` to let the API manage a Responses backend.
121
+ # application; use `responses` or `decisions` to delegate to the corresponding
122
+ # API.
106
123
  # @param input
107
124
  # Ordered text-only history supplied before startup. Supports developer, user, and
108
- # assistant messages with one text part each; at most 128 messages and 8,192
109
- # rendered tokens in total.
125
+ # assistant messages with one text part each; at most 128 messages and a
126
+ # configured rendered-token limit (8,192 by default).
110
127
  # @param instructions
111
128
  # Frontend instructions for voice, conversation, interruptions, and when to
112
129
  # delegate. Start with the
@@ -118,6 +135,11 @@ module OpenAI
118
135
  # @param store
119
136
  # Whether to store the session for later forking and recording download. Defaults
120
137
  # to false for new sessions.
138
+ # @param triggers
139
+ # At most one Decisions trigger per transcript event type. Triggers run
140
+ # independently of delegation. On update, omit triggers to keep the current
141
+ # configuration, send a list to replace it, or send an empty list to disable
142
+ # triggers.
121
143
  # @param status
122
144
  # The status of the session snapshot. Always `active`, including the final
123
145
  # snapshot in session.closed; use the event type to determine that the session has
@@ -132,6 +154,7 @@ module OpenAI
132
154
  ?input: ::Array[OpenAI::Models::Live::initial_item],
133
155
  ?instructions: String?,
134
156
  ?store: bool,
157
+ ?triggers: ::Array[OpenAI::Live::DecisionTrigger],
135
158
  ?status: :active
136
159
  ) -> void
137
160
 
@@ -145,7 +168,8 @@ module OpenAI
145
168
  ?delegation: OpenAI::Models::Live::SessionResource::delegation?,
146
169
  ?input: ::Array[OpenAI::Models::Live::initial_item],
147
170
  ?instructions: String?,
148
- ?store: bool
171
+ ?store: bool,
172
+ ?triggers: ::Array[OpenAI::Live::DecisionTrigger]
149
173
  }
150
174
 
151
175
  type model = String | :"gpt-live-1"
@@ -241,6 +265,7 @@ module OpenAI
241
265
  type delegation =
242
266
  OpenAI::Live::ClientDelegation
243
267
  | OpenAI::Live::SessionResource::Delegation::Responses
268
+ | OpenAI::Live::SessionResource::Delegation::Decisions
244
269
 
245
270
  module Delegation
246
271
  extend OpenAI::Internal::Type::Union
@@ -275,6 +300,28 @@ module OpenAI
275
300
  }
276
301
  end
277
302
 
303
+ type decisions =
304
+ {
305
+ decisions: OpenAI::Live::DecisionsDelegationConfig,
306
+ ?type: :decisions
307
+ }
308
+
309
+ class Decisions < OpenAI::Internal::Type::BaseModel
310
+ attr_accessor decisions: OpenAI::Live::DecisionsDelegationConfig
311
+
312
+ attr_accessor type: :decisions
313
+
314
+ def initialize: (
315
+ decisions: OpenAI::Live::DecisionsDelegationConfig,
316
+ ?type: :decisions
317
+ ) -> void
318
+
319
+ def to_hash: -> {
320
+ decisions: OpenAI::Live::DecisionsDelegationConfig,
321
+ ?type: :decisions
322
+ }
323
+ end
324
+
278
325
  def self?.variants: -> ::Array[OpenAI::Models::Live::SessionResource::delegation]
279
326
  end
280
327
  end
@@ -2,27 +2,52 @@ module OpenAI
2
2
  module Models
3
3
  module Live
4
4
  type session_update_config =
5
- { ?delegation: OpenAI::Models::Live::SessionUpdateConfig::delegation? }
5
+ {
6
+ ?delegation: OpenAI::Models::Live::SessionUpdateConfig::delegation?,
7
+ ?triggers: ::Array[OpenAI::Live::DecisionTrigger]
8
+ }
6
9
 
7
10
  class SessionUpdateConfig < OpenAI::Internal::Type::BaseModel
8
11
  # Delegation settings to update. The delegation type must match the current
9
12
  # session; omitted settings retain their values.
10
13
  attr_accessor delegation: OpenAI::Models::Live::SessionUpdateConfig::delegation?
11
14
 
15
+ # At most one Decisions trigger per transcript event type. Triggers run
16
+ # independently of delegation. On update, omit triggers to keep the current
17
+ # configuration, send a list to replace it, or send an empty list to disable
18
+ # triggers.
19
+ attr_reader triggers: ::Array[OpenAI::Live::DecisionTrigger]?
20
+
21
+ # At most one Decisions trigger per transcript event type. Triggers run
22
+ # independently of delegation. On update, omit triggers to keep the current
23
+ # configuration, send a list to replace it, or send an empty list to disable
24
+ # triggers.
25
+ def triggers=: (
26
+ ::Array[OpenAI::Live::DecisionTrigger]
27
+ ) -> ::Array[OpenAI::Live::DecisionTrigger]
28
+
12
29
  # @param delegation
13
30
  # Delegation settings to update. The delegation type must match the current
14
31
  # session; omitted settings retain their values.
32
+ # @param triggers
33
+ # At most one Decisions trigger per transcript event type. Triggers run
34
+ # independently of delegation. On update, omit triggers to keep the current
35
+ # configuration, send a list to replace it, or send an empty list to disable
36
+ # triggers.
15
37
  def initialize: (
16
- ?delegation: OpenAI::Models::Live::SessionUpdateConfig::delegation?
38
+ ?delegation: OpenAI::Models::Live::SessionUpdateConfig::delegation?,
39
+ ?triggers: ::Array[OpenAI::Live::DecisionTrigger]
17
40
  ) -> void
18
41
 
19
42
  def to_hash: -> {
20
- ?delegation: OpenAI::Models::Live::SessionUpdateConfig::delegation?
43
+ ?delegation: OpenAI::Models::Live::SessionUpdateConfig::delegation?,
44
+ ?triggers: ::Array[OpenAI::Live::DecisionTrigger]
21
45
  }
22
46
 
23
47
  type delegation =
24
48
  OpenAI::Live::ClientDelegation
25
49
  | OpenAI::Live::SessionUpdateConfig::Delegation::Responses
50
+ | OpenAI::Live::SessionUpdateConfig::Delegation::Decisions
26
51
 
27
52
  module Delegation
28
53
  extend OpenAI::Internal::Type::Union
@@ -63,6 +88,32 @@ module OpenAI
63
88
  }
64
89
  end
65
90
 
91
+ type decisions =
92
+ {
93
+ ?type: :decisions,
94
+ ?decisions: OpenAI::Live::DecisionsDelegationUpdateConfig
95
+ }
96
+
97
+ class Decisions < OpenAI::Internal::Type::BaseModel
98
+ attr_accessor type: :decisions
99
+
100
+ attr_reader decisions: OpenAI::Live::DecisionsDelegationUpdateConfig?
101
+
102
+ def decisions=: (
103
+ OpenAI::Live::DecisionsDelegationUpdateConfig
104
+ ) -> OpenAI::Live::DecisionsDelegationUpdateConfig
105
+
106
+ def initialize: (
107
+ ?decisions: OpenAI::Live::DecisionsDelegationUpdateConfig,
108
+ ?type: :decisions
109
+ ) -> void
110
+
111
+ def to_hash: -> {
112
+ ?type: :decisions,
113
+ ?decisions: OpenAI::Live::DecisionsDelegationUpdateConfig
114
+ }
115
+ end
116
+
66
117
  def self?.variants: -> ::Array[OpenAI::Models::Live::SessionUpdateConfig::delegation]
67
118
  end
68
119
  end
@@ -9,9 +9,9 @@ module OpenAI
9
9
  }
10
10
 
11
11
  class SessionUpdateEvent < OpenAI::Internal::Type::BaseModel
12
- # Sparse delegation updates. Omitted settings retain their values. The delegation
13
- # type cannot change, including resetting Responses delegation to null or client.
14
- # Model, frontend instructions, audio, and startup input are immutable.
12
+ # Sparse delegation and trigger updates. Omitted settings retain their values. The
13
+ # delegation type cannot change. Model, frontend instructions, audio, and startup
14
+ # input are immutable.
15
15
  attr_accessor session: OpenAI::Live::SessionUpdateConfig
16
16
 
17
17
  # The Live client event type. Always `session.update`.
@@ -22,9 +22,9 @@ module OpenAI
22
22
  attr_accessor event_id: String?
23
23
 
24
24
  # @param session
25
- # Sparse delegation updates. Omitted settings retain their values. The delegation
26
- # type cannot change, including resetting Responses delegation to null or client.
27
- # Model, frontend instructions, audio, and startup input are immutable.
25
+ # Sparse delegation and trigger updates. Omitted settings retain their values. The
26
+ # delegation type cannot change. Model, frontend instructions, audio, and startup
27
+ # input are immutable.
28
28
  # @param event_id
29
29
  # Optional client identifier for correlating this command with a server event's
30
30
  # client_event_id or error.client_event_id.
@@ -0,0 +1,26 @@
1
+ module OpenAI
2
+ module Models
3
+ module Live
4
+ type sideband_client_event =
5
+ OpenAI::Live::SessionUpdateEvent
6
+ | OpenAI::Live::InputAudioMuteEvent
7
+ | OpenAI::Live::InputAudioUnmuteEvent
8
+ | OpenAI::Live::OutputAudioFixturePlayEvent
9
+ | OpenAI::Live::InstructionsAppendEvent
10
+ | OpenAI::Live::ThinkingAppendEvent
11
+ | OpenAI::Live::CommentaryAppendEvent
12
+ | OpenAI::Live::DecisionCreateEvent
13
+ | OpenAI::Live::DecisionItemCreateEvent
14
+ | OpenAI::Live::DecisionItemDeleteEvent
15
+ | OpenAI::Live::ResponseItemCreateEvent
16
+ | OpenAI::Live::ResponseCreateEvent
17
+ | OpenAI::Live::SessionCloseEvent
18
+
19
+ module SidebandClientEvent
20
+ extend OpenAI::Internal::Type::Union
21
+
22
+ def self?.variants: -> ::Array[OpenAI::Models::Live::sideband_client_event]
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,33 @@
1
+ module OpenAI
2
+ module Models
3
+ module Live
4
+ type sideband_server_event =
5
+ OpenAI::Live::SessionStartedEvent
6
+ | OpenAI::Live::SessionUpdatedEvent
7
+ | OpenAI::Live::InputAudioMutedEvent
8
+ | OpenAI::Live::InputAudioUnmutedEvent
9
+ | OpenAI::Live::OutputAudioFixturePlayingEvent
10
+ | OpenAI::Live::OutputAudioFixturePlayedEvent
11
+ | OpenAI::Live::InstructionsAppendedEvent
12
+ | OpenAI::Live::ThinkingAppendedEvent
13
+ | OpenAI::Live::CommentaryAppendedEvent
14
+ | OpenAI::Live::InputTranscriptDeltaEvent
15
+ | OpenAI::Live::OutputTranscriptDeltaEvent
16
+ | OpenAI::Live::DelegationCreatedEvent
17
+ | OpenAI::Live::DecisionEvent
18
+ | OpenAI::Live::DecisionItemCreatedEvent
19
+ | OpenAI::Live::DecisionItemDeletedEvent
20
+ | OpenAI::Live::ResponseEvent
21
+ | OpenAI::Live::SessionUsageUpdatedEvent
22
+ | OpenAI::Live::SessionClosedEvent
23
+ | OpenAI::Live::ErrorEvent
24
+ | OpenAI::Live::InfoEvent
25
+
26
+ module SidebandServerEvent
27
+ extend OpenAI::Internal::Type::Union
28
+
29
+ def self?.variants: -> ::Array[OpenAI::Models::Live::sideband_server_event]
30
+ end
31
+ end
32
+ end
33
+ end
@@ -40,7 +40,8 @@ module OpenAI
40
40
  # `cedar`. You may also provide a custom voice object with an `id`, for example
41
41
  # `{ "id": "voice_1234" }`. Voice cannot be changed during the session once the
42
42
  # model has responded with audio at least once. Custom voices must be created from
43
- # audio samples. We recommend `marin` and `cedar` for best quality.
43
+ # audio samples. Voices created from text prompts are supported only in Live. We
44
+ # recommend `marin` and `cedar` for best quality.
44
45
  attr_reader voice: OpenAI::Models::Realtime::RealtimeAudioConfigOutput::voice?
45
46
 
46
47
  # The voice the model uses to respond. Supported built-in voices are `alloy`,
@@ -48,7 +49,8 @@ module OpenAI
48
49
  # `cedar`. You may also provide a custom voice object with an `id`, for example
49
50
  # `{ "id": "voice_1234" }`. Voice cannot be changed during the session once the
50
51
  # model has responded with audio at least once. Custom voices must be created from
51
- # audio samples. We recommend `marin` and `cedar` for best quality.
52
+ # audio samples. Voices created from text prompts are supported only in Live. We
53
+ # recommend `marin` and `cedar` for best quality.
52
54
  def voice=: (
53
55
  OpenAI::Models::Realtime::RealtimeAudioConfigOutput::voice
54
56
  ) -> OpenAI::Models::Realtime::RealtimeAudioConfigOutput::voice
@@ -69,7 +71,8 @@ module OpenAI
69
71
  # `cedar`. You may also provide a custom voice object with an `id`, for example
70
72
  # `{ "id": "voice_1234" }`. Voice cannot be changed during the session once the
71
73
  # model has responded with audio at least once. Custom voices must be created from
72
- # audio samples. We recommend `marin` and `cedar` for best quality.
74
+ # audio samples. Voices created from text prompts are supported only in Live. We
75
+ # recommend `marin` and `cedar` for best quality.
73
76
  def initialize: (
74
77
  ?format_: OpenAI::Models::Realtime::realtime_audio_formats,
75
78
  ?speed: Float,
@@ -39,7 +39,8 @@ module OpenAI
39
39
  # `cedar`. You may also provide a custom voice object with an `id`, for example
40
40
  # `{ "id": "voice_1234" }`. Voice cannot be changed during the session once the
41
41
  # model has responded with audio at least once. Custom voices must be created from
42
- # audio samples. We recommend `marin` and `cedar` for best quality.
42
+ # audio samples. Voices created from text prompts are supported only in Live. We
43
+ # recommend `marin` and `cedar` for best quality.
43
44
  attr_reader voice: OpenAI::Models::Realtime::RealtimeResponseCreateAudioOutput::Output::voice?
44
45
 
45
46
  # The voice the model uses to respond. Supported built-in voices are `alloy`,
@@ -47,7 +48,8 @@ module OpenAI
47
48
  # `cedar`. You may also provide a custom voice object with an `id`, for example
48
49
  # `{ "id": "voice_1234" }`. Voice cannot be changed during the session once the
49
50
  # model has responded with audio at least once. Custom voices must be created from
50
- # audio samples. We recommend `marin` and `cedar` for best quality.
51
+ # audio samples. Voices created from text prompts are supported only in Live. We
52
+ # recommend `marin` and `cedar` for best quality.
51
53
  def voice=: (
52
54
  OpenAI::Models::Realtime::RealtimeResponseCreateAudioOutput::Output::voice
53
55
  ) -> OpenAI::Models::Realtime::RealtimeResponseCreateAudioOutput::Output::voice
@@ -60,7 +62,8 @@ module OpenAI
60
62
  # `cedar`. You may also provide a custom voice object with an `id`, for example
61
63
  # `{ "id": "voice_1234" }`. Voice cannot be changed during the session once the
62
64
  # model has responded with audio at least once. Custom voices must be created from
63
- # audio samples. We recommend `marin` and `cedar` for best quality.
65
+ # audio samples. Voices created from text prompts are supported only in Live. We
66
+ # recommend `marin` and `cedar` for best quality.
64
67
  def initialize: (
65
68
  ?format_: OpenAI::Models::Realtime::realtime_audio_formats,
66
69
  ?voice: OpenAI::Models::Realtime::RealtimeResponseCreateAudioOutput::Output::voice