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
@@ -6,6 +6,8 @@ module OpenAI
6
6
  | OpenAI::Live::SessionUpdatedEvent
7
7
  | OpenAI::Live::InputAudioMutedEvent
8
8
  | OpenAI::Live::InputAudioUnmutedEvent
9
+ | OpenAI::Live::OutputAudioFixturePlayingEvent
10
+ | OpenAI::Live::OutputAudioFixturePlayedEvent
9
11
  | OpenAI::Live::InstructionsAppendedEvent
10
12
  | OpenAI::Live::ThinkingAppendedEvent
11
13
  | OpenAI::Live::CommentaryAppendedEvent
@@ -14,6 +16,9 @@ module OpenAI
14
16
  | OpenAI::Live::InputTranscriptDeltaEvent
15
17
  | OpenAI::Live::OutputTranscriptDeltaEvent
16
18
  | OpenAI::Live::DelegationCreatedEvent
19
+ | OpenAI::Live::DecisionEvent
20
+ | OpenAI::Live::DecisionItemCreatedEvent
21
+ | OpenAI::Live::DecisionItemDeletedEvent
17
22
  | OpenAI::Live::ResponseEvent
18
23
  | OpenAI::Live::SessionUsageUpdatedEvent
19
24
  | OpenAI::Live::SessionClosedEvent
@@ -9,7 +9,8 @@ module OpenAI
9
9
  ?delegation: OpenAI::Models::Live::MediaSessionConfig::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 MediaSessionConfig < OpenAI::Internal::Type::BaseModel
@@ -36,17 +37,18 @@ module OpenAI
36
37
  def client=: (OpenAI::Live::ClientConfig) -> OpenAI::Live::ClientConfig
37
38
 
38
39
  # Who handles tasks delegated by the Live model. Omitted or null selects your
39
- # application; use `responses` to let the API manage a Responses backend.
40
+ # application; use `responses` or `decisions` to delegate to the corresponding
41
+ # API.
40
42
  attr_accessor delegation: OpenAI::Models::Live::MediaSessionConfig::delegation?
41
43
 
42
44
  # Ordered text-only history supplied before startup. Supports developer, user, and
43
- # assistant messages with one text part each; at most 128 messages and 8,192
44
- # rendered tokens in total.
45
+ # assistant messages with one text part each; at most 128 messages and a
46
+ # configured rendered-token limit (8,192 by default).
45
47
  attr_reader input: ::Array[OpenAI::Models::Live::initial_item]?
46
48
 
47
49
  # Ordered text-only history supplied before startup. Supports developer, user, and
48
- # assistant messages with one text part each; at most 128 messages and 8,192
49
- # rendered tokens in total.
50
+ # assistant messages with one text part each; at most 128 messages and a
51
+ # configured rendered-token limit (8,192 by default).
50
52
  def input=: (
51
53
  ::Array[OpenAI::Models::Live::initial_item]
52
54
  ) -> ::Array[OpenAI::Models::Live::initial_item]
@@ -68,6 +70,20 @@ module OpenAI
68
70
  # to false for new sessions.
69
71
  def store=: (bool) -> bool
70
72
 
73
+ # At most one Decisions trigger per transcript event type. Triggers run
74
+ # independently of delegation. On update, omit triggers to keep the current
75
+ # configuration, send a list to replace it, or send an empty list to disable
76
+ # triggers.
77
+ attr_reader triggers: ::Array[OpenAI::Live::DecisionTrigger]?
78
+
79
+ # At most one Decisions trigger per transcript event type. Triggers run
80
+ # independently of delegation. On update, omit triggers to keep the current
81
+ # configuration, send a list to replace it, or send an empty list to disable
82
+ # triggers.
83
+ def triggers=: (
84
+ ::Array[OpenAI::Live::DecisionTrigger]
85
+ ) -> ::Array[OpenAI::Live::DecisionTrigger]
86
+
71
87
  # @param model
72
88
  # The Live model. Required in the session configuration for every transport; do
73
89
  # not pass it as a URL query parameter.
@@ -79,11 +95,12 @@ module OpenAI
79
95
  # session. Trusted sideband connections are unaffected.
80
96
  # @param delegation
81
97
  # Who handles tasks delegated by the Live model. Omitted or null selects your
82
- # application; use `responses` to let the API manage a Responses backend.
98
+ # application; use `responses` or `decisions` to delegate to the corresponding
99
+ # API.
83
100
  # @param input
84
101
  # Ordered text-only history supplied before startup. Supports developer, user, and
