openai 0.103.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 (395) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +81 -0
  3. data/README.md +23 -1
  4. data/lib/openai/client.rb +3 -386
  5. data/lib/openai/helpers/admin/organization/projects/api_keys.rb +42 -0
  6. data/lib/openai/helpers/agents/session_stream_resource.rb +60 -0
  7. data/lib/openai/helpers/beta/agents/artifacts.rb +18 -0
  8. data/lib/openai/helpers/beta/agents/files.rb +41 -0
  9. data/lib/openai/helpers/client_runtime.rb +391 -0
  10. data/lib/openai/helpers/files.rb +47 -0
  11. data/lib/openai/helpers/live/websocket.rb +8 -57
  12. data/lib/openai/helpers/models/chat/parsed.rb +32 -0
  13. data/lib/openai/helpers/models/responses/parsed.rb +30 -0
  14. data/lib/openai/helpers/models/responses/response.rb +32 -0
  15. data/lib/openai/helpers/models/webhooks/webhook_endpoint_with_secret.rb +20 -0
  16. data/lib/openai/helpers/realtime/client_extension.rb +1 -2
  17. data/lib/openai/helpers/realtime/connection_manager.rb +1 -1
  18. data/lib/openai/helpers/realtime/translation.rb +7 -50
  19. data/lib/openai/helpers/responses_websocket/client_extension.rb +1 -2
  20. data/lib/openai/helpers/streaming/chat_completion_resource.rb +36 -0
  21. data/lib/openai/helpers/streaming/response_stream.rb +1 -16
  22. data/lib/openai/helpers/streaming/response_stream_resource.rb +78 -0
  23. data/lib/openai/helpers/vector_stores/file_batches.rb +188 -0
  24. data/lib/openai/helpers/vector_stores/files.rb +198 -0
  25. data/lib/openai/helpers/websocket/client_request.rb +31 -6
  26. data/lib/openai/helpers/websocket/connection.rb +58 -0
  27. data/lib/openai/helpers/websocket/connection_manager.rb +4 -2
  28. data/lib/openai/helpers/websocket/protocol.rb +2 -1
  29. data/lib/openai/helpers/websocket/resource.rb +54 -0
  30. data/lib/openai/helpers/websocket/typed_connection.rb +95 -0
  31. data/lib/openai/helpers/websocket.rb +4 -0
  32. data/lib/openai/models/admin/organization/audit_log_list_response.rb +5 -3
  33. data/lib/openai/models/admin/organization/external_storage_configuration.rb +5 -3
  34. data/lib/openai/models/admin/organization/external_storage_create_params.rb +33 -3
  35. data/lib/openai/models/admin/organization/oci_external_storage_provider.rb +37 -0
  36. data/lib/openai/models/admin/organization/project_residency.rb +3 -0
  37. data/lib/openai/models/admin/organization/projects/api_key_update_params.rb +64 -0
  38. data/lib/openai/models/admin/organization/projects/api_key_update_scopes_params.rb +34 -0
  39. data/lib/openai/models/admin/organization/usage_decisions_params.rb +177 -0
  40. data/lib/openai/models/admin/organization/usage_decisions_response.rb +351 -0
  41. data/lib/openai/models/audio/speech_create_params.rb +6 -3
  42. data/lib/openai/models/audio/translation_create_response.rb +0 -1
  43. data/lib/openai/models/audio/voice.rb +17 -2
  44. data/lib/openai/models/audio/voice_create_params.rb +100 -3
  45. data/lib/openai/models/beta/agent_create_params.rb +4 -2
  46. data/lib/openai/models/beta/agent_list_params.rb +4 -4
  47. data/lib/openai/models/beta/agent_session.rb +37 -1
  48. data/lib/openai/models/beta/agent_update_params.rb +4 -2
  49. data/lib/openai/models/beta/agents/environment_list_params.rb +7 -7
  50. data/lib/openai/models/beta/agents/session_create_params.rb +39 -3
  51. data/lib/openai/models/beta/agents/session_list_params.rb +7 -10
  52. data/lib/openai/models/beta/agents/session_update_params.rb +33 -1
  53. data/lib/openai/models/beta/agents/sessions/artifact_list_params.rb +11 -11
  54. data/lib/openai/models/beta/agents/vault_list_params.rb +23 -13
  55. data/lib/openai/models/beta/agents/vault_status_filter.rb +1 -3
  56. data/lib/openai/models/beta/agents/vault_update_params.rb +47 -0
  57. data/lib/openai/models/beta/agents/vaults/credential_list_params.rb +23 -13
  58. data/lib/openai/models/beta/beta_response.rb +23 -2
  59. data/lib/openai/models/beta/beta_response_error.rb +19 -1
  60. data/lib/openai/models/beta/beta_response_input_item.rb +107 -1
  61. data/lib/openai/models/beta/beta_response_item.rb +107 -1
  62. data/lib/openai/models/beta/beta_response_output_item.rb +107 -1
  63. data/lib/openai/models/beta/beta_responses_client_event.rb +23 -2
  64. data/lib/openai/models/beta/response_compact_params.rb +21 -0
  65. data/lib/openai/models/beta/response_create_params.rb +23 -2
  66. data/lib/openai/models/beta/session_turn_error.rb +3 -0
  67. data/lib/openai/models/chat/chat_completion_audio_param.rb +3 -3
  68. data/lib/openai/models/chat/chat_completion_message.rb +0 -8
  69. data/lib/openai/models/chat/chat_completion_message_function_tool_call.rb +0 -8
  70. data/lib/openai/models/chat/completion_create_params.rb +5 -12
  71. data/lib/openai/models/chat_model.rb +21 -0
  72. data/lib/openai/models/conversations/conversation_item.rb +107 -1
  73. data/lib/openai/models/decision.rb +17 -2
  74. data/lib/openai/models/decision_create_params.rb +29 -12
  75. data/lib/openai/models/decision_input_image.rb +4 -3
  76. data/lib/openai/models/decision_input_message.rb +4 -4
  77. data/lib/openai/models/decision_input_part.rb +3 -2
  78. data/lib/openai/models/image_edit_completed_event.rb +1 -2
  79. data/lib/openai/models/image_edit_partial_image_event.rb +1 -2
  80. data/lib/openai/models/image_gen_completed_event.rb +1 -2
  81. data/lib/openai/models/image_gen_partial_image_event.rb +1 -2
  82. data/lib/openai/models/images_response.rb +1 -2
  83. data/lib/openai/models/live/built_in_voice.rb +1 -0
  84. data/lib/openai/models/live/client_event.rb +14 -2
  85. data/lib/openai/models/live/decision_create_event.rb +26 -0
  86. data/lib/openai/models/live/decision_event.rb +117 -0
  87. data/lib/openai/models/live/decision_item_create_event.rb +194 -0
  88. data/lib/openai/models/live/decision_item_created_event.rb +202 -0
  89. data/lib/openai/models/live/decision_item_delete_event.rb +38 -0
  90. data/lib/openai/models/live/decision_item_deleted_event.rb +46 -0
  91. data/lib/openai/models/live/decision_trigger.rb +244 -0
  92. data/lib/openai/models/live/decisions_delegation_config.rb +201 -0
  93. data/lib/openai/models/live/decisions_delegation_update_config.rb +208 -0
  94. data/lib/openai/models/live/delegation_created_event.rb +10 -10
  95. data/lib/openai/models/live/fork_client_event.rb +14 -2
  96. data/lib/openai/models/live/fork_server_event.rb +17 -2
  97. data/lib/openai/models/live/media_session_config.rb +47 -11
  98. data/lib/openai/models/live/output_audio_fixture_play_event.rb +48 -0
  99. data/lib/openai/models/live/output_audio_fixture_played_event.rb +42 -0
  100. data/lib/openai/models/live/output_audio_fixture_playing_event.rb +41 -0
  101. data/lib/openai/models/live/server_event.rb +17 -2
  102. data/lib/openai/models/live/session_accept_params.rb +47 -11
  103. data/lib/openai/models/live/session_config.rb +47 -11
  104. data/lib/openai/models/live/session_resource.rb +47 -11
  105. data/lib/openai/models/live/session_update_config.rb +38 -6
  106. data/lib/openai/models/live/session_update_event.rb +8 -8
  107. data/lib/openai/models/live/sideband_client_event.rb +57 -0
  108. data/lib/openai/models/live/sideband_server_event.rb +78 -0
  109. data/lib/openai/models/realtime/realtime_audio_config_output.rb +6 -3
  110. data/lib/openai/models/realtime/realtime_response_create_audio_output.rb +6 -3
  111. data/lib/openai/models/realtime/realtime_response_status.rb +10 -1
  112. data/lib/openai/models/response_format_json_schema.rb +1 -1
  113. data/lib/openai/models/responses/function_tool.rb +8 -6
  114. data/lib/openai/models/responses/response.rb +2 -23
  115. data/lib/openai/models/responses/response_compact_params.rb +21 -0
  116. data/lib/openai/models/responses/response_create_params.rb +3 -6
  117. data/lib/openai/models/responses/response_error.rb +19 -1
  118. data/lib/openai/models/responses/response_format_text_config.rb +0 -4
  119. data/lib/openai/models/responses/response_function_tool_call.rb +0 -8
  120. data/lib/openai/models/responses/response_input_item.rb +107 -1
  121. data/lib/openai/models/responses/response_item.rb +107 -1
  122. data/lib/openai/models/responses/response_output_item.rb +107 -1
  123. data/lib/openai/models/responses/response_output_text.rb +0 -8
  124. data/lib/openai/models/responses/responses_client_event.rb +2 -2
  125. data/lib/openai/models/safety/safety_alert.rb +12 -1
  126. data/lib/openai/models/video_create_error.rb +19 -1
  127. data/lib/openai/models/webhooks/unwrap_webhook_event.rb +4 -4
  128. data/lib/openai/models/webhooks/webhook_endpoint_with_secret.rb +0 -9
  129. data/lib/openai/resources/admin/organization/external_storage.rb +1 -1
  130. data/lib/openai/resources/admin/organization/projects/api_keys.rb +61 -0
  131. data/lib/openai/resources/admin/organization/usage.rb +67 -0
  132. data/lib/openai/resources/audio/speech.rb +2 -1
  133. data/lib/openai/resources/audio/voices.rb +10 -10
  134. data/lib/openai/resources/beta/agents/environments/files.rb +3 -31
  135. data/lib/openai/resources/beta/agents/environments.rb +3 -3
  136. data/lib/openai/resources/beta/agents/sessions/artifacts.rb +5 -11
  137. data/lib/openai/resources/beta/agents/sessions.rb +20 -56
  138. data/lib/openai/resources/beta/agents/vaults/credentials.rb +10 -6
  139. data/lib/openai/resources/beta/agents/vaults.rb +45 -6
  140. data/lib/openai/resources/beta/agents.rb +6 -4
  141. data/lib/openai/resources/beta/responses.rb +2 -2
  142. data/lib/openai/resources/chat/completions.rb +11 -37
  143. data/lib/openai/resources/decisions.rb +9 -15
  144. data/lib/openai/resources/files.rb +0 -39
  145. data/lib/openai/resources/live/forks.rb +19 -0
  146. data/lib/openai/resources/live/sideband.rb +19 -0
  147. data/lib/openai/resources/live.rb +19 -0
  148. data/lib/openai/resources/realtime/translations.rb +19 -0
  149. data/lib/openai/resources/realtime.rb +19 -0
  150. data/lib/openai/resources/responses.rb +44 -95
  151. data/lib/openai/resources/vector_stores/file_batches.rb +0 -178
  152. data/lib/openai/resources/vector_stores/files.rb +0 -188
  153. data/lib/openai/resources/webhooks.rb +13 -29
  154. data/lib/openai/version.rb +1 -1
  155. data/lib/openai.rb +31 -0
  156. data/rbi/openai/client.rbi +0 -103
  157. data/rbi/openai/helpers/admin/organization/projects/api_keys.rbi +25 -0
  158. data/rbi/openai/helpers/beta/agents/artifacts.rbi +25 -0
  159. data/rbi/openai/helpers/beta/agents/files.rbi +48 -0
  160. data/rbi/openai/helpers/client_runtime.rbi +108 -0
  161. data/rbi/openai/helpers/files.rbi +25 -0
  162. data/rbi/openai/helpers/models/chat/parsed.rbi +21 -0
  163. data/rbi/openai/helpers/models/responses/parsed.rbi +19 -0
  164. data/rbi/openai/helpers/models/responses/response.rbi +15 -0
  165. data/rbi/openai/helpers/streaming/response_stream.rbi +301 -0
  166. data/rbi/openai/helpers/vector_stores/file_batches.rbi +102 -0
  167. data/rbi/openai/helpers/vector_stores/files.rbi +122 -0
  168. data/rbi/openai/helpers/websocket.rbi +82 -0
  169. data/rbi/openai/models/admin/organization/audit_log_list_response.rbi +6 -3
  170. data/rbi/openai/models/admin/organization/external_storage_configuration.rbi +4 -2
  171. data/rbi/openai/models/admin/organization/external_storage_create_params.rbi +63 -4
  172. data/rbi/openai/models/admin/organization/oci_external_storage_provider.rbi +71 -0
  173. data/rbi/openai/models/admin/organization/project_residency.rbi +12 -0
  174. data/rbi/openai/models/admin/organization/projects/api_key_update_params.rbi +110 -0
  175. data/rbi/openai/models/admin/organization/projects/api_key_update_scopes_params.rbi +72 -0
  176. data/rbi/openai/models/admin/organization/usage_decisions_params.rbi +229 -0
  177. data/rbi/openai/models/admin/organization/usage_decisions_response.rbi +479 -0
  178. data/rbi/openai/models/audio/speech_create_params.rbi +6 -3
  179. data/rbi/openai/models/audio/voice.rbi +21 -2
  180. data/rbi/openai/models/audio/voice_create_params.rbi +149 -4
  181. data/rbi/openai/models/beta/agent_create_params.rbi +4 -2
  182. data/rbi/openai/models/beta/agent_list_params.rbi +8 -5
  183. data/rbi/openai/models/beta/agent_session.rbi +64 -1
  184. data/rbi/openai/models/beta/agent_update_params.rbi +4 -2
  185. data/rbi/openai/models/beta/agents/environment_list_params.rbi +7 -7
  186. data/rbi/openai/models/beta/agents/session_create_params.rbi +62 -2
  187. data/rbi/openai/models/beta/agents/session_list_params.rbi +11 -11
  188. data/rbi/openai/models/beta/agents/session_update_params.rbi +56 -0
  189. data/rbi/openai/models/beta/agents/sessions/artifact_list_params.rbi +19 -13
  190. data/rbi/openai/models/beta/agents/vault_list_params.rbi +30 -13
  191. data/rbi/openai/models/beta/agents/vault_status_filter.rbi +1 -3
  192. data/rbi/openai/models/beta/agents/vault_update_params.rbi +87 -0
  193. data/rbi/openai/models/beta/agents/vaults/credential_list_params.rbi +30 -13
  194. data/rbi/openai/models/beta/beta_response.rbi +2 -2
  195. data/rbi/openai/models/beta/beta_response_error.rbi +24 -3
  196. data/rbi/openai/models/beta/beta_response_input_item.rbi +191 -0
  197. data/rbi/openai/models/beta/beta_response_item.rbi +189 -0
  198. data/rbi/openai/models/beta/beta_response_output_item.rbi +191 -0
  199. data/rbi/openai/models/beta/beta_responses_client_event.rbi +2 -2
  200. data/rbi/openai/models/beta/response_create_params.rbi +2 -2
  201. data/rbi/openai/models/beta/session_turn_error.rbi +3 -0
  202. data/rbi/openai/models/chat/chat_completion_audio_param.rbi +3 -3
  203. data/rbi/openai/models/chat/chat_completion_message.rbi +0 -4
  204. data/rbi/openai/models/chat/chat_completion_message_function_tool_call.rbi +0 -4
  205. data/rbi/openai/models/chat/completion_create_params.rbi +63 -78
  206. data/rbi/openai/models/conversations/conversation_item.rbi +191 -0
  207. data/rbi/openai/models/decision.rbi +14 -1
  208. data/rbi/openai/models/decision_create_params.rbi +23 -12
  209. data/rbi/openai/models/decision_input_image.rbi +4 -3
  210. data/rbi/openai/models/decision_input_message.rbi +4 -4
  211. data/rbi/openai/models/decision_input_part.rbi +2 -1
  212. data/rbi/openai/models/image_edit_completed_event.rbi +1 -0
  213. data/rbi/openai/models/image_edit_partial_image_event.rbi +1 -0
  214. data/rbi/openai/models/image_gen_completed_event.rbi +1 -0
  215. data/rbi/openai/models/image_gen_partial_image_event.rbi +1 -0
  216. data/rbi/openai/models/images_response.rbi +1 -0
  217. data/rbi/openai/models/live/built_in_voice.rbi +1 -0
  218. data/rbi/openai/models/live/client_event.rbi +4 -0
  219. data/rbi/openai/models/live/decision_create_event.rbi +55 -0
  220. data/rbi/openai/models/live/decision_event.rbi +185 -0
  221. data/rbi/openai/models/live/decision_item_create_event.rbi +338 -0
  222. data/rbi/openai/models/live/decision_item_created_event.rbi +354 -0
  223. data/rbi/openai/models/live/decision_item_delete_event.rbi +66 -0
  224. data/rbi/openai/models/live/decision_item_deleted_event.rbi +77 -0
  225. data/rbi/openai/models/live/decision_trigger.rbi +465 -0
  226. data/rbi/openai/models/live/decisions_delegation_config.rbi +393 -0
  227. data/rbi/openai/models/live/decisions_delegation_update_config.rbi +412 -0
  228. data/rbi/openai/models/live/delegation_created_event.rbi +8 -10
  229. data/rbi/openai/models/live/fork_client_event.rbi +4 -0
  230. data/rbi/openai/models/live/fork_server_event.rbi +5 -0
  231. data/rbi/openai/models/live/media_session_config.rbi +95 -14
  232. data/rbi/openai/models/live/output_audio_fixture_play_event.rbi +76 -0
  233. data/rbi/openai/models/live/output_audio_fixture_played_event.rbi +73 -0
  234. data/rbi/openai/models/live/output_audio_fixture_playing_event.rbi +72 -0
  235. data/rbi/openai/models/live/server_event.rbi +5 -0
  236. data/rbi/openai/models/live/session_accept_params.rbi +88 -12
  237. data/rbi/openai/models/live/session_config.rbi +100 -14
  238. data/rbi/openai/models/live/session_resource.rbi +81 -10
  239. data/rbi/openai/models/live/session_update_config.rbi +86 -9
  240. data/rbi/openai/models/live/session_update_event.rbi +8 -8
  241. data/rbi/openai/models/live/sideband_client_event.rbi +40 -0
  242. data/rbi/openai/models/live/sideband_server_event.rbi +47 -0
  243. data/rbi/openai/models/realtime/realtime_audio_config_output.rbi +6 -3
  244. data/rbi/openai/models/realtime/realtime_response_create_audio_output.rbi +6 -3
  245. data/rbi/openai/models/realtime/realtime_response_status.rbi +13 -1
  246. data/rbi/openai/models/realtime/realtime_translation_input_audio_buffer_append_event.rbi +1 -1
  247. data/rbi/openai/models/realtime/realtime_translation_output_audio_delta_event.rbi +3 -3
  248. data/rbi/openai/models/realtime/realtime_translation_session_close_event.rbi +1 -1
  249. data/rbi/openai/models/realtime/realtime_translation_session_update_event.rbi +5 -1
  250. data/rbi/openai/models/responses/response.rbi +2 -7
  251. data/rbi/openai/models/responses/response_create_params.rbi +5 -9
  252. data/rbi/openai/models/responses/response_error.rbi +24 -3
  253. data/rbi/openai/models/responses/response_function_tool_call.rbi +0 -4
  254. data/rbi/openai/models/responses/response_function_web_search.rbi +21 -17
  255. data/rbi/openai/models/responses/response_input_item.rbi +191 -0
  256. data/rbi/openai/models/responses/response_item.rbi +189 -0
  257. data/rbi/openai/models/responses/response_output_item.rbi +191 -0
  258. data/rbi/openai/models/responses/response_output_text.rbi +0 -4
  259. data/rbi/openai/models/responses/responses_client_event.rbi +2 -2
  260. data/rbi/openai/models/safety/safety_alert.rbi +13 -1
  261. data/rbi/openai/models/video_create_error.rbi +24 -3
  262. data/rbi/openai/models/webhooks/unwrap_webhook_event.rbi +1 -1
  263. data/rbi/openai/resources/admin/organization/external_storage.rbi +2 -1
  264. data/rbi/openai/resources/admin/organization/projects/api_keys.rbi +48 -0
  265. data/rbi/openai/resources/admin/organization/usage.rbi +56 -0
  266. data/rbi/openai/resources/audio/speech.rbi +2 -1
  267. data/rbi/openai/resources/audio/voices.rbi +13 -10
  268. data/rbi/openai/resources/beta/agents/environments/files.rbi +3 -33
  269. data/rbi/openai/resources/beta/agents/environments.rbi +3 -3
  270. data/rbi/openai/resources/beta/agents/sessions/artifacts.rbi +5 -13
  271. data/rbi/openai/resources/beta/agents/sessions.rbi +15 -4
  272. data/rbi/openai/resources/beta/agents/vaults/credentials.rbi +9 -5
  273. data/rbi/openai/resources/beta/agents/vaults.rbi +34 -5
  274. data/rbi/openai/resources/beta/agents.rbi +6 -4
  275. data/rbi/openai/resources/beta/responses.rbi +2 -2
  276. data/rbi/openai/resources/chat/completions.rbi +26 -29
  277. data/rbi/openai/resources/decisions.rbi +9 -15
  278. data/rbi/openai/resources/files.rbi +0 -18
  279. data/rbi/openai/resources/live/forks.rbi +17 -0
  280. data/rbi/openai/resources/live/sideband.rbi +17 -0
  281. data/rbi/openai/resources/live.rbi +17 -0
  282. data/rbi/openai/resources/realtime/translations.rbi +17 -0
  283. data/rbi/openai/resources/realtime.rbi +17 -0
  284. data/rbi/openai/resources/responses.rbi +41 -333
  285. data/rbi/openai/resources/vector_stores/file_batches.rbi +0 -93
  286. data/rbi/openai/resources/vector_stores/files.rbi +0 -113
  287. data/rbi/openai/resources/webhooks.rbi +1 -1
  288. data/sig/openai/client.rbs +0 -50
  289. data/sig/openai/helpers/admin/organization/projects/api_keys.rbs +18 -0
  290. data/sig/openai/helpers/beta/agents/artifacts.rbs +17 -0
  291. data/sig/openai/helpers/beta/agents/files.rbs +30 -0
  292. data/sig/openai/helpers/client_runtime.rbs +53 -0
  293. data/sig/openai/helpers/files.rbs +12 -0
  294. data/sig/openai/helpers/models/responses/response.rbs +9 -0
  295. data/sig/openai/helpers/streaming/response_stream.rbs +37 -0
  296. data/sig/openai/helpers/vector_stores/file_batches.rbs +38 -0
  297. data/sig/openai/helpers/vector_stores/files.rbs +43 -0
  298. data/sig/openai/helpers/websocket.rbs +40 -0
  299. data/sig/openai/models/admin/organization/audit_log_list_response.rbs +1 -0
  300. data/sig/openai/models/admin/organization/external_storage_configuration.rbs +1 -0
  301. data/sig/openai/models/admin/organization/external_storage_create_params.rbs +33 -0
  302. data/sig/openai/models/admin/organization/oci_external_storage_provider.rbs +34 -0
  303. data/sig/openai/models/admin/organization/project_residency.rbs +6 -0
  304. data/sig/openai/models/admin/organization/projects/api_key_update_params.rbs +77 -0
  305. data/sig/openai/models/admin/organization/projects/api_key_update_scopes_params.rbs +38 -0
  306. data/sig/openai/models/admin/organization/usage_decisions_params.rbs +170 -0
  307. data/sig/openai/models/admin/organization/usage_decisions_response.rbs +319 -0
  308. data/sig/openai/models/audio/speech_create_params.rbs +4 -2
  309. data/sig/openai/models/audio/voice.rbs +21 -3
  310. data/sig/openai/models/audio/voice_create_params.rbs +90 -1
  311. data/sig/openai/models/beta/agent_create_params.rbs +4 -2
  312. data/sig/openai/models/beta/agent_list_params.rbs +9 -6
  313. data/sig/openai/models/beta/agent_session.rbs +36 -2
  314. data/sig/openai/models/beta/agent_update_params.rbs +4 -2
  315. data/sig/openai/models/beta/agents/environment_list_params.rbs +9 -9
  316. data/sig/openai/models/beta/agents/session_create_params.rbs +29 -2
  317. data/sig/openai/models/beta/agents/session_list_params.rbs +12 -12
  318. data/sig/openai/models/beta/agents/session_update_params.rbs +23 -0
  319. data/sig/openai/models/beta/agents/sessions/artifact_list_params.rbs +21 -15
  320. data/sig/openai/models/beta/agents/vault_list_params.rbs +32 -14
  321. data/sig/openai/models/beta/agents/vault_update_params.rbs +54 -0
  322. data/sig/openai/models/beta/agents/vaults/credential_list_params.rbs +32 -14
  323. data/sig/openai/models/beta/beta_response.rbs +2 -2
  324. data/sig/openai/models/beta/beta_response_error.rbs +19 -3
  325. data/sig/openai/models/beta/beta_response_input_item.rbs +110 -0
  326. data/sig/openai/models/beta/beta_response_item.rbs +110 -0
  327. data/sig/openai/models/beta/beta_response_output_item.rbs +110 -0
  328. data/sig/openai/models/beta/beta_responses_client_event.rbs +2 -2
  329. data/sig/openai/models/beta/response_create_params.rbs +2 -2
  330. data/sig/openai/models/beta/session_turn_error.rbs +4 -0
  331. data/sig/openai/models/chat/chat_completion_audio_param.rbs +2 -2
  332. data/sig/openai/models/chat/completion_create_params.rbs +2 -2
  333. data/sig/openai/models/conversations/conversation_item.rbs +110 -0
  334. data/sig/openai/models/decision.rbs +13 -0
  335. data/sig/openai/models/decision_create_params.rbs +19 -8
  336. data/sig/openai/models/decision_input_image.rbs +2 -2
  337. data/sig/openai/models/decision_input_message.rbs +2 -2
  338. data/sig/openai/models/live/built_in_voice.rbs +2 -0
  339. data/sig/openai/models/live/client_event.rbs +4 -0
  340. data/sig/openai/models/live/decision_create_event.rbs +18 -0
  341. data/sig/openai/models/live/decision_event.rbs +102 -0
  342. data/sig/openai/models/live/decision_item_create_event.rbs +183 -0
  343. data/sig/openai/models/live/decision_item_created_event.rbs +195 -0
  344. data/sig/openai/models/live/decision_item_delete_event.rbs +33 -0
  345. data/sig/openai/models/live/decision_item_deleted_event.rbs +49 -0
  346. data/sig/openai/models/live/decision_trigger.rbs +234 -0
  347. data/sig/openai/models/live/decisions_delegation_config.rbs +195 -0
  348. data/sig/openai/models/live/decisions_delegation_update_config.rbs +202 -0
  349. data/sig/openai/models/live/delegation_created_event.rbs +6 -7
  350. data/sig/openai/models/live/fork_client_event.rbs +4 -0
  351. data/sig/openai/models/live/fork_server_event.rbs +5 -0
  352. data/sig/openai/models/live/media_session_config.rbs +58 -11
  353. data/sig/openai/models/live/output_audio_fixture_play_event.rbs +42 -0
  354. data/sig/openai/models/live/output_audio_fixture_played_event.rbs +44 -0
  355. data/sig/openai/models/live/output_audio_fixture_playing_event.rbs +44 -0
  356. data/sig/openai/models/live/server_event.rbs +5 -0
  357. data/sig/openai/models/live/session_accept_params.rbs +57 -10
  358. data/sig/openai/models/live/session_config.rbs +58 -11
  359. data/sig/openai/models/live/session_resource.rbs +57 -10
  360. data/sig/openai/models/live/session_update_config.rbs +54 -3
  361. data/sig/openai/models/live/session_update_event.rbs +6 -6
  362. data/sig/openai/models/live/sideband_client_event.rbs +26 -0
  363. data/sig/openai/models/live/sideband_server_event.rbs +33 -0
  364. data/sig/openai/models/realtime/realtime_audio_config_output.rbs +6 -3
  365. data/sig/openai/models/realtime/realtime_response_create_audio_output.rbs +6 -3
  366. data/sig/openai/models/realtime/realtime_response_status.rbs +15 -3
  367. data/sig/openai/models/responses/response.rbs +2 -4
  368. data/sig/openai/models/responses/response_create_params.rbs +2 -2
  369. data/sig/openai/models/responses/response_error.rbs +19 -3
  370. data/sig/openai/models/responses/response_input_item.rbs +110 -0
  371. data/sig/openai/models/responses/response_item.rbs +110 -0
  372. data/sig/openai/models/responses/response_output_item.rbs +110 -0
  373. data/sig/openai/models/responses/responses_client_event.rbs +2 -2
  374. data/sig/openai/models/safety/safety_alert.rbs +12 -2
  375. data/sig/openai/models/video_create_error.rbs +19 -3
  376. data/sig/openai/models/webhooks/unwrap_webhook_event.rbs +1 -1
  377. data/sig/openai/resources/admin/organization/projects/api_keys.rbs +8 -0
  378. data/sig/openai/resources/admin/organization/usage.rbs +15 -0
  379. data/sig/openai/resources/beta/agents/environments/files.rbs +0 -17
  380. data/sig/openai/resources/beta/agents/sessions/artifacts.rbs +2 -6
  381. data/sig/openai/resources/beta/agents/sessions.rbs +4 -1
  382. data/sig/openai/resources/beta/agents/vaults/credentials.rbs +2 -1
  383. data/sig/openai/resources/beta/agents/vaults.rbs +9 -1
  384. data/sig/openai/resources/beta/agents.rbs +1 -1
  385. data/sig/openai/resources/files.rbs +0 -7
  386. data/sig/openai/resources/live/forks.rbs +8 -0
  387. data/sig/openai/resources/live/sideband.rbs +8 -0
  388. data/sig/openai/resources/live.rbs +7 -0
  389. data/sig/openai/resources/realtime/translations.rbs +7 -0
  390. data/sig/openai/resources/realtime.rbs +7 -0
  391. data/sig/openai/resources/responses.rbs +7 -31
  392. data/sig/openai/resources/vector_stores/file_batches.rbs +0 -31
  393. data/sig/openai/resources/vector_stores/files.rbs +0 -36
  394. data/sig/openai/resources/webhooks.rbs +1 -1
  395. metadata +89 -1
