openai 0.83.0 → 0.85.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 (293) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +59 -0
  3. data/README.md +1 -1
  4. data/SECURITY.md +10 -0
  5. data/docs/architecture/security-model.md +267 -0
  6. data/lib/openai/auth/workload_identity_auth.rb +17 -2
  7. data/lib/openai/client.rb +24 -6
  8. data/lib/openai/errors.rb +1 -1
  9. data/lib/openai/helpers/streaming/chat_completion_stream.rb +18 -10
  10. data/lib/openai/helpers/streaming/response_events.rb +2 -2
  11. data/lib/openai/helpers/streaming/response_stream.rb +80 -44
  12. data/lib/openai/helpers/structured_output/array_of.rb +2 -2
  13. data/lib/openai/helpers/structured_output/base_model.rb +19 -5
  14. data/lib/openai/helpers/structured_output/chat_completion_parser.rb +12 -3
  15. data/lib/openai/helpers/structured_output/json_schema_converter.rb +34 -11
  16. data/lib/openai/helpers/structured_output/response_parser.rb +1 -1
  17. data/lib/openai/internal/type/base_model.rb +2 -2
  18. data/lib/openai/internal/type/converter.rb +1 -1
  19. data/lib/openai/internal/util.rb +2 -2
  20. data/lib/openai/internal/vector_store_file_uploader.rb +1 -1
  21. data/lib/openai/models/admin/organization/usage_costs_params.rb +10 -1
  22. data/lib/openai/models/batch.rb +4 -4
  23. data/lib/openai/models/beta/beta_custom_tool.rb +13 -1
  24. data/lib/openai/models/beta/beta_function_tool.rb +8 -1
  25. data/lib/openai/models/beta/beta_namespace_tool.rb +10 -1
  26. data/lib/openai/models/beta/beta_response.rb +26 -18
  27. data/lib/openai/models/beta/beta_response_configuration_update_item.rb +103 -0
  28. data/lib/openai/models/beta/beta_response_configuration_update_item_param.rb +104 -0
  29. data/lib/openai/models/beta/beta_response_custom_tool_call.rb +9 -1
  30. data/lib/openai/models/beta/beta_response_custom_tool_call_item.rb +3 -1
  31. data/lib/openai/models/beta/beta_response_error.rb +96 -1
  32. data/lib/openai/models/beta/beta_response_function_tool_call.rb +9 -1
  33. data/lib/openai/models/beta/beta_response_function_tool_call_item.rb +3 -1
  34. data/lib/openai/models/beta/beta_response_incomplete_event.rb +4 -0
  35. data/lib/openai/models/beta/beta_response_inject_event.rb +2 -2
  36. data/lib/openai/models/beta/beta_response_inject_failed_event.rb +2 -2
  37. data/lib/openai/models/beta/beta_response_input_item.rb +6 -1
  38. data/lib/openai/models/beta/beta_response_item.rb +5 -1
  39. data/lib/openai/models/beta/beta_response_steer_accepted_event.rb +81 -0
  40. data/lib/openai/models/beta/beta_response_steer_error_code.rb +61 -0
  41. data/lib/openai/models/beta/beta_response_steer_event.rb +75 -0
  42. data/lib/openai/models/beta/beta_response_steer_failed_event.rb +151 -0
  43. data/lib/openai/models/beta/beta_response_steer_input.rb +360 -0
  44. data/lib/openai/models/beta/beta_response_steer_input_content.rb +28 -0
  45. data/lib/openai/models/beta/beta_response_steer_pending_event.rb +113 -0
  46. data/lib/openai/models/beta/beta_response_steer_pending_reason.rb +26 -0
  47. data/lib/openai/models/beta/beta_response_steer_required_input.rb +215 -0
  48. data/lib/openai/models/beta/beta_response_stream_event.rb +4 -0
  49. data/lib/openai/models/beta/beta_response_usage.rb +1 -12
  50. data/lib/openai/models/beta/beta_responses_client_event.rb +45 -16
  51. data/lib/openai/models/beta/beta_responses_server_event.rb +164 -2
  52. data/lib/openai/models/beta/response_compact_params.rb +13 -10
  53. data/lib/openai/models/beta/response_create_params.rb +14 -15
  54. data/lib/openai/models/beta/responses/beta_response_item_list.rb +2 -2
  55. data/lib/openai/models/beta/responses/input_token_count_params.rb +3 -3
  56. data/lib/openai/models/chat/completion_create_params.rb +8 -8
  57. data/lib/openai/models/chat_model.rb +1 -0
  58. data/lib/openai/models/completion_usage.rb +1 -12
  59. data/lib/openai/models/conversations/conversation_create_params.rb +2 -2
  60. data/lib/openai/models/conversations/conversation_item.rb +5 -1
  61. data/lib/openai/models/conversations/conversation_item_list.rb +2 -2
  62. data/lib/openai/models/conversations/item_create_params.rb +2 -2
  63. data/lib/openai/models/error_object.rb +90 -1
  64. data/lib/openai/models/eval_create_response.rb +1 -1
  65. data/lib/openai/models/eval_list_response.rb +1 -1
  66. data/lib/openai/models/eval_retrieve_response.rb +1 -1
  67. data/lib/openai/models/eval_update_response.rb +1 -1
  68. data/lib/openai/models/evals/create_eval_completions_run_data_source.rb +2 -2
  69. data/lib/openai/models/reasoning.rb +0 -2
  70. data/lib/openai/models/responses/custom_tool.rb +13 -1
  71. data/lib/openai/models/responses/function_tool.rb +8 -1
  72. data/lib/openai/models/responses/input_token_count_params.rb +3 -3
  73. data/lib/openai/models/responses/namespace_tool.rb +10 -1
  74. data/lib/openai/models/responses/response.rb +20 -13
  75. data/lib/openai/models/responses/response_compact_params.rb +13 -10
  76. data/lib/openai/models/responses/response_configuration_update_item.rb +56 -0
  77. data/lib/openai/models/responses/response_configuration_update_item_param.rb +57 -0
  78. data/lib/openai/models/responses/response_create_params.rb +8 -10
  79. data/lib/openai/models/responses/response_custom_tool_call.rb +9 -1
  80. data/lib/openai/models/responses/response_custom_tool_call_item.rb +3 -1
  81. data/lib/openai/models/responses/response_error.rb +96 -1
  82. data/lib/openai/models/responses/response_function_tool_call.rb +9 -1
  83. data/lib/openai/models/responses/response_function_tool_call_item.rb +3 -1
  84. data/lib/openai/models/responses/response_incomplete_event.rb +4 -0
  85. data/lib/openai/models/responses/response_input_item.rb +6 -1
  86. data/lib/openai/models/responses/response_item.rb +5 -1
  87. data/lib/openai/models/responses/response_item_list.rb +2 -2
  88. data/lib/openai/models/responses/response_steer_accepted_event.rb +79 -0
  89. data/lib/openai/models/responses/response_steer_error_code.rb +59 -0
  90. data/lib/openai/models/responses/response_steer_event.rb +73 -0
  91. data/lib/openai/models/responses/response_steer_failed_event.rb +149 -0
  92. data/lib/openai/models/responses/response_steer_input.rb +304 -0
  93. data/lib/openai/models/responses/response_steer_input_content.rb +26 -0
  94. data/lib/openai/models/responses/response_steer_pending_event.rb +111 -0
  95. data/lib/openai/models/responses/response_steer_pending_reason.rb +24 -0
  96. data/lib/openai/models/responses/response_steer_required_input.rb +213 -0
  97. data/lib/openai/models/responses/response_stream_event.rb +4 -0
  98. data/lib/openai/models/responses/response_usage.rb +1 -12
  99. data/lib/openai/models/responses/responses_client_event.rb +872 -771
  100. data/lib/openai/models/responses/responses_server_event.rb +162 -2
  101. data/lib/openai/models/safety/alert_retrieve_params.rb +24 -0
  102. data/lib/openai/models/safety/safety_alert.rb +96 -0
  103. data/lib/openai/models/video_create_error.rb +93 -1
  104. data/lib/openai/models/webhooks/safety_alert_created_webhook_event.rb +63 -0
  105. data/lib/openai/models/webhooks/safety_org_alert_created_webhook_event.rb +63 -0
  106. data/lib/openai/models/webhooks/unwrap_webhook_event.rb +7 -1
  107. data/lib/openai/models.rb +2 -0
  108. data/lib/openai/net_http_client.rb +1 -1
  109. data/lib/openai/providers/bedrock.rb +20 -12
  110. data/lib/openai/resources/admin/organization/usage.rb +3 -1
  111. data/lib/openai/resources/beta/responses/input_items.rb +1 -1
  112. data/lib/openai/resources/beta/responses/input_tokens.rb +1 -1
  113. data/lib/openai/resources/beta/responses.rb +8 -8
  114. data/lib/openai/resources/chat/completions.rb +2 -2
  115. data/lib/openai/resources/conversations/items.rb +3 -3
  116. data/lib/openai/resources/conversations.rb +1 -1
  117. data/lib/openai/resources/responses/input_items.rb +1 -1
  118. data/lib/openai/resources/responses/input_tokens.rb +1 -1
  119. data/lib/openai/resources/responses.rb +10 -9
  120. data/lib/openai/resources/safety/alerts.rb +37 -0
  121. data/lib/openai/resources/safety.rb +18 -0
  122. data/lib/openai/resources/webhooks.rb +1 -1
  123. data/lib/openai/version.rb +1 -1
  124. data/lib/openai.rb +29 -0
  125. data/rbi/openai/client.rbi +3 -0
  126. data/rbi/openai/errors.rbi +1 -1
  127. data/rbi/openai/helpers/streaming/events.rbi +2 -2
  128. data/rbi/openai/helpers/streaming/response_stream.rbi +3 -3
  129. data/rbi/openai/models/admin/organization/usage_costs_params.rbi +15 -0
  130. data/rbi/openai/models/batch.rbi +6 -6
  131. data/rbi/openai/models/beta/beta_custom_tool.rbi +15 -0
  132. data/rbi/openai/models/beta/beta_function_tool.rbi +11 -0
  133. data/rbi/openai/models/beta/beta_namespace_tool.rbi +15 -0
  134. data/rbi/openai/models/beta/beta_response.rbi +21 -18
  135. data/rbi/openai/models/beta/beta_response_configuration_update_item.rbi +200 -0
  136. data/rbi/openai/models/beta/beta_response_configuration_update_item_param.rbi +207 -0
  137. data/rbi/openai/models/beta/beta_response_custom_tool_call.rbi +13 -0
  138. data/rbi/openai/models/beta/beta_response_custom_tool_call_item.rbi +6 -0
  139. data/rbi/openai/models/beta/beta_response_error.rbi +161 -3
  140. data/rbi/openai/models/beta/beta_response_function_tool_call.rbi +13 -0
  141. data/rbi/openai/models/beta/beta_response_function_tool_call_item.rbi +6 -0
  142. data/rbi/openai/models/beta/beta_response_incomplete_event.rbi +4 -0
  143. data/rbi/openai/models/beta/beta_response_inject_event.rbi +3 -0
  144. data/rbi/openai/models/beta/beta_response_inject_failed_event.rbi +3 -0
  145. data/rbi/openai/models/beta/beta_response_input_item.rbi +1 -0
  146. data/rbi/openai/models/beta/beta_response_item.rbi +1 -0
  147. data/rbi/openai/models/beta/beta_response_steer_accepted_event.rbi +148 -0
  148. data/rbi/openai/models/beta/beta_response_steer_error_code.rbi +65 -0
  149. data/rbi/openai/models/beta/beta_response_steer_event.rbi +118 -0
  150. data/rbi/openai/models/beta/beta_response_steer_failed_event.rbi +267 -0
  151. data/rbi/openai/models/beta/beta_response_steer_input.rbi +602 -0
  152. data/rbi/openai/models/beta/beta_response_steer_input_content.rbi +31 -0
  153. data/rbi/openai/models/beta/beta_response_steer_pending_event.rbi +222 -0
  154. data/rbi/openai/models/beta/beta_response_steer_pending_reason.rbi +35 -0
  155. data/rbi/openai/models/beta/beta_response_steer_required_input.rbi +379 -0
  156. data/rbi/openai/models/beta/beta_response_usage.rbi +3 -13
  157. data/rbi/openai/models/beta/beta_responses_client_event.rbi +14 -15
  158. data/rbi/openai/models/beta/beta_responses_server_event.rbi +206 -3
  159. data/rbi/openai/models/beta/response_compact_params.rbi +10 -9
  160. data/rbi/openai/models/beta/response_create_params.rbi +10 -15
  161. data/rbi/openai/models/beta/responses/beta_response_item_list.rbi +1 -0
  162. data/rbi/openai/models/chat/completion_create_params.rbi +9 -9
  163. data/rbi/openai/models/chat_model.rbi +1 -0
  164. data/rbi/openai/models/completion_usage.rbi +0 -10
  165. data/rbi/openai/models/conversations/conversation_create_params.rbi +3 -0
  166. data/rbi/openai/models/conversations/conversation_item.rbi +1 -0
  167. data/rbi/openai/models/conversations/conversation_item_list.rbi +1 -0
  168. data/rbi/openai/models/conversations/item_create_params.rbi +3 -0
  169. data/rbi/openai/models/error_object.rbi +156 -3
  170. data/rbi/openai/models/eval_create_response.rbi +1 -1
  171. data/rbi/openai/models/eval_list_response.rbi +1 -1
  172. data/rbi/openai/models/eval_retrieve_response.rbi +1 -1
  173. data/rbi/openai/models/eval_update_response.rbi +1 -1
  174. data/rbi/openai/models/evals/create_eval_completions_run_data_source.rbi +2 -2
  175. data/rbi/openai/models/reasoning.rbi +0 -2
  176. data/rbi/openai/models/responses/custom_tool.rbi +15 -0
  177. data/rbi/openai/models/responses/function_tool.rbi +11 -0
  178. data/rbi/openai/models/responses/namespace_tool.rbi +15 -0
  179. data/rbi/openai/models/responses/response.rbi +17 -13
  180. data/rbi/openai/models/responses/response_compact_params.rbi +10 -9
  181. data/rbi/openai/models/responses/response_configuration_update_item.rbi +112 -0
  182. data/rbi/openai/models/responses/response_configuration_update_item_param.rbi +117 -0
  183. data/rbi/openai/models/responses/response_create_params.rbi +6 -10
  184. data/rbi/openai/models/responses/response_custom_tool_call.rbi +13 -0
  185. data/rbi/openai/models/responses/response_custom_tool_call_item.rbi +6 -0
  186. data/rbi/openai/models/responses/response_error.rbi +161 -3
  187. data/rbi/openai/models/responses/response_function_tool_call.rbi +13 -0
  188. data/rbi/openai/models/responses/response_function_tool_call_item.rbi +6 -0
  189. data/rbi/openai/models/responses/response_incomplete_event.rbi +4 -0
  190. data/rbi/openai/models/responses/response_input_item.rbi +1 -0
  191. data/rbi/openai/models/responses/response_item.rbi +1 -0
  192. data/rbi/openai/models/responses/response_item_list.rbi +1 -0
  193. data/rbi/openai/models/responses/response_steer_accepted_event.rbi +146 -0
  194. data/rbi/openai/models/responses/response_steer_error_code.rbi +63 -0
  195. data/rbi/openai/models/responses/response_steer_event.rbi +119 -0
  196. data/rbi/openai/models/responses/response_steer_failed_event.rbi +268 -0
  197. data/rbi/openai/models/responses/response_steer_input.rbi +474 -0
  198. data/rbi/openai/models/responses/response_steer_input_content.rbi +29 -0
  199. data/rbi/openai/models/responses/response_steer_pending_event.rbi +220 -0
  200. data/rbi/openai/models/responses/response_steer_pending_reason.rbi +33 -0
  201. data/rbi/openai/models/responses/response_steer_required_input.rbi +377 -0
  202. data/rbi/openai/models/responses/response_usage.rbi +3 -13
  203. data/rbi/openai/models/responses/responses_client_event.rbi +1205 -1041
  204. data/rbi/openai/models/responses/responses_server_event.rbi +202 -3
  205. data/rbi/openai/models/safety/alert_retrieve_params.rbi +55 -0
  206. data/rbi/openai/models/safety/safety_alert.rbi +147 -0
  207. data/rbi/openai/models/video_create_error.rbi +149 -3
  208. data/rbi/openai/models/webhooks/safety_alert_created_webhook_event.rbi +130 -0
  209. data/rbi/openai/models/webhooks/safety_org_alert_created_webhook_event.rbi +130 -0
  210. data/rbi/openai/models/webhooks/unwrap_webhook_event.rbi +3 -1
  211. data/rbi/openai/models.rbi +2 -0
  212. data/rbi/openai/resources/admin/organization/usage.rbi +4 -0
  213. data/rbi/openai/resources/beta/responses.rbi +7 -11
  214. data/rbi/openai/resources/chat/completions.rbi +6 -6
  215. data/rbi/openai/resources/conversations/items.rbi +1 -0
  216. data/rbi/openai/resources/conversations.rbi +1 -0
  217. data/rbi/openai/resources/responses.rbi +9 -13
  218. data/rbi/openai/resources/safety/alerts.rbi +30 -0
  219. data/rbi/openai/resources/safety.rbi +18 -0
  220. data/rbi/openai/resources/webhooks.rbi +3 -1
  221. data/sig/openai/client.rbs +2 -0
  222. data/sig/openai/errors.rbs +1 -1
  223. data/sig/openai/internal/transport/base_client.rbs +4 -19
  224. data/sig/openai/models/admin/organization/usage_costs_params.rbs +7 -0
  225. data/sig/openai/models/beta/beta_custom_tool.rbs +7 -0
  226. data/sig/openai/models/beta/beta_function_tool.rbs +7 -0
  227. data/sig/openai/models/beta/beta_namespace_tool.rbs +7 -0
  228. data/sig/openai/models/beta/beta_response.rbs +7 -2
  229. data/sig/openai/models/beta/beta_response_configuration_update_item.rbs +91 -0
  230. data/sig/openai/models/beta/beta_response_configuration_update_item_param.rbs +87 -0
  231. data/sig/openai/models/beta/beta_response_custom_tool_call.rbs +7 -0
  232. data/sig/openai/models/beta/beta_response_custom_tool_call_item.rbs +3 -0
  233. data/sig/openai/models/beta/beta_response_error.rbs +82 -3
  234. data/sig/openai/models/beta/beta_response_function_tool_call.rbs +7 -0
  235. data/sig/openai/models/beta/beta_response_function_tool_call_item.rbs +3 -0
  236. data/sig/openai/models/beta/beta_response_input_item.rbs +1 -0
  237. data/sig/openai/models/beta/beta_response_item.rbs +1 -0
  238. data/sig/openai/models/beta/beta_response_steer_accepted_event.rbs +53 -0
  239. data/sig/openai/models/beta/beta_response_steer_error_code.rbs +31 -0
  240. data/sig/openai/models/beta/beta_response_steer_event.rbs +34 -0
  241. data/sig/openai/models/beta/beta_response_steer_failed_event.rbs +102 -0
  242. data/sig/openai/models/beta/beta_response_steer_input.rbs +214 -0
  243. data/sig/openai/models/beta/beta_response_steer_input_content.rbs +18 -0
  244. data/sig/openai/models/beta/beta_response_steer_pending_event.rbs +63 -0
  245. data/sig/openai/models/beta/beta_response_steer_pending_reason.rbs +16 -0
  246. data/sig/openai/models/beta/beta_response_steer_required_input.rbs +161 -0
  247. data/sig/openai/models/beta/beta_response_usage.rbs +3 -8
  248. data/sig/openai/models/beta/beta_responses_client_event.rbs +4 -1
  249. data/sig/openai/models/beta/beta_responses_server_event.rbs +80 -3
  250. data/sig/openai/models/beta/response_compact_params.rbs +3 -1
  251. data/sig/openai/models/beta/response_create_params.rbs +3 -1
  252. data/sig/openai/models/chat_model.rbs +3 -1
  253. data/sig/openai/models/completion_usage.rbs +0 -5
  254. data/sig/openai/models/conversations/conversation_item.rbs +1 -0
  255. data/sig/openai/models/error_object.rbs +82 -3
  256. data/sig/openai/models/responses/custom_tool.rbs +7 -0
  257. data/sig/openai/models/responses/function_tool.rbs +7 -0
  258. data/sig/openai/models/responses/namespace_tool.rbs +7 -0
  259. data/sig/openai/models/responses/response.rbs +4 -1
  260. data/sig/openai/models/responses/response_compact_params.rbs +3 -1
  261. data/sig/openai/models/responses/response_configuration_update_item.rbs +46 -0
  262. data/sig/openai/models/responses/response_configuration_update_item_param.rbs +46 -0
  263. data/sig/openai/models/responses/response_custom_tool_call.rbs +7 -0
  264. data/sig/openai/models/responses/response_custom_tool_call_item.rbs +3 -0
  265. data/sig/openai/models/responses/response_error.rbs +79 -3
  266. data/sig/openai/models/responses/response_function_tool_call.rbs +7 -0
  267. data/sig/openai/models/responses/response_function_tool_call_item.rbs +3 -0
  268. data/sig/openai/models/responses/response_input_item.rbs +1 -0
  269. data/sig/openai/models/responses/response_item.rbs +1 -0
  270. data/sig/openai/models/responses/response_steer_accepted_event.rbs +51 -0
  271. data/sig/openai/models/responses/response_steer_error_code.rbs +29 -0
  272. data/sig/openai/models/responses/response_steer_event.rbs +32 -0
  273. data/sig/openai/models/responses/response_steer_failed_event.rbs +100 -0
  274. data/sig/openai/models/responses/response_steer_input.rbs +182 -0
  275. data/sig/openai/models/responses/response_steer_input_content.rbs +16 -0
  276. data/sig/openai/models/responses/response_steer_pending_event.rbs +61 -0
  277. data/sig/openai/models/responses/response_steer_pending_reason.rbs +13 -0
  278. data/sig/openai/models/responses/response_steer_required_input.rbs +159 -0
  279. data/sig/openai/models/responses/response_usage.rbs +3 -8
  280. data/sig/openai/models/responses/responses_client_event.rbs +355 -344
  281. data/sig/openai/models/responses/responses_server_event.rbs +80 -3
  282. data/sig/openai/models/safety/alert_retrieve_params.rbs +22 -0
  283. data/sig/openai/models/safety/safety_alert.rbs +81 -0
  284. data/sig/openai/models/video_create_error.rbs +87 -3
  285. data/sig/openai/models/webhooks/safety_alert_created_webhook_event.rbs +52 -0
  286. data/sig/openai/models/webhooks/safety_org_alert_created_webhook_event.rbs +52 -0
  287. data/sig/openai/models/webhooks/unwrap_webhook_event.rbs +2 -0
  288. data/sig/openai/models.rbs +2 -0
  289. data/sig/openai/resources/admin/organization/usage.rbs +1 -0
  290. data/sig/openai/resources/safety/alerts.rbs +14 -0
  291. data/sig/openai/resources/safety.rbs +9 -0
  292. data/sig/openai/resources/webhooks.rbs +3 -1
  293. metadata +86 -1
