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
@@ -27,7 +27,19 @@ module OpenAI
27
27
  # @return [OpenAI::Models::VideoCreateError::Misalignment, nil]
28
28
  optional :misalignment, -> { OpenAI::VideoCreateError::Misalignment }
29
29
 
30
- # @!method initialize(code:, message:, headers: nil, misalignment: nil)
30
+ # @!attribute param
31
+ # The request parameter associated with the error, or null if none was recorded.
32
+ #
33
+ # @return [String, nil]
34
+ optional :param, String, nil?: true
35
+
36
+ # @!attribute type
37
+ # The original error type, or null if it was not recorded.
38
+ #
39
+ # @return [String, nil]
40
+ optional :type, String, nil?: true
41
+
42
+ # @!method initialize(code:, message:, headers: nil, misalignment: nil, param: nil, type: nil)
31
43
  # An error that occurred while generating the response.
32
44
  #
33
45
  # @param code [String]
@@ -41,6 +53,12 @@ module OpenAI
41
53
  # any.
42
54
  #
43
55
  # @param misalignment [OpenAI::Models::VideoCreateError::Misalignment]
56
+ #
57
+ # @param param [String, nil]
58
+ # The request parameter associated with the error, or null if none was recorded.
59
+ #
60
+ # @param type [String, nil]
61
+ # The original error type, or null if it was not recorded.
44
62
 
45
63
  # @see OpenAI::Models::VideoCreateError#misalignment
46
64
  class Misalignment < OpenAI::Internal::Type::BaseModel
@@ -12,15 +12,15 @@ module OpenAI
12
12
  # Sent when an agent environment expires and can no longer resume from a snapshot.
13
13
  variant :"agent.environment.expired", -> { OpenAI::Webhooks::AgentEnvironmentExpiredWebhookEvent }
14
14
 
15
- # Sent when an agent environment is suspended and can resume from a snapshot.
16
- variant :"agent.environment.suspended", -> { OpenAI::Webhooks::AgentEnvironmentSuspendedWebhookEvent }
17
-
18
15
  # Sent when setup fails for a prewarmed OpenAI-hosted environment before it is attached to a session.
19
16
  variant :"agent.environment.failed", -> { OpenAI::Webhooks::AgentEnvironmentFailedWebhookEvent }
20
17
 
21
18
  # Sent when a prewarmed OpenAI-hosted environment finishes setup before being attached to a session.
22
19
  variant :"agent.environment.ready", -> { OpenAI::Webhooks::AgentEnvironmentReadyWebhookEvent }
23
20
 
21
+ # Sent when an agent environment is suspended and can resume from a snapshot.
22
+ variant :"agent.environment.suspended", -> { OpenAI::Webhooks::AgentEnvironmentSuspendedWebhookEvent }
23
+
24
24
  # Sent when an agent session requires an action. Retrieve the session for action details.
25
25
  variant :"agent.session.action_required", -> { OpenAI::Webhooks::AgentSessionActionRequiredWebhookEvent }
26
26
 
@@ -108,7 +108,7 @@ module OpenAI
108
108
  variant :"safety.warning_issued", -> { OpenAI::Webhooks::SafetyWarningIssuedWebhookEvent }
109
109
 
110
110
  # @!method self.variants