@@ -5,24 +5,36 @@ module OpenAI
5
5
  # @see OpenAI::Resources::Decisions#create
6
6
  class Decision < OpenAI::Internal::Type::BaseModel
7
7
  # @!attribute answers
8
+ # Answers in question order. Any question can return a refusal instead of an
9
+ # answer; other questions can still receive answers. A refusal has
10
+ # `type: "refusal"` and the question's `name`, or `null` if it was unnamed.
8
11
  #
9
12
  # @return [Array<OpenAI::Models::Decision::Answer::Predicate, OpenAI::Models::Decision::Answer::Choice, OpenAI::Models::Decision::Answer::Score, OpenAI::Models::Decision::Answer::Refusal>]
10
13
  required :answers, -> { OpenAI::Internal::Type::ArrayOf[union: OpenAI::Decision::Answer] }
11
14
 
12
15
  # @!attribute model
16
+ # The model used.
13
17
  #
14
18
  # @return [String]
15
19
  required :model, String
16
20
 
17
21
  # @!attribute usage
22
+ # Token usage for the request.
18
23
  #
19
24
  # @return [OpenAI::Models::Decision::Usage]
20
25
  required :usage, -> { OpenAI::Decision::Usage }
21
26
 
22
27
  # @!method initialize(answers:, model:, usage:)
