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
@@ -19,13 +19,20 @@ module OpenAI
19
19
 
20
20
  # Creates a voice from a consent recording and an audio sample. Requires
21
21
  # multipart/form-data.
22
- sig { returns(OpenAI::Audio::VoiceCreateParams::Body::AudioSample) }
22
+ sig {
23
+ returns(
24
+ T.any(OpenAI::Audio::VoiceCreateParams::Body::AudioSample, OpenAI::Audio::VoiceCreateParams::Body::Prompt)
25
+ )
26
+ }
23
27
  attr_accessor :body
24
28
 
25
29
  sig do
26
30
  params(
27
31
 
28
- body: OpenAI::Audio::VoiceCreateParams::Body::AudioSample::OrHash,
32
+ body: T.any(
33
+ OpenAI::Audio::VoiceCreateParams::Body::AudioSample::OrHash,
34
+ OpenAI::Audio::VoiceCreateParams::Body::Prompt::OrHash
35
+ ),
29
36
 
30
37
  request_options: OpenAI::RequestOptions::OrHash
31
38
  )
@@ -43,7 +50,13 @@ module OpenAI
43
50
 
44
51
  sig do
45
52
  override.returns(
46
- {body: OpenAI::Audio::VoiceCreateParams::Body::AudioSample, request_options: OpenAI::RequestOptions}
53
+ {
54
+ body: T.any(
55
+ OpenAI::Audio::VoiceCreateParams::Body::AudioSample,
56
+ OpenAI::Audio::VoiceCreateParams::Body::Prompt
57
+ ),
58
+ request_options: OpenAI::RequestOptions
59
+ }
47
60
  )
48
61
  end
49
62
  def to_hash
@@ -54,7 +67,9 @@ module OpenAI
54
67
  module Body
55
68
  extend OpenAI::Internal::Type::Union
56
69
 
57
- Variants = T.type_alias { OpenAI::Audio::VoiceCreateParams::Body::AudioSample }
70
+ Variants = T.type_alias {
71
+ T.any(OpenAI::Audio::VoiceCreateParams::Body::AudioSample, OpenAI::Audio::VoiceCreateParams::Body::Prompt)
72
+ }
58
73
 
59
74
  class AudioSample < OpenAI::Internal::Type::BaseModel
60
75
  OrHash = T.type_alias do
@@ -162,6 +177,136 @@ module OpenAI
162
177
  end
163
178
  end
164
179
 
