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
@@ -173,7 +173,7 @@ module OpenAI
173
173
  # @param safety_identifier [String, nil]
174
174
  # Body param: A stable identifier used to help detect users of your application
175
175
  # that may be violating OpenAI's usage policies. The IDs should be a string that
176
- # uniquely identifies each user, with a maximum length of 64 characters. We
176
+ # uniquely identifies each user, with a maximum length of 128 characters. We
177
177
  # recommend hashing their username or email address, in order to avoid sending us
178
178
  # any identifying information.
179
179
  # [Learn more](https://developers.openai.com/api/docs/guides/safety-best-practices#implement-safety-identifiers).
@@ -474,7 +474,7 @@ module OpenAI
474
474
  # @param safety_identifier [String, nil]
475
475
  # Body param: A stable identifier used to help detect users of your application
476
476
  # that may be violating OpenAI's usage policies. The IDs should be a string that
477
- # uniquely identifies each user, with a maximum length of 64 characters. We
477
+ # uniquely identifies each user, with a maximum length of 128 characters. We
478
478
  # recommend hashing their username or email address, in order to avoid sending us
479
479
  # any identifying information.
480
480
  # [Learn more](https://developers.openai.com/api/docs/guides/safety-best-practices#implement-safety-identifiers).
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative "../../helpers/streaming/chat_completion_resource"
3
4
  require_relative "../../helpers/structured_output/chat_completion_parser"
4
5
 
5
6
  module OpenAI
@@ -216,7 +217,7 @@ module OpenAI
216
217
  # @param safety_identifier [String, nil]
217
218
  # A stable identifier used to help detect users of your application that may be
218
219
  # 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
220
+ # identifies each user, with a maximum length of 128 characters. We recommend
220
221
  # hashing their username or email address, in order to avoid sending us any
221
222
  # identifying information.
222
223
  # [Learn more](https://developers.openai.com/api/docs/guides/safety-best-practices#implement-safety-identifiers).
@@ -350,41 +351,6 @@ module OpenAI
350
351
  )
351
352
  end
352
353
 
353
- def get_structured_output_models(parsed)
354
- OpenAI::Helpers::StructuredOutput::ChatCompletionParser.get_models(parsed)
355
- end
356
-
357
- def build_tools_with_models(tools, tool_models)
358
- OpenAI::Helpers::StructuredOutput::ChatCompletionParser.build_tools(tools, tool_models)
359
- end
360
-
361
- def stream(params)
362
- parsed, options = OpenAI::Chat::CompletionCreateParams.dump_request(params)
363
-
364
- parsed.store(:stream, true)
365
-
366
- response_format, tool_models = get_structured_output_models(parsed)
367
-
368
- input_tools = build_tools_with_models(parsed[:tools], tool_models)
369
-
370
- raw_stream = @client.request(
371
- method: :post,
372
- path: "chat/completions",
373
- headers: {"accept" => "text/event-stream"},
374
- body: parsed,
375
- stream: OpenAI::Internal::Stream,
376
- model: OpenAI::Chat::ChatCompletionChunk,
377
- security: {bearer_auth: true},
378
- options: options
379
- )
380
-
381
- OpenAI::Helpers::Streaming::ChatCompletionStream.new(
382
- raw_stream: raw_stream,
383
- response_format: response_format,
384
- input_tools: input_tools
385
- )
386
- end
387
-
388
354
  # See {OpenAI::Resources::Chat::Completions#create} for non-streaming counterpart.
389
355
  #
390
356
  # **Starting a new project?** We recommend trying
@@ -588,7 +554,7 @@ module OpenAI
588
554
  # @param safety_identifier [String, nil]
589
555
  # A stable identifier used to help detect users of your application that may be
590
556
  # violating OpenAI's usage policies. The IDs should be a string that uniquely
591
- # identifies each user, with a maximum length of 64 characters. We recommend
557
+ # identifies each user, with a maximum length of 128 characters. We recommend
592
558
  # hashing their username or email address, in order to avoid sending us any
