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
@@ -28,7 +28,9 @@ module OpenAI
28
28
  ?request_options: OpenAI::RequestOptions
29
29
  }
30
30
 
31
- type body = OpenAI::Audio::VoiceCreateParams::Body::AudioSample
31
+ type body =
32
+ OpenAI::Audio::VoiceCreateParams::Body::AudioSample
33
+ | OpenAI::Audio::VoiceCreateParams::Body::Prompt
32
34
 
33
35
  module Body
34
36
  extend OpenAI::Internal::Type::Union
@@ -106,6 +108,93 @@ module OpenAI
106
108
  end
107
109
  end
108
110
 
111
+ type prompt =
112
+ {
113
+ name: String,
114
+ prompt: String,
115
+ type: OpenAI::Models::Audio::VoiceCreateParams::Body::Prompt::type_,
116
+ ?model: OpenAI::Models::Audio::VoiceCreateParams::Body::Prompt::model,
117
+ ?script_hint: String
118
+ }
119
+
120
+ class Prompt < OpenAI::Internal::Type::BaseModel
121
+ # The name of the new voice.
122
+ attr_accessor name: String
123
+
124
+ # A description of the desired voice. Must not contain only whitespace.
125
+ attr_accessor prompt: String
126
+
127
+ # Set to `prompt` to create a voice from a text description.
128
+ attr_accessor type: OpenAI::Models::Audio::VoiceCreateParams::Body::Prompt::type_
129
+
130
+ # The voice creation model to use. Defaults to `auto`.
131
+ attr_reader model: OpenAI::Models::Audio::VoiceCreateParams::Body::Prompt::model?
132
+
133
+ # The voice creation model to use. Defaults to `auto`.
134
+ def model=: (
135
+ OpenAI::Models::Audio::VoiceCreateParams::Body::Prompt::model
136
+ ) -> OpenAI::Models::Audio::VoiceCreateParams::Body::Prompt::model
137
+
138
+ # Optional text for the voice to speak during creation. If omitted, a script is
139
+ # generated from the prompt. Must not be blank after trimming whitespace; scripts
140
+ # that are too short are rejected.
141
+ attr_reader script_hint: String?
142
+
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
+ def script_hint=: (String) -> String
147
+
148
+ # @param name
149
+ # The name of the new voice.
150
+ # @param prompt
151
+ # A description of the desired voice. Must not contain only whitespace.
152
+ # @param type
153
+ # Set to `prompt` to create a voice from a text description.
154
+ # @param model
155
+ # The voice creation model to use. Defaults to `auto`.
156
+ # @param script_hint
157
+ # Optional text for the voice to speak during creation. If omitted, a script is
158
+ # generated from the prompt. Must not be blank after trimming whitespace; scripts
159
+ # that are too short are rejected.
160
+ def initialize: (
161
+ name: String,
162
+ prompt: String,
163
+ type: OpenAI::Models::Audio::VoiceCreateParams::Body::Prompt::type_,
164
+ ?model: OpenAI::Models::Audio::VoiceCreateParams::Body::Prompt::model,
165
+ ?script_hint: String
166
+ ) -> void
167
+
168
+ def to_hash: -> {
169
+ name: String,
170
+ prompt: String,
171
+ type: OpenAI::Models::Audio::VoiceCreateParams::Body::Prompt::type_,
172
+ ?model: OpenAI::Models::Audio::VoiceCreateParams::Body::Prompt::model,
173
+ ?script_hint: String
174
+ }
175
+
176
+ type type_ = :prompt
177
+
178
+ module Type
179
+ extend OpenAI::Internal::Type::Enum
180
+
181
+ PROMPT: :prompt
182
+
183
+ def self?.values: -> ::Array[OpenAI::Models::Audio::VoiceCreateParams::Body::Prompt::type_]
184
+ end
185
+
186
+ type model = String | :auto | :"2026-10-08"
187
+
188
+ module Model
189
+ extend OpenAI::Internal::Type::Union
190
+
191
+ def self?.variants: -> ::Array[OpenAI::Models::Audio::VoiceCreateParams::Body::Prompt::model]
192
+
193
+ AUTO: :auto
194
+ MODEL_2026_10_08: :"2026-10-08"
195
+ end
196
+ end
197
+
109
198
  def self?.variants: -> ::Array[OpenAI::Models::Audio::VoiceCreateParams::body]
