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,9 @@ module OpenAI
12
12
  Variants = T.type_alias do
13
13
  T.any(
14
14
  OpenAI::Responses::ResponsesServerEvent::ResponseWsError,
15
+ OpenAI::Responses::ResponseSteerAcceptedEvent,
16
+ OpenAI::Responses::ResponseSteerPendingEvent,
17
+ OpenAI::Responses::ResponseSteerFailedEvent,
15
18
  OpenAI::Responses::ResponsesServerEvent::ResponseAudioWsDelta,
16
19
  OpenAI::Responses::ResponsesServerEvent::ResponseAudioWsDone,
17
20
  OpenAI::Responses::ResponsesServerEvent::ResponseAudioTranscriptWsDelta,
@@ -1792,6 +1795,10 @@ module OpenAI
1792
1795
  attr_writer :stream_id
1793
1796
 
1794
1797
  # An event that is emitted when a response finishes as incomplete.
1798
+ #
1799
+ # Over WebSocket, steering can finish a response with
1800
+ # `response.incomplete_details.reason` set to `steered`, followed automatically by
1801
+ # a successor `response.created` that commits the queued steering input.
1795
1802
  sig do
1796
1803
  params(
1797
1804
 
@@ -4303,6 +4310,17 @@ module OpenAI
4303
4310
  sig { params(headers: T::Hash[Symbol, String]).void }
4304
4311
  attr_writer :headers
4305
4312
 
4313
+ sig { returns(T.nilable(OpenAI::Responses::ResponsesServerEvent::ResponseWsError::Error::Misalignment)) }
4314
+ attr_reader :misalignment
4315
+
4316
+ sig {
4317
+ params(
4318
+ misalignment: OpenAI::Responses::ResponsesServerEvent::ResponseWsError::Error::Misalignment::OrHash
4319
+ )
4320
+ .void
4321
+ }
4322
+ attr_writer :misalignment
4323
+
4306
4324
  # Details about the error.
4307
4325
  sig do
4308
4326
  params(
@@ -4315,7 +4333,9 @@ module OpenAI
4315
4333
 
4316
4334
  type: String,
4317
4335
 
4318
- headers: T::Hash[Symbol, String]
4336
+ headers: T::Hash[Symbol, String],
4337
+
4338
+ misalignment: OpenAI::Responses::ResponsesServerEvent::ResponseWsError::Error::Misalignment::OrHash
4319
4339
  )
4320
4340
  .returns(T.attached_class)
4321
4341
  end
@@ -4334,8 +4354,9 @@ module OpenAI
4334
4354
  type:,
4335
4355
 
4336
4356
  # The response headers that were emitted with the error, if any.
4357
+ headers: nil,
4337
4358
 
4338
- headers: nil
4359
+ misalignment: nil
4339
4360
  )
4340
4361
  end
4341
4362
 
@@ -4346,13 +4367,191 @@ module OpenAI
4346
4367
  message: String,
4347
4368
  param: T.nilable(String),
4348
4369
  type: String,
4349
- headers: T::Hash[Symbol, String]
4370
+ headers: T::Hash[Symbol, String],
4371
+ misalignment: OpenAI::Responses::ResponsesServerEvent::ResponseWsError::Error::Misalignment
4350
4372
  }
4351
4373
  )
4352
4374
  end
4353
4375
  def to_hash
4354
4376
  end
4355
4377
 