593
559
  # identifying information.
594
560
  # [Learn more](https://developers.openai.com/api/docs/guides/safety-best-practices#implement-safety-identifiers).
@@ -842,6 +808,14 @@ module OpenAI
842
808
  )
843
809
  end
844
810
 
811
+ def get_structured_output_models(parsed)
812
+ OpenAI::Helpers::StructuredOutput::ChatCompletionParser.get_models(parsed)
813
+ end
814
+
815
+ def build_tools_with_models(tools, tool_models)
816
+ OpenAI::Helpers::StructuredOutput::ChatCompletionParser.build_tools(tools, tool_models)
817
+ end
818
+
845
819
  # @api private
846
820
  #
847
821
  # @param client [OpenAI::Client]
@@ -3,29 +3,23 @@
3
3
  module OpenAI
4
4
  module Resources
5
5
  class Decisions
6
- # Evaluate ordered classification and scoring questions against shared input.
7
- # Answers are returned in question order.
8
- #
9
- # Supply input as a string or user messages containing text and inline images.
10
- # Only user messages with `input_text` and `input_image` parts are supported;
11
- # non-user roles, function calls, files, audio, and item references are not
12
- # supported. Images require a data URL, not an external URL or file ID. At most
13
- # 128 images are allowed across the request.
14
- #
15
- # Each question can return a refusal instead of a scored answer. A refusal has
16
- # type `refusal` and the corresponding question name, or null if unnamed.
6
+ # Use this endpoint to quickly answer classification or scoring questions about
7
+ # some input. You can ask multiple questions in one request.
17
8
  #
18
9
  # @overload create(input:, model:, questions:, safety_identifier: nil, request_options: {})
19
10
  #
20
11
  # @param input [String, Array<OpenAI::Models::DecisionInputMessage>]
21
- # Shared evidence, as a string or an array of user messages containing text and
22
- # inline images. Non-user roles, function calls, function-call outputs, files,
23
- # audio, and item references are not supported. At most 128 image parts are
24
- # allowed across all messages in one request.
12
+ # The text or images to evaluate for every question. Provide a text string or user
13
+ # messages containing text and images. Images can be base64 data URLs or publicly
14
+ # accessible HTTP(S) URLs; at most 128 images are allowed across all messages in
15
+ # one request. Files, audio, tools, and item references are not supported.
25
16
  #
26
17
  # @param model [String]
18
+ # The model to use. Only `gpt-6-luna` is supported.
27
19
  #
28
20
  # @param questions [Array<OpenAI::Models::DecisionCreateParams::Question::Predicate, OpenAI::Models::DecisionCreateParams::Question::Choice, OpenAI::Models::DecisionCreateParams::Question::Score>]
21
+ # Ask 1–200 questions about the input. Each question can be a predicate, choice,
22
+ # or score. Answers come back in the same order.
29
23
  #
30
24
  # @param safety_identifier [String, nil]
31
25
  # Opaque caller-provided end-user identifier, scoped by the verified org. Match
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative "../helpers/resource_polling"
4
-
5
3
  module OpenAI
6
4
  module Resources
7
5
  # Files are used to upload documents that can be used with features like
@@ -187,43 +185,6 @@ module OpenAI
187
185
  )
188
186
  end
189
187
 
