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,149 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Responses
6
+ class ResponseSteerFailedEvent < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute error
8
+ # Information about why the input could not be committed.
9
+ #
10
+ # @return [OpenAI::Models::Responses::ResponseSteerFailedEvent::Error]
11
+ required :error, -> { OpenAI::Responses::ResponseSteerFailedEvent::Error }
12
+
13
+ # @!attribute sequence_number
14
+ # The sequence number for this event.
15
+ #
16
+ # @return [Integer]
17
+ required :sequence_number, Integer
18
+
19
+ # @!attribute steer
20
+ # The steering submission that could not be committed.
21
+ #
22
+ # @return [OpenAI::Models::Responses::ResponseSteerFailedEvent::Steer]
23
+ required :steer, -> { OpenAI::Responses::ResponseSteerFailedEvent::Steer }
24
+
25
+ # @!attribute type
26
+ # The event discriminator. Always `response.steer.failed`.
27
+ #
28
+ # @return [Symbol, :"response.steer.failed"]
29
+ required :type, const: :"response.steer.failed"
30
+
31
+ # @!attribute stream_id
32
+ # The WebSocket lane that emitted this event, when the target response is
33
+ # available and its `response.create` event supplied a `stream_id`.
34
+ #
35
+ # @return [String, nil]
36
+ optional :stream_id, String
37
+
38
+ # @!method initialize(error:, sequence_number:, steer:, stream_id: nil, type: :"response.steer.failed")
39
+ # Some parameter documentations has been truncated, see
40
+ # {OpenAI::Models::Responses::ResponseSteerFailedEvent} for more details.
41
+ #
42
+ # Emitted when steering input is rejected or cannot be committed to a successor
43
+ # response. Returns the original, uncommitted input so the client can carry it
44
+ # into `response.create` when appropriate. Invalid input must be corrected before
45
+ # retrying.
46
+ #
47
+ # Failures after acceptance include the same steering ID. Failures before an ID is
48
+ # allocated omit `steer.id`. A lost connection or missing acknowledgement leaves
49
+ # the outcome unknown; it is not proof that the input was rejected.
50
+ #
51
+ # @param error [OpenAI::Models::Responses::ResponseSteerFailedEvent::Error] Information about why the input could not be committed.
52
+ #
53
+ # @param sequence_number [Integer] The sequence number for this event.
54
+ #
55
+ # @param steer [OpenAI::Models::Responses::ResponseSteerFailedEvent::Steer] The steering submission that could not be committed.
56
+ #
57
+ # @param stream_id [String] The WebSocket lane that emitted this event, when the target response is
58
+ #
59
+ # @param type [Symbol, :"response.steer.failed"] The event discriminator. Always `response.steer.failed`.
60
+
61
+ # @see OpenAI::Models::Responses::ResponseSteerFailedEvent#error
62
+ class Error < OpenAI::Internal::Type::BaseModel
63
+ # @!attribute code
64
+ # A machine-readable steering error code. Clients should handle unknown values
65
+ # because additional codes may be introduced. Known values include:
66
+ #
67
+ # - `response_not_found`: The target response is not available on this connection.
68
+ # - `invalid_input`: The event or input failed validation.
69
+ # - `steering_not_supported`: The model or response execution mode does not
70
+ # support steering.
71
+ # - `too_many_pending_steers`: Too much steering input is pending for the
72
+ # response.
73
+ # - `response_already_completed`: The response completed and is no longer
74
+ # accepting steering input.
75
+ # - `response_not_active`: The response is no longer accepting steering input.
76
+ # - `successor_creation_failed`: The successor response could not be created.
77
+ #
78
+ # @return [Symbol, String, OpenAI::Models::Responses::ResponseSteerErrorCode]
79
+ required :code, union: -> { OpenAI::Responses::ResponseSteerErrorCode }
80
+
81
+ # @!attribute message
82
+ # A human-readable description of the error.
83
+ #
84
+ # @return [String]
85
+ required :message, String
86
+
87
+ # @!attribute type
88
+ # The error type. Always `invalid_request_error`.
89
+ #
90
+ # @return [Symbol, :invalid_request_error]
91
+ required :type, const: :invalid_request_error
92
+
93
+ # @!method initialize(code:, message:, type: :invalid_request_error)
94
+ # Some parameter documentations has been truncated, see
95
+ # {OpenAI::Models::Responses::ResponseSteerFailedEvent::Error} for more details.
96
+ #
97
+ # Information about why the input could not be committed.
98
+ #
99
+ # @param code [Symbol, String, OpenAI::Models::Responses::ResponseSteerErrorCode] A machine-readable steering error code. Clients should handle unknown
100
+ #
101
+ # @param message [String] A human-readable description of the error.
102
+ #
103
+ # @param type [Symbol, :invalid_request_error] The error type. Always `invalid_request_error`.
104
+ end
105
+
106
+ # @see OpenAI::Models::Responses::ResponseSteerFailedEvent#steer
107
+ class Steer < OpenAI::Internal::Type::BaseModel
108
+ # @!attribute input
109
+ # Input to queue for a continuation of the response. Uses the same string or
110
+ # input-item shape as `response.create.input`, with a non-empty array when
111
+ # supplying input items.
112
+ #
113
+ # Steering accepts only messages with the `user` role. Each message may contain
114
+ # only `type`, `role`, and `content`, with `content` as a string or an array of
115
+ # `input_text`, `input_image`, and `input_file` parts. The optional `type` must be
116
+ # `message`. Other roles, tool outputs, and item types are not supported for
117
+ # steering.
118
+ #
119
+ # @return [String, Array<Hash{Symbol=>Object}>]
120
+ required :input, union: -> { OpenAI::Responses::ResponseSteerInput }
121
+
122
+ # @!attribute previous_response_id
123
+ # The ID of the response that was targeted for steering.
124
+ #
125
+ # @return [String]
126
+ required :previous_response_id, String
127
+
128
+ # @!attribute id
129
+ # The ID assigned to the steering submission, if one was allocated.
130
+ #
131
+ # @return [String, nil]
132
+ optional :id, String
133
+
134
+ # @!method initialize(input:, previous_response_id:, id: nil)
135
+ # Some parameter documentations has been truncated, see
136
+ # {OpenAI::Models::Responses::ResponseSteerFailedEvent::Steer} for more details.
137
+ #
138
+ # The steering submission that could not be committed.
139
+ #
140
+ # @param input [String, Array<Hash{Symbol=>Object}>] Input to queue for a continuation of the response. Uses the same string or
141
+ #
142
+ # @param previous_response_id [String] The ID of the response that was targeted for steering.
143
+ #
144
+ # @param id [String] The ID assigned to the steering submission, if one was allocated.
145
+ end
146
+ end
147
+ end
148
+ end
149
+ end
@@ -0,0 +1,304 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Responses
6
+ # Input to queue for a continuation of the response. Uses the same string or
7
+ # input-item shape as `response.create.input`, with a non-empty array when
8
+ # supplying input items.
9
+ #
10
+ # Steering accepts only messages with the `user` role. Each message may contain
11
+ # only `type`, `role`, and `content`, with `content` as a string or an array of
12
+ # `input_text`, `input_image`, and `input_file` parts. The optional `type` must be
13
+ # `message`. Other roles, tool outputs, and item types are not supported for
14
+ # steering.
15
+ module ResponseSteerInput
16
+ extend OpenAI::Internal::Type::Union
17
+
18
+ # A text input, equivalent to a message with the `user` role.
19
+ variant String
20
+
21
+ # A non-empty list of message inputs to queue for the response.
22
+ variant -> { OpenAI::Models::Responses::ResponseSteerInput::ResponseSteerInputItemListArray }
23
+
24
+ # The output of a function tool call.
25
+ module ResponseSteerInputItemList
26
+ extend OpenAI::Internal::Type::Union
27
+
28
+ discriminator :type
29
+
30
+ variant :message, -> { OpenAI::Responses::ResponseSteerInput::ResponseSteerInputItemList::Message }
31
+
32
+ # The output of a function tool call.
33
+ variant(
34
+ :function_call_output,
35
+ -> { OpenAI::Responses::ResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput }
36
+ )
37
+
38
+ class Message < OpenAI::Internal::Type::BaseModel
39
+ # @!attribute content
40
+ # The message content, as an array of content parts.
41
+ #
42
+ # @return [Array<OpenAI::Models::Responses::ResponseInputTextContent, OpenAI::Models::Responses::ResponseInputImageContent, OpenAI::Models::Responses::ResponseInputFileContent>, String]
43
+ required(
44
+ :content,
45
+ union: -> { OpenAI::Responses::ResponseSteerInput::ResponseSteerInputItemList::Message::Content }
46
+ )
47
+
48
+ # @!attribute role
49
+ # The message role. Always `user`.
50
+ #
51
+ # @return [Symbol, :user]
52
+ required :role, const: :user
53
+
54
+ # @!attribute type
55
+ # The item type. Always `message`.
56
+ #
57
+ # @return [Symbol, :message]
58
+ required :type, const: :message
59
+
60
+ # @!attribute id
61
+ # The unique ID of this message item.
62
+ #
63
+ # @return [String, nil]
64
+ optional :id, String, nil?: true
65
+
66
+ # @!attribute status
67
+ # The status of the message item.
68
+ #
69
+ # @return [String, nil]
70
+ optional :status, String, nil?: true
71
+
72
+ # @!method initialize(content:, id: nil, status: nil, role: :user, type: :message)
73
+ # @param content [Array<OpenAI::Models::Responses::ResponseInputTextContent, OpenAI::Models::Responses::ResponseInputImageContent, OpenAI::Models::Responses::ResponseInputFileContent>, String] The message content, as an array of content parts.
74
+ #
75
+ # @param id [String, nil] The unique ID of this message item.
76
+ #
77
+ # @param status [String, nil] The status of the message item.
78
+ #
79
+ # @param role [Symbol, :user] The message role. Always `user`.
80
+ #
81
+ # @param type [Symbol, :message] The item type. Always `message`.
82
+
83
+ # The message content, as an array of content parts.
84
+ #
85
+ # @see OpenAI::Models::Responses::ResponseSteerInput::ResponseSteerInputItemList::Message#content
86
+ module Content
87
+ extend OpenAI::Internal::Type::Union
88
+
89
+ variant(
90
+ -> {
91
+ OpenAI::Models::Responses::ResponseSteerInput::ResponseSteerInputItemList::Message::Content::ResponseSteerInputContentArray
92
+ }
93
+ )
94
+
95
+ # The message content, as a single string.
96
+ variant String
97
+
98
+ # @!method self.variants
99
+ # @return [Array(Array<OpenAI::Models::Responses::ResponseInputTextContent, OpenAI::Models::Responses::ResponseInputImageContent, OpenAI::Models::Responses::ResponseInputFileContent>, String)]
100
+
101
+ # @type [OpenAI::Internal::Type::Converter]
102
+ ResponseSteerInputContentArray = OpenAI::Internal::Type::ArrayOf[
103
+ union: -> { OpenAI::Responses::ResponseSteerInputContent }
104
+ ]
105
+ end
106
+ end
107
+
108
+ class FunctionCallOutput < OpenAI::Internal::Type::BaseModel
109
+ # @!attribute output
110
+ # Text, image, or file output of the function tool call.
111
+ #
112
+ # @return [String, Array<OpenAI::Models::Responses::ResponseInputTextContent, OpenAI::Models::Responses::ResponseInputImageContent, OpenAI::Models::Responses::ResponseInputFileContent>]
113
+ required(
114
+ :output,
115
+ union: -> {
116
+ OpenAI::Responses::ResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::Output
117
+ }
118
+ )
119
+
120
+ # @!attribute type
121
+ # The type of the function tool call output. Always `function_call_output`.
122
+ #
123
+ # @return [Symbol, :function_call_output]
124
+ required :type, const: :function_call_output
125
+
126
+ # @!attribute id
127
+ # The unique ID of the function tool call output. Populated when this item is
128
+ # returned via API.
129
+ #
130
+ # @return [String, nil]
131
+ optional :id, String, nil?: true
132
+
133
+ # @!attribute call_id
134
+ # The unique ID of the function tool call generated by the model.
135
+ #
136
+ # @return [String, nil]
137
+ optional :call_id, String, nil?: true
138
+
139
+ # @!attribute caller_
140
+ # The execution context that produced this tool call.
141
+ #
142
+ # @return [OpenAI::Models::Responses::ResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::Caller::Direct, OpenAI::Models::Responses::ResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::Caller::Program, nil]
143
+ optional(
144
+ :caller_,
145
+ union: -> {
146
+ OpenAI::Responses::ResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::Caller
147
+ },
148
+ api_name: :caller,
149
+ nil?: true
150
+ )
151
+
152
+ # @!attribute name
153
+ # The name of the tool that produced the output.
154
+ #
155
+ # @return [String, nil]
156
+ optional :name, String, nil?: true
157
+
158
+ # @!attribute namespace
159
+ # The namespace of the tool that produced the output.
160
+ #
161
+ # @return [String, nil]
162
+ optional :namespace, String, nil?: true
163
+
164
+ # @!attribute status
165
+ # The status of the item. One of `in_progress`, `completed`, or `incomplete`.
166
+ # Populated when items are returned via API.
167
+ #
168
+ # @return [Symbol, OpenAI::Models::Responses::ResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::Status, nil]
169
+ optional(
170
+ :status,
171
+ enum: -> {
172
+ OpenAI::Responses::ResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::Status
173
+ },
174
+ nil?: true
175
+ )
176
+
177
+ # @!method initialize(output:, id: nil, call_id: nil, caller_: nil, name: nil, namespace: nil, status: nil, type: :function_call_output)
178
+ # Some parameter documentations has been truncated, see
179
+ # {OpenAI::Models::Responses::ResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput}
180
+ # for more details.
181
+ #
182
+ # The output of a function tool call.
183
+ #
184
+ # @param output [String, Array<OpenAI::Models::Responses::ResponseInputTextContent, OpenAI::Models::Responses::ResponseInputImageContent, OpenAI::Models::Responses::ResponseInputFileContent>] Text, image, or file output of the function tool call.
185
+ #
186
+ # @param id [String, nil] The unique ID of the function tool call output. Populated when this item is retu
187
+ #
188
+ # @param call_id [String, nil] The unique ID of the function tool call generated by the model.
189
+ #
190
+ # @param caller_ [OpenAI::Models::Responses::ResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::Caller::Direct, OpenAI::Models::Responses::ResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::Caller::Program, nil] The execution context that produced this tool call.
191
+ #
192
+ # @param name [String, nil] The name of the tool that produced the output.
193
+ #
194
+ # @param namespace [String, nil] The namespace of the tool that produced the output.
195
+ #
196
+ # @param status [Symbol, OpenAI::Models::Responses::ResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::Status, nil] The status of the item. One of `in_progress`, `completed`, or `incomplete`. Popu
197
+ #
198
+ # @param type [Symbol, :function_call_output] The type of the function tool call output. Always `function_call_output`.
199
+
200
+ # Text, image, or file output of the function tool call.
201
+ #
202
+ # @see OpenAI::Models::Responses::ResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput#output
203
+ module Output
204
+ extend OpenAI::Internal::Type::Union
205
+
206
+ # A JSON string of the output of the function tool call.
207
+ variant String
208
+
209
+ # An array of content outputs (text, image, file) for the function tool call.
210
+ variant -> { OpenAI::Responses::ResponseFunctionCallOutputItemList }
211
+
212
+ # @!method self.variants
213
+ # @return [Array(String, Array<OpenAI::Models::Responses::ResponseInputTextContent, OpenAI::Models::Responses::ResponseInputImageContent, OpenAI::Models::Responses::ResponseInputFileContent>)]
214
+ end
215
+
216
+ # The execution context that produced this tool call.
217
+ #
218
+ # @see OpenAI::Models::Responses::ResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput#caller_
219
+ module Caller
220
+ extend OpenAI::Internal::Type::Union
221
+
222
+ discriminator :type
223
+
224
+ variant(
225
+ :direct,
226
+ -> {
227
+ OpenAI::Responses::ResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::Caller::Direct
228
+ }
229
+ )
230
+
231
+ variant(
232
+ :program,
233
+ -> {
234
+ OpenAI::Responses::ResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::Caller::Program
235
+ }
236
+ )
237
+
238
+ class Direct < OpenAI::Internal::Type::BaseModel
239
+ # @!attribute type
240
+ # The caller type. Always `direct`.
241
+ #
242
+ # @return [Symbol, :direct]
243
+ required :type, const: :direct
244
+
245
+ # @!method initialize(type: :direct)
246
+ # @param type [Symbol, :direct] The caller type. Always `direct`.
247
+ end
248
+
249
+ class Program < OpenAI::Internal::Type::BaseModel
250
+ # @!attribute caller_id
251
+ # The call ID of the program item that produced this tool call.
252
+ #
253
+ # @return [String]
254
+ required :caller_id, String
255
+
256
+ # @!attribute type
257
+ # The caller type. Always `program`.
258
+ #
259
+ # @return [Symbol, :program]
260
+ required :type, const: :program
261
+
262
+ # @!method initialize(caller_id:, type: :program)
263
+ # @param caller_id [String] The call ID of the program item that produced this tool call.
264
+ #
265
+ # @param type [Symbol, :program] The caller type. Always `program`.
266
+ end
267
+
268
+ # @!method self.variants
269
+ # @return [Array(OpenAI::Models::Responses::ResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::Caller::Direct, OpenAI::Models::Responses::ResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::Caller::Program)]
270
+ end
271
+
272
+ # The status of the item. One of `in_progress`, `completed`, or `incomplete`.
273
+ # Populated when items are returned via API.
274
+ #
275
+ # @see OpenAI::Models::Responses::ResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput#status
276
+ module Status
277
+ extend OpenAI::Internal::Type::Enum
278
+
279
+ IN_PROGRESS = :in_progress
280
+ COMPLETED = :completed
281
+ INCOMPLETE = :incomplete
282
+
283
+ # @!method self.values
284
+ # @return [Array<Symbol>]
285
+ end
286
+ end
287
+
288
+ # @!method self.variants
289
+ # @return [Array(OpenAI::Models::Responses::ResponseSteerInput::ResponseSteerInputItemList::Message, OpenAI::Models::Responses::ResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput)]
290
+ end
291
+
292
+ # @!method self.variants
293
+ # @return [Array(String, Array<Hash{Symbol=>Object}>)]
294
+
295
+ # @type [OpenAI::Internal::Type::Converter]
296
+ ResponseSteerInputItemListArray = OpenAI::Internal::Type::ArrayOf[
297
+ union: -> {
298
+ OpenAI::Responses::ResponseSteerInput::ResponseSteerInputItemList
299
+ }
300
+ ]
301
+ end
302
+ end
303
+ end
304
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Responses
6
+ # A piece of message content, such as text, an image, or a file.
7
+ module ResponseSteerInputContent
8
+ extend OpenAI::Internal::Type::Union
9
+
10
+ discriminator :type
11
+
12
+ # A text input to the model.
13
+ variant :input_text, -> { OpenAI::Responses::ResponseInputTextContent }
14
+
15
+ # An image input to the model. Learn about [image inputs](https://platform.openai.com/docs/guides/vision)
16
+ variant :input_image, -> { OpenAI::Responses::ResponseInputImageContent }
17
+
18
+ # A file input to the model.
19
+ variant :input_file, -> { OpenAI::Responses::ResponseInputFileContent }
20
+
21
+ # @!method self.variants
22
+ # @return [Array(OpenAI::Models::Responses::ResponseInputTextContent, OpenAI::Models::Responses::ResponseInputImageContent, OpenAI::Models::Responses::ResponseInputFileContent)]
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,111 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Responses
6
+ class ResponseSteerPendingEvent < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute reason
8
+ # An extensible enum describing why accepted steering input is still queued.
9
+ # Clients should handle unknown values because additional reasons may be
10
+ # introduced. Known values include:
11
+ #
12
+ # - `waiting_for_required_input`: The response is waiting for the tool results or
13
+ # approval decisions identified by `required_input`.
14
+ #
15
+ # @return [Symbol, :waiting_for_required_input, String]
16
+ required :reason, union: -> { OpenAI::Responses::ResponseSteerPendingReason }
17
+
18
+ # @!attribute required_input
19
+ # Input stubs identifying outstanding client-owned tool results or approval
20
+ # decisions. Each stub contains identifying fields only; the client supplies the
21
+ # result before including it in `response.create`.
22
+ #
23
+ # @return [Array<OpenAI::Models::Responses::ResponseSteerRequiredInput::FunctionCallOutput, OpenAI::Models::Responses::ResponseSteerRequiredInput::CustomToolCallOutput, OpenAI::Models::Responses::ResponseSteerRequiredInput::ComputerCallOutput, OpenAI::Models::Responses::ResponseSteerRequiredInput::ShellCallOutput, OpenAI::Models::Responses::ResponseSteerRequiredInput::ApplyPatchCallOutput, OpenAI::Models::Responses::ResponseSteerRequiredInput::ToolSearchOutput, OpenAI::Models::Responses::ResponseSteerRequiredInput::McpApprovalResponse>]
24
+ required(
25
+ :required_input,
26
+ -> { OpenAI::Internal::Type::ArrayOf[union: OpenAI::Responses::ResponseSteerRequiredInput] }
27
+ )
28
+
29
+ # @!attribute sequence_number
30
+ # The sequence number for this event.
31
+ #
32
+ # @return [Integer]
33
+ required :sequence_number, Integer
34
+
35
+ # @!attribute steer
36
+ # The steering submission that remains queued.
37
+ #
38
+ # @return [OpenAI::Models::Responses::ResponseSteerPendingEvent::Steer]
39
+ required :steer, -> { OpenAI::Responses::ResponseSteerPendingEvent::Steer }
40
+
41
+ # @!attribute type
42
+ # The event discriminator. Always `response.steer.pending`.
43
+ #
44
+ # @return [Symbol, :"response.steer.pending"]
45
+ required :type, const: :"response.steer.pending"
46
+
47
+ # @!attribute stream_id
48
+ # The WebSocket lane that emitted this event. This field is present when the
49
+ # target response's `response.create` event supplied a `stream_id`.
50
+ #
51
+ # @return [String, nil]
52
+ optional :stream_id, String
53
+
54
+ # @!method initialize(reason:, required_input:, sequence_number:, steer:, stream_id: nil, type: :"response.steer.pending")
55
+ # Some parameter documentations has been truncated, see
56
+ # {OpenAI::Models::Responses::ResponseSteerPendingEvent} for more details.
57
+ #
58
+ # Emitted when accepted steering input remains queued after the target response
59
+ # completes. The server still owns the input. Do not resend it. The successor's
60
+ # `response.created` event is the commit point.
61
+ #
62
+ # When `reason` is `waiting_for_required_input`, this event follows
63
+ # `response.completed` while the response waits for the tool results or approval
64
+ # decisions identified by `required_input`. Copy those stubs, fill their result
65
+ # fields using the ordinary `response.create` input schemas, and submit one
66
+ # continuation per parent with the same `previous_response_id` and WebSocket lane.
67
+ # Use saved results without rerunning tools. The queued steering input is
68
+ # prepended in submission order to the continuation's input. That explicit request
69
+ # retains its own settings.
70
+ #
71
+ # This notification is emitted at most once per steering submission. Multiple
72
+ # submissions for the same parent can report the same required inputs; they do not
73
+ # each require a separate continuation.
74
+ #
75
+ # @param reason [Symbol, :waiting_for_required_input, String] An extensible enum describing why accepted steering input is still queued.
76
+ #
77
+ # @param required_input [Array<OpenAI::Models::Responses::ResponseSteerRequiredInput::FunctionCallOutput, OpenAI::Models::Responses::ResponseSteerRequiredInput::CustomToolCallOutput, OpenAI::Models::Responses::ResponseSteerRequiredInput::ComputerCallOutput, OpenAI::Models::Responses::ResponseSteerRequiredInput::ShellCallOutput, OpenAI::Models::Responses::ResponseSteerRequiredInput::ApplyPatchCallOutput, OpenAI::Models::Responses::ResponseSteerRequiredInput::ToolSearchOutput, OpenAI::Models::Responses::ResponseSteerRequiredInput::McpApprovalResponse>] Input stubs identifying outstanding client-owned tool results or
78
+ #
79
+ # @param sequence_number [Integer] The sequence number for this event.
80
+ #
81
+ # @param steer [OpenAI::Models::Responses::ResponseSteerPendingEvent::Steer] The steering submission that remains queued.
82
+ #
83
+ # @param stream_id [String] The WebSocket lane that emitted this event. This field is present when
84
+ #
85
+ # @param type [Symbol, :"response.steer.pending"] The event discriminator. Always `response.steer.pending`.
86
+
87
+ # @see OpenAI::Models::Responses::ResponseSteerPendingEvent#steer
88
+ class Steer < OpenAI::Internal::Type::BaseModel
89
+ # @!attribute id
90
+ # The ID assigned to the steering submission.
91
+ #
92
+ # @return [String]
93
+ required :id, String
94
+
95
+ # @!attribute previous_response_id
96
+ # The ID of the response being steered.
97
+ #
98
+ # @return [String]
99
+ required :previous_response_id, String
100
+
101
+ # @!method initialize(id:, previous_response_id:)
102
+ # The steering submission that remains queued.
103
+ #
104
+ # @param id [String] The ID assigned to the steering submission.
105
+ #
106
+ # @param previous_response_id [String] The ID of the response being steered.
107
+ end
108
+ end
109
+ end
110
+ end
111
+ end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Responses
6
+ # An extensible enum describing why accepted steering input is still queued.
7
+ # Clients should handle unknown values because additional reasons may be
8
+ # introduced. Known values include:
9
+ #
10
+ # - `waiting_for_required_input`: The response is waiting for the tool results or
11
+ # approval decisions identified by `required_input`.
12
+ module ResponseSteerPendingReason
13
+ extend OpenAI::Internal::Type::Union
14
+
15
+ variant const: :waiting_for_required_input
16
+
17
+ variant String
18
+
19
+ # @!method self.variants
20
+ # @return [Array(Symbol, :waiting_for_required_input, String)]
21
+ end
22
+ end
23
+ end
24
+ end