openai 0.85.0 → 0.86.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 (1149) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +80 -0
  3. data/README.md +95 -13
  4. data/docs/architecture/security-model.md +28 -2
  5. data/lib/openai/auth/workload_identity_auth.rb +2 -2
  6. data/lib/openai/auth/x509_token_exchange.rb +7 -1
  7. data/lib/openai/auth/x509_transport.rb +21 -3
  8. data/lib/openai/client.rb +4 -2
  9. data/lib/openai/errors.rb +28 -9
  10. data/lib/openai/file_part.rb +35 -2
  11. data/lib/openai/helpers/realtime/client_extension.rb +37 -121
  12. data/lib/openai/helpers/realtime/connection.rb +13 -90
  13. data/lib/openai/helpers/realtime/connection_manager.rb +22 -77
  14. data/lib/openai/helpers/realtime/connection_resources.rb +3 -1
  15. data/lib/openai/helpers/realtime/errors.rb +3 -27
  16. data/lib/openai/helpers/realtime/transports/async_websocket.rb +25 -368
  17. data/lib/openai/helpers/responses_websocket/client_extension.rb +62 -0
  18. data/lib/openai/helpers/responses_websocket/connection.rb +288 -0
  19. data/lib/openai/helpers/responses_websocket/connection_manager.rb +34 -0
  20. data/lib/openai/helpers/responses_websocket/connection_resources.rb +22 -0
  21. data/lib/openai/helpers/responses_websocket/errors.rb +56 -0
  22. data/lib/openai/helpers/responses_websocket/resources/responses_extension.rb +31 -0
  23. data/lib/openai/helpers/responses_websocket/transports/async_websocket.rb +29 -0
  24. data/lib/openai/helpers/responses_websocket/unknown_server_event.rb +54 -0
  25. data/lib/openai/helpers/responses_websocket.rb +12 -0
  26. data/lib/openai/helpers/sorbet.rb +7 -1
  27. data/lib/openai/helpers/streaming/chat_completion_stream.rb +53 -12
  28. data/lib/openai/helpers/streaming/chat_events.rb +9 -7
  29. data/lib/openai/helpers/streaming/response_stream.rb +68 -62
  30. data/lib/openai/helpers/structured_output/json_schema_converter.rb +1 -1
  31. data/lib/openai/helpers/structured_output/response_parser.rb +125 -2
  32. data/lib/openai/helpers/websocket/async_websocket_transport.rb +422 -0
  33. data/lib/openai/helpers/websocket/client_request.rb +131 -0
  34. data/lib/openai/helpers/websocket/connection.rb +104 -0
  35. data/lib/openai/helpers/websocket/connection_manager.rb +104 -0
  36. data/lib/openai/helpers/websocket/errors.rb +32 -0
  37. data/lib/openai/helpers/websocket/protocol.rb +26 -0
  38. data/lib/openai/helpers/websocket.rb +10 -0
  39. data/lib/openai/internal/conversation_cursor_page.rb +1 -1
  40. data/lib/openai/internal/cursor_page.rb +1 -1
  41. data/lib/openai/internal/next_cursor_page.rb +1 -1
  42. data/lib/openai/internal/page.rb +1 -1
  43. data/lib/openai/internal/transport/base_client.rb +45 -8
  44. data/lib/openai/internal/transport/request_body_merge.rb +71 -0
  45. data/lib/openai/internal/type/base_page.rb +2 -2
  46. data/lib/openai/internal/type/base_stream.rb +8 -0
  47. data/lib/openai/internal/type/converter.rb +10 -2
  48. data/lib/openai/internal/type/duplicable_response_carrier.rb +23 -0
  49. data/lib/openai/internal/type/file_input.rb +3 -3
  50. data/lib/openai/internal/type/union.rb +24 -4
  51. data/lib/openai/internal/util.rb +139 -20
  52. data/lib/openai/models/admin/organization/projects/service_accounts/api_key_create_params.rb +9 -1
  53. data/lib/openai/models/admin/organization/projects/service_accounts/api_key_create_response.rb +14 -1
  54. data/lib/openai/models/audio/transcription_create_response.rb +5 -5
  55. data/lib/openai/models/beta/beta_response.rb +130 -2
  56. data/lib/openai/models/beta/beta_response_function_call_arguments_done_event.rb +1 -9
  57. data/lib/openai/models/beta/beta_response_function_web_search.rb +1 -0
  58. data/lib/openai/models/beta/beta_responses_client_event.rb +10 -1
  59. data/lib/openai/models/beta/beta_responses_server_event.rb +1 -3
  60. data/lib/openai/models/beta/response_compact_params.rb +14 -12
  61. data/lib/openai/models/beta/response_create_params.rb +10 -1
  62. data/lib/openai/models/responses/response.rb +135 -6
  63. data/lib/openai/models/responses/response_compact_params.rb +14 -12
  64. data/lib/openai/models/responses/response_create_params.rb +10 -1
  65. data/lib/openai/models/responses/response_function_call_arguments_done_event.rb +1 -9
  66. data/lib/openai/models/responses/response_function_web_search.rb +1 -0
  67. data/lib/openai/models/responses/responses_client_event.rb +10 -1
  68. data/lib/openai/models/responses/responses_server_event.rb +1 -3
  69. data/lib/openai/net_http_client.rb +16 -2
  70. data/lib/openai/providers/bedrock.rb +2 -1
  71. data/lib/openai/request_options.rb +18 -4
  72. data/lib/openai/resources/admin/organization/projects/service_accounts/api_keys.rb +3 -1
  73. data/lib/openai/resources/containers/files.rb +1 -0
  74. data/lib/openai/resources/responses.rb +36 -4
  75. data/lib/openai/response_carrier.rb +42 -0
  76. data/lib/openai/version.rb +1 -1
  77. data/lib/openai.rb +4 -0
  78. data/rbi/openai/auth/subject_token_providers.rbi +72 -0
  79. data/rbi/openai/errors.rbi +53 -4
  80. data/rbi/openai/file_part.rbi +5 -0
  81. data/rbi/openai/helpers/realtime/extensions.rbi +3 -3
  82. data/rbi/openai/helpers/responses_websocket/connection.rbi +82 -0
  83. data/rbi/openai/helpers/responses_websocket/connection_manager.rbi +39 -0
  84. data/rbi/openai/helpers/responses_websocket/connection_resources.rbi +17 -0
  85. data/rbi/openai/helpers/responses_websocket/extensions.rbi +108 -0
  86. data/rbi/openai/helpers/responses_websocket/transports/async_websocket.rbi +28 -0
  87. data/rbi/openai/helpers/responses_websocket/unknown_server_event.rbi +29 -0
  88. data/rbi/openai/helpers/streaming/chat_completion_stream.rbi +214 -0
  89. data/rbi/openai/helpers/streaming/events.rbi +61 -4
  90. data/rbi/openai/helpers/streaming/exceptions.rbi +30 -0
  91. data/rbi/openai/helpers/streaming/response_stream.rbi +7 -3
  92. data/rbi/openai/helpers/structured_output/response_parser.rbi +23 -0
  93. data/rbi/openai/helpers/websocket.rbi +33 -0
  94. data/rbi/openai/internal/transport/base_client.rbi +11 -0
  95. data/rbi/openai/internal/type/base_stream.rbi +4 -0
  96. data/rbi/openai/internal/util.rbi +1 -0
  97. data/rbi/openai/models/admin/organization/projects/service_accounts/api_key_create_params.rbi +10 -0
  98. data/rbi/openai/models/admin/organization/projects/service_accounts/api_key_create_response.rbi +19 -1
  99. data/rbi/openai/models/beta/beta_response.rbi +287 -3
  100. data/rbi/openai/models/beta/beta_response_function_call_arguments_done_event.rbi +0 -10
  101. data/rbi/openai/models/beta/beta_response_function_web_search.rbi +1 -0
  102. data/rbi/openai/models/beta/beta_response_inject_created_event.rbi +1 -1
  103. data/rbi/openai/models/beta/beta_response_inject_failed_event.rbi +1 -1
  104. data/rbi/openai/models/beta/beta_response_steer_accepted_event.rbi +1 -1
  105. data/rbi/openai/models/beta/beta_response_steer_failed_event.rbi +6 -2
  106. data/rbi/openai/models/beta/beta_response_steer_pending_event.rbi +1 -1
  107. data/rbi/openai/models/beta/beta_responses_client_event.rbi +64 -40
  108. data/rbi/openai/models/beta/beta_responses_server_event.rbi +82 -82
  109. data/rbi/openai/models/beta/response_compact_params.rbi +21 -18
  110. data/rbi/openai/models/beta/response_create_params.rbi +12 -0
  111. data/rbi/openai/models/realtime/conversation_created_event.rbi +4 -1
  112. data/rbi/openai/models/realtime/conversation_item_create_event.rbi +2 -2
  113. data/rbi/openai/models/realtime/conversation_item_delete_event.rbi +1 -1
  114. data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_completed_event.rbi +5 -3
  115. data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rbi +2 -2
  116. data/rbi/openai/models/realtime/conversation_item_input_audio_transcription_failed_event.rbi +1 -1
  117. data/rbi/openai/models/realtime/conversation_item_retrieve_event.rbi +1 -1
  118. data/rbi/openai/models/realtime/conversation_item_truncate_event.rbi +1 -1
  119. data/rbi/openai/models/realtime/input_audio_buffer_append_event.rbi +1 -1
  120. data/rbi/openai/models/realtime/input_audio_buffer_clear_event.rbi +1 -1
  121. data/rbi/openai/models/realtime/input_audio_buffer_commit_event.rbi +1 -1
  122. data/rbi/openai/models/realtime/output_audio_buffer_clear_event.rbi +1 -1
  123. data/rbi/openai/models/realtime/rate_limits_updated_event.rbi +4 -4
  124. data/rbi/openai/models/realtime/response_cancel_event.rbi +1 -1
  125. data/rbi/openai/models/realtime/response_content_part_added_event.rbi +4 -4
  126. data/rbi/openai/models/realtime/response_content_part_done_event.rbi +4 -4
  127. data/rbi/openai/models/realtime/response_create_event.rbi +5 -1
  128. data/rbi/openai/models/realtime/session_update_event.rbi +1 -1
  129. data/rbi/openai/models/responses/response.rbi +287 -3
  130. data/rbi/openai/models/responses/response_compact_params.rbi +21 -18
  131. data/rbi/openai/models/responses/response_create_params.rbi +12 -0
  132. data/rbi/openai/models/responses/response_function_call_arguments_done_event.rbi +1 -17
  133. data/rbi/openai/models/responses/response_function_web_search.rbi +1 -0
  134. data/rbi/openai/models/responses/response_steer_accepted_event.rbi +1 -1
  135. data/rbi/openai/models/responses/response_steer_failed_event.rbi +6 -2
  136. data/rbi/openai/models/responses/response_steer_pending_event.rbi +1 -1
  137. data/rbi/openai/models/responses/responses_client_event.rbi +62 -38
  138. data/rbi/openai/models/responses/responses_server_event.rbi +213 -77
  139. data/rbi/openai/resources/admin/organization/projects/service_accounts/api_keys.rbi +3 -0
  140. data/rbi/openai/resources/audio/speech.rbi +1 -1
  141. data/rbi/openai/resources/beta/responses.rbi +7 -6
  142. data/rbi/openai/resources/containers/files/content.rbi +1 -1
  143. data/rbi/openai/resources/files.rbi +5 -1
  144. data/rbi/openai/resources/responses.rbi +152 -6
  145. data/rbi/openai/resources/skills/content.rbi +5 -1
  146. data/rbi/openai/resources/skills/versions/content.rbi +3 -1
  147. data/rbi/openai/resources/videos.rbi +1 -1
  148. data/rbi/openai/response_carrier.rbi +25 -0
  149. data/sig/openai/auth/subject_token_providers.rbs +42 -0
  150. data/sig/openai/errors.rbs +36 -2
  151. data/sig/openai/file_part.rbs +3 -0
  152. data/sig/openai/helpers/realtime/extensions.rbs +2 -2
  153. data/sig/openai/helpers/responses_websocket/connection.rbs +48 -0
  154. data/sig/openai/helpers/responses_websocket/connection_manager.rbs +19 -0
  155. data/sig/openai/helpers/responses_websocket/connection_resources.rbs +12 -0
  156. data/sig/openai/helpers/responses_websocket/extensions.rbs +55 -0
  157. data/sig/openai/helpers/responses_websocket/transports/async_websocket.rbs +19 -0
  158. data/sig/openai/helpers/responses_websocket/unknown_server_event.rbs +15 -0
  159. data/sig/openai/helpers/streaming/exceptions.rbs +24 -0
  160. data/sig/openai/helpers/streaming/response_stream.rbs +103 -0
  161. data/sig/openai/helpers/structured_output/response_parser.rbs +10 -0
  162. data/sig/openai/helpers/websocket.rbs +18 -0
  163. data/sig/openai/internal/transport/base_client.rbs +5 -0
  164. data/sig/openai/internal/type/base_stream.rbs +2 -0
  165. data/sig/openai/internal/type/request_parameters.rbs +1 -1
  166. data/sig/openai/internal/util.rbs +1 -0
  167. data/sig/openai/models/admin/organization/admin_api_key.rbs +18 -18
  168. data/sig/openai/models/admin/organization/admin_api_key_create_params.rbs +7 -4
  169. data/sig/openai/models/admin/organization/admin_api_key_create_response.rbs +6 -6
  170. data/sig/openai/models/admin/organization/admin_api_key_delete_params.rbs +2 -2
  171. data/sig/openai/models/admin/organization/admin_api_key_delete_response.rbs +2 -2
  172. data/sig/openai/models/admin/organization/admin_api_key_list_params.rbs +8 -8
  173. data/sig/openai/models/admin/organization/admin_api_key_retrieve_params.rbs +2 -2
  174. data/sig/openai/models/admin/organization/audit_log_list_params.rbs +27 -27
  175. data/sig/openai/models/admin/organization/audit_log_list_response.rbs +428 -423
  176. data/sig/openai/models/admin/organization/certificate.rbs +6 -6
  177. data/sig/openai/models/admin/organization/certificate_activate_params.rbs +5 -3
  178. data/sig/openai/models/admin/organization/certificate_activate_response.rbs +5 -4
  179. data/sig/openai/models/admin/organization/certificate_create_params.rbs +7 -4
  180. data/sig/openai/models/admin/organization/certificate_deactivate_params.rbs +5 -3
  181. data/sig/openai/models/admin/organization/certificate_deactivate_response.rbs +5 -4
  182. data/sig/openai/models/admin/organization/certificate_delete_params.rbs +2 -3
  183. data/sig/openai/models/admin/organization/certificate_delete_response.rbs +2 -2
  184. data/sig/openai/models/admin/organization/certificate_list_params.rbs +8 -8
  185. data/sig/openai/models/admin/organization/certificate_list_response.rbs +5 -4
  186. data/sig/openai/models/admin/organization/certificate_retrieve_params.rbs +4 -4
  187. data/sig/openai/models/admin/organization/certificate_update_params.rbs +7 -4
  188. data/sig/openai/models/admin/organization/data_retention_retrieve_params.rbs +2 -2
  189. data/sig/openai/models/admin/organization/data_retention_update_params.rbs +3 -3
  190. data/sig/openai/models/admin/organization/group_create_params.rbs +2 -2
  191. data/sig/openai/models/admin/organization/group_delete_params.rbs +2 -2
  192. data/sig/openai/models/admin/organization/group_delete_response.rbs +2 -2
  193. data/sig/openai/models/admin/organization/group_list_params.rbs +8 -8
  194. data/sig/openai/models/admin/organization/group_retrieve_params.rbs +2 -2
  195. data/sig/openai/models/admin/organization/group_update_params.rbs +6 -3
  196. data/sig/openai/models/admin/organization/groups/role_create_params.rbs +6 -3
  197. data/sig/openai/models/admin/organization/groups/role_create_response.rbs +4 -4
  198. data/sig/openai/models/admin/organization/groups/role_delete_params.rbs +6 -3
  199. data/sig/openai/models/admin/organization/groups/role_list_params.rbs +8 -8
  200. data/sig/openai/models/admin/organization/groups/role_retrieve_params.rbs +6 -3
  201. data/sig/openai/models/admin/organization/groups/user_create_params.rbs +6 -3
  202. data/sig/openai/models/admin/organization/groups/user_create_response.rbs +2 -2
  203. data/sig/openai/models/admin/organization/groups/user_delete_params.rbs +6 -3
  204. data/sig/openai/models/admin/organization/groups/user_delete_response.rbs +2 -2
  205. data/sig/openai/models/admin/organization/groups/user_list_params.rbs +8 -8
  206. data/sig/openai/models/admin/organization/groups/user_retrieve_params.rbs +6 -3
  207. data/sig/openai/models/admin/organization/invite.rbs +6 -6
  208. data/sig/openai/models/admin/organization/invite_create_params.rbs +4 -4
  209. data/sig/openai/models/admin/organization/invite_delete_params.rbs +2 -2
  210. data/sig/openai/models/admin/organization/invite_delete_response.rbs +2 -2
  211. data/sig/openai/models/admin/organization/invite_list_params.rbs +8 -5
  212. data/sig/openai/models/admin/organization/invite_retrieve_params.rbs +2 -2
  213. data/sig/openai/models/admin/organization/organization_data_retention.rbs +2 -2
  214. data/sig/openai/models/admin/organization/organization_spend_alert.rbs +6 -6
  215. data/sig/openai/models/admin/organization/organization_spend_alert_deleted.rbs +2 -2
  216. data/sig/openai/models/admin/organization/organization_spend_limit.rbs +2 -2
  217. data/sig/openai/models/admin/organization/organization_spend_limit_deleted.rbs +2 -2
  218. data/sig/openai/models/admin/organization/organization_user.rbs +46 -46
  219. data/sig/openai/models/admin/organization/project.rbs +12 -12
  220. data/sig/openai/models/admin/organization/project_archive_params.rbs +2 -2
  221. data/sig/openai/models/admin/organization/project_create_params.rbs +8 -8
  222. data/sig/openai/models/admin/organization/project_list_params.rbs +10 -6
  223. data/sig/openai/models/admin/organization/project_retrieve_params.rbs +2 -2
  224. data/sig/openai/models/admin/organization/project_update_params.rbs +8 -8
  225. data/sig/openai/models/admin/organization/projects/api_key_delete_params.rbs +6 -3
  226. data/sig/openai/models/admin/organization/projects/api_key_delete_response.rbs +2 -2
  227. data/sig/openai/models/admin/organization/projects/api_key_list_params.rbs +8 -8
  228. data/sig/openai/models/admin/organization/projects/api_key_retrieve_params.rbs +6 -3
  229. data/sig/openai/models/admin/organization/projects/certificate_activate_params.rbs +6 -3
  230. data/sig/openai/models/admin/organization/projects/certificate_activate_response.rbs +4 -4
  231. data/sig/openai/models/admin/organization/projects/certificate_deactivate_params.rbs +6 -3
  232. data/sig/openai/models/admin/organization/projects/certificate_deactivate_response.rbs +4 -4
  233. data/sig/openai/models/admin/organization/projects/certificate_list_params.rbs +8 -8
  234. data/sig/openai/models/admin/organization/projects/certificate_list_response.rbs +4 -4
  235. data/sig/openai/models/admin/organization/projects/data_retention_retrieve_params.rbs +2 -2
  236. data/sig/openai/models/admin/organization/projects/data_retention_update_params.rbs +3 -3
  237. data/sig/openai/models/admin/organization/projects/group_create_params.rbs +7 -3
  238. data/sig/openai/models/admin/organization/projects/group_delete_params.rbs +6 -3
  239. data/sig/openai/models/admin/organization/projects/group_delete_response.rbs +2 -2
  240. data/sig/openai/models/admin/organization/projects/group_list_params.rbs +8 -8
  241. data/sig/openai/models/admin/organization/projects/group_retrieve_params.rbs +4 -4
  242. data/sig/openai/models/admin/organization/projects/groups/role_create_params.rbs +7 -3
  243. data/sig/openai/models/admin/organization/projects/groups/role_create_response.rbs +4 -4
  244. data/sig/openai/models/admin/organization/projects/groups/role_delete_params.rbs +7 -3
  245. data/sig/openai/models/admin/organization/projects/groups/role_list_params.rbs +8 -8
  246. data/sig/openai/models/admin/organization/projects/groups/role_retrieve_params.rbs +7 -3
  247. data/sig/openai/models/admin/organization/projects/hosted_tool_permission_retrieve_params.rbs +2 -2
  248. data/sig/openai/models/admin/organization/projects/hosted_tool_permission_update_params.rbs +12 -12
  249. data/sig/openai/models/admin/organization/projects/model_permission_delete_params.rbs +2 -2
  250. data/sig/openai/models/admin/organization/projects/model_permission_retrieve_params.rbs +2 -2
  251. data/sig/openai/models/admin/organization/projects/model_permission_update_params.rbs +3 -3
  252. data/sig/openai/models/admin/organization/projects/project_api_key.rbs +8 -8
  253. data/sig/openai/models/admin/organization/projects/project_data_retention.rbs +2 -2
  254. data/sig/openai/models/admin/organization/projects/project_group.rbs +2 -2
  255. data/sig/openai/models/admin/organization/projects/project_model_permissions.rbs +2 -2
  256. data/sig/openai/models/admin/organization/projects/project_model_permissions_deleted.rbs +2 -2
  257. data/sig/openai/models/admin/organization/projects/project_rate_limit.rbs +10 -10
  258. data/sig/openai/models/admin/organization/projects/project_service_account.rbs +2 -2
  259. data/sig/openai/models/admin/organization/projects/project_spend_alert.rbs +6 -6
  260. data/sig/openai/models/admin/organization/projects/project_spend_alert_deleted.rbs +2 -2
  261. data/sig/openai/models/admin/organization/projects/project_spend_limit.rbs +2 -2
  262. data/sig/openai/models/admin/organization/projects/project_spend_limit_deleted.rbs +2 -2
  263. data/sig/openai/models/admin/organization/projects/project_user.rbs +6 -6
  264. data/sig/openai/models/admin/organization/projects/rate_limit_list_rate_limits_params.rbs +8 -8
  265. data/sig/openai/models/admin/organization/projects/rate_limit_update_rate_limit_params.rbs +14 -14
  266. data/sig/openai/models/admin/organization/projects/role_create_params.rbs +4 -4
  267. data/sig/openai/models/admin/organization/projects/role_delete_params.rbs +6 -3
  268. data/sig/openai/models/admin/organization/projects/role_delete_response.rbs +2 -2
  269. data/sig/openai/models/admin/organization/projects/role_list_params.rbs +8 -8
  270. data/sig/openai/models/admin/organization/projects/role_retrieve_params.rbs +6 -3
  271. data/sig/openai/models/admin/organization/projects/role_update_params.rbs +8 -8
  272. data/sig/openai/models/admin/organization/projects/service_account_create_params.rbs +4 -4
  273. data/sig/openai/models/admin/organization/projects/service_account_create_response.rbs +4 -4
  274. data/sig/openai/models/admin/organization/projects/service_account_delete_params.rbs +6 -3
  275. data/sig/openai/models/admin/organization/projects/service_account_delete_response.rbs +2 -2
  276. data/sig/openai/models/admin/organization/projects/service_account_list_params.rbs +9 -5
  277. data/sig/openai/models/admin/organization/projects/service_account_retrieve_params.rbs +6 -3
  278. data/sig/openai/models/admin/organization/projects/service_account_update_params.rbs +6 -6
  279. data/sig/openai/models/admin/organization/projects/service_accounts/api_key_create_params.rbs +11 -6
  280. data/sig/openai/models/admin/organization/projects/service_accounts/api_key_create_response.rbs +9 -4
  281. data/sig/openai/models/admin/organization/projects/spend_alert_create_params.rbs +7 -7
  282. data/sig/openai/models/admin/organization/projects/spend_alert_delete_params.rbs +6 -3
  283. data/sig/openai/models/admin/organization/projects/spend_alert_list_params.rbs +10 -10
  284. data/sig/openai/models/admin/organization/projects/spend_alert_retrieve_params.rbs +6 -3
  285. data/sig/openai/models/admin/organization/projects/spend_alert_update_params.rbs +7 -7
  286. data/sig/openai/models/admin/organization/projects/spend_limit_delete_params.rbs +2 -2
  287. data/sig/openai/models/admin/organization/projects/spend_limit_retrieve_params.rbs +2 -2
  288. data/sig/openai/models/admin/organization/projects/spend_limit_update_params.rbs +3 -3
  289. data/sig/openai/models/admin/organization/projects/user_create_params.rbs +6 -6
  290. data/sig/openai/models/admin/organization/projects/user_delete_params.rbs +6 -3
  291. data/sig/openai/models/admin/organization/projects/user_delete_response.rbs +2 -2
  292. data/sig/openai/models/admin/organization/projects/user_list_params.rbs +9 -5
  293. data/sig/openai/models/admin/organization/projects/user_retrieve_params.rbs +6 -3
  294. data/sig/openai/models/admin/organization/projects/user_update_params.rbs +8 -4
  295. data/sig/openai/models/admin/organization/projects/users/role_create_params.rbs +7 -3
  296. data/sig/openai/models/admin/organization/projects/users/role_create_response.rbs +2 -2
  297. data/sig/openai/models/admin/organization/projects/users/role_delete_params.rbs +7 -3
  298. data/sig/openai/models/admin/organization/projects/users/role_list_params.rbs +8 -8
  299. data/sig/openai/models/admin/organization/projects/users/role_retrieve_params.rbs +7 -3
  300. data/sig/openai/models/admin/organization/role.rbs +2 -2
  301. data/sig/openai/models/admin/organization/role_create_params.rbs +4 -4
  302. data/sig/openai/models/admin/organization/role_delete_params.rbs +2 -2
  303. data/sig/openai/models/admin/organization/role_delete_response.rbs +6 -2
  304. data/sig/openai/models/admin/organization/role_list_params.rbs +8 -8
  305. data/sig/openai/models/admin/organization/role_retrieve_params.rbs +2 -2
  306. data/sig/openai/models/admin/organization/role_update_params.rbs +8 -8
  307. data/sig/openai/models/admin/organization/spend_alert_create_params.rbs +7 -7
  308. data/sig/openai/models/admin/organization/spend_alert_delete_params.rbs +2 -2
  309. data/sig/openai/models/admin/organization/spend_alert_list_params.rbs +10 -10
  310. data/sig/openai/models/admin/organization/spend_alert_retrieve_params.rbs +2 -2
  311. data/sig/openai/models/admin/organization/spend_alert_update_params.rbs +7 -7
  312. data/sig/openai/models/admin/organization/spend_limit_delete_params.rbs +2 -2
  313. data/sig/openai/models/admin/organization/spend_limit_retrieve_params.rbs +2 -2
  314. data/sig/openai/models/admin/organization/spend_limit_update_params.rbs +3 -3
  315. data/sig/openai/models/admin/organization/usage_audio_speeches_params.rbs +20 -20
  316. data/sig/openai/models/admin/organization/usage_audio_speeches_response.rbs +142 -142
  317. data/sig/openai/models/admin/organization/usage_audio_transcriptions_params.rbs +20 -20
  318. data/sig/openai/models/admin/organization/usage_audio_transcriptions_response.rbs +142 -142
  319. data/sig/openai/models/admin/organization/usage_code_interpreter_sessions_params.rbs +14 -14
  320. data/sig/openai/models/admin/organization/usage_code_interpreter_sessions_response.rbs +142 -142
  321. data/sig/openai/models/admin/organization/usage_completions_params.rbs +22 -22
  322. data/sig/openai/models/admin/organization/usage_completions_response.rbs +142 -142
  323. data/sig/openai/models/admin/organization/usage_costs_params.rbs +18 -18
  324. data/sig/openai/models/admin/organization/usage_costs_response.rbs +142 -142
  325. data/sig/openai/models/admin/organization/usage_embeddings_params.rbs +20 -20
  326. data/sig/openai/models/admin/organization/usage_embeddings_response.rbs +142 -142
  327. data/sig/openai/models/admin/organization/usage_file_search_calls_params.rbs +20 -20
  328. data/sig/openai/models/admin/organization/usage_file_search_calls_response.rbs +142 -142
  329. data/sig/openai/models/admin/organization/usage_images_params.rbs +24 -24
  330. data/sig/openai/models/admin/organization/usage_images_response.rbs +142 -142
  331. data/sig/openai/models/admin/organization/usage_moderations_params.rbs +20 -20
  332. data/sig/openai/models/admin/organization/usage_moderations_response.rbs +142 -142
  333. data/sig/openai/models/admin/organization/usage_vector_stores_params.rbs +14 -14
  334. data/sig/openai/models/admin/organization/usage_vector_stores_response.rbs +142 -142
  335. data/sig/openai/models/admin/organization/usage_web_search_calls_params.rbs +22 -22
  336. data/sig/openai/models/admin/organization/usage_web_search_calls_response.rbs +142 -142
  337. data/sig/openai/models/admin/organization/user_delete_params.rbs +2 -2
  338. data/sig/openai/models/admin/organization/user_delete_response.rbs +2 -2
  339. data/sig/openai/models/admin/organization/user_list_params.rbs +10 -6
  340. data/sig/openai/models/admin/organization/user_retrieve_params.rbs +2 -2
  341. data/sig/openai/models/admin/organization/user_update_params.rbs +10 -10
  342. data/sig/openai/models/admin/organization/users/role_create_params.rbs +6 -3
  343. data/sig/openai/models/admin/organization/users/role_create_response.rbs +2 -2
  344. data/sig/openai/models/admin/organization/users/role_delete_params.rbs +6 -3
  345. data/sig/openai/models/admin/organization/users/role_list_params.rbs +8 -8
  346. data/sig/openai/models/admin/organization/users/role_retrieve_params.rbs +6 -3
  347. data/sig/openai/models/audio/speech_create_params.rbs +10 -10
  348. data/sig/openai/models/audio/transcription.rbs +19 -18
  349. data/sig/openai/models/audio/transcription_create_params.rbs +30 -30
  350. data/sig/openai/models/audio/transcription_diarized.rbs +12 -12
  351. data/sig/openai/models/audio/transcription_diarized_segment.rbs +2 -2
  352. data/sig/openai/models/audio/transcription_text_delta_event.rbs +10 -10
  353. data/sig/openai/models/audio/transcription_text_done_event.rbs +18 -18
  354. data/sig/openai/models/audio/transcription_text_segment_event.rbs +2 -2
  355. data/sig/openai/models/audio/transcription_verbose.rbs +8 -8
  356. data/sig/openai/models/audio/translation_create_params.rbs +8 -8
  357. data/sig/openai/models/audio/translation_verbose.rbs +2 -2
  358. data/sig/openai/models/auto_file_chunking_strategy_param.rbs +2 -2
  359. data/sig/openai/models/batch.rbs +34 -34
  360. data/sig/openai/models/batch_cancel_params.rbs +2 -2
  361. data/sig/openai/models/batch_create_params.rbs +8 -8
  362. data/sig/openai/models/batch_error.rbs +5 -5
  363. data/sig/openai/models/batch_list_params.rbs +8 -5
  364. data/sig/openai/models/batch_retrieve_params.rbs +2 -2
  365. data/sig/openai/models/beta/assistant.rbs +18 -18
  366. data/sig/openai/models/beta/assistant_create_params.rbs +42 -42
  367. data/sig/openai/models/beta/assistant_delete_params.rbs +2 -2
  368. data/sig/openai/models/beta/assistant_deleted.rbs +2 -2
  369. data/sig/openai/models/beta/assistant_list_params.rbs +10 -10
  370. data/sig/openai/models/beta/assistant_retrieve_params.rbs +2 -2
  371. data/sig/openai/models/beta/assistant_stream_event.rbs +53 -50
  372. data/sig/openai/models/beta/assistant_tool_choice.rbs +2 -2
  373. data/sig/openai/models/beta/assistant_update_params.rbs +32 -32
  374. data/sig/openai/models/beta/beta_apply_patch_tool.rbs +4 -4
  375. data/sig/openai/models/beta/beta_compacted_response.rbs +2 -2
  376. data/sig/openai/models/beta/beta_computer_action.rbs +25 -25
  377. data/sig/openai/models/beta/beta_computer_tool.rbs +2 -2
  378. data/sig/openai/models/beta/beta_computer_use_preview_tool.rbs +2 -2
  379. data/sig/openai/models/beta/beta_container_auto.rbs +10 -10
  380. data/sig/openai/models/beta/beta_container_network_policy_allowlist.rbs +4 -4
  381. data/sig/openai/models/beta/beta_container_network_policy_disabled.rbs +2 -2
  382. data/sig/openai/models/beta/beta_container_reference.rbs +2 -2
  383. data/sig/openai/models/beta/beta_custom_tool.rbs +16 -16
  384. data/sig/openai/models/beta/beta_easy_input_message.rbs +4 -4
  385. data/sig/openai/models/beta/beta_file_search_tool.rbs +14 -14
  386. data/sig/openai/models/beta/beta_function_shell_tool.rbs +6 -6
  387. data/sig/openai/models/beta/beta_function_tool.rbs +12 -12
  388. data/sig/openai/models/beta/beta_inline_skill.rbs +2 -2
  389. data/sig/openai/models/beta/beta_inline_skill_source.rbs +3 -3
  390. data/sig/openai/models/beta/beta_local_environment.rbs +3 -3
  391. data/sig/openai/models/beta/beta_mcp_tool_call_error.rbs +6 -6
  392. data/sig/openai/models/beta/beta_namespace_tool.rbs +18 -18
  393. data/sig/openai/models/beta/beta_response.rbs +185 -67
  394. data/sig/openai/models/beta/beta_response_apply_patch_tool_call.rbs +18 -18
  395. data/sig/openai/models/beta/beta_response_apply_patch_tool_call_output.rbs +14 -14
  396. data/sig/openai/models/beta/beta_response_audio_delta_event.rbs +4 -4
  397. data/sig/openai/models/beta/beta_response_audio_done_event.rbs +4 -4
  398. data/sig/openai/models/beta/beta_response_audio_transcript_delta_event.rbs +4 -4
  399. data/sig/openai/models/beta/beta_response_audio_transcript_done_event.rbs +4 -4
  400. data/sig/openai/models/beta/beta_response_code_interpreter_call_code_delta_event.rbs +4 -4
  401. data/sig/openai/models/beta/beta_response_code_interpreter_call_code_done_event.rbs +4 -4
  402. data/sig/openai/models/beta/beta_response_code_interpreter_call_completed_event.rbs +4 -4
  403. data/sig/openai/models/beta/beta_response_code_interpreter_call_in_progress_event.rbs +4 -4
  404. data/sig/openai/models/beta/beta_response_code_interpreter_call_interpreting_event.rbs +4 -4
  405. data/sig/openai/models/beta/beta_response_code_interpreter_tool_call.rbs +8 -8
  406. data/sig/openai/models/beta/beta_response_compaction_item.rbs +6 -6
  407. data/sig/openai/models/beta/beta_response_compaction_item_param.rbs +6 -6
  408. data/sig/openai/models/beta/beta_response_completed_event.rbs +4 -4
  409. data/sig/openai/models/beta/beta_response_computer_tool_call.rbs +8 -8
  410. data/sig/openai/models/beta/beta_response_computer_tool_call_output_item.rbs +10 -10
  411. data/sig/openai/models/beta/beta_response_computer_tool_call_output_screenshot.rbs +4 -4
  412. data/sig/openai/models/beta/beta_response_configuration_update_item.rbs +8 -8
  413. data/sig/openai/models/beta/beta_response_configuration_update_item_param.rbs +10 -10
  414. data/sig/openai/models/beta/beta_response_container_reference.rbs +2 -2
  415. data/sig/openai/models/beta/beta_response_content.rbs +2 -2
  416. data/sig/openai/models/beta/beta_response_content_part_added_event.rbs +6 -6
  417. data/sig/openai/models/beta/beta_response_content_part_done_event.rbs +6 -6
  418. data/sig/openai/models/beta/beta_response_created_event.rbs +4 -4
  419. data/sig/openai/models/beta/beta_response_custom_tool_call.rbs +16 -16
  420. data/sig/openai/models/beta/beta_response_custom_tool_call_input_delta_event.rbs +4 -4
  421. data/sig/openai/models/beta/beta_response_custom_tool_call_input_done_event.rbs +4 -4
  422. data/sig/openai/models/beta/beta_response_custom_tool_call_item.rbs +12 -12
  423. data/sig/openai/models/beta/beta_response_custom_tool_call_output.rbs +12 -12
  424. data/sig/openai/models/beta/beta_response_custom_tool_call_output_item.rbs +8 -8
  425. data/sig/openai/models/beta/beta_response_error.rbs +8 -8
  426. data/sig/openai/models/beta/beta_response_error_event.rbs +4 -4
  427. data/sig/openai/models/beta/beta_response_failed_event.rbs +4 -4
  428. data/sig/openai/models/beta/beta_response_file_search_call_completed_event.rbs +4 -4
  429. data/sig/openai/models/beta/beta_response_file_search_call_in_progress_event.rbs +4 -4
  430. data/sig/openai/models/beta/beta_response_file_search_call_searching_event.rbs +4 -4
  431. data/sig/openai/models/beta/beta_response_file_search_tool_call.rbs +16 -16
  432. data/sig/openai/models/beta/beta_response_format_text_config.rbs +4 -4
  433. data/sig/openai/models/beta/beta_response_format_text_json_schema_config.rbs +6 -6
  434. data/sig/openai/models/beta/beta_response_function_call_arguments_delta_event.rbs +4 -4
  435. data/sig/openai/models/beta/beta_response_function_call_arguments_done_event.rbs +4 -9
  436. data/sig/openai/models/beta/beta_response_function_shell_call_output_content.rbs +4 -4
  437. data/sig/openai/models/beta/beta_response_function_shell_tool_call.rbs +12 -12
  438. data/sig/openai/models/beta/beta_response_function_shell_tool_call_output.rbs +18 -18
  439. data/sig/openai/models/beta/beta_response_function_tool_call.rbs +18 -18
  440. data/sig/openai/models/beta/beta_response_function_tool_call_item.rbs +12 -12
  441. data/sig/openai/models/beta/beta_response_function_tool_call_output_item.rbs +18 -18
  442. data/sig/openai/models/beta/beta_response_function_web_search.rbs +21 -19
  443. data/sig/openai/models/beta/beta_response_image_gen_call_completed_event.rbs +4 -4
  444. data/sig/openai/models/beta/beta_response_image_gen_call_generating_event.rbs +4 -4
  445. data/sig/openai/models/beta/beta_response_image_gen_call_in_progress_event.rbs +4 -4
  446. data/sig/openai/models/beta/beta_response_image_gen_call_partial_image_event.rbs +12 -12
  447. data/sig/openai/models/beta/beta_response_in_progress_event.rbs +4 -4
  448. data/sig/openai/models/beta/beta_response_incomplete_event.rbs +4 -4
  449. data/sig/openai/models/beta/beta_response_inject_created_event.rbs +4 -4
  450. data/sig/openai/models/beta/beta_response_inject_event.rbs +2 -2
  451. data/sig/openai/models/beta/beta_response_inject_failed_event.rbs +4 -4
  452. data/sig/openai/models/beta/beta_response_input_audio.rbs +2 -2
  453. data/sig/openai/models/beta/beta_response_input_file.rbs +16 -16
  454. data/sig/openai/models/beta/beta_response_input_file_content.rbs +16 -16
  455. data/sig/openai/models/beta/beta_response_input_image.rbs +10 -10
  456. data/sig/openai/models/beta/beta_response_input_image_content.rbs +12 -12
  457. data/sig/openai/models/beta/beta_response_input_item.rbs +236 -228
  458. data/sig/openai/models/beta/beta_response_input_message_item.rbs +6 -6
  459. data/sig/openai/models/beta/beta_response_input_text.rbs +6 -6
  460. data/sig/openai/models/beta/beta_response_input_text_content.rbs +6 -6
  461. data/sig/openai/models/beta/beta_response_item.rbs +92 -92
  462. data/sig/openai/models/beta/beta_response_local_environment.rbs +2 -2
  463. data/sig/openai/models/beta/beta_response_mcp_call_arguments_delta_event.rbs +4 -4
  464. data/sig/openai/models/beta/beta_response_mcp_call_arguments_done_event.rbs +4 -4
  465. data/sig/openai/models/beta/beta_response_mcp_call_completed_event.rbs +4 -4
  466. data/sig/openai/models/beta/beta_response_mcp_call_failed_event.rbs +4 -4
  467. data/sig/openai/models/beta/beta_response_mcp_call_in_progress_event.rbs +4 -4
  468. data/sig/openai/models/beta/beta_response_mcp_list_tools_completed_event.rbs +4 -4
  469. data/sig/openai/models/beta/beta_response_mcp_list_tools_failed_event.rbs +4 -4
  470. data/sig/openai/models/beta/beta_response_mcp_list_tools_in_progress_event.rbs +4 -4
  471. data/sig/openai/models/beta/beta_response_output_audio.rbs +2 -2
  472. data/sig/openai/models/beta/beta_response_output_item.rbs +92 -92
  473. data/sig/openai/models/beta/beta_response_output_item_added_event.rbs +4 -4
  474. data/sig/openai/models/beta/beta_response_output_item_done_event.rbs +4 -4
  475. data/sig/openai/models/beta/beta_response_output_message.rbs +8 -8
  476. data/sig/openai/models/beta/beta_response_output_refusal.rbs +2 -2
  477. data/sig/openai/models/beta/beta_response_output_text.rbs +13 -12
  478. data/sig/openai/models/beta/beta_response_output_text_annotation_added_event.rbs +13 -12
  479. data/sig/openai/models/beta/beta_response_prompt.rbs +4 -4
  480. data/sig/openai/models/beta/beta_response_queued_event.rbs +4 -4
  481. data/sig/openai/models/beta/beta_response_reasoning_item.rbs +14 -14
  482. data/sig/openai/models/beta/beta_response_reasoning_summary_part_added_event.rbs +6 -6
  483. data/sig/openai/models/beta/beta_response_reasoning_summary_part_done_event.rbs +8 -8
  484. data/sig/openai/models/beta/beta_response_reasoning_summary_text_delta_event.rbs +4 -4
  485. data/sig/openai/models/beta/beta_response_reasoning_summary_text_done_event.rbs +4 -4
  486. data/sig/openai/models/beta/beta_response_reasoning_text_delta_event.rbs +4 -4
  487. data/sig/openai/models/beta/beta_response_reasoning_text_done_event.rbs +4 -4
  488. data/sig/openai/models/beta/beta_response_refusal_delta_event.rbs +4 -4
  489. data/sig/openai/models/beta/beta_response_refusal_done_event.rbs +4 -4
  490. data/sig/openai/models/beta/beta_response_shell_call_command_added_event.rbs +4 -4
  491. data/sig/openai/models/beta/beta_response_shell_call_command_delta_event.rbs +6 -6
  492. data/sig/openai/models/beta/beta_response_shell_call_command_done_event.rbs +4 -4
  493. data/sig/openai/models/beta/beta_response_shell_call_output_content_delta_event.rbs +6 -6
  494. data/sig/openai/models/beta/beta_response_shell_call_output_content_done_event.rbs +10 -10
  495. data/sig/openai/models/beta/beta_response_steer_accepted_event.rbs +4 -4
  496. data/sig/openai/models/beta/beta_response_steer_event.rbs +2 -2
  497. data/sig/openai/models/beta/beta_response_steer_failed_event.rbs +8 -8
  498. data/sig/openai/models/beta/beta_response_steer_input.rbs +30 -30
  499. data/sig/openai/models/beta/beta_response_steer_pending_event.rbs +4 -4
  500. data/sig/openai/models/beta/beta_response_steer_required_input.rbs +14 -14
  501. data/sig/openai/models/beta/beta_response_text_config.rbs +4 -4
  502. data/sig/openai/models/beta/beta_response_text_delta_event.rbs +8 -8
  503. data/sig/openai/models/beta/beta_response_text_done_event.rbs +8 -8
  504. data/sig/openai/models/beta/beta_response_tool_search_call.rbs +6 -6
  505. data/sig/openai/models/beta/beta_response_tool_search_output_item.rbs +6 -6
  506. data/sig/openai/models/beta/beta_response_tool_search_output_item_param.rbs +12 -12
  507. data/sig/openai/models/beta/beta_response_web_search_call_completed_event.rbs +4 -4
  508. data/sig/openai/models/beta/beta_response_web_search_call_in_progress_event.rbs +4 -4
  509. data/sig/openai/models/beta/beta_response_web_search_call_searching_event.rbs +4 -4
  510. data/sig/openai/models/beta/beta_responses_client_event.rbs +104 -96
  511. data/sig/openai/models/beta/beta_responses_server_event.rbs +374 -377
  512. data/sig/openai/models/beta/beta_skill_reference.rbs +3 -3
  513. data/sig/openai/models/beta/beta_tool.rbs +80 -74
  514. data/sig/openai/models/beta/beta_tool_choice_allowed.rbs +2 -2
  515. data/sig/openai/models/beta/beta_tool_choice_apply_patch.rbs +2 -2
  516. data/sig/openai/models/beta/beta_tool_choice_custom.rbs +2 -2
  517. data/sig/openai/models/beta/beta_tool_choice_function.rbs +2 -2
  518. data/sig/openai/models/beta/beta_tool_choice_mcp.rbs +2 -2
  519. data/sig/openai/models/beta/beta_tool_choice_shell.rbs +2 -2
  520. data/sig/openai/models/beta/beta_tool_search_tool.rbs +8 -8
  521. data/sig/openai/models/beta/beta_web_search_preview_tool.rbs +16 -16
  522. data/sig/openai/models/beta/beta_web_search_tool.rbs +20 -20
  523. data/sig/openai/models/beta/chatkit/chat_session.rbs +2 -2
  524. data/sig/openai/models/beta/chatkit/chat_session_chatkit_configuration_param.rbs +14 -14
  525. data/sig/openai/models/beta/chatkit/chat_session_expires_after_param.rbs +2 -2
  526. data/sig/openai/models/beta/chatkit/chat_session_rate_limits_param.rbs +2 -2
  527. data/sig/openai/models/beta/chatkit/chat_session_workflow_param.rbs +8 -8
  528. data/sig/openai/models/beta/chatkit/chatkit_response_output_text.rbs +10 -10
  529. data/sig/openai/models/beta/chatkit/chatkit_thread.rbs +8 -8
  530. data/sig/openai/models/beta/chatkit/chatkit_thread_assistant_message_item.rbs +4 -4
  531. data/sig/openai/models/beta/chatkit/chatkit_thread_item_list.rbs +14 -14
  532. data/sig/openai/models/beta/chatkit/chatkit_thread_user_message_item.rbs +8 -8
  533. data/sig/openai/models/beta/chatkit/chatkit_widget_item.rbs +4 -4
  534. data/sig/openai/models/beta/chatkit/session_cancel_params.rbs +2 -2
  535. data/sig/openai/models/beta/chatkit/session_create_params.rbs +8 -8
  536. data/sig/openai/models/beta/chatkit/thread_delete_params.rbs +2 -2
  537. data/sig/openai/models/beta/chatkit/thread_delete_response.rbs +2 -2
  538. data/sig/openai/models/beta/chatkit/thread_list_items_params.rbs +10 -10
  539. data/sig/openai/models/beta/chatkit/thread_list_params.rbs +12 -12
  540. data/sig/openai/models/beta/chatkit/thread_retrieve_params.rbs +2 -2
  541. data/sig/openai/models/beta/code_interpreter_tool.rbs +2 -2
  542. data/sig/openai/models/beta/file_search_tool.rbs +10 -10
  543. data/sig/openai/models/beta/function_tool.rbs +2 -2
  544. data/sig/openai/models/beta/message_stream_event.rbs +10 -10
  545. data/sig/openai/models/beta/response_cancel_params.rbs +4 -4
  546. data/sig/openai/models/beta/response_compact_params.rbs +22 -22
  547. data/sig/openai/models/beta/response_create_params.rbs +99 -94
  548. data/sig/openai/models/beta/response_delete_params.rbs +4 -4
  549. data/sig/openai/models/beta/response_retrieve_params.rbs +10 -10
  550. data/sig/openai/models/beta/responses/beta_response_item_list.rbs +2 -2
  551. data/sig/openai/models/beta/responses/input_item_list_params.rbs +12 -12
  552. data/sig/openai/models/beta/responses/input_token_count_params.rbs +44 -44
  553. data/sig/openai/models/beta/responses/input_token_count_response.rbs +2 -2
  554. data/sig/openai/models/beta/run_step_stream_event.rbs +14 -14
  555. data/sig/openai/models/beta/run_stream_event.rbs +23 -20
  556. data/sig/openai/models/beta/thread.rbs +10 -10
  557. data/sig/openai/models/beta/thread_create_and_run_params.rbs +76 -76
  558. data/sig/openai/models/beta/thread_create_params.rbs +38 -38
  559. data/sig/openai/models/beta/thread_delete_params.rbs +2 -2
  560. data/sig/openai/models/beta/thread_deleted.rbs +6 -2
  561. data/sig/openai/models/beta/thread_retrieve_params.rbs +2 -2
  562. data/sig/openai/models/beta/thread_stream_event.rbs +7 -3
  563. data/sig/openai/models/beta/thread_update_params.rbs +14 -14
  564. data/sig/openai/models/beta/threads/file_citation_annotation.rbs +2 -2
  565. data/sig/openai/models/beta/threads/file_citation_delta_annotation.rbs +12 -12
  566. data/sig/openai/models/beta/threads/file_path_annotation.rbs +2 -2
  567. data/sig/openai/models/beta/threads/file_path_delta_annotation.rbs +12 -12
  568. data/sig/openai/models/beta/threads/image_file.rbs +2 -2
  569. data/sig/openai/models/beta/threads/image_file_content_block.rbs +2 -2
  570. data/sig/openai/models/beta/threads/image_file_delta.rbs +4 -4
  571. data/sig/openai/models/beta/threads/image_file_delta_block.rbs +4 -4
  572. data/sig/openai/models/beta/threads/image_url.rbs +2 -2
  573. data/sig/openai/models/beta/threads/image_url_content_block.rbs +2 -2
  574. data/sig/openai/models/beta/threads/image_url_delta.rbs +4 -4
  575. data/sig/openai/models/beta/threads/image_url_delta_block.rbs +4 -4
  576. data/sig/openai/models/beta/threads/message.rbs +8 -8
  577. data/sig/openai/models/beta/threads/message_create_params.rbs +12 -12
  578. data/sig/openai/models/beta/threads/message_delete_params.rbs +6 -3
  579. data/sig/openai/models/beta/threads/message_deleted.rbs +2 -2
  580. data/sig/openai/models/beta/threads/message_delta.rbs +4 -4
  581. data/sig/openai/models/beta/threads/message_delta_event.rbs +2 -2
  582. data/sig/openai/models/beta/threads/message_list_params.rbs +12 -12
  583. data/sig/openai/models/beta/threads/message_retrieve_params.rbs +6 -3
  584. data/sig/openai/models/beta/threads/message_update_params.rbs +4 -4
  585. data/sig/openai/models/beta/threads/refusal_content_block.rbs +2 -2
  586. data/sig/openai/models/beta/threads/refusal_delta_block.rbs +2 -2
  587. data/sig/openai/models/beta/threads/required_action_function_tool_call.rbs +2 -2
  588. data/sig/openai/models/beta/threads/run.rbs +12 -12
  589. data/sig/openai/models/beta/threads/run_cancel_params.rbs +6 -3
  590. data/sig/openai/models/beta/threads/run_create_params.rbs +46 -46
  591. data/sig/openai/models/beta/threads/run_list_params.rbs +10 -10
  592. data/sig/openai/models/beta/threads/run_retrieve_params.rbs +6 -3
  593. data/sig/openai/models/beta/threads/run_submit_tool_outputs_params.rbs +5 -5
  594. data/sig/openai/models/beta/threads/run_update_params.rbs +4 -4
  595. data/sig/openai/models/beta/threads/runs/code_interpreter_logs.rbs +2 -2
  596. data/sig/openai/models/beta/threads/runs/code_interpreter_output_image.rbs +6 -6
  597. data/sig/openai/models/beta/threads/runs/code_interpreter_tool_call.rbs +6 -6
  598. data/sig/openai/models/beta/threads/runs/code_interpreter_tool_call_delta.rbs +10 -10
  599. data/sig/openai/models/beta/threads/runs/file_search_tool_call.rbs +12 -12
  600. data/sig/openai/models/beta/threads/runs/file_search_tool_call_delta.rbs +8 -3
  601. data/sig/openai/models/beta/threads/runs/function_tool_call.rbs +2 -2
  602. data/sig/openai/models/beta/threads/runs/function_tool_call_delta.rbs +11 -10
  603. data/sig/openai/models/beta/threads/runs/message_creation_step_details.rbs +2 -2
  604. data/sig/openai/models/beta/threads/runs/run_step.rbs +2 -2
  605. data/sig/openai/models/beta/threads/runs/run_step_delta.rbs +2 -2
  606. data/sig/openai/models/beta/threads/runs/run_step_delta_event.rbs +2 -2
  607. data/sig/openai/models/beta/threads/runs/run_step_delta_message_delta.rbs +6 -6
  608. data/sig/openai/models/beta/threads/runs/step_list_params.rbs +12 -12
  609. data/sig/openai/models/beta/threads/runs/step_retrieve_params.rbs +4 -4
  610. data/sig/openai/models/beta/threads/runs/tool_call_delta_object.rbs +4 -4
  611. data/sig/openai/models/beta/threads/runs/tool_calls_step_details.rbs +2 -2
  612. data/sig/openai/models/beta/threads/text_content_block.rbs +2 -2
  613. data/sig/openai/models/beta/threads/text_content_block_param.rbs +2 -2
  614. data/sig/openai/models/beta/threads/text_delta.rbs +4 -4
  615. data/sig/openai/models/beta/threads/text_delta_block.rbs +4 -4
  616. data/sig/openai/models/chat/chat_completion.rbs +24 -24
  617. data/sig/openai/models/chat/chat_completion_allowed_tool_choice.rbs +2 -2
  618. data/sig/openai/models/chat/chat_completion_assistant_message_param.rbs +14 -14
  619. data/sig/openai/models/chat/chat_completion_chunk.rbs +46 -46
  620. data/sig/openai/models/chat/chat_completion_content_part.rbs +11 -10
  621. data/sig/openai/models/chat/chat_completion_content_part_image.rbs +8 -8
  622. data/sig/openai/models/chat/chat_completion_content_part_input_audio.rbs +6 -6
  623. data/sig/openai/models/chat/chat_completion_content_part_refusal.rbs +2 -2
  624. data/sig/openai/models/chat/chat_completion_content_part_text.rbs +6 -6
  625. data/sig/openai/models/chat/chat_completion_custom_tool.rbs +10 -10
  626. data/sig/openai/models/chat/chat_completion_deleted.rbs +2 -2
  627. data/sig/openai/models/chat/chat_completion_developer_message_param.rbs +4 -4
  628. data/sig/openai/models/chat/chat_completion_function_message_param.rbs +2 -2
  629. data/sig/openai/models/chat/chat_completion_function_tool.rbs +2 -2
  630. data/sig/openai/models/chat/chat_completion_message.rbs +12 -12
  631. data/sig/openai/models/chat/chat_completion_message_custom_tool_call.rbs +2 -2
  632. data/sig/openai/models/chat/chat_completion_message_function_tool_call.rbs +2 -2
  633. data/sig/openai/models/chat/chat_completion_named_tool_choice.rbs +2 -2
  634. data/sig/openai/models/chat/chat_completion_named_tool_choice_custom.rbs +2 -2
  635. data/sig/openai/models/chat/chat_completion_prediction_content.rbs +2 -2
  636. data/sig/openai/models/chat/chat_completion_store_message.rbs +12 -12
  637. data/sig/openai/models/chat/chat_completion_stream_options.rbs +2 -2
  638. data/sig/openai/models/chat/chat_completion_system_message_param.rbs +4 -4
  639. data/sig/openai/models/chat/chat_completion_tool_message_param.rbs +2 -2
  640. data/sig/openai/models/chat/chat_completion_user_message_param.rbs +4 -4
  641. data/sig/openai/models/chat/completion_create_params.rbs +98 -98
  642. data/sig/openai/models/chat/completion_delete_params.rbs +2 -2
  643. data/sig/openai/models/chat/completion_list_params.rbs +12 -12
  644. data/sig/openai/models/chat/completion_retrieve_params.rbs +2 -2
  645. data/sig/openai/models/chat/completion_update_params.rbs +6 -3
  646. data/sig/openai/models/chat/completions/message_list_params.rbs +8 -8
  647. data/sig/openai/models/completion.rbs +6 -6
  648. data/sig/openai/models/completion_choice.rbs +8 -8
  649. data/sig/openai/models/completion_create_params.rbs +32 -32
  650. data/sig/openai/models/completion_usage.rbs +24 -24
  651. data/sig/openai/models/container_create_params.rbs +12 -12
  652. data/sig/openai/models/container_create_response.rbs +14 -14
  653. data/sig/openai/models/container_delete_params.rbs +2 -2
  654. data/sig/openai/models/container_list_params.rbs +10 -10
  655. data/sig/openai/models/container_list_response.rbs +14 -14
  656. data/sig/openai/models/container_retrieve_params.rbs +2 -2
  657. data/sig/openai/models/container_retrieve_response.rbs +14 -14
  658. data/sig/openai/models/containers/file_create_params.rbs +6 -6
  659. data/sig/openai/models/containers/file_create_response.rbs +2 -2
  660. data/sig/openai/models/containers/file_delete_params.rbs +6 -3
  661. data/sig/openai/models/containers/file_list_params.rbs +8 -8
  662. data/sig/openai/models/containers/file_list_response.rbs +2 -2
  663. data/sig/openai/models/containers/file_retrieve_params.rbs +6 -3
  664. data/sig/openai/models/containers/file_retrieve_response.rbs +2 -2
  665. data/sig/openai/models/containers/files/content_retrieve_params.rbs +6 -3
  666. data/sig/openai/models/content_provenance_check.rbs +4 -4
  667. data/sig/openai/models/content_provenance_check_create_params.rbs +5 -3
  668. data/sig/openai/models/conversations/computer_screenshot_content.rbs +6 -6
  669. data/sig/openai/models/conversations/conversation.rbs +2 -2
  670. data/sig/openai/models/conversations/conversation_create_params.rbs +6 -6
  671. data/sig/openai/models/conversations/conversation_delete_params.rbs +2 -2
  672. data/sig/openai/models/conversations/conversation_deleted.rbs +2 -2
  673. data/sig/openai/models/conversations/conversation_deleted_resource.rbs +2 -2
  674. data/sig/openai/models/conversations/conversation_item.rbs +46 -46
  675. data/sig/openai/models/conversations/conversation_item_list.rbs +2 -2
  676. data/sig/openai/models/conversations/conversation_retrieve_params.rbs +2 -2
  677. data/sig/openai/models/conversations/conversation_update_params.rbs +6 -3
  678. data/sig/openai/models/conversations/item_create_params.rbs +4 -4
  679. data/sig/openai/models/conversations/item_delete_params.rbs +6 -3
  680. data/sig/openai/models/conversations/item_list_params.rbs +10 -10
  681. data/sig/openai/models/conversations/item_retrieve_params.rbs +4 -4
  682. data/sig/openai/models/conversations/message.rbs +6 -6
  683. data/sig/openai/models/conversations/summary_text_content.rbs +2 -2
  684. data/sig/openai/models/conversations/text_content.rbs +2 -2
  685. data/sig/openai/models/create_embedding_response.rbs +2 -2
  686. data/sig/openai/models/custom_tool_input_format.rbs +4 -4
  687. data/sig/openai/models/deleted_skill.rbs +3 -2
  688. data/sig/openai/models/embedding.rbs +2 -2
  689. data/sig/openai/models/embedding_create_params.rbs +8 -8
  690. data/sig/openai/models/error_object.rbs +8 -8
  691. data/sig/openai/models/eval_create_params.rbs +40 -40
  692. data/sig/openai/models/eval_create_response.rbs +22 -22
  693. data/sig/openai/models/eval_custom_data_source_config.rbs +2 -2
  694. data/sig/openai/models/eval_delete_params.rbs +2 -2
  695. data/sig/openai/models/eval_list_params.rbs +10 -10
  696. data/sig/openai/models/eval_list_response.rbs +22 -22
  697. data/sig/openai/models/eval_retrieve_params.rbs +2 -2
  698. data/sig/openai/models/eval_retrieve_response.rbs +22 -22
  699. data/sig/openai/models/eval_stored_completions_data_source_config.rbs +4 -4
  700. data/sig/openai/models/eval_update_params.rbs +9 -5
  701. data/sig/openai/models/eval_update_response.rbs +22 -22
  702. data/sig/openai/models/evals/create_eval_completions_run_data_source.rbs +49 -49
  703. data/sig/openai/models/evals/create_eval_jsonl_run_data_source.rbs +8 -8
  704. data/sig/openai/models/evals/run_cancel_params.rbs +6 -3
  705. data/sig/openai/models/evals/run_cancel_response.rbs +66 -66
  706. data/sig/openai/models/evals/run_create_params.rbs +68 -68
  707. data/sig/openai/models/evals/run_create_response.rbs +66 -66
  708. data/sig/openai/models/evals/run_delete_params.rbs +6 -3
  709. data/sig/openai/models/evals/run_delete_response.rbs +2 -2
  710. data/sig/openai/models/evals/run_list_params.rbs +10 -10
  711. data/sig/openai/models/evals/run_list_response.rbs +66 -66
  712. data/sig/openai/models/evals/run_retrieve_params.rbs +6 -3
  713. data/sig/openai/models/evals/run_retrieve_response.rbs +66 -66
  714. data/sig/openai/models/evals/runs/output_item_list_params.rbs +10 -10
  715. data/sig/openai/models/evals/runs/output_item_list_response.rbs +8 -8
  716. data/sig/openai/models/evals/runs/output_item_retrieve_params.rbs +7 -3
  717. data/sig/openai/models/evals/runs/output_item_retrieve_response.rbs +8 -8
  718. data/sig/openai/models/file_content_params.rbs +2 -2
  719. data/sig/openai/models/file_create_params.rbs +6 -6
  720. data/sig/openai/models/file_delete_params.rbs +2 -2
  721. data/sig/openai/models/file_deleted.rbs +2 -2
  722. data/sig/openai/models/file_list_params.rbs +10 -10
  723. data/sig/openai/models/file_object.rbs +6 -6
  724. data/sig/openai/models/file_retrieve_params.rbs +2 -2
  725. data/sig/openai/models/fine_tuning/alpha/grader_run_params.rbs +4 -4
  726. data/sig/openai/models/fine_tuning/alpha/grader_validate_params.rbs +3 -3
  727. data/sig/openai/models/fine_tuning/alpha/grader_validate_response.rbs +2 -2
  728. data/sig/openai/models/fine_tuning/checkpoints/permission_create_params.rbs +6 -3
  729. data/sig/openai/models/fine_tuning/checkpoints/permission_create_response.rbs +2 -2
  730. data/sig/openai/models/fine_tuning/checkpoints/permission_delete_params.rbs +6 -3
  731. data/sig/openai/models/fine_tuning/checkpoints/permission_delete_response.rbs +2 -2
  732. data/sig/openai/models/fine_tuning/checkpoints/permission_list_params.rbs +10 -10
  733. data/sig/openai/models/fine_tuning/checkpoints/permission_list_response.rbs +2 -2
  734. data/sig/openai/models/fine_tuning/checkpoints/permission_retrieve_params.rbs +10 -10
  735. data/sig/openai/models/fine_tuning/checkpoints/permission_retrieve_response.rbs +8 -8
  736. data/sig/openai/models/fine_tuning/dpo_hyperparameters.rbs +8 -8
  737. data/sig/openai/models/fine_tuning/dpo_method.rbs +2 -2
  738. data/sig/openai/models/fine_tuning/fine_tuning_job.rbs +22 -22
  739. data/sig/openai/models/fine_tuning/fine_tuning_job_event.rbs +6 -6
  740. data/sig/openai/models/fine_tuning/fine_tuning_job_wandb_integration.rbs +6 -6
  741. data/sig/openai/models/fine_tuning/fine_tuning_job_wandb_integration_object.rbs +2 -2
  742. data/sig/openai/models/fine_tuning/job_cancel_params.rbs +2 -3
  743. data/sig/openai/models/fine_tuning/job_create_params.rbs +36 -36
  744. data/sig/openai/models/fine_tuning/job_list_events_params.rbs +9 -5
  745. data/sig/openai/models/fine_tuning/job_list_params.rbs +10 -6
  746. data/sig/openai/models/fine_tuning/job_pause_params.rbs +2 -3
  747. data/sig/openai/models/fine_tuning/job_resume_params.rbs +2 -3
  748. data/sig/openai/models/fine_tuning/job_retrieve_params.rbs +2 -3
  749. data/sig/openai/models/fine_tuning/jobs/checkpoint_list_params.rbs +9 -5
  750. data/sig/openai/models/fine_tuning/jobs/fine_tuning_job_checkpoint.rbs +16 -16
  751. data/sig/openai/models/fine_tuning/reinforcement_hyperparameters.rbs +14 -14
  752. data/sig/openai/models/fine_tuning/reinforcement_method.rbs +2 -2
  753. data/sig/openai/models/fine_tuning/supervised_hyperparameters.rbs +6 -6
  754. data/sig/openai/models/fine_tuning/supervised_method.rbs +2 -2
  755. data/sig/openai/models/function_definition.rbs +6 -6
  756. data/sig/openai/models/graders/grader_input_item.rbs +5 -5
  757. data/sig/openai/models/graders/label_model_grader.rbs +9 -9
  758. data/sig/openai/models/graders/multi_grader.rbs +2 -2
  759. data/sig/openai/models/graders/python_grader.rbs +3 -3
  760. data/sig/openai/models/graders/score_model_grader.rbs +23 -23
  761. data/sig/openai/models/graders/string_check_grader.rbs +2 -2
  762. data/sig/openai/models/graders/text_similarity_grader.rbs +2 -2
  763. data/sig/openai/models/image.rbs +4 -4
  764. data/sig/openai/models/image_create_variation_params.rbs +12 -12
  765. data/sig/openai/models/image_edit_completed_event.rbs +2 -2
  766. data/sig/openai/models/image_edit_params.rbs +26 -26
  767. data/sig/openai/models/image_edit_partial_image_event.rbs +2 -2
  768. data/sig/openai/models/image_gen_completed_event.rbs +2 -2
  769. data/sig/openai/models/image_gen_partial_image_event.rbs +2 -2
  770. data/sig/openai/models/image_generate_params.rbs +26 -26
  771. data/sig/openai/models/image_input_reference_param.rbs +2 -2
  772. data/sig/openai/models/images_response.rbs +14 -14
  773. data/sig/openai/models/model.rbs +4 -4
  774. data/sig/openai/models/model_delete_params.rbs +5 -2
  775. data/sig/openai/models/model_list_params.rbs +2 -2
  776. data/sig/openai/models/model_retrieve_params.rbs +5 -2
  777. data/sig/openai/models/moderation_create_params.rbs +4 -4
  778. data/sig/openai/models/moderation_image_url_input.rbs +5 -2
  779. data/sig/openai/models/moderation_text_input.rbs +2 -2
  780. data/sig/openai/models/other_file_chunking_strategy_object.rbs +2 -2
  781. data/sig/openai/models/realtime/audio_transcription.rbs +12 -12
  782. data/sig/openai/models/realtime/call_accept_params.rbs +30 -30
  783. data/sig/openai/models/realtime/call_create_params.rbs +7 -4
  784. data/sig/openai/models/realtime/call_hangup_params.rbs +2 -2
  785. data/sig/openai/models/realtime/call_refer_params.rbs +6 -3
  786. data/sig/openai/models/realtime/call_reject_params.rbs +7 -4
  787. data/sig/openai/models/realtime/client_secret_create_params.rbs +10 -10
  788. data/sig/openai/models/realtime/conversation_created_event.rbs +6 -6
  789. data/sig/openai/models/realtime/conversation_item_added.rbs +4 -4
  790. data/sig/openai/models/realtime/conversation_item_create_event.rbs +6 -6
  791. data/sig/openai/models/realtime/conversation_item_created_event.rbs +4 -4
  792. data/sig/openai/models/realtime/conversation_item_delete_event.rbs +7 -3
  793. data/sig/openai/models/realtime/conversation_item_deleted_event.rbs +2 -2
  794. data/sig/openai/models/realtime/conversation_item_done.rbs +4 -4
  795. data/sig/openai/models/realtime/conversation_item_input_audio_transcription_completed_event.rbs +14 -14
  796. data/sig/openai/models/realtime/conversation_item_input_audio_transcription_delta_event.rbs +8 -8
  797. data/sig/openai/models/realtime/conversation_item_input_audio_transcription_failed_event.rbs +7 -7
  798. data/sig/openai/models/realtime/conversation_item_input_audio_transcription_segment.rbs +2 -2
  799. data/sig/openai/models/realtime/conversation_item_retrieve_event.rbs +4 -4
  800. data/sig/openai/models/realtime/conversation_item_truncate_event.rbs +4 -4
  801. data/sig/openai/models/realtime/conversation_item_truncated_event.rbs +2 -2
  802. data/sig/openai/models/realtime/conversation_item_with_reference.rbs +30 -30
  803. data/sig/openai/models/realtime/input_audio_buffer_append_event.rbs +7 -3
  804. data/sig/openai/models/realtime/input_audio_buffer_clear_event.rbs +5 -2
  805. data/sig/openai/models/realtime/input_audio_buffer_cleared_event.rbs +2 -2
  806. data/sig/openai/models/realtime/input_audio_buffer_commit_event.rbs +5 -2
  807. data/sig/openai/models/realtime/input_audio_buffer_committed_event.rbs +4 -4
  808. data/sig/openai/models/realtime/input_audio_buffer_dtmf_event_received_event.rbs +2 -2
  809. data/sig/openai/models/realtime/input_audio_buffer_speech_started_event.rbs +2 -2
  810. data/sig/openai/models/realtime/input_audio_buffer_speech_stopped_event.rbs +2 -2
  811. data/sig/openai/models/realtime/input_audio_buffer_timeout_triggered.rbs +2 -2
  812. data/sig/openai/models/realtime/mcp_list_tools_completed.rbs +6 -2
  813. data/sig/openai/models/realtime/mcp_list_tools_failed.rbs +2 -2
  814. data/sig/openai/models/realtime/mcp_list_tools_in_progress.rbs +2 -2
  815. data/sig/openai/models/realtime/output_audio_buffer_clear_event.rbs +5 -2
  816. data/sig/openai/models/realtime/rate_limits_updated_event.rbs +10 -10
  817. data/sig/openai/models/realtime/realtime_audio_config.rbs +4 -4
  818. data/sig/openai/models/realtime/realtime_audio_config_input.rbs +10 -10
  819. data/sig/openai/models/realtime/realtime_audio_config_output.rbs +6 -6
  820. data/sig/openai/models/realtime/realtime_audio_formats.rbs +8 -8
  821. data/sig/openai/models/realtime/realtime_audio_input_turn_detection.rbs +22 -22
  822. data/sig/openai/models/realtime/realtime_conversation_item_assistant_message.rbs +18 -18
  823. data/sig/openai/models/realtime/realtime_conversation_item_function_call.rbs +10 -10
  824. data/sig/openai/models/realtime/realtime_conversation_item_function_call_output.rbs +8 -8
  825. data/sig/openai/models/realtime/realtime_conversation_item_system_message.rbs +14 -14
  826. data/sig/openai/models/realtime/realtime_conversation_item_user_message.rbs +22 -22
  827. data/sig/openai/models/realtime/realtime_error.rbs +6 -6
  828. data/sig/openai/models/realtime/realtime_error_event.rbs +2 -2
  829. data/sig/openai/models/realtime/realtime_function_tool.rbs +8 -8
  830. data/sig/openai/models/realtime/realtime_mcp_approval_request.rbs +2 -2
  831. data/sig/openai/models/realtime/realtime_mcp_approval_response.rbs +4 -4
  832. data/sig/openai/models/realtime/realtime_mcp_list_tools.rbs +8 -8
  833. data/sig/openai/models/realtime/realtime_mcp_protocol_error.rbs +2 -2
  834. data/sig/openai/models/realtime/realtime_mcp_tool_call.rbs +8 -8
  835. data/sig/openai/models/realtime/realtime_mcp_tool_execution_error.rbs +2 -2
  836. data/sig/openai/models/realtime/realtime_mcphttp_error.rbs +2 -2
  837. data/sig/openai/models/realtime/realtime_reasoning.rbs +2 -2
  838. data/sig/openai/models/realtime/realtime_response.rbs +28 -28
  839. data/sig/openai/models/realtime/realtime_response_create_audio_output.rbs +6 -6
  840. data/sig/openai/models/realtime/realtime_response_create_mcp_tool.rbs +32 -32
  841. data/sig/openai/models/realtime/realtime_response_create_params.rbs +24 -24
  842. data/sig/openai/models/realtime/realtime_response_status.rbs +8 -8
  843. data/sig/openai/models/realtime/realtime_response_usage.rbs +10 -10
  844. data/sig/openai/models/realtime/realtime_response_usage_input_token_details.rbs +18 -14
  845. data/sig/openai/models/realtime/realtime_response_usage_output_token_details.rbs +2 -2
  846. data/sig/openai/models/realtime/realtime_server_event.rbs +8 -8
  847. data/sig/openai/models/realtime/realtime_session.rbs +68 -68
  848. data/sig/openai/models/realtime/realtime_session_create_request.rbs +28 -28
  849. data/sig/openai/models/realtime/realtime_session_create_response.rbs +113 -110
  850. data/sig/openai/models/realtime/realtime_tools_config_union.rbs +38 -32
  851. data/sig/openai/models/realtime/realtime_tracing_config.rbs +4 -4
  852. data/sig/openai/models/realtime/realtime_transcription_session_audio.rbs +2 -2
  853. data/sig/openai/models/realtime/realtime_transcription_session_audio_input.rbs +10 -10
  854. data/sig/openai/models/realtime/realtime_transcription_session_audio_input_turn_detection.rbs +22 -22
  855. data/sig/openai/models/realtime/realtime_transcription_session_create_request.rbs +6 -6
  856. data/sig/openai/models/realtime/realtime_transcription_session_create_response.rbs +20 -20
  857. data/sig/openai/models/realtime/realtime_transcription_session_turn_detection.rbs +8 -8
  858. data/sig/openai/models/realtime/realtime_translation_client_secret_create_request.rbs +6 -6
  859. data/sig/openai/models/realtime/realtime_translation_input_audio_buffer_append_event.rbs +4 -4
  860. data/sig/openai/models/realtime/realtime_translation_input_transcript_delta_event.rbs +4 -4
  861. data/sig/openai/models/realtime/realtime_translation_output_audio_delta_event.rbs +10 -10
  862. data/sig/openai/models/realtime/realtime_translation_output_transcript_delta_event.rbs +4 -4
  863. data/sig/openai/models/realtime/realtime_translation_session.rbs +12 -12
  864. data/sig/openai/models/realtime/realtime_translation_session_close_event.rbs +2 -2
  865. data/sig/openai/models/realtime/realtime_translation_session_closed_event.rbs +2 -2
  866. data/sig/openai/models/realtime/realtime_translation_session_create_request.rbs +12 -12
  867. data/sig/openai/models/realtime/realtime_translation_session_created_event.rbs +2 -2
  868. data/sig/openai/models/realtime/realtime_translation_session_update_event.rbs +4 -4
  869. data/sig/openai/models/realtime/realtime_translation_session_update_request.rbs +12 -12
  870. data/sig/openai/models/realtime/realtime_translation_session_updated_event.rbs +2 -2
  871. data/sig/openai/models/realtime/realtime_truncation_retention_ratio.rbs +6 -6
  872. data/sig/openai/models/realtime/response_audio_delta_event.rbs +2 -2
  873. data/sig/openai/models/realtime/response_audio_done_event.rbs +2 -2
  874. data/sig/openai/models/realtime/response_audio_transcript_delta_event.rbs +2 -2
  875. data/sig/openai/models/realtime/response_audio_transcript_done_event.rbs +2 -2
  876. data/sig/openai/models/realtime/response_cancel_event.rbs +4 -4
  877. data/sig/openai/models/realtime/response_content_part_added_event.rbs +10 -10
  878. data/sig/openai/models/realtime/response_content_part_done_event.rbs +10 -10
  879. data/sig/openai/models/realtime/response_create_event.rbs +6 -6
  880. data/sig/openai/models/realtime/response_created_event.rbs +2 -2
  881. data/sig/openai/models/realtime/response_done_event.rbs +2 -2
  882. data/sig/openai/models/realtime/response_function_call_arguments_delta_event.rbs +2 -2
  883. data/sig/openai/models/realtime/response_function_call_arguments_done_event.rbs +2 -2
  884. data/sig/openai/models/realtime/response_mcp_call_arguments_delta.rbs +4 -4
  885. data/sig/openai/models/realtime/response_mcp_call_arguments_done.rbs +2 -2
  886. data/sig/openai/models/realtime/response_mcp_call_completed.rbs +2 -2
  887. data/sig/openai/models/realtime/response_mcp_call_failed.rbs +2 -2
  888. data/sig/openai/models/realtime/response_mcp_call_in_progress.rbs +2 -2
  889. data/sig/openai/models/realtime/response_output_item_added_event.rbs +2 -2
  890. data/sig/openai/models/realtime/response_output_item_done_event.rbs +2 -2
  891. data/sig/openai/models/realtime/response_text_delta_event.rbs +2 -2
  892. data/sig/openai/models/realtime/response_text_done_event.rbs +2 -2
  893. data/sig/openai/models/realtime/session_created_event.rbs +2 -2
  894. data/sig/openai/models/realtime/session_update_event.rbs +4 -4
  895. data/sig/openai/models/realtime/session_updated_event.rbs +2 -2
  896. data/sig/openai/models/realtime/transcription_session_update.rbs +24 -24
  897. data/sig/openai/models/realtime/transcription_session_updated_event.rbs +18 -18
  898. data/sig/openai/models/reasoning.rbs +10 -10
  899. data/sig/openai/models/response_format_json_object.rbs +2 -2
  900. data/sig/openai/models/response_format_json_schema.rbs +8 -8
  901. data/sig/openai/models/response_format_text.rbs +2 -2
  902. data/sig/openai/models/response_format_text_grammar.rbs +2 -2
  903. data/sig/openai/models/response_format_text_python.rbs +2 -2
  904. data/sig/openai/models/responses/apply_patch_tool.rbs +4 -4
  905. data/sig/openai/models/responses/compacted_response.rbs +2 -2
  906. data/sig/openai/models/responses/computer_action.rbs +25 -25
  907. data/sig/openai/models/responses/computer_tool.rbs +2 -2
  908. data/sig/openai/models/responses/computer_use_preview_tool.rbs +2 -2
  909. data/sig/openai/models/responses/container_auto.rbs +10 -10
  910. data/sig/openai/models/responses/container_network_policy_allowlist.rbs +4 -4
  911. data/sig/openai/models/responses/container_network_policy_disabled.rbs +2 -2
  912. data/sig/openai/models/responses/container_reference.rbs +2 -2
  913. data/sig/openai/models/responses/custom_tool.rbs +12 -12
  914. data/sig/openai/models/responses/easy_input_message.rbs +4 -4
  915. data/sig/openai/models/responses/file_search_tool.rbs +14 -14
  916. data/sig/openai/models/responses/function_shell_tool.rbs +6 -6
  917. data/sig/openai/models/responses/function_tool.rbs +12 -12
  918. data/sig/openai/models/responses/inline_skill.rbs +2 -2
  919. data/sig/openai/models/responses/inline_skill_source.rbs +3 -3
  920. data/sig/openai/models/responses/input_item_list_params.rbs +10 -10
  921. data/sig/openai/models/responses/input_token_count_params.rbs +32 -32
  922. data/sig/openai/models/responses/input_token_count_response.rbs +2 -2
  923. data/sig/openai/models/responses/local_environment.rbs +3 -3
  924. data/sig/openai/models/responses/mcp_tool_call_error.rbs +6 -6
  925. data/sig/openai/models/responses/namespace_tool.rbs +18 -18
  926. data/sig/openai/models/responses/response.rbs +175 -57
  927. data/sig/openai/models/responses/response_apply_patch_tool_call.rbs +16 -16
  928. data/sig/openai/models/responses/response_apply_patch_tool_call_output.rbs +12 -12
  929. data/sig/openai/models/responses/response_audio_delta_event.rbs +2 -2
  930. data/sig/openai/models/responses/response_audio_done_event.rbs +2 -2
  931. data/sig/openai/models/responses/response_audio_transcript_delta_event.rbs +2 -2
  932. data/sig/openai/models/responses/response_audio_transcript_done_event.rbs +2 -2
  933. data/sig/openai/models/responses/response_cancel_params.rbs +2 -2
  934. data/sig/openai/models/responses/response_code_interpreter_call_code_delta_event.rbs +2 -2
  935. data/sig/openai/models/responses/response_code_interpreter_call_code_done_event.rbs +2 -2
  936. data/sig/openai/models/responses/response_code_interpreter_call_completed_event.rbs +2 -2
  937. data/sig/openai/models/responses/response_code_interpreter_call_in_progress_event.rbs +2 -2
  938. data/sig/openai/models/responses/response_code_interpreter_call_interpreting_event.rbs +2 -2
  939. data/sig/openai/models/responses/response_code_interpreter_tool_call.rbs +6 -6
  940. data/sig/openai/models/responses/response_compact_params.rbs +20 -20
  941. data/sig/openai/models/responses/response_compaction_item.rbs +4 -4
  942. data/sig/openai/models/responses/response_compaction_item_param.rbs +3 -3
  943. data/sig/openai/models/responses/response_completed_event.rbs +2 -2
  944. data/sig/openai/models/responses/response_computer_tool_call.rbs +31 -31
  945. data/sig/openai/models/responses/response_computer_tool_call_output_item.rbs +8 -8
  946. data/sig/openai/models/responses/response_computer_tool_call_output_screenshot.rbs +4 -4
  947. data/sig/openai/models/responses/response_configuration_update_item.rbs +6 -6
  948. data/sig/openai/models/responses/response_configuration_update_item_param.rbs +8 -8
  949. data/sig/openai/models/responses/response_container_reference.rbs +2 -2
  950. data/sig/openai/models/responses/response_content.rbs +2 -2
  951. data/sig/openai/models/responses/response_content_part_added_event.rbs +4 -4
  952. data/sig/openai/models/responses/response_content_part_done_event.rbs +4 -4
  953. data/sig/openai/models/responses/response_create_params.rbs +83 -78
  954. data/sig/openai/models/responses/response_created_event.rbs +2 -2
  955. data/sig/openai/models/responses/response_custom_tool_call.rbs +14 -14
  956. data/sig/openai/models/responses/response_custom_tool_call_input_delta_event.rbs +2 -2
  957. data/sig/openai/models/responses/response_custom_tool_call_input_done_event.rbs +2 -2
  958. data/sig/openai/models/responses/response_custom_tool_call_item.rbs +10 -10
  959. data/sig/openai/models/responses/response_custom_tool_call_output.rbs +10 -10
  960. data/sig/openai/models/responses/response_custom_tool_call_output_item.rbs +6 -6
  961. data/sig/openai/models/responses/response_delete_params.rbs +2 -2
  962. data/sig/openai/models/responses/response_error.rbs +8 -8
  963. data/sig/openai/models/responses/response_error_event.rbs +2 -2
  964. data/sig/openai/models/responses/response_failed_event.rbs +2 -2
  965. data/sig/openai/models/responses/response_file_search_call_completed_event.rbs +2 -2
  966. data/sig/openai/models/responses/response_file_search_call_in_progress_event.rbs +2 -2
  967. data/sig/openai/models/responses/response_file_search_call_searching_event.rbs +2 -2
  968. data/sig/openai/models/responses/response_file_search_tool_call.rbs +14 -14
  969. data/sig/openai/models/responses/response_format_text_json_schema_config.rbs +6 -6
  970. data/sig/openai/models/responses/response_function_call_arguments_delta_event.rbs +2 -2
  971. data/sig/openai/models/responses/response_function_call_arguments_done_event.rbs +2 -7
  972. data/sig/openai/models/responses/response_function_shell_call_output_content.rbs +4 -4
  973. data/sig/openai/models/responses/response_function_shell_tool_call.rbs +10 -10
  974. data/sig/openai/models/responses/response_function_shell_tool_call_output.rbs +16 -16
  975. data/sig/openai/models/responses/response_function_tool_call.rbs +16 -16
  976. data/sig/openai/models/responses/response_function_tool_call_item.rbs +10 -10
  977. data/sig/openai/models/responses/response_function_tool_call_output_item.rbs +16 -16
  978. data/sig/openai/models/responses/response_function_web_search.rbs +19 -17
  979. data/sig/openai/models/responses/response_image_gen_call_completed_event.rbs +2 -2
  980. data/sig/openai/models/responses/response_image_gen_call_generating_event.rbs +2 -2
  981. data/sig/openai/models/responses/response_image_gen_call_in_progress_event.rbs +2 -2
  982. data/sig/openai/models/responses/response_image_gen_call_partial_image_event.rbs +10 -10
  983. data/sig/openai/models/responses/response_in_progress_event.rbs +2 -2
  984. data/sig/openai/models/responses/response_incomplete_event.rbs +2 -2
  985. data/sig/openai/models/responses/response_input_audio.rbs +2 -2
  986. data/sig/openai/models/responses/response_input_file.rbs +16 -16
  987. data/sig/openai/models/responses/response_input_file_content.rbs +16 -16
  988. data/sig/openai/models/responses/response_input_image.rbs +10 -10
  989. data/sig/openai/models/responses/response_input_image_content.rbs +12 -12
  990. data/sig/openai/models/responses/response_input_item.rbs +166 -158
  991. data/sig/openai/models/responses/response_input_message_item.rbs +4 -4
  992. data/sig/openai/models/responses/response_input_text.rbs +6 -6
  993. data/sig/openai/models/responses/response_input_text_content.rbs +6 -6
  994. data/sig/openai/models/responses/response_item.rbs +46 -46
  995. data/sig/openai/models/responses/response_item_list.rbs +2 -2
  996. data/sig/openai/models/responses/response_local_environment.rbs +2 -2
  997. data/sig/openai/models/responses/response_mcp_call_arguments_delta_event.rbs +2 -2
  998. data/sig/openai/models/responses/response_mcp_call_arguments_done_event.rbs +2 -2
  999. data/sig/openai/models/responses/response_mcp_call_completed_event.rbs +2 -2
  1000. data/sig/openai/models/responses/response_mcp_call_failed_event.rbs +2 -2
  1001. data/sig/openai/models/responses/response_mcp_call_in_progress_event.rbs +2 -2
  1002. data/sig/openai/models/responses/response_mcp_list_tools_completed_event.rbs +2 -2
  1003. data/sig/openai/models/responses/response_mcp_list_tools_failed_event.rbs +2 -2
  1004. data/sig/openai/models/responses/response_mcp_list_tools_in_progress_event.rbs +2 -2
  1005. data/sig/openai/models/responses/response_output_audio.rbs +2 -2
  1006. data/sig/openai/models/responses/response_output_item.rbs +46 -46
  1007. data/sig/openai/models/responses/response_output_item_added_event.rbs +2 -2
  1008. data/sig/openai/models/responses/response_output_item_done_event.rbs +2 -2
  1009. data/sig/openai/models/responses/response_output_message.rbs +6 -6
  1010. data/sig/openai/models/responses/response_output_refusal.rbs +2 -2
  1011. data/sig/openai/models/responses/response_output_text.rbs +13 -12
  1012. data/sig/openai/models/responses/response_output_text_annotation_added_event.rbs +11 -10
  1013. data/sig/openai/models/responses/response_prompt.rbs +4 -4
  1014. data/sig/openai/models/responses/response_queued_event.rbs +2 -2
  1015. data/sig/openai/models/responses/response_reasoning_item.rbs +12 -12
  1016. data/sig/openai/models/responses/response_reasoning_summary_part_added_event.rbs +4 -4
  1017. data/sig/openai/models/responses/response_reasoning_summary_part_done_event.rbs +6 -6
  1018. data/sig/openai/models/responses/response_reasoning_summary_text_delta_event.rbs +2 -2
  1019. data/sig/openai/models/responses/response_reasoning_summary_text_done_event.rbs +2 -2
  1020. data/sig/openai/models/responses/response_reasoning_text_delta_event.rbs +2 -2
  1021. data/sig/openai/models/responses/response_reasoning_text_done_event.rbs +2 -2
  1022. data/sig/openai/models/responses/response_refusal_delta_event.rbs +2 -2
  1023. data/sig/openai/models/responses/response_refusal_done_event.rbs +2 -2
  1024. data/sig/openai/models/responses/response_retrieve_params.rbs +8 -8
  1025. data/sig/openai/models/responses/response_shell_call_command_added_event.rbs +2 -2
  1026. data/sig/openai/models/responses/response_shell_call_command_delta_event.rbs +4 -4
  1027. data/sig/openai/models/responses/response_shell_call_command_done_event.rbs +2 -2
  1028. data/sig/openai/models/responses/response_shell_call_output_content_delta_event.rbs +4 -4
  1029. data/sig/openai/models/responses/response_shell_call_output_content_done_event.rbs +8 -8
  1030. data/sig/openai/models/responses/response_steer_accepted_event.rbs +4 -4
  1031. data/sig/openai/models/responses/response_steer_event.rbs +2 -2
  1032. data/sig/openai/models/responses/response_steer_failed_event.rbs +8 -8
  1033. data/sig/openai/models/responses/response_steer_input.rbs +26 -26
  1034. data/sig/openai/models/responses/response_steer_pending_event.rbs +4 -4
  1035. data/sig/openai/models/responses/response_steer_required_input.rbs +14 -14
  1036. data/sig/openai/models/responses/response_text_config.rbs +4 -4
  1037. data/sig/openai/models/responses/response_text_delta_event.rbs +6 -6
  1038. data/sig/openai/models/responses/response_text_done_event.rbs +6 -6
  1039. data/sig/openai/models/responses/response_tool_search_call.rbs +4 -4
  1040. data/sig/openai/models/responses/response_tool_search_output_item.rbs +4 -4
  1041. data/sig/openai/models/responses/response_tool_search_output_item_param.rbs +10 -10
  1042. data/sig/openai/models/responses/response_web_search_call_completed_event.rbs +2 -2
  1043. data/sig/openai/models/responses/response_web_search_call_in_progress_event.rbs +2 -2
  1044. data/sig/openai/models/responses/response_web_search_call_searching_event.rbs +2 -2
  1045. data/sig/openai/models/responses/responses_client_event.rbs +87 -82
  1046. data/sig/openai/models/responses/responses_server_event.rbs +258 -261
  1047. data/sig/openai/models/responses/skill_reference.rbs +3 -3
  1048. data/sig/openai/models/responses/tool.rbs +80 -74
  1049. data/sig/openai/models/responses/tool_choice_allowed.rbs +2 -2
  1050. data/sig/openai/models/responses/tool_choice_apply_patch.rbs +2 -2
  1051. data/sig/openai/models/responses/tool_choice_custom.rbs +2 -2
  1052. data/sig/openai/models/responses/tool_choice_function.rbs +2 -2
  1053. data/sig/openai/models/responses/tool_choice_mcp.rbs +3 -2
  1054. data/sig/openai/models/responses/tool_choice_shell.rbs +2 -2
  1055. data/sig/openai/models/responses/tool_search_tool.rbs +8 -8
  1056. data/sig/openai/models/responses/web_search_preview_tool.rbs +16 -16
  1057. data/sig/openai/models/responses/web_search_tool.rbs +20 -20
  1058. data/sig/openai/models/safety/alert_retrieve_params.rbs +2 -2
  1059. data/sig/openai/models/safety/safety_alert.rbs +2 -2
  1060. data/sig/openai/models/skill.rbs +2 -2
  1061. data/sig/openai/models/skill_create_params.rbs +6 -4
  1062. data/sig/openai/models/skill_delete_params.rbs +2 -2
  1063. data/sig/openai/models/skill_list.rbs +2 -2
  1064. data/sig/openai/models/skill_list_params.rbs +8 -8
  1065. data/sig/openai/models/skill_retrieve_params.rbs +2 -2
  1066. data/sig/openai/models/skill_update_params.rbs +6 -3
  1067. data/sig/openai/models/skills/content_retrieve_params.rbs +2 -2
  1068. data/sig/openai/models/skills/deleted_skill_version.rbs +2 -2
  1069. data/sig/openai/models/skills/skill_version.rbs +2 -2
  1070. data/sig/openai/models/skills/skill_version_list.rbs +2 -2
  1071. data/sig/openai/models/skills/version_create_params.rbs +6 -6
  1072. data/sig/openai/models/skills/version_delete_params.rbs +6 -3
  1073. data/sig/openai/models/skills/version_list_params.rbs +8 -8
  1074. data/sig/openai/models/skills/version_retrieve_params.rbs +6 -3
  1075. data/sig/openai/models/skills/versions/content_retrieve_params.rbs +6 -3
  1076. data/sig/openai/models/static_file_chunking_strategy_object.rbs +2 -2
  1077. data/sig/openai/models/static_file_chunking_strategy_object_param.rbs +2 -2
  1078. data/sig/openai/models/upload.rbs +4 -4
  1079. data/sig/openai/models/upload_cancel_params.rbs +2 -2
  1080. data/sig/openai/models/upload_complete_params.rbs +8 -4
  1081. data/sig/openai/models/upload_create_params.rbs +6 -6
  1082. data/sig/openai/models/uploads/part_create_params.rbs +6 -3
  1083. data/sig/openai/models/uploads/upload_part.rbs +2 -2
  1084. data/sig/openai/models/vector_store.rbs +8 -8
  1085. data/sig/openai/models/vector_store_create_params.rbs +16 -16
  1086. data/sig/openai/models/vector_store_delete_params.rbs +2 -2
  1087. data/sig/openai/models/vector_store_deleted.rbs +2 -2
  1088. data/sig/openai/models/vector_store_list_params.rbs +10 -10
  1089. data/sig/openai/models/vector_store_retrieve_params.rbs +2 -2
  1090. data/sig/openai/models/vector_store_search_params.rbs +14 -14
  1091. data/sig/openai/models/vector_store_update_params.rbs +10 -10
  1092. data/sig/openai/models/vector_stores/file_batch_cancel_params.rbs +6 -3
  1093. data/sig/openai/models/vector_stores/file_batch_create_params.rbs +14 -14
  1094. data/sig/openai/models/vector_stores/file_batch_list_files_params.rbs +12 -12
  1095. data/sig/openai/models/vector_stores/file_batch_retrieve_params.rbs +6 -3
  1096. data/sig/openai/models/vector_stores/file_content_params.rbs +6 -3
  1097. data/sig/openai/models/vector_stores/file_content_response.rbs +2 -2
  1098. data/sig/openai/models/vector_stores/file_create_params.rbs +6 -6
  1099. data/sig/openai/models/vector_stores/file_delete_params.rbs +6 -3
  1100. data/sig/openai/models/vector_stores/file_list_params.rbs +12 -12
  1101. data/sig/openai/models/vector_stores/file_retrieve_params.rbs +6 -3
  1102. data/sig/openai/models/vector_stores/file_update_params.rbs +3 -3
  1103. data/sig/openai/models/vector_stores/vector_store_file.rbs +6 -6
  1104. data/sig/openai/models/vector_stores/vector_store_file_batch.rbs +2 -2
  1105. data/sig/openai/models/vector_stores/vector_store_file_deleted.rbs +2 -2
  1106. data/sig/openai/models/video.rbs +2 -2
  1107. data/sig/openai/models/video_create_character_params.rbs +6 -3
  1108. data/sig/openai/models/video_create_error.rbs +8 -8
  1109. data/sig/openai/models/video_create_params.rbs +10 -10
  1110. data/sig/openai/models/video_delete_params.rbs +2 -2
  1111. data/sig/openai/models/video_delete_response.rbs +2 -2
  1112. data/sig/openai/models/video_download_content_params.rbs +4 -4
  1113. data/sig/openai/models/video_edit_params.rbs +6 -3
  1114. data/sig/openai/models/video_extend_params.rbs +3 -3
  1115. data/sig/openai/models/video_get_character_params.rbs +2 -2
  1116. data/sig/openai/models/video_list_params.rbs +8 -8
  1117. data/sig/openai/models/video_remix_params.rbs +6 -3
  1118. data/sig/openai/models/video_retrieve_params.rbs +2 -2
  1119. data/sig/openai/models/webhooks/batch_cancelled_webhook_event.rbs +4 -4
  1120. data/sig/openai/models/webhooks/batch_completed_webhook_event.rbs +4 -4
  1121. data/sig/openai/models/webhooks/batch_expired_webhook_event.rbs +4 -4
  1122. data/sig/openai/models/webhooks/batch_failed_webhook_event.rbs +4 -4
  1123. data/sig/openai/models/webhooks/eval_run_canceled_webhook_event.rbs +4 -4
  1124. data/sig/openai/models/webhooks/eval_run_failed_webhook_event.rbs +4 -4
  1125. data/sig/openai/models/webhooks/eval_run_succeeded_webhook_event.rbs +4 -4
  1126. data/sig/openai/models/webhooks/fine_tuning_job_cancelled_webhook_event.rbs +4 -4
  1127. data/sig/openai/models/webhooks/fine_tuning_job_failed_webhook_event.rbs +4 -4
  1128. data/sig/openai/models/webhooks/fine_tuning_job_succeeded_webhook_event.rbs +4 -4
  1129. data/sig/openai/models/webhooks/live_call_incoming_webhook_event.rbs +4 -4
  1130. data/sig/openai/models/webhooks/realtime_call_incoming_webhook_event.rbs +4 -4
  1131. data/sig/openai/models/webhooks/response_cancelled_webhook_event.rbs +4 -4
  1132. data/sig/openai/models/webhooks/response_completed_webhook_event.rbs +4 -4
  1133. data/sig/openai/models/webhooks/response_failed_webhook_event.rbs +4 -4
  1134. data/sig/openai/models/webhooks/response_incomplete_webhook_event.rbs +4 -4
  1135. data/sig/openai/models/webhooks/safety_alert_created_webhook_event.rbs +4 -4
  1136. data/sig/openai/models/webhooks/safety_org_alert_created_webhook_event.rbs +4 -4
  1137. data/sig/openai/models/webhooks/webhook_unwrap_params.rbs +2 -3
  1138. data/sig/openai/request_options.rbs +7 -7
  1139. data/sig/openai/resources/admin/organization/projects/service_accounts/api_keys.rbs +1 -0
  1140. data/sig/openai/resources/audio/speech.rbs +1 -1
  1141. data/sig/openai/resources/containers/files/content.rbs +1 -1
  1142. data/sig/openai/resources/files.rbs +1 -1
  1143. data/sig/openai/resources/responses.rbs +51 -2
  1144. data/sig/openai/resources/skills/content.rbs +1 -1
  1145. data/sig/openai/resources/skills/versions/content.rbs +1 -1
  1146. data/sig/openai/resources/videos.rbs +1 -1
  1147. data/sig/openai/response_carrier.rbs +13 -0
  1148. data/sig/openai/streaming.rbs +10 -0
  1149. metadata +42 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 37f60ef5c84fcaef53fccd86fa30e1cc0988b4033abdd3e14711247e082de5d4
