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,102 @@
1
+ module OpenAI
2
+ module Models
3
+ class BetaResponseSteerFailedEvent = Beta::BetaResponseSteerFailedEvent
4
+
5
+ module Beta
6
+ type beta_response_steer_failed_event =
7
+ {
8
+ error: OpenAI::Beta::BetaResponseSteerFailedEvent::Error,
9
+ sequence_number: Integer,
10
+ steer: OpenAI::Beta::BetaResponseSteerFailedEvent::Steer,
11
+ type: :"response.steer.failed",
12
+ stream_id: String
13
+ }
14
+
15
+ class BetaResponseSteerFailedEvent < OpenAI::Internal::Type::BaseModel
16
+ attr_accessor error: OpenAI::Beta::BetaResponseSteerFailedEvent::Error
17
+
18
+ attr_accessor sequence_number: Integer
19
+
20
+ attr_accessor steer: OpenAI::Beta::BetaResponseSteerFailedEvent::Steer
21
+
22
+ attr_accessor type: :"response.steer.failed"
23
+
24
+ attr_reader stream_id: String?
25
+
26
+ def stream_id=: (String) -> String
27
+
28
+ def initialize: (
29
+ error: OpenAI::Beta::BetaResponseSteerFailedEvent::Error,
30
+ sequence_number: Integer,
31
+ steer: OpenAI::Beta::BetaResponseSteerFailedEvent::Steer,
32
+ ?stream_id: String,
33
+ ?type: :"response.steer.failed"
34
+ ) -> void
35
+
36
+ def to_hash: -> {
37
+ error: OpenAI::Beta::BetaResponseSteerFailedEvent::Error,
38
+ sequence_number: Integer,
39
+ steer: OpenAI::Beta::BetaResponseSteerFailedEvent::Steer,
40
+ type: :"response.steer.failed",
41
+ stream_id: String
42
+ }
43
+
44
+ type error =
45
+ {
46
+ code: OpenAI::Models::Beta::beta_response_steer_error_code,
47
+ message: String,
48
+ type: :invalid_request_error
49
+ }
50
+
51
+ class Error < OpenAI::Internal::Type::BaseModel
52
+ attr_accessor code: OpenAI::Models::Beta::beta_response_steer_error_code
53
+
54
+ attr_accessor message: String
55
+
56
+ attr_accessor type: :invalid_request_error
57
+
58
+ def initialize: (
59
+ code: OpenAI::Models::Beta::beta_response_steer_error_code,
60
+ message: String,
61
+ ?type: :invalid_request_error
62
+ ) -> void
63
+
64
+ def to_hash: -> {
65
+ code: OpenAI::Models::Beta::beta_response_steer_error_code,
66
+ message: String,
67
+ type: :invalid_request_error
68
+ }
69
+ end
70
+
71
+ type steer =
72
+ {
73
+ input: OpenAI::Models::Beta::beta_response_steer_input,
74
+ previous_response_id: String,
75
+ id: String
76
+ }
77
+
78
+ class Steer < OpenAI::Internal::Type::BaseModel
79
+ attr_accessor input: OpenAI::Models::Beta::beta_response_steer_input
80
+
81
+ attr_accessor previous_response_id: String
82
+
83
+ attr_reader id: String?
84
+
85
+ def id=: (String) -> String
86
+
87
+ def initialize: (
88
+ input: OpenAI::Models::Beta::beta_response_steer_input,
89
+ previous_response_id: String,
90
+ ?id: String
91
+ ) -> void
92
+
93
+ def to_hash: -> {
94
+ input: OpenAI::Models::Beta::beta_response_steer_input,
95
+ previous_response_id: String,
96
+ id: String
97
+ }
98
+ end
99
+ end
100
+ end
101
+ end
102
+ end
@@ -0,0 +1,214 @@
1
+ module OpenAI
2
+ module Models
3
+ module BetaResponseSteerInput = Beta::BetaResponseSteerInput
4
+
5
+ module Beta
6
+ type beta_response_steer_input =
7
+ String
8
+ | ::Array[OpenAI::Models::Beta::BetaResponseSteerInput::response_steer_input_item_list]
9
+
10
+ module BetaResponseSteerInput
11
+ extend OpenAI::Internal::Type::Union
12
+
13
+ type response_steer_input_item_list =
14
+ OpenAI::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::Message
15
+ | OpenAI::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput
16
+
17
+ module ResponseSteerInputItemList
18
+ extend OpenAI::Internal::Type::Union
19
+
20
+ type message =
21
+ {
22
+ content: OpenAI::Models::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::Message::content,
23
+ role: :user,
24
+ type: :message,
25
+ id: String?,
26
+ agent: OpenAI::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::Message::Agent?,
27
+ status: String?
28
+ }
29
+
30
+ class Message < OpenAI::Internal::Type::BaseModel
31
+ attr_accessor content: OpenAI::Models::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::Message::content
32
+
33
+ attr_accessor role: :user
34
+
35
+ attr_accessor type: :message
36
+
37
+ attr_accessor id: String?
38
+
39
+ attr_accessor agent: OpenAI::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::Message::Agent?
40
+
41
+ attr_accessor status: String?
42
+
43
+ def initialize: (
44
+ content: OpenAI::Models::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::Message::content,
45
+ ?id: String?,
46
+ ?agent: OpenAI::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::Message::Agent?,
47
+ ?status: String?,
48
+ ?role: :user,
49
+ ?type: :message
50
+ ) -> void
51
+
52
+ def to_hash: -> {
53
+ content: OpenAI::Models::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::Message::content,
54
+ role: :user,
55
+ type: :message,
56
+ id: String?,
57
+ agent: OpenAI::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::Message::Agent?,
58
+ status: String?
59
+ }
60
+
61
+ type content =
62
+ ::Array[OpenAI::Models::Beta::beta_response_steer_input_content]
63
+ | String
64
+
65
+ module Content
66
+ extend OpenAI::Internal::Type::Union
67
+
68
+ def self?.variants: -> ::Array[OpenAI::Models::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::Message::content]
69
+
70
+ BetaResponseSteerInputContentArray: OpenAI::Internal::Type::Converter
71
+ end
72
+
73
+ type agent = { agent_name: String }
74
+
75
+ class Agent < OpenAI::Internal::Type::BaseModel
76
+ attr_accessor agent_name: String
77
+
78
+ def initialize: (agent_name: String) -> void
79
+
80
+ def to_hash: -> { agent_name: String }
81
+ end
82
+ end
83
+
84
+ type function_call_output =
85
+ {
86
+ output: OpenAI::Models::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::output,
87
+ type: :function_call_output,
88
+ id: String?,
89
+ agent: OpenAI::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::Agent?,
90
+ call_id: String?,
91
+ caller_: OpenAI::Models::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::caller_?,
92
+ name: String?,
93
+ namespace: String?,
94
+ status: OpenAI::Models::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::status?
95
+ }
96
+
97
+ class FunctionCallOutput < OpenAI::Internal::Type::BaseModel
98
+ attr_accessor output: OpenAI::Models::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::output
99
+
100
+ attr_accessor type: :function_call_output
101
+
102
+ attr_accessor id: String?
103
+
104
+ attr_accessor agent: OpenAI::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::Agent?
105
+
106
+ attr_accessor call_id: String?
107
+
108
+ attr_accessor caller_: OpenAI::Models::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::caller_?
109
+
110
+ attr_accessor name: String?
111
+
112
+ attr_accessor namespace: String?
113
+
114
+ attr_accessor status: OpenAI::Models::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::status?
115
+
116
+ def initialize: (
117
+ output: OpenAI::Models::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::output,
118
+ ?id: String?,
119
+ ?agent: OpenAI::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::Agent?,
120
+ ?call_id: String?,
121
+ ?caller_: OpenAI::Models::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::caller_?,
122
+ ?name: String?,
123
+ ?namespace: String?,
124
+ ?status: OpenAI::Models::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::status?,
125
+ ?type: :function_call_output
126
+ ) -> void
127
+
128
+ def to_hash: -> {
129
+ output: OpenAI::Models::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::output,
130
+ type: :function_call_output,
131
+ id: String?,
132
+ agent: OpenAI::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::Agent?,
133
+ call_id: String?,
134
+ caller_: OpenAI::Models::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::caller_?,
135
+ name: String?,
136
+ namespace: String?,
137
+ status: OpenAI::Models::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::status?
138
+ }
139
+
140
+ type output =
141
+ String
142
+ | OpenAI::Models::Beta::beta_response_function_call_output_item_list
143
+
144
+ module Output
145
+ extend OpenAI::Internal::Type::Union
146
+
147
+ def self?.variants: -> ::Array[OpenAI::Models::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::output]
148
+ end
149
+
150
+ type agent = { agent_name: String }
151
+
152
+ class Agent < OpenAI::Internal::Type::BaseModel
153
+ attr_accessor agent_name: String
154
+
155
+ def initialize: (agent_name: String) -> void
156
+
157
+ def to_hash: -> { agent_name: String }
158
+ end
159
+
160
+ type caller_ =
161
+ OpenAI::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::Caller::Direct
162
+ | OpenAI::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::Caller::Program
163
+
164
+ module Caller
165
+ extend OpenAI::Internal::Type::Union
166
+
167
+ type direct = { type: :direct }
168
+
169
+ class Direct < OpenAI::Internal::Type::BaseModel
170
+ attr_accessor type: :direct
171
+
172
+ def initialize: (?type: :direct) -> void
173
+
174
+ def to_hash: -> { type: :direct }
175
+ end
176
+
177
+ type program = { caller_id: String, type: :program }
178
+
179
+ class Program < OpenAI::Internal::Type::BaseModel
180
+ attr_accessor caller_id: String
181
+
182
+ attr_accessor type: :program
183
+
184
+ def initialize: (caller_id: String, ?type: :program) -> void
185
+
186
+ def to_hash: -> { caller_id: String, type: :program }
187
+ end
188
+
189
+ def self?.variants: -> ::Array[OpenAI::Models::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::caller_]
190
+ end
191
+
192
+ type status = :in_progress | :completed | :incomplete
193
+
194
+ module Status
195
+ extend OpenAI::Internal::Type::Enum
196
+
197
+ IN_PROGRESS: :in_progress
198
+ COMPLETED: :completed
199
+ INCOMPLETE: :incomplete
200
+
201
+ def self?.values: -> ::Array[OpenAI::Models::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::status]
202
+ end
203
+ end
204
+
205
+ def self?.variants: -> ::Array[OpenAI::Models::Beta::BetaResponseSteerInput::response_steer_input_item_list]
206
+ end
207
+
208
+ def self?.variants: -> ::Array[OpenAI::Models::Beta::beta_response_steer_input]
209
+
210
+ ResponseSteerInputItemListArray: OpenAI::Internal::Type::Converter
211
+ end
212
+ end
213
+ end
214
+ end
@@ -0,0 +1,18 @@
1
+ module OpenAI
2
+ module Models
3
+ module BetaResponseSteerInputContent = Beta::BetaResponseSteerInputContent
4
+
5
+ module Beta
6
+ type beta_response_steer_input_content =
7
+ OpenAI::Beta::BetaResponseInputTextContent
8
+ | OpenAI::Beta::BetaResponseInputImageContent
9
+ | OpenAI::Beta::BetaResponseInputFileContent
10
+
11
+ module BetaResponseSteerInputContent
12
+ extend OpenAI::Internal::Type::Union
13
+
14
+ def self?.variants: -> ::Array[OpenAI::Models::Beta::beta_response_steer_input_content]
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,63 @@
1
+ module OpenAI
2
+ module Models
3
+ class BetaResponseSteerPendingEvent = Beta::BetaResponseSteerPendingEvent
4
+
5
+ module Beta
6
+ type beta_response_steer_pending_event =
7
+ {
8
+ reason: OpenAI::Models::Beta::beta_response_steer_pending_reason,
9
+ required_input: ::Array[OpenAI::Models::Beta::beta_response_steer_required_input],
10
+ sequence_number: Integer,
11
+ steer: OpenAI::Beta::BetaResponseSteerPendingEvent::Steer,
12
+ type: :"response.steer.pending",
13
+ stream_id: String
14
+ }
15
+
16
+ class BetaResponseSteerPendingEvent < OpenAI::Internal::Type::BaseModel
17
+ attr_accessor reason: OpenAI::Models::Beta::beta_response_steer_pending_reason
18
+
19
+ attr_accessor required_input: ::Array[OpenAI::Models::Beta::beta_response_steer_required_input]
20
+
21
+ attr_accessor sequence_number: Integer
22
+
23
+ attr_accessor steer: OpenAI::Beta::BetaResponseSteerPendingEvent::Steer
24
+
25
+ attr_accessor type: :"response.steer.pending"
26
+
27
+ attr_reader stream_id: String?
28
+
29
+ def stream_id=: (String) -> String
30
+
31
+ def initialize: (
32
+ reason: OpenAI::Models::Beta::beta_response_steer_pending_reason,
33
+ required_input: ::Array[OpenAI::Models::Beta::beta_response_steer_required_input],
34
+ sequence_number: Integer,
35
+ steer: OpenAI::Beta::BetaResponseSteerPendingEvent::Steer,
36
+ ?stream_id: String,
37
+ ?type: :"response.steer.pending"
38
+ ) -> void
39
+
40
+ def to_hash: -> {
41
+ reason: OpenAI::Models::Beta::beta_response_steer_pending_reason,
42
+ required_input: ::Array[OpenAI::Models::Beta::beta_response_steer_required_input],
43
+ sequence_number: Integer,
44
+ steer: OpenAI::Beta::BetaResponseSteerPendingEvent::Steer,
45
+ type: :"response.steer.pending",
46
+ stream_id: String
47
+ }
48
+
49
+ type steer = { id: String, previous_response_id: String }
50
+
51
+ class Steer < OpenAI::Internal::Type::BaseModel
52
+ attr_accessor id: String
53
+
54
+ attr_accessor previous_response_id: String
55
+
56
+ def initialize: (id: String, previous_response_id: String) -> void
57
+
58
+ def to_hash: -> { id: String, previous_response_id: String }
59
+ end
60
+ end
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,16 @@
1
+ module OpenAI
2
+ module Models
3
+ module BetaResponseSteerPendingReason = Beta::BetaResponseSteerPendingReason
4
+
5
+ module Beta
6
+ type beta_response_steer_pending_reason =
7
+ :waiting_for_required_input | String
8
+
9
+ module BetaResponseSteerPendingReason
10
+ extend OpenAI::Internal::Type::Union
11
+
12
+ def self?.variants: -> ::Array[OpenAI::Models::Beta::beta_response_steer_pending_reason]
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,161 @@
1
+ module OpenAI
2
+ module Models
3
+ module BetaResponseSteerRequiredInput = Beta::BetaResponseSteerRequiredInput
4
+
5
+ module Beta
6
+ type beta_response_steer_required_input =
7
+ OpenAI::Beta::BetaResponseSteerRequiredInput::FunctionCallOutput
8
+ | OpenAI::Beta::BetaResponseSteerRequiredInput::CustomToolCallOutput
9
+ | OpenAI::Beta::BetaResponseSteerRequiredInput::ComputerCallOutput
10
+ | OpenAI::Beta::BetaResponseSteerRequiredInput::ShellCallOutput
11
+ | OpenAI::Beta::BetaResponseSteerRequiredInput::ApplyPatchCallOutput
12
+ | OpenAI::Beta::BetaResponseSteerRequiredInput::ToolSearchOutput
13
+ | OpenAI::Beta::BetaResponseSteerRequiredInput::McpApprovalResponse
14
+
15
+ module BetaResponseSteerRequiredInput
16
+ extend OpenAI::Internal::Type::Union
17
+
18
+ type function_call_output =
19
+ { call_id: String, name: String, type: :function_call_output }
20
+
21
+ class FunctionCallOutput < OpenAI::Internal::Type::BaseModel
22
+ attr_accessor call_id: String
23
+
24
+ attr_accessor name: String
25
+
26
+ attr_accessor type: :function_call_output
27
+
28
+ def initialize: (
29
+ call_id: String,
30
+ name: String,
31
+ ?type: :function_call_output
32
+ ) -> void
33
+
34
+ def to_hash: -> {
35
+ call_id: String,
36
+ name: String,
37
+ type: :function_call_output
38
+ }
39
+ end
40
+
41
+ type custom_tool_call_output =
42
+ { call_id: String, type: :custom_tool_call_output }
43
+
44
+ class CustomToolCallOutput < OpenAI::Internal::Type::BaseModel
45
+ attr_accessor call_id: String
46
+
47
+ attr_accessor type: :custom_tool_call_output
48
+
49
+ def initialize: (
50
+ call_id: String,
51
+ ?type: :custom_tool_call_output
52
+ ) -> void
53
+
54
+ def to_hash: -> { call_id: String, type: :custom_tool_call_output }
55
+ end
56
+
57
+ type computer_call_output =
58
+ { call_id: String, type: :computer_call_output }
59
+
60
+ class ComputerCallOutput < OpenAI::Internal::Type::BaseModel
61
+ attr_accessor call_id: String
62
+
63
+ attr_accessor type: :computer_call_output
64
+
65
+ def initialize: (
66
+ call_id: String,
67
+ ?type: :computer_call_output
68
+ ) -> void
69
+
70
+ def to_hash: -> { call_id: String, type: :computer_call_output }
71
+ end
72
+
73
+ type shell_call_output = { call_id: String, type: :shell_call_output }
74
+
75
+ class ShellCallOutput < OpenAI::Internal::Type::BaseModel
76
+ attr_accessor call_id: String
77
+
78
+ attr_accessor type: :shell_call_output
79
+
80
+ def initialize: (call_id: String, ?type: :shell_call_output) -> void
81
+
82
+ def to_hash: -> { call_id: String, type: :shell_call_output }
83
+ end
84
+
85
+ type apply_patch_call_output =
86
+ { call_id: String, type: :apply_patch_call_output }
87
+
88
+ class ApplyPatchCallOutput < OpenAI::Internal::Type::BaseModel
89
+ attr_accessor call_id: String
90
+
91
+ attr_accessor type: :apply_patch_call_output
92
+
93
+ def initialize: (
94
+ call_id: String,
95
+ ?type: :apply_patch_call_output
96
+ ) -> void
97
+
98
+ def to_hash: -> { call_id: String, type: :apply_patch_call_output }
99
+ end
100
+
101
+ type tool_search_output =
102
+ {
103
+ call_id: String,
104
+ execution: OpenAI::Models::Beta::BetaResponseSteerRequiredInput::ToolSearchOutput::execution,
105
+ type: :tool_search_output
106
+ }
107
+
108
+ class ToolSearchOutput < OpenAI::Internal::Type::BaseModel
109
+ attr_accessor call_id: String
110
+
111
+ attr_accessor execution: OpenAI::Models::Beta::BetaResponseSteerRequiredInput::ToolSearchOutput::execution
112
+
113
+ attr_accessor type: :tool_search_output
114
+
115
+ def initialize: (
116
+ call_id: String,
117
+ execution: OpenAI::Models::Beta::BetaResponseSteerRequiredInput::ToolSearchOutput::execution,
118
+ ?type: :tool_search_output
119
+ ) -> void
120
+
121
+ def to_hash: -> {
122
+ call_id: String,
123
+ execution: OpenAI::Models::Beta::BetaResponseSteerRequiredInput::ToolSearchOutput::execution,
124
+ type: :tool_search_output
125
+ }
126
+
127
+ type execution = :client
128
+
129
+ module Execution
130
+ extend OpenAI::Internal::Type::Enum
131
+
132
+ CLIENT: :client
133
+
134
+ def self?.values: -> ::Array[OpenAI::Models::Beta::BetaResponseSteerRequiredInput::ToolSearchOutput::execution]
135
+ end
136
+ end
137
+
138
+ type mcp_approval_response =
139
+ { approval_request_id: String, type: :mcp_approval_response }
140
+
141
+ class McpApprovalResponse < OpenAI::Internal::Type::BaseModel
142
+ attr_accessor approval_request_id: String
143
+
144
+ attr_accessor type: :mcp_approval_response
145
+
146
+ def initialize: (
147
+ approval_request_id: String,
148
+ ?type: :mcp_approval_response
149
+ ) -> void
150
+
151
+ def to_hash: -> {
152
+ approval_request_id: String,
153
+ type: :mcp_approval_response
154
+ }
155
+ end
156
+
157
+ def self?.variants: -> ::Array[OpenAI::Models::Beta::beta_response_steer_required_input]
158
+ end
159
+ end
160
+ end
161
+ end
@@ -9,8 +9,7 @@ module OpenAI
9
9
  input_tokens_details: OpenAI::Beta::BetaResponseUsage::InputTokensDetails,
