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
@@ -6,6 +6,23 @@ module OpenAI
6
6
  # Create and manage model responses.
7
7
  class Responses
8
8
 
9
+ include OpenAI::WebSocket::Resource
10
+
11
+ # @api private
12
+ sig { params(query: T::Hash[T.untyped, T.untyped]).returns(T::Hash[Symbol, T.untyped]) }
13
+ def __websocket_request(query: {})
14
+ end
15
+
16
+ # @api private
17
+ sig { returns(T.untyped) }
18
+ def __websocket_client_event
19
+ end
20
+
21
+ # @api private
22
+ sig { returns(T.untyped) }
23
+ def __websocket_server_event
24
+ end
25
+
9
26
  # Create and manage model responses.
10
27
  sig { returns(OpenAI::Resources::Responses::InputItems) }
11
28
  attr_reader :input_items
@@ -27,7 +44,7 @@ module OpenAI
27
44
  # [web search](https://developers.openai.com/api/docs/guides/tools-web-search) or
28
45
  # [file search](https://developers.openai.com/api/docs/guides/tools-file-search)
29
46
  # to use your own data as input for the model's response.
30
- sig do
47
+ sig {
31
48
  params(
32
49
  access_programs: OpenAI::Responses::ResponseCreateParams::AccessPrograms::OrHash,
33
50
  background: T.nilable(T::Boolean),
@@ -53,10 +70,7 @@ module OpenAI
53
70
  store: T.nilable(T::Boolean),
54
71
  stream_options: T.nilable(OpenAI::Responses::ResponseCreateParams::StreamOptions::OrHash),
55
72
  temperature: T.nilable(Float),
56
- text: T.any(
57
- OpenAI::Responses::ResponseTextConfig::OrHash,
58
- OpenAI::StructuredOutput::JsonSchemaConverter
59
- ),
73
+ text: T.any(OpenAI::Responses::ResponseTextConfig::OrHash, OpenAI::StructuredOutput::JsonSchemaConverter),
60
74
  tool_choice: T.any(
61
75
  OpenAI::Responses::ToolChoiceOptions::OrSymbol,
62
76
  OpenAI::Responses::ToolChoiceAllowed::OrHash,
@@ -96,7 +110,7 @@ module OpenAI
96
110
  request_options: OpenAI::RequestOptions::OrHash
97
111
  )
98
112
  .returns(OpenAI::Responses::Response)
99
- end
113
+ }
100
114
  def create(
101
115
  # Domain-specific access programs to use for this request.
102
116
  access_programs: nil,
@@ -216,7 +230,7 @@ module OpenAI
216
230
  reasoning: nil,
217
231
  # A stable identifier used to help detect users of your application that may be
218
232
  # violating OpenAI's usage policies. The IDs should be a string that uniquely
219
- # identifies each user, with a maximum length of 64 characters. We recommend
233
+ # identifies each user, with a maximum length of 128 characters. We recommend
220
234
  # hashing their username or email address, in order to avoid sending us any
221
235
  # identifying information.
222
236
  # [Learn more](https://developers.openai.com/api/docs/guides/safety-best-practices#implement-safety-identifiers).
@@ -335,7 +349,7 @@ module OpenAI
335
349
  # [web search](https://developers.openai.com/api/docs/guides/tools-web-search) or
336
350
  # [file search](https://developers.openai.com/api/docs/guides/tools-file-search)
337
351
  # to use your own data as input for the model's response.
338
- sig do
352
+ sig {
339
353
  params(
340
354
  access_programs: OpenAI::Responses::ResponseCreateParams::AccessPrograms::OrHash,
341
355
  background: T.nilable(T::Boolean),
@@ -362,10 +376,7 @@ module OpenAI
362
376
  stream_options: T.nilable(OpenAI::Responses::ResponseCreateParams::StreamOptions::OrHash),
363
377
  temperature: T.nilable(Float),
364
378
  text: T.nilable(
365
- T.any(
366
- OpenAI::Responses::ResponseTextConfig::OrHash,
367
- OpenAI::StructuredOutput::JsonSchemaConverter
368
- )
379
+ T.any(OpenAI::Responses::ResponseTextConfig::OrHash, OpenAI::StructuredOutput::JsonSchemaConverter)
369
380
  ),
370
381
  tool_choice: T.any(
371
382
  OpenAI::Responses::ToolChoiceOptions::OrSymbol,
@@ -410,7 +421,7 @@ module OpenAI
410
421
  T.any(OpenAI::Responses::ResponseStreamEvent::Variants, OpenAI::Streaming::UnknownStreamEvent)
411
422
  ]
412
423
  )
413
- end
424
+ }
414
425
  def stream_raw(
415
426
  # Domain-specific access programs to use for this request.
416
427
  access_programs: nil,
@@ -530,7 +541,7 @@ module OpenAI
530
541
  reasoning: nil,
531
542
  # A stable identifier used to help detect users of your application that may be
532
543
  # violating OpenAI's usage policies. The IDs should be a string that uniquely
533
- # identifies each user, with a maximum length of 64 characters. We recommend
544
+ # identifies each user, with a maximum length of 128 characters. We recommend
534
545
  # hashing their username or email address, in order to avoid sending us any
535
546
  # identifying information.
536
547
  # [Learn more](https://developers.openai.com/api/docs/guides/safety-best-practices#implement-safety-identifiers).
@@ -636,329 +647,28 @@ module OpenAI
636
647
  )
637
648
  end
638
649
 
639
- # See {OpenAI::Resources::Responses#create} for non-streaming counterpart.
640
- #
641
- # Creates a model response. Provide
642
- # [text](https://developers.openai.com/api/docs/guides/text) or
643
- # [image](https://developers.openai.com/api/docs/guides/images-vision) inputs to generate
644
- # [text](https://developers.openai.com/api/docs/guides/text) or
645
- # [JSON](https://developers.openai.com/api/docs/guides/structured-outputs) outputs. Have
646
- # the model call your own
647
- # [custom code](https://developers.openai.com/api/docs/guides/function-calling) or use
648
- # built-in [tools](https://developers.openai.com/api/docs/guides/tools) like
649
- # [web search](https://developers.openai.com/api/docs/guides/tools-web-search) or
650
- # [file search](https://developers.openai.com/api/docs/guides/tools-file-search) to use
651
- # your own data as input for the model's response.
652
- sig do
653
- params(
654
- access_programs: OpenAI::Responses::ResponseCreateParams::AccessPrograms::OrHash,
655
- background: T.nilable(T::Boolean),
656
- include: T.nilable(
657
- T::Array[OpenAI::Responses::ResponseIncludable::OrSymbol]
658
- ),
659
- input: T.nilable(OpenAI::Responses::ResponseCreateParams::Input::Variants),
660
- instructions: T.nilable(String),
661
- max_output_tokens: T.nilable(Integer),
662
- max_tool_calls: T.nilable(Integer),
663
- metadata: T.nilable(T::Hash[Symbol, String]),
664
- model: T.nilable(
665
- T.any(
666
- String,
667
- OpenAI::ChatModel::OrSymbol,
668
- OpenAI::ResponsesModel::ResponsesOnlyModel::OrSymbol
669
- )
670
- ),
671
- parallel_tool_calls: T.nilable(T::Boolean),
672
- previous_response_id: T.nilable(String),
673
- prompt: T.nilable(OpenAI::Responses::ResponsePrompt::OrHash),
674
- prompt_cache_key: String,
675
- prompt_cache_options: T.nilable(OpenAI::Responses::ResponseCreateParams::PromptCacheOptions::OrHash),
676
- prompt_cache_retention: T.nilable(OpenAI::Responses::ResponseCreateParams::PromptCacheRetention::OrSymbol),
677
- reasoning: T.nilable(OpenAI::Reasoning::OrHash),
678
- response_id: T.nilable(String),
679
- safety_identifier: String,
680
- service_tier: T.nilable(
681
- OpenAI::Responses::ResponseCreateParams::ServiceTier::OrSymbol
682
- ),
683
- starting_after: T.nilable(Integer),
684
- store: T.nilable(T::Boolean),
685
- temperature: T.nilable(Float),
686
- text: T.nilable(
687
- T.any(
688
- OpenAI::Responses::ResponseTextConfig::OrHash,
689
- OpenAI::StructuredOutput::JsonSchemaConverter
690
- )
691
- ),
692
- tool_choice: T.any(
693
- OpenAI::Responses::ToolChoiceOptions::OrSymbol,
694
- OpenAI::Responses::ToolChoiceAllowed::OrHash,
695
- OpenAI::Responses::ToolChoiceTypes::OrHash,
696
- OpenAI::Responses::ToolChoiceFunction::OrHash,
697
- OpenAI::Responses::ToolChoiceMcp::OrHash
698
- ),
699
- tools: T.nilable(
700
- T::Array[
701
- T.any(
702
- OpenAI::StructuredOutput::JsonSchemaConverter,
703
- OpenAI::Responses::FunctionTool::OrHash,
704
- OpenAI::Responses::FileSearchTool::OrHash,
705
- OpenAI::Responses::ComputerTool::OrHash,
706
- OpenAI::Responses::Tool::Mcp::OrHash,
707
- OpenAI::Responses::Tool::CodeInterpreter::OrHash,
708
- OpenAI::Responses::Tool::ImageGeneration::OrHash,
709
- OpenAI::Responses::Tool::LocalShell::OrHash,
710
- OpenAI::Responses::WebSearchTool::OrHash
711
- )
712
- ]
713
- ),
714
- top_logprobs: T.nilable(Integer),
715
- top_p: T.nilable(Float),
716
- truncation: T.nilable(
717
- OpenAI::Responses::ResponseCreateParams::Truncation::OrSymbol
718
- ),
719
- user: String,
720
- request_options: OpenAI::RequestOptions::OrHash
721
- )
722
- .returns(OpenAI::Streaming::ResponseStream)
723
- end
724
- def stream(
725
- # Domain-specific access programs to use for this request.
726
- access_programs: nil,
727
- # Whether to run the model response in the background.
728
- # [Learn more](https://developers.openai.com/api/docs/guides/background).
729
- background: nil,
730
- # Specify additional output data to include in the model response. Currently
731
- # supported values are:
732
- #
733
- # - `code_interpreter_call.outputs`: Includes the outputs of python code execution
734
- # in code interpreter tool call items.
735
- # - `computer_call_output.output.image_url`: Include image urls from the computer
736
- # call output.
737
- # - `file_search_call.results`: Include the search results of the file search tool
738
- # call.
739
- # - `message.input_image.image_url`: Include image urls from the input message.
740
- # - `message.output_text.logprobs`: Include logprobs with assistant messages.
741
- # - `reasoning.encrypted_content`: Includes an encrypted version of reasoning
742
- # tokens in reasoning item outputs. This enables reasoning items to be used in
743
- # multi-turn conversations when using the Responses API statelessly (like when
744
- # the `store` parameter is set to `false`, or when an organization is enrolled
745
- # in the zero data retention program).
746
- include: nil,
747
- # Text, image, or file inputs to the model, used to generate a response.
748
- #
749
- # Learn more:
750
- #
751
- # - [Text inputs and outputs](https://developers.openai.com/api/docs/guides/text)
752
- # - [Image inputs](https://developers.openai.com/api/docs/guides/images-vision)
753
- # - [File inputs](https://developers.openai.com/api/docs/guides/file-inputs)
754
- # - [Conversation state](https://developers.openai.com/api/docs/guides/conversation-state)
755
- # - [Function calling](https://developers.openai.com/api/docs/guides/function-calling)
756
- input: nil,
757
- # A system (or developer) message inserted into the model's context.
758
- #
759
- # When using along with `previous_response_id`, the instructions from a previous
760
- # response will not be carried over to the next response. This makes it simple to
761
- # swap out system (or developer) messages in new responses.
762
- instructions: nil,
763
- # An upper bound for the number of tokens that can be generated for a response,
764
- # including visible output tokens and
765
- # [reasoning tokens](https://developers.openai.com/api/docs/guides/reasoning).
766
- max_output_tokens: nil,
767
- # The maximum number of total calls to built-in tools that can be processed in a
768
- # response. This maximum number applies across all built-in tool calls, not per
769
- # individual tool. Any further attempts to call a tool by the model will be
770
- # ignored.
771
- max_tool_calls: nil,
772
- # Set of 16 key-value pairs that can be attached to an object. This can be useful
773
- # for storing additional information about the object in a structured format, and
774
- # querying for objects via API or the dashboard.
775
- #
776
- # Keys are strings with a maximum length of 64 characters. Values are strings with
777
- # a maximum length of 512 characters.
778
- metadata: nil,
779
- # Model ID used to generate the response, like `gpt-6-astra`. OpenAI offers a wide
780
- # range of models with different capabilities, performance characteristics, and
781
- # price points. Refer to the
782
- # [model guide](https://developers.openai.com/api/docs/models) to browse and
783
- # compare available models.
784
- model: nil,
785
- # Whether to allow the model to run tool calls in parallel.
786
- parallel_tool_calls: nil,
787
- # The unique ID of the previous response to the model. Use this to create
788
- # multi-turn conversations. Learn more about
789
- # [conversation state](https://developers.openai.com/api/docs/guides/conversation-state).
790
- # Cannot be used in conjunction with `conversation`.
791
- previous_response_id: nil,
792
- # Reference to a prompt template and its variables.
793
- # [Learn more](https://developers.openai.com/api/docs/guides/text?api-mode=responses#version-prompts-in-code).
794
- prompt: nil,
795
- # Used by OpenAI to cache responses for similar requests to optimize your cache
796
- # hit rates. Replaces the `user` field.
797
- # [Learn more](https://developers.openai.com/api/docs/guides/prompt-caching).
798
- prompt_cache_key: nil,
799
- # Options for prompt caching. Supported for `gpt-5.6` and later models. By
800
- # default, OpenAI automatically chooses one implicit cache breakpoint. You can add
801
- # explicit breakpoints to content blocks with `prompt_cache_breakpoint`. Each
802
- # request can write up to four breakpoints. For cache matching, OpenAI considers
803
- # up to the latest 80 breakpoints in the conversation, without a content-block
804
- # lookback limit. Set `mode` to `explicit` to disable the implicit breakpoint. The
805
- # `ttl` defaults to `30m`, which is currently the only supported value. See the
806
- # [prompt caching guide](https://developers.openai.com/api/docs/guides/prompt-caching)
807
- # for current details.
808
- prompt_cache_options: nil,
809
- # Deprecated. Use `prompt_cache_options.ttl` instead.
810
- #
811
- # The retention policy for the prompt cache. Set to `24h` to enable extended
812
- # prompt caching, which keeps cached prefixes active for longer, up to a maximum
813
- # of 24 hours.
814
- # [Learn more](https://developers.openai.com/api/docs/guides/prompt-caching#prompt-cache-retention).
815
- # This field expresses a maximum retention policy, while
816
- # `prompt_cache_options.ttl` expresses a minimum cache lifetime. The two fields
817
- # are independent and do not interact. For `gpt-5.5`, `gpt-5.5-pro`, and future
818
- # models, only `24h` is supported.
819
- #
820
- # For older models that support both `in_memory` and `24h`, the default depends on
821
- # your organization's data retention policy:
822
- #
823
- # - Organizations without ZDR enabled default to `24h`.
824
- # - Organizations with ZDR enabled default to `in_memory` when
825
- # `prompt_cache_retention` is not specified.
826
- prompt_cache_retention: nil,
827
- # Configuration options for
828
- # [reasoning models](https://developers.openai.com/api/docs/guides/reasoning).
829
- reasoning: nil,
830
- # The ID of the response whose stream to resume.
831
- response_id: nil,
832
- # A stable identifier used to help detect users of your application that may be
833
- # violating OpenAI's usage policies. The IDs should be a string that uniquely
834
- # identifies each user, with a maximum length of 64 characters. We recommend
835
- # hashing their username or email address, in order to avoid sending us any
836
- # identifying information.
837
- # [Learn more](https://developers.openai.com/api/docs/guides/safety-best-practices#implement-safety-identifiers).
838
- safety_identifier: nil,
839
- # Specifies the processing type used for serving the request.
840
- #
841
- # - If set to 'auto', then the request will be processed with the service tier
842
- # configured in the Project settings. Unless otherwise configured, the Project
843
- # will use 'default'.
844
- # - If set to 'default', then the request will be processed with the standard
845
- # pricing and performance for the selected model.
846
- # - If set to
847
- # '[flex](https://developers.openai.com/api/docs/guides/flex-processing)', then
848
- # the request will be processed with the Flex Processing service tier.
849
- # - To opt-in to
850
- # [Fast mode](https://developers.openai.com/api/docs/guides/fast-mode) at the
851
- # request level, include the `service_tier=fast` or `service_tier=priority`
852
- # parameter for Responses or Chat Completions. The response will show
853
- # `service_tier=priority` regardless of if you specify `service_tier=fast` or
854
- # `priority` in your request.
855
- # - If set to 'ultrafast', then the request will be processed with the
856
- # access-controlled Ultrafast Processing service tier. This tier is currently
857
- # available for `gpt-5.6-sol`; a response served through it will show
858
- # `service_tier=ultrafast`.
859
- # - When not set, the default behavior is 'auto'.
860
- #
861
- # When the `service_tier` parameter is set, the response body will include the
862
- # `service_tier` value based on the processing mode actually used to serve the
863
- # request. This response value may be different from the value set in the
864
- # parameter.
865
- service_tier: nil,
866
- # The sequence number of the event after which to resume streaming. Can only be
867
- # used with `response_id`.
868
- starting_after: nil,
869
- # Whether to store the generated model response for later retrieval via API.
870
- store: nil,
871
- # What sampling temperature to use, between 0 and 2. Higher values like 0.8 will
872
- # make the output more random, while lower values like 0.2 will make it more
873
- # focused and deterministic. We generally recommend altering this or `top_p` but
874
- # not both.
875
- temperature: nil,
876
- # Configuration options for a text response from the model. Can be plain text,
877
- # structured JSON data, or text that conforms to a custom grammar. Learn more:
878
- #
879
- # - [Text inputs and outputs](https://developers.openai.com/api/docs/guides/text)
880
- # - [Structured Outputs](https://developers.openai.com/api/docs/guides/structured-outputs)
881
- text: nil,
882
- # How the model should select which tool (or tools) to use when generating a
883
- # response. See the `tools` parameter to see how to specify which tools the model
884
- # can call.
885
- tool_choice: nil,
886
- # An array of tools the model may call while generating a response. You can
887
- # specify which tool to use by setting the `tool_choice` parameter.
888
- #
889
- # The two categories of tools you can provide the model are:
890
- #
891
- # - **Built-in tools**: Tools that are provided by OpenAI that extend the model's
892
- # capabilities, like
893
- # [web search](https://developers.openai.com/api/docs/guides/tools-web-search)
894
- # or
895
- # [file search](https://developers.openai.com/api/docs/guides/tools-file-search).
896
- # Learn more about
897
- # [built-in tools](https://developers.openai.com/api/docs/guides/tools).
898
- # - **MCP Tools**: Integrations with third-party systems via custom MCP servers or
899
- # predefined connectors such as Google Drive and SharePoint. Learn more about
900
- # [MCP Tools](https://developers.openai.com/api/docs/guides/tools-connectors-mcp).
901
- # - **Function calls (custom tools)**: Functions that are defined by you, enabling
902
- # the model to call your own code with strongly typed arguments and outputs.
903
- # Learn more about
904
- # [function calling](https://developers.openai.com/api/docs/guides/function-calling).
905
- # You can also use custom tools to call your own code.
906
- tools: nil,
907
- # An integer between 0 and 20 specifying the number of most likely tokens to
908
- # return at each token position, each with an associated log probability.
909
- top_logprobs: nil,
910
- # An alternative to sampling with temperature, called nucleus sampling, where the
911
- # model considers the results of the tokens with top_p probability mass. So 0.1
912
- # means only the tokens comprising the top 10% probability mass are considered.
913
- #
914
- # We generally recommend altering this or `temperature` but not both.
915
- top_p: nil,
916
- # The truncation strategy to use for the model response.
917
- #
918
- # - `auto`: If the context of this response and previous ones exceeds the model's
919
- # context window size, the model will truncate the response to fit the context
920
- # window by dropping input items in the middle of the conversation.
921
- # - `disabled` (default): If a model response will exceed the context window size
922
- # for a model, the request will fail with a 400 error.
923
- truncation: nil,
924
- # This field is being replaced by `safety_identifier` and `prompt_cache_key`. Use
925
- # `prompt_cache_key` instead to maintain caching optimizations. A stable
926
- # identifier for your end-users. Used to boost cache hit rates by better bucketing
927
- # similar requests and to help OpenAI detect and prevent abuse.
928
- # [Learn more](https://developers.openai.com/api/docs/guides/safety-best-practices#implement-safety-identifiers).
929
- user: nil,
930
- request_options: {}
931
- )
932
- end
933
-
934
650
  # See {OpenAI::Resources::Responses#retrieve_streaming} for streaming counterpart.
935
651
  #
936
652
  # Retrieves a model response with the given ID.
937
- sig do
653
+ sig {
938
654
  params(
939
655
  response_id: String,
940
656
  include: T::Array[OpenAI::Responses::ResponseIncludable::OrSymbol],
941
657
  include_obfuscation: T::Boolean,
942
658
  starting_after: Integer,
943
659
  text: T.nilable(
944
- T.any(
945
- OpenAI::Responses::ResponseTextConfig::OrHash,
946
- OpenAI::StructuredOutput::JsonSchemaConverter::Input
947
- )
660
+ T.any(OpenAI::Responses::ResponseTextConfig::OrHash, OpenAI::StructuredOutput::JsonSchemaConverter::Input)
948
661
  ),
949
662
  tools: T.nilable(
950
663
  T::Array[
951
- T.any(
952
- OpenAI::Responses::FunctionTool::OrHash,
953
- OpenAI::StructuredOutput::JsonSchemaConverter::Input
954
- )
664
+ T.any(OpenAI::Responses::FunctionTool::OrHash, OpenAI::StructuredOutput::JsonSchemaConverter::Input)
955
665
  ]
956
666
  ),
957
667
  stream: T.noreturn,
958
668
  request_options: OpenAI::RequestOptions::OrHash
959
669
  )
960
670
  .returns(OpenAI::Responses::Response)
961
- end
671
+ }
962
672
  def retrieve(
963
673
  # The ID of the response to retrieve.
964
674
  response_id,
@@ -974,11 +684,11 @@ module OpenAI
974
684
  include_obfuscation: nil,
975
685
  # The sequence number of the event after which to start streaming.
976
686
  starting_after: nil,
977
- # The structured-output model used to parse retrieved text output. This is a
978
- # local parsing hint and is not sent to the API.
687
+ # The structured-output model used to parse retrieved text output. This is a local
688
+ # parsing hint and is not sent to the API.
979
689
  text: nil,
980
- # Structured-output models used to parse retrieved function tool calls. These
981
- # are local parsing hints and are not sent to the API.
690
+ # Structured-output models used to parse retrieved function tool calls. These are
691
+ # local parsing hints and are not sent to the API.
982
692
  tools: nil,
983
693
  # There is no need to provide `stream:`. Instead, use `#retrieve_streaming` or
984
694
  # `#retrieve` for streaming and non-streaming use cases, respectively.
@@ -990,7 +700,7 @@ module OpenAI
990
700
  # See {OpenAI::Resources::Responses#retrieve} for non-streaming counterpart.
991
701
  #
992
702
  # Retrieves a model response with the given ID.
993
- sig do
703
+ sig {
994
704
  params(
995
705
  response_id: String,
996
706
  include: T::Array[OpenAI::Responses::ResponseIncludable::OrSymbol],
@@ -1004,7 +714,7 @@ module OpenAI
1004
714
  T.any(OpenAI::Responses::ResponseStreamEvent::Variants, OpenAI::Streaming::UnknownStreamEvent)
1005
715
  ]
1006
716
  )
1007
- end
717
+ }
1008
718
  def retrieve_streaming(
1009
719
  # The ID of the response to retrieve.
1010
720
  response_id,
@@ -1039,13 +749,11 @@ module OpenAI
1039
749
  # Cancels a model response with the given ID. Only responses created with the
1040
750
  # `background` parameter set to `true` can be cancelled.
1041
751
  # [Learn more](https://developers.openai.com/api/docs/guides/background).
1042
- sig do
1043
- params(
1044
- response_id: String,
1045
- request_options: OpenAI::RequestOptions::OrHash
752
+ sig {
753
+ params(response_id: String, request_options: OpenAI::RequestOptions::OrHash).returns(
754
+ OpenAI::Responses::Response
1046
755
  )
1047
- .returns(OpenAI::Responses::Response)
1048
- end
756
+ }
1049
757
  def cancel(
1050
758
  # The ID of the response to cancel.
1051
759
  response_id,
@@ -1059,7 +767,7 @@ module OpenAI
1059
767
  # [conversation state guide](https://developers.openai.com/api/docs/guides/conversation-state#managing-the-context-window).
1060
768
  # For ZDR-compatible compaction details, see
1061
769
  # [Compaction (advanced)](https://developers.openai.com/api/docs/guides/conversation-state#compaction-advanced).
1062
- sig do
770
+ sig {
1063
771
  params(
1064
772
  model: T.nilable(T.any(OpenAI::Responses::ResponseCompactParams::Model::OrSymbol, String)),
1065
773
  input: T.nilable(OpenAI::Responses::ResponseCompactParams::Input::Variants),
@@ -1072,7 +780,7 @@ module OpenAI
1072
780
  request_options: OpenAI::RequestOptions::OrHash
1073
781
  )
1074
782
  .returns(OpenAI::Responses::CompactedResponse)
1075
- end
783
+ }
1076
784
  def compact(
1077
785
  # Model ID used to generate the response, like `gpt-6-astra`. OpenAI offers a wide
1078
786
  # range of models with different capabilities, performance characteristics, and
@@ -52,42 +52,6 @@ module OpenAI
52
52
  )
53
53
  end
54
54
 
55
- # Create a vector store file batch and wait for processing to finish.
56
- sig do
57
- params(
58
- vector_store_id: String,
59
- attributes: T.nilable(
60
- T::Hash[
61
- Symbol,
62
- OpenAI::VectorStores::FileBatchCreateParams::Attribute::Variants
63
- ]
64
- ),
65
- chunking_strategy: T.any(
66
- OpenAI::AutoFileChunkingStrategyParam::OrHash,
67
- OpenAI::StaticFileChunkingStrategyObjectParam::OrHash
68
- ),
69
- file_ids: T::Array[String],
70
- files: T::Array[
71
- OpenAI::VectorStores::FileBatchCreateParams::File::OrHash
72
- ],
73
- poll_interval: T.nilable(T.any(Integer, Float)),
74
- timeout: T.nilable(T.any(Integer, Float)),
75
- request_options: OpenAI::RequestOptions::OrHash
76
- )
77
- .returns(OpenAI::VectorStores::VectorStoreFileBatch)
78
- end
79
- def create_and_poll(
80
- vector_store_id,
81
- attributes: nil,
82
- chunking_strategy: nil,
83
- file_ids: nil,
84
- files: nil,
85
- poll_interval: nil,
86
- timeout: OpenAI::Internal::Poller::DEFAULT_TIMEOUT,
87
- request_options: {}
88
- )
89
- end
90
-
91
55
  # Retrieves a vector store file batch.
92
56
  sig {
93
57
  params(batch_id: String, vector_store_id: String, request_options: OpenAI::RequestOptions::OrHash).returns(
@@ -161,63 +125,6 @@ module OpenAI
161
125
  )
162
126
  end
163
127
 
164
- # Wait for a vector store file batch to finish processing.
165
- sig do
166
- params(
167
- batch_id: String,
168
- vector_store_id: String,
169
- poll_interval: T.nilable(T.any(Integer, Float)),
170
- timeout: T.nilable(T.any(Integer, Float)),
171
- request_options: OpenAI::RequestOptions::OrHash
172
- )
173
- .returns(OpenAI::VectorStores::VectorStoreFileBatch)
174
- end
175
- def poll(
176
- batch_id,
177
- vector_store_id:,
178
- poll_interval: nil,
179
- timeout: OpenAI::Internal::Poller::DEFAULT_TIMEOUT,
180
- request_options: {}
181
- )
182
- end
183
-
184
- # Upload files concurrently, create a vector store file batch, and wait for
185
- # processing to finish.
186
- sig do
187
- params(
188
- vector_store_id: String,
189
- files: T::Enumerable[OpenAI::Internal::FileInput],
190
- file_ids: T::Array[String],
191
- max_concurrency: Integer,
192
- attributes: T.nilable(
193
- T::Hash[
194
- Symbol,
195
- OpenAI::VectorStores::FileBatchCreateParams::Attribute::Variants
196
- ]
197
- ),
198
- chunking_strategy: T.any(
199
- OpenAI::AutoFileChunkingStrategyParam::OrHash,
200
- OpenAI::StaticFileChunkingStrategyObjectParam::OrHash
201
- ),
202
- poll_interval: T.nilable(T.any(Integer, Float)),
203
- timeout: T.nilable(T.any(Integer, Float)),
204
- request_options: OpenAI::RequestOptions::OrHash
205
- )
206
- .returns(OpenAI::VectorStores::VectorStoreFileBatch)
207
- end
208
- def upload_and_poll(
209
- vector_store_id,
210
- files:,
211
- file_ids: [],
212
- max_concurrency: 5,
213
- attributes: nil,
214
- chunking_strategy: nil,
215
- poll_interval: nil,
216
- timeout: OpenAI::Internal::Poller::DEFAULT_TIMEOUT,
217
- request_options: {}
218
- )
219
- end
220
-
221
128
  # @api private
222
129
  sig { params(client: OpenAI::Client).returns(T.attached_class) }
223
130
  def self.new(client:)