@@ -12,6 +12,46 @@ module OpenAI
12
12
  # Emitted when an error occurs while processing a Responses WebSocket request.
13
13
  variant :error, -> { OpenAI::Responses::ResponsesServerEvent::ResponseWsError }
14
14
 
15
+ # Emitted when steering input has been validated and queued. Acceptance means
16
+ # the server owns the input, not that it has been applied. The successor's
17
+ # `response.created` event is the commit point. If accepted input cannot be
18
+ # committed, `response.steer.failed` returns it with the same steering ID.
19
+ #
20
+ # When the response stops for client-owned tool output or approval, the input
21
+ # remains queued and `response.steer.pending` is emitted after
22
+ # `response.completed`. Fill the pending event's `required_input` stubs with
23
+ # saved results and send one matching explicit `response.create` per parent.
24
+ # Do not resend accepted input while it is still queued.
25
+ variant :"response.steer.accepted", -> { OpenAI::Responses::ResponseSteerAcceptedEvent }
26
+
27
+ # Emitted when accepted steering input remains queued after the target
28
+ # response completes. The server still owns the input. Do not resend it.
29
+ # The successor's `response.created` event is the commit point.
30
+ #
31
+ # When `reason` is `waiting_for_required_input`, this event follows
32
+ # `response.completed` while the response waits for the tool results or
33
+ # approval decisions identified by `required_input`. Copy those stubs, fill
34
+ # their result fields using the ordinary `response.create` input schemas,
35
+ # and submit one continuation per parent with the same `previous_response_id`
36
+ # and WebSocket lane. Use saved results without rerunning tools. The queued
37
+ # steering input is prepended in submission order to the continuation's
38
+ # input. That explicit request retains its own settings.
39
+ #
40
+ # This notification is emitted at most once per steering submission. Multiple
41
+ # submissions for the same parent can report the same required inputs; they
42
+ # do not each require a separate continuation.
43
+ variant :"response.steer.pending", -> { OpenAI::Responses::ResponseSteerPendingEvent }
44
+
45
+ # Emitted when steering input is rejected or cannot be committed to a
46
+ # successor response. Returns the original, uncommitted input so the client
47
+ # can carry it into `response.create` when appropriate. Invalid input must
48
+ # be corrected before retrying.
49
+ #
50
+ # Failures after acceptance include the same steering ID. Failures before an
51
+ # ID is allocated omit `steer.id`. A lost connection or missing acknowledgement
52
+ # leaves the outcome unknown; it is not proof that the input was rejected.
53
+ variant :"response.steer.failed", -> { OpenAI::Responses::ResponseSteerFailedEvent }
54
+
15
55
  # Emitted when there is a partial audio response.