110
199
  end
111
200
  end
@@ -47,7 +47,8 @@ module OpenAI
47
47
  # verbosity.
48
48
  attr_accessor text: OpenAI::Beta::AgentTextParam?
49
49
 
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
  attr_accessor tools: ::Array[OpenAI::Models::Beta::persisted_agent_tool_param]?
52
53
 
53
54
  # @param model
@@ -71,7 +72,8 @@ module OpenAI
71
72
  # Configuration for generated text. Defaults to the `text` format and medium
72
73
  # verbosity.
73
74
  # @param tools
74
- # Tools available to the agent. Defaults to an empty list.
75
+ # Tools available to the agent. Defaults to an empty list. The tool list must fit
76
+ # within 3 MiB (3,145,728 bytes) of compact UTF-8 JSON.
75
77
  def initialize: (
76
78
  model: String,
77
79
  ?instructions: String?,
@@ -4,7 +4,7 @@ module OpenAI
4
4
  type agent_list_params =
5
5
  {
6
6
  ?after: String,
7
- ?limit: Integer?,
7
+ ?limit: Integer,
8
8
  ?order: OpenAI::Models::Beta::AgentListParams::order,
9
9
  ?request_options: OpenAI::request_opts
10
10
  }
@@ -19,8 +19,11 @@ module OpenAI
19
19
  # Return resources after this resource ID in the selected order.
20
20
  def after=: (String) -> String
21
21
 
22
- # The maximum number of resources to return.
23
- attr_accessor limit: Integer?
22
+ # The maximum number of resources to return, between 1 and 100. Defaults to 20.
23
+ attr_reader limit: Integer?
24
+
25
+ # The maximum number of resources to return, between 1 and 100. Defaults to 20.
26
+ def limit=: (Integer) -> Integer
24
27
 
25
28
  # The order in which resources are returned. Defaults to `desc`.
26
29
  attr_reader order: OpenAI::Models::Beta::AgentListParams::order?
@@ -33,19 +36,19 @@ module OpenAI
33
36
  # @param after
34
37
  # Return resources after this resource ID in the selected order.
35
38
  # @param limit
36
- # The maximum number of resources to return.
39
+ # The maximum number of resources to return, between 1 and 100. Defaults to 20.
37
40
  # @param order
38
41
  # The order in which resources are returned. Defaults to `desc`.
39
42
  def initialize: (
40
43
  ?after: String,
41
- ?limit: Integer?,
44
+ ?limit: Integer,
42
45
  ?order: OpenAI::Models::Beta::AgentListParams::order,
43
46
  ?request_options: OpenAI::request_opts
44
47
  ) -> void
45
48
 
46
49
  def to_hash: -> {
47
50
  ?after: String,
48
- ?limit: Integer?,
51
+ ?limit: Integer,
49
52
  ?order: OpenAI::Models::Beta::AgentListParams::order,
50
53
  ?request_options: OpenAI::RequestOptions
51
54
  }
@@ -14,7 +14,8 @@ module OpenAI
14
14
  required_actions: ::Array[OpenAI::Models::Beta::AgentSession::required_action],
15
15
  status: OpenAI::Models::Beta::AgentSession::status,
16
16
  usage: OpenAI::Beta::TokenUsage?,
17
- vault_ids: ::Array[String]
17
+ vault_ids: ::Array[String],
18
+ ?spend_control: OpenAI::Beta::AgentSession::SpendControl
18
19
  }
19
20
 
20
21
  class AgentSession < OpenAI::Internal::Type::BaseModel
@@ -55,6 +56,16 @@ module OpenAI
55
56
  # The IDs of vaults made available to the session.
56
57
  attr_accessor vault_ids: ::Array[String]
57
58
 