10
10
  output_tokens: Integer,
11
11
  output_tokens_details: OpenAI::Beta::BetaResponseUsage::OutputTokensDetails,
12
- total_tokens: Integer,
13
- compute_units: Integer?
12
+ total_tokens: Integer
14
13
  }
15
14
 
16
15
  class BetaResponseUsage < OpenAI::Internal::Type::BaseModel
@@ -24,15 +23,12 @@ module OpenAI
24
23
 
25
24
  attr_accessor total_tokens: Integer
26
25
 
27
- attr_accessor compute_units: Integer?
28
-
29
26
  def initialize: (
30
27
  input_tokens: Integer,
31
28
  input_tokens_details: OpenAI::Beta::BetaResponseUsage::InputTokensDetails,
32
29
  output_tokens: Integer,
33
30
  output_tokens_details: OpenAI::Beta::BetaResponseUsage::OutputTokensDetails,
34
- total_tokens: Integer,
35
- ?compute_units: Integer?
31
+ total_tokens: Integer
36
32
  ) -> void
37
33
 
38
34
  def to_hash: -> {
@@ -40,8 +36,7 @@ module OpenAI
40
36
  input_tokens_details: OpenAI::Beta::BetaResponseUsage::InputTokensDetails,
41
37
  output_tokens: Integer,
42
38
  output_tokens_details: OpenAI::Beta::BetaResponseUsage::OutputTokensDetails,
43
- total_tokens: Integer,
44
- compute_units: Integer?
39
+ total_tokens: Integer
45
40
  }
