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
@@ -29,7 +29,8 @@ module OpenAI
29
29
  # object with an `id`, for example `{ "id": "voice_1234" }`. Previews of the
30
30
  # voices are available in the
31
31
  # [Text to speech guide](https://developers.openai.com/api/docs/guides/text-to-speech#voice-options).
32
- # Custom voices must be created from audio samples.
32
+ # Custom voices must be created from audio samples. Voices created from text
33
+ # prompts are supported only in Live.
33
34
  #
34
35
  # @return [String, Symbol, OpenAI::Models::Audio::SpeechCreateParams::Voice::ID, OpenAI::Models::Audio::SpeechCreateParams::Voice]
35
36
  required :voice, union: -> { OpenAI::Audio::SpeechCreateParams::Voice }
@@ -78,7 +79,8 @@ module OpenAI
78
79
  # object with an `id`, for example `{ "id": "voice_1234" }`. Previews of the
79
80
  # voices are available in the
80
81
  # [Text to speech guide](https://developers.openai.com/api/docs/guides/text-to-speech#voice-options).
81
- # Custom voices must be created from audio samples.
82
+ # Custom voices must be created from audio samples. Voices created from text
83
+ # prompts are supported only in Live.
82
84
  #
83
85
  # @param instructions [String]
84
86
  # Control the voice of your generated audio with additional instructions. Does not
@@ -119,7 +121,8 @@ module OpenAI
119
121
  # object with an `id`, for example `{ "id": "voice_1234" }`. Previews of the
120
122
  # voices are available in the
121
123
  # [Text to speech guide](https://developers.openai.com/api/docs/guides/text-to-speech#voice-options).
122
- # Custom voices must be created from audio samples.
124
+ # Custom voices must be created from audio samples. Voices created from text
125
+ # prompts are supported only in Live.
123
126
  module Voice
124
127
  extend OpenAI::Internal::Type::Union
125
128
 
@@ -11,7 +11,6 @@ module OpenAI
11
11
 
12
12
  variant -> { OpenAI::Audio::TranslationVerbose }
13
13
 
14
- # Text, SRT, and VTT responses retain the SDK's readable IO return value.
15
14
  variant StringIO
16
15
 
17
16
  # @!method self.variants
@@ -35,8 +35,17 @@ module OpenAI
35
35
  # @return [Symbol, OpenAI::Models::Audio::Voice::Type]
36
36
  required :type, enum: -> { OpenAI::Audio::Voice::Type }
37
37
 
38
- # @!method initialize(id:, created_at:, name:, type:, object: :"audio.voice")
39
- # A custom voice that can be used for audio output.
38
+ # @!attribute prompt
39
+ # The original text prompt used to create the voice. Present for prompt-generated
40
+ # voices with a stored prompt; omitted for audio-sample voices and older voices
41
+ # without a stored prompt.
42
+ #
43
+ # @return [String, nil]
44
+ optional :prompt, String
45
+
46
+ # @!method initialize(id:, created_at:, name:, type:, prompt: nil, object: :"audio.voice")
47
+ # A custom voice that can be used for audio output. Voices created from text
48
+ # prompts are supported only in Live.
40
49
  #
41
50
  # @param id [String]
42
51
  # The voice identifier, which can be referenced in API endpoints.
@@ -50,6 +59,11 @@ module OpenAI
50
59
  # @param type [Symbol, OpenAI::Models::Audio::Voice::Type]
51
60
  # How the voice was created.
52
61
  #
62
+ # @param prompt [String]
63
+ # The original text prompt used to create the voice. Present for prompt-generated
64
+ # voices with a stored prompt; omitted for audio-sample voices and older voices
65
+ # without a stored prompt.
66
+ #
53
67
  # @param object [Symbol, :"audio.voice"]
54
68
  # The object type, which is always `audio.voice`.
55
69
 
@@ -60,6 +74,7 @@ module OpenAI
60
74
  extend OpenAI::Internal::Type::Enum
61
75
 
62
76
  AUDIO_SAMPLE = :audio_sample
77
+ PROMPT = :prompt
63
78
 
64
79
  # @!method self.values
65
80
  # @return [Array<Symbol>]
@@ -12,11 +12,11 @@ module OpenAI
12
12
  # Creates a voice from a consent recording and an audio sample. Requires
13
13
  # multipart/form-data.
14
14
  #