23
28
  # @param answers [Array<OpenAI::Models::Decision::Answer::Predicate, OpenAI::Models::Decision::Answer::Choice, OpenAI::Models::Decision::Answer::Score, OpenAI::Models::Decision::Answer::Refusal>]
29
+ # Answers in question order. Any question can return a refusal instead of an
30
+ # answer; other questions can still receive answers. A refusal has
31
+ # `type: "refusal"` and the question's `name`, or `null` if it was unnamed.
32
+ #
24
33
  # @param model [String]
34
+ # The model used.
35
+ #
25
36
  # @param usage [OpenAI::Models::Decision::Usage]
37
+ # Token usage for the request.
26
38
 
27
39
  # A completed question always includes its name, including null when unnamed.
28
40
  module Answer
@@ -36,7 +48,7 @@ module OpenAI
36
48
 
37
49
  variant :score, -> { OpenAI::Decision::Answer::Score }
38
50
 
39
- # The host may decline one question without disclosing its refusal score.
51
+ # The model declined to answer this question. Other questions in the same request can still receive answers.
40
52
  variant :refusal, -> { OpenAI::Decision::Answer::Refusal }
41
53
 
42
54
  class Predicate < OpenAI::Internal::Type::BaseModel
@@ -234,7 +246,8 @@ module OpenAI
234
246
  required :type, const: :refusal