111
- # @return [Array(OpenAI::Models::Webhooks::AgentEnvironmentExpiredWebhookEvent, OpenAI::Models::Webhooks::AgentEnvironmentSuspendedWebhookEvent, OpenAI::Models::Webhooks::AgentEnvironmentFailedWebhookEvent, OpenAI::Models::Webhooks::AgentEnvironmentReadyWebhookEvent, OpenAI::Models::Webhooks::AgentSessionActionRequiredWebhookEvent, OpenAI::Models::Webhooks::AgentSessionCreatedWebhookEvent, OpenAI::Models::Webhooks::AgentSessionFailedWebhookEvent, OpenAI::Models::Webhooks::AgentSessionIdleWebhookEvent, OpenAI::Models::Webhooks::AgentSessionInProgressWebhookEvent, OpenAI::Models::Webhooks::BatchCancelledWebhookEvent, OpenAI::Models::Webhooks::BatchCompletedWebhookEvent, OpenAI::Models::Webhooks::BatchExpiredWebhookEvent, OpenAI::Models::Webhooks::BatchFailedWebhookEvent, OpenAI::Models::Webhooks::EvalRunCanceledWebhookEvent, OpenAI::Models::Webhooks::EvalRunFailedWebhookEvent, OpenAI::Models::Webhooks::EvalRunSucceededWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobCancelledWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobFailedWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobSucceededWebhookEvent, OpenAI::Models::Webhooks::LiveCallIncomingWebhookEvent, OpenAI::Models::Webhooks::LiveTransportIncomingWebhookEvent, OpenAI::Models::Webhooks::RealtimeCallIncomingWebhookEvent, OpenAI::Models::Webhooks::ResponseCancelledWebhookEvent, OpenAI::Models::Webhooks::ResponseCompletedWebhookEvent, OpenAI::Models::Webhooks::ResponseFailedWebhookEvent, OpenAI::Models::Webhooks::ResponseIncompleteWebhookEvent, OpenAI::Models::Webhooks::SafetyAlertCreatedWebhookEvent, OpenAI::Models::Webhooks::SafetyDeactivationIssuedWebhookEvent, OpenAI::Models::Webhooks::SafetyOrgAlertCreatedWebhookEvent, OpenAI::Models::Webhooks::SafetyWarningIssuedWebhookEvent)]
111
+ # @return [Array(OpenAI::Models::Webhooks::AgentEnvironmentExpiredWebhookEvent, OpenAI::Models::Webhooks::AgentEnvironmentFailedWebhookEvent, OpenAI::Models::Webhooks::AgentEnvironmentReadyWebhookEvent, OpenAI::Models::Webhooks::AgentEnvironmentSuspendedWebhookEvent, OpenAI::Models::Webhooks::AgentSessionActionRequiredWebhookEvent, OpenAI::Models::Webhooks::AgentSessionCreatedWebhookEvent, OpenAI::Models::Webhooks::AgentSessionFailedWebhookEvent, OpenAI::Models::Webhooks::AgentSessionIdleWebhookEvent, OpenAI::Models::Webhooks::AgentSessionInProgressWebhookEvent, OpenAI::Models::Webhooks::BatchCancelledWebhookEvent, OpenAI::Models::Webhooks::BatchCompletedWebhookEvent, OpenAI::Models::Webhooks::BatchExpiredWebhookEvent, OpenAI::Models::Webhooks::BatchFailedWebhookEvent, OpenAI::Models::Webhooks::EvalRunCanceledWebhookEvent, OpenAI::Models::Webhooks::EvalRunFailedWebhookEvent, OpenAI::Models::Webhooks::EvalRunSucceededWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobCancelledWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobFailedWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobSucceededWebhookEvent, OpenAI::Models::Webhooks::LiveCallIncomingWebhookEvent, OpenAI::Models::Webhooks::LiveTransportIncomingWebhookEvent, OpenAI::Models::Webhooks::RealtimeCallIncomingWebhookEvent, OpenAI::Models::Webhooks::ResponseCancelledWebhookEvent, OpenAI::Models::Webhooks::ResponseCompletedWebhookEvent, OpenAI::Models::Webhooks::ResponseFailedWebhookEvent, OpenAI::Models::Webhooks::ResponseIncompleteWebhookEvent, OpenAI::Models::Webhooks::SafetyAlertCreatedWebhookEvent, OpenAI::Models::Webhooks::SafetyDeactivationIssuedWebhookEvent, OpenAI::Models::Webhooks::SafetyOrgAlertCreatedWebhookEvent, OpenAI::Models::Webhooks::SafetyWarningIssuedWebhookEvent)]
112
112
  end
113
113
  end
114
114
  end
@@ -90,15 +90,6 @@ module OpenAI
90
90
  #
91
91
  # @param object [Symbol, :webhook_endpoint]
92
92
  # The object type, which is always webhook_endpoint.
93
-
94
- # Keep diagnostics safe without changing field access or serialization.
95
- def to_s = deep_to_h.merge(signing_secret: "[REDACTED]").to_s
96
-
97
- def inspect
98
- converted = self.class.recursively_to_h(self, convert: true)
99
- converted[:signing_secret] = "[REDACTED]"
100
- "#<#{self.class}:0x#{object_id.to_s(16)} #{converted}>"
101
- end
102
93
  end
103
94
  end
104
95
  end
@@ -10,7 +10,7 @@ module OpenAI
10
10
  # @overload create(project_id:, provider:, request_options: {})
11
11
  #
12
12
  # @param project_id [String]
13
- # @param provider [OpenAI::Models::Admin::Organization::ExternalStorageCreateParams::Provider::Aws, OpenAI::Models::Admin::Organization::ExternalStorageCreateParams::Provider::Azure, OpenAI::Models::Admin::Organization::ExternalStorageCreateParams::Provider::Gcp]
13
+ # @param provider [OpenAI::Models::Admin::Organization::ExternalStorageCreateParams::Provider::Aws, OpenAI::Models::Admin::Organization::ExternalStorageCreateParams::Provider::Azure, OpenAI::Models::Admin::Organization::ExternalStorageCreateParams::Provider::Gcp, OpenAI::Models::Admin::Organization::ExternalStorageCreateParams::Provider::Oci]
14
14
  # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
15
15
  #
16
16
  # @return [OpenAI::Models::Admin::Organization::ExternalStorageConfiguration]
@@ -36,6 +36,67 @@ module OpenAI
36
36
  )
37
37
  end