15
- # @return [OpenAI::Models::Audio::VoiceCreateParams::Body::AudioSample]
15
+ # @return [OpenAI::Models::Audio::VoiceCreateParams::Body::AudioSample, OpenAI::Models::Audio::VoiceCreateParams::Body::Prompt]
16
16
  required :body, union: -> { OpenAI::Audio::VoiceCreateParams::Body }
17
17
 
18
18
  # @!method initialize(body:, request_options: {})
19
- # @param body [OpenAI::Models::Audio::VoiceCreateParams::Body::AudioSample]
19
+ # @param body [OpenAI::Models::Audio::VoiceCreateParams::Body::AudioSample, OpenAI::Models::Audio::VoiceCreateParams::Body::Prompt]
20
20
  # Creates a voice from a consent recording and an audio sample. Requires
21
21
  # multipart/form-data.
22
22
  #
@@ -43,6 +43,9 @@ module OpenAI
43
43
  # Creates a voice from a consent recording and an audio sample. Requires multipart/form-data.
44
44
  variant :audio_sample, -> { OpenAI::Audio::VoiceCreateParams::Body::AudioSample }
45
45
 
46
+ # Creates a synthetic voice from a text description. Supports application/json or multipart/form-data.
47
+ variant :prompt, -> { OpenAI::Audio::VoiceCreateParams::Body::Prompt }
48
+
46
49
  class AudioSample < OpenAI::Internal::Type::BaseModel
47
50
  # @!attribute audio_sample
48
51
  # The sample audio recording file. Maximum size is 10 MiB.
@@ -111,8 +114,102 @@ module OpenAI
111
114
  end
112
115
  end
113
116
 
117
+ class Prompt < OpenAI::Internal::Type::BaseModel
118
+ # @!attribute name
119
+ # The name of the new voice.
120
+ #
121
+ # @return [String]
122
+ required :name, String
123
+
124
+ # @!attribute prompt
125
+ # A description of the desired voice. Must not contain only whitespace.
126
+ #
127
+ # @return [String]
128
+ required :prompt, String
129
+
130
+ # @!attribute type
131
+ # Set to `prompt` to create a voice from a text description.
132
+ #
133
+ # @return [Symbol, OpenAI::Models::Audio::VoiceCreateParams::Body::Prompt::Type]
134
+ required :type, enum: -> { OpenAI::Audio::VoiceCreateParams::Body::Prompt::Type }
135
+
136
+ # @!attribute model
137
+ # The voice creation model to use. Defaults to `auto`.
138
+ #
139
+ # @return [String, Symbol, OpenAI::Models::Audio::VoiceCreateParams::Body::Prompt::Model, nil]
140
+ optional :model, union: -> { OpenAI::Audio::VoiceCreateParams::Body::Prompt::Model }
141
+
142
+ # @!attribute script_hint
143
+ # Optional text for the voice to speak during creation. If omitted, a script is
144
+ # generated from the prompt. Must not be blank after trimming whitespace; scripts
145
+ # that are too short are rejected.
146
+ #
147
+ # @return [String, nil]
148
+ optional :script_hint, String
149
+
150
+ # @!method initialize(name:, prompt:, type:, model: nil, script_hint: nil)
151
+ # Creates a synthetic voice from a text description. Supports application/json or
152
+ # multipart/form-data.
153
+ #
154
+ # @param name [String]
155
+ # The name of the new voice.
156
+ #
157
+ # @param prompt [String]
158
+ # A description of the desired voice. Must not contain only whitespace.
159
+ #
160
+ # @param type [Symbol, OpenAI::Models::Audio::VoiceCreateParams::Body::Prompt::Type]
161
+ # Set to `prompt` to create a voice from a text description.
162
+ #
163
+ # @param model [String, Symbol, OpenAI::Models::Audio::VoiceCreateParams::Body::Prompt::Model]
164
+ # The voice creation model to use. Defaults to `auto`.
165
+ #
166
+ # @param script_hint [String]
167
+ # Optional text for the voice to speak during creation. If omitted, a script is
168
+ # generated from the prompt. Must not be blank after trimming whitespace; scripts
169
+ # that are too short are rejected.
170
+
171
+ # Set to `prompt` to create a voice from a text description.
172
+ #
173
+ # @see OpenAI::Models::Audio::VoiceCreateParams::Body::Prompt#type
174
+ module Type
175
+ extend OpenAI::Internal::Type::Enum
176
+
177
+ PROMPT = :prompt
178
+
179
+ # @!method self.values
180
+ # @return [Array<Symbol>]
181
+ end
182
+
183
+ # The voice creation model to use. Defaults to `auto`.
184
+ #
185
+ # @see OpenAI::Models::Audio::VoiceCreateParams::Body::Prompt#model
186
+ module Model
187
+ extend OpenAI::Internal::Type::Union
188
+
189
+ variant String
190
+
191
+ variant const: -> { OpenAI::Models::Audio::VoiceCreateParams::Body::Prompt::Model::AUTO }
192
+
193
+ variant const: -> { OpenAI::Models::Audio::VoiceCreateParams::Body::Prompt::Model::MODEL_2026_10_08 }
194
+
195
+ # @!method self.variants
196
+ # @return [Array(String, Symbol)]
197
+
198
+ define_sorbet_constant!(:Variants) do
199
+ T.type_alias { T.any(String, OpenAI::Audio::VoiceCreateParams::Body::Prompt::Model::TaggedSymbol) }
200
+ end
201
+
202
+ # @!group
203
+
204
+ AUTO = :auto
205
+ MODEL_2026_10_08 = :"2026-10-08"
206
+
207
+ # @!endgroup
208
+ end
209
+ end
210
+
114
211
  # @!method self.variants