235
247
 
236
248
  # @!method initialize(name:, type: :refusal)
237
- # The host may decline one question without disclosing its refusal score.
249
+ # The model declined to answer this question. Other questions in the same request
250
+ # can still receive answers.
238
251
  #
239
252
  # @param name [String, nil]
240
253
  #
@@ -274,6 +287,8 @@ module OpenAI
274
287
  required :total_tokens, Integer
275
288
 
276
289
  # @!method initialize(input_tokens:, input_tokens_details:, output_tokens:, output_tokens_details:, total_tokens:)
290
+ # Token usage for the request.
291
+ #
277
292
  # @param input_tokens [Integer]
278
293
  # @param input_tokens_details [OpenAI::Models::Decision::Usage::InputTokensDetails]
279
294
  # @param output_tokens [Integer]
@@ -8,20 +8,23 @@ module OpenAI
8
8
  include OpenAI::Internal::Type::RequestParameters
9
9
 
10
10
  # @!attribute input
11
- # Shared evidence, as a string or an array of user messages containing text and
12
- # inline images. Non-user roles, function calls, function-call outputs, files,
13
- # audio, and item references are not supported. At most 128 image parts are
14
- # allowed across all messages in one request.
11
+ # The text or images to evaluate for every question. Provide a text string or user
12
+ # messages containing text and images. Images can be base64 data URLs or publicly
13
+ # accessible HTTP(S) URLs; at most 128 images are allowed across all messages in
14
+ # one request. Files, audio, tools, and item references are not supported.
15
15
  #