16
56
  variant :"response.audio.delta", -> { OpenAI::Responses::ResponsesServerEvent::ResponseAudioWsDelta }
17
57
 
@@ -145,6 +185,10 @@ module OpenAI
145
185
  variant :"response.failed", -> { OpenAI::Responses::ResponsesServerEvent::ResponseWsFailed }
146
186
 
147
187
  # An event that is emitted when a response finishes as incomplete.
188
+ #
189
+ # Over WebSocket, steering can finish a response with
190
+ # `response.incomplete_details.reason` set to `steered`, followed automatically
191
+ # by a successor `response.created` that commits the queued steering input.
148
192
  variant :"response.incomplete", -> { OpenAI::Responses::ResponsesServerEvent::ResponseWsIncomplete }
149
193
 
150
194
  # Emitted when a new output item is added.
@@ -997,6 +1041,10 @@ module OpenAI
997
1041
  #
998
1042
  # An event that is emitted when a response finishes as incomplete.
999
1043
  #
1044
+ # Over WebSocket, steering can finish a response with
1045
+ # `response.incomplete_details.reason` set to `steered`, followed automatically by
1046
+ # a successor `response.created` that commits the queued steering input.
1047
+ #
1000
1048
  # @param response [OpenAI::Models::Responses::Response] The response that was incomplete.