4378
+ class Misalignment < OpenAI::Internal::Type::BaseModel
4379
+ OrHash = T.type_alias do
4380
+ T.any(
4381
+ OpenAI::Responses::ResponsesServerEvent::ResponseWsError::Error::Misalignment,
4382
+ OpenAI::Internal::AnyHash
4383
+ )
4384
+ end
4385
+
4386
+ # The public explanation for this block.
4387
+ sig { returns(T.nilable(String)) }
4388
+ attr_reader :detailed_explanation
4389
+
4390
+ sig { params(detailed_explanation: String).void }
4391
+ attr_writer :detailed_explanation
4392
+
4393
+ # An optional classification; clients must accept additional values.
4394
+ sig {
4395
+ returns(
4396
+ T.nilable(
4397
+ OpenAI::Responses::ResponsesServerEvent::ResponseWsError::Error::Misalignment::ErrorType::Variants
4398
+ )
4399
+ )
4400
+ }
4401
+ attr_reader :error_type
4402
+
4403
+ sig {
4404
+ params(
4405
+ error_type: T.any(
4406
+ String,
4407
+ OpenAI::Responses::ResponsesServerEvent::ResponseWsError::Error::Misalignment::ErrorType::OrSymbol
4408
+ )
4409
+ )
4410
+ .void
4411
+ }
4412
+ attr_writer :error_type
4413
+
4414
+ # An optional public continuation instruction.
4415
+ sig {
4416
+ returns(T.nilable(OpenAI::Responses::ResponsesServerEvent::ResponseWsError::Error::Misalignment::Steer))
4417
+ }
4418
+ attr_reader :steer
4419
+
4420
+ sig {
4421
+ params(
4422
+ steer: OpenAI::Responses::ResponsesServerEvent::ResponseWsError::Error::Misalignment::Steer::OrHash
4423
+ )
4424
+ .void
4425
+ }
4426
+ attr_writer :steer
4427
+
4428
+ sig do
4429
+ params(
4430
+
4431
+ detailed_explanation: String,
4432
+
4433
+ error_type: T.any(
4434
+ String,
4435
+ OpenAI::Responses::ResponsesServerEvent::ResponseWsError::Error::Misalignment::ErrorType::OrSymbol
4436
+ ),
4437
+
4438
+ steer: OpenAI::Responses::ResponsesServerEvent::ResponseWsError::Error::Misalignment::Steer::OrHash
4439
+ )
4440
+ .returns(T.attached_class)
4441
+ end
4442
+ def self.new(
4443
+
4444
+ # The public explanation for this block.
4445
+ detailed_explanation: nil,
4446
+
4447
+ # An optional classification; clients must accept additional values.
4448
+ error_type: nil,
4449
+
4450
+ # An optional public continuation instruction.
4451
+
4452
+ steer: nil
4453
+ )
4454
+ end
4455
+
4456
+ sig do
4457
+ override.returns(
4458
+ {
4459
+ detailed_explanation: String,
4460
+ error_type: OpenAI::Responses::ResponsesServerEvent::ResponseWsError::Error::Misalignment::ErrorType::Variants,
4461
+ steer: OpenAI::Responses::ResponsesServerEvent::ResponseWsError::Error::Misalignment::Steer
4462
+ }
4463
+ )
4464
+ end
4465
+ def to_hash
4466
+ end
4467
+
4468
+ # An optional classification; clients must accept additional values.
4469
+ module ErrorType
4470
+ extend OpenAI::Internal::Type::Union
4471
+
4472
+ Variants = T.type_alias {
4473
+ T.any(
4474
+ String,
4475
+ OpenAI::Responses::ResponsesServerEvent::ResponseWsError::Error::Misalignment::ErrorType::TaggedSymbol
4476
+ )
4477
+ }
4478
+
4479
+ sig {
4480
+ override.returns(
4481
+ T::Array[
4482
+ OpenAI::Responses::ResponsesServerEvent::ResponseWsError::Error::Misalignment::ErrorType::Variants
4483
+ ]
4484
+ )
4485
+ }
4486
+ def self.variants
4487
+ end
4488
+
4489
+ TaggedSymbol = T.type_alias do
4490
+ T.all(
4491
+ Symbol,
4492
+ OpenAI::Responses::ResponsesServerEvent::ResponseWsError::Error::Misalignment::ErrorType
4493
+ )
4494
+ end
4495
+
4496
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
4497
+
4498
+ POTENTIALLY_UNINTENDED_DATA_TRANSFER = T.let(
4499
+ :potentially_unintended_data_transfer,
4500
+ OpenAI::Responses::ResponsesServerEvent::ResponseWsError::Error::Misalignment::ErrorType::TaggedSymbol
4501
+ )
4502
+ POTENTIALLY_UNINTENDED_DATA_ACCESS = T.let(
4503
+ :potentially_unintended_data_access,
4504
+ OpenAI::Responses::ResponsesServerEvent::ResponseWsError::Error::Misalignment::ErrorType::TaggedSymbol
4505
+ )
4506
+ POTENTIALLY_UNINTENDED_DESTRUCTIVE_ACTIVITY = T.let(
4507
+ :potentially_unintended_destructive_activity,
4508
+ OpenAI::Responses::ResponsesServerEvent::ResponseWsError::Error::Misalignment::ErrorType::TaggedSymbol
4509
+ )
4510
+ OTHER = T.let(
4511
+ :other,
4512
+ OpenAI::Responses::ResponsesServerEvent::ResponseWsError::Error::Misalignment::ErrorType::TaggedSymbol
4513
+ )
4514
+
4515
+ end
4516
+
4517
+ class Steer < OpenAI::Internal::Type::BaseModel
4518
+ OrHash = T.type_alias do
4519
+ T.any(
4520
+ OpenAI::Responses::ResponsesServerEvent::ResponseWsError::Error::Misalignment::Steer,
4521
+ OpenAI::Internal::AnyHash
4522
+ )
4523
+ end
4524
+
4525
+ # The public continuation instruction.
4526
+ sig { returns(String) }
4527
+ attr_accessor :message
4528
+
4529
+ # An optional public continuation instruction.
4530
+ sig do
4531
+ params(
4532
+
4533
+ message: String
4534
+ )
4535
+ .returns(T.attached_class)
4536
+ end
4537
+ def self.new(
4538
+
4539
+ # The public continuation instruction.
4540
+
4541
+ message:
4542
+ )
4543
+ end
4544
+
4545
+ sig do
4546
+ override.returns(
4547
+ {message: String}
4548
+ )
4549
+ end
4550
+ def to_hash
4551
+ end
4552
+
4553
+ end
4554
+ end
4356
4555
  end