16
16
  # @return [String, Array<OpenAI::Models::DecisionInputMessage>]
17
17
  required :input, union: -> { OpenAI::DecisionCreateParams::Input }
18
18
 
19
19
  # @!attribute model
20
+ # The model to use. Only `gpt-6-luna` is supported.
20
21
  #
21
22
  # @return [String]
22
23
  required :model, String
23
24
 
24
25
  # @!attribute questions
26
+ # Ask 1–200 questions about the input. Each question can be a predicate, choice,
27
+ # or score. Answers come back in the same order.
25
28
  #
26
29
  # @return [Array<OpenAI::Models::DecisionCreateParams::Question::Predicate, OpenAI::Models::DecisionCreateParams::Question::Choice, OpenAI::Models::DecisionCreateParams::Question::Score>]
27
30
  required :questions, -> { OpenAI::Internal::Type::ArrayOf[union: OpenAI::DecisionCreateParams::Question] }
@@ -35,14 +38,17 @@ module OpenAI
35
38
 
36
39
  # @!method initialize(input:, model:, questions:, safety_identifier: nil, request_options: {})
37
40
  # @param input [String, Array<OpenAI::Models::DecisionInputMessage>]
38
- # Shared evidence, as a string or an array of user messages containing text and
39
- # inline images. Non-user roles, function calls, function-call outputs, files,
40
- # audio, and item references are not supported. At most 128 image parts are
41
- # allowed across all messages in one request.
41
+ # The text or images to evaluate for every question. Provide a text string or user
42
+ # messages containing text and images. Images can be base64 data URLs or publicly
43
+ # accessible HTTP(S) URLs; at most 128 images are allowed across all messages in
44
+ # one request. Files, audio, tools, and item references are not supported.
42
45
  #