38
38
 
39
+ # Updates the scopes and/or expiration of an existing API key in the project,
40
+ # including a service-account-owned key. Requires permission to write project API
41
+ # keys.
42
+ #
43
+ # Provide at least one of `scopes` or `expires_in_seconds`. Omitted fields stay
44
+ # unchanged; neither field accepts `null`. Both changes are saved together.
45
+ #
46
+ # `scopes` replaces the key's scope restrictions using the same scope identifiers
47
+ # as the dashboard. An empty array means All permissions, subject to the owner's
48
+ # effective access; it does not mean no access. Use `["api.all.read"]` for
49
+ # read-only access or specific scopes such as `["api.files.read"]` for restricted
50
+ # access. This does not change user or service-account roles or grant admin
51
+ # permissions. Scope changes follow the same authentication-cache propagation as
52
+ # dashboard edits.
53
+ #
54
+ # Provide `expires_in_seconds` to set the expiration relative to this request. The
55
+ # value must satisfy the organization's and project's expiry policies. Expired
56
+ # keys cannot be updated. Retrying resets the expiration relative to the new
57
+ # request. The response contains only the redacted key, not its secret.
58
+ #
59
+ # @overload update(api_key_id, project_id:, expires_in_seconds: nil, scopes: nil, request_options: {})
60
+ #
61
+ # @param api_key_id [String]
62
+ # Path param: The ID of the API key.
63
+ #
64
+ # @param project_id [String]
65
+ # Path param: The ID of the project.
66
+ #
67
+ # @param expires_in_seconds [Integer]
68
+ # Body param: Number of seconds from this request until the API key expires. Must
69
+ # comply with the organization and project expiry policies. Expired keys cannot be
70
+ # updated. Retrying resets the expiry relative to the new request. Omit to keep
71
+ # the current expiration.
72
+ #
73
+ # @param scopes [Array<String>]
74
+ # Body param: Replace the API key scope restrictions. Omit to leave scopes
75
+ # unchanged. An empty array removes key restrictions (All permissions), subject to
76
+ # the owner's effective permissions. Use ["api.all.read"] for read-only access.
77
+ # Scopes do not change the owner's roles or grant administrative permissions.
78
+ #
79
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
80
+ #
81
+ # @return [OpenAI::Models::Admin::Organization::Projects::ProjectAPIKey]
82
+ #
83
+ # @see OpenAI::Models::Admin::Organization::Projects::APIKeyUpdateParams
84
+ def update(api_key_id, params)
85
+ parsed, options = OpenAI::Admin::Organization::Projects::APIKeyUpdateParams.dump_request(params)
86
+ project_id = parsed.delete(:project_id) do
87
+ raise ArgumentError.new("missing required path argument #{_1}")
88
+ end
89
+
90
+ @client.request(
91
+ method: :post,
92
+ path: ["organization/projects/%1$s/api_keys/%2$s", project_id, api_key_id],
93
+ body: parsed,
94
+ model: OpenAI::Admin::Organization::Projects::ProjectAPIKey,
95
+ security: {admin_api_key_auth: true},
96
+ options: options
97
+ )
98
+ end
99
+
39
100
  # Returns a list of API keys in the project.
40
101
  #
41
102
  # @overload list(project_id, after: nil, limit: nil, owner_project_access: nil, request_options: {})
@@ -298,6 +298,73 @@ module OpenAI
298
298
  )
299
299
  end
300
300
 