1001
1049
  #
1002
1050
  # @param sequence_number [Integer] The sequence number of this event.
@@ -1967,7 +2015,15 @@ module OpenAI
1967
2015
  # @return [Hash{Symbol=>String}, nil]
1968
2016
  optional :headers, OpenAI::Internal::Type::HashOf[String]
1969
2017
 
1970
- # @!method initialize(code:, message:, param:, type:, headers: nil)
2018
+ # @!attribute misalignment
2019
+ #
2020
+ # @return [OpenAI::Models::Responses::ResponsesServerEvent::ResponseWsError::Error::Misalignment, nil]
2021
+ optional(
2022
+ :misalignment,
2023
+ -> { OpenAI::Responses::ResponsesServerEvent::ResponseWsError::Error::Misalignment }
2024
+ )
2025
+
2026
+ # @!method initialize(code:, message:, param:, type:, headers: nil, misalignment: nil)
1971
2027
  # Details about the error.
1972
2028
  #
1973
2029
  # @param code [String, nil] The error code that was emitted, if any.
@@ -1979,11 +2035,115 @@ module OpenAI
1979
2035
  # @param type [String] The error type that was emitted.
1980
2036
  #
1981
2037
  # @param headers [Hash{Symbol=>String}] The response headers that were emitted with the error, if any.
2038
+ #
2039
+ # @param misalignment [OpenAI::Models::Responses::ResponsesServerEvent::ResponseWsError::Error::Misalignment]
2040
+
2041
+ # @see OpenAI::Models::Responses::ResponsesServerEvent::ResponseWsError::Error#misalignment
2042
+ class Misalignment < OpenAI::Internal::Type::BaseModel
2043
+ # @!attribute detailed_explanation
2044
+ # The public explanation for this block.
2045
+ #
2046
+ # @return [String, nil]
2047
+ optional :detailed_explanation, String
2048
+
2049
+ # @!attribute error_type
2050
+ # An optional classification; clients must accept additional values.
2051
+ #
2052
+ # @return [String, Symbol, OpenAI::Models::Responses::ResponsesServerEvent::ResponseWsError::Error::Misalignment::ErrorType, nil]
2053
+ optional(
2054
+ :error_type,
2055
+ union: -> { OpenAI::Responses::ResponsesServerEvent::ResponseWsError::Error::Misalignment::ErrorType }
2056
+ )
2057
+
2058
+ # @!attribute steer
2059
+ # An optional public continuation instruction.
2060
+ #
2061
+ # @return [OpenAI::Models::Responses::ResponsesServerEvent::ResponseWsError::Error::Misalignment::Steer, nil]
2062
+ optional(
2063
+ :steer,
2064
+ -> { OpenAI::Responses::ResponsesServerEvent::ResponseWsError::Error::Misalignment::Steer }
2065
+ )
2066
+
2067
+ # @!method initialize(detailed_explanation: nil, error_type: nil, steer: nil)
2068
+ # @param detailed_explanation [String] The public explanation for this block.
2069
+ #
2070
+ # @param error_type [String, Symbol, OpenAI::Models::Responses::ResponsesServerEvent::ResponseWsError::Error::Misalignment::ErrorType] An optional classification; clients must accept additional values.
2071
+ #
2072
+ # @param steer [OpenAI::Models::Responses::ResponsesServerEvent::ResponseWsError::Error::Misalignment::Steer] An optional public continuation instruction.
2073
+
2074
+ # An optional classification; clients must accept additional values.
2075
+ #
2076
+ # @see OpenAI::Models::Responses::ResponsesServerEvent::ResponseWsError::Error::Misalignment#error_type
2077
+ module ErrorType
2078
+ extend OpenAI::Internal::Type::Union
2079
+
2080
+ variant String
2081
+
2082
+ variant(
2083
+ const: -> {
2084
+ OpenAI::Models::Responses::ResponsesServerEvent::ResponseWsError::Error::Misalignment::ErrorType::POTENTIALLY_UNINTENDED_DATA_TRANSFER
2085
+ }
2086
+ )
2087
+
2088
+ variant(
2089
+ const: -> {
2090
+ OpenAI::Models::Responses::ResponsesServerEvent::ResponseWsError::Error::Misalignment::ErrorType::POTENTIALLY_UNINTENDED_DATA_ACCESS
2091
+ }
2092
+ )
2093
+
2094
+ variant(
2095
+ const: -> {
2096
+ OpenAI::Models::Responses::ResponsesServerEvent::ResponseWsError::Error::Misalignment::ErrorType::POTENTIALLY_UNINTENDED_DESTRUCTIVE_ACTIVITY
2097
+ }
2098
+ )
2099
+
2100
+ variant(
2101
+ const: -> {
2102
+ OpenAI::Models::Responses::ResponsesServerEvent::ResponseWsError::Error::Misalignment::ErrorType::OTHER
2103
+ }
2104
+ )
2105
+
2106
+ # @!method self.variants
2107
+ # @return [Array(String, Symbol)]
2108
+
2109
+ define_sorbet_constant!(:Variants) do
2110
+ T.type_alias do
2111
+ T.any(
2112
+ String,
2113
+ OpenAI::Responses::ResponsesServerEvent::ResponseWsError::Error::Misalignment::ErrorType::TaggedSymbol
2114
+ )
2115
+ end
2116
+ end
2117
+
2118
+ # @!group
2119
+
2120
+ POTENTIALLY_UNINTENDED_DATA_TRANSFER = :potentially_unintended_data_transfer
2121
+ POTENTIALLY_UNINTENDED_DATA_ACCESS = :potentially_unintended_data_access
2122
+ POTENTIALLY_UNINTENDED_DESTRUCTIVE_ACTIVITY = :potentially_unintended_destructive_activity
2123
+ OTHER = :other
2124
+
2125
+ # @!endgroup
2126
+ end
2127
+
2128
+ # @see OpenAI::Models::Responses::ResponsesServerEvent::ResponseWsError::Error::Misalignment#steer
2129
+ class Steer < OpenAI::Internal::Type::BaseModel
2130
+ # @!attribute message
2131
+ # The public continuation instruction.
2132
+ #
2133
+ # @return [String]
2134
+ required :message, String
2135
+
2136
+ # @!method initialize(message:)
2137
+ # An optional public continuation instruction.
2138
+ #
2139
+ # @param message [String] The public continuation instruction.
2140
+ end
2141
+ end
1982
2142
  end