4357
4556
  end
4358
4557
 
@@ -0,0 +1,55 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+
6
+ module Safety
7
+
8
+ class AlertRetrieveParams < OpenAI::Internal::Type::BaseModel
9
+
10
+ extend OpenAI::Internal::Type::RequestParameters::Converter
11
+ include OpenAI::Internal::Type::RequestParameters
12
+
13
+ OrHash = T.type_alias do
14
+ T.any(
15
+ OpenAI::Safety::AlertRetrieveParams,
16
+ OpenAI::Internal::AnyHash
17
+ )
18
+ end
19
+
20
+ # Project safety alert ID
21
+ sig { returns(String) }
22
+ attr_accessor :id
23
+
24
+ sig do
25
+ params(
26
+
27
+ id: String,
28
+
29
+ request_options: OpenAI::RequestOptions::OrHash
30
+ )
31
+ .returns(T.attached_class)
32
+ end
33
+ def self.new(
34
+
35
+ # Project safety alert ID
36
+ id:,
37
+
38
+ request_options: {}
39
+ )
40
+ end
41
+
42
+ sig do
43
+ override.returns(
44
+ {id: String, request_options: OpenAI::RequestOptions}
45
+ )
46
+ end
47
+ def to_hash
48
+ end
49
+
50
+ end
51
+
52
+ end
53
+
54
+ end
55
+ end
@@ -0,0 +1,147 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+
6
+ SafetyAlert = Safety::SafetyAlert
7
+
8
+ module Safety
9
+
10
+ class SafetyAlert < OpenAI::Internal::Type::BaseModel
11
+
12
+ OrHash = T.type_alias do
13
+ T.any(
14
+ OpenAI::Safety::SafetyAlert,
15
+ OpenAI::Internal::AnyHash
16
+ )
17
+ end
18
+
19
+ sig { returns(String) }
20
+ attr_accessor :id
21
+
22
+ sig { returns(Integer) }
23
+ attr_accessor :created_at
24
+
25
+ sig { returns(OpenAI::Safety::SafetyAlert::ErrorType::TaggedSymbol) }
26
+ attr_accessor :error_type
27
+
28
+ sig { returns(String) }
29
+ attr_accessor :model
30
+
31
+ sig { returns(Symbol) }
32
+ attr_accessor :object
33
+
34
+ # A customer-safe description derived from error_type, or null for zero data
35
+ # retention requests.
36
+ sig { returns(T.nilable(String)) }
37
+ attr_accessor :reason
38
+
39
+ sig { returns(String) }
40
+ attr_accessor :request_id
41
+
42
+ # Whether block registration succeeded for this request. This does not confirm
43
+ # that response execution stopped.
44
+ sig { returns(T::Boolean) }
45
+ attr_accessor :request_paused
46
+
47
+ sig { returns(String) }
48
+ attr_accessor :response_id
49
+
50
+ sig do
51
+ params(
52
+
53
+ id: String,
54
+
55
+ created_at: Integer,
56
+
57
+ error_type: OpenAI::Safety::SafetyAlert::ErrorType::OrSymbol,
58
+
59
+ model: String,
60
+
61
+ reason: T.nilable(String),
62
+
63
+ request_id: String,
64
+
65
+ request_paused: T::Boolean,
66
+
67
+ response_id: String,
68
+
69
+ object: Symbol
70
+ )
71
+ .returns(T.attached_class)
72
+ end
73
+ def self.new(
74
+
75
+ id:,
76
+
77
+ created_at:,
78
+
79
+ error_type:,
80
+
81
+ model:,
82
+
83
+ # A customer-safe description derived from error_type, or null for zero data
84
+ # retention requests.
85
+ reason:,
86
+
87
+ request_id:,
88
+
89
+ # Whether block registration succeeded for this request. This does not confirm
90
+ # that response execution stopped.
91
+ request_paused:,
92
+
93
+ response_id:,
94
+
95
+ object: :"safety.alert"
96
+ )
97
+ end
98
+
99
+ sig do
100
+ override.returns(
101
+ {
102
+ id: String,
103
+ created_at: Integer,
104
+ error_type: OpenAI::Safety::SafetyAlert::ErrorType::TaggedSymbol,
105
+ model: String,
106
+ object: Symbol,
107
+ reason: T.nilable(String),
108
+ request_id: String,
109
+ request_paused: T::Boolean,
110
+ response_id: String
111
+ }
112
+ )
113
+ end
114
+ def to_hash
115
+ end
116
+
117
+ module ErrorType
118
+ extend OpenAI::Internal::Type::Enum
119
+
120
+ TaggedSymbol = T.type_alias { T.all(Symbol, OpenAI::Safety::SafetyAlert::ErrorType) }
121
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
122
+
123
+ POTENTIALLY_UNINTENDED_DATA_TRANSFER = T.let(
124
+ :potentially_unintended_data_transfer,
125
+ OpenAI::Safety::SafetyAlert::ErrorType::TaggedSymbol
126
+ )
127
+ POTENTIALLY_UNINTENDED_DATA_ACCESS = T.let(
128
+ :potentially_unintended_data_access,
129
+ OpenAI::Safety::SafetyAlert::ErrorType::TaggedSymbol
130
+ )
131
+ POTENTIALLY_UNINTENDED_DESTRUCTIVE_ACTIVITY = T.let(
132
+ :potentially_unintended_destructive_activity,
133
+ OpenAI::Safety::SafetyAlert::ErrorType::TaggedSymbol
134
+ )
135
+ OTHER = T.let(:other, OpenAI::Safety::SafetyAlert::ErrorType::TaggedSymbol)
136
+
137
+ sig { override.returns(T::Array[OpenAI::Safety::SafetyAlert::ErrorType::TaggedSymbol]) }
138
+ def self.values
139
+ end
140
+ end
141
+
142
+ end
143
+
144
+ end
145
+
146
+ end
147
+ end
@@ -20,13 +20,21 @@ module OpenAI
20
20
  sig { returns(String) }
