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
@@ -0,0 +1,234 @@
1
+ module OpenAI
2
+ module Models
3
+ module Live
4
+ type decision_trigger =
5
+ {
6
+ decisions: OpenAI::Live::DecisionTrigger::Decisions,
7
+ event_type: OpenAI::Models::Live::DecisionTrigger::event_type,
8
+ ?type: :decisions
9
+ }
10
+
11
+ class DecisionTrigger < OpenAI::Internal::Type::BaseModel
12
+ # Questions evaluated using the current transcript and the session's shared
13
+ # Decision items.
14
+ attr_accessor decisions: OpenAI::Live::DecisionTrigger::Decisions
15
+
16
+ attr_accessor event_type: OpenAI::Models::Live::DecisionTrigger::event_type
17
+
18
+ attr_accessor type: :decisions
19
+
20
+ # @param decisions
21
+ # Questions evaluated using the current transcript and the session's shared
22
+ # Decision items.
23
+ def initialize: (
24
+ decisions: OpenAI::Live::DecisionTrigger::Decisions,
25
+ event_type: OpenAI::Models::Live::DecisionTrigger::event_type,
26
+ ?type: :decisions
27
+ ) -> void
28
+
29
+ def to_hash: -> {
30
+ decisions: OpenAI::Live::DecisionTrigger::Decisions,
31
+ event_type: OpenAI::Models::Live::DecisionTrigger::event_type,
32
+ ?type: :decisions
33
+ }
34
+
35
+ type decisions =
36
+ {
37
+ questions: ::Array[OpenAI::Models::Live::DecisionTrigger::Decisions::question]
38
+ }
39
+
40
+ class Decisions < OpenAI::Internal::Type::BaseModel
41
+ # Native Decision API questions evaluated together, in order.
42
+ attr_accessor questions: ::Array[OpenAI::Models::Live::DecisionTrigger::Decisions::question]
43
+
44
+ # @param questions
45
+ # Native Decision API questions evaluated together, in order.
46
+ def initialize: (
47
+ questions: ::Array[OpenAI::Models::Live::DecisionTrigger::Decisions::question]
48
+ ) -> void
49
+
50
+ def to_hash: -> {
51
+ questions: ::Array[OpenAI::Models::Live::DecisionTrigger::Decisions::question]
52
+ }
53
+
54
+ type question =
55
+ OpenAI::Live::DecisionTrigger::Decisions::Question::Predicate
56
+ | OpenAI::Live::DecisionTrigger::Decisions::Question::Choice
57
+ | OpenAI::Live::DecisionTrigger::Decisions::Question::Score
58
+
59
+ module Question
60
+ extend OpenAI::Internal::Type::Union
61
+
62
+ type predicate =
63
+ { instructions: String, ?type: :predicate, ?name: String }
64
+
65
+ class Predicate < OpenAI::Internal::Type::BaseModel
66
+ attr_accessor instructions: String
67
+
68
+ # The type of the object. Always `predicate`.
69
+ attr_accessor type: :predicate
70
+
71
+ attr_reader name: String?
72
+
73
+ def name=: (String) -> String
74
+
75
+ # @param type
76
+ # The type of the object. Always `predicate`.
77
+ def initialize: (
78
+ instructions: String,
79
+ ?name: String,
80
+ ?type: :predicate
81
+ ) -> void
82
+
83
+ def to_hash: -> {
84
+ instructions: String,
85
+ ?type: :predicate,
86
+ ?name: String
87
+ }
88
+ end
89
+
90
+ type choice =
91
+ {
92
+ choices: ::Array[OpenAI::Live::DecisionTrigger::Decisions::Question::Choice::Choice],
93
+ instructions: String,
94
+ ?type: :choice,
95
+ ?name: String
96
+ }
97
+
98
+ class Choice < OpenAI::Internal::Type::BaseModel
99
+ # Provide between 2 and 255 choices. Each choice must be unique.
100
+ attr_accessor choices: ::Array[OpenAI::Live::DecisionTrigger::Decisions::Question::Choice::Choice]
101
+
102
+ attr_accessor instructions: String
103
+
104
+ # The type of the object. Always `choice`.
105
+ attr_accessor type: :choice
106
+
107
+ attr_reader name: String?
108
+
109
+ def name=: (String) -> String
110
+
111
+ # @param choices
112
+ # Provide between 2 and 255 choices. Each choice must be unique.
113
+ # @param type
114
+ # The type of the object. Always `choice`.
115
+ def initialize: (
116
+ choices: ::Array[OpenAI::Live::DecisionTrigger::Decisions::Question::Choice::Choice],
117
+ instructions: String,
118
+ ?name: String,
119
+ ?type: :choice
120
+ ) -> void
121
+
122
+ def to_hash: -> {
123
+ choices: ::Array[OpenAI::Live::DecisionTrigger::Decisions::Question::Choice::Choice],
124
+ instructions: String,
125
+ ?type: :choice,
126
+ ?name: String
127
+ }
128
+
129
+ type choice =
130
+ {
131
+ value: OpenAI::Models::Live::DecisionTrigger::Decisions::Question::Choice::Choice::value,
132
+ ?description: String
133
+ }
134
+
135
+ class Choice < OpenAI::Internal::Type::BaseModel
136
+ # Choice values are typed: a string and a boolean with the same text are distinct.
137
+ attr_accessor value: OpenAI::Models::Live::DecisionTrigger::Decisions::Question::Choice::Choice::value
138
+
139
+ attr_reader description: String?
140
+
141
+ def description=: (String) -> String
142
+
143
+ # @param value
144
+ # Choice values are typed: a string and a boolean with the same text are distinct.
145
+ def initialize: (
146
+ value: OpenAI::Models::Live::DecisionTrigger::Decisions::Question::Choice::Choice::value,
147
+ ?description: String
148
+ ) -> void
149
+
150
+ def to_hash: -> {
151
+ value: OpenAI::Models::Live::DecisionTrigger::Decisions::Question::Choice::Choice::value,
152
+ ?description: String
153
+ }
154
+
155
+ type value = String | bool
156
+
157
+ module Value
158
+ extend OpenAI::Internal::Type::Union
159
+
160
+ def self?.variants: -> ::Array[OpenAI::Models::Live::DecisionTrigger::Decisions::Question::Choice::Choice::value]
161
+ end
162
+ end
163
+ end
164
+
165
+ type score =
166
+ {
167
+ instructions: String,
168
+ levels: ::Array[OpenAI::Live::DecisionTrigger::Decisions::Question::Score::Level],
169
+ ?type: :score,
170
+ ?name: String
171
+ }
172
+
173
+ class Score < OpenAI::Internal::Type::BaseModel
174
+ attr_accessor instructions: String
175
+
176
+ attr_accessor levels: ::Array[OpenAI::Live::DecisionTrigger::Decisions::Question::Score::Level]
177
+
178
+ # The type of the object. Always `score`.
179
+ attr_accessor type: :score
180
+
181
+ attr_reader name: String?
182
+
183
+ def name=: (String) -> String
184
+
185
+ # @param type
186
+ # The type of the object. Always `score`.
187
+ def initialize: (
188
+ instructions: String,
189
+ levels: ::Array[OpenAI::Live::DecisionTrigger::Decisions::Question::Score::Level],
190
+ ?name: String,
191
+ ?type: :score
192
+ ) -> void
193
+
194
+ def to_hash: -> {
195
+ instructions: String,
196
+ levels: ::Array[OpenAI::Live::DecisionTrigger::Decisions::Question::Score::Level],
197
+ ?type: :score,
198
+ ?name: String
199
+ }
200
+
201
+ type level = { label: String, ?description: String }
202
+
203
+ class Level < OpenAI::Internal::Type::BaseModel
204
+ attr_accessor label: String
205
+
206
+ attr_reader description: String?
207
+
208
+ def description=: (String) -> String
209
+
210
+ def initialize: (label: String, ?description: String) -> void
211
+
212
+ def to_hash: -> { label: String, ?description: String }
213
+ end
214
+ end
215
+
216
+ def self?.variants: -> ::Array[OpenAI::Models::Live::DecisionTrigger::Decisions::question]
217
+ end
218
+ end
219
+
220
+ type event_type =
221
+ :"session.input_transcript.delta" | :"session.output_transcript.delta"
222
+
223
+ module EventType
224
+ extend OpenAI::Internal::Type::Enum
225
+
226
+ SESSION_INPUT_TRANSCRIPT_DELTA: :"session.input_transcript.delta"
227
+ SESSION_OUTPUT_TRANSCRIPT_DELTA: :"session.output_transcript.delta"
228
+
229
+ def self?.values: -> ::Array[OpenAI::Models::Live::DecisionTrigger::event_type]
230
+ end
231
+ end
232
+ end
233
+ end
234
+ end
@@ -0,0 +1,195 @@
1
+ module OpenAI
2
+ module Models
3
+ module Live
4
+ type decisions_delegation_config =
5
+ {
6
+ model: String,
7
+ questions: ::Array[OpenAI::Models::Live::DecisionsDelegationConfig::question]
8
+ }
9
+
10
+ class DecisionsDelegationConfig < OpenAI::Internal::Type::BaseModel
11
+ attr_accessor model: String
12
+
13
+ # Native Decision API questions evaluated together, in order.
14
+ attr_accessor questions: ::Array[OpenAI::Models::Live::DecisionsDelegationConfig::question]
15
+
16
+ # @param questions
17
+ # Native Decision API questions evaluated together, in order.
18
+ def initialize: (
19
+ model: String,
20
+ questions: ::Array[OpenAI::Models::Live::DecisionsDelegationConfig::question]
21
+ ) -> void
22
+
23
+ def to_hash: -> {
24
+ model: String,
25
+ questions: ::Array[OpenAI::Models::Live::DecisionsDelegationConfig::question]
26
+ }
27
+
28
+ type question =
29
+ OpenAI::Live::DecisionsDelegationConfig::Question::Predicate
30
+ | OpenAI::Live::DecisionsDelegationConfig::Question::Choice
31
+ | OpenAI::Live::DecisionsDelegationConfig::Question::Score
32
+
33
+ module Question
34
+ extend OpenAI::Internal::Type::Union
35
+
36
+ type predicate =
37
+ { instructions: String, ?type: :predicate, ?name: String }
38
+
39
+ class Predicate < OpenAI::Internal::Type::BaseModel
40
+ attr_accessor instructions: String
41
+
42
+ # The type of the object. Always `predicate`.
43
+ attr_accessor type: :predicate
44
+
45
+ attr_reader name: String?
46
+
47
+ def name=: (String) -> String
48
+
49
+ # @param type
50
+ # The type of the object. Always `predicate`.
51
+ def initialize: (
52
+ instructions: String,
53
+ ?name: String,
54
+ ?type: :predicate
55
+ ) -> void
56
+
57
+ def to_hash: -> {
58
+ instructions: String,
59
+ ?type: :predicate,
60
+ ?name: String
61
+ }
62
+ end
63
+
64
+ type choice =
65
+ {
66
+ choices: ::Array[OpenAI::Live::DecisionsDelegationConfig::Question::Choice::Choice],
67
+ instructions: String,
68
+ ?type: :choice,
69
+ ?name: String
70
+ }
71
+
72
+ class Choice < OpenAI::Internal::Type::BaseModel
73
+ # Provide between 2 and 255 choices. Each choice must be unique.
74
+ attr_accessor choices: ::Array[OpenAI::Live::DecisionsDelegationConfig::Question::Choice::Choice]
75
+
76
+ attr_accessor instructions: String
77
+
78
+ # The type of the object. Always `choice`.
79
+ attr_accessor type: :choice
80
+
81
+ attr_reader name: String?
82
+
83
+ def name=: (String) -> String
84
+
85
+ # @param choices
86
+ # Provide between 2 and 255 choices. Each choice must be unique.
87
+ # @param type
88
+ # The type of the object. Always `choice`.
89
+ def initialize: (
90
+ choices: ::Array[OpenAI::Live::DecisionsDelegationConfig::Question::Choice::Choice],
91
+ instructions: String,
92
+ ?name: String,
93
+ ?type: :choice
94
+ ) -> void
95
+
96
+ def to_hash: -> {
97
+ choices: ::Array[OpenAI::Live::DecisionsDelegationConfig::Question::Choice::Choice],
98
+ instructions: String,
99
+ ?type: :choice,
100
+ ?name: String
101
+ }
102
+
103
+ type choice =
104
+ {
105
+ value: OpenAI::Models::Live::DecisionsDelegationConfig::Question::Choice::Choice::value,
106
+ ?description: String
107
+ }
108
+
109
+ class Choice < OpenAI::Internal::Type::BaseModel
110
+ # Choice values are typed: a string and a boolean with the same text are distinct.
111
+ attr_accessor value: OpenAI::Models::Live::DecisionsDelegationConfig::Question::Choice::Choice::value
112
+
113
+ attr_reader description: String?
114
+
115
+ def description=: (String) -> String
116
+
117
+ # @param value
118
+ # Choice values are typed: a string and a boolean with the same text are distinct.
119
+ def initialize: (
120
+ value: OpenAI::Models::Live::DecisionsDelegationConfig::Question::Choice::Choice::value,
121
+ ?description: String
122
+ ) -> void
123
+
124
+ def to_hash: -> {
125
+ value: OpenAI::Models::Live::DecisionsDelegationConfig::Question::Choice::Choice::value,
126
+ ?description: String
127
+ }
128
+
129
+ type value = String | bool
130
+
131
+ module Value
132
+ extend OpenAI::Internal::Type::Union
133
+
134
+ def self?.variants: -> ::Array[OpenAI::Models::Live::DecisionsDelegationConfig::Question::Choice::Choice::value]
135
+ end
136
+ end
137
+ end
138
+
139
+ type score =
140
+ {
141
+ instructions: String,
142
+ levels: ::Array[OpenAI::Live::DecisionsDelegationConfig::Question::Score::Level],
143
+ ?type: :score,
144
+ ?name: String
145
+ }
146
+
147
+ class Score < OpenAI::Internal::Type::BaseModel
148
+ attr_accessor instructions: String
149
+
150
+ attr_accessor levels: ::Array[OpenAI::Live::DecisionsDelegationConfig::Question::Score::Level]
151
+
152
+ # The type of the object. Always `score`.
153
+ attr_accessor type: :score
154
+
155
+ attr_reader name: String?
156
+
157
+ def name=: (String) -> String
158
+
159
+ # @param type
160
+ # The type of the object. Always `score`.
161
+ def initialize: (
162
+ instructions: String,
163
+ levels: ::Array[OpenAI::Live::DecisionsDelegationConfig::Question::Score::Level],
164
+ ?name: String,
165
+ ?type: :score
166
+ ) -> void
167
+
168
+ def to_hash: -> {
169
+ instructions: String,
170
+ levels: ::Array[OpenAI::Live::DecisionsDelegationConfig::Question::Score::Level],
171
+ ?type: :score,
172
+ ?name: String
173
+ }
174
+
175
+ type level = { label: String, ?description: String }
176
+
177
+ class Level < OpenAI::Internal::Type::BaseModel
178
+ attr_accessor label: String
179
+
180
+ attr_reader description: String?
181
+
182
+ def description=: (String) -> String
183
+
184
+ def initialize: (label: String, ?description: String) -> void
185
+
186
+ def to_hash: -> { label: String, ?description: String }
187
+ end
188
+ end
189
+
190
+ def self?.variants: -> ::Array[OpenAI::Models::Live::DecisionsDelegationConfig::question]
191
+ end
192
+ end
193
+ end
194
+ end
195
+ end
@@ -0,0 +1,202 @@
1
+ module OpenAI
2
+ module Models
3
+ module Live
4
+ type decisions_delegation_update_config =
5
+ {
6
+ ?model: String,
7
+ ?questions: ::Array[OpenAI::Models::Live::DecisionsDelegationUpdateConfig::question]
8
+ }
9
+
10
+ class DecisionsDelegationUpdateConfig < OpenAI::Internal::Type::BaseModel
11
+ attr_reader model: String?
12
+
13
+ def model=: (String) -> String
14
+
15
+ # Native Decision API questions evaluated together, in order.
16
+ attr_reader questions: ::Array[OpenAI::Models::Live::DecisionsDelegationUpdateConfig::question]?
17
+
18
+ # Native Decision API questions evaluated together, in order.
19
+ def questions=: (
20
+ ::Array[OpenAI::Models::Live::DecisionsDelegationUpdateConfig::question]
21
+ ) -> ::Array[OpenAI::Models::Live::DecisionsDelegationUpdateConfig::question]
22
+
23
+ # @param questions
24
+ # Native Decision API questions evaluated together, in order.
25
+ def initialize: (
26
+ ?model: String,
27
+ ?questions: ::Array[OpenAI::Models::Live::DecisionsDelegationUpdateConfig::question]
28
+ ) -> void
29
+
30
+ def to_hash: -> {
31
+ ?model: String,
32
+ ?questions: ::Array[OpenAI::Models::Live::DecisionsDelegationUpdateConfig::question]
33
+ }
34
+
35
+ type question =
36
+ OpenAI::Live::DecisionsDelegationUpdateConfig::Question::Predicate
37
+ | OpenAI::Live::DecisionsDelegationUpdateConfig::Question::Choice
38
+ | OpenAI::Live::DecisionsDelegationUpdateConfig::Question::Score
39
+
40
+ module Question
41
+ extend OpenAI::Internal::Type::Union
42
+
43
+ type predicate =
44
+ { instructions: String, ?type: :predicate, ?name: String }
45
+
46
+ class Predicate < OpenAI::Internal::Type::BaseModel
47
+ attr_accessor instructions: String
48
+
49
+ # The type of the object. Always `predicate`.
50
+ attr_accessor type: :predicate
51
+
52
+ attr_reader name: String?
53
+
54
+ def name=: (String) -> String
55
+
56
+ # @param type
57
+ # The type of the object. Always `predicate`.
58
+ def initialize: (
59
+ instructions: String,
60
+ ?name: String,
61
+ ?type: :predicate
62
+ ) -> void
63
+
64
+ def to_hash: -> {
65
+ instructions: String,
66
+ ?type: :predicate,
67
+ ?name: String
68
+ }
69
+ end
70
+
71
+ type choice =
72
+ {
73
+ choices: ::Array[OpenAI::Live::DecisionsDelegationUpdateConfig::Question::Choice::Choice],
74
+ instructions: String,
75
+ ?type: :choice,
76
+ ?name: String
77
+ }
78
+
79
+ class Choice < OpenAI::Internal::Type::BaseModel
80
+ # Provide between 2 and 255 choices. Each choice must be unique.
81
+ attr_accessor choices: ::Array[OpenAI::Live::DecisionsDelegationUpdateConfig::Question::Choice::Choice]
82
+
83
+ attr_accessor instructions: String
84
+
85
+ # The type of the object. Always `choice`.
86
+ attr_accessor type: :choice
87
+
88
+ attr_reader name: String?
89
+
90
+ def name=: (String) -> String
91
+
92
+ # @param choices
93
+ # Provide between 2 and 255 choices. Each choice must be unique.
94
+ # @param type
95
+ # The type of the object. Always `choice`.
96
+ def initialize: (
97
+ choices: ::Array[OpenAI::Live::DecisionsDelegationUpdateConfig::Question::Choice::Choice],
98
+ instructions: String,
99
+ ?name: String,
100
+ ?type: :choice
101
+ ) -> void
102
+
103
+ def to_hash: -> {
104
+ choices: ::Array[OpenAI::Live::DecisionsDelegationUpdateConfig::Question::Choice::Choice],
105
+ instructions: String,
106
+ ?type: :choice,
107
+ ?name: String
108
+ }
109
+
110
+ type choice =
111
+ {
112
+ value: OpenAI::Models::Live::DecisionsDelegationUpdateConfig::Question::Choice::Choice::value,
113
+ ?description: String
114
+ }
115
+
116
+ class Choice < OpenAI::Internal::Type::BaseModel
117
+ # Choice values are typed: a string and a boolean with the same text are distinct.
118
+ attr_accessor value: OpenAI::Models::Live::DecisionsDelegationUpdateConfig::Question::Choice::Choice::value
119
+
120
+ attr_reader description: String?
121
+
122
+ def description=: (String) -> String
123
+
124
+ # @param value
125
+ # Choice values are typed: a string and a boolean with the same text are distinct.
126
+ def initialize: (
127
+ value: OpenAI::Models::Live::DecisionsDelegationUpdateConfig::Question::Choice::Choice::value,
128
+ ?description: String
129
+ ) -> void
130
+
131
+ def to_hash: -> {
132
+ value: OpenAI::Models::Live::DecisionsDelegationUpdateConfig::Question::Choice::Choice::value,
133
+ ?description: String
134
+ }
135
+
136
+ type value = String | bool
137
+
138
+ module Value
139
+ extend OpenAI::Internal::Type::Union
140
+
141
+ def self?.variants: -> ::Array[OpenAI::Models::Live::DecisionsDelegationUpdateConfig::Question::Choice::Choice::value]
142
+ end
143
+ end
144
+ end
145
+
146
+ type score =
147
+ {
148
+ instructions: String,
149
+ levels: ::Array[OpenAI::Live::DecisionsDelegationUpdateConfig::Question::Score::Level],
150
+ ?type: :score,
151
+ ?name: String
152
+ }
153
+
154
+ class Score < OpenAI::Internal::Type::BaseModel
155
+ attr_accessor instructions: String
156
+
157
+ attr_accessor levels: ::Array[OpenAI::Live::DecisionsDelegationUpdateConfig::Question::Score::Level]
158
+
159
+ # The type of the object. Always `score`.
160
+ attr_accessor type: :score
161
+
162
+ attr_reader name: String?
163
+
164
+ def name=: (String) -> String
165
+
166
+ # @param type
167
+ # The type of the object. Always `score`.
168
+ def initialize: (
169
+ instructions: String,
170
+ levels: ::Array[OpenAI::Live::DecisionsDelegationUpdateConfig::Question::Score::Level],
171
+ ?name: String,
172
+ ?type: :score
173
+ ) -> void
174
+
175
+ def to_hash: -> {
176
+ instructions: String,
177
+ levels: ::Array[OpenAI::Live::DecisionsDelegationUpdateConfig::Question::Score::Level],
178
+ ?type: :score,
179
+ ?name: String
180
+ }
181
+
182
+ type level = { label: String, ?description: String }
183
+
184
+ class Level < OpenAI::Internal::Type::BaseModel
185
+ attr_accessor label: String
186
+
187
+ attr_reader description: String?
188
+
189
+ def description=: (String) -> String
190
+
191
+ def initialize: (label: String, ?description: String) -> void
192
+
193
+ def to_hash: -> { label: String, ?description: String }
194
+ end
195
+ end
196
+
197
+ def self?.variants: -> ::Array[OpenAI::Models::Live::DecisionsDelegationUpdateConfig::question]
198
+ end
199
+ end
200
+ end
201
+ end
202
+ end
@@ -72,11 +72,10 @@ module OpenAI
72
72
 