190
- # Wait for an uploaded file to finish processing.
191
- #
192
- # The returned file may have an `error` status; callers should inspect the
193
- # status before using it. Polling intervals and the overall timeout are in
194
- # seconds. Finite timeouts include authentication and request replay time and
195
- # disable transport retries so the deadline remains strict. Set `timeout` to
196
- # `nil` to wait indefinitely and retain configured transport retries.
197
- #
198
- # @overload wait_for_processing(file_id, poll_interval: nil, timeout: 1800.0, request_options: {})
199
- #
200
- # @param file_id [String] The ID of the file to wait for.
201
- #
202
- # @param poll_interval [Integer, Float, nil] How often to retrieve the file. When omitted, the SDK honors the server's
203
- # polling hint and otherwise waits 5 seconds.
204
- #
205
- # @param timeout [Integer, Float, nil] Maximum total time to poll. Defaults to 30 minutes. Set to `nil` to wait
206
- # indefinitely.
207
- #
208
- # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
209
- #
210
- # @raise [ArgumentError, OpenAI::Errors::PollingError]
211
- # @return [OpenAI::Models::FileObject]
212
- def wait_for_processing(
213
- file_id,
214
- poll_interval: nil,
215
- timeout: OpenAI::Internal::Poller::DEFAULT_TIMEOUT,
216
- request_options: {}
217
- )
218
- OpenAI::Helpers::ResourcePolling.wait_for_file(
219
- self,
220
- file_id,
221
- poll_interval: poll_interval,
222
- timeout: timeout,
223
- request_options: request_options
224
- )
225
- end
226
-
227
188
  # @api private
228
189
  #
229
190
  # @param client [OpenAI::Client]
@@ -1,9 +1,28 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative "../../helpers/websocket/resource"
4
+
3
5
  module OpenAI
4
6
  module Resources
5
7
  class Live
6
8
  class Forks
9
+ include OpenAI::WebSocket::Resource
10
+
11
+ # @api private
12
+ def __websocket_request(session_id, query: {})
13
+ {method: :get, path: ["live/sessions/%1$s/fork", session_id], query: query, security: {bearer_auth: true}}
14
+ end
15
+
16
+ # @api private
17
+ def __websocket_client_event
18
+ OpenAI::Models::Live::ForkClientEvent
19
+ end
20
+
21
+ # @api private
22
+ def __websocket_server_event
23
+ OpenAI::Models::Live::ForkServerEvent
24
+ end
25
+
7
26
  # @api private
8
27
  #
9
28
  # @param client [OpenAI::Client]
@@ -1,9 +1,28 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative "../../helpers/websocket/resource"
4
+
3
5
  module OpenAI
4
6
  module Resources
5
7
  class Live
6
8
  class Sideband
9
+ include OpenAI::WebSocket::Resource
10
+
11
+ # @api private
12
+ def __websocket_request(session_id, query: {})
13
+ {method: :get, path: ["live/sessions/%1$s/attach", session_id], query: query, security: {bearer_auth: true}}
14
+ end
15
+
16
+ # @api private
17
+ def __websocket_client_event
18
+ OpenAI::Models::Live::SidebandClientEvent
19
+ end
20
+
21
+ # @api private
22
+ def __websocket_server_event
23
+ OpenAI::Models::Live::SidebandServerEvent
24
+ end
25
+
7
26
  # @api private
8
27
  #
9
28
  # @param client [OpenAI::Client]
@@ -1,8 +1,27 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative "../helpers/websocket/resource"
4
+
3
5
  module OpenAI
4
6
  module Resources
5
7
  class Live
8
+ include OpenAI::WebSocket::Resource
9
+
10
+ # @api private
11
+ def __websocket_request(query: {})
12
+ {method: :get, path: "live/sessions", query: query, security: {bearer_auth: true}}
13
+ end
14
+
15
+ # @api private
16
+ def __websocket_client_event
17
+ OpenAI::Models::Live::ClientEvent
18
+ end
19
+
20
+ # @api private
21
+ def __websocket_server_event
22
+ OpenAI::Models::Live::ServerEvent
23
+ end
24
+
6
25
  # @return [OpenAI::Resources::Live::Sideband]
7
26
  attr_reader :sideband
8
27
 
@@ -1,9 +1,28 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative "../../helpers/websocket/resource"
4
+
3
5
  module OpenAI
4
6
  module Resources
5
7
  class Realtime
6
8
  class Translations