115
- # @return [Array(OpenAI::Models::Audio::VoiceCreateParams::Body::AudioSample)]
212
+ # @return [Array(OpenAI::Models::Audio::VoiceCreateParams::Body::AudioSample, OpenAI::Models::Audio::VoiceCreateParams::Body::Prompt)]
116
213
  end
117
214
  end
118
215
  end
@@ -61,7 +61,8 @@ module OpenAI
61
61
  optional :text, -> { OpenAI::Beta::AgentTextParam }, nil?: true
62
62
 
63
63
  # @!attribute tools
64
- # Tools available to the agent. Defaults to an empty list.
64
+ # Tools available to the agent. Defaults to an empty list. The tool list must fit
65
+ # within 3 MiB (3,145,728 bytes) of compact UTF-8 JSON.
65
66
  #
66
67
  # @return [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]
67
68
  optional(
@@ -100,7 +101,8 @@ module OpenAI
100
101
  # verbosity.
101
102
  #
102
103
  # @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]
103
- # Tools available to the agent. Defaults to an empty list.
104
+ # Tools available to the agent. Defaults to an empty list. The tool list must fit
105
+ # within 3 MiB (3,145,728 bytes) of compact UTF-8 JSON.
104
106
  #
105
107
  # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}]
106
108
 
@@ -15,10 +15,10 @@ module OpenAI
15
15
  optional :after, String
16
16
 
17
17
  # @!attribute limit
18
- # The maximum number of resources to return.
18
+ # The maximum number of resources to return, between 1 and 100. Defaults to 20.
19
19
  #
20
20
  # @return [Integer, nil]
21
- optional :limit, Integer, nil?: true
21
+ optional :limit, Integer
22
22
 
23
23
  # @!attribute order
24
24
  # The order in which resources are returned. Defaults to `desc`.
@@ -30,8 +30,8 @@ module OpenAI
30
30
  # @param after [String]
31
31
  # Return resources after this resource ID in the selected order.
32
32
  #
33
- # @param limit [Integer, nil]
34
- # The maximum number of resources to return.
33
+ # @param limit [Integer]
34
+ # The maximum number of resources to return, between 1 and 100. Defaults to 20.
35
35
  #
36
36
  # @param order [Symbol, OpenAI::Models::Beta::AgentListParams::Order]
37
37
  # The order in which resources are returned. Defaults to `desc`.
@@ -80,7 +80,14 @@ module OpenAI
80
80
  # @return [Array<String>]
81
81
  required :vault_ids, OpenAI::Internal::Type::ArrayOf[String]
82
82
 
83
- # @!method initialize(id:, agent:, created_at:, environment:, error:, last_active_at:, metadata:, required_actions:, status:, usage:, vault_ids:, object: :"agent.session")
83
+ # @!attribute spend_control
84
+ # Configured spending limit and best-effort consumption, in USD cents. Unlimited
85
+ # sessions omit this object.
86
+ #
87
+ # @return [OpenAI::Models::Beta::AgentSession::SpendControl, nil]
88
+ optional :spend_control, -> { OpenAI::Beta::AgentSession::SpendControl }
89
+
90
+ # @!method initialize(id:, agent:, created_at:, environment:, error:, last_active_at:, metadata:, required_actions:, status:, usage:, vault_ids:, spend_control: nil, object: :"agent.session")
84
91
  # A Managed Agents session.
85
92
  #
86
93
  # @param id [String]
@@ -117,6 +124,10 @@ module OpenAI
117
124
  # @param vault_ids [Array<String>]
118
125
  # The IDs of vaults made available to the session.
119
126
  #
127
+ # @param spend_control [OpenAI::Models::Beta::AgentSession::SpendControl]
128
+ # Configured spending limit and best-effort consumption, in USD cents. Unlimited
129
+ # sessions omit this object.
130
+ #
120
131
  # @param object [Symbol, :"agent.session"]
121
132
  # The object type. Always `agent.session`.
122
133
 
@@ -582,6 +593,31 @@ module OpenAI
582
593
  # @!method self.values
583
594
  # @return [Array<Symbol>]
584
595
  end
596
+
597
+ # @see OpenAI::Models::Beta::AgentSession#spend_control
598
+ class SpendControl < OpenAI::Internal::Type::BaseModel
599
+ # @!attribute consumed
600
+ # Best-effort recorded spend floored to whole USD cents, or null when unavailable.
601
+ #
602
+ # @return [Integer, nil]
603
+ required :consumed, Integer, nil?: true
604
+
605
+ # @!attribute limit
606
+ # The configured positive limit in USD cents.
607
+ #
608
+ # @return [Integer]
609
+ required :limit, Integer
610
+
611
+ # @!method initialize(consumed:, limit:)
612
+ # Configured spending limit and best-effort consumption, in USD cents. Unlimited
613
+ # sessions omit this object.
614
+ #
615
+ # @param consumed [Integer, nil]
616
+ # Best-effort recorded spend floored to whole USD cents, or null when unavailable.
617
+ #
618
+ # @param limit [Integer]
619
+ # The configured positive limit in USD cents.
620
+ end
585
621
  end
586
622
  end
587
623
  end
@@ -0,0 +1,57 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Beta
6
+ class AgentSessionEnvironmentExpiredEvent < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute environment
8
+ # The current environment state.
9
+ #
10
+ # @return [OpenAI::Models::Beta::AgentSessionEnvironmentState]
11
+ required :environment, -> { OpenAI::Beta::AgentSessionEnvironmentState }
12
+
13
+ # @!attribute event_id
14
+ # The unique ID of the event.
15
+ #
16
+ # @return [String]
17
+ required :event_id, String
18
+
19
+ # @!attribute session_id
20
+ # The ID of the session associated with the event.
21
+ #
22
+ # @return [String]
23
+ required :session_id, String
24
+
25
+ # @!attribute turn_id
26
+ # The ID of the turn associated with the event, when applicable.
27
+ #
28
+ # @return [String, nil]
29
+ required :turn_id, String, nil?: true
30
+
31
+ # @!attribute type
32
+ # The type of the object. Always `agent.session.environment.expired`.
33
+ #
34
+ # @return [Symbol, :"agent.session.environment.expired"]
35
+ required :type, const: :"agent.session.environment.expired"
36
+
37
+ # @!method initialize(environment:, event_id:, session_id:, turn_id:, type: :"agent.session.environment.expired")
38
+ # Emitted after a suspended hosted session environment and its checkpoint expire.
39
+ #
40
+ # @param environment [OpenAI::Models::Beta::AgentSessionEnvironmentState]
41
+ # The current environment state.
42
+ #
43
+ # @param event_id [String]
44
+ # The unique ID of the event.
45
+ #
46
+ # @param session_id [String]
47
+ # The ID of the session associated with the event.
48
+ #
49
+ # @param turn_id [String, nil]
50
+ # The ID of the turn associated with the event, when applicable.
51
+ #
52
+ # @param type [Symbol, :"agent.session.environment.expired"]
53
+ # The type of the object. Always `agent.session.environment.expired`.
54
+ end
55
+ end
56
+ end
57
+ end
@@ -94,6 +94,12 @@ module OpenAI
94
94
  # The environment is disconnected.
95
95
  DISCONNECTED = :disconnected
96
96
 
97
+ # The environment is stopped and can be resumed from its private checkpoint.
98
+ SUSPENDED = :suspended
99
+
100
+ # The environment and its private checkpoint have expired.
101
+ EXPIRED = :expired
102
+
97
103
  # The environment failed to connect.
98
104
  FAILED = :failed
99
105
 
@@ -0,0 +1,57 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Beta
6
+ class AgentSessionEnvironmentSuspendedEvent < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute environment
8
+ # The current environment state.
9
+ #
10
+ # @return [OpenAI::Models::Beta::AgentSessionEnvironmentState]
11
+ required :environment, -> { OpenAI::Beta::AgentSessionEnvironmentState }
12
+
13
+ # @!attribute event_id
14
+ # The unique ID of the event.
15
+ #
16
+ # @return [String]
17
+ required :event_id, String
18
+
19
+ # @!attribute session_id
20
+ # The ID of the session associated with the event.
21
+ #
22
+ # @return [String]
23
+ required :session_id, String
24
+
25
+ # @!attribute turn_id
26
+ # The ID of the turn associated with the event, when applicable.
27
+ #
28
+ # @return [String, nil]
29
+ required :turn_id, String, nil?: true
30
+
31
+ # @!attribute type
32
+ # The type of the object. Always `agent.session.environment.suspended`.
33
+ #
34
+ # @return [Symbol, :"agent.session.environment.suspended"]
35
+ required :type, const: :"agent.session.environment.suspended"
36
+
37
+ # @!method initialize(environment:, event_id:, session_id:, turn_id:, type: :"agent.session.environment.suspended")
38
+ # Emitted after an idle hosted session environment is checkpointed and stopped.
39
+ #
40
+ # @param environment [OpenAI::Models::Beta::AgentSessionEnvironmentState]
41
+ # The current environment state.
42
+ #
43
+ # @param event_id [String]
44
+ # The unique ID of the event.
45
+ #
46
+ # @param session_id [String]
47
+ # The ID of the session associated with the event.
48
+ #
49
+ # @param turn_id [String, nil]
50
+ # The ID of the turn associated with the event, when applicable.
51
+ #
52
+ # @param type [Symbol, :"agent.session.environment.suspended"]
53
+ # The type of the object. Always `agent.session.environment.suspended`.
54
+ end
55
+ end
56
+ end
57
+ end
@@ -15,6 +15,12 @@ module OpenAI
15
15
  # Emitted when a hosted session environment is ready to connect.
16
16
  variant :"agent.session.environment.ready", -> { OpenAI::Beta::AgentSessionEnvironmentReadyEvent }
17
17
 
18
+ # Emitted after an idle hosted session environment is checkpointed and stopped.
19
+ variant :"agent.session.environment.suspended", -> { OpenAI::Beta::AgentSessionEnvironmentSuspendedEvent }
20
+
21
+ # Emitted after a suspended hosted session environment and its checkpoint expire.
22
+ variant :"agent.session.environment.expired", -> { OpenAI::Beta::AgentSessionEnvironmentExpiredEvent }
23
+
18
24
  # Emitted after a hosted sandbox is replaced. Conversation history survives; changes to the previous sandbox's files and processes do not.
19
25
  variant :"agent.session.environment.reset", -> { OpenAI::Beta::AgentSessionEnvironmentResetEvent }
20
26
 
@@ -124,7 +130,7 @@ module OpenAI
124
130
  )