301
+ # Get Decisions API usage details for the organization.
302
+ #
303
+ # @overload decisions(start_time:, api_key_ids: nil, batch: nil, bucket_width: nil, end_time: nil, group_by: nil, limit: nil, models: nil, page: nil, project_ids: nil, user_ids: nil, request_options: {})
304
+ #
305
+ # @param start_time [Integer]
306
+ # Start time (Unix seconds) of the query time range, inclusive.
307
+ #
308
+ # @param api_key_ids [Array<String>, nil]
309
+ # Return only usage for these API keys.
310
+ #
311
+ # @param batch [Boolean, nil]
312
+ # If `true`, return batch jobs only. If `false`, return non-batch jobs only. By
313
+ # default, return both.
314
+ #
315
+ # @param bucket_width [Symbol, OpenAI::Models::Admin::Organization::UsageDecisionsParams::BucketWidth, nil]
316
+ # Width of each time bucket in response. Currently `1m`, `1h` and `1d` are
317
+ # supported, default to `1d`.
318
+ #
319
+ # @param end_time [Integer, nil]
320
+ # End time (Unix seconds) of the query time range, exclusive.
321
+ #
322
+ # @param group_by [Array<Symbol, OpenAI::Models::Admin::Organization::UsageDecisionsParams::GroupBy>, nil]
323
+ # Group the usage data by the specified fields. Support fields include
324
+ # `project_id`, `user_id`, `api_key_id`, `model`, `batch`, `service_tier`,
325
+ # `api_source` or any combination of them. When grouped by `api_source`, results
326
+ # use `agents_api` for attributed Agents API activity and `unlabeled` for all
327
+ # other activity. Without source grouping, `api_source` is null.
328
+ #
329
+ # @param limit [Integer, nil]
330
+ # Specifies the number of buckets to return.
331
+ #
332
+ # - `bucket_width=1d`: default: 7, max: 31
333
+ # - `bucket_width=1h`: default: 24, max: 168
334
+ # - `bucket_width=1m`: default: 60, max: 1440
335
+ #
336
+ # @param models [Array<String>, nil]
337
+ # Return only usage for these models.
338
+ #
339
+ # @param page [String, nil]
340
+ # A cursor for use in pagination. Corresponding to the `next_page` field from the
341
+ # previous response.
342
+ #
343
+ # @param project_ids [Array<String>, nil]
344
+ # Return only usage for these projects.
345
+ #
346
+ # @param user_ids [Array<String>, nil]
347
+ # Return only usage for these users.
348
+ #
349
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
350
+ #
351
+ # @return [OpenAI::Models::Admin::Organization::UsageDecisionsResponse]
352
+ #
353
+ # @see OpenAI::Models::Admin::Organization::UsageDecisionsParams
354
+ def decisions(params)
355
+ parsed, options = OpenAI::Admin::Organization::UsageDecisionsParams.dump_request(params)
356
+ # Nil optional filters mean unset; empty query values fail backend parsing.
357
+ query = OpenAI::Internal::Util.encode_query_params(parsed.compact)
358
+ @client.request(
359
+ method: :get,
360
+ path: "organization/usage/decisions",
361
+ query: query,
362
+ model: OpenAI::Models::Admin::Organization::UsageDecisionsResponse,
363
+ security: {admin_api_key_auth: true},
364
+ options: options
365
+ )
366
+ end
367
+
301
368
  # Get embeddings usage details for the organization.
302
369
  #
303
370
  # @overload embeddings(start_time:, api_key_ids: nil, bucket_width: nil, end_time: nil, group_by: nil, limit: nil, models: nil, page: nil, project_ids: nil, user_ids: nil, request_options: {})
@@ -26,7 +26,8 @@ module OpenAI
26
26
  # object with an `id`, for example `{ "id": "voice_1234" }`. Previews of the
27
27
  # voices are available in the
28
28
  # [Text to speech guide](https://developers.openai.com/api/docs/guides/text-to-speech#voice-options).
29
- # Custom voices must be created from audio samples.
29
+ # Custom voices must be created from audio samples. Voices created from text
30
+ # prompts are supported only in Live.
30
31
  #
31
32
  # @param instructions [String]
32
33
  # Control the voice of your generated audio with additional instructions. Does not
@@ -5,21 +5,21 @@ module OpenAI
5
5
  class Audio
6
6
  # Turn audio into text or text into audio.
7
7
  class Voices
8
- # Create a custom voice you can use for audio output (for example, in
9
- # Text-to-Speech and the Realtime API). This requires an audio sample and a
10
- # previously uploaded consent recording.
8
+ # Creates a voice from a text prompt or from a consent recording and an audio
9
+ # sample.
11
10
  #
12
- # Send `name`, `audio_sample`, and the `consent` recording ID as multipart form
13
- # data. The optional `type` defaults to `audio_sample`.
11
+ # For prompt-based creation, send `type: "prompt"` with a `name` and `prompt` as
12
+ # JSON or multipart form data. For creation from an audio sample, send
13
+ # `type: "audio_sample"` with a `name`, `audio_sample`, and `consent` recording ID
14
+ # as multipart form data. The type defaults to `audio_sample` when omitted.
14
15
  #
15
- # Returns the saved voice's metadata. See the
16
- # [custom voices guide](https://developers.openai.com/api/docs/guides/text-to-speech#custom-voices)
17
- # for requirements and best practices. Custom voices are limited to eligible
18
- # customers.
16
+ # Returns the saved voice's metadata. Voices created from text prompts are
17
+ # supported only in Live, not in Realtime or the speech endpoint. The response
18
+ # does not include preview audio.
19
19
  #
20
20
  # @overload create(body:, request_options: {})
21
21
  #
22
- # @param body [OpenAI::Models::Audio::VoiceCreateParams::Body::AudioSample]
22
+ # @param body [OpenAI::Models::Audio::VoiceCreateParams::Body::AudioSample, OpenAI::Models::Audio::VoiceCreateParams::Body::Prompt]
23
23
  # Creates a voice from a consent recording and an audio sample. Requires
24
24
  # multipart/form-data.
25
25
  #
@@ -8,37 +8,9 @@ module OpenAI
8
8
  class Agents
9
9
  class Environments
10
10
  class Files