180
+ class Prompt < OpenAI::Internal::Type::BaseModel
181
+ OrHash = T.type_alias do
182
+ T.any(
183
+ OpenAI::Audio::VoiceCreateParams::Body::Prompt,
184
+ OpenAI::Internal::AnyHash
185
+ )
186
+ end
187
+
188
+ # The name of the new voice.
189
+ sig { returns(String) }
190
+ attr_accessor :name
191
+
192
+ # A description of the desired voice. Must not contain only whitespace.
193
+ sig { returns(String) }
194
+ attr_accessor :prompt
195
+
196
+ # Set to `prompt` to create a voice from a text description.
197
+ sig { returns(OpenAI::Audio::VoiceCreateParams::Body::Prompt::Type::OrSymbol) }
198
+ attr_accessor :type
199
+
200
+ # The voice creation model to use. Defaults to `auto`.
201
+ sig { returns(T.nilable(T.any(String, OpenAI::Audio::VoiceCreateParams::Body::Prompt::Model::OrSymbol))) }
202
+ attr_reader :model
203
+
204
+ sig { params(model: T.any(String, OpenAI::Audio::VoiceCreateParams::Body::Prompt::Model::OrSymbol)).void }
205
+ attr_writer :model
206
+
207
+ # Optional text for the voice to speak during creation. If omitted, a script is
208
+ # generated from the prompt. Must not be blank after trimming whitespace; scripts
209
+ # that are too short are rejected.
210
+ sig { returns(T.nilable(String)) }
211
+ attr_reader :script_hint
212
+
213
+ sig { params(script_hint: String).void }
214
+ attr_writer :script_hint
215
+
216
+ # Creates a synthetic voice from a text description. Supports application/json or
217
+ # multipart/form-data.
218
+ sig do
219
+ params(
220
+
221
+ name: String,
222
+
223
+ prompt: String,
224
+
225
+ type: OpenAI::Audio::VoiceCreateParams::Body::Prompt::Type::OrSymbol,
226
+
227
+ model: T.any(String, OpenAI::Audio::VoiceCreateParams::Body::Prompt::Model::OrSymbol),
228
+
229
+ script_hint: String
230
+ )
231
+ .returns(T.attached_class)
232
+ end
233
+ def self.new(
234
+
235
+ # The name of the new voice.
236
+ name:,
237
+
238
+ # A description of the desired voice. Must not contain only whitespace.
239
+ prompt:,
240
+
241
+ # Set to `prompt` to create a voice from a text description.
242
+ type:,
243
+
244
+ # The voice creation model to use. Defaults to `auto`.
245
+ model: nil,
246
+
247
+ # Optional text for the voice to speak during creation. If omitted, a script is
248
+ # generated from the prompt. Must not be blank after trimming whitespace; scripts
249
+ # that are too short are rejected.
250
+
251
+ script_hint: nil
252
+ )
253
+ end
254
+
255
+ sig do
256
+ override.returns(
257
+ {
258
+ name: String,
259
+ prompt: String,
260
+ type: OpenAI::Audio::VoiceCreateParams::Body::Prompt::Type::OrSymbol,
261
+ model: T.any(String, OpenAI::Audio::VoiceCreateParams::Body::Prompt::Model::OrSymbol),
262
+ script_hint: String
263
+ }
264
+ )
265
+ end
266
+ def to_hash
267
+ end
268
+
269
+ # Set to `prompt` to create a voice from a text description.
270
+ module Type
271
+ extend OpenAI::Internal::Type::Enum
272
+
273
+ TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Audio::VoiceCreateParams::Body::Prompt::Type) }
274
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
275
+
276
+ PROMPT = T.let(:prompt, OpenAI::Audio::VoiceCreateParams::Body::Prompt::Type::TaggedSymbol)
277
+
278
+ sig { override.returns(T::Array[OpenAI::Audio::VoiceCreateParams::Body::Prompt::Type::TaggedSymbol]) }
279
+ def self.values
280
+ end
281
+ end
282
+
283
+ # The voice creation model to use. Defaults to `auto`.
284
+ module Model
285
+ extend OpenAI::Internal::Type::Union
286
+
287
+ Variants = T.type_alias {
288
+ T.any(String, OpenAI::Audio::VoiceCreateParams::Body::Prompt::Model::TaggedSymbol)
289
+ }
290
+
291
+ sig { override.returns(T::Array[OpenAI::Audio::VoiceCreateParams::Body::Prompt::Model::Variants]) }
292
+ def self.variants
293
+ end
294
+
295
+ TaggedSymbol = T.type_alias do
296
+ T.all(Symbol, OpenAI::Audio::VoiceCreateParams::Body::Prompt::Model)
297
+ end
298
+
299
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
300
+
301
+ AUTO = T.let(:auto, OpenAI::Audio::VoiceCreateParams::Body::Prompt::Model::TaggedSymbol)
302
+ MODEL_2026_10_08 = T.let(
303
+ :"2026-10-08",
304
+ OpenAI::Audio::VoiceCreateParams::Body::Prompt::Model::TaggedSymbol
305
+ )
306
+
307
+ end
308
+ end
309
+
165
310
  sig { override.returns(T::Array[OpenAI::Audio::VoiceCreateParams::Body::Variants]) }
166
311
  def self.variants
167
312
  end
@@ -62,7 +62,8 @@ module OpenAI
62
62
  sig { params(text: T.nilable(OpenAI::Beta::AgentTextParam::OrHash)).void }
63
63
  attr_writer :text
64
64
 