21
21
  attr_accessor :message
22
22
 
23
+ sig { returns(T.nilable(OpenAI::VideoCreateError::Misalignment)) }
24
+ attr_reader :misalignment
25
+
26
+ sig { params(misalignment: OpenAI::VideoCreateError::Misalignment::OrHash).void }
27
+ attr_writer :misalignment
28
+
23
29
  # An error that occurred while generating the response.
24
30
  sig do
25
31
  params(
26
32
 
27
33
  code: String,
28
34
 
29
- message: String
35
+ message: String,
36
+
37
+ misalignment: OpenAI::VideoCreateError::Misalignment::OrHash
30
38
  )
31
39
  .returns(T.attached_class)
32
40
  end
@@ -36,19 +44,157 @@ module OpenAI
36
44
  code:,
37
45
 
38
46
  # A human-readable description of the error that was returned.
47
+ message:,
39
48
 
40
- message:
49
+ misalignment: nil
41
50
  )
42
51
  end
43
52
 
44
53
  sig do
45
54
  override.returns(
46
- {code: String, message: String}
55
+ {code: String, message: String, misalignment: OpenAI::VideoCreateError::Misalignment}
47
56
  )
48
57
  end
49
58
  def to_hash
50
59
  end
51
60
 
61
+ class Misalignment < OpenAI::Internal::Type::BaseModel
62
+ OrHash = T.type_alias do
63
+ T.any(
64
+ OpenAI::VideoCreateError::Misalignment,
65
+ OpenAI::Internal::AnyHash
66
+ )
67
+ end
68
+
69
+ # The public explanation for this block.
70
+ sig { returns(T.nilable(String)) }
71
+ attr_reader :detailed_explanation
72
+
73
+ sig { params(detailed_explanation: String).void }
74
+ attr_writer :detailed_explanation
75
+
76
+ # An optional classification; clients must accept additional values.
77
+ sig { returns(T.nilable(OpenAI::VideoCreateError::Misalignment::ErrorType::Variants)) }
78
+ attr_reader :error_type
79
+
80
+ sig { params(error_type: T.any(String, OpenAI::VideoCreateError::Misalignment::ErrorType::OrSymbol)).void }
81
+ attr_writer :error_type
82
+
83
+ # An optional public continuation instruction.
84
+ sig { returns(T.nilable(OpenAI::VideoCreateError::Misalignment::Steer)) }
85
+ attr_reader :steer
86
+
87
+ sig { params(steer: OpenAI::VideoCreateError::Misalignment::Steer::OrHash).void }
88
+ attr_writer :steer
89
+
90
+ sig do
91
+ params(
92
+
93
+ detailed_explanation: String,
94
+
95
+ error_type: T.any(String, OpenAI::VideoCreateError::Misalignment::ErrorType::OrSymbol),
96
+
97
+ steer: OpenAI::VideoCreateError::Misalignment::Steer::OrHash
98
+ )
99
+ .returns(T.attached_class)
100
+ end
101
+ def self.new(
102
+
103
+ # The public explanation for this block.
104
+ detailed_explanation: nil,
105
+
106
+ # An optional classification; clients must accept additional values.
107
+ error_type: nil,
108
+
109
+ # An optional public continuation instruction.
110
+
111
+ steer: nil
112
+ )
113
+ end
114
+
115
+ sig do
116
+ override.returns(
117
+ {
118
+ detailed_explanation: String,
119
+ error_type: OpenAI::VideoCreateError::Misalignment::ErrorType::Variants,
120
+ steer: OpenAI::VideoCreateError::Misalignment::Steer
121
+ }
122
+ )
123
+ end
124
+ def to_hash
125
+ end
126
+
127
+ # An optional classification; clients must accept additional values.
128
+ module ErrorType
129
+ extend OpenAI::Internal::Type::Union
130
+
131
+ Variants = T.type_alias { T.any(String, OpenAI::VideoCreateError::Misalignment::ErrorType::TaggedSymbol) }
132
+
133
+ sig { override.returns(T::Array[OpenAI::VideoCreateError::Misalignment::ErrorType::Variants]) }
134
+ def self.variants
135
+ end
136
+
137
+ TaggedSymbol = T.type_alias do
138
+ T.all(Symbol, OpenAI::VideoCreateError::Misalignment::ErrorType)
139
+ end
140
+
141
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
142
+
143
+ POTENTIALLY_UNINTENDED_DATA_TRANSFER = T.let(
144
+ :potentially_unintended_data_transfer,
145
+ OpenAI::VideoCreateError::Misalignment::ErrorType::TaggedSymbol
146
+ )
147
+ POTENTIALLY_UNINTENDED_DATA_ACCESS = T.let(
148
+ :potentially_unintended_data_access,
149
+ OpenAI::VideoCreateError::Misalignment::ErrorType::TaggedSymbol
150
+ )
151
+ POTENTIALLY_UNINTENDED_DESTRUCTIVE_ACTIVITY = T.let(
152
+ :potentially_unintended_destructive_activity,
153
+ OpenAI::VideoCreateError::Misalignment::ErrorType::TaggedSymbol
154
+ )
155
+ OTHER = T.let(:other, OpenAI::VideoCreateError::Misalignment::ErrorType::TaggedSymbol)
156
+
157
+ end
158
+
159
+ class Steer < OpenAI::Internal::Type::BaseModel
160
+ OrHash = T.type_alias do
161
+ T.any(
162
+ OpenAI::VideoCreateError::Misalignment::Steer,
163
+ OpenAI::Internal::AnyHash
164
+ )
165
+ end
166
+
167
+ # The public continuation instruction.
168
+ sig { returns(String) }
169
+ attr_accessor :message
170
+
171
+ # An optional public continuation instruction.
172
+ sig do
173
+ params(
174
+
175
+ message: String
176
+ )
177
+ .returns(T.attached_class)
178
+ end
179
+ def self.new(
180
+
181
+ # The public continuation instruction.
182
+
183
+ message:
184
+ )
185
+ end
186
+
187
+ sig do
188
+ override.returns(
189
+ {message: String}
190
+ )
191
+ end
192
+ def to_hash
193
+ end
194
+
195
+ end
196
+ end
197
+
52
198
  end
53
199
 
54
200
  end