11
- # Upload selected local files for a new hosted environment (beta).
12
- # @return [OpenAI::Helpers::Beta::Agents::PreparedFiles]
13
- def prepare(files, request_options: {})
14
- OpenAI::Helpers::Beta::Agents::FilePreparation
15
- .new(client: @client, environment_files: self)
16
- .prepare(files, request_options: request_options)
17
- end
18
-
19
- # Upload an explicitly selected directory snapshot (beta).
20
- # @return [OpenAI::Helpers::Beta::Agents::PreparedFiles]
21
- def prepare_directory(directory, destination:, include:, request_options: {})
22
- OpenAI::Helpers::Beta::Agents::FilePreparation
23
- .new(client: @client, environment_files: self)
24
- .prepare_directory(
25
- directory,
26
- destination: destination,
27
- include: include,
28
- request_options: request_options
29
- )
30
- end
31
-
32
- # Upload and stage a local file in an existing environment (beta).
33
- # @return [OpenAI::Helpers::Beta::Agents::PreparedFiles]
34
- def upload(environment_id, file:, path:, request_options: {})
35
- OpenAI::Helpers::Beta::Agents::FilePreparation
36
- .new(client: @client, environment_files: self)
37
- .upload(environment_id, file: file, path: path, request_options: request_options)
38
- end
39
-
40
- # Copies inline bytes or a Files API file into a connected execution environment.
41
- # See
11
+ # Copies inline bytes or a Files API file into a connected execution environment,
12
+ # replacing an existing regular file at the same path. Upload between turns and
13
+ # wait for success before starting the next turn. See
42
14
  # [environment files](https://developers.openai.com/api/docs/guides/agents-api/environments/files).
43
15
  #
44
16
  # @overload create(environment_id, hosted_environment_file_param:, request_options: {})
@@ -83,13 +83,13 @@ module OpenAI
83
83
  # @overload list(after: nil, limit: nil, order: nil, type: nil, request_options: {})
84
84
  #
85
85
  # @param after [String]
86
- # Return environments after this environment ID in the selected order.
86
+ # Return resources after this resource ID in the selected order.
87
87
  #
88
88
  # @param limit [Integer]
89
- # The maximum number of environments to return, between 1 and 100. Defaults to 20.
89
+ # The maximum number of resources to return, between 1 and 100. Defaults to 20.
90
90
  #
91
91
  # @param order [Symbol, OpenAI::Models::Beta::Agents::EnvironmentListParams::Order]
92
- # The order in which environments are returned. Defaults to `desc`.
92
+ # The order in which resources are returned. Defaults to `desc`.
93
93
  #
94
94
  # @param type [Symbol, OpenAI::Models::Beta::Agents::EnvironmentListParams::Type]
95
95
  # The hosting type to list. Defaults to `openai_hosted`.
@@ -8,12 +8,6 @@ module OpenAI
8
8
  class Agents
9
9
  class Sessions
10
10
  class Artifacts
11
- # Access artifacts from exactly this completed turn (beta).
12
- # @return [OpenAI::Helpers::Beta::Agents::ResultArtifacts]
13
- def for_result(result)
14
- OpenAI::Helpers::Beta::Agents::ResultArtifacts.new(artifacts: self, client: @client, result: result)
15
- end
16
-
17
11
  # Retrieves immutable metadata for one durable session artifact. See
18
12
  # [session artifacts](https://developers.openai.com/api/docs/guides/agents-api/environments/files#openai-hosted-artifacts).
19
13
  #
@@ -54,17 +48,17 @@ module OpenAI
54
48
  # @param session_id [String]
55
49
  # The ID of the session.
56
50
  #
57
- # @param after [String, nil]
58
- # Return artifacts after this immutable artifact ID.
51
+ # @param after [String]
52
+ # Return resources after this resource ID in the selected order.
59
53
  #
60
54
  # @param environment_id [String, nil]
61
55
  # Restrict the listing to artifacts produced by this environment.
62
56
  #
63
- # @param limit [Integer, nil]
64
- # The maximum number of artifacts to return, between 1 and 100.
57
+ # @param limit [Integer]
58
+ # The maximum number of resources to return, between 1 and 100. Defaults to 20.
65
59
  #
66
60
  # @param order [Symbol, OpenAI::Models::Beta::Agents::Sessions::ArtifactListParams::Order]
67
- # Sort by creation time and ID. Defaults to descending.
61
+ # The order in which resources are returned. Defaults to `desc`.
68
62
  #
69
63
  # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
70
64
  #
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative "../../../helpers/agents/session_stream_resource"
4
+
3
5
  module OpenAI
4
6
  module Resources
5
7
  class Beta
@@ -30,7 +32,7 @@ module OpenAI
30
32
  # the session or streams its events when stream is true. See
31
33
  # [running sessions](https://developers.openai.com/api/docs/guides/agents-api/sessions).
32
34
  #