85
- # assistant messages with one text part each; at most 128 messages and 8,192
86
- # rendered tokens in total.
102
+ # assistant messages with one text part each; at most 128 messages and a
103
+ # configured rendered-token limit (8,192 by default).
87
104
  # @param instructions
88
105
  # Frontend instructions for voice, conversation, interruptions, and when to
89
106
  # delegate. Start with the
@@ -95,6 +112,11 @@ module OpenAI
95
112
  # @param store
96
113
  # Whether to store the session for later forking and recording download. Defaults
97
114
  # to false for new sessions.
115
+ # @param triggers
116
+ # At most one Decisions trigger per transcript event type. Triggers run
117
+ # independently of delegation. On update, omit triggers to keep the current
118
+ # configuration, send a list to replace it, or send an empty list to disable
119
+ # triggers.
98
120
  def initialize: (
99
121
  model: OpenAI::Models::Live::MediaSessionConfig::model,
100
122
  ?audio: OpenAI::Live::MediaSessionConfig::Audio,
@@ -102,7 +124,8 @@ module OpenAI
102
124
  ?delegation: OpenAI::Models::Live::MediaSessionConfig::delegation?,
103
125
  ?input: ::Array[OpenAI::Models::Live::initial_item],
104
126
  ?instructions: String?,
105
- ?store: bool
127
+ ?store: bool,
128
+ ?triggers: ::Array[OpenAI::Live::DecisionTrigger]
106
129
  ) -> void
107
130
 
108
131
  def to_hash: -> {
@@ -112,7 +135,8 @@ module OpenAI
112
135
  ?delegation: OpenAI::Models::Live::MediaSessionConfig::delegation?,
113
136
  ?input: ::Array[OpenAI::Models::Live::initial_item],
114
137
  ?instructions: String?,
115
- ?store: bool
138
+ ?store: bool,
139
+ ?triggers: ::Array[OpenAI::Live::DecisionTrigger]
116
140
  }
117
141
 
118
142
  type model = String | :"gpt-live-1"
@@ -193,6 +217,7 @@ module OpenAI
193
217
  type delegation =
194
218
  OpenAI::Live::ClientDelegation
195
219
  | OpenAI::Live::MediaSessionConfig::Delegation::Responses
220
+ | OpenAI::Live::MediaSessionConfig::Delegation::Decisions
196
221
 
197
222
  module Delegation
198
223
  extend OpenAI::Internal::Type::Union
@@ -227,6 +252,28 @@ module OpenAI
227
252
  }
228
253
  end
229
254
 
255
+ type decisions =
256
+ {
257
+ decisions: OpenAI::Live::DecisionsDelegationConfig,
258
+ ?type: :decisions
259
+ }
260
+
261
+ class Decisions < OpenAI::Internal::Type::BaseModel
262
+ attr_accessor decisions: OpenAI::Live::DecisionsDelegationConfig
263
+
264
+ attr_accessor type: :decisions
265
+
266
+ def initialize: (
267
+ decisions: OpenAI::Live::DecisionsDelegationConfig,
268
+ ?type: :decisions
269
+ ) -> void
270
+
271
+ def to_hash: -> {
272
+ decisions: OpenAI::Live::DecisionsDelegationConfig,
273
+ ?type: :decisions
274
+ }
275
+ end
276
+
230
277
  def self?.variants: -> ::Array[OpenAI::Models::Live::MediaSessionConfig::delegation]
231
278
  end
232
279
  end
