openai 0.103.0 → 0.104.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (395) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +81 -0
  3. data/README.md +23 -1
  4. data/lib/openai/client.rb +3 -386
  5. data/lib/openai/helpers/admin/organization/projects/api_keys.rb +42 -0
  6. data/lib/openai/helpers/agents/session_stream_resource.rb +60 -0
  7. data/lib/openai/helpers/beta/agents/artifacts.rb +18 -0
  8. data/lib/openai/helpers/beta/agents/files.rb +41 -0
  9. data/lib/openai/helpers/client_runtime.rb +391 -0
  10. data/lib/openai/helpers/files.rb +47 -0
  11. data/lib/openai/helpers/live/websocket.rb +8 -57
  12. data/lib/openai/helpers/models/chat/parsed.rb +32 -0
  13. data/lib/openai/helpers/models/responses/parsed.rb +30 -0
  14. data/lib/openai/helpers/models/responses/response.rb +32 -0
  15. data/lib/openai/helpers/models/webhooks/webhook_endpoint_with_secret.rb +20 -0
  16. data/lib/openai/helpers/realtime/client_extension.rb +1 -2
  17. data/lib/openai/helpers/realtime/connection_manager.rb +1 -1
  18. data/lib/openai/helpers/realtime/translation.rb +7 -50
  19. data/lib/openai/helpers/responses_websocket/client_extension.rb +1 -2
  20. data/lib/openai/helpers/streaming/chat_completion_resource.rb +36 -0
  21. data/lib/openai/helpers/streaming/response_stream.rb +1 -16
  22. data/lib/openai/helpers/streaming/response_stream_resource.rb +78 -0
  23. data/lib/openai/helpers/vector_stores/file_batches.rb +188 -0
  24. data/lib/openai/helpers/vector_stores/files.rb +198 -0
  25. data/lib/openai/helpers/websocket/client_request.rb +31 -6
  26. data/lib/openai/helpers/websocket/connection.rb +58 -0
  27. data/lib/openai/helpers/websocket/connection_manager.rb +4 -2
  28. data/lib/openai/helpers/websocket/protocol.rb +2 -1
  29. data/lib/openai/helpers/websocket/resource.rb +54 -0
  30. data/lib/openai/helpers/websocket/typed_connection.rb +95 -0
  31. data/lib/openai/helpers/websocket.rb +4 -0
  32. data/lib/openai/models/admin/organization/audit_log_list_response.rb +5 -3
  33. data/lib/openai/models/admin/organization/external_storage_configuration.rb +5 -3
  34. data/lib/openai/models/admin/organization/external_storage_create_params.rb +33 -3
  35. data/lib/openai/models/admin/organization/oci_external_storage_provider.rb +37 -0
  36. data/lib/openai/models/admin/organization/project_residency.rb +3 -0
  37. data/lib/openai/models/admin/organization/projects/api_key_update_params.rb +64 -0
  38. data/lib/openai/models/admin/organization/projects/api_key_update_scopes_params.rb +34 -0
  39. data/lib/openai/models/admin/organization/usage_decisions_params.rb +177 -0
  40. data/lib/openai/models/admin/organization/usage_decisions_response.rb +351 -0
  41. data/lib/openai/models/audio/speech_create_params.rb +6 -3
  42. data/lib/openai/models/audio/translation_create_response.rb +0 -1
  43. data/lib/openai/models/audio/voice.rb +17 -2
  44. data/lib/openai/models/audio/voice_create_params.rb +100 -3
  45. data/lib/openai/models/beta/agent_create_params.rb +4 -2
  46. data/lib/openai/models/beta/agent_list_params.rb +4 -4
  47. data/lib/openai/models/beta/agent_session.rb +37 -1
  48. data/lib/openai/models/beta/agent_update_params.rb +4 -2
  49. data/lib/openai/models/beta/agents/environment_list_params.rb +7 -7
  50. data/lib/openai/models/beta/agents/session_create_params.rb +39 -3
  51. data/lib/openai/models/beta/agents/session_list_params.rb +7 -10
  52. data/lib/openai/models/beta/agents/session_update_params.rb +33 -1
  53. data/lib/openai/models/beta/agents/sessions/artifact_list_params.rb +11 -11
  54. data/lib/openai/models/beta/agents/vault_list_params.rb +23 -13
  55. data/lib/openai/models/beta/agents/vault_status_filter.rb +1 -3
  56. data/lib/openai/models/beta/agents/vault_update_params.rb +47 -0
  57. data/lib/openai/models/beta/agents/vaults/credential_list_params.rb +23 -13
  58. data/lib/openai/models/beta/beta_response.rb +23 -2
  59. data/lib/openai/models/beta/beta_response_error.rb +19 -1
  60. data/lib/openai/models/beta/beta_response_input_item.rb +107 -1
  61. data/lib/openai/models/beta/beta_response_item.rb +107 -1
  62. data/lib/openai/models/beta/beta_response_output_item.rb +107 -1
  63. data/lib/openai/models/beta/beta_responses_client_event.rb +23 -2
  64. data/lib/openai/models/beta/response_compact_params.rb +21 -0
  65. data/lib/openai/models/beta/response_create_params.rb +23 -2
  66. data/lib/openai/models/beta/session_turn_error.rb +3 -0
  67. data/lib/openai/models/chat/chat_completion_audio_param.rb +3 -3
  68. data/lib/openai/models/chat/chat_completion_message.rb +0 -8
  69. data/lib/openai/models/chat/chat_completion_message_function_tool_call.rb +0 -8
  70. data/lib/openai/models/chat/completion_create_params.rb +5 -12
  71. data/lib/openai/models/chat_model.rb +21 -0
  72. data/lib/openai/models/conversations/conversation_item.rb +107 -1
  73. data/lib/openai/models/decision.rb +17 -2
  74. data/lib/openai/models/decision_create_params.rb +29 -12
  75. data/lib/openai/models/decision_input_image.rb +4 -3
  76. data/lib/openai/models/decision_input_message.rb +4 -4
  77. data/lib/openai/models/decision_input_part.rb +3 -2
  78. data/lib/openai/models/image_edit_completed_event.rb +1 -2
  79. data/lib/openai/models/image_edit_partial_image_event.rb +1 -2
  80. data/lib/openai/models/image_gen_completed_event.rb +1 -2
  81. data/lib/openai/models/image_gen_partial_image_event.rb +1 -2
  82. data/lib/openai/models/images_response.rb +1 -2
  83. data/lib/openai/models/live/built_in_voice.rb +1 -0
  84. data/lib/openai/models/live/client_event.rb +14 -2
  85. data/lib/openai/models/live/decision_create_event.rb +26 -0
  86. data/lib/openai/models/live/decision_event.rb +117 -0
  87. data/lib/openai/models/live/decision_item_create_event.rb +194 -0
  88. data/lib/openai/models/live/decision_item_created_event.rb +202 -0
  89. data/lib/openai/models/live/decision_item_delete_event.rb +38 -0
  90. data/lib/openai/models/live/decision_item_deleted_event.rb +46 -0
  91. data/lib/openai/models/live/decision_trigger.rb +244 -0
  92. data/lib/openai/models/live/decisions_delegation_config.rb +201 -0
  93. data/lib/openai/models/live/decisions_delegation_update_config.rb +208 -0
  94. data/lib/openai/models/live/delegation_created_event.rb +10 -10
  95. data/lib/openai/models/live/fork_client_event.rb +14 -2
  96. data/lib/openai/models/live/fork_server_event.rb +17 -2
  97. data/lib/openai/models/live/media_session_config.rb +47 -11
  98. data/lib/openai/models/live/output_audio_fixture_play_event.rb +48 -0
  99. data/lib/openai/models/live/output_audio_fixture_played_event.rb +42 -0
  100. data/lib/openai/models/live/output_audio_fixture_playing_event.rb +41 -0
  101. data/lib/openai/models/live/server_event.rb +17 -2
  102. data/lib/openai/models/live/session_accept_params.rb +47 -11
  103. data/lib/openai/models/live/session_config.rb +47 -11
  104. data/lib/openai/models/live/session_resource.rb +47 -11
  105. data/lib/openai/models/live/session_update_config.rb +38 -6
  106. data/lib/openai/models/live/session_update_event.rb +8 -8
  107. data/lib/openai/models/live/sideband_client_event.rb +57 -0
  108. data/lib/openai/models/live/sideband_server_event.rb +78 -0
  109. data/lib/openai/models/realtime/realtime_audio_config_output.rb +6 -3
  110. data/lib/openai/models/realtime/realtime_response_create_audio_output.rb +6 -3
  111. data/lib/openai/models/realtime/realtime_response_status.rb +10 -1
  112. data/lib/openai/models/response_format_json_schema.rb +1 -1
  113. data/lib/openai/models/responses/function_tool.rb +8 -6
  114. data/lib/openai/models/responses/response.rb +2 -23
  115. data/lib/openai/models/responses/response_compact_params.rb +21 -0
  116. data/lib/openai/models/responses/response_create_params.rb +3 -6
  117. data/lib/openai/models/responses/response_error.rb +19 -1
  118. data/lib/openai/models/responses/response_format_text_config.rb +0 -4
  119. data/lib/openai/models/responses/response_function_tool_call.rb +0 -8
  120. data/lib/openai/models/responses/response_input_item.rb +107 -1
  121. data/lib/openai/models/responses/response_item.rb +107 -1
  122. data/lib/openai/models/responses/response_output_item.rb +107 -1
  123. data/lib/openai/models/responses/response_output_text.rb +0 -8
  124. data/lib/openai/models/responses/responses_client_event.rb +2 -2
  125. data/lib/openai/models/safety/safety_alert.rb +12 -1
  126. data/lib/openai/models/video_create_error.rb +19 -1
  127. data/lib/openai/models/webhooks/unwrap_webhook_event.rb +4 -4
  128. data/lib/openai/models/webhooks/webhook_endpoint_with_secret.rb +0 -9
  129. data/lib/openai/resources/admin/organization/external_storage.rb +1 -1
  130. data/lib/openai/resources/admin/organization/projects/api_keys.rb +61 -0
  131. data/lib/openai/resources/admin/organization/usage.rb +67 -0
  132. data/lib/openai/resources/audio/speech.rb +2 -1
  133. data/lib/openai/resources/audio/voices.rb +10 -10
  134. data/lib/openai/resources/beta/agents/environments/files.rb +3 -31
  135. data/lib/openai/resources/beta/agents/environments.rb +3 -3
  136. data/lib/openai/resources/beta/agents/sessions/artifacts.rb +5 -11
  137. data/lib/openai/resources/beta/agents/sessions.rb +20 -56
  138. data/lib/openai/resources/beta/agents/vaults/credentials.rb +10 -6
  139. data/lib/openai/resources/beta/agents/vaults.rb +45 -6
  140. data/lib/openai/resources/beta/agents.rb +6 -4
  141. data/lib/openai/resources/beta/responses.rb +2 -2
  142. data/lib/openai/resources/chat/completions.rb +11 -37
  143. data/lib/openai/resources/decisions.rb +9 -15
  144. data/lib/openai/resources/files.rb +0 -39
  145. data/lib/openai/resources/live/forks.rb +19 -0
  146. data/lib/openai/resources/live/sideband.rb +19 -0
  147. data/lib/openai/resources/live.rb +19 -0
  148. data/lib/openai/resources/realtime/translations.rb +19 -0
  149. data/lib/openai/resources/realtime.rb +19 -0
  150. data/lib/openai/resources/responses.rb +44 -95
  151. data/lib/openai/resources/vector_stores/file_batches.rb +0 -178
  152. data/lib/openai/resources/vector_stores/files.rb +0 -188
  153. data/lib/openai/resources/webhooks.rb +13 -29
  154. data/lib/openai/version.rb +1 -1
  155. data/lib/openai.rb +31 -0
  156. data/rbi/openai/client.rbi +0 -103
  157. data/rbi/openai/helpers/admin/organization/projects/api_keys.rbi +25 -0
  158. data/rbi/openai/helpers/beta/agents/artifacts.rbi +25 -0
  159. data/rbi/openai/helpers/beta/agents/files.rbi +48 -0
  160. data/rbi/openai/helpers/client_runtime.rbi +108 -0
  161. data/rbi/openai/helpers/files.rbi +25 -0
  162. data/rbi/openai/helpers/models/chat/parsed.rbi +21 -0
  163. data/rbi/openai/helpers/models/responses/parsed.rbi +19 -0
  164. data/rbi/openai/helpers/models/responses/response.rbi +15 -0
  165. data/rbi/openai/helpers/streaming/response_stream.rbi +301 -0
  166. data/rbi/openai/helpers/vector_stores/file_batches.rbi +102 -0
  167. data/rbi/openai/helpers/vector_stores/files.rbi +122 -0
  168. data/rbi/openai/helpers/websocket.rbi +82 -0
  169. data/rbi/openai/models/admin/organization/audit_log_list_response.rbi +6 -3
  170. data/rbi/openai/models/admin/organization/external_storage_configuration.rbi +4 -2
  171. data/rbi/openai/models/admin/organization/external_storage_create_params.rbi +63 -4
  172. data/rbi/openai/models/admin/organization/oci_external_storage_provider.rbi +71 -0
  173. data/rbi/openai/models/admin/organization/project_residency.rbi +12 -0
  174. data/rbi/openai/models/admin/organization/projects/api_key_update_params.rbi +110 -0
  175. data/rbi/openai/models/admin/organization/projects/api_key_update_scopes_params.rbi +72 -0
  176. data/rbi/openai/models/admin/organization/usage_decisions_params.rbi +229 -0
  177. data/rbi/openai/models/admin/organization/usage_decisions_response.rbi +479 -0
  178. data/rbi/openai/models/audio/speech_create_params.rbi +6 -3
  179. data/rbi/openai/models/audio/voice.rbi +21 -2
  180. data/rbi/openai/models/audio/voice_create_params.rbi +149 -4
  181. data/rbi/openai/models/beta/agent_create_params.rbi +4 -2
  182. data/rbi/openai/models/beta/agent_list_params.rbi +8 -5
  183. data/rbi/openai/models/beta/agent_session.rbi +64 -1
  184. data/rbi/openai/models/beta/agent_update_params.rbi +4 -2
  185. data/rbi/openai/models/beta/agents/environment_list_params.rbi +7 -7
  186. data/rbi/openai/models/beta/agents/session_create_params.rbi +62 -2
  187. data/rbi/openai/models/beta/agents/session_list_params.rbi +11 -11
  188. data/rbi/openai/models/beta/agents/session_update_params.rbi +56 -0
  189. data/rbi/openai/models/beta/agents/sessions/artifact_list_params.rbi +19 -13
  190. data/rbi/openai/models/beta/agents/vault_list_params.rbi +30 -13
  191. data/rbi/openai/models/beta/agents/vault_status_filter.rbi +1 -3
  192. data/rbi/openai/models/beta/agents/vault_update_params.rbi +87 -0
  193. data/rbi/openai/models/beta/agents/vaults/credential_list_params.rbi +30 -13
  194. data/rbi/openai/models/beta/beta_response.rbi +2 -2
  195. data/rbi/openai/models/beta/beta_response_error.rbi +24 -3
  196. data/rbi/openai/models/beta/beta_response_input_item.rbi +191 -0
  197. data/rbi/openai/models/beta/beta_response_item.rbi +189 -0
  198. data/rbi/openai/models/beta/beta_response_output_item.rbi +191 -0
  199. data/rbi/openai/models/beta/beta_responses_client_event.rbi +2 -2
  200. data/rbi/openai/models/beta/response_create_params.rbi +2 -2
  201. data/rbi/openai/models/beta/session_turn_error.rbi +3 -0
  202. data/rbi/openai/models/chat/chat_completion_audio_param.rbi +3 -3
  203. data/rbi/openai/models/chat/chat_completion_message.rbi +0 -4
  204. data/rbi/openai/models/chat/chat_completion_message_function_tool_call.rbi +0 -4
  205. data/rbi/openai/models/chat/completion_create_params.rbi +63 -78
  206. data/rbi/openai/models/conversations/conversation_item.rbi +191 -0
  207. data/rbi/openai/models/decision.rbi +14 -1
  208. data/rbi/openai/models/decision_create_params.rbi +23 -12
  209. data/rbi/openai/models/decision_input_image.rbi +4 -3
  210. data/rbi/openai/models/decision_input_message.rbi +4 -4
  211. data/rbi/openai/models/decision_input_part.rbi +2 -1
  212. data/rbi/openai/models/image_edit_completed_event.rbi +1 -0
  213. data/rbi/openai/models/image_edit_partial_image_event.rbi +1 -0
  214. data/rbi/openai/models/image_gen_completed_event.rbi +1 -0
  215. data/rbi/openai/models/image_gen_partial_image_event.rbi +1 -0
  216. data/rbi/openai/models/images_response.rbi +1 -0
  217. data/rbi/openai/models/live/built_in_voice.rbi +1 -0
  218. data/rbi/openai/models/live/client_event.rbi +4 -0
  219. data/rbi/openai/models/live/decision_create_event.rbi +55 -0
  220. data/rbi/openai/models/live/decision_event.rbi +185 -0
  221. data/rbi/openai/models/live/decision_item_create_event.rbi +338 -0
  222. data/rbi/openai/models/live/decision_item_created_event.rbi +354 -0
  223. data/rbi/openai/models/live/decision_item_delete_event.rbi +66 -0
  224. data/rbi/openai/models/live/decision_item_deleted_event.rbi +77 -0
  225. data/rbi/openai/models/live/decision_trigger.rbi +465 -0
  226. data/rbi/openai/models/live/decisions_delegation_config.rbi +393 -0
  227. data/rbi/openai/models/live/decisions_delegation_update_config.rbi +412 -0
  228. data/rbi/openai/models/live/delegation_created_event.rbi +8 -10
  229. data/rbi/openai/models/live/fork_client_event.rbi +4 -0
  230. data/rbi/openai/models/live/fork_server_event.rbi +5 -0
  231. data/rbi/openai/models/live/media_session_config.rbi +95 -14
  232. data/rbi/openai/models/live/output_audio_fixture_play_event.rbi +76 -0
  233. data/rbi/openai/models/live/output_audio_fixture_played_event.rbi +73 -0
  234. data/rbi/openai/models/live/output_audio_fixture_playing_event.rbi +72 -0
  235. data/rbi/openai/models/live/server_event.rbi +5 -0
  236. data/rbi/openai/models/live/session_accept_params.rbi +88 -12
  237. data/rbi/openai/models/live/session_config.rbi +100 -14
  238. data/rbi/openai/models/live/session_resource.rbi +81 -10
  239. data/rbi/openai/models/live/session_update_config.rbi +86 -9
  240. data/rbi/openai/models/live/session_update_event.rbi +8 -8
  241. data/rbi/openai/models/live/sideband_client_event.rbi +40 -0
  242. data/rbi/openai/models/live/sideband_server_event.rbi +47 -0
  243. data/rbi/openai/models/realtime/realtime_audio_config_output.rbi +6 -3
  244. data/rbi/openai/models/realtime/realtime_response_create_audio_output.rbi +6 -3
  245. data/rbi/openai/models/realtime/realtime_response_status.rbi +13 -1
  246. data/rbi/openai/models/realtime/realtime_translation_input_audio_buffer_append_event.rbi +1 -1
  247. data/rbi/openai/models/realtime/realtime_translation_output_audio_delta_event.rbi +3 -3
  248. data/rbi/openai/models/realtime/realtime_translation_session_close_event.rbi +1 -1
  249. data/rbi/openai/models/realtime/realtime_translation_session_update_event.rbi +5 -1
  250. data/rbi/openai/models/responses/response.rbi +2 -7
  251. data/rbi/openai/models/responses/response_create_params.rbi +5 -9
  252. data/rbi/openai/models/responses/response_error.rbi +24 -3
  253. data/rbi/openai/models/responses/response_function_tool_call.rbi +0 -4
  254. data/rbi/openai/models/responses/response_function_web_search.rbi +21 -17
  255. data/rbi/openai/models/responses/response_input_item.rbi +191 -0
  256. data/rbi/openai/models/responses/response_item.rbi +189 -0
  257. data/rbi/openai/models/responses/response_output_item.rbi +191 -0
  258. data/rbi/openai/models/responses/response_output_text.rbi +0 -4
  259. data/rbi/openai/models/responses/responses_client_event.rbi +2 -2
  260. data/rbi/openai/models/safety/safety_alert.rbi +13 -1
  261. data/rbi/openai/models/video_create_error.rbi +24 -3
  262. data/rbi/openai/models/webhooks/unwrap_webhook_event.rbi +1 -1
  263. data/rbi/openai/resources/admin/organization/external_storage.rbi +2 -1
  264. data/rbi/openai/resources/admin/organization/projects/api_keys.rbi +48 -0
  265. data/rbi/openai/resources/admin/organization/usage.rbi +56 -0
  266. data/rbi/openai/resources/audio/speech.rbi +2 -1
  267. data/rbi/openai/resources/audio/voices.rbi +13 -10
  268. data/rbi/openai/resources/beta/agents/environments/files.rbi +3 -33
  269. data/rbi/openai/resources/beta/agents/environments.rbi +3 -3
  270. data/rbi/openai/resources/beta/agents/sessions/artifacts.rbi +5 -13
  271. data/rbi/openai/resources/beta/agents/sessions.rbi +15 -4
  272. data/rbi/openai/resources/beta/agents/vaults/credentials.rbi +9 -5
  273. data/rbi/openai/resources/beta/agents/vaults.rbi +34 -5
  274. data/rbi/openai/resources/beta/agents.rbi +6 -4
  275. data/rbi/openai/resources/beta/responses.rbi +2 -2
  276. data/rbi/openai/resources/chat/completions.rbi +26 -29
  277. data/rbi/openai/resources/decisions.rbi +9 -15
  278. data/rbi/openai/resources/files.rbi +0 -18
  279. data/rbi/openai/resources/live/forks.rbi +17 -0
  280. data/rbi/openai/resources/live/sideband.rbi +17 -0
  281. data/rbi/openai/resources/live.rbi +17 -0
  282. data/rbi/openai/resources/realtime/translations.rbi +17 -0
  283. data/rbi/openai/resources/realtime.rbi +17 -0
  284. data/rbi/openai/resources/responses.rbi +41 -333
  285. data/rbi/openai/resources/vector_stores/file_batches.rbi +0 -93
  286. data/rbi/openai/resources/vector_stores/files.rbi +0 -113
  287. data/rbi/openai/resources/webhooks.rbi +1 -1
  288. data/sig/openai/client.rbs +0 -50
  289. data/sig/openai/helpers/admin/organization/projects/api_keys.rbs +18 -0
  290. data/sig/openai/helpers/beta/agents/artifacts.rbs +17 -0
  291. data/sig/openai/helpers/beta/agents/files.rbs +30 -0
  292. data/sig/openai/helpers/client_runtime.rbs +53 -0
  293. data/sig/openai/helpers/files.rbs +12 -0
  294. data/sig/openai/helpers/models/responses/response.rbs +9 -0
  295. data/sig/openai/helpers/streaming/response_stream.rbs +37 -0
  296. data/sig/openai/helpers/vector_stores/file_batches.rbs +38 -0
  297. data/sig/openai/helpers/vector_stores/files.rbs +43 -0
  298. data/sig/openai/helpers/websocket.rbs +40 -0
  299. data/sig/openai/models/admin/organization/audit_log_list_response.rbs +1 -0
  300. data/sig/openai/models/admin/organization/external_storage_configuration.rbs +1 -0
  301. data/sig/openai/models/admin/organization/external_storage_create_params.rbs +33 -0
  302. data/sig/openai/models/admin/organization/oci_external_storage_provider.rbs +34 -0
  303. data/sig/openai/models/admin/organization/project_residency.rbs +6 -0
  304. data/sig/openai/models/admin/organization/projects/api_key_update_params.rbs +77 -0
  305. data/sig/openai/models/admin/organization/projects/api_key_update_scopes_params.rbs +38 -0
  306. data/sig/openai/models/admin/organization/usage_decisions_params.rbs +170 -0
  307. data/sig/openai/models/admin/organization/usage_decisions_response.rbs +319 -0
  308. data/sig/openai/models/audio/speech_create_params.rbs +4 -2
  309. data/sig/openai/models/audio/voice.rbs +21 -3
  310. data/sig/openai/models/audio/voice_create_params.rbs +90 -1
  311. data/sig/openai/models/beta/agent_create_params.rbs +4 -2
  312. data/sig/openai/models/beta/agent_list_params.rbs +9 -6
  313. data/sig/openai/models/beta/agent_session.rbs +36 -2
  314. data/sig/openai/models/beta/agent_update_params.rbs +4 -2
  315. data/sig/openai/models/beta/agents/environment_list_params.rbs +9 -9
  316. data/sig/openai/models/beta/agents/session_create_params.rbs +29 -2
  317. data/sig/openai/models/beta/agents/session_list_params.rbs +12 -12
  318. data/sig/openai/models/beta/agents/session_update_params.rbs +23 -0
  319. data/sig/openai/models/beta/agents/sessions/artifact_list_params.rbs +21 -15
  320. data/sig/openai/models/beta/agents/vault_list_params.rbs +32 -14
  321. data/sig/openai/models/beta/agents/vault_update_params.rbs +54 -0
  322. data/sig/openai/models/beta/agents/vaults/credential_list_params.rbs +32 -14
  323. data/sig/openai/models/beta/beta_response.rbs +2 -2
  324. data/sig/openai/models/beta/beta_response_error.rbs +19 -3
  325. data/sig/openai/models/beta/beta_response_input_item.rbs +110 -0
  326. data/sig/openai/models/beta/beta_response_item.rbs +110 -0
  327. data/sig/openai/models/beta/beta_response_output_item.rbs +110 -0
  328. data/sig/openai/models/beta/beta_responses_client_event.rbs +2 -2
  329. data/sig/openai/models/beta/response_create_params.rbs +2 -2
  330. data/sig/openai/models/beta/session_turn_error.rbs +4 -0
  331. data/sig/openai/models/chat/chat_completion_audio_param.rbs +2 -2
  332. data/sig/openai/models/chat/completion_create_params.rbs +2 -2
  333. data/sig/openai/models/conversations/conversation_item.rbs +110 -0
  334. data/sig/openai/models/decision.rbs +13 -0
  335. data/sig/openai/models/decision_create_params.rbs +19 -8
  336. data/sig/openai/models/decision_input_image.rbs +2 -2
  337. data/sig/openai/models/decision_input_message.rbs +2 -2
  338. data/sig/openai/models/live/built_in_voice.rbs +2 -0
  339. data/sig/openai/models/live/client_event.rbs +4 -0
  340. data/sig/openai/models/live/decision_create_event.rbs +18 -0
  341. data/sig/openai/models/live/decision_event.rbs +102 -0
  342. data/sig/openai/models/live/decision_item_create_event.rbs +183 -0
  343. data/sig/openai/models/live/decision_item_created_event.rbs +195 -0
  344. data/sig/openai/models/live/decision_item_delete_event.rbs +33 -0
  345. data/sig/openai/models/live/decision_item_deleted_event.rbs +49 -0
  346. data/sig/openai/models/live/decision_trigger.rbs +234 -0
  347. data/sig/openai/models/live/decisions_delegation_config.rbs +195 -0
  348. data/sig/openai/models/live/decisions_delegation_update_config.rbs +202 -0
  349. data/sig/openai/models/live/delegation_created_event.rbs +6 -7
  350. data/sig/openai/models/live/fork_client_event.rbs +4 -0
  351. data/sig/openai/models/live/fork_server_event.rbs +5 -0
  352. data/sig/openai/models/live/media_session_config.rbs +58 -11
  353. data/sig/openai/models/live/output_audio_fixture_play_event.rbs +42 -0
  354. data/sig/openai/models/live/output_audio_fixture_played_event.rbs +44 -0
  355. data/sig/openai/models/live/output_audio_fixture_playing_event.rbs +44 -0
  356. data/sig/openai/models/live/server_event.rbs +5 -0
  357. data/sig/openai/models/live/session_accept_params.rbs +57 -10
  358. data/sig/openai/models/live/session_config.rbs +58 -11
  359. data/sig/openai/models/live/session_resource.rbs +57 -10
  360. data/sig/openai/models/live/session_update_config.rbs +54 -3
  361. data/sig/openai/models/live/session_update_event.rbs +6 -6
  362. data/sig/openai/models/live/sideband_client_event.rbs +26 -0
  363. data/sig/openai/models/live/sideband_server_event.rbs +33 -0
  364. data/sig/openai/models/realtime/realtime_audio_config_output.rbs +6 -3
  365. data/sig/openai/models/realtime/realtime_response_create_audio_output.rbs +6 -3
  366. data/sig/openai/models/realtime/realtime_response_status.rbs +15 -3
  367. data/sig/openai/models/responses/response.rbs +2 -4
  368. data/sig/openai/models/responses/response_create_params.rbs +2 -2
  369. data/sig/openai/models/responses/response_error.rbs +19 -3
  370. data/sig/openai/models/responses/response_input_item.rbs +110 -0
  371. data/sig/openai/models/responses/response_item.rbs +110 -0
  372. data/sig/openai/models/responses/response_output_item.rbs +110 -0
  373. data/sig/openai/models/responses/responses_client_event.rbs +2 -2
  374. data/sig/openai/models/safety/safety_alert.rbs +12 -2
  375. data/sig/openai/models/video_create_error.rbs +19 -3
  376. data/sig/openai/models/webhooks/unwrap_webhook_event.rbs +1 -1
  377. data/sig/openai/resources/admin/organization/projects/api_keys.rbs +8 -0
  378. data/sig/openai/resources/admin/organization/usage.rbs +15 -0
  379. data/sig/openai/resources/beta/agents/environments/files.rbs +0 -17
  380. data/sig/openai/resources/beta/agents/sessions/artifacts.rbs +2 -6
  381. data/sig/openai/resources/beta/agents/sessions.rbs +4 -1
  382. data/sig/openai/resources/beta/agents/vaults/credentials.rbs +2 -1
  383. data/sig/openai/resources/beta/agents/vaults.rbs +9 -1
  384. data/sig/openai/resources/beta/agents.rbs +1 -1
  385. data/sig/openai/resources/files.rbs +0 -7
  386. data/sig/openai/resources/live/forks.rbs +8 -0
  387. data/sig/openai/resources/live/sideband.rbs +8 -0
  388. data/sig/openai/resources/live.rbs +7 -0
  389. data/sig/openai/resources/realtime/translations.rbs +7 -0
  390. data/sig/openai/resources/realtime.rbs +7 -0
  391. data/sig/openai/resources/responses.rbs +7 -31
  392. data/sig/openai/resources/vector_stores/file_batches.rbs +0 -31
  393. data/sig/openai/resources/vector_stores/files.rbs +0 -36
  394. data/sig/openai/resources/webhooks.rbs +1 -1
  395. metadata +89 -1