1983
2143
  end
1984
2144
 
1985
2145
  # @!method self.variants
1986
- # @return [Array(OpenAI::Models::Responses::ResponsesServerEvent::ResponseWsError, OpenAI::Models::Responses::ResponsesServerEvent::ResponseAudioWsDelta, OpenAI::Models::Responses::ResponsesServerEvent::ResponseAudioWsDone, OpenAI::Models::Responses::ResponsesServerEvent::ResponseAudioTranscriptWsDelta, OpenAI::Models::Responses::ResponsesServerEvent::ResponseAudioTranscriptWsDone, OpenAI::Models::Responses::ResponsesServerEvent::ResponseCodeInterpreterCallCodeWsDelta, OpenAI::Models::Responses::ResponsesServerEvent::ResponseCodeInterpreterCallCodeWsDone, OpenAI::Models::Responses::ResponsesServerEvent::ResponseCodeInterpreterCallWsCompleted, OpenAI::Models::Responses::ResponsesServerEvent::ResponseCodeInterpreterCallInWsProgress, OpenAI::Models::Responses::ResponsesServerEvent::ResponseCodeInterpreterCallWsInterpreting, OpenAI::Models::Responses::ResponsesServerEvent::ResponseWsCompleted, OpenAI::Models::Responses::ResponsesServerEvent::ResponseContentPartWsAdded, OpenAI::Models::Responses::ResponsesServerEvent::ResponseContentPartWsDone, OpenAI::Models::Responses::ResponsesServerEvent::ResponseWsCreated, OpenAI::Models::Responses::ResponsesServerEvent::ResponseFileSearchCallWsCompleted, OpenAI::Models::Responses::ResponsesServerEvent::ResponseFileSearchCallInWsProgress, OpenAI::Models::Responses::ResponsesServerEvent::ResponseFileSearchCallWsSearching, OpenAI::Models::Responses::ResponsesServerEvent::ResponseFunctionCallArgumentsWsDelta, OpenAI::Models::Responses::ResponsesServerEvent::ResponseFunctionCallArgumentsWsDone, OpenAI::Models::Responses::ResponsesServerEvent::ResponseShellCallCommandWsAdded, OpenAI::Models::Responses::ResponsesServerEvent::ResponseShellCallCommandWsDelta, OpenAI::Models::Responses::ResponsesServerEvent::ResponseShellCallCommandWsDone, OpenAI::Models::Responses::ResponsesServerEvent::ResponseShellCallOutputContentWsDelta, OpenAI::Models::Responses::ResponsesServerEvent::ResponseShellCallOutputContentWsDone, OpenAI::Models::Responses::ResponsesServerEvent::ResponseInWsProgress, OpenAI::Models::Responses::ResponsesServerEvent::ResponseWsFailed, OpenAI::Models::Responses::ResponsesServerEvent::ResponseWsIncomplete, OpenAI::Models::Responses::ResponsesServerEvent::ResponseOutputItemWsAdded, OpenAI::Models::Responses::ResponsesServerEvent::ResponseOutputItemWsDone, OpenAI::Models::Responses::ResponsesServerEvent::ResponseReasoningSummaryPartWsAdded, OpenAI::Models::Responses::ResponsesServerEvent::ResponseReasoningSummaryPartWsDone, OpenAI::Models::Responses::ResponsesServerEvent::ResponseReasoningSummaryTextWsDelta, OpenAI::Models::Responses::ResponsesServerEvent::ResponseReasoningSummaryTextWsDone, OpenAI::Models::Responses::ResponsesServerEvent::ResponseReasoningTextWsDelta, OpenAI::Models::Responses::ResponsesServerEvent::ResponseReasoningTextWsDone, OpenAI::Models::Responses::ResponsesServerEvent::ResponseRefusalWsDelta, OpenAI::Models::Responses::ResponsesServerEvent::ResponseRefusalWsDone, OpenAI::Models::Responses::ResponsesServerEvent::ResponseTextWsDelta, OpenAI::Models::Responses::ResponsesServerEvent::ResponseTextWsDone, OpenAI::Models::Responses::ResponsesServerEvent::ResponseWebSearchCallWsCompleted, OpenAI::Models::Responses::ResponsesServerEvent::ResponseWebSearchCallInWsProgress, OpenAI::Models::Responses::ResponsesServerEvent::ResponseWebSearchCallWsSearching, OpenAI::Models::Responses::ResponsesServerEvent::ResponseImageGenCallWsCompleted, OpenAI::Models::Responses::ResponsesServerEvent::ResponseImageGenCallWsGenerating, OpenAI::Models::Responses::ResponsesServerEvent::ResponseImageGenCallInWsProgress, OpenAI::Models::Responses::ResponsesServerEvent::ResponseImageGenCallPartialWsImage, OpenAI::Models::Responses::ResponsesServerEvent::ResponseMcpCallArgumentsWsDelta, OpenAI::Models::Responses::ResponsesServerEvent::ResponseMcpCallArgumentsWsDone, OpenAI::Models::Responses::ResponsesServerEvent::ResponseMcpCallWsCompleted, OpenAI::Models::Responses::ResponsesServerEvent::ResponseMcpCallWsFailed, OpenAI::Models::Responses::ResponsesServerEvent::ResponseMcpCallInWsProgress, OpenAI::Models::Responses::ResponsesServerEvent::ResponseMcpListToolsWsCompleted, OpenAI::Models::Responses::ResponsesServerEvent::ResponseMcpListToolsWsFailed, OpenAI::Models::Responses::ResponsesServerEvent::ResponseMcpListToolsInWsProgress, OpenAI::Models::Responses::ResponsesServerEvent::ResponseOutputTextAnnotationWsAdded, OpenAI::Models::Responses::ResponsesServerEvent::ResponseWsQueued, OpenAI::Models::Responses::ResponsesServerEvent::ResponseCustomToolCallInputWsDelta, OpenAI::Models::Responses::ResponsesServerEvent::ResponseCustomToolCallInputWsDone)]
2146
+ # @return [Array(OpenAI::Models::Responses::ResponsesServerEvent::ResponseWsError, OpenAI::Models::Responses::ResponseSteerAcceptedEvent, OpenAI::Models::Responses::ResponseSteerPendingEvent, OpenAI::Models::Responses::ResponseSteerFailedEvent, OpenAI::Models::Responses::ResponsesServerEvent::ResponseAudioWsDelta, OpenAI::Models::Responses::ResponsesServerEvent::ResponseAudioWsDone, OpenAI::Models::Responses::ResponsesServerEvent::ResponseAudioTranscriptWsDelta, OpenAI::Models::Responses::ResponsesServerEvent::ResponseAudioTranscriptWsDone, OpenAI::Models::Responses::ResponsesServerEvent::ResponseCodeInterpreterCallCodeWsDelta, OpenAI::Models::Responses::ResponsesServerEvent::ResponseCodeInterpreterCallCodeWsDone, OpenAI::Models::Responses::ResponsesServerEvent::ResponseCodeInterpreterCallWsCompleted, OpenAI::Models::Responses::ResponsesServerEvent::ResponseCodeInterpreterCallInWsProgress, OpenAI::Models::Responses::ResponsesServerEvent::ResponseCodeInterpreterCallWsInterpreting, OpenAI::Models::Responses::ResponsesServerEvent::ResponseWsCompleted, OpenAI::Models::Responses::ResponsesServerEvent::ResponseContentPartWsAdded, OpenAI::Models::Responses::ResponsesServerEvent::ResponseContentPartWsDone, OpenAI::Models::Responses::ResponsesServerEvent::ResponseWsCreated, OpenAI::Models::Responses::ResponsesServerEvent::ResponseFileSearchCallWsCompleted, OpenAI::Models::Responses::ResponsesServerEvent::ResponseFileSearchCallInWsProgress, OpenAI::Models::Responses::ResponsesServerEvent::ResponseFileSearchCallWsSearching, OpenAI::Models::Responses::ResponsesServerEvent::ResponseFunctionCallArgumentsWsDelta, OpenAI::Models::Responses::ResponsesServerEvent::ResponseFunctionCallArgumentsWsDone, OpenAI::Models::Responses::ResponsesServerEvent::ResponseShellCallCommandWsAdded, OpenAI::Models::Responses::ResponsesServerEvent::ResponseShellCallCommandWsDelta, OpenAI::Models::Responses::ResponsesServerEvent::ResponseShellCallCommandWsDone, OpenAI::Models::Responses::ResponsesServerEvent::ResponseShellCallOutputContentWsDelta, OpenAI::Models::Responses::ResponsesServerEvent::ResponseShellCallOutputContentWsDone, OpenAI::Models::Responses::ResponsesServerEvent::ResponseInWsProgress, OpenAI::Models::Responses::ResponsesServerEvent::ResponseWsFailed, OpenAI::Models::Responses::ResponsesServerEvent::ResponseWsIncomplete, OpenAI::Models::Responses::ResponsesServerEvent::ResponseOutputItemWsAdded, OpenAI::Models::Responses::ResponsesServerEvent::ResponseOutputItemWsDone, OpenAI::Models::Responses::ResponsesServerEvent::ResponseReasoningSummaryPartWsAdded, OpenAI::Models::Responses::ResponsesServerEvent::ResponseReasoningSummaryPartWsDone, OpenAI::Models::Responses::ResponsesServerEvent::ResponseReasoningSummaryTextWsDelta, OpenAI::Models::Responses::ResponsesServerEvent::ResponseReasoningSummaryTextWsDone, OpenAI::Models::Responses::ResponsesServerEvent::ResponseReasoningTextWsDelta, OpenAI::Models::Responses::ResponsesServerEvent::ResponseReasoningTextWsDone, OpenAI::Models::Responses::ResponsesServerEvent::ResponseRefusalWsDelta, OpenAI::Models::Responses::ResponsesServerEvent::ResponseRefusalWsDone, OpenAI::Models::Responses::ResponsesServerEvent::ResponseTextWsDelta, OpenAI::Models::Responses::ResponsesServerEvent::ResponseTextWsDone, OpenAI::Models::Responses::ResponsesServerEvent::ResponseWebSearchCallWsCompleted, OpenAI::Models::Responses::ResponsesServerEvent::ResponseWebSearchCallInWsProgress, OpenAI::Models::Responses::ResponsesServerEvent::ResponseWebSearchCallWsSearching, OpenAI::Models::Responses::ResponsesServerEvent::ResponseImageGenCallWsCompleted, OpenAI::Models::Responses::ResponsesServerEvent::ResponseImageGenCallWsGenerating, OpenAI::Models::Responses::ResponsesServerEvent::ResponseImageGenCallInWsProgress, OpenAI::Models::Responses::ResponsesServerEvent::ResponseImageGenCallPartialWsImage, OpenAI::Models::Responses::ResponsesServerEvent::ResponseMcpCallArgumentsWsDelta, OpenAI::Models::Responses::ResponsesServerEvent::ResponseMcpCallArgumentsWsDone, OpenAI::Models::Responses::ResponsesServerEvent::ResponseMcpCallWsCompleted, OpenAI::Models::Responses::ResponsesServerEvent::ResponseMcpCallWsFailed, OpenAI::Models::Responses::ResponsesServerEvent::ResponseMcpCallInWsProgress, OpenAI::Models::Responses::ResponsesServerEvent::ResponseMcpListToolsWsCompleted, OpenAI::Models::Responses::ResponsesServerEvent::ResponseMcpListToolsWsFailed, OpenAI::Models::Responses::ResponsesServerEvent::ResponseMcpListToolsInWsProgress, OpenAI::Models::Responses::ResponsesServerEvent::ResponseOutputTextAnnotationWsAdded, OpenAI::Models::Responses::ResponsesServerEvent::ResponseWsQueued, OpenAI::Models::Responses::ResponsesServerEvent::ResponseCustomToolCallInputWsDelta, OpenAI::Models::Responses::ResponsesServerEvent::ResponseCustomToolCallInputWsDone)]
1987
2147
  end