125
131
 
126
132
  # @!method self.variants
127
- # @return [Array(OpenAI::Models::Beta::AgentSessionErrorEvent, OpenAI::Models::Beta::AgentSessionEnvironmentReadyEvent, OpenAI::Models::Beta::AgentSessionEnvironmentResetEvent, OpenAI::Models::Beta::AgentOutputCommandExecutionOutputDeltaEvent, OpenAI::Models::Beta::AgentSessionCreatedEvent, OpenAI::Models::Beta::AgentSessionTurnCreatedEvent, OpenAI::Models::Beta::AgentSessionTurnInProgressEvent, OpenAI::Models::Beta::AgentSessionTurnCompletedEvent, OpenAI::Models::Beta::AgentSessionTurnFailedEvent, OpenAI::Models::Beta::AgentSessionTurnCancelledEvent, OpenAI::Models::Beta::AgentSessionTurnItemAddedEvent, OpenAI::Models::Beta::AgentSessionIdleEvent, OpenAI::Models::Beta::AgentSessionInProgressEvent, OpenAI::Models::Beta::AgentSessionRequiresActionEvent, OpenAI::Models::Beta::AgentSessionFailedEvent, OpenAI::Models::Beta::AgentSessionEnvironmentPendingEvent, OpenAI::Models::Beta::AgentSessionEnvironmentConnectedEvent, OpenAI::Models::Beta::AgentSessionEnvironmentDisconnectedEvent, OpenAI::Models::Beta::AgentSessionEnvironmentFailedEvent, OpenAI::Models::Beta::AgentSessionSubagentCreatedEvent, OpenAI::Models::Beta::AgentSessionSubagentActiveEvent, OpenAI::Models::Beta::AgentSessionSubagentClosedEvent, OpenAI::Models::Beta::AgentSessionTurnItemDoneEvent, OpenAI::Models::Beta::AgentSessionTurnContentPartAddedEvent, OpenAI::Models::Beta::AgentSessionTurnContentPartDoneEvent, OpenAI::Models::Beta::AgentSessionTurnOutputTextDeltaEvent, OpenAI::Models::Beta::AgentSessionTurnOutputTextDoneEvent, OpenAI::Models::Beta::AgentSessionTurnReasoningSummaryPartAddedEvent, OpenAI::Models::Beta::AgentSessionTurnReasoningSummaryPartDoneEvent, OpenAI::Models::Beta::AgentSessionTurnReasoningSummaryTextDeltaEvent, OpenAI::Models::Beta::AgentSessionTurnReasoningSummaryTextDoneEvent)]
133
+ # @return [Array(OpenAI::Models::Beta::AgentSessionErrorEvent, OpenAI::Models::Beta::AgentSessionEnvironmentReadyEvent, OpenAI::Models::Beta::AgentSessionEnvironmentSuspendedEvent, OpenAI::Models::Beta::AgentSessionEnvironmentExpiredEvent, OpenAI::Models::Beta::AgentSessionEnvironmentResetEvent, OpenAI::Models::Beta::AgentOutputCommandExecutionOutputDeltaEvent, OpenAI::Models::Beta::AgentSessionCreatedEvent, OpenAI::Models::Beta::AgentSessionTurnCreatedEvent, OpenAI::Models::Beta::AgentSessionTurnInProgressEvent, OpenAI::Models::Beta::AgentSessionTurnCompletedEvent, OpenAI::Models::Beta::AgentSessionTurnFailedEvent, OpenAI::Models::Beta::AgentSessionTurnCancelledEvent, OpenAI::Models::Beta::AgentSessionTurnItemAddedEvent, OpenAI::Models::Beta::AgentSessionIdleEvent, OpenAI::Models::Beta::AgentSessionInProgressEvent, OpenAI::Models::Beta::AgentSessionRequiresActionEvent, OpenAI::Models::Beta::AgentSessionFailedEvent, OpenAI::Models::Beta::AgentSessionEnvironmentPendingEvent, OpenAI::Models::Beta::AgentSessionEnvironmentConnectedEvent, OpenAI::Models::Beta::AgentSessionEnvironmentDisconnectedEvent, OpenAI::Models::Beta::AgentSessionEnvironmentFailedEvent, OpenAI::Models::Beta::AgentSessionSubagentCreatedEvent, OpenAI::Models::Beta::AgentSessionSubagentActiveEvent, OpenAI::Models::Beta::AgentSessionSubagentClosedEvent, OpenAI::Models::Beta::AgentSessionTurnItemDoneEvent, OpenAI::Models::Beta::AgentSessionTurnContentPartAddedEvent, OpenAI::Models::Beta::AgentSessionTurnContentPartDoneEvent, OpenAI::Models::Beta::AgentSessionTurnOutputTextDeltaEvent, OpenAI::Models::Beta::AgentSessionTurnOutputTextDoneEvent, OpenAI::Models::Beta::AgentSessionTurnReasoningSummaryPartAddedEvent, OpenAI::Models::Beta::AgentSessionTurnReasoningSummaryPartDoneEvent, OpenAI::Models::Beta::AgentSessionTurnReasoningSummaryTextDeltaEvent, OpenAI::Models::Beta::AgentSessionTurnReasoningSummaryTextDoneEvent)]
128
134
  end
