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
@@ -0,0 +1,117 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+
6
+ module Responses
7
+
8
+ class ResponseConfigurationUpdateItemParam < OpenAI::Internal::Type::BaseModel
9
+
10
+ OrHash = T.type_alias do
11
+ T.any(
12
+ OpenAI::Responses::ResponseConfigurationUpdateItemParam,
13
+ OpenAI::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ # The item type. Always `configuration_update`.
18
+ sig { returns(Symbol) }
19
+ attr_accessor :type
20
+
21
+ # The unique ID of the configuration update item.
22
+ sig { returns(T.nilable(String)) }
23
+ attr_accessor :id
24
+
25
+ # Updates to reasoning configuration. Only effort is supported.
26
+ sig { returns(T.nilable(OpenAI::Responses::ResponseConfigurationUpdateItemParam::Reasoning)) }
27
+ attr_reader :reasoning
28
+
29
+ sig { params(reasoning: OpenAI::Responses::ResponseConfigurationUpdateItemParam::Reasoning::OrHash).void }
30
+ attr_writer :reasoning
31
+
32
+ # An update to the conversation's response configuration. The configuration
33
+ # remains in effect for subsequent responses until it is replaced by another
34
+ # configuration update.
35
+ sig do
36
+ params(
37
+
38
+ id: T.nilable(String),
39
+
40
+ reasoning: OpenAI::Responses::ResponseConfigurationUpdateItemParam::Reasoning::OrHash,
41
+
42
+ type: Symbol
43
+ )
44
+ .returns(T.attached_class)
45
+ end
46
+ def self.new(
47
+
48
+ # The unique ID of the configuration update item.
49
+ id: nil,
50
+
51
+ # Updates to reasoning configuration. Only effort is supported.
52
+ reasoning: nil,
53
+
54
+ # The item type. Always `configuration_update`.
55
+
56
+ type: :configuration_update
57
+ )
58
+ end
59
+
60
+ sig do
61
+ override.returns(
62
+ {
63
+ type: Symbol,
64
+ id: T.nilable(String),
65
+ reasoning: OpenAI::Responses::ResponseConfigurationUpdateItemParam::Reasoning
66
+ }
67
+ )
68
+ end
69
+ def to_hash
70
+ end
71
+
72
+ class Reasoning < OpenAI::Internal::Type::BaseModel
73
+ OrHash = T.type_alias do
74
+ T.any(
75
+ OpenAI::Responses::ResponseConfigurationUpdateItemParam::Reasoning,
76
+ OpenAI::Internal::AnyHash
77
+ )
78
+ end
79
+
80
+ # The reasoning effort to use for subsequent responses until another configuration
81
+ # update replaces it.
82
+ sig { returns(T.nilable(OpenAI::ReasoningEffort::OrSymbol)) }
83
+ attr_accessor :effort
84
+
85
+ # Updates to reasoning configuration. Only effort is supported.
86
+ sig do
87
+ params(
88
+
89
+ effort: T.nilable(OpenAI::ReasoningEffort::OrSymbol)
90
+ )
91
+ .returns(T.attached_class)
92
+ end
93
+ def self.new(
94
+
95
+ # The reasoning effort to use for subsequent responses until another configuration
96
+ # update replaces it.
97
+
98
+ effort: nil
99
+ )
100
+ end
101
+
102
+ sig do
103
+ override.returns(
104
+ {effort: T.nilable(OpenAI::ReasoningEffort::OrSymbol)}
105
+ )
106
+ end
107
+ def to_hash
108
+ end
109
+
110
+ end
111
+
112
+ end
113
+
114
+ end
115
+
116
+ end
117
+ end
@@ -99,9 +99,9 @@ module OpenAI
99
99
  sig { returns(T.nilable(T::Hash[Symbol, String])) }
100
100
  attr_accessor :metadata
101
101
 
102
- # Model ID used to generate the response, like `gpt-4o` or `o3`. OpenAI offers a
103
- # wide range of models with different capabilities, performance characteristics,
104
- # and price points. Refer to the
102
+ # Model ID used to generate the response, like `gpt-6-astra`. OpenAI offers a wide
103
+ # range of models with different capabilities, performance characteristics, and
104
+ # price points. Refer to the
105
105
  # [model guide](https://platform.openai.com/docs/models) to browse and compare
106
106
  # available models.
107
107
  sig {
@@ -186,8 +186,6 @@ module OpenAI
186
186
  sig { returns(T.nilable(OpenAI::Responses::ResponseCreateParams::PromptCacheRetention::OrSymbol)) }
187
187
  attr_accessor :prompt_cache_retention
188
188
 
189
- # **gpt-5 and o-series models only**
190
- #
191
189
  # Configuration options for
192
190
  # [reasoning models](https://platform.openai.com/docs/guides/reasoning).
193
191
  sig { returns(T.nilable(OpenAI::Reasoning)) }
@@ -587,9 +585,9 @@ module OpenAI
587
585
  # a maximum length of 512 characters.
588
586
  metadata: nil,
589
587
 
590
- # Model ID used to generate the response, like `gpt-4o` or `o3`. OpenAI offers a
591
- # wide range of models with different capabilities, performance characteristics,
592
- # and price points. Refer to the
588
+ # Model ID used to generate the response, like `gpt-6-astra`. OpenAI offers a wide
589
+ # range of models with different capabilities, performance characteristics, and
590
+ # price points. Refer to the
593
591
  # [model guide](https://platform.openai.com/docs/models) to browse and compare
594
592
  # available models.
595
593
  model: nil,
@@ -645,8 +643,6 @@ module OpenAI
645
643
  # `prompt_cache_retention` is not specified.
646
644
  prompt_cache_retention: nil,
647
645
 
648
- # **gpt-5 and o-series models only**
649
- #
650
646
  # Configuration options for
651
647
  # [reasoning models](https://platform.openai.com/docs/guides/reasoning).
652
648
  reasoning: nil,
@@ -37,6 +37,13 @@ module OpenAI
37
37
  sig { params(id: String).void }
38
38
  attr_writer :id
39
39
 
40
+ # Whether the custom tool call runs asynchronously.
41
+ sig { returns(T.nilable(T::Boolean)) }
42
+ attr_reader :async
43
+
44
+ sig { params(async: T::Boolean).void }
45
+ attr_writer :async
46
+
40
47
  # The execution context that produced this tool call.
41
48
  sig {
42
49
  returns(
@@ -69,6 +76,8 @@ module OpenAI
69
76
 
70
77
  id: String,
71
78
 
79
+ async: T::Boolean,
80
+
72
81
  caller_: T.nilable(
73
82
  T.any(
74
83
  OpenAI::Responses::ResponseCustomToolCall::Caller::Direct::OrHash,
@@ -96,6 +105,9 @@ module OpenAI
96
105
  # The unique ID of the custom tool call in the OpenAI platform.
97
106
  id: nil,
98
107
 
108
+ # Whether the custom tool call runs asynchronously.
109
+ async: nil,
110
+
99
111
  # The execution context that produced this tool call.
100
112
  caller_: nil,
101
113
 
@@ -116,6 +128,7 @@ module OpenAI
116
128
  name: String,
117
129
  type: Symbol,
118
130
  id: String,
131
+ async: T::Boolean,
119
132
  caller_: T.nilable(
120
133
  T.any(
121
134
  OpenAI::Responses::ResponseCustomToolCall::Caller::Direct,
@@ -44,6 +44,8 @@ module OpenAI
44
44
 
45
45
  status: OpenAI::Responses::ResponseCustomToolCallItem::Status::OrSymbol,
46
46
 
47
+ async: T::Boolean,
48
+
47
49
  caller_: T.nilable(
48
50
  T.any(
49
51
  OpenAI::Responses::ResponseCustomToolCall::Caller::Direct::OrHash,
@@ -77,6 +79,9 @@ module OpenAI
77
79
  # Populated when items are returned via API.
78
80
  status:,
79
81
 
82
+ # Whether the custom tool call runs asynchronously.
83
+ async: nil,
84
+
80
85
  # The execution context that produced this tool call.
81
86
  caller_: nil,
82
87
 
@@ -101,6 +106,7 @@ module OpenAI
101
106
  id: String,
102
107
  status: OpenAI::Responses::ResponseCustomToolCallItem::Status::TaggedSymbol,
103
108
  type: Symbol,
109
+ async: T::Boolean,
104
110
  caller_: T.nilable(
105
111
  T.any(
106
112
  OpenAI::Responses::ResponseCustomToolCall::Caller::Direct,
@@ -22,13 +22,21 @@ module OpenAI
22
22
  sig { returns(String) }
23
23
  attr_accessor :message
24
24
 
25
+ sig { returns(T.nilable(OpenAI::Responses::ResponseError::Misalignment)) }
26
+ attr_reader :misalignment
27
+
28
+ sig { params(misalignment: OpenAI::Responses::ResponseError::Misalignment::OrHash).void }
29
+ attr_writer :misalignment
30
+
25
31
  # An error object returned when the model fails to generate a Response.
26
32
  sig do
27
33
  params(
28
34
 
29
35
  code: OpenAI::Responses::ResponseError::Code::OrSymbol,
30
36
 
31
- message: String
37
+ message: String,
38
+
39
+ misalignment: OpenAI::Responses::ResponseError::Misalignment::OrHash
32
40
  )
33
41
  .returns(T.attached_class)
34
42
  end
@@ -38,14 +46,19 @@ module OpenAI
38
46
  code:,
39
47
 
40
48
  # A human-readable description of the error.
49
+ message:,
41
50
 
42
- message:
51
+ misalignment: nil
43
52
  )
44
53
  end
45
54
 
46
55
  sig do
47
56
  override.returns(
48
- {code: OpenAI::Responses::ResponseError::Code::TaggedSymbol, message: String}
57
+ {
58
+ code: OpenAI::Responses::ResponseError::Code::TaggedSymbol,
59
+ message: String,
60
+ misalignment: OpenAI::Responses::ResponseError::Misalignment
61
+ }
49
62
  )
50
63
  end
51
64
  def to_hash
@@ -66,6 +79,10 @@ module OpenAI
66
79
  OpenAI::Responses::ResponseError::Code::TaggedSymbol
67
80
  )
68
81
  BIO_POLICY = T.let(:bio_policy, OpenAI::Responses::ResponseError::Code::TaggedSymbol)
82
+ MISALIGNMENT_POLICY_VIOLATION = T.let(
83
+ :misalignment_policy_violation,
84
+ OpenAI::Responses::ResponseError::Code::TaggedSymbol
85
+ )
69
86
  VECTOR_STORE_TIMEOUT = T.let(:vector_store_timeout, OpenAI::Responses::ResponseError::Code::TaggedSymbol)
70
87
  INVALID_IMAGE = T.let(:invalid_image, OpenAI::Responses::ResponseError::Code::TaggedSymbol)
71
88
  INVALID_IMAGE_FORMAT = T.let(:invalid_image_format, OpenAI::Responses::ResponseError::Code::TaggedSymbol)
@@ -96,6 +113,147 @@ module OpenAI
96
113
  end
97
114
  end
98
115
 
116
+ class Misalignment < OpenAI::Internal::Type::BaseModel
117
+ OrHash = T.type_alias do
118
+ T.any(
119
+ OpenAI::Responses::ResponseError::Misalignment,
120
+ OpenAI::Internal::AnyHash
121
+ )
122
+ end
123
+
124
+ # The public explanation for this block.
125
+ sig { returns(T.nilable(String)) }
126
+ attr_reader :detailed_explanation
127
+
128
+ sig { params(detailed_explanation: String).void }
129
+ attr_writer :detailed_explanation
130
+
131
+ # An optional classification; clients must accept additional values.
132
+ sig { returns(T.nilable(OpenAI::Responses::ResponseError::Misalignment::ErrorType::Variants)) }
133
+ attr_reader :error_type
134
+
135
+ sig {
136
+ params(error_type: T.any(String, OpenAI::Responses::ResponseError::Misalignment::ErrorType::OrSymbol)).void
137
+ }
138
+ attr_writer :error_type
139
+
140
+ # An optional public continuation instruction.
141
+ sig { returns(T.nilable(OpenAI::Responses::ResponseError::Misalignment::Steer)) }
142
+ attr_reader :steer
143
+
144
+ sig { params(steer: OpenAI::Responses::ResponseError::Misalignment::Steer::OrHash).void }
145
+ attr_writer :steer
146
+
147
+ sig do
148
+ params(
149
+
150
+ detailed_explanation: String,
151
+
152
+ error_type: T.any(String, OpenAI::Responses::ResponseError::Misalignment::ErrorType::OrSymbol),
153
+
154
+ steer: OpenAI::Responses::ResponseError::Misalignment::Steer::OrHash
155
+ )
156
+ .returns(T.attached_class)
157
+ end
158
+ def self.new(
159
+
160
+ # The public explanation for this block.
161
+ detailed_explanation: nil,
162
+
163
+ # An optional classification; clients must accept additional values.
164
+ error_type: nil,
165
+
166
+ # An optional public continuation instruction.
167
+
168
+ steer: nil
169
+ )
170
+ end
171
+
172
+ sig do
173
+ override.returns(
174
+ {
175
+ detailed_explanation: String,
176
+ error_type: OpenAI::Responses::ResponseError::Misalignment::ErrorType::Variants,
177
+ steer: OpenAI::Responses::ResponseError::Misalignment::Steer
178
+ }
179
+ )
180
+ end
181
+ def to_hash
182
+ end
183
+
184
+ # An optional classification; clients must accept additional values.
185
+ module ErrorType
186
+ extend OpenAI::Internal::Type::Union
187
+
188
+ Variants = T.type_alias {
189
+ T.any(String, OpenAI::Responses::ResponseError::Misalignment::ErrorType::TaggedSymbol)
190
+ }
191
+
192
+ sig { override.returns(T::Array[OpenAI::Responses::ResponseError::Misalignment::ErrorType::Variants]) }
193
+ def self.variants
194
+ end
195
+
196
+ TaggedSymbol = T.type_alias do
197
+ T.all(Symbol, OpenAI::Responses::ResponseError::Misalignment::ErrorType)
198
+ end
199
+
200
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
201
+
202
+ POTENTIALLY_UNINTENDED_DATA_TRANSFER = T.let(
203
+ :potentially_unintended_data_transfer,
204
+ OpenAI::Responses::ResponseError::Misalignment::ErrorType::TaggedSymbol
205
+ )
206
+ POTENTIALLY_UNINTENDED_DATA_ACCESS = T.let(
207
+ :potentially_unintended_data_access,
208
+ OpenAI::Responses::ResponseError::Misalignment::ErrorType::TaggedSymbol
209
+ )
210
+ POTENTIALLY_UNINTENDED_DESTRUCTIVE_ACTIVITY = T.let(
211
+ :potentially_unintended_destructive_activity,
212
+ OpenAI::Responses::ResponseError::Misalignment::ErrorType::TaggedSymbol
213
+ )
214
+ OTHER = T.let(:other, OpenAI::Responses::ResponseError::Misalignment::ErrorType::TaggedSymbol)
215
+
216
+ end
217
+
218
+ class Steer < OpenAI::Internal::Type::BaseModel
219
+ OrHash = T.type_alias do
220
+ T.any(
221
+ OpenAI::Responses::ResponseError::Misalignment::Steer,
222
+ OpenAI::Internal::AnyHash
223
+ )
224
+ end
225
+
226
+ # The public continuation instruction.
227
+ sig { returns(String) }
228
+ attr_accessor :message
229
+
230
+ # An optional public continuation instruction.
231
+ sig do
232
+ params(
233
+
234
+ message: String
235
+ )
236
+ .returns(T.attached_class)
237
+ end
238
+ def self.new(
239
+
240
+ # The public continuation instruction.
241
+
242
+ message:
243
+ )
244
+ end
245
+
246
+ sig do
247
+ override.returns(
248
+ {message: String}
249
+ )
250
+ end
251
+ def to_hash
252
+ end
253
+
254
+ end
255
+ end
256
+
99
257
  end
100
258
 
101
259
  end
@@ -41,6 +41,13 @@ module OpenAI
41
41
  sig { params(id: String).void }
42
42
  attr_writer :id
43
43
 
44
+ # Whether the function tool call runs asynchronously.
45
+ sig { returns(T.nilable(T::Boolean)) }
46
+ attr_reader :async
47
+
48
+ sig { params(async: T::Boolean).void }
49
+ attr_writer :async
50
+
44
51
  # The execution context that produced this tool call.
45
52
  sig {
46
53
  returns(
@@ -83,6 +90,8 @@ module OpenAI
83
90
 
84
91
  id: String,
85
92
 
93
+ async: T::Boolean,
94
+
86
95
  caller_: T.nilable(
87
96
  T.any(
88
97
  OpenAI::Responses::ResponseFunctionToolCall::Caller::Direct::OrHash,
@@ -112,6 +121,9 @@ module OpenAI
112
121
  # The unique ID of the function tool call.
113
122
  id: nil,
114
123
 
124
+ # Whether the function tool call runs asynchronously.
125
+ async: nil,
126
+
115
127
  # The execution context that produced this tool call.
116
128
  caller_: nil,
117
129
 
@@ -136,6 +148,7 @@ module OpenAI
136
148
  name: String,
137
149
  type: Symbol,
138
150
  id: String,
151
+ async: T::Boolean,
139
152
  caller_: T.nilable(
140
153
  T.any(
141
154
  OpenAI::Responses::ResponseFunctionToolCall::Caller::Direct,
@@ -46,6 +46,8 @@ module OpenAI
46
46
 
47
47
  status: OpenAI::Responses::ResponseFunctionToolCallItem::Status::OrSymbol,
48
48
 
49
+ async: T::Boolean,
50
+
49
51
  caller_: T.nilable(
50
52
  T.any(
51
53
  OpenAI::Responses::ResponseFunctionToolCall::Caller::Direct::OrHash,
@@ -79,6 +81,9 @@ module OpenAI
79
81
  # Populated when items are returned via API.
80
82
  status:,
81
83
 
84
+ # Whether the function tool call runs asynchronously.
85
+ async: nil,
86
+
82
87
  # The execution context that produced this tool call.
83
88
  caller_: nil,
84
89
 
@@ -103,6 +108,7 @@ module OpenAI
103
108
  id: String,
104
109
  status: OpenAI::Responses::ResponseFunctionToolCallItem::Status::TaggedSymbol,
105
110
  type: Symbol,
111
+ async: T::Boolean,
106
112
  caller_: T.nilable(
107
113
  T.any(
108
114
  OpenAI::Responses::ResponseFunctionToolCall::Caller::Direct,
@@ -30,6 +30,10 @@ module OpenAI
30
30
  attr_accessor :type
31
31
 
32
32
  # An event that is emitted when a response finishes as incomplete.
33
+ #
34
+ # Over WebSocket, steering can finish a response with
35
+ # `response.incomplete_details.reason` set to `steered`, followed automatically by
36
+ # a successor `response.created` that commits the queued steering input.
33
37
  sig do
34
38
  params(
35
39
 
@@ -27,6 +27,7 @@ module OpenAI
27
27
  OpenAI::Responses::ResponseInputItem::ToolSearchCall,
28
28
  OpenAI::Responses::ResponseToolSearchOutputItemParam,
29
29
  OpenAI::Responses::ResponseInputItem::AdditionalTools,
30
+ OpenAI::Responses::ResponseConfigurationUpdateItemParam,
30
31
  OpenAI::Responses::ResponseReasoningItem,
31
32
  OpenAI::Responses::ResponseCompactionItemParam,
32
33
  OpenAI::Responses::ResponseInputItem::ImageGenerationCall,
@@ -22,6 +22,7 @@ module OpenAI
22
22
  OpenAI::Responses::ResponseToolSearchCall,
23
23
  OpenAI::Responses::ResponseToolSearchOutputItem,
24
24
  OpenAI::Responses::ResponseItem::AdditionalTools,
25
+ OpenAI::Responses::ResponseConfigurationUpdateItem,
25
26
  OpenAI::Responses::ResponseReasoningItem,
26
27
  OpenAI::Responses::ResponseItem::Program,
27
28
  OpenAI::Responses::ResponseItem::ProgramOutput,
@@ -53,6 +53,7 @@ module OpenAI
53
53
  OpenAI::Responses::ResponseToolSearchCall::OrHash,
54
54
  OpenAI::Responses::ResponseToolSearchOutputItem::OrHash,
55
55
  OpenAI::Responses::ResponseItem::AdditionalTools::OrHash,
56
+ OpenAI::Responses::ResponseConfigurationUpdateItem::OrHash,
56
57
  OpenAI::Responses::ResponseReasoningItem::OrHash,
57
58
  OpenAI::Responses::ResponseItem::Program::OrHash,
58
59
  OpenAI::Responses::ResponseItem::ProgramOutput::OrHash,
@@ -0,0 +1,146 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+
6
+ module Responses
7
+
8
+ class ResponseSteerAcceptedEvent < OpenAI::Internal::Type::BaseModel
9
+
10
+ OrHash = T.type_alias do
11
+ T.any(
12
+ OpenAI::Responses::ResponseSteerAcceptedEvent,
13
+ OpenAI::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ # The sequence number for this event.
18
+ sig { returns(Integer) }
19
+ attr_accessor :sequence_number
20
+
21
+ # The accepted steering submission.
22
+ sig { returns(OpenAI::Responses::ResponseSteerAcceptedEvent::Steer) }
23
+ attr_reader :steer
24
+
25
+ sig { params(steer: OpenAI::Responses::ResponseSteerAcceptedEvent::Steer::OrHash).void }
26
+ attr_writer :steer
27
+
28
+ # The event discriminator. Always `response.steer.accepted`.
29
+ sig { returns(Symbol) }
30
+ attr_accessor :type
31
+
32
+ # The WebSocket lane that emitted this event. This field is present when the
33
+ # target response's `response.create` event supplied a `stream_id`.
34
+ sig { returns(T.nilable(String)) }
35
+ attr_reader :stream_id
36
+
37
+ sig { params(stream_id: String).void }
38
+ attr_writer :stream_id
39
+
40
+ # Emitted when steering input has been validated and queued. Acceptance means the
41
+ # server owns the input, not that it has been applied. The successor's
42
+ # `response.created` event is the commit point. If accepted input cannot be
43
+ # committed, `response.steer.failed` returns it with the same steering ID.
44
+ #
45
+ # When the response stops for client-owned tool output or approval, the input
46
+ # remains queued and `response.steer.pending` is emitted after
47
+ # `response.completed`. Fill the pending event's `required_input` stubs with saved
48
+ # results and send one matching explicit `response.create` per parent. Do not
49
+ # resend accepted input while it is still queued.
50
+ sig do
51
+ params(
52
+
53
+ sequence_number: Integer,
54
+
55
+ steer: OpenAI::Responses::ResponseSteerAcceptedEvent::Steer::OrHash,
56
+
57
+ stream_id: String,
58
+
59
+ type: Symbol
60
+ )
61
+ .returns(T.attached_class)
62
+ end
63
+ def self.new(
64
+
65
+ # The sequence number for this event.
66
+ sequence_number:,
67
+
68
+ # The accepted steering submission.
69
+ steer:,
70
+
71
+ # The WebSocket lane that emitted this event. This field is present when the
72
+ # target response's `response.create` event supplied a `stream_id`.
73
+ stream_id: nil,
74
+
75
+ # The event discriminator. Always `response.steer.accepted`.
76
+
77
+ type: :"response.steer.accepted"
78
+ )
79
+ end
80
+
81
+ sig do
82
+ override.returns(
83
+ {
84
+ sequence_number: Integer,
85
+ steer: OpenAI::Responses::ResponseSteerAcceptedEvent::Steer,
86
+ type: Symbol,
87
+ stream_id: String
88
+ }
89
+ )
90
+ end
91
+ def to_hash
92
+ end
93
+
94
+ class Steer < OpenAI::Internal::Type::BaseModel
95
+ OrHash = T.type_alias do
96
+ T.any(
97
+ OpenAI::Responses::ResponseSteerAcceptedEvent::Steer,
98
+ OpenAI::Internal::AnyHash
99
+ )
100
+ end
101
+
102
+ # The ID assigned to the steering submission.
103
+ sig { returns(String) }
104
+ attr_accessor :id
105
+
106
+ # The ID of the response being steered.
107
+ sig { returns(String) }
108
+ attr_accessor :previous_response_id
109
+
110
+ # The accepted steering submission.
111
+ sig do
112
+ params(
113
+
114
+ id: String,
115
+
116
+ previous_response_id: String
117
+ )
118
+ .returns(T.attached_class)
119
+ end
120
+ def self.new(
121
+
122
+ # The ID assigned to the steering submission.
123
+ id:,
124
+
125
+ # The ID of the response being steered.
126
+
127
+ previous_response_id:
128
+ )
129
+ end
130
+
131
+ sig do
132
+ override.returns(
133
+ {id: String, previous_response_id: String}
134
+ )
135
+ end
136
+ def to_hash
137
+ end
138
+
139
+ end
140
+
141
+ end
142
+
143
+ end
144
+
145
+ end
146
+ end