73
73
  class Delegation < OpenAI::Internal::Type::BaseModel
74
74
  # The unique ID of the delegation. Use this as delegation_id when replying to
75
- # client-owned work or correlating Responses events.
75
+ # client-owned work or correlating backend events.
76
76
  attr_accessor id: String
77
77
 
78
- # Where the Live model delegated the work: `client` for your application, or
79
- # `responses` for the configured Responses backend.
78
+ # Where the Live model delegated the work: `client`, `responses`, or `decisions`.
80
79
  attr_accessor target: OpenAI::Models::Live::DelegationCreatedEvent::Delegation::target
81
80
 
82
81
  # The object type, always `delegation`.
@@ -92,10 +91,9 @@ module OpenAI
92
91
 
93
92
  # @param id
94
93
  # The unique ID of the delegation. Use this as delegation_id when replying to
95
- # client-owned work or correlating Responses events.
94
+ # client-owned work or correlating backend events.
96
95
  # @param target
97
- # Where the Live model delegated the work: `client` for your application, or
98
- # `responses` for the configured Responses backend.
96
+ # Where the Live model delegated the work: `client`, `responses`, or `decisions`.
99
97
  # @param response_id
100
98
  # The ID of the Responses API response associated with a Responses delegation.
101
99
  # Omitted for client delegations.