9
+ include OpenAI::WebSocket::Resource
10
+
11
+ # @api private
12
+ def __websocket_request(query: {})
13
+ {method: :get, path: "realtime/translations", query: query, security: {bearer_auth: true}}
14
+ end
15
+
16
+ # @api private
17
+ def __websocket_client_event
18
+ OpenAI::Models::Realtime::RealtimeTranslationClientEvent
19
+ end
20
+
21
+ # @api private
22
+ def __websocket_server_event
23
+ OpenAI::Models::Realtime::RealtimeTranslationServerEvent
24
+ end
25
+
7
26
  # @return [OpenAI::Resources::Realtime::Translations::ClientSecrets]
8
27
  attr_reader :client_secrets
9
28
 
@@ -1,8 +1,27 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative "../helpers/websocket/resource"
4
+
3
5
  module OpenAI
4
6
  module Resources
5
7
  class Realtime
8
+ include OpenAI::WebSocket::Resource
9
+
10
+ # @api private
11
+ def __websocket_request(query: {})
12
+ {method: :get, path: "realtime", query: query, security: {bearer_auth: true}}
13
+ end
14
+
15
+ # @api private
16
+ def __websocket_client_event
17
+ OpenAI::Models::Realtime::RealtimeClientEvent
18
+ end
19
+
20
+ # @api private
21
+ def __websocket_server_event
22
+ OpenAI::Models::Realtime::RealtimeServerEvent
23
+ end
24
+
6
25
  # @return [OpenAI::Resources::Realtime::ClientSecrets]
7
26
  attr_reader :client_secrets
8
27
 
@@ -1,11 +1,30 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative "../helpers/streaming/response_stream_resource"
4
+ require_relative "../helpers/websocket/resource"
3
5
  require_relative "../helpers/structured_output/response_parser"
4
6
 
5
7
  module OpenAI
6
8
  module Resources
7
9
  # Create and manage model responses.
8
10
  class Responses
11
+ include OpenAI::WebSocket::Resource
12
+
13
+ # @api private
14
+ def __websocket_request(query: {})
15
+ {method: :get, path: "responses", query: query, security: {bearer_auth: true}}
16
+ end
17
+
18
+ # @api private
19
+ def __websocket_client_event
20
+ OpenAI::Models::Responses::ResponsesClientEvent
21
+ end
22
+
23
+ # @api private
24
+ def __websocket_server_event
25
+ OpenAI::Models::Responses::ResponsesServerEvent
26
+ end
27
+
9
28
  # Create and manage model responses.
10
29
  # @return [OpenAI::Resources::Responses::InputItems]
11
30
  attr_reader :input_items
@@ -168,7 +187,7 @@ module OpenAI
168
187
  # @param safety_identifier [String, nil]
169
188
  # A stable identifier used to help detect users of your application that may be
170
189
  # violating OpenAI's usage policies. The IDs should be a string that uniquely
171
- # identifies each user, with a maximum length of 64 characters. We recommend
190
+ # identifies each user, with a maximum length of 128 characters. We recommend
172
191
  # hashing their username or email address, in order to avoid sending us any
173
192
  # identifying information.
174
193
  # [Learn more](https://developers.openai.com/api/docs/guides/safety-best-practices#implement-safety-identifiers).
@@ -307,61 +326,6 @@ module OpenAI
307
326
  )
308
327
  end
309
328
 