65
- # Tools available to the agent. Defaults to an empty list.
65
+ # Tools available to the agent. Defaults to an empty list. The tool list must fit
66
+ # within 3 MiB (3,145,728 bytes) of compact UTF-8 JSON.
66
67
  sig {
67
68
  returns(
68
69
  T.nilable(
@@ -147,7 +148,8 @@ module OpenAI
147
148
  # verbosity.
148
149
  text: nil,
149
150
 
150
- # Tools available to the agent. Defaults to an empty list.
151
+ # Tools available to the agent. Defaults to an empty list. The tool list must fit
152
+ # within 3 MiB (3,145,728 bytes) of compact UTF-8 JSON.
151
153
  tools: nil,
152
154
 
153
155
  request_options: {}
@@ -24,9 +24,12 @@ module OpenAI
24
24
  sig { params(after: String).void }
25
25
  attr_writer :after
26
26
 
27
- # The maximum number of resources to return.
27
+ # The maximum number of resources to return, between 1 and 100. Defaults to 20.
28
28
  sig { returns(T.nilable(Integer)) }
29
- attr_accessor :limit
29
+ attr_reader :limit
30
+
31
+ sig { params(limit: Integer).void }
32
+ attr_writer :limit
30
33
 
31
34
  # The order in which resources are returned. Defaults to `desc`.
32
35
  sig { returns(T.nilable(OpenAI::Beta::AgentListParams::Order::OrSymbol)) }
@@ -40,7 +43,7 @@ module OpenAI
40
43
 
41
44
  after: String,
42
45
 
43
- limit: T.nilable(Integer),
46
+ limit: Integer,
44
47
 
45
48
  order: OpenAI::Beta::AgentListParams::Order::OrSymbol,
46
49
 
@@ -53,7 +56,7 @@ module OpenAI
53
56
  # Return resources after this resource ID in the selected order.
54
57
  after: nil,
55
58
 
56
- # The maximum number of resources to return.
59
+ # The maximum number of resources to return, between 1 and 100. Defaults to 20.
57
60
  limit: nil,
58
61
 
59
62
  # The order in which resources are returned. Defaults to `desc`.
@@ -67,7 +70,7 @@ module OpenAI
67
70
  override.returns(
68
71
  {
69
72
  after: String,
70
- limit: T.nilable(Integer),
73
+ limit: Integer,
71
74
  order: OpenAI::Beta::AgentListParams::Order::OrSymbol,
72
75
  request_options: OpenAI::RequestOptions
73
76
  }
@@ -69,6 +69,14 @@ module OpenAI
69
69
  sig { returns(T::Array[String]) }
70
70
  attr_accessor :vault_ids
71
71
 
72
+ # Configured spending limit and best-effort consumption, in USD cents. Unlimited
73
+ # sessions omit this object.
74
+ sig { returns(T.nilable(OpenAI::Beta::AgentSession::SpendControl)) }
75
+ attr_reader :spend_control
76
+
77
+ sig { params(spend_control: OpenAI::Beta::AgentSession::SpendControl::OrHash).void }
78
+ attr_writer :spend_control
79
+
72
80
  # A Managed Agents session.
73
81
  sig do
74
82
  params(
@@ -105,6 +113,8 @@ module OpenAI
105
113
 
106
114
  vault_ids: T::Array[String],
107
115
 
116
+ spend_control: OpenAI::Beta::AgentSession::SpendControl::OrHash,
117
+
108
118
  object: Symbol
109
119
  )
110
120
  .returns(T.attached_class)
@@ -145,6 +155,10 @@ module OpenAI
145
155
  # The IDs of vaults made available to the session.
146
156
  vault_ids:,
147
157
 
158
+ # Configured spending limit and best-effort consumption, in USD cents. Unlimited
159
+ # sessions omit this object.
160
+ spend_control: nil,
161
+
148
162
  # The object type. Always `agent.session`.
149
163
 
150
164
  object: :"agent.session"
@@ -165,7 +179,8 @@ module OpenAI
165
179
  required_actions: T::Array[OpenAI::Beta::AgentSession::RequiredAction::Variants],
166
180
  status: OpenAI::Beta::AgentSession::Status::TaggedSymbol,
167
181
  usage: T.nilable(OpenAI::Beta::TokenUsage),
168
- vault_ids: T::Array[String]
182
+ vault_ids: T::Array[String],
183
+ spend_control: OpenAI::Beta::AgentSession::SpendControl
169
184
  }
170
185
  )
171
186
  end
@@ -861,6 +876,54 @@ module OpenAI
861
876
  end
862
877
  end
863
878
 
879
+ class SpendControl < OpenAI::Internal::Type::BaseModel
880
+ OrHash = T.type_alias do
881
+ T.any(
882
+ OpenAI::Beta::AgentSession::SpendControl,
883
+ OpenAI::Internal::AnyHash
884
+ )
885
+ end
886
+
887
+ # Best-effort recorded spend floored to whole USD cents, or null when unavailable.
888
+ sig { returns(T.nilable(Integer)) }
889
+ attr_accessor :consumed
890
+
891
+ # The configured positive limit in USD cents.
892
+ sig { returns(Integer) }
893
+ attr_accessor :limit
894
+
895
+ # Configured spending limit and best-effort consumption, in USD cents. Unlimited
896
+ # sessions omit this object.
897
+ sig do
898
+ params(
899
+
900
+ consumed: T.nilable(Integer),
901
+
902
+ limit: Integer
903
+ )
904
+ .returns(T.attached_class)
905
+ end
906
+ def self.new(
907
+
908
+ # Best-effort recorded spend floored to whole USD cents, or null when unavailable.
909
+ consumed:,
910
+
911
+ # The configured positive limit in USD cents.
912
+
913
+ limit:
914
+ )
915
+ end
916
+
917
+ sig do
918
+ override.returns(
919
+ {consumed: T.nilable(Integer), limit: Integer}
920
+ )
921
+ end
922
+ def to_hash
923
+ end
924
+
925
+ end
926
+
864
927
  end
865
928
 
866
929
  end
@@ -0,0 +1,95 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+
6
+ module Beta
7
+
8
+ class AgentSessionEnvironmentExpiredEvent < OpenAI::Internal::Type::BaseModel
9
+
10
+ OrHash = T.type_alias do
11
+ T.any(
12
+ OpenAI::Beta::AgentSessionEnvironmentExpiredEvent,
13
+ OpenAI::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ # The current environment state.
18
+ sig { returns(OpenAI::Beta::AgentSessionEnvironmentState) }
19
+ attr_reader :environment
20
+
21
+ sig { params(environment: OpenAI::Beta::AgentSessionEnvironmentState::OrHash).void }
22
+ attr_writer :environment
23
+
24
+ # The unique ID of the event.
25
+ sig { returns(String) }
26
+ attr_accessor :event_id
27
+
28
+ # The ID of the session associated with the event.
29
+ sig { returns(String) }
30
+ attr_accessor :session_id
31
+
32
+ # The ID of the turn associated with the event, when applicable.
33
+ sig { returns(T.nilable(String)) }
34
+ attr_accessor :turn_id
35
+
36
+ # The type of the object. Always `agent.session.environment.expired`.
37
+ sig { returns(Symbol) }
38
+ attr_accessor :type
39
+
40
+ # Emitted after a suspended hosted session environment and its checkpoint expire.
41
+ sig do
42
+ params(
43
+
44
+ environment: OpenAI::Beta::AgentSessionEnvironmentState::OrHash,
45
+
46
+ event_id: String,
47
+
48
+ session_id: String,
49
+
50
+ turn_id: T.nilable(String),
51
+
52
+ type: Symbol
53
+ )
54
+ .returns(T.attached_class)
55
+ end
56
+ def self.new(
57
+
58
+ # The current environment state.
59
+ environment:,
60
+
61
+ # The unique ID of the event.
62
+ event_id:,
63
+
64
+ # The ID of the session associated with the event.
65
+ session_id:,
66
+
67
+ # The ID of the turn associated with the event, when applicable.
68
+ turn_id:,
69
+
70
+ # The type of the object. Always `agent.session.environment.expired`.
71
+
72
+ type: :"agent.session.environment.expired"
73
+ )
74
+ end
75
+
76
+ sig do
77
+ override.returns(
78
+ {
79
+ environment: OpenAI::Beta::AgentSessionEnvironmentState,
80
+ event_id: String,
81
+ session_id: String,
82
+ turn_id: T.nilable(String),
83
+ type: Symbol
84
+ }
85
+ )
86
+ end
87
+ def to_hash
88
+ end
89
+
90
+ end
91
+
92
+ end
93
+
94
+ end
95
+ end
@@ -152,6 +152,12 @@ module OpenAI
152
152
  # The environment is disconnected.
153
153
  DISCONNECTED = T.let(:disconnected, OpenAI::Beta::AgentSessionEnvironmentState::Status::TaggedSymbol)
154
154
 
155
+ # The environment is stopped and can be resumed from its private checkpoint.
156
+ SUSPENDED = T.let(:suspended, OpenAI::Beta::AgentSessionEnvironmentState::Status::TaggedSymbol)
157
+
158
+ # The environment and its private checkpoint have expired.
159
+ EXPIRED = T.let(:expired, OpenAI::Beta::AgentSessionEnvironmentState::Status::TaggedSymbol)
160
+
155
161
  # The environment failed to connect.
156
162
  FAILED = T.let(:failed, OpenAI::Beta::AgentSessionEnvironmentState::Status::TaggedSymbol)
157
163
 
@@ -0,0 +1,95 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+
6
+ module Beta
7
+
8
+ class AgentSessionEnvironmentSuspendedEvent < OpenAI::Internal::Type::BaseModel
9
+
10
+ OrHash = T.type_alias do
11
+ T.any(
12
+ OpenAI::Beta::AgentSessionEnvironmentSuspendedEvent,
13
+ OpenAI::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ # The current environment state.
18
+ sig { returns(OpenAI::Beta::AgentSessionEnvironmentState) }
19
+ attr_reader :environment
20
+
21
+ sig { params(environment: OpenAI::Beta::AgentSessionEnvironmentState::OrHash).void }
22
+ attr_writer :environment
23
+
24
+ # The unique ID of the event.
25
+ sig { returns(String) }
26
+ attr_accessor :event_id
27
+
28
+ # The ID of the session associated with the event.
29
+ sig { returns(String) }
30
+ attr_accessor :session_id
31
+
32
+ # The ID of the turn associated with the event, when applicable.
33
+ sig { returns(T.nilable(String)) }
34
+ attr_accessor :turn_id
35
+
36
+ # The type of the object. Always `agent.session.environment.suspended`.
37
+ sig { returns(Symbol) }
38
+ attr_accessor :type
39
+
40
+ # Emitted after an idle hosted session environment is checkpointed and stopped.
41
+ sig do
42
+ params(
43
+
44
+ environment: OpenAI::Beta::AgentSessionEnvironmentState::OrHash,
45
+
46
+ event_id: String,
47
+
48
+ session_id: String,
49
+
50
+ turn_id: T.nilable(String),
51
+
52
+ type: Symbol
53
+ )
54
+ .returns(T.attached_class)
55
+ end
56
+ def self.new(
57
+
58
+ # The current environment state.
59
+ environment:,
60
+
61
+ # The unique ID of the event.
62
+ event_id:,
63
+
64
+ # The ID of the session associated with the event.
65
+ session_id:,
66
+
67
+ # The ID of the turn associated with the event, when applicable.
68
+ turn_id:,
69
+
70
+ # The type of the object. Always `agent.session.environment.suspended`.
71
+
72
+ type: :"agent.session.environment.suspended"
73
+ )
74
+ end
75
+
76
+ sig do
77
+ override.returns(
78
+ {
79
+ environment: OpenAI::Beta::AgentSessionEnvironmentState,
80
+ event_id: String,
81
+ session_id: String,
82
+ turn_id: T.nilable(String),
83
+ type: Symbol
84
+ }
85
+ )
86
+ end
87
+ def to_hash
88
+ end
89
+
90
+ end
91
+
92
+ end
93
+
94
+ end
95
+ end
@@ -13,6 +13,8 @@ module OpenAI
13
13
  T.any(
14
14
  OpenAI::Beta::AgentSessionErrorEvent,
15
15
  OpenAI::Beta::AgentSessionEnvironmentReadyEvent,
16
+ OpenAI::Beta::AgentSessionEnvironmentSuspendedEvent,
17
+ OpenAI::Beta::AgentSessionEnvironmentExpiredEvent,
16
18
  OpenAI::Beta::AgentSessionEnvironmentResetEvent,
17
19
  OpenAI::Beta::AgentOutputCommandExecutionOutputDeltaEvent,
18
20
  OpenAI::Beta::AgentSessionCreatedEvent,
@@ -68,7 +68,8 @@ module OpenAI
68
68
  sig { params(text: T.nilable(OpenAI::Beta::AgentTextParam::OrHash)).void }
69
69
  attr_writer :text
70
70
 
71
- # Tools available to the agent.
71
+ # Replaces the tool list. Omit to leave it unchanged, or pass null to clear it.
72
+ # The replacement must fit within 3 MiB (3,145,728 bytes) of compact UTF-8 JSON.
72
73
  sig {
73
74
  returns(
74
75
  T.nilable(
@@ -157,7 +158,8 @@ module OpenAI
157
158
  # Configuration for text generated by the agent.
158
159
  text: nil,
159
160
 
160
- # Tools available to the agent.
161
+ # Replaces the tool list. Omit to leave it unchanged, or pass null to clear it.
162
+ # The replacement must fit within 3 MiB (3,145,728 bytes) of compact UTF-8 JSON.
161
163
  tools: nil,
162
164
 
163
165
  request_options: {}
@@ -126,6 +126,9 @@ module OpenAI
126
126
 
127
127
  CONNECTED = T.let(:connected, OpenAI::Beta::Agents::EnvironmentInfo::Status::TaggedSymbol)
128
128
  DISCONNECTED = T.let(:disconnected, OpenAI::Beta::Agents::EnvironmentInfo::Status::TaggedSymbol)
129
+ # The sandbox is stopped and can be resumed from its private checkpoint.
130
+ SUSPENDED = T.let(:suspended, OpenAI::Beta::Agents::EnvironmentInfo::Status::TaggedSymbol)
131
+
129
132
  EXPIRED = T.let(:expired, OpenAI::Beta::Agents::EnvironmentInfo::Status::TaggedSymbol)
130
133
  FAILED = T.let(:failed, OpenAI::Beta::Agents::EnvironmentInfo::Status::TaggedSymbol)
131
134
 
@@ -19,21 +19,21 @@ module OpenAI
19
19
  )
20
20
  end
21
21
 
22
- # Return environments after this environment ID in the selected order.
22
+ # Return resources after this resource ID in the selected order.
23
23
  sig { returns(T.nilable(String)) }
24
24
  attr_reader :after
25
25
 
26
26
  sig { params(after: String).void }
27
27
  attr_writer :after
28
28
 
29
- # The maximum number of environments to return, between 1 and 100. Defaults to 20.
29
+ # The maximum number of resources to return, between 1 and 100. Defaults to 20.
30
30
  sig { returns(T.nilable(Integer)) }
31
31
  attr_reader :limit
32
32
 
33
33
  sig { params(limit: Integer).void }
34
34
  attr_writer :limit
35
35
 
36
- # The order in which environments are returned. Defaults to `desc`.
36
+ # The order in which resources are returned. Defaults to `desc`.
37
37
  sig { returns(T.nilable(OpenAI::Beta::Agents::EnvironmentListParams::Order::OrSymbol)) }
38
38
  attr_reader :order
39
39
 
@@ -64,13 +64,13 @@ module OpenAI
64
64
  end
65
65
  def self.new(
66
66
 
67
- # Return environments after this environment ID in the selected order.
67
+ # Return resources after this resource ID in the selected order.
68
68
  after: nil,
69
69
 
70
- # The maximum number of environments to return, between 1 and 100. Defaults to 20.
70
+ # The maximum number of resources to return, between 1 and 100. Defaults to 20.
71
71
  limit: nil,
72
72
 
73
- # The order in which environments are returned. Defaults to `desc`.
73
+ # The order in which resources are returned. Defaults to `desc`.
74
74
  order: nil,
75
75
 
76
76
  # The hosting type to list. Defaults to `openai_hosted`.
@@ -94,7 +94,7 @@ module OpenAI
94
94
  def to_hash
95
95
  end
96
96
 
97
- # The order in which environments are returned. Defaults to `desc`.
97
+ # The order in which resources are returned. Defaults to `desc`.
98
98
  module Order
99
99
  extend OpenAI::Internal::Type::Enum
100
100