@@ -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
@@ -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: {}
@@ -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
 
@@ -59,6 +59,16 @@ module OpenAI
59
59
  sig { returns(T.nilable(T::Hash[Symbol, String])) }
60
60
  attr_accessor :metadata
61
61
 
62
+ # Optional spending limit in USD cents. Omission or null creates an unlimited
63
+ # session.
64
+ sig { returns(T.nilable(OpenAI::Beta::Agents::SessionCreateParams::SpendControl)) }
65
+ attr_reader :spend_control
66
+
67
+ sig {
68
+ params(spend_control: T.nilable(OpenAI::Beta::Agents::SessionCreateParams::SpendControl::OrHash)).void
69
+ }
70
+ attr_writer :spend_control
71
+
62
72
  # The IDs of vaults made available to the session.
63
73
  sig { returns(T.nilable(T::Array[String])) }
64
74
  attr_accessor :vault_ids
@@ -80,6 +90,8 @@ module OpenAI
80
90
 
81
91
  metadata: T.nilable(T::Hash[Symbol, String]),
82
92
 
93
+ spend_control: T.nilable(OpenAI::Beta::Agents::SessionCreateParams::SpendControl::OrHash),
94
+
83
95
  vault_ids: T.nilable(T::Array[String]),
84
96
 
85
97
  request_options: OpenAI::RequestOptions::OrHash