59
+ # Configured spending limit and best-effort consumption, in USD cents. Unlimited
60
+ # sessions omit this object.
61
+ attr_reader spend_control: OpenAI::Beta::AgentSession::SpendControl?
62
+
63
+ # Configured spending limit and best-effort consumption, in USD cents. Unlimited
64
+ # sessions omit this object.
65
+ def spend_control=: (
66
+ OpenAI::Beta::AgentSession::SpendControl
67
+ ) -> OpenAI::Beta::AgentSession::SpendControl
68
+
58
69
  # @param id
59
70
  # The ID of the session.
60
71
  # @param agent
@@ -78,6 +89,9 @@ module OpenAI
78
89
  # change.
79
90
  # @param vault_ids
80
91
  # The IDs of vaults made available to the session.
92
+ # @param spend_control
93
+ # Configured spending limit and best-effort consumption, in USD cents. Unlimited
94
+ # sessions omit this object.
81
95
  # @param object
82
96
  # The object type. Always `agent.session`.
83
97
  def initialize: (
@@ -92,6 +106,7 @@ module OpenAI
92
106
  status: OpenAI::Models::Beta::AgentSession::status,
93
107
  usage: OpenAI::Beta::TokenUsage?,
94
108
  vault_ids: ::Array[String],
109
+ ?spend_control: OpenAI::Beta::AgentSession::SpendControl,
95
110
  ?object: :"agent.session"
96
111
  ) -> void
97
112
 
@@ -107,7 +122,8 @@ module OpenAI
107
122
  required_actions: ::Array[OpenAI::Models::Beta::AgentSession::required_action],
108
123
  status: OpenAI::Models::Beta::AgentSession::status,
109
124
  usage: OpenAI::Beta::TokenUsage?,
110
- vault_ids: ::Array[String]
125
+ vault_ids: ::Array[String],
126
+ ?spend_control: OpenAI::Beta::AgentSession::SpendControl
111
127
  }
112
128
 
113
129
  type agent =
@@ -532,6 +548,24 @@ module OpenAI
532
548
 
533
549
  def self?.values: -> ::Array[OpenAI::Models::Beta::AgentSession::status]
534
550
  end
551
+
552
+ type spend_control = { consumed: Integer?, limit: Integer }
553
+
554
+ class SpendControl < OpenAI::Internal::Type::BaseModel
555
+ # Best-effort recorded spend floored to whole USD cents, or null when unavailable.
556
+ attr_accessor consumed: Integer?
557
+
558
+ # The configured positive limit in USD cents.
559
+ attr_accessor limit: Integer
560
+
561
+ # @param consumed
562
+ # Best-effort recorded spend floored to whole USD cents, or null when unavailable.
563
+ # @param limit
564
+ # The configured positive limit in USD cents.
565
+ def initialize: (consumed: Integer?, limit: Integer) -> void
566
+
567
+ def to_hash: -> { consumed: Integer?, limit: Integer }
568
+ end
535
569
  end
536
570
  end
537
571
  end
@@ -0,0 +1,57 @@
1
+ module OpenAI
2
+ module Models
3
+ module Beta
4
+ type agent_session_environment_expired_event =
5
+ {
6
+ environment: OpenAI::Beta::AgentSessionEnvironmentState,
7
+ event_id: String,
8
+ session_id: String,
9
+ turn_id: String?,
10
+ ?type: :"agent.session.environment.expired"
11
+ }
12
+
13
+ class AgentSessionEnvironmentExpiredEvent < OpenAI::Internal::Type::BaseModel
14
+ # The current environment state.
15
+ attr_accessor environment: OpenAI::Beta::AgentSessionEnvironmentState
16
+
17
+ # The unique ID of the event.
18
+ attr_accessor event_id: String
19
+
20
+ # The ID of the session associated with the event.
21
+ attr_accessor session_id: String
22
+
23
+ # The ID of the turn associated with the event, when applicable.
24
+ attr_accessor turn_id: String?
25
+
26
+ # The type of the object. Always `agent.session.environment.expired`.
27
+ attr_accessor type: :"agent.session.environment.expired"
28
+
29
+ # @param environment
30
+ # The current environment state.
31
+ # @param event_id
32
+ # The unique ID of the event.
33
+ # @param session_id
34
+ # The ID of the session associated with the event.
35
+ # @param turn_id
36
+ # The ID of the turn associated with the event, when applicable.
37
+ # @param type
38
+ # The type of the object. Always `agent.session.environment.expired`.
39
+ def initialize: (
40
+ environment: OpenAI::Beta::AgentSessionEnvironmentState,
41
+ event_id: String,
42
+ session_id: String,
43
+ turn_id: String?,
44
+ ?type: :"agent.session.environment.expired"
45
+ ) -> void
46
+
47
+ def to_hash: -> {
48
+ environment: OpenAI::Beta::AgentSessionEnvironmentState,
49
+ event_id: String,
50
+ session_id: String,
51
+ turn_id: String?,
52
+ ?type: :"agent.session.environment.expired"
53
+ }
54
+ end
55
+ end
56
+ end
57
+ end
@@ -67,7 +67,14 @@ module OpenAI
67
67
  def to_hash: -> { code: String, message: String, type: String }