310
- # Creates or resumes a streaming response and parses structured outputs.
311
- # @overload stream(access_programs: nil, **params)
312
- # @param access_programs [OpenAI::Models::Responses::ResponseCreateParams::AccessPrograms]
313
- # Domain-specific access programs to use for this request.
314
- # @param params [Hash{Symbol=>Object}] Other response creation or retrieval parameters.
315
- def stream(params)
316
- parsed, options = OpenAI::Responses::ResponseCreateParams.dump_request(params)
317
- starting_after, response_id = parsed.values_at(:starting_after, :response_id)
318
-
319
- if starting_after && !response_id
320
- raise ArgumentError, "starting_after can only be used with response_id"
321
- end
322
-
323
- model, tool_models = get_structured_output_models(parsed)
324
-
325
- unwrap = -> (raw) do
326
- if raw[:type] == "response.completed" && raw[:response]
327
- parse_structured_outputs!(raw[:response], model, tool_models)
328
- end
329
-
330
- raw
331
- end
332
-
333
- if response_id
334
- retrieve_params = parsed.slice(:include, :starting_after)
335
- retrieve_params[:request_options] = options
336
-
337
- raw_stream = retrieve_streaming_internal(
338
- response_id,
339
- params: retrieve_params,
340
- unwrap: unwrap
341
- )
342
- else
343
- parsed[:stream] = true
344
-
345
- raw_stream = @client.request(
346
- method: :post,
347
- path: "responses",
348
- headers: {"accept" => "text/event-stream"},
349
- body: parsed,
350
- stream: OpenAI::Internal::Stream,
351
- model: OpenAI::Models::Responses::ResponseStreamEvent,
352
- unwrap: unwrap,
353
- security: {bearer_auth: true},
354
- options: options
355
- )
356
- end
357
-
358
- OpenAI::Streaming::ResponseStream.new(
359
- raw_stream: raw_stream,
360
- text_format: model,
361
- starting_after: starting_after
362
- )
363
- end
364
-
365
329
  # See {OpenAI::Resources::Responses#create} for non-streaming counterpart.
366
330
  #
367
331
  # Creates a model response. Provide
@@ -376,7 +340,10 @@ module OpenAI
376
340
  # [file search](https://developers.openai.com/api/docs/guides/tools-file-search)
377
341
  # to use your own data as input for the model's response.
378
342
  #
379
- # @overload stream(background: nil, context_management: nil, conversation: nil, include: nil, input: nil, instructions: nil, max_output_tokens: nil, max_tool_calls: nil, metadata: nil, model: nil, moderation: nil, parallel_tool_calls: nil, previous_response_id: nil, prompt: nil, prompt_cache_key: nil, prompt_cache_options: nil, prompt_cache_retention: nil, reasoning: nil, response_id: nil, safety_identifier: nil, service_tier: nil, starting_after: nil, store: nil, stream_options: nil, temperature: nil, text: nil, tool_choice: nil, tools: nil, top_logprobs: nil, top_p: nil, truncation: nil, user: nil, request_options: {})
343
+ # @overload stream_raw(access_programs: nil, background: nil, context_management: nil, conversation: nil, include: nil, input: nil, instructions: nil, max_output_tokens: nil, max_tool_calls: nil, metadata: nil, model: nil, moderation: nil, parallel_tool_calls: nil, previous_response_id: nil, prompt: nil, prompt_cache_key: nil, prompt_cache_options: nil, prompt_cache_retention: nil, reasoning: nil, safety_identifier: nil, service_tier: nil, store: nil, stream_options: nil, temperature: nil, text: nil, tool_choice: nil, tools: nil, top_logprobs: nil, top_p: nil, truncation: nil, user: nil, request_options: {})
344
+ #
345
+ # @param access_programs [OpenAI::Models::Responses::ResponseCreateParams::AccessPrograms]
346
+ # Domain-specific access programs to use for this request.
380
347
  #
381
348
  # @param background [Boolean, nil]
382
349
  # Whether to run the model response in the background.
@@ -513,7 +480,7 @@ module OpenAI
513
480
  # @param safety_identifier [String, nil]
514
481
  # A stable identifier used to help detect users of your application that may be
515
482
  # violating OpenAI's usage policies. The IDs should be a string that uniquely
516
- # identifies each user, with a maximum length of 64 characters. We recommend
483
+ # identifies each user, with a maximum length of 128 characters. We recommend
517
484
  # hashing their username or email address, in order to avoid sending us any
518
485
  # identifying information.
519
486
  # [Learn more](https://developers.openai.com/api/docs/guides/safety-best-practices#implement-safety-identifiers).
@@ -672,13 +639,13 @@ module OpenAI
672
639
  # @param starting_after [Integer]
673
640
  # The sequence number of the event after which to start streaming.
674
641
  #