@@ -0,0 +1,42 @@
1
+ module OpenAI
2
+ module Models
3
+ module Live
4
+ type output_audio_fixture_play_event =
5
+ {
6
+ audio: String,
7
+ ?type: :"session.output_audio.fixture.play",
8
+ ?event_id: String?
9
+ }
10
+
11
+ class OutputAudioFixturePlayEvent < OpenAI::Internal::Type::BaseModel
12
+ # Base64-encoded raw mono PCM16 audio, little-endian, at 24 kHz. Do not include a
13
+ # WAV or other container header.
14
+ attr_accessor audio: String
15
+
16
+ attr_accessor type: :"session.output_audio.fixture.play"
17
+
18
+ # Optional client identifier for correlating this command with a server event's
19
+ # client_event_id or error.client_event_id.
20
+ attr_accessor event_id: String?
21
+
22
+ # @param audio
23
+ # Base64-encoded raw mono PCM16 audio, little-endian, at 24 kHz. Do not include a
24
+ # WAV or other container header.
25
+ # @param event_id
26
+ # Optional client identifier for correlating this command with a server event's
27
+ # client_event_id or error.client_event_id.
28
+ def initialize: (
29
+ audio: String,
30
+ ?event_id: String?,
31
+ ?type: :"session.output_audio.fixture.play"
32
+ ) -> void
33
+
34
+ def to_hash: -> {
35
+ audio: String,
36
+ ?type: :"session.output_audio.fixture.play",
37
+ ?event_id: String?
38
+ }
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,44 @@
1
+ module OpenAI
2
+ module Models
3
+ module Live
4
+ type output_audio_fixture_played_event =
5
+ {
6
+ event_id: String,
7
+ ?type: :"session.output_audio.fixture.played",
8
+ ?client_event_id: String
9
+ }
10
+
11
+ class OutputAudioFixturePlayedEvent < OpenAI::Internal::Type::BaseModel
12
+ # The unique ID of the Live server event.
13
+ attr_accessor event_id: String
14
+
15
+ attr_accessor type: :"session.output_audio.fixture.played"
16
+
17
+ # The event_id of the client command associated with this server event, when
18
+ # supplied.
19
+ attr_reader client_event_id: String?
20
+
21
+ # The event_id of the client command associated with this server event, when
22
+ # supplied.
23
+ def client_event_id=: (String) -> String
24
+
25
+ # @param event_id
26
+ # The unique ID of the Live server event.
27
+ # @param client_event_id
28
+ # The event_id of the client command associated with this server event, when
29
+ # supplied.
30
+ def initialize: (
31
+ event_id: String,
32
+ ?client_event_id: String,
33
+ ?type: :"session.output_audio.fixture.played"
34
+ ) -> void
35
+
36
+ def to_hash: -> {
37
+ event_id: String,
38
+ ?type: :"session.output_audio.fixture.played",
39
+ ?client_event_id: String
40
+ }
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,44 @@
1
+ module OpenAI
2
+ module Models
3
+ module Live
4
+ type output_audio_fixture_playing_event =
5
+ {
6
+ event_id: String,
7
+ ?type: :"session.output_audio.fixture.playing",
8
+ ?client_event_id: String
9
+ }
10
+
11
+ class OutputAudioFixturePlayingEvent < OpenAI::Internal::Type::BaseModel
12
+ # The unique ID of the Live server event.
13
+ attr_accessor event_id: String
14
+
15
+ attr_accessor type: :"session.output_audio.fixture.playing"
16
+
17
+ # The event_id of the client command associated with this server event, when
18
+ # supplied.
19
+ attr_reader client_event_id: String?
20
+
21
+ # The event_id of the client command associated with this server event, when
22
+ # supplied.
23
+ def client_event_id=: (String) -> String
24
+
25
+ # @param event_id
26
+ # The unique ID of the Live server event.
27
+ # @param client_event_id
28
+ # The event_id of the client command associated with this server event, when
29
+ # supplied.
30
+ def initialize: (
31
+ event_id: String,
32
+ ?client_event_id: String,
33
+ ?type: :"session.output_audio.fixture.playing"
34
+ ) -> void
35
+
36
+ def to_hash: -> {
37
+ event_id: String,
38
+ ?type: :"session.output_audio.fixture.playing",
39
+ ?client_event_id: String
40
+ }
41
+ end
42
+ end
43
+ end
44
+ end
@@ -6,6 +6,8 @@ module OpenAI
6
6
  | OpenAI::Live::SessionUpdatedEvent
7
7
  | OpenAI::Live::InputAudioMutedEvent
8
8
  | OpenAI::Live::InputAudioUnmutedEvent
9
+ | OpenAI::Live::OutputAudioFixturePlayingEvent
10
+ | OpenAI::Live::OutputAudioFixturePlayedEvent
9
11
  | OpenAI::Live::InstructionsAppendedEvent
10
12
  | OpenAI::Live::ThinkingAppendedEvent
11
13
  | OpenAI::Live::CommentaryAppendedEvent
@@ -14,6 +16,9 @@ module OpenAI
14
16
  | OpenAI::Live::InputTranscriptDeltaEvent
15
17
  | OpenAI::Live::OutputTranscriptDeltaEvent
16
18
  | OpenAI::Live::DelegationCreatedEvent
19
+ | OpenAI::Live::DecisionEvent
20
+ | OpenAI::Live::DecisionItemCreatedEvent
21
+ | OpenAI::Live::DecisionItemDeletedEvent
17
22
  | OpenAI::Live::ResponseEvent
18
23
  | OpenAI::Live::SessionUsageUpdatedEvent
19
24
  | OpenAI::Live::SessionClosedEvent
@@ -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