68
68
  end
69
69
 
70
- type status = :pending | :ready | :connected | :disconnected | :failed
70
+ type status =
71
+ :pending
72
+ | :ready
73
+ | :connected
74
+ | :disconnected
75
+ | :suspended
76
+ | :expired
77
+ | :failed
71
78
 
72
79
  module Status
73
80
  extend OpenAI::Internal::Type::Enum
@@ -84,6 +91,12 @@ module OpenAI
84
91
  # The environment is disconnected.
85
92
  DISCONNECTED: :disconnected
86
93
 
94
+ # The environment is stopped and can be resumed from its private checkpoint.
95
+ SUSPENDED: :suspended
96
+
97
+ # The environment and its private checkpoint have expired.
98
+ EXPIRED: :expired
99
+
87
100
  # The environment failed to connect.
88
101
  FAILED: :failed
89
102
 
@@ -0,0 +1,57 @@
1
+ module OpenAI
2
+ module Models
3
+ module Beta
4
+ type agent_session_environment_suspended_event =
5
+ {
6
+ environment: OpenAI::Beta::AgentSessionEnvironmentState,
7
+ event_id: String,
8
+ session_id: String,
9
+ turn_id: String?,
10
+ ?type: :"agent.session.environment.suspended"
11
+ }
12
+
13
+ class AgentSessionEnvironmentSuspendedEvent < OpenAI::Internal::Type::BaseModel
14
+ # The current environment state.
15
+ attr_accessor environment: OpenAI::Beta::AgentSessionEnvironmentState
16
+
17
+ # The unique ID of the event.
18
+ attr_accessor event_id: String
19
+
20
+ # The ID of the session associated with the event.
21
+ attr_accessor session_id: String
22
+
23
+ # The ID of the turn associated with the event, when applicable.
24
+ attr_accessor turn_id: String?
25
+
26
+ # The type of the object. Always `agent.session.environment.suspended`.
27
+ attr_accessor type: :"agent.session.environment.suspended"
28
+
29
+ # @param environment
30
+ # The current environment state.
31
+ # @param event_id
32
+ # The unique ID of the event.
33
+ # @param session_id
34
+ # The ID of the session associated with the event.
35
+ # @param turn_id
36
+ # The ID of the turn associated with the event, when applicable.
37
+ # @param type
38
+ # The type of the object. Always `agent.session.environment.suspended`.
39
+ def initialize: (
40
+ environment: OpenAI::Beta::AgentSessionEnvironmentState,
41
+ event_id: String,
42
+ session_id: String,
43
+ turn_id: String?,
44
+ ?type: :"agent.session.environment.suspended"
45
+ ) -> void
46
+
47
+ def to_hash: -> {
48
+ environment: OpenAI::Beta::AgentSessionEnvironmentState,
49
+ event_id: String,
50
+ session_id: String,
51
+ turn_id: String?,
52
+ ?type: :"agent.session.environment.suspended"
53
+ }
54
+ end
55
+ end
56
+ end
57
+ end
@@ -4,6 +4,8 @@ module OpenAI
4
4
  type agent_session_event =