1988
2148
  end
1989
2149
  end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Safety
6
+ # @see OpenAI::Resources::Safety::Alerts#retrieve
7
+ class AlertRetrieveParams < OpenAI::Internal::Type::BaseModel
8
+ extend OpenAI::Internal::Type::RequestParameters::Converter
9
+ include OpenAI::Internal::Type::RequestParameters
10
+
11
+ # @!attribute id
12
+ # Project safety alert ID
13
+ #
14
+ # @return [String]
15
+ required :id, String
16
+
17
+ # @!method initialize(id:, request_options: {})
18
+ # @param id [String] Project safety alert ID
19
+ #
20
+ # @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}]
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,96 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Safety
6
+ # @see OpenAI::Resources::Safety::Alerts#retrieve
7
+ class SafetyAlert < OpenAI::Internal::Type::BaseModel
8
+ # @!attribute id
9
+ #
10
+ # @return [String]
11
+ required :id, String
12
+
13
+ # @!attribute created_at
14
+ #
15
+ # @return [Integer]
16
+ required :created_at, Integer
17
+
18
+ # @!attribute error_type
19
+ #
20
+ # @return [Symbol, OpenAI::Models::Safety::SafetyAlert::ErrorType]
21
+ required :error_type, enum: -> { OpenAI::Safety::SafetyAlert::ErrorType }
22
+
23
+ # @!attribute model
24
+ #
25
+ # @return [String]
26
+ required :model, String
27
+
28
+ # @!attribute object
29
+ #
30
+ # @return [Symbol, :"safety.alert"]
31
+ required :object, const: :"safety.alert"
32
+
33
+ # @!attribute reason
34
+ # A customer-safe description derived from error_type, or null for zero data
35
+ # retention requests.
36
+ #
37
+ # @return [String, nil]
38
+ required :reason, String, nil?: true
39
+
40
+ # @!attribute request_id
41
+ #
42
+ # @return [String]
43
+ required :request_id, String
44
+
45
+ # @!attribute request_paused
46
+ # Whether block registration succeeded for this request. This does not confirm
47
+ # that response execution stopped.
48
+ #
49
+ # @return [Boolean]
50
+ required :request_paused, OpenAI::Internal::Type::Boolean
51
+
52
+ # @!attribute response_id
53
+ #
54
+ # @return [String]
55
+ required :response_id, String
56
+
57
+ # @!method initialize(id:, created_at:, error_type:, model:, reason:, request_id:, request_paused:, response_id:, object: :"safety.alert")
58
+ # Some parameter documentations has been truncated, see
59
+ # {OpenAI::Models::Safety::SafetyAlert} for more details.
60
+ #
61
+ # @param id [String]
62
+ #
63
+ # @param created_at [Integer]
64
+ #
65
+ # @param error_type [Symbol, OpenAI::Models::Safety::SafetyAlert::ErrorType]
66
+ #
67
+ # @param model [String]
68
+ #
69
+ # @param reason [String, nil] A customer-safe description derived from error_type, or null for zero data reten
70
+ #
71
+ # @param request_id [String]
72
+ #
73
+ # @param request_paused [Boolean] Whether block registration succeeded for this request. This does not confirm tha
74
+ #
75
+ # @param response_id [String]
76
+ #
77
+ # @param object [Symbol, :"safety.alert"]
78
+
79
+ # @see OpenAI::Models::Safety::SafetyAlert#error_type
80
+ module ErrorType
81
+ extend OpenAI::Internal::Type::Enum
82
+
83
+ POTENTIALLY_UNINTENDED_DATA_TRANSFER = :potentially_unintended_data_transfer
84
+ POTENTIALLY_UNINTENDED_DATA_ACCESS = :potentially_unintended_data_access
85
+ POTENTIALLY_UNINTENDED_DESTRUCTIVE_ACTIVITY = :potentially_unintended_destructive_activity
86
+ OTHER = :other
87
+
88
+ # @!method self.values
89
+ # @return [Array<Symbol>]
90
+ end
91
+ end
92
+ end
93
+
94
+ SafetyAlert = Safety::SafetyAlert
95
+ end
96
+ end
@@ -15,12 +15,104 @@ module OpenAI
15
15
  # @return [String]