46
41
 
47
42
  type input_tokens_details =
@@ -5,6 +5,7 @@ module OpenAI
5
5
  module Beta
6
6
  type beta_responses_client_event =
7
7
  OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate
8
+ | OpenAI::Beta::BetaResponseSteerEvent
8
9
  | OpenAI::Beta::BetaResponseInjectEvent
9
10
 
10
11
  module BetaResponsesClientEvent
@@ -250,7 +251,8 @@ module OpenAI
250
251
  end
251
252
 
252
253
  type model =
253
- :"gpt-5.6-sol"
254
+ :"gpt-6-astra"
255
+ | :"gpt-5.6-sol"
254
256
  | :"gpt-5.6-terra"
255
257
  | :"gpt-5.6-luna"
256
258
  | :"gpt-5.5"
@@ -359,6 +361,7 @@ module OpenAI
359
361
 
360
362
  def self?.variants: -> ::Array[OpenAI::Models::Beta::BetaResponsesClientEvent::ResponseCreate::model]
361
363
 
364
+ GPT_6_ASTRA: :"gpt-6-astra"
362
365
  GPT_5_6_SOL: :"gpt-5.6-sol"
363
366
  GPT_5_6_TERRA: :"gpt-5.6-terra"
364
367
  GPT_5_6_LUNA: :"gpt-5.6-luna"