43
46
  # @param model [String]
47
+ # The model to use. Only `gpt-6-luna` is supported.
44
48
  #
45
49
  # @param questions [Array<OpenAI::Models::DecisionCreateParams::Question::Predicate, OpenAI::Models::DecisionCreateParams::Question::Choice, OpenAI::Models::DecisionCreateParams::Question::Score>]
50
+ # Ask 1–200 questions about the input. Each question can be a predicate, choice,
51
+ # or score. Answers come back in the same order.
46
52
  #
47
53
  # @param safety_identifier [String, nil]
48
54
  # Opaque caller-provided end-user identifier, scoped by the verified org. Match
@@ -50,10 +56,10 @@ module OpenAI
50
56
  #
51
57
  # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}]
52
58
 
53
- # Shared evidence, as a string or an array of user messages containing text and
54
- # inline images. Non-user roles, function calls, function-call outputs, files,
55
- # audio, and item references are not supported. At most 128 image parts are
56
- # allowed across all messages in one request.
59
+ # The text or images to evaluate for every question. Provide a text string or user
60
+ # messages containing text and images. Images can be base64 data URLs or publicly
61
+ # accessible HTTP(S) URLs; at most 128 images are allowed across all messages in
62
+ # one request. Files, audio, tools, and item references are not supported.
57
63
  module Input
58
64
  extend OpenAI::Internal::Type::Union
59
65
 
@@ -74,10 +80,13 @@ module OpenAI
74
80
 
75
81
  discriminator :type
76
82
 
83
+ # Estimate how likely it is that a statement about the input is true.
77
84
  variant :predicate, -> { OpenAI::DecisionCreateParams::Question::Predicate }
78
85
 
86
+ # Choose from the supplied options based on the input.
79
87
  variant :choice, -> { OpenAI::DecisionCreateParams::Question::Choice }
80
88
 
89
+ # Rate the input against the supplied ordered levels.
81
90
  variant :score, -> { OpenAI::DecisionCreateParams::Question::Score }
82
91
 
83
92
  class Predicate < OpenAI::Internal::Type::BaseModel
@@ -98,6 +107,8 @@ module OpenAI
98
107
  optional :name, String
99
108
 
100
109
  # @!method initialize(instructions:, name: nil, type: :predicate)
110
+ # Estimate how likely it is that a statement about the input is true.
111
+ #
101
112
  # @param instructions [String]
102
113
  #
103
114
  # @param name [String]
@@ -108,6 +119,7 @@ module OpenAI
108
119
 
109
120
  class Choice < OpenAI::Internal::Type::BaseModel
110
121
  # @!attribute choices
122
+ # Provide between 2 and 255 choices. Each choice must be unique.
111
123
  #
112
124
  # @return [Array<OpenAI::Models::DecisionCreateParams::Question::Choice::Choice>]