16
16
  required :message, String
17
17
 
18
- # @!method initialize(code:, message:)
18
+ # @!attribute misalignment
19
+ #
20
+ # @return [OpenAI::Models::VideoCreateError::Misalignment, nil]
21
+ optional :misalignment, -> { OpenAI::VideoCreateError::Misalignment }
22
+
23
+ # @!method initialize(code:, message:, misalignment: nil)
19
24
  # An error that occurred while generating the response.
20
25
  #
21
26
  # @param code [String] A machine-readable error code that was returned.
22
27
  #
23
28
  # @param message [String] A human-readable description of the error that was returned.
29
+ #
30
+ # @param misalignment [OpenAI::Models::VideoCreateError::Misalignment]
31
+
32
+ # @see OpenAI::Models::VideoCreateError#misalignment
33
+ class Misalignment < OpenAI::Internal::Type::BaseModel
34
+ # @!attribute detailed_explanation
35
+ # The public explanation for this block.
36
+ #
37
+ # @return [String, nil]
38
+ optional :detailed_explanation, String
39
+
40
+ # @!attribute error_type
41
+ # An optional classification; clients must accept additional values.
42
+ #
43
+ # @return [String, Symbol, OpenAI::Models::VideoCreateError::Misalignment::ErrorType, nil]
44
+ optional :error_type, union: -> { OpenAI::VideoCreateError::Misalignment::ErrorType }
45
+
46
+ # @!attribute steer
47
+ # An optional public continuation instruction.
48
+ #
49
+ # @return [OpenAI::Models::VideoCreateError::Misalignment::Steer, nil]
50
+ optional :steer, -> { OpenAI::VideoCreateError::Misalignment::Steer }
51
+
52
+ # @!method initialize(detailed_explanation: nil, error_type: nil, steer: nil)
53
+ # @param detailed_explanation [String] The public explanation for this block.
54
+ #
55
+ # @param error_type [String, Symbol, OpenAI::Models::VideoCreateError::Misalignment::ErrorType] An optional classification; clients must accept additional values.
56
+ #
57
+ # @param steer [OpenAI::Models::VideoCreateError::Misalignment::Steer] An optional public continuation instruction.
58
+
59
+ # An optional classification; clients must accept additional values.
60
+ #
61
+ # @see OpenAI::Models::VideoCreateError::Misalignment#error_type
62
+ module ErrorType
63
+ extend OpenAI::Internal::Type::Union
64
+
65
+ variant String
66
+
67
+ variant(
68
+ const: -> {
69
+ OpenAI::Models::VideoCreateError::Misalignment::ErrorType::POTENTIALLY_UNINTENDED_DATA_TRANSFER
70
+ }
71
+ )
72
+
73
+ variant(
74
+ const: -> { OpenAI::Models::VideoCreateError::Misalignment::ErrorType::POTENTIALLY_UNINTENDED_DATA_ACCESS }
75
+ )
76
+
77
+ variant(
78
+ const: -> {
79
+ OpenAI::Models::VideoCreateError::Misalignment::ErrorType::POTENTIALLY_UNINTENDED_DESTRUCTIVE_ACTIVITY
80
+ }
81
+ )
82
+
83
+ variant const: -> { OpenAI::Models::VideoCreateError::Misalignment::ErrorType::OTHER }
84
+
85
+ # @!method self.variants
86
+ # @return [Array(String, Symbol)]
87
+
88
+ define_sorbet_constant!(:Variants) do
89
+ T.type_alias { T.any(String, OpenAI::VideoCreateError::Misalignment::ErrorType::TaggedSymbol) }
90
+ end
91
+
92
+ # @!group
93
+
94
+ POTENTIALLY_UNINTENDED_DATA_TRANSFER = :potentially_unintended_data_transfer
95
+ POTENTIALLY_UNINTENDED_DATA_ACCESS = :potentially_unintended_data_access
96
+ POTENTIALLY_UNINTENDED_DESTRUCTIVE_ACTIVITY = :potentially_unintended_destructive_activity
97
+ OTHER = :other
98
+
99
+ # @!endgroup
100
+ end
101
+
102
+ # @see OpenAI::Models::VideoCreateError::Misalignment#steer
103
+ class Steer < OpenAI::Internal::Type::BaseModel
104
+ # @!attribute message
105
+ # The public continuation instruction.
106
+ #
107
+ # @return [String]
108
+ required :message, String
109
+
110
+ # @!method initialize(message:)
111
+ # An optional public continuation instruction.
112
+ #
113
+ # @param message [String] The public continuation instruction.
114
+ end
115
+ end
24
116
  end
25
117
  end
26
118
  end
@@ -0,0 +1,63 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Webhooks
6
+ class SafetyAlertCreatedWebhookEvent < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute id
8
+ # The unique ID of the webhook event.
9
+ #
10
+ # @return [String]
11
+ required :id, String
12
+
13
+ # @!attribute created_at
14
+ # The Unix timestamp in seconds when the event was created.
15
+ #
16
+ # @return [Integer]
17
+ required :created_at, Integer
18
+
19
+ # @!attribute data
20
+ #
21
+ # @return [OpenAI::Models::Webhooks::SafetyAlertCreatedWebhookEvent::Data]
22
+ required :data, -> { OpenAI::Webhooks::SafetyAlertCreatedWebhookEvent::Data }
23
+
24
+ # @!attribute object
25
+ # Always `event`.
26
+ #
27
+ # @return [Symbol, :event]
28
+ required :object, const: :event
29
+
30
+ # @!attribute type
31
+ # Always `safety.alert.created`.
32
+ #
33
+ # @return [Symbol, :"safety.alert.created"]
34
+ required :type, const: :"safety.alert.created"
35
+
36
+ # @!method initialize(id:, created_at:, data:, object: :event, type: :"safety.alert.created")
37
+ # Sent when an approved safety alert is available for an API project.
38
+ #
39
+ # @param id [String] The unique ID of the webhook event.
40
+ #
41
+ # @param created_at [Integer] The Unix timestamp in seconds when the event was created.
42
+ #
43
+ # @param data [OpenAI::Models::Webhooks::SafetyAlertCreatedWebhookEvent::Data]
44
+ #
45
+ # @param object [Symbol, :event] Always `event`.
46
+ #
47
+ # @param type [Symbol, :"safety.alert.created"] Always `safety.alert.created`.
48
+
49
+ # @see OpenAI::Models::Webhooks::SafetyAlertCreatedWebhookEvent#data
50
+ class Data < OpenAI::Internal::Type::BaseModel
51
+ # @!attribute id
52
+ # The safety alert ID to pass to `GET /v1/safety/alerts/{id}`.
53
+ #
54
+ # @return [String]
55
+ required :id, String
56
+
57
+ # @!method initialize(id:)
58
+ # @param id [String] The safety alert ID to pass to `GET /v1/safety/alerts/{id}`.
59
+ end
60
+ end
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,63 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Webhooks
6
+ class SafetyOrgAlertCreatedWebhookEvent < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute id
8
+ # The unique ID of the webhook event.
9
+ #
10
+ # @return [String]
11
+ required :id, String
12
+
13
+ # @!attribute created_at
14
+ # The Unix timestamp in seconds when the event was created.
15
+ #
16
+ # @return [Integer]
17
+ required :created_at, Integer
18
+
19
+ # @!attribute data
20
+ #
21
+ # @return [OpenAI::Models::Webhooks::SafetyOrgAlertCreatedWebhookEvent::Data]
22
+ required :data, -> { OpenAI::Webhooks::SafetyOrgAlertCreatedWebhookEvent::Data }
23
+
24
+ # @!attribute object
25
+ # Always `event`.
26
+ #
27
+ # @return [Symbol, :event]
28
+ required :object, const: :event
29
+
30
+ # @!attribute type
31
+ # Always `safety.org_alert.created`.
32
+ #
33
+ # @return [Symbol, :"safety.org_alert.created"]
34
+ required :type, const: :"safety.org_alert.created"
35
+
36
+ # @!method initialize(id:, created_at:, data:, object: :event, type: :"safety.org_alert.created")
37
+ # Sent when an approved safety alert is available for an enterprise workspace.
38
+ #
39
+ # @param id [String] The unique ID of the webhook event.
40
+ #
41
+ # @param created_at [Integer] The Unix timestamp in seconds when the event was created.
42
+ #
43
+ # @param data [OpenAI::Models::Webhooks::SafetyOrgAlertCreatedWebhookEvent::Data]
44
+ #
45
+ # @param object [Symbol, :event] Always `event`.
46
+ #
47
+ # @param type [Symbol, :"safety.org_alert.created"] Always `safety.org_alert.created`.
48
+
49
+ # @see OpenAI::Models::Webhooks::SafetyOrgAlertCreatedWebhookEvent#data
50
+ class Data < OpenAI::Internal::Type::BaseModel
51
+ # @!attribute id
52
+ # The safety alert ID to pass to `GET /v1/safety/alerts/{id}`.
53
+ #
54
+ # @return [String]
55
+ required :id, String
56
+
57
+ # @!method initialize(id:)
58
+ # @param id [String] The safety alert ID to pass to `GET /v1/safety/alerts/{id}`.
59
+ end
60
+ end
61
+ end
62
+ end
63
+ end
@@ -61,8 +61,14 @@ module OpenAI
61
61
  # Sent when a background response has been interrupted.