@@ -109,6 +121,10 @@ module OpenAI
109
121
  # characters. Omission or null defaults to an empty map.
110
122
  metadata: nil,
111
123
 
124
+ # Optional spending limit in USD cents. Omission or null creates an unlimited
125
+ # session.
126
+ spend_control: nil,
127
+
112
128
  # The IDs of vaults made available to the session.
113
129
  vault_ids: nil,
114
130
 
@@ -128,6 +144,7 @@ module OpenAI
128
144
  agent_id: String,
129
145
  input: T.nilable(OpenAI::Beta::Agents::SessionCreateParams::Input::Variants),
130
146
  metadata: T.nilable(T::Hash[Symbol, String]),
147
+ spend_control: T.nilable(OpenAI::Beta::Agents::SessionCreateParams::SpendControl),
131
148
  vault_ids: T.nilable(T::Array[String]),
132
149
  request_options: OpenAI::RequestOptions
133
150
  }
@@ -182,7 +199,9 @@ module OpenAI
182
199
  sig { params(text: T.nilable(OpenAI::Beta::AgentTextParam::OrHash)).void }
183
200
  attr_writer :text
184
201
 
185
- # Tools available to the agent. Omit to inherit, or pass null to clear them.
202
+ # Tools available to the agent. Omit to inherit, or pass null to clear them. The
203
+ # resolved tool list must fit within 3 MiB (3,145,728 bytes) of compact UTF-8
204
+ # JSON.
186
205
  sig {
187
206
  returns(
188
207
  T.nilable(
@@ -255,7 +274,9 @@ module OpenAI
255
274
  # Configuration for text generated by the agent.
256
275
  text: nil,
257
276
 
258
- # Tools available to the agent. Omit to inherit, or pass null to clear them.
277
+ # Tools available to the agent. Omit to inherit, or pass null to clear them. The
278
+ # resolved tool list must fit within 3 MiB (3,145,728 bytes) of compact UTF-8
279
+ # JSON.
259
280
 
260
281
  tools: nil
261
282
  )
@@ -340,6 +361,45 @@ module OpenAI
340
361
 
341
362
  end
342
363
 
364
+ class SpendControl < OpenAI::Internal::Type::BaseModel
365
+ OrHash = T.type_alias do
366
+ T.any(
367
+ OpenAI::Beta::Agents::SessionCreateParams::SpendControl,
368
+ OpenAI::Internal::AnyHash
369
+ )
370
+ end
371
+
372
+ # Positive USD cents, or null to remove the limit.
373
+ sig { returns(T.nilable(Integer)) }
374
+ attr_accessor :limit
375
+
376
+ # Optional spending limit in USD cents. Omission or null creates an unlimited
377
+ # session.
378
+ sig do
379
+ params(
380
+
381
+ limit: T.nilable(Integer)
382
+ )
383
+ .returns(T.attached_class)
384
+ end
385
+ def self.new(
386
+
387
+ # Positive USD cents, or null to remove the limit.
388
+
389
+ limit:
390
+ )
391
+ end
392
+
393
+ sig do
394
+ override.returns(
395
+ {limit: T.nilable(Integer)}
396
+ )
397
+ end
398
+ def to_hash
399
+ end
400
+
401
+ end
402
+
343
403
  end
344
404
 
345
405
  end
@@ -34,12 +34,14 @@ module OpenAI
34
34
  sig { params(agent_id: String).void }
35
35
  attr_writer :agent_id
36
36
 
37
- # The maximum number of resources to return.
37
+ # The maximum number of resources to return, between 1 and 100. Defaults to 20.
38
38
  sig { returns(T.nilable(Integer)) }
39
- attr_accessor :limit
39
+ attr_reader :limit
40
40
 
41
- # Sort order by the `created_at` timestamp. Use `asc` for ascending order or
42
- # `desc` for descending order. Defaults to `desc`.
41
+ sig { params(limit: Integer).void }
42
+ attr_writer :limit
43
+
44
+ # The order in which resources are returned. Defaults to `desc`.
43
45
  sig { returns(T.nilable(OpenAI::Beta::Agents::SessionListParams::Order::OrSymbol)) }
44
46
  attr_reader :order
45
47
 
@@ -53,7 +55,7 @@ module OpenAI
53
55
 
54
56
  agent_id: String,
55
57
 
56
- limit: T.nilable(Integer),
58
+ limit: Integer,
57
59
 
58
60
  order: OpenAI::Beta::Agents::SessionListParams::Order::OrSymbol,
59
61
 
@@ -70,11 +72,10 @@ module OpenAI
70
72
  # all agents.
71
73
  agent_id: nil,
72
74
 
73
- # The maximum number of resources to return.
75
+ # The maximum number of resources to return, between 1 and 100. Defaults to 20.
74
76
  limit: nil,
75
77
 
76
- # Sort order by the `created_at` timestamp. Use `asc` for ascending order or
77
- # `desc` for descending order. Defaults to `desc`.
78
+ # The order in which resources are returned. Defaults to `desc`.
78
79
  order: nil,
79
80
 
80
81
  request_options: {}
@@ -86,7 +87,7 @@ module OpenAI
86
87
  {
87
88
  after: String,
88
89
  agent_id: String,
89
- limit: T.nilable(Integer),
90
+ limit: Integer,
90
91
  order: OpenAI::Beta::Agents::SessionListParams::Order::OrSymbol,
91
92
  request_options: OpenAI::RequestOptions
92
93
  }
@@ -95,8 +96,7 @@ module OpenAI
95
96
  def to_hash
96
97
  end
97
98
 
98
- # Sort order by the `created_at` timestamp. Use `asc` for ascending order or
99
- # `desc` for descending order. Defaults to `desc`.
99
+ # The order in which resources are returned. Defaults to `desc`.
100
100
  module Order
101
101
  extend OpenAI::Internal::Type::Enum
102
102
 
@@ -35,6 +35,16 @@ module OpenAI
35
35
  sig { returns(T.nilable(T::Hash[Symbol, String])) }
36
36
  attr_accessor :metadata
37
37
 
38
+ # Omit to retain the limit; null or a null limit removes it without resetting
39
+ # spend.
40
+ sig { returns(T.nilable(OpenAI::Beta::Agents::SessionUpdateParams::SpendControl)) }
41
+ attr_reader :spend_control
42
+
43
+ sig {
44
+ params(spend_control: T.nilable(OpenAI::Beta::Agents::SessionUpdateParams::SpendControl::OrHash)).void
45
+ }
46
+ attr_writer :spend_control
47
+
38
48
  sig do
39
49
  params(
40
50
 
@@ -44,6 +54,8 @@ module OpenAI
44
54
 
45
55
  metadata: T.nilable(T::Hash[Symbol, String]),
46
56
 
57
+ spend_control: T.nilable(OpenAI::Beta::Agents::SessionUpdateParams::SpendControl::OrHash),
58
+
47
59
  request_options: OpenAI::RequestOptions::OrHash
48
60
  )
49
61
  .returns(T.attached_class)
@@ -60,6 +72,10 @@ module OpenAI
60
72
  # characters.
61
73
  metadata: nil,
62
74
 
75
+ # Omit to retain the limit; null or a null limit removes it without resetting
76
+ # spend.
77
+ spend_control: nil,
78
+
63
79
  request_options: {}
64
80
  )
65
81
  end
@@ -70,6 +86,7 @@ module OpenAI
70
86
  session_id: String,
71
87
  agent: OpenAI::Beta::Agents::SessionUpdateParams::Agent,
72
88
  metadata: T.nilable(T::Hash[Symbol, String]),
89
+ spend_control: T.nilable(OpenAI::Beta::Agents::SessionUpdateParams::SpendControl),
73
90
  request_options: OpenAI::RequestOptions
74
91
  }
75
92
  )
@@ -242,6 +259,45 @@ module OpenAI
242
259
  end
243
260
  end
244
261
 
262
+ class SpendControl < OpenAI::Internal::Type::BaseModel
263
+ OrHash = T.type_alias do
264
+ T.any(
265
+ OpenAI::Beta::Agents::SessionUpdateParams::SpendControl,
266
+ OpenAI::Internal::AnyHash
267
+ )
268
+ end
269
+
270
+ # Positive USD cents, or null to remove the limit.
271
+ sig { returns(T.nilable(Integer)) }
272
+ attr_accessor :limit
273
+
274
+ # Omit to retain the limit; null or a null limit removes it without resetting
275
+ # spend.
276
+ sig do
277
+ params(
278
+
279
+ limit: T.nilable(Integer)
280
+ )
281
+ .returns(T.attached_class)
282
+ end
283
+ def self.new(
284
+
285
+ # Positive USD cents, or null to remove the limit.
286
+
287
+ limit:
288
+ )
289
+ end
290
+
291
+ sig do
292
+ override.returns(
293
+ {limit: T.nilable(Integer)}
294
+ )
295
+ end
296
+ def to_hash
297
+ end
298
+
299
+ end
300
+
245
301
  end
246
302
 
247
303
  end