33
- # @overload create(environment:, agent: nil, agent_id: nil, input: nil, metadata: nil, vault_ids: nil, request_options: {})
35
+ # @overload create(environment:, agent: nil, agent_id: nil, input: nil, metadata: nil, spend_control: nil, vault_ids: nil, request_options: {})
34
36
  #
35
37
  # @param environment [OpenAI::Models::Beta::EnvironmentParam::None, OpenAI::Models::Beta::EnvironmentParam::OpenAIHosted, OpenAI::Models::Beta::EnvironmentParam::SelfHosted]
36
38
  # An inline execution environment or a reference to an environment template.
@@ -53,6 +55,10 @@ module OpenAI
53
55
  # Up to 16 string key-value pairs, with keys up to 64 and values up to 512
54
56
  # characters. Omission or null defaults to an empty map.
55
57
  #
58
+ # @param spend_control [OpenAI::Models::Beta::Agents::SessionCreateParams::SpendControl, nil]
59
+ # Optional spending limit in USD cents. Omission or null creates an unlimited
60
+ # session.
61
+ #
56
62
  # @param vault_ids [Array<String>, nil]
57
63
  # The IDs of vaults made available to the session.
58
64
  #
@@ -86,7 +92,7 @@ module OpenAI
86
92
  # the session or streams its events when stream is true. See
87
93
  # [running sessions](https://developers.openai.com/api/docs/guides/agents-api/sessions).
88
94
  #
89
- # @overload create_streaming(environment:, agent: nil, agent_id: nil, input: nil, output_type: nil, tool_handlers: {}, metadata: nil, vault_ids: nil, request_options: {})
95
+ # @overload create_streaming(environment:, agent: nil, agent_id: nil, input: nil, output_type: nil, tool_handlers: {}, metadata: nil, spend_control: nil, vault_ids: nil, request_options: {})
90
96
  #
91
97
  # @param environment [OpenAI::Models::Beta::EnvironmentParam::None, OpenAI::Models::Beta::EnvironmentParam::OpenAIHosted, OpenAI::Models::Beta::EnvironmentParam::SelfHosted]
92
98
  # An inline execution environment or a reference to an environment template.
@@ -109,6 +115,10 @@ module OpenAI
109
115
  # Up to 16 string key-value pairs, with keys up to 64 and values up to 512
110
116
  # characters. Omission or null defaults to an empty map.
111
117
  #
118
+ # @param spend_control [OpenAI::Models::Beta::Agents::SessionCreateParams::SpendControl, nil]
119
+ # Optional spending limit in USD cents. Omission or null creates an unlimited
120
+ # session.
121
+ #
112
122
  # @param vault_ids [Array<String>, nil]
113
123
  # The IDs of vaults made available to the session.
114
124
  #
@@ -182,7 +192,7 @@ module OpenAI
182
192
  # settings apply to subsequent turns. Omitted fields are unchanged. See
183
193
  # [managing sessions](https://developers.openai.com/api/docs/guides/agents-api/sessions/manage).
184
194
  #
185
- # @overload update(session_id, agent: nil, metadata: nil, request_options: {})
195
+ # @overload update(session_id, agent: nil, metadata: nil, spend_control: nil, request_options: {})
186
196
  #
187
197
  # @param session_id [String]
188
198
  # The ID of the session.
@@ -195,6 +205,10 @@ module OpenAI
195
205
  # Up to 16 string key-value pairs, with keys up to 64 and values up to 512
196
206
  # characters.
197
207
  #
208
+ # @param spend_control [OpenAI::Models::Beta::Agents::SessionUpdateParams::SpendControl, nil]
209
+ # Omit to retain the limit; null or a null limit removes it without resetting
210
+ # spend.
211
+ #
198
212
  # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
199
213
  #
200
214
  # @return [OpenAI::Models::Beta::AgentSession]
@@ -226,12 +240,11 @@ module OpenAI
226
240
  # Only return sessions whose root agent has this ID. Omit to return sessions for
227
241
  # all agents.
228
242
  #
229
- # @param limit [Integer, nil]
230
- # The maximum number of resources to return.
243
+ # @param limit [Integer]
244
+ # The maximum number of resources to return, between 1 and 100. Defaults to 20.
231
245
  #
232
246
  # @param order [Symbol, OpenAI::Models::Beta::Agents::SessionListParams::Order]
233
- # Sort order by the `created_at` timestamp. Use `asc` for ascending order or
234
- # `desc` for descending order. Defaults to `desc`.
247
+ # The order in which resources are returned. Defaults to `desc`.
235
248
  #
236
249
  # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
237
250
  #
@@ -280,55 +293,6 @@ module OpenAI
280
293
  )
281
294
  end
282
295
 