5
5
  OpenAI::Beta::AgentSessionErrorEvent
6
6
  | OpenAI::Beta::AgentSessionEnvironmentReadyEvent
7
+ | OpenAI::Beta::AgentSessionEnvironmentSuspendedEvent
8
+ | OpenAI::Beta::AgentSessionEnvironmentExpiredEvent
7
9
  | OpenAI::Beta::AgentSessionEnvironmentResetEvent
8
10
  | OpenAI::Beta::AgentOutputCommandExecutionOutputDeltaEvent
9
11
  | OpenAI::Beta::AgentSessionCreatedEvent
@@ -53,7 +53,8 @@ module OpenAI
53
53
  # Configuration for text generated by the agent.
54
54
  attr_accessor text: OpenAI::Beta::AgentTextParam?
55
55
 
56
- # Tools available to the agent.
56
+ # Replaces the tool list. Omit to leave it unchanged, or pass null to clear it.
57
+ # The replacement must fit within 3 MiB (3,145,728 bytes) of compact UTF-8 JSON.
57
58
  attr_accessor tools: ::Array[OpenAI::Models::Beta::persisted_agent_tool_param]?
58
59
 
59
60
  # @param instructions
@@ -77,7 +78,8 @@ module OpenAI
77
78
  # @param text
78
79
  # Configuration for text generated by the agent.
79
80
  # @param tools
80
- # Tools available to the agent.
81
+ # Replaces the tool list. Omit to leave it unchanged, or pass null to clear it.
82
+ # The replacement must fit within 3 MiB (3,145,728 bytes) of compact UTF-8 JSON.
81
83
  def initialize: (
82
84
  agent_id: String,
83
85
  ?instructions: String?,
@@ -70,7 +70,13 @@ module OpenAI
70
70
  }
71
71
 
72
72
  type status =
73
- :pending | :ready | :connected | :disconnected | :expired | :failed
73
+ :pending
74
+ | :ready
75
+ | :connected
76
+ | :disconnected
77
+ | :suspended
78
+ | :expired
79
+ | :failed
74
80
 
75
81
  module Status
76
82
  extend OpenAI::Internal::Type::Enum
@@ -82,6 +88,10 @@ module OpenAI
82
88
 
83
89
  CONNECTED: :connected
84
90
  DISCONNECTED: :disconnected
91
+
92
+ # The sandbox is stopped and can be resumed from its private checkpoint.
93
+ SUSPENDED: :suspended
94
+
85
95
  EXPIRED: :expired
86
96
  FAILED: :failed
87
97
 
@@ -15,22 +15,22 @@ module OpenAI
15
15
  extend OpenAI::Internal::Type::RequestParameters::Converter
16
16
  include OpenAI::Internal::Type::RequestParameters
17
17
 
18
- # Return environments after this environment ID in the selected order.
18
+ # Return resources after this resource ID in the selected order.
19
19
  attr_reader after: String?
20
20
 
21
- # Return environments after this environment ID in the selected order.
21
+ # Return resources after this resource ID in the selected order.
22
22
  def after=: (String) -> String
23
23
 
24
- # The maximum number of environments to return, between 1 and 100. Defaults to 20.
24
+ # The maximum number of resources to return, between 1 and 100. Defaults to 20.
25
25
  attr_reader limit: Integer?
26
26
 
27
- # The maximum number of environments to return, between 1 and 100. Defaults to 20.
27
+ # The maximum number of resources to return, between 1 and 100. Defaults to 20.
28
28
  def limit=: (Integer) -> Integer
29
29
 
30
- # The order in which environments are returned. Defaults to `desc`.
30
+ # The order in which resources are returned. Defaults to `desc`.
31
31
  attr_reader order: OpenAI::Models::Beta::Agents::EnvironmentListParams::order?
32
32
 
33
- # The order in which environments are returned. Defaults to `desc`.
33
+ # The order in which resources are returned. Defaults to `desc`.
34
34
  def order=: (
35
35
  OpenAI::Models::Beta::Agents::EnvironmentListParams::order
36
36
  ) -> OpenAI::Models::Beta::Agents::EnvironmentListParams::order