@@ -115,7 +113,7 @@ module OpenAI
115
113
  ?response_id: String
116
114
  }
117
115
 
118
- type target = :client | :responses
116
+ type target = :client | :responses | :decisions
119
117
 
120
118
  module Target
121
119
  extend OpenAI::Internal::Type::Union
@@ -124,6 +122,7 @@ module OpenAI
124
122
 
125
123
  CLIENT: :client
126
124
  RESPONSES: :responses
125
+ DECISIONS: :decisions
127
126
  end
128
127
  end
129
128
  end
@@ -7,9 +7,13 @@ module OpenAI
7
7
  | OpenAI::Live::InputAudioAppendEvent
8
8
  | OpenAI::Live::InputAudioMuteEvent
9
9
  | OpenAI::Live::InputAudioUnmuteEvent
10
+ | OpenAI::Live::OutputAudioFixturePlayEvent
10
11
  | OpenAI::Live::InstructionsAppendEvent
11
12
  | OpenAI::Live::ThinkingAppendEvent
12
13
  | OpenAI::Live::CommentaryAppendEvent
14
+ | OpenAI::Live::DecisionCreateEvent
15
+ | OpenAI::Live::DecisionItemCreateEvent
16
+ | OpenAI::Live::DecisionItemDeleteEvent
13
17
  | OpenAI::Live::ResponseItemCreateEvent
14
18
  | OpenAI::Live::ResponseCreateEvent
15
19
  | OpenAI::Live::SessionCloseEvent