4
- data.tar.gz: 97cd2b216e53d22574e00031f94b0d2975393a9128a9d2528ea735679bb04f8f
3
+ metadata.gz: 0e2fc3cef6cd029385cb528885096cbf0640df90c238752af2ef76186c578578
4
+ data.tar.gz: 5ab2eac3ec679b9d43a141ec43ef70b294ed09a5e4f72f9a3c272cd407cbe3dc
5
5
  SHA512:
6
- metadata.gz: 1493b225ac23056cda189b6af2bdd547aeb3441fef8f85c9454ae2d2d51e87e84743807cd86875f85a1d055eeb1f8c30ab684b7a11f76e46f86fbcd47c3b0995
7
- data.tar.gz: 702dc478f26dff8454563e36b2d3ed4113ced5f04f104d34ab399091b290bf34ca3cccbb1ad8f44b2dae132d40053e33b9d0a86dc20f3a66316e0aed9378459d
6
+ metadata.gz: e80dd1fe954a867a454f08d6349689d71f731f1908add8fc5d48e25605a431202cd6f9366e0c30070ae5273195b37116e33a606f6a26de89957d23bea6dd855b
7
+ data.tar.gz: b87d683d9a0cbc8b59fcb6ddc31b9b1a1737455d7353bf7466736a375955018946f18ba753c79362f94fec9ef9b52f70dd90405cfd94d600e407aaf0b4d64ad5
data/CHANGELOG.md CHANGED
@@ -1,5 +1,85 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.86.0](https://github.com/openai/openai-ruby/compare/v0.85.0...v0.86.0) (2026-09-08)
4
+
5
+
6
+ ### Features
7
+
8
+ * add Responses WebSocket mode ([#562](https://github.com/openai/openai-ruby/issues/562)) ([7c910a7](https://github.com/openai/openai-ruby/commit/7c910a78ae4418dc59e766edc2467c254b814a89))
9
+ * **api:** add cache diagnostics and fix optional RBS keys ([#604](https://github.com/openai/openai-ruby/issues/604)) ([4e4f7cd](https://github.com/openai/openai-ruby/commit/4e4f7cdda5b5e1c568badded52324af06c77378b))
10
+ * **api:** add service-account API key expiration fields ([#625](https://github.com/openai/openai-ruby/issues/625)) ([8d3f213](https://github.com/openai/openai-ruby/commit/8d3f213da707b11ddbd913a801925b00b3e2bcc9))
11
+ * **api:** correct function argument completion event fields (openapi-545) ([#622](https://github.com/openai/openai-ruby/issues/622)) ([06e2c91](https://github.com/openai/openai-ruby/commit/06e2c91dc349ba36d12ece05bf0b0cbf1ba0e220))
12
+ * **api:** recognize incomplete web search call status ([#590](https://github.com/openai/openai-ruby/issues/590)) ([1560da0](https://github.com/openai/openai-ruby/commit/1560da01073061cc0a0dadc853f7dbc6e688a4d4))
13
+ * **responses:** parse structured outputs on retrieval ([#532](https://github.com/openai/openai-ruby/issues/532)) ([41eb726](https://github.com/openai/openai-ruby/commit/41eb726b66fcb56f149553a9d681d8f1837b9b97))
14
+
15
+
16
+ ### Bug Fixes
17
+
18
+ * accept documented RequestOptions extra query values ([#660](https://github.com/openai/openai-ruby/issues/660)) ([e168aa4](https://github.com/openai/openai-ruby/commit/e168aa47ee9ff81150a901c4eba1f236dea0dcf6))
19
+ * accept string Responses structured-output tags ([#617](https://github.com/openai/openai-ruby/issues/617)) ([4322e07](https://github.com/openai/openai-ruby/commit/4322e076e57b769d619175006307763e3c630cfb))
20
+ * **api:** expose metadata on binary responses ([#608](https://github.com/openai/openai-ruby/issues/608)) ([59e0643](https://github.com/openai/openai-ruby/commit/59e0643dbb37e95b4746b24b38c1489dd2867e33))
21
+ * avoid retrying ambiguous non-idempotent requests ([#650](https://github.com/openai/openai-ruby/issues/650)) ([4734cba](https://github.com/openai/openai-ruby/commit/4734cba47984a53e241e224acb7f465372b34598))
22
+ * avoid unused Responses stream snapshot copies ([#677](https://github.com/openai/openai-ruby/issues/677)) ([2996996](https://github.com/openai/openai-ruby/commit/2996996d8c68e96f5c8fb65da869a321988c5dc8))
23
+ * close proxy after WebSocket handshake failure ([#675](https://github.com/openai/openai-ruby/issues/675)) ([aeb4cf2](https://github.com/openai/openai-ruby/commit/aeb4cf2120d6eb7f204206dd5364951ad0495103)), closes [#669](https://github.com/openai/openai-ruby/issues/669)
24
+ * coerce Integer strings as decimal ([#667](https://github.com/openai/openai-ruby/issues/667)) ([82f8c62](https://github.com/openai/openai-ruby/commit/82f8c62f0a68236757d57cfe3fd4a501f41270f5))
25
+ * correct Responses stream RBS contract ([#654](https://github.com/openai/openai-ruby/issues/654)) ([0d32ba4](https://github.com/openai/openai-ruby/commit/0d32ba4c555c3ea2763dade0db6618e86de84f96))
26
+ * correct Responses text enumerator Sorbet type ([#637](https://github.com/openai/openai-ruby/issues/637)) ([49ccb69](https://github.com/openai/openai-ruby/commit/49ccb69cbe4fd0a738bbc03840b7bb117bb183f6))
27
+ * declare built-in workload identity providers ([#659](https://github.com/openai/openai-ruby/issues/659)) ([cfbbb98](https://github.com/openai/openai-ruby/commit/cfbbb98f2a87340442c9b8ccd267cd54dbd31fbc))
28
+ * declare Chat stream finish exception types ([#657](https://github.com/openai/openai-ruby/issues/657)) ([87fc522](https://github.com/openai/openai-ruby/commit/87fc522b00f51b1020f64bdcaa4e56573f43ab6a))
29
+ * declare webhook signature error types ([#642](https://github.com/openai/openai-ruby/issues/642)) ([5211472](https://github.com/openai/openai-ruby/commit/52114726f0bd8780f013e95cade266e3f95677c6))
30
+ * declare workload identity error types ([#658](https://github.com/openai/openai-ruby/issues/658)) ([e6afdeb](https://github.com/openai/openai-ruby/commit/e6afdeb10815f3b3cd5a3224abd5d55a3f2b1377))
31
+ * deserialize diarized transcriptions correctly ([#652](https://github.com/openai/openai-ruby/issues/652)) ([5be26ce](https://github.com/openai/openai-ruby/commit/5be26ce71fa5855e668068075215c454ec7eeab8))
32
+ * handle non-object OAuth error bodies ([#674](https://github.com/openai/openai-ruby/issues/674)) ([13aa3d6](https://github.com/openai/openai-ruby/commit/13aa3d65ee84d242407d8ad912b0f26e4c945fe8))
33
+ * handle quoted response charsets ([#613](https://github.com/openai/openai-ruby/issues/613)) ([91d0e86](https://github.com/openai/openai-ruby/commit/91d0e86ed995f54361b329d7641af9f20163f27d)), closes [#610](https://github.com/openai/openai-ruby/issues/610)
34
+ * honor custom idempotency headers for retries ([#673](https://github.com/openai/openai-ruby/issues/673)) ([5bd703a](https://github.com/openai/openai-ruby/commit/5bd703acb8b270d0ae37ea1a846dfada5f88b9fc)), closes [#671](https://github.com/openai/openai-ruby/issues/671)
35
+ * honor raw StringIO request cursors ([#621](https://github.com/openai/openai-ruby/issues/621)) ([8e6abfd](https://github.com/openai/openai-ruby/commit/8e6abfd57a33ae7c7360f496f8baf15e1cf74db4))
36
+ * isolate base URL queries between requests ([#619](https://github.com/openai/openai-ruby/issues/619)) ([347e659](https://github.com/openai/openai-ruby/commit/347e659404bd7a13de57604e325c4432c875ee60))
37
+ * isolate structured output field metadata ([#655](https://github.com/openai/openai-ruby/issues/655)) ([7f3cec8](https://github.com/openai/openai-ruby/commit/7f3cec8663175c9ac1be12368bcf1c3717ca2466))
38
+ * keep Realtime metadata out of nested payloads ([#653](https://github.com/openai/openai-ruby/issues/653)) ([d1fa0d3](https://github.com/openai/openai-ruby/commit/d1fa0d3026a47cd16c4c2dcd8d68e8d1ecb854db))
39
+ * match response charset parameters case-insensitively ([#629](https://github.com/openai/openai-ruby/issues/629)) ([821d9b3](https://github.com/openai/openai-ruby/commit/821d9b3f018040a3a946f714e120f009541c9743))
40
+ * match the multipart request content type case-insensitively ([#666](https://github.com/openai/openai-ruby/issues/666)) ([55ae013](https://github.com/openai/openai-ruby/commit/55ae0137740f05f30173e3dc73d546a500b29d2a))
41
+ * normalize Bedrock environment bearer tokens ([#601](https://github.com/openai/openai-ruby/issues/601)) ([131e977](https://github.com/openai/openai-ruby/commit/131e97745f0cca1b167a533b852141ceed480c96))
42
+ * normalize workload identity error headers ([#640](https://github.com/openai/openai-ruby/issues/640)) ([1cf3762](https://github.com/openai/openai-ruby/commit/1cf37629ab61b2cc9259dff52c143b08ebe6b70a))
43
+ * parse initial streamed tool arguments ([#593](https://github.com/openai/openai-ruby/issues/593)) ([f4e2ec9](https://github.com/openai/openai-ruby/commit/f4e2ec9069d0781e376447f9f840082f00e07b81))
44
+ * parse SSE field lines that carry no value ([#631](https://github.com/openai/openai-ruby/issues/631)) ([9109f3f](https://github.com/openai/openai-ruby/commit/9109f3f79f6db401e400ca8e4cac8586a9332760))
45
+ * parse SSE retry metadata as decimal ([#624](https://github.com/openai/openai-ruby/issues/624)) ([9135d15](https://github.com/openai/openai-ruby/commit/9135d15c272b9e6102f41dc5d0fa64ac1a5fc2ec))
46
+ * parse strict tools in later chat choices ([#633](https://github.com/openai/openai-ruby/issues/633)) ([b68ce90](https://github.com/openai/openai-ruby/commit/b68ce906106cdaa165cbb6ebdd5ec34b2cc7ba2b))
47
+ * populate nested API error metadata ([#639](https://github.com/openai/openai-ruby/issues/639)) ([8dba07c](https://github.com/openai/openai-ruby/commit/8dba07cda53195755ffbf15634c516e51701ba5a))
48
+ * preserve bare CR SSE line boundaries ([#676](https://github.com/openai/openai-ruby/issues/676)) ([98c5a53](https://github.com/openai/openai-ruby/commit/98c5a5333f5d82f25ec12e7b5a9f65ea78716a12)), closes [#670](https://github.com/openai/openai-ruby/issues/670)
49
+ * preserve chat stream moderation results ([#616](https://github.com/openai/openai-ruby/issues/616)) ([c2c729c](https://github.com/openai/openai-ruby/commit/c2c729ce407a526a91d5f1c0607ee190956e414d))
50
+ * preserve complete interleaved tool arguments ([#638](https://github.com/openai/openai-ruby/issues/638)) ([1f32200](https://github.com/openai/openai-ruby/commit/1f322009ccc529d03048fc1d4bee96401c58ee35))
51
+ * preserve documented file inputs on readback ([#662](https://github.com/openai/openai-ruby/issues/662)) ([0169713](https://github.com/openai/openai-ruby/commit/016971345676ade41c57fcee11b60f3adcefe652))
52
+ * preserve file semantics for pathless multipart IO ([#665](https://github.com/openai/openai-ruby/issues/665)) ([0fefbf6](https://github.com/openai/openai-ruby/commit/0fefbf68a804bdd080dfef9defe0ce45e18eaa6b))
53
+ * preserve hash-form type metadata ([#651](https://github.com/openai/openai-ruby/issues/651)) ([8de6a0f](https://github.com/openai/openai-ruby/commit/8de6a0fc26ba8649d6621689ce5c342799c0a786))
54
+ * preserve text logprobs in response streams ([#595](https://github.com/openai/openai-ruby/issues/595)) ([e8e2f39](https://github.com/openai/openai-ruby/commit/e8e2f392f6bd20d8b9ca84d8141b73be0e6b33d9))
55
+ * preserve unknown discriminated union values ([#645](https://github.com/openai/openai-ruby/issues/645)) ([1384aa0](https://github.com/openai/openai-ruby/commit/1384aa017af5fa98a515753e1d4a9ba0bac82d63))
56
+ * preserve UTF-8 SSE stream boundaries ([#623](https://github.com/openai/openai-ruby/issues/623)) ([6b9ee87](https://github.com/openai/openai-ruby/commit/6b9ee8729c3ac429cc93716e8b51bce603de3405))
57
+ * rank tied union variants by declaration order ([#628](https://github.com/openai/openai-ruby/issues/628)) ([5ae6f43](https://github.com/openai/openai-ruby/commit/5ae6f43f4260a1a68984afc649bdc44e68526324))
58
+ * redact malformed streamed JSON errors ([#643](https://github.com/openai/openai-ruby/issues/643)) ([5ab02f6](https://github.com/openai/openai-ruby/commit/5ab02f65fdcecdd007a48e7bde8679ce240c1a1c))
59
+ * respect StringIO cursor in FilePart serialization ([#592](https://github.com/openai/openai-ruby/issues/592)) ([4115a1e](https://github.com/openai/openai-ruby/commit/4115a1e03a3111cbc80be20eb902df81567b3c76))
60
+ * **responses:** expose stream resumption parameters ([#646](https://github.com/openai/openai-ruby/issues/646)) ([d93852f](https://github.com/openai/openai-ruby/commit/d93852f16db7307e3b0da1396b4d06ad4f74cfc2))
61
+ * restore conflict-free exported RBIs for Tapioca ([#679](https://github.com/openai/openai-ruby/issues/679)) ([c80a253](https://github.com/openai/openai-ruby/commit/c80a25396afbf143e68c4b11a8552ebbbb6bfc3b))
62
+ * retry only proven unsent requests ([#663](https://github.com/openai/openai-ruby/issues/663)) ([a63eda8](https://github.com/openai/openai-ruby/commit/a63eda8203aa023ef3a6917c18a2be80cb66e406))
63
+ * stream container file uploads as multipart ([#648](https://github.com/openai/openai-ruby/issues/648)) ([b3c523b](https://github.com/openai/openai-ruby/commit/b3c523b2566a6b760d0a1a952682bf6ca9a866d0))
64
+ * strip upload filenames without platform path rules ([#627](https://github.com/openai/openai-ruby/issues/627)) ([5f00613](https://github.com/openai/openai-ruby/commit/5f006135268ae38b81024f8c28de939c53598c90))
65
+ * suppress Responses WebSocket exception causes ([#644](https://github.com/openai/openai-ruby/issues/644)) ([1b16a83](https://github.com/openai/openai-ruby/commit/1b16a832d74df6742b256545a24915424deaa7dd))
66
+ * type chat completion streams for Sorbet ([#634](https://github.com/openai/openai-ruby/issues/634)) ([cca6a70](https://github.com/openai/openai-ruby/commit/cca6a7035e680fd85ea40bd728937e9c957bd81a))
67
+ * upload pathless IO streams instead of raising ([#630](https://github.com/openai/openai-ruby/issues/630)) ([950552f](https://github.com/openai/openai-ruby/commit/950552f470951ddf01bd1f55a1569b012b6b4fd0))
68
+
69
+
70
+ ### Chores
71
+
72
+ * **api:** document throttling and model overload responses — SDK-235 ([#632](https://github.com/openai/openai-ruby/issues/632)) ([2b0483d](https://github.com/openai/openai-ruby/commit/2b0483d394289aa18b792bd7a5440977d8b7a7a1))
73
+ * **api:** Refresh SDK metadata ([#612](https://github.com/openai/openai-ruby/issues/612)) ([e93a4b5](https://github.com/openai/openai-ruby/commit/e93a4b54f9b64609b96c553ac7864d94dacc6cf1))
74
+ * **deps-dev:** bump the development-dependencies group with 7 updates ([#668](https://github.com/openai/openai-ruby/issues/668)) ([d9a2271](https://github.com/openai/openai-ruby/commit/d9a2271531acea12bc3b46293bb90159d3975d59))
75
+ * migrate to forked steady ([#605](https://github.com/openai/openai-ruby/issues/605)) ([5542f01](https://github.com/openai/openai-ruby/commit/5542f01a8395bc9349eae479396ba5158692385f))
76
+
77
+
78
+ ### Documentation
79
+
80
+ * clarify dormant compatibility-check boundary ([#647](https://github.com/openai/openai-ruby/issues/647)) ([d6fa81c](https://github.com/openai/openai-ruby/commit/d6fa81ca012db991be4438f6f1b605a0ce12aa8e))
81
+ * clarify Realtime transcription event boundary ([#649](https://github.com/openai/openai-ruby/issues/649)) ([94a1d77](https://github.com/openai/openai-ruby/commit/94a1d77a23c990308d6262f3ce668af6206361f4))
82
+
3
83
  ## [0.85.0](https://github.com/openai/openai-ruby/compare/v0.84.0...v0.85.0) (2026-09-03)
4
84
 
5
85
 
data/README.md CHANGED
@@ -15,7 +15,7 @@ To use this gem, install via Bundler by adding the following to your application
15
15
  <!-- x-release-please-start-version -->
16
16
 
17
17
  ```ruby
18
- gem "openai", "~> 0.85.0"
18
+ gem "openai", "~> 0.86.0"
19
19
  ```
20
20
 
21
21
  <!-- x-release-please-end -->
@@ -81,6 +81,37 @@ sideband connection. See the [Realtime WebSocket guide](realtime.md) and the run
81
81
  [text, transcription, voice, and sideband examples](examples/realtime/README.md)
82
82
  for lifecycle, authentication, proxy, TLS, and custom transport details.
83
83
 
84
+ ### Responses WebSockets
85
+
86
+ The Responses API also supports a persistent, block-scoped WebSocket for
87
+ sequential and multiplexed response creation. Add the optional
88
+ `async-websocket` gem, then send `response.create` events through
89
+ `client.responses.connect`:
90
+
91
+ ```ruby
92
+ client.responses.connect do |connection|
93
+ connection.response.create(
94
+ model: "gpt-5.2",
95
+ input: "Say hello.",
96
+ stream_id: "turn_1"
97
+ )
98
+
99
+ connection.each do |event|
100
+ print(event.delta) if event.type == :"response.output_text.delta"
101
+ break if event.type == :"response.completed"
102
+ end
103
+ end
104
+ ```
105
+
106
+ The connection is intentionally single-owner: callers serialize writes and
107
+ use one reader (`receive` or `each`). The SDK forwards response fields and
108
+ `stream_id` values without imposing additional client-side policy. Known
109
+ server events are decoded into generated models on a best-effort basis, while
110
+ newer event types remain observable as `UnknownServerEvent` values. The SDK
111
+ does not automatically reconnect or replay an ambiguous write. When the server
112
+ closes a connection, open a new connection and continue with
113
+ `previous_response_id` when the response was stored.
114
+
84
115
  ### Pagination
85
116
 
86
117
  List methods in the OpenAI API are paginated.
@@ -213,7 +244,11 @@ The custom HTTP client owns connection pooling and lifecycle, must enforce
213
244
  `request.timeout`, and should raise `OpenAI::Errors::APIConnectionError` or
214
245
  `OpenAI::Errors::APITimeoutError` for retryable transport failures. Other
215
246
  exceptions propagate without an SDK retry. The SDK does not close an injected
216
- HTTP client.
247
+ HTTP client. Connection failures are treated as potentially post-send by
248
+ default, so non-idempotent requests are not retried automatically. When a
249
+ transport can prove that no request bytes were sent, it may raise either error
250
+ with `request_may_have_been_sent: false` to allow the SDK retry policy to
251
+ retry a replayable request safely.
217
252
 
218
253
  The default `OpenAI::NetHTTPClient` implements this contract with pooled
219
254
  `Net::HTTP` connections. It accepts an optional block for native connection
@@ -395,6 +430,10 @@ For secure, automated environments like cloud-managed Kubernetes, Azure, and GCP
395
430
 
396
431
  `client_id` remains available as an optional parameter for token exchange setups that require an explicit OAuth client ID.
397
432
 
433
+ If `OPENAI_API_KEY` is already set in your environment, pass `api_key: nil`
434
+ to explicitly opt out of that ambient API key when constructing a workload
435
+ identity client.
436
+
398
437
  ### X.509 Workload Identity (Preview)
399
438
 
400
439
  Organizations enrolled in the X.509 workload identity preview can exchange a
@@ -503,6 +542,7 @@ workload_identity = OpenAI::Auth::WorkloadIdentity.new(
503
542
  )
504
543
 
505
544
  client = OpenAI::Client.new(
545
+ api_key: nil,
506
546
  workload_identity: workload_identity,
507
547
  )
508
548
 
@@ -524,6 +564,7 @@ workload_identity = OpenAI::Auth::WorkloadIdentity.new(
524
564
  )
525
565
 
526
566
  client = OpenAI::Client.new(
567
+ api_key: nil,
527
568
  workload_identity: workload_identity,
528
569
  )
529
570
  ```
@@ -540,6 +581,7 @@ workload_identity = OpenAI::Auth::WorkloadIdentity.new(
540
581
  )
541
582
 
542
583
  client = OpenAI::Client.new(
584
+ api_key: nil,
543
585
  workload_identity: workload_identity,
544
586
  )
545
587
  ```
@@ -570,6 +612,7 @@ workload_identity = OpenAI::Auth::WorkloadIdentity.new(
570
612
  )
571
613
 
572
614
  client = OpenAI::Client.new(
615
+ api_key: nil,
573
616
  workload_identity: workload_identity,
574
617
  organization: ENV["OPENAI_ORG_ID"],
575
618
  project: ENV["OPENAI_PROJECT_ID"]
@@ -605,9 +648,9 @@ post '/webhook' do
605
648
  event = client.webhooks.unwrap(request_body, request.env)
606
649
 
607
650
  case event.type
608
- when 'response.completed'
651
+ when :'response.completed'
609
652
  puts "Response completed: #{event.data}"
610
- when 'response.failed'
653
+ when :'response.failed'
611
654
  puts "Response failed: #{event.data}"
612
655
  else
613
656
  puts "Unhandled event type: #{event.type}"
@@ -711,6 +754,27 @@ response
711
754
  end
712
755
  ```
713
756
 
757
+ For a stored or background response, pass the same structured-output model again
758
+ when retrieving it. The model is used locally to populate `content.parsed`; it is
759
+ not sent as a retrieval query parameter. A response that is still queued or in
760
+ progress can be retrieved the same way, but structured output is parsed only after
761
+ a later retrieval reports it completed when status is present. Compatible
762
+ statusless responses parse once their hinted output is syntactically complete JSON.
763
+ For structured function tools, pass the same model again with
764
+ `tools: [ToolArguments]`; matching retrieved function calls expose typed arguments
765
+ through `output.parsed`.
766
+
767
+ ```ruby
768
+ pending = client.responses.create(
769
+ model: "gpt-5.2",
770
+ input: "Extract the event information.",
771
+ text: CalendarEvent,
772
+ background: true
773
+ )
774
+
775
+ response = client.responses.retrieve(pending.id, text: CalendarEvent)
776
+ ```
777
+
714
778
  </details>
715
779
 
716
780
  See the [examples](https://github.com/openai/openai-ruby/tree/main/examples) directory for more usage examples for helper usage.
@@ -915,8 +979,9 @@ a supplied logger are isolated and never replace an API result or API error.
915
979
  ### Response metadata and request IDs
916
980
 
917
981
  OpenAI recommends logging request IDs in production so requests can be traced
918
- during troubleshooting. Top-level models and pages returned by the client expose
919
- immutable HTTP response metadata through `last_response`:
982
+ during troubleshooting. Top-level models, pages, streams, and binary StringIO
983
+ values returned by the client expose immutable HTTP response metadata through
984
+ `last_response`:
920
985
 
921
986
  ```ruby
922
987
  response = openai.responses.create(model: "gpt-5.2", input: "Say 'this is a test'.")
@@ -924,6 +989,10 @@ puts(response.last_response.status) # 200
924
989
  puts(response.last_response.headers["x-request-id"]) # req_123
925
990
  puts(response.last_response.request_id) # req_123
926
991
  puts(response._request_id) # req_123
992
+
993
+ audio = openai.audio.speech.create(input: "Hello!", model: "tts-1", voice: "alloy")
994
+ puts(audio.last_response.headers["x-request-id"]) # req_456
995
+ puts(audio._request_id) # req_456
927
996
  ```
928
997
 
929
998
  Header names and values are normalized to strings, header names are lowercase,
@@ -932,11 +1001,12 @@ HTTP response that opened the stream. Higher-level streaming helpers expose the
932
1001
  same metadata as their underlying stream; models assembled from stream events
933
1002
  do not.
934
1003
 
935
- `last_response` and `_request_id` are only populated on top-level typed models
936
- and pages returned by the client. They are `nil` on constructed or nested models
937
- and are not included in `to_h`, JSON, or YAML output. Endpoints returning raw
938
- primitives, binary data, or `nil` do not expose this metadata. Unlike other
939
- properties that begin with an underscore, `_request_id` is public.
1004
+ `last_response` and `_request_id` are only populated on top-level models,
1005
+ pages, streams, and direct binary `StringIO` responses returned by the client.
1006
+ They are `nil` on constructed or nested models, unavailable on primitive or
1007
+ union-backed plain-text fallbacks, and are not included in `to_h`, JSON, or
1008
+ YAML output. Endpoints returning `nil` have no object that can carry metadata.
1009
+ Unlike other properties that begin with an underscore, `_request_id` is public.
940
1010
 
941
1011
  For failed HTTP requests, catch `OpenAI::Errors::APIStatusError` and use
942
1012
  `request_id`:
@@ -957,7 +1027,15 @@ for more information.
957
1027
 
958
1028
  Certain errors will be automatically retried 2 times by default, with a short exponential backoff.
959
1029
 
960
- Connection errors (for example, due to a network connectivity problem), 408 Request Timeout, 409 Conflict, 429 Rate Limit, >=500 Internal errors, and timeouts will all be retried by default.
1030
+ Requests are automatically retried only when their bodies are replayable. For
1031
+ those requests, after transport execution begins, connection errors (for
1032
+ example, due to a network connectivity problem) and timeouts are retried by
1033
+ default only when the transport proves that no request bytes were sent, for
1034
+ idempotent HTTP methods, or for requests carrying a non-empty
1035
+ `Idempotency-Key` header. Failures before transport execution retain the
1036
+ configured retry behavior because no request has been dispatched.
1037
+ 408 Request Timeout, 409 Conflict, 429 Rate Limit, and >=500 Internal errors
1038
+ are retried by default regardless of the HTTP method.
961
1039
 
962
1040
  You can use the `max_retries` option to configure or disable this:
963
1041
 
@@ -1016,7 +1094,11 @@ openai.chat.completions.create(
1016
1094
 
1017
1095
  On timeout, `OpenAI::Errors::APITimeoutError` is raised.
1018
1096
 
1019
- Note that requests that time out are retried by default.
1097
+ After transport execution begins, requests with replayable bodies that time out
1098
+ are retried by default only when the transport proves that no request bytes
1099
+ were sent, for idempotent HTTP methods, or for requests carrying a non-empty
1100
+ `Idempotency-Key` header. Timeouts before transport execution retain the
1101
+ configured retry behavior.
1020
1102
 
1021
1103
  ## Advanced concepts
1022
1104
 
@@ -126,8 +126,21 @@ Important boundaries:
126
126
  - Authenticated Realtime handshakes are a transport boundary distinct from
127
127
  event parsing. Bearer credentials, caller-selected WebSocket destinations,
128
128
  TLS, proxy credentials, and traces must remain bound to their intended
129
- origin and diagnostic audience
130
- (`lib/openai/helpers/realtime/client_extension.rb:167-280`,
129
+ origin and diagnostic audience. Bearer credentials, including ephemeral
130
+ client secrets passed to client apps, authenticate the handshake before any
131
+ typed event is sent; post-handshake transcription `session.update` events
132
+ carry configuration rather than a client secret. The legacy generated
133
+ `TranscriptionSessionUpdatedEvent` model requires a `client_secret` even
134
+ though its own documentation says WebSocket updates omit it, but that model
135
+ is not in the helper's active server-event union: the parser treats its
136
+ `transcription_session.updated` discriminator as unknown, while current
137
+ transcription updates use `session.updated`
138
+ (`lib/openai/helpers/websocket/client_request.rb:89-113`,
139
+ `lib/openai/helpers/realtime/connection_resources.rb:25-31`,
140
+ `lib/openai/resources/realtime/client_secrets.rb:10-45`,
141
+ `lib/openai/models/realtime/transcription_session_updated_event.rb:13-49`,
142
+ `lib/openai/models/realtime/realtime_server_event.rb:192-199`,
143
+ `lib/openai/helpers/realtime/connection.rb:32-49`,
131
144
  `lib/openai/helpers/realtime/transports/async_websocket.rb:185-224`,
132
145
  `lib/openai/helpers/realtime/transports/async_websocket.rb:294-378`).
133
146
  - Multipart upload serialization is a file-path and header-integrity boundary.
@@ -206,6 +219,19 @@ PR CI. A contributor who can modify those tracked files does not gain a new
206
219
  privilege merely because CI executes them. Do not report that execution alone
207
220
  as a security finding.
208
221
 
222
+ Dormant developer helpers are not security controls merely because their names
223
+ suggest compatibility or safety verification. At this revision,
224
+ `scripts/detect-breaking-changes` is not invoked by any tracked workflow or
225
+ tracked required job; when a contributor explicitly runs it, it replaces
226
+ selected tests with historical versions and invokes lint rather than runtime
227
+ assertions.
228
+ That can affect contributor confidence or release-quality review, but without a
229
+ privileged workflow invocation or an independent lower-trust path to a sensitive
230
+ sink, it is not a repository security boundary. Reassess this classification if
231
+ the helper becomes a required or privileged workflow control; otherwise treat
232
+ ordinary compatibility regressions as product/release-quality issues unless they
233
+ independently violate a runtime security invariant.
234
+
209
235
  That rule does not suppress a real finding when independently mutable
210
236
  lower-trust input crosses a parser/evaluator boundary, untrusted runtime/API/
211
237
  network data reaches a sensitive sink, candidate code can reach sensitive
@@ -355,7 +355,7 @@ module OpenAI
355
355
  OpenAI::Errors::OAuthError.new(
356
356
  status: response.code.to_i,
357
357
  body: body,
358
- headers: response.to_hash
358
+ headers: response.each_header.to_h
359
359
  )
360
360
  )
361
361
  in Net::HTTPSuccess
@@ -368,7 +368,7 @@ module OpenAI
368
368
  OpenAI::Errors::APIError.new(
369
369
  url: @token_exchange_url,
370
370
  status: response.code.to_i,
371
- headers: response.to_hash,
371
+ headers: response.each_header.to_h,
372
372
  body: body,
373
373
  message: "Token exchange failed with status #{response.code}"
374
374
  )
@@ -74,7 +74,13 @@ module OpenAI
74
74
 
75
75
  raise_error(response, body)
76
76
  rescue OpenAI::Errors::APIConnectionError => error
77
- raise error.class.new(url: URI(TOKEN_URL)), cause: nil
77
+ raise(
78
+ error.class.new(
79
+ url: URI(TOKEN_URL),
80
+ request_may_have_been_sent: error.request_may_have_been_sent?
81
+ ),
82
+ cause: nil
83
+ )
78
84
  end
79
85
 
80
86
  private def remaining_timeout(deadline)
@@ -116,21 +116,39 @@ module OpenAI
116
116
  native_response
117
117
 
118
118
  rescue OpenAI::Errors::APIConnectionError => error
119
- raise error.class.new(url: sanitized_url(url)), cause: nil
119
+ raise(
120
+ error.class.new(
121
+ url: sanitized_url(url),
122
+ request_may_have_been_sent: error.request_may_have_been_sent?
123
+ ),
124
+ cause: nil
125
+ )
120
126
  end
121
127
 
122
128
  stream = Enumerator.new do |chunks|
123
129
  response.body.each { |chunk| chunks << chunk }
124
130
 
125
131
  rescue OpenAI::Errors::APIConnectionError => error
126
- raise error.class.new(url: sanitized_url(url)), cause: nil
132
+ raise(
133
+ error.class.new(
134
+ url: sanitized_url(url),
135
+ request_may_have_been_sent: error.request_may_have_been_sent?
136
+ ),
137
+ cause: nil
138
+ )
127
139
  end
128
140
 
129
141
  body = OpenAI::Internal::Util.fused_enum(stream) do
130
142
  OpenAI::Internal::Util.close_fused!(response.body)
131
143
 
132
144
  rescue OpenAI::Errors::APIConnectionError => error
133
- raise error.class.new(url: sanitized_url(url)), cause: nil
145
+ raise(
146
+ error.class.new(
147
+ url: sanitized_url(url),
148
+ request_may_have_been_sent: error.request_may_have_been_sent?
149
+ ),
150
+ cause: nil
151
+ )
134
152
  end
135
153
 
136
154
  OpenAI::HTTPClient::Response.new(status: response.status, headers: response.headers, body: body)
data/lib/openai/client.rb CHANGED
@@ -399,14 +399,16 @@ module OpenAI
399
399
  rescue OpenAI::Errors::APIError => error
400
400
  status = error.status
401
401
  connection_failure = error.is_a?(OpenAI::Errors::APIConnectionError)
402
- retryable_status = connection_failure ||
402
+ retryable_connection_failure = connection_failure &&
403
+ false.equal?(error.request_may_have_been_sent?)
404
+ retryable_status = retryable_connection_failure ||
403
405
  [408, 409, 429].include?(status) ||
404
406
  (status.is_a?(Integer) && (500..599).cover?(status))
405
407
  consumed_retries = attempts + previous_issuer_retries + retry_count
406
408
  unless x509_transport?(@requester) &&
407
409
  retryable_status &&
408
410
  consumed_retries < request.fetch(:x509_request_context).fetch(:auth_max_retries) &&
409
- (connection_failure || self.class.should_retry?(status, headers: error.headers || {}))
411
+ (retryable_connection_failure || self.class.should_retry?(status, headers: error.headers || {}))
410
412
  raise
411
413
  end
412
414
 
data/lib/openai/errors.rb CHANGED
@@ -141,6 +141,15 @@ module OpenAI
141
141
  #
142
142
  # @return [nil]
143
143
 
144
+ # Whether request bytes might have reached the peer before the transport
145
+ # failed. HTTP clients should only set this to `false` when they can
146
+ # prove that no request bytes were sent.
147
+ #
148
+ # @api private
149
+ #
150
+ # @return [Boolean]
151
+ def request_may_have_been_sent? = @request_may_have_been_sent
152
+
144
153
  # @api private
145
154
  #
146
155
  # @param url [URI::Generic]
@@ -150,6 +159,7 @@ module OpenAI
150
159
  # @param request [nil]
151
160
  # @param response [nil]
152
161
  # @param message [String, nil]
162
+ # @param request_may_have_been_sent [Boolean]
153
163
  def initialize(
154
164
  url:,
155
165
  status: nil,
@@ -157,9 +167,11 @@ module OpenAI
157
167
  body: nil,
158
168
  request: nil,
159
169
  response: nil,
160
- message: "Connection error."
170
+ message: "Connection error.",
171
+ request_may_have_been_sent: true
161
172
  )
162
- super
173
+ @request_may_have_been_sent = request_may_have_been_sent
174
+ super(url:, status:, headers:, body:, request:, response:, message:)
163
175
  end
164
176
  end
165
177
 
@@ -173,6 +185,7 @@ module OpenAI
173
185
  # @param request [nil]
174
186
  # @param response [nil]
175
187
  # @param message [String, nil]
188
+ # @param request_may_have_been_sent [Boolean]
176
189
  def initialize(
177
190
  url:,
178
191
  status: nil,
@@ -180,7 +193,8 @@ module OpenAI
180
193
  body: nil,
181
194
  request: nil,
182
195
  response: nil,
183
- message: "Request timed out."
196
+ message: "Request timed out.",
197
+ request_may_have_been_sent: true
184
198
  )
185
199
  super
186
200
  end
@@ -264,9 +278,9 @@ module OpenAI
264
278
  safe_status_message(url: url, status: status, body: body)
265
279
  end
266
280
 
267
- @code = OpenAI::Internal::Type::Converter.coerce(String, OpenAI::Internal::Util.dig(body, :code))
268
- @param = OpenAI::Internal::Type::Converter.coerce(String, OpenAI::Internal::Util.dig(body, :param))
269
- @type = OpenAI::Internal::Type::Converter.coerce(String, OpenAI::Internal::Util.dig(body, :type))
281
+ @code = OpenAI::Internal::Type::Converter.coerce(String, error_metadata(body, :code))
282
+ @param = OpenAI::Internal::Type::Converter.coerce(String, error_metadata(body, :param))
283
+ @type = OpenAI::Internal::Type::Converter.coerce(String, error_metadata(body, :type))
270
284
  super(
271
285
  url: url,
272
286
  status: status,
@@ -278,6 +292,10 @@ module OpenAI
278
292
  )
279
293
  end
280
294
 
295
+ private def error_metadata(body, key)
296
+ OpenAI::Internal::Util.dig(body, key) { OpenAI::Internal::Util.dig(body, [:error, key]) }
297
+ end
298
+
281
299
  private def safe_status_message(url:, status:, body:)
282
300
  sensitive_description = %r{
283
301
  https?:// |
@@ -536,10 +554,11 @@ module OpenAI
536
554
  attr_reader :error_code
537
555
 
538
556
  def initialize(status:, body:, headers:)
539
- @error_code = OpenAI::Internal::Type::Converter.coerce(OpenAI::Models::OAuthErrorCode, body&.dig(:error))
557
+ error = OpenAI::Internal::Util.dig(body, :error)
558
+ @error_code = OpenAI::Internal::Type::Converter.coerce(OpenAI::Models::OAuthErrorCode, error)
540
559
 
541
- message = if body&.dig(:error_description)
542
- body[:error_description]
560
+ message = if (error_description = OpenAI::Internal::Util.dig(body, :error_description))
561
+ error_description
543
562
  elsif @error_code
544
563
  @error_code
545
564
  else
@@ -30,6 +30,14 @@ module OpenAI
30
30
  }nx
31
31
  private_constant :MEDIA_TYPE
32
32
 
33
+ # Directory separators recognized on any host, so an upload name is stripped
34
+ # the same way everywhere.
35
+ #
36
+ # @api private
37
+ # @type [Regexp]
38
+ SEPARATORS = %r{[/\\]}
39
+ private_constant :SEPARATORS
40
+
33
41
  # Validate an effective media type before it is written to multipart headers.
34
42
  #
35
43
  # @api private
@@ -85,7 +93,7 @@ module OpenAI
85
93
  in Pathname
86
94
  content.read(binmode: true)
87
95
  in StringIO
88
- content.string
96
+ content.string.byteslice(content.pos..) || ""
89
97
  in IO
90
98
  content.read
91
99
  in String
@@ -112,7 +120,7 @@ module OpenAI
112
120
  @content_type = content_type
113
121
  @filename = case [filename, (@content = content)]
114
122
  in [String | Pathname, _]
115
- ::File.basename(filename)
123
+ strip_directories(filename)
116
124
  in [nil, Pathname]
117
125
  content.basename.to_path
118
126
  in [nil, IO]
@@ -121,5 +129,30 @@ module OpenAI
121
129
  filename
122
130
  end
123
131
  end
132
+
133
+ # Strip directory components from a caller-supplied upload name.
134
+ #
135
+ # `::File.basename` applies the host platform's path rules, so on Windows it
136
+ # also truncates at a drive separator: the remote name `"report: final.md"`
137
+ # becomes `"report"`. This name is sent to the API rather than resolved
138
+ # locally, so drop separators directly and keep every other character, no
139
+ # matter which platform the SDK runs on.
140
+ #
141
+ # @api private
142
+ #
143
+ # @param filename [Pathname, String]
144
+ #
145
+ # @return [String]
146
+ private def strip_directories(filename)
147
+ name = filename.to_s
148
+ binary_name = name.b
149
+ raise ArgumentError, "path name contains null byte" if binary_name.include?("\0")
150
+
151
+ searchable_name = name.scrub { |bytes| "?" * bytes.bytesize }
152
+ basename = searchable_name.split(SEPARATORS).last
153
+ return name.byteslice(0, name.empty? ? 0 : 1) if basename.nil?
154
+
155
+ name.byteslice(searchable_name.byterindex(basename), basename.bytesize)
156
+ end
124
157
  end
125
158
  end