62
62
  variant :"response.incomplete", -> { OpenAI::Webhooks::ResponseIncompleteWebhookEvent }
63
63
 
64
+ # Sent when an approved safety alert is available for an API project.
65
+ variant :"safety.alert.created", -> { OpenAI::Webhooks::SafetyAlertCreatedWebhookEvent }
66
+
67
+ # Sent when an approved safety alert is available for an enterprise workspace.
68
+ variant :"safety.org_alert.created", -> { OpenAI::Webhooks::SafetyOrgAlertCreatedWebhookEvent }
69
+
64
70
  # @!method self.variants
65
- # @return [Array(OpenAI::Models::Webhooks::BatchCancelledWebhookEvent, OpenAI::Models::Webhooks::BatchCompletedWebhookEvent, OpenAI::Models::Webhooks::BatchExpiredWebhookEvent, OpenAI::Models::Webhooks::BatchFailedWebhookEvent, OpenAI::Models::Webhooks::EvalRunCanceledWebhookEvent, OpenAI::Models::Webhooks::EvalRunFailedWebhookEvent, OpenAI::Models::Webhooks::EvalRunSucceededWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobCancelledWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobFailedWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobSucceededWebhookEvent, OpenAI::Models::Webhooks::LiveCallIncomingWebhookEvent, OpenAI::Models::Webhooks::RealtimeCallIncomingWebhookEvent, OpenAI::Models::Webhooks::ResponseCancelledWebhookEvent, OpenAI::Models::Webhooks::ResponseCompletedWebhookEvent, OpenAI::Models::Webhooks::ResponseFailedWebhookEvent, OpenAI::Models::Webhooks::ResponseIncompleteWebhookEvent)]
71
+ # @return [Array(OpenAI::Models::Webhooks::BatchCancelledWebhookEvent, OpenAI::Models::Webhooks::BatchCompletedWebhookEvent, OpenAI::Models::Webhooks::BatchExpiredWebhookEvent, OpenAI::Models::Webhooks::BatchFailedWebhookEvent, OpenAI::Models::Webhooks::EvalRunCanceledWebhookEvent, OpenAI::Models::Webhooks::EvalRunFailedWebhookEvent, OpenAI::Models::Webhooks::EvalRunSucceededWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobCancelledWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobFailedWebhookEvent, OpenAI::Models::Webhooks::FineTuningJobSucceededWebhookEvent, OpenAI::Models::Webhooks::LiveCallIncomingWebhookEvent, OpenAI::Models::Webhooks::RealtimeCallIncomingWebhookEvent, OpenAI::Models::Webhooks::ResponseCancelledWebhookEvent, OpenAI::Models::Webhooks::ResponseCompletedWebhookEvent, OpenAI::Models::Webhooks::ResponseFailedWebhookEvent, OpenAI::Models::Webhooks::ResponseIncompleteWebhookEvent, OpenAI::Models::Webhooks::SafetyAlertCreatedWebhookEvent, OpenAI::Models::Webhooks::SafetyOrgAlertCreatedWebhookEvent)]
66
72
  end
67
73
  end
68
74
  end
data/lib/openai/models.rb CHANGED
@@ -245,6 +245,8 @@ module OpenAI
245
245
 
246
246
  ResponsesModel = OpenAI::Models::ResponsesModel
247
247
 
248
+ Safety = OpenAI::Models::Safety
249
+
248
250
  Skill = OpenAI::Models::Skill
249
251
 
250
252
  SkillCreateParams = OpenAI::Models::SkillCreateParams
@@ -118,7 +118,7 @@ module OpenAI
118
118
  req["content-length"] ||= body.bytesize.to_s unless req["transfer-encoding"]
119
119
  req.body_stream = OpenAI::Internal::Util::ReadIOAdapter.new(body, &blk)
120
120
  in StringIO
121
- req["content-length"] ||= body.size.to_s unless req["transfer-encoding"]
121
+ req["content-length"] ||= [body.size - body.pos, 0].max.to_s unless req["transfer-encoding"]
122
122
  req.body_stream = OpenAI::Internal::Util::ReadIOAdapter.new(body, &blk)
123
123
  in Pathname | IO | Enumerator
124
124
  req["transfer-encoding"] ||= "chunked" unless req["content-length"]
@@ -229,33 +229,41 @@ module OpenAI
229
229
 
230
230
  private def resolve
231
231
  config = Aws.shared_config
232
- providers = []
233
232
  if config.config_enabled?
234
- providers <<
235
- config.assume_role_web_identity_credentials_from_config(
236
- profile: @profile,
237
- region: @region
238
- )
239
- providers << config.sso_credentials_from_config(profile: @profile)
240
- providers << config.assume_role_credentials_from_config(profile: @profile, region: @region)
233
+ provider = config.assume_role_web_identity_credentials_from_config(
234
+ profile: @profile,
235
+ region: @region
236
+ )
237
+ return provider if provider&.set?
238
+
239
+ provider = config.sso_credentials_from_config(profile: @profile)
240
+ return provider if provider&.set?
241
+
242
+ provider = config.assume_role_credentials_from_config(profile: @profile, region: @region)
243
+ return provider if provider&.set?
241
244
  end
242
245
 
243
246
  begin
244
- providers << Aws::SharedCredentials.new(profile_name: @profile)
247
+ provider = Aws::SharedCredentials.new(profile_name: @profile)
248
+ return provider if provider.set?
245
249
  rescue Aws::Errors::NoSuchProfileError
246
250
  nil
247
251
  end
248
252
 
249
253
  if config.config_enabled?
250
254
  if config.respond_to?(:login_credentials_from_config)
251
- providers << config.login_credentials_from_config(profile: @profile, region: @region)
255
+ provider = config.login_credentials_from_config(profile: @profile, region: @region)
256
+ return provider if provider&.set?
252
257
  end
253
258
 
254
259
  process = config.credential_process(profile: @profile)
255
- providers << Aws::ProcessCredentials.new([process]) if process
260
+ if process
261
+ provider = Aws::ProcessCredentials.new([process])
262
+ return provider if provider.set?
263
+ end
256
264
  end
257
265
 
258
- providers.compact.find(&:set?) || raise(OpenAI::Errors::Error, CREDENTIAL_RESOLUTION_MESSAGE)
266
+ raise OpenAI::Errors::Error, CREDENTIAL_RESOLUTION_MESSAGE
259
267
  end
260
268
  end
261
269