@@ -44,11 +44,11 @@ module OpenAI
44
44
  ) -> OpenAI::Models::Beta::Agents::EnvironmentListParams::type_
45
45
 
46
46
  # @param after
47
- # Return environments after this environment ID in the selected order.
47
+ # Return resources after this resource ID in the selected order.
48
48
  # @param limit
49
- # The maximum number of environments to return, between 1 and 100. Defaults to 20.
49
+ # The maximum number of resources to return, between 1 and 100. Defaults to 20.
50
50
  # @param order
51
- # The order in which environments are returned. Defaults to `desc`.
51
+ # The order in which resources are returned. Defaults to `desc`.
52
52
  # @param type
53
53
  # The hosting type to list. Defaults to `openai_hosted`.
54
54
  def initialize: (
@@ -9,6 +9,7 @@ module OpenAI
9
9
  ?agent_id: String,
10
10
  ?input: OpenAI::Models::Beta::Agents::SessionCreateParams::input?,
11
11
  ?metadata: ::Hash[Symbol, String]?,
12
+ ?spend_control: OpenAI::Beta::Agents::SessionCreateParams::SpendControl?,
12
13
  ?vault_ids: ::Array[String]?,
13
14
  ?request_options: OpenAI::request_opts
14
15
  }
@@ -48,6 +49,10 @@ module OpenAI
48
49
  # characters. Omission or null defaults to an empty map.
49
50
  attr_accessor metadata: ::Hash[Symbol, String]?
50
51
 
52
+ # Optional spending limit in USD cents. Omission or null creates an unlimited
53
+ # session.
54
+ attr_accessor spend_control: OpenAI::Beta::Agents::SessionCreateParams::SpendControl?
55
+
51
56
  # The IDs of vaults made available to the session.
52
57
  attr_accessor vault_ids: ::Array[String]?
53
58
 
@@ -67,6 +72,9 @@ module OpenAI
67
72
  # @param metadata
68
73
  # Up to 16 string key-value pairs, with keys up to 64 and values up to 512
69
74
  # characters. Omission or null defaults to an empty map.
75
+ # @param spend_control
76
+ # Optional spending limit in USD cents. Omission or null creates an unlimited
77
+ # session.
70
78
  # @param vault_ids
71
79
  # The IDs of vaults made available to the session.
72
80
  def initialize: (
@@ -75,6 +83,7 @@ module OpenAI
75
83
  ?agent_id: String,
76
84
  ?input: OpenAI::Models::Beta::Agents::SessionCreateParams::input?,
77
85
  ?metadata: ::Hash[Symbol, String]?,
86
+ ?spend_control: OpenAI::Beta::Agents::SessionCreateParams::SpendControl?,
78
87
  ?vault_ids: ::Array[String]?,
79
88
  ?request_options: OpenAI::request_opts
80
89
  ) -> void
@@ -85,6 +94,7 @@ module OpenAI
85
94
  ?agent_id: String,
86
95
  ?input: OpenAI::Models::Beta::Agents::SessionCreateParams::input?,
87
96
  ?metadata: ::Hash[Symbol, String]?,
97
+ ?spend_control: OpenAI::Beta::Agents::SessionCreateParams::SpendControl?,
88
98
  ?vault_ids: ::Array[String]?,
89
99
  ?request_options: OpenAI::RequestOptions
90
100
  }
@@ -124,7 +134,9 @@ module OpenAI
124
134
  # Configuration for text generated by the agent.
125
135
  attr_accessor text: OpenAI::Beta::AgentTextParam?
126
136
 
127
- # Tools available to the agent. Omit to inherit, or pass null to clear them.
137
+ # Tools available to the agent. Omit to inherit, or pass null to clear them. The
138
+ # resolved tool list must fit within 3 MiB (3,145,728 bytes) of compact UTF-8
139
+ # JSON.
128
140
  attr_accessor tools: ::Array[OpenAI::Models::Beta::agent_tool_param]?
129
141
 
130
142
  # @param instructions
@@ -142,7 +154,9 @@ module OpenAI
142
154
  # @param text