283
- # Submit input to an idle session and stream one turn through idle or failure.
284
- # The caller must be the session's only input writer during iteration.
285
- # Handlers run sequentially; failures submit a generic error without exception text.
286
- # Input and each tool result use distinct retry-safe idempotency keys.
287
- # A block closes the connection on every exit path without cancelling the turn.
288
- #
289
- # @param session_id [String]
290
- # @param input [String, Array<OpenAI::Models::Beta::AgentSessionInputMessageParam>]
291
- # @param tool_handlers [Hash{String=>Proc}]
292
- # @param on_tool_error [Proc, nil]
293
- # Beta: use with tool_handlers to log or monitor argument parsing, handler
294
- # execution, and output conversion failures locally. Receives ToolError;
295
- # API/transport errors still propagate normally. Ordinary observer errors
296
- # are ignored, and the submitted tool failure stays generic.
297
- # @param idempotency_key [String, nil] Applies only to the input submission.
298
- # @param output_type [Class<OpenAI::BaseModel>, nil] Beta: parse output without changing session configuration.
299
- # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
300
- # @yieldparam stream [OpenAI::Helpers::Agents::SessionStream]
301
- # @return [OpenAI::Helpers::Agents::SessionStream]
302
- def stream(
303
- session_id,
304
- input:,
305
- tool_handlers: {},
306
- on_tool_error: nil,
307
- idempotency_key: nil,
308
- output_type: nil,
309
- request_options: {}
310
- )
311
- stream = OpenAI::Helpers::Agents::SessionStream.new(
312
- sessions: self,
313
- session_id: session_id,
314
- input: input,
315
- tool_handlers: tool_handlers,
316
- on_tool_error: on_tool_error,
317
- idempotency_key: idempotency_key,
318
- output_type: output_type,
319
- request_options: request_options
320
- )
321
- return stream unless block_given?
322
-
323
- begin
324
- yield stream
325
- ensure
326
- stream.close
327
- end
328
-
329
- stream
330
- end
331
-
332
296
  # @api private
333
297
  #
334
298
  # @param client [OpenAI::Client]
@@ -122,7 +122,7 @@ module OpenAI
122
122
  # values. See
123
123
  # [vaults](https://developers.openai.com/api/docs/guides/agents-api/tools/vaults).
124
124
  #
125
- # @overload list(vault_id, after: nil, limit: nil, order: nil, status: nil, request_options: {})
125
+ # @overload list(vault_id, after: nil, limit: nil, metadata: nil, order: nil, status: nil, request_options: {})
126
126
  #
127
127
  # @param vault_id [String]
128
128
  # The ID of the vault.
@@ -130,13 +130,17 @@ module OpenAI
130
130
  # @param after [String]
131
131
  # Return resources after this resource ID in the selected order.
132
132
  #
133
- # @param limit [Integer, nil]
134
- # The maximum number of resources to return. Defaults to 20. Values are clamped
135
- # between 1 and 100.
133
+ # @param limit [Integer]
134
+ # The maximum number of resources to return, between 1 and 100. Defaults to 20.
135
+ #
136
+ # @param metadata [Hash{Symbol=>String}]
137
+ # Exact string matches supplied as `metadata[key]=value`. All supplied pairs must
138
+ # match. Up to 16 pairs, with keys from 1 to 64 characters and values up to 512
139
+ # characters. Filtering is eventually consistent; metadata changes may take time
140
+ # to appear.
136
141
  #
137
142
  # @param order [Symbol, OpenAI::Models::Beta::Agents::Vaults::CredentialListParams::Order]
138
- # Sort order by the `created_at` timestamp. Use `asc` for ascending order or
139
- # `desc` for descending order. Defaults to `desc`.
143
+ # The order in which resources are returned. Defaults to `desc`.
140
144
  #
141
145
  # @param status [Symbol, OpenAI::Models::Beta::Agents::VaultStatus, Array<Symbol, OpenAI::Models::Beta::Agents::VaultStatus>]
142
146
  # Filter by one status or a list, such as `status=active` or
@@ -63,21 +63,60 @@ module OpenAI
63
63
  )
64
64
  end
65
65
 
66
+ # Updates the name or metadata of an active vault. Omitted fields remain
67
+ # unchanged. See
68
+ # [vaults](https://developers.openai.com/api/docs/guides/agents-api/tools/vaults).
69
+ #
70
+ # @overload update(vault_id, metadata: nil, name: nil, request_options: {})
71
+ #
72
+ # @param vault_id [String]
73
+ # The ID of the vault.
74
+ #
75
+ # @param metadata [Hash{Symbol=>String}]
76
+ # Replaces all metadata. Omit to leave unchanged, or pass {} to clear it. Up to 16
77
+ # string key-value pairs, with keys up to 64 and values up to 512 characters.
78
+ #
79
+ # @param name [String, nil]
80
+ # A replacement name. Omit to leave unchanged, or pass null to clear it. The name
81
+ # is trimmed before storage. It must contain 1 to 256 UTF-8 bytes after trimming.
82
+ #
83
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
84
+ #
85
+ # @return [OpenAI::Models::Beta::Agents::Vault]
86
+ #
87
+ # @see OpenAI::Models::Beta::Agents::VaultUpdateParams
88
+ def update(vault_id, params = {})
89
+ parsed, options = OpenAI::Beta::Agents::VaultUpdateParams.dump_request(params)
90
+ @client.request(
91
+ method: :post,
92
+ path: ["vaults/%1$s", vault_id],
93
+ headers: {"openai-beta" => "agents=v1"},
94
+ body: parsed,
95
+ model: OpenAI::Beta::Agents::Vault,
96
+ security: {bearer_auth: true},
97
+ options: options
98
+ )
99
+ end
100
+
66
101
  # Lists vaults using ID-based pagination. See