675
- # @param text [OpenAI::Responses::ResponseTextConfig, OpenAI::StructuredOutput::JsonSchemaConverter, Hash, nil] The structured-output model,
676
- # or the same typed/hash text configuration accepted by creation, used to parse retrieved text output. This is a local parsing hint and is not
677
- # sent to the API.
642
+ # @param text [OpenAI::Responses::ResponseTextConfig, OpenAI::StructuredOutput::JsonSchemaConverter, Hash, nil]
643
+ # The structured-output model used to parse retrieved text output. This is a local
644
+ # parsing hint and is not sent to the API.
678
645
  #
679
- # @param tools [Array<OpenAI::Responses::FunctionTool, OpenAI::StructuredOutput::JsonSchemaConverter, Hash>, nil] Structured-output models, or
680
- # the same typed/hash function-tool definitions accepted by creation, used to parse retrieved function tool calls. These are local parsing hints
681
- # and are not sent to the API.
646
+ # @param tools [Array<OpenAI::Responses::FunctionTool, OpenAI::StructuredOutput::JsonSchemaConverter, Hash>, nil]
647
+ # Structured-output models used to parse retrieved function tool calls. These are
648
+ # local parsing hints and are not sent to the API.
682
649
  #
683
650
  # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
684
651
  #
@@ -765,22 +732,6 @@ module OpenAI
765
732
  )
766
733
  end
767
734
 
768
- private def retrieve_streaming_internal(response_id, params:, unwrap:)
769
- parsed, options = OpenAI::Responses::ResponseRetrieveParams.dump_request(params)
770
- parsed.store(:stream, true)
771
- @client.request(
772
- method: :get,
773
- path: ["responses/%1$s", response_id],
774
- query: parsed,
775
- headers: {"accept" => "text/event-stream"},
776
- stream: OpenAI::Internal::Stream,
777
- model: OpenAI::Responses::ResponseStreamEvent,
778
- security: {bearer_auth: true},
779
- options: options,
780
- unwrap: unwrap
781
- )
782
- end
783
-
784
735
  # Deletes a model response with the given ID.
785
736
  #
786
737
  # @overload delete(response_id, request_options: {})
@@ -910,32 +861,30 @@ module OpenAI
910
861
  )
911
862
  end
912
863
 
913
- # @api private
914
- #
915
- # @param client [OpenAI::Client]
916
- def initialize(client:)
917
- @client = client
918
- @input_items = OpenAI::Resources::Responses::InputItems.new(client: client)
919
- @input_tokens = OpenAI::Resources::Responses::InputTokens.new(client: client)
920
- end
921
-
922
- private
923
-
924
- def parse_structured_outputs!(raw, model, tool_models)
864
+ private def parse_structured_outputs!(raw, model, tool_models)
925
865
  OpenAI::Helpers::StructuredOutput::ResponseParser.parse!(raw, model, tool_models)
926
866
  end
927
867
 
928
- def parse_retrieved_structured_outputs!(raw, model, tool_models)
868
+ private def parse_retrieved_structured_outputs!(raw, model, tool_models)
929
869
  OpenAI::Helpers::StructuredOutput::ResponseParser.parse_retrieved!(raw, model, tool_models)
930
870
  end
931
871
 
932
- def get_structured_output_models(parsed)
872
+ private def get_structured_output_models(parsed)
933
873
  OpenAI::Helpers::StructuredOutput::ResponseParser.get_models(parsed)
934
874
  end
935
875
 
936
- def get_retrieval_structured_output_models(parsed)
876
+ private def get_retrieval_structured_output_models(parsed)
937
877
  OpenAI::Helpers::StructuredOutput::ResponseParser.get_retrieval_models(parsed)
938
878
  end
879
+
880
+ # @api private
881
+ #
882
+ # @param client [OpenAI::Client]
883
+ def initialize(client:)
884
+ @client = client
885
+ @input_items = OpenAI::Resources::Responses::InputItems.new(client: client)
886
+ @input_tokens = OpenAI::Resources::Responses::InputTokens.new(client: client)
887
+ end
939
888
  end
940
889
  end
941
890
  end