143
155
  # Configuration for text generated by the agent.
144
156
  # @param tools
145
- # Tools available to the agent. Omit to inherit, or pass null to clear them.
157
+ # Tools available to the agent. Omit to inherit, or pass null to clear them. The
158
+ # resolved tool list must fit within 3 MiB (3,145,728 bytes) of compact UTF-8
159
+ # JSON.
146
160
  def initialize: (
147
161
  ?instructions: String?,
148
162
  ?model: String,
@@ -197,6 +211,19 @@ module OpenAI
197
211
 
198
212
  AgentSessionInputMessageParamArray: OpenAI::Internal::Type::Converter
199
213
  end
214
+
215
+ type spend_control = { limit: Integer? }
216
+
217
+ class SpendControl < OpenAI::Internal::Type::BaseModel
218
+ # Positive USD cents, or null to remove the limit.
219
+ attr_accessor limit: Integer?
220
+
221
+ # @param limit
222
+ # Positive USD cents, or null to remove the limit.
223
+ def initialize: (limit: Integer?) -> void
224
+
225
+ def to_hash: -> { limit: Integer? }
226
+ end
200
227
  end
201
228
  end
202
229
  end
@@ -6,7 +6,7 @@ module OpenAI
6
6
  {
7
7
  ?after: String,
8
8
  ?agent_id: String,
9
- ?limit: Integer?,
9
+ ?limit: Integer,
10
10
  ?order: OpenAI::Models::Beta::Agents::SessionListParams::order,
11
11
  ?request_options: OpenAI::request_opts
12
12
  }
@@ -29,15 +29,16 @@ module OpenAI
29
29
  # all agents.
30
30
  def agent_id=: (String) -> String
31
31
 
32
- # The maximum number of resources to return.
33
- attr_accessor limit: Integer?
32
+ # The maximum number of resources to return, between 1 and 100. Defaults to 20.
33
+ attr_reader limit: Integer?
34
34
 
35
- # Sort order by the `created_at` timestamp. Use `asc` for ascending order or
36
- # `desc` for descending order. Defaults to `desc`.
35
+ # The maximum number of resources to return, between 1 and 100. Defaults to 20.
36
+ def limit=: (Integer) -> Integer
37
+
38
+ # The order in which resources are returned. Defaults to `desc`.
37
39
  attr_reader order: OpenAI::Models::Beta::Agents::SessionListParams::order?
38
40
 
39
- # Sort order by the `created_at` timestamp. Use `asc` for ascending order or
40
- # `desc` for descending order. Defaults to `desc`.
41
+ # The order in which resources are returned. Defaults to `desc`.
41
42
  def order=: (
42
43
  OpenAI::Models::Beta::Agents::SessionListParams::order
43
44
  ) -> OpenAI::Models::Beta::Agents::SessionListParams::order
@@ -48,14 +49,13 @@ module OpenAI
48
49
  # Only return sessions whose root agent has this ID. Omit to return sessions for
49
50
  # all agents.
50
51
  # @param limit
51
- # The maximum number of resources to return.
52
+ # The maximum number of resources to return, between 1 and 100. Defaults to 20.
52
53
  # @param order
53
- # Sort order by the `created_at` timestamp. Use `asc` for ascending order or
54
- # `desc` for descending order. Defaults to `desc`.
54
+ # The order in which resources are returned. Defaults to `desc`.
55
55
  def initialize: (
56
56
  ?after: String,
57
57
  ?agent_id: String,
58
- ?limit: Integer?,
58
+ ?limit: Integer,
59
59
  ?order: OpenAI::Models::Beta::Agents::SessionListParams::order,
60
60
  ?request_options: OpenAI::request_opts
61
61
  ) -> void
@@ -63,7 +63,7 @@ module OpenAI
63
63
  def to_hash: -> {
64
64
  ?after: String,
65
65
  ?agent_id: String,
66
- ?limit: Integer?,
66
+ ?limit: Integer,
67
67
  ?order: OpenAI::Models::Beta::Agents::SessionListParams::order,
68
68
  ?request_options: OpenAI::RequestOptions
69
69
  }