67
102
  # [vaults](https://developers.openai.com/api/docs/guides/agents-api/tools/vaults).
68
103
  #
69
- # @overload list(after: nil, limit: nil, order: nil, status: nil, request_options: {})
104
+ # @overload list(after: nil, limit: nil, metadata: nil, order: nil, status: nil, request_options: {})
70
105
  #
71
106
  # @param after [String]
72
107
  # Return resources after this resource ID in the selected order.
73
108
  #
74
- # @param limit [Integer, nil]
75
- # The maximum number of resources to return. Defaults to 20. Values are clamped
76
- # between 1 and 100.
109
+ # @param limit [Integer]
110
+ # The maximum number of resources to return, between 1 and 100. Defaults to 20.
111
+ #
112
+ # @param metadata [Hash{Symbol=>String}]
113
+ # Exact string matches supplied as `metadata[key]=value`. All supplied pairs must
114
+ # match. Up to 16 pairs, with keys from 1 to 64 characters and values up to 512
115
+ # characters. Filtering is eventually consistent; metadata changes may take time
116
+ # to appear.
77
117
  #
78
118
  # @param order [Symbol, OpenAI::Models::Beta::Agents::VaultListParams::Order]
79
- # Sort order by the `created_at` timestamp. Use `asc` for ascending order or
80
- # `desc` for descending order. Defaults to `desc`.
119
+ # The order in which resources are returned. Defaults to `desc`.
81
120
  #
82
121
  # @param status [Symbol, OpenAI::Models::Beta::Agents::VaultStatus, Array<Symbol, OpenAI::Models::Beta::Agents::VaultStatus>]
83
122
  # Filter by one status or a list, such as `status=active` or
@@ -47,7 +47,8 @@ module OpenAI
47
47
  # verbosity.
48
48
  #
49
49
  # @param tools [Array<OpenAI::Models::Beta::PersistedAgentToolParam::Function, OpenAI::Models::Beta::PersistedAgentToolParam::ToolSearch, OpenAI::Models::Beta::PersistedAgentToolParam::ProgrammaticToolCalling, OpenAI::Models::Beta::PersistedAgentToolParam::Mcp, OpenAI::Models::Beta::PersistedAgentToolParam::WebSearch, OpenAI::Models::Beta::PersistedAgentToolParam::ComputerUse>, nil]
50
- # Tools available to the agent. Defaults to an empty list.
50
+ # Tools available to the agent. Defaults to an empty list. The tool list must fit
51
+ # within 3 MiB (3,145,728 bytes) of compact UTF-8 JSON.
51
52
  #
52
53
  # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
53
54
  #
@@ -128,7 +129,8 @@ module OpenAI
128
129
  # Configuration for text generated by the agent.
129
130
  #
130
131
  # @param tools [Array<OpenAI::Models::Beta::PersistedAgentToolParam::Function, OpenAI::Models::Beta::PersistedAgentToolParam::ToolSearch, OpenAI::Models::Beta::PersistedAgentToolParam::ProgrammaticToolCalling, OpenAI::Models::Beta::PersistedAgentToolParam::Mcp, OpenAI::Models::Beta::PersistedAgentToolParam::WebSearch, OpenAI::Models::Beta::PersistedAgentToolParam::ComputerUse>, nil]
131
- # Tools available to the agent.
132
+ # Replaces the tool list. Omit to leave it unchanged, or pass null to clear it.
133
+ # The replacement must fit within 3 MiB (3,145,728 bytes) of compact UTF-8 JSON.
132
134
  #
133
135
  # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
134
136
  #
@@ -156,8 +158,8 @@ module OpenAI
156
158
  # @param after [String]
157
159
  # Return resources after this resource ID in the selected order.
158
160
  #
159
- # @param limit [Integer, nil]
160
- # The maximum number of resources to return.
161
+ # @param limit [Integer]
162
+ # The maximum number of resources to return, between 1 and 100. Defaults to 20.
161
163
  #
162
164
  # @param order [Symbol, OpenAI::Models::Beta::AgentListParams::Order]
163
165
  # The order in which resources are returned. Defaults to `desc`.