113
125
  required(
@@ -132,7 +144,10 @@ module OpenAI
132
144
  optional :name, String
133
145
 
134
146
  # @!method initialize(choices:, instructions:, name: nil, type: :choice)
147
+ # Choose from the supplied options based on the input.
148
+ #
135
149
  # @param choices [Array<OpenAI::Models::DecisionCreateParams::Question::Choice::Choice>]
150
+ # Provide between 2 and 255 choices. Each choice must be unique.
136
151
  #
137
152
  # @param instructions [String]
138
153
  #
@@ -200,6 +215,8 @@ module OpenAI
200
215
  optional :name, String
201
216
 
202
217
  # @!method initialize(instructions:, levels:, name: nil, type: :score)
218
+ # Rate the input against the supplied ordered levels.
219
+ #
203
220
  # @param instructions [String]
204
221
  #
205
222
  # @param levels [Array<OpenAI::Models::DecisionCreateParams::Question::Score::Level>]
@@ -4,7 +4,7 @@ module OpenAI
4
4
  module Models
5
5
  class DecisionInputImage < OpenAI::Internal::Type::BaseModel
6
6
  # @!attribute image_url
7
- # A base64-encoded image in a data URL.
7
+ # A base64-encoded image in a data URL or a publicly accessible HTTP(S) image URL.
8
8
  #
9
9
  # @return [String]
10
10
  required :image_url, String
@@ -22,10 +22,11 @@ module OpenAI
22
22
  optional :detail, enum: -> { OpenAI::DecisionInputImage::Detail }, nil?: true
23
23
 
24
24
  # @!method initialize(image_url:, detail: nil, type: :input_image)
25
- # An inline image. External URLs and file IDs are not supported.
25
+ # An image provided as a base64 data URL or a publicly accessible HTTP(S) URL.
26
+ # File IDs are not supported.
26
27
  #
27
28
  # @param image_url [String]
28
- # A base64-encoded image in a data URL.
29
+ # A base64-encoded image in a data URL or a publicly accessible HTTP(S) image URL.
29
30
  #
30
31
  # @param detail [Symbol, OpenAI::Models::DecisionInputImage::Detail, nil]
31
32
  # The image detail level, using the selected model's image profile. Defaults to
@@ -4,7 +4,7 @@ module OpenAI
4
4
  module Models
5
5
  class DecisionInputMessage < OpenAI::Internal::Type::BaseModel
6
6
  # @!attribute content
7
- # Text evidence or an ordered list of text and inline image parts.
7
+ # Text evidence or an ordered list of text and image parts.
8
8
  #
9
9
  # @return [String, Array<OpenAI::Models::DecisionInputText, OpenAI::Models::DecisionInputImage>]
10
10
  required :content, union: -> { OpenAI::DecisionInputMessage::Content }
@@ -20,16 +20,16 @@ module OpenAI
20
20
  optional :type, enum: -> { OpenAI::DecisionInputMessage::Type }
21
21
 
22
22
  # @!method initialize(content:, type: nil, role: :user)
23
- # A user message containing text or inline images.
23
+ # A user message containing text or images.
24
24
  #
25
25
  # @param content [String, Array<OpenAI::Models::DecisionInputText, OpenAI::Models::DecisionInputImage>]
26
- # Text evidence or an ordered list of text and inline image parts.
26
+ # Text evidence or an ordered list of text and image parts.
27
27
  #
28
28
  # @param type [Symbol, OpenAI::Models::DecisionInputMessage::Type]
29
29
  #
30
30
  # @param role [Symbol, :user]
31
31
 
32
- # Text evidence or an ordered list of text and inline image parts.
32
+ # Text evidence or an ordered list of text and image parts.
33
33
  #
34
34
  # @see OpenAI::Models::DecisionInputMessage#content
35
35
  module Content
@@ -2,7 +2,8 @@
2
2
 
3
3
  module OpenAI
4
4
  module Models
5
- # An inline image. External URLs and file IDs are not supported.
5
+ # An image provided as a base64 data URL or a publicly accessible HTTP(S) URL.
6
+ # File IDs are not supported.
6
7
  module DecisionInputPart
7
8
  extend OpenAI::Internal::Type::Union
8
9
 
@@ -10,7 +11,7 @@ module OpenAI
10
11
 
11
12
  variant :input_text, -> { OpenAI::DecisionInputText }
12
13
 
13
- # An inline image. External URLs and file IDs are not supported.
14
+ # An image provided as a base64 data URL or a publicly accessible HTTP(S) URL. File IDs are not supported.
14
15
  variant :input_image, -> { OpenAI::DecisionInputImage }
15
16
 
16
17
  # @!method self.variants
@@ -139,7 +139,6 @@ module OpenAI
139
139
 
140
140
  variant const: -> { OpenAI::Models::ImageEditCompletedEvent::Size::AUTO }
141
141
 
142
- # Keep known dimensions as symbols when reading existing API responses.
143
142
  variant String
144
143
 
145
144
  # @!method self.variants
@@ -158,7 +157,7 @@ module OpenAI
158
157
 
159
158
  # @!endgroup
160
159
 
161
- # Preserve the enum helper available before custom dimensions were supported.
160
+ # Preserve the enum helper available before arbitrary strings were supported.
162
161
  #
163
162
  # @return [Array<Symbol>]
164
163
  def self.values = [SIZE_1024X1024, SIZE_1024X1536, SIZE_1536X1024, AUTO]
@@ -137,7 +137,6 @@ module OpenAI
137
137
 
138
138
  variant const: -> { OpenAI::Models::ImageEditPartialImageEvent::Size::AUTO }
139
139
 
140
- # Keep known dimensions as symbols when reading existing API responses.
141
140
  variant String
142
141
 
143
142
  # @!method self.variants
@@ -156,7 +155,7 @@ module OpenAI
156
155
 
157
156
  # @!endgroup
158
157
 
159
- # Preserve the enum helper available before custom dimensions were supported.
158
+ # Preserve the enum helper available before arbitrary strings were supported.
160
159
  #
161
160
  # @return [Array<Symbol>]
162
161
  def self.values = [SIZE_1024X1024, SIZE_1024X1536, SIZE_1536X1024, AUTO]
@@ -139,7 +139,6 @@ module OpenAI
139
139
 
140
140
  variant const: -> { OpenAI::Models::ImageGenCompletedEvent::Size::AUTO }
141
141
 
142
- # Keep known dimensions as symbols when reading existing API responses.
143
142
  variant String
144
143
 
145
144
  # @!method self.variants
@@ -158,7 +157,7 @@ module OpenAI
158
157
 
159
158
  # @!endgroup
160
159
 
161
- # Preserve the enum helper available before custom dimensions were supported.
160
+ # Preserve the enum helper available before arbitrary strings were supported.
162
161
  #
163
162
  # @return [Array<Symbol>]
164
163
  def self.values = [SIZE_1024X1024, SIZE_1024X1536, SIZE_1536X1024, AUTO]
@@ -137,7 +137,6 @@ module OpenAI
137
137
 
138
138
  variant const: -> { OpenAI::Models::ImageGenPartialImageEvent::Size::AUTO }
139
139
 
140
- # Keep known dimensions as symbols when reading existing API responses.
141
140
  variant String
142
141
 
143
142
  # @!method self.variants
@@ -156,7 +155,7 @@ module OpenAI
156
155
 
157
156
  # @!endgroup
158
157
 
159
- # Preserve the enum helper available before custom dimensions were supported.
158
+ # Preserve the enum helper available before arbitrary strings were supported.
160
159
  #
161
160
  # @return [Array<Symbol>]
162
161
  def self.values = [SIZE_1024X1024, SIZE_1024X1536, SIZE_1536X1024, AUTO]
@@ -131,7 +131,6 @@ module OpenAI
131
131
 
132
132
  variant const: -> { OpenAI::Models::ImagesResponse::Size::SIZE_1536X1024 }
133
133
 
134
- # Keep known dimensions as symbols when reading existing API responses.
135
134
  variant String
136
135
 
137
136
  # @!method self.variants
@@ -149,7 +148,7 @@ module OpenAI
149
148
 
150
149
  # @!endgroup
151
150
 
152
- # Preserve the enum helper available before custom dimensions were supported.
151
+ # Preserve the enum helper available before arbitrary strings were supported.
153
152
  #
154
153
  # @return [Array<Symbol>]
155
154
  def self.values = [SIZE_1024X1024, SIZE_1024X1536, SIZE_1536X1024]
@@ -23,6 +23,7 @@ module OpenAI
23
23
  QUARTZ = :quartz
24
24
  RIPPLE = :ripple
25
25
  SAGE = :sage
26
+ SHIDA = :shida
26
27
  SHIMMER = :shimmer
27
28
  STONE = :stone
28
29
  TEMPO = :tempo
@@ -16,7 +16,7 @@ module OpenAI
16
16
  # Start a Live session on a primary WebSocket. Send this event before other commands and wait for `session.started`.
17
17
  variant :"session.start", -> { OpenAI::Live::SessionStartEvent }
18
18
 
19
- # Update the delegation settings of an active Live session. The server acknowledges accepted changes with `session.updated`.
19
+ # Update the delegation settings or transcript triggers of an active Live session. The server acknowledges accepted changes with `session.updated`.
20
20
  variant :"session.update", -> { OpenAI::Live::SessionUpdateEvent }
21
21
 
22
22
  # Send audio to a Live session over its primary WebSocket. WebRTC and SIP sessions send audio over their media transport.
@@ -28,6 +28,9 @@ module OpenAI
28
28
  # Resume audio input to a Live model after muting it. The server acknowledges with `session.input_audio.unmuted`.
29
29
  variant :"session.input_audio.unmute", -> { OpenAI::Live::InputAudioUnmuteEvent }
30
30
 
31
+ # Play one complete audio fixture through the session output. Send this event over the primary WebSocket or a server sideband. Audio must be raw mono PCM16 little-endian at 24 kHz, regardless of the session audio format, and at most 30 seconds. The entire payload is validated before model speech is interrupted and input is muted. Only one fixture can be active. fixture.playing acknowledges acceptance and fixture.played reports server mixer drain. These notifications are not exact transport-media boundaries. Input arriving during playback is dropped and not replayed.
32
+ variant :"session.output_audio.fixture.play", -> { OpenAI::Live::OutputAudioFixturePlayEvent }
33
+
31
34
  # Append instructions to the Live conversation while it is running, optionally associating them with an existing client delegation.
32
35
  variant :"session.instructions.append", -> { OpenAI::Live::InstructionsAppendEvent }
33
36
 
@@ -37,6 +40,15 @@ module OpenAI
37
40
  # Provide context the Live model can communicate to the user, optionally for an existing client delegation.
38
41
  variant :"session.commentary.append", -> { OpenAI::Live::CommentaryAppendEvent }
39
42
 
43
+ # Evaluate the configured questions using the current conversation and Decision inputs. Reusing an event_id is rejected for the lifetime of the session.
44
+ variant :"decision.create", -> { OpenAI::Live::DecisionCreateEvent }
45
+
46
+ # Append an input item for future decisions without starting an evaluation or changing Live voice context.
47
+ variant :"decision.item.create", -> { OpenAI::Live::DecisionItemCreateEvent }
48
+
49
+ # Delete an input item from future decisions without starting an evaluation or changing Live voice context.
50
+ variant :"decision.item.delete", -> { OpenAI::Live::DecisionItemDeleteEvent }
51
+
40
52
  # Add an input item to the Live session’s Responses backend. Requires Responses delegation; use `response.create` to request a response.
41
53
  variant :"response.item.create", -> { OpenAI::Live::ResponseItemCreateEvent }
42
54
 
@@ -47,7 +59,7 @@ module OpenAI
47
59
  variant :"session.close", -> { OpenAI::Live::SessionCloseEvent }
48
60
 
49
61
  # @!method self.variants
50
- # @return [Array(OpenAI::Models::Live::SessionStartEvent, OpenAI::Models::Live::SessionUpdateEvent, OpenAI::Models::Live::InputAudioAppendEvent, OpenAI::Models::Live::InputAudioMuteEvent, OpenAI::Models::Live::InputAudioUnmuteEvent, OpenAI::Models::Live::InstructionsAppendEvent, OpenAI::Models::Live::ThinkingAppendEvent, OpenAI::Models::Live::CommentaryAppendEvent, OpenAI::Models::Live::ResponseItemCreateEvent, OpenAI::Models::Live::ResponseCreateEvent, OpenAI::Models::Live::SessionCloseEvent)]
62
+ # @return [Array(OpenAI::Models::Live::SessionStartEvent, OpenAI::Models::Live::SessionUpdateEvent, OpenAI::Models::Live::InputAudioAppendEvent, OpenAI::Models::Live::InputAudioMuteEvent, OpenAI::Models::Live::InputAudioUnmuteEvent, OpenAI::Models::Live::OutputAudioFixturePlayEvent, OpenAI::Models::Live::InstructionsAppendEvent, OpenAI::Models::Live::ThinkingAppendEvent, OpenAI::Models::Live::CommentaryAppendEvent, OpenAI::Models::Live::DecisionCreateEvent, OpenAI::Models::Live::DecisionItemCreateEvent, OpenAI::Models::Live::DecisionItemDeleteEvent, OpenAI::Models::Live::ResponseItemCreateEvent, OpenAI::Models::Live::ResponseCreateEvent, OpenAI::Models::Live::SessionCloseEvent)]
51
63
  end
52
64
  end
53
65
  end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Live
6
+ class DecisionCreateEvent < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute event_id
8
+ #
9
+ # @return [String]
10
+ required :event_id, String
11
+
12
+ # @!attribute type
13
+ #
14
+ # @return [Symbol, :"decision.create"]
15
+ required :type, const: :"decision.create"
16
+
17
+ # @!method initialize(event_id:, type: :"decision.create")
18
+ # Evaluate the configured questions using the current conversation and Decision
19
+ # inputs. Reusing an event_id is rejected for the lifetime of the session.
20
+ #
21
+ # @param event_id [String]
22
+ # @param type [Symbol, :"decision.create"]
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,117 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Live
6
+ class DecisionEvent < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute delegation_id
8
+ # The Live delegation ID, or null for a transcript trigger.
9
+ #
10
+ # @return [String, nil]
11
+ required :delegation_id, String, nil?: true
12
+
13
+ # @!attribute event
14
+ #
15
+ # @return [OpenAI::Models::Live::DecisionEvent::Event]
16
+ required :event, -> { OpenAI::Live::DecisionEvent::Event }
17
+
18
+ # @!attribute event_id
19
+ # The unique ID of this Live server event.
20
+ #
21
+ # @return [String]
22
+ required :event_id, String
23
+
24
+ # @!attribute source_event_id
25
+ # The event_id of the transcript delta that fired this trigger, or null for a
26
+ # delegation.
27
+ #
28
+ # @return [String, nil]
29
+ required :source_event_id, String, nil?: true
30
+
31
+ # @!attribute source_event_type
32
+ #
33
+ # @return [Symbol, OpenAI::Models::Live::DecisionEvent::SourceEventType, nil]
34
+ required :source_event_type, union: -> { OpenAI::Live::DecisionEvent::SourceEventType }, nil?: true
35
+
36
+ # @!attribute trigger_id
37
+ # The Live-assigned ID of this trigger firing, or null for a delegation.
38
+ #
39
+ # @return [String, nil]
40
+ required :trigger_id, String, nil?: true
41
+
42
+ # @!attribute type
43
+ #
44
+ # @return [Symbol, :"decision.event"]
45
+ required :type, const: :"decision.event"
46
+
47
+ # @!method initialize(delegation_id:, event:, event_id:, source_event_id:, source_event_type:, trigger_id:, type: :"decision.event")
48
+ # A Decision API event for a Live delegation or transcript trigger. For a trigger,
49
+ # source_event_id identifies the transcript delta that caused this evaluation.
50
+ #
51
+ # @param delegation_id [String, nil]
52
+ # The Live delegation ID, or null for a transcript trigger.
53
+ #
54
+ # @param event [OpenAI::Models::Live::DecisionEvent::Event]
55
+ #
56
+ # @param event_id [String]
57
+ # The unique ID of this Live server event.
58
+ #
59
+ # @param source_event_id [String, nil]
60
+ # The event_id of the transcript delta that fired this trigger, or null for a
61
+ # delegation.
62
+ #
63
+ # @param source_event_type [Symbol, OpenAI::Models::Live::DecisionEvent::SourceEventType, nil]
64
+ #
65
+ # @param trigger_id [String, nil]
66
+ # The Live-assigned ID of this trigger firing, or null for a delegation.
67
+ #
68
+ # @param type [Symbol, :"decision.event"]
69
+
70
+ # @see OpenAI::Models::Live::DecisionEvent#event
71
+ class Event < OpenAI::Internal::Type::BaseModel
72
+ # @!attribute decision
73
+ # The native Decision API response, including its model, ordered answers, and
74
+ # token usage.
75
+ #
76
+ # @return [OpenAI::Models::Decision]
77
+ required :decision, -> { OpenAI::Decision }
78
+
79
+ # @!attribute type
80
+ #
81
+ # @return [Symbol, :"decision.completed"]
82
+ required :type, const: :"decision.completed"
83
+
84
+ # @!method initialize(decision:, type: :"decision.completed")
85
+ # @param decision [OpenAI::Models::Decision]
86
+ # The native Decision API response, including its model, ordered answers, and
87
+ # token usage.
88
+ #
89
+ # @param type [Symbol, :"decision.completed"]
90
+ end
91
+
92
+ # @see OpenAI::Models::Live::DecisionEvent#source_event_type
93
+ module SourceEventType
94
+ extend OpenAI::Internal::Type::Union
95
+
96
+ variant const: -> { OpenAI::Models::Live::DecisionEvent::SourceEventType::SESSION_INPUT_TRANSCRIPT_DELTA }
97
+
98
+ variant const: -> { OpenAI::Models::Live::DecisionEvent::SourceEventType::SESSION_OUTPUT_TRANSCRIPT_DELTA }
99
+
100
+ # @!method self.variants
101
+ # @return [Array(Symbol)]
102
+
103
+ define_sorbet_constant!(:Variants) do
104
+ T.type_alias { OpenAI::Live::DecisionEvent::SourceEventType::TaggedSymbol }
105
+ end
106
+
107
+ # @!group
108
+
109
+ SESSION_INPUT_TRANSCRIPT_DELTA = :"session.input_transcript.delta"
110
+ SESSION_OUTPUT_TRANSCRIPT_DELTA = :"session.output_transcript.delta"
111
+
112
+ # @!endgroup
113
+ end
114
+ end
115
+ end
116
+ end
117
+ end