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
@@ -146,6 +146,12 @@ module OpenAI
146
146
  nil?: true
147
147
  )
148
148
 
149
+ # @!attribute error
150
+ # Details of a moderation failure, when available.
151
+ #
152
+ # @return [OpenAI::Models::Conversations::ConversationItem::ImageGenerationCall::Error, nil]
153
+ optional :error, -> { OpenAI::Conversations::ConversationItem::ImageGenerationCall::Error }
154
+
149
155
  # @!attribute output_format
150
156
  # The output format used for generation.
151
157
  #
@@ -183,7 +189,7 @@ module OpenAI
183
189
  nil?: true
184
190
  )
185
191
 
186
- # @!method initialize(id:, result:, status:, action: nil, background: nil, output_format: nil, quality: nil, revised_prompt: nil, size: nil, type: :image_generation_call)
192
+ # @!method initialize(id:, result:, status:, action: nil, background: nil, error: nil, output_format: nil, quality: nil, revised_prompt: nil, size: nil, type: :image_generation_call)
187
193
  # An image generation request made by the model.
188
194
  #
189
195
  # @param id [String]
@@ -201,6 +207,9 @@ module OpenAI
201
207
  # @param background [Symbol, OpenAI::Models::Conversations::ConversationItem::ImageGenerationCall::Background, nil]
202
208
  # The background setting used for generation.
203
209
  #
210
+ # @param error [OpenAI::Models::Conversations::ConversationItem::ImageGenerationCall::Error]
211
+ # Details of a moderation failure, when available.
212
+ #
204
213
  # @param output_format [Symbol, OpenAI::Models::Conversations::ConversationItem::ImageGenerationCall::OutputFormat, nil]
205
214
  # The output format used for generation.
206
215
  #
@@ -260,6 +269,103 @@ module OpenAI
260
269
  # @return [Array<Symbol>]
261
270
  end
262
271
 
272
+ # @see OpenAI::Models::Conversations::ConversationItem::ImageGenerationCall#error
273
+ class Error < OpenAI::Internal::Type::BaseModel
274
+ # @!attribute code
275
+ # The error code.
276
+ #
277
+ # @return [String, nil]
278
+ required :code, String, nil?: true
279
+
280
+ # @!attribute message
281
+ # A description of the error.
282
+ #
283
+ # @return [String]
284
+ required :message, String
285
+
286
+ # @!attribute param
287
+ # The related request parameter.
288
+ #
289
+ # @return [String, nil]
290
+ required :param, String, nil?: true
291
+
292
+ # @!attribute type
293
+ # The error type.
294
+ #
295
+ # @return [String]
296
+ required :type, String
297
+
298
+ # @!attribute moderation_details
299
+ # Public details for a `moderation_blocked` error, when available.
300
+ #
301
+ # @return [OpenAI::Models::Conversations::ConversationItem::ImageGenerationCall::Error::ModerationDetails, nil]
302
+ optional(
303
+ :moderation_details,
304
+ -> { OpenAI::Conversations::ConversationItem::ImageGenerationCall::Error::ModerationDetails }
305
+ )
306
+
307
+ # @!method initialize(code:, message:, param:, type:, moderation_details: nil)
308
+ # Details of a moderation failure, when available.
309
+ #
310
+ # @param code [String, nil]
311
+ # The error code.
312
+ #
313
+ # @param message [String]
314
+ # A description of the error.
315
+ #
316
+ # @param param [String, nil]
317
+ # The related request parameter.
318
+ #
319
+ # @param type [String]
320
+ # The error type.
321
+ #
322
+ # @param moderation_details [OpenAI::Models::Conversations::ConversationItem::ImageGenerationCall::Error::ModerationDetails]
323
+ # Public details for a `moderation_blocked` error, when available.
324
+
325
+ # @see OpenAI::Models::Conversations::ConversationItem::ImageGenerationCall::Error#moderation_details
326
+ class ModerationDetails < OpenAI::Internal::Type::BaseModel
327
+ # @!attribute categories
328
+ # Public moderation categories. New category values may be added over time.
329
+ #
330
+ # @return [Array<String>]
331
+ required :categories, OpenAI::Internal::Type::ArrayOf[String]
332
+
333
+ # @!attribute moderation_stage
334
+ # The stage where moderation blocked the image generation call.
335
+ #
336
+ # @return [Symbol, OpenAI::Models::Conversations::ConversationItem::ImageGenerationCall::Error::ModerationDetails::ModerationStage]
337
+ required(
338
+ :moderation_stage,
339
+ enum: -> {
340
+ OpenAI::Conversations::ConversationItem::ImageGenerationCall::Error::ModerationDetails::ModerationStage
341
+ }
342
+ )
343
+
344
+ # @!method initialize(categories:, moderation_stage:)
345
+ # Public details for a `moderation_blocked` error, when available.
346
+ #
347
+ # @param categories [Array<String>]
348
+ # Public moderation categories. New category values may be added over time.
349
+ #
350
+ # @param moderation_stage [Symbol, OpenAI::Models::Conversations::ConversationItem::ImageGenerationCall::Error::ModerationDetails::ModerationStage]
351
+ # The stage where moderation blocked the image generation call.
352
+
353
+ # The stage where moderation blocked the image generation call.
354
+ #
355
+ # @see OpenAI::Models::Conversations::ConversationItem::ImageGenerationCall::Error::ModerationDetails#moderation_stage
356
+ module ModerationStage
357
+ extend OpenAI::Internal::Type::Enum
358
+
359
+ INPUT = :input
360
+ OUTPUT = :output
361
+ UNKNOWN = :unknown
362
+
363
+ # @!method self.values
364
+ # @return [Array<Symbol>]
365
+ end
366
+ end
367
+ end
368
+
263
369
  # The output format used for generation.
264
370
  #
265
371
  # @see OpenAI::Models::Conversations::ConversationItem::ImageGenerationCall#output_format
@@ -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