129
135
  end
130
136
  end
@@ -66,7 +66,8 @@ module OpenAI
66
66
  optional :text, -> { OpenAI::Beta::AgentTextParam }, nil?: true
67
67
 
68
68
  # @!attribute tools
69
- # Tools available to the agent.
69
+ # Replaces the tool list. Omit to leave it unchanged, or pass null to clear it.
70
+ # The replacement must fit within 3 MiB (3,145,728 bytes) of compact UTF-8 JSON.
70
71
  #
71
72
  # @return [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]
72
73
  optional(
@@ -107,7 +108,8 @@ module OpenAI
107
108
  # Configuration for text generated by the agent.
108
109
  #
109
110
  # @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]
110
- # Tools available to the agent.
111
+ # Replaces the tool list. Omit to leave it unchanged, or pass null to clear it.
112
+ # The replacement must fit within 3 MiB (3,145,728 bytes) of compact UTF-8 JSON.
111
113
  #
112
114
  # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}]
113
115
 
@@ -84,6 +84,9 @@ module OpenAI
84
84
 
85
85
  CONNECTED = :connected
86
86
  DISCONNECTED = :disconnected
87
+ # The sandbox is stopped and can be resumed from its private checkpoint.
88
+ SUSPENDED = :suspended
89
+
87
90
  EXPIRED = :expired
88
91
  FAILED = :failed
89
92
 
@@ -10,19 +10,19 @@ module OpenAI
10
10
  include OpenAI::Internal::Type::RequestParameters
11
11
 
12
12
  # @!attribute after
13
- # Return environments after this environment ID in the selected order.
13
+ # Return resources after this resource ID in the selected order.
14
14
  #
15
15
  # @return [String, nil]
16
16
  optional :after, String
17
17
 
18
18
  # @!attribute limit
19
- # The maximum number of environments to return, between 1 and 100. Defaults to 20.
19
+ # The maximum number of resources to return, between 1 and 100. Defaults to 20.
20
20
  #
21
21
  # @return [Integer, nil]
22
22
  optional :limit, Integer
23
23
 
24
24
  # @!attribute order
25
- # The order in which environments are returned. Defaults to `desc`.
25
+ # The order in which resources are returned. Defaults to `desc`.
26
26
  #
27
27
  # @return [Symbol, OpenAI::Models::Beta::Agents::EnvironmentListParams::Order, nil]
28
28
  optional :order, enum: -> { OpenAI::Beta::Agents::EnvironmentListParams::Order }
@@ -35,20 +35,20 @@ module OpenAI
35
35
 
36
36
  # @!method initialize(after: nil, limit: nil, order: nil, type: nil, request_options: {})
37
37
  # @param after [String]
38
- # Return environments after this environment ID in the selected order.
38
+ # Return resources after this resource ID in the selected order.
39
39
  #
40
40
  # @param limit [Integer]
41
- # The maximum number of environments to return, between 1 and 100. Defaults to 20.
41
+ # The maximum number of resources to return, between 1 and 100. Defaults to 20.
42
42
  #
43
43
  # @param order [Symbol, OpenAI::Models::Beta::Agents::EnvironmentListParams::Order]
44
- # The order in which environments are returned. Defaults to `desc`.
44
+ # The order in which resources are returned. Defaults to `desc`.
45
45
  #
46
46
  # @param type [Symbol, OpenAI::Models::Beta::Agents::EnvironmentListParams::Type]
47
47
  # The hosting type to list. Defaults to `openai_hosted`.
48
48
  #
49
49
  # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}]
50
50
 
51
- # The order in which environments are returned. Defaults to `desc`.
51
+ # The order in which resources are returned. Defaults to `desc`.
52
52
  module Order
53
53
  extend OpenAI::Internal::Type::Enum
54
54
 
@@ -47,13 +47,26 @@ module OpenAI
47
47
  # @return [Hash{Symbol=>String}, nil]
48
48
  optional :metadata, OpenAI::Internal::Type::HashOf[String], nil?: true
49
49
 
50
+ # @!attribute spend_control
51
+ # Optional spending limit in USD cents. Omission or null creates an unlimited
52
+ # session.
53
+ #
54
+ # @return [OpenAI::Models::Beta::Agents::SessionCreateParams::SpendControl, nil]
55
+ optional(
56
+ :spend_control,
57
+ -> {
58
+ OpenAI::Beta::Agents::SessionCreateParams::SpendControl
59
+ },
60
+ nil?: true
61
+ )
62
+
50
63
  # @!attribute vault_ids
51
64
  # The IDs of vaults made available to the session.
52
65
  #
53
66
  # @return [Array<String>, nil]
54
67
  optional :vault_ids, OpenAI::Internal::Type::ArrayOf[String], nil?: true
55
68
 
56
- # @!method initialize(environment:, agent: nil, agent_id: nil, input: nil, metadata: nil, vault_ids: nil, request_options: {})
69
+ # @!method initialize(environment:, agent: nil, agent_id: nil, input: nil, metadata: nil, spend_control: nil, vault_ids: nil, request_options: {})
57
70
  # @param environment [OpenAI::Models::Beta::EnvironmentParam::None, OpenAI::Models::Beta::EnvironmentParam::OpenAIHosted, OpenAI::Models::Beta::EnvironmentParam::SelfHosted]
58
71
  # An inline execution environment or a reference to an environment template.
59
72
  #
@@ -75,6 +88,10 @@ module OpenAI
75
88
  # Up to 16 string key-value pairs, with keys up to 64 and values up to 512
76
89
  # characters. Omission or null defaults to an empty map.
77
90
  #
91
+ # @param spend_control [OpenAI::Models::Beta::Agents::SessionCreateParams::SpendControl, nil]
92
+ # Optional spending limit in USD cents. Omission or null creates an unlimited
93
+ # session.
94
+ #
78
95
  # @param vault_ids [Array<String>, nil]
79
96
  # The IDs of vaults made available to the session.
80
97
  #
@@ -124,7 +141,9 @@ module OpenAI
124
141
  optional :text, -> { OpenAI::Beta::AgentTextParam }, nil?: true
125
142
 
126
143
  # @!attribute tools
127
- # Tools available to the agent. Omit to inherit, or pass null to clear them.
144
+ # Tools available to the agent. Omit to inherit, or pass null to clear them. The
145
+ # resolved tool list must fit within 3 MiB (3,145,728 bytes) of compact UTF-8
146
+ # JSON.
128
147
  #
129
148
  # @return [Array<OpenAI::Models::Beta::AgentToolParam::Function, OpenAI::Models::Beta::AgentToolParam::ToolSearch, OpenAI::Models::Beta::AgentToolParam::ProgrammaticToolCalling, OpenAI::Models::Beta::AgentToolParam::Mcp, OpenAI::Models::Beta::AgentToolParam::WebSearch, OpenAI::Models::Beta::AgentToolParam::ComputerUse>, nil]
130
149
  optional(
@@ -160,7 +179,9 @@ module OpenAI
160
179
  # Configuration for text generated by the agent.
161
180
  #
162
181
  # @param tools [Array<OpenAI::Models::Beta::AgentToolParam::Function, OpenAI::Models::Beta::AgentToolParam::ToolSearch, OpenAI::Models::Beta::AgentToolParam::ProgrammaticToolCalling, OpenAI::Models::Beta::AgentToolParam::Mcp, OpenAI::Models::Beta::AgentToolParam::WebSearch, OpenAI::Models::Beta::AgentToolParam::ComputerUse>, nil]
163
- # Tools available to the agent. Omit to inherit, or pass null to clear them.
182
+ # Tools available to the agent. Omit to inherit, or pass null to clear them. The
183
+ # resolved tool list must fit within 3 MiB (3,145,728 bytes) of compact UTF-8
184
+ # JSON.
164
185
 
165
186
  # The service tier used for model requests.
166
187
  #
@@ -207,6 +228,21 @@ module OpenAI
207
228
  -> { OpenAI::Beta::AgentSessionInputMessageParam }
208
229
  ]
209
230
  end
231
+
232
+ class SpendControl < OpenAI::Internal::Type::BaseModel
233
+ # @!attribute limit
234
+ # Positive USD cents, or null to remove the limit.
235
+ #
236
+ # @return [Integer, nil]
237
+ required :limit, Integer, nil?: true
238
+
239
+ # @!method initialize(limit:)
240
+ # Optional spending limit in USD cents. Omission or null creates an unlimited
241
+ # session.
242
+ #
243
+ # @param limit [Integer, nil]
244
+ # Positive USD cents, or null to remove the limit.
245
+ end
210
246
  end
211
247
  end
212
248
  end