openai 0.84.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 (267) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +30 -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/client.rb +4 -0
  7. data/lib/openai/helpers/streaming/chat_completion_stream.rb +17 -8
  8. data/lib/openai/helpers/streaming/response_stream.rb +13 -8
  9. data/lib/openai/helpers/structured_output/array_of.rb +2 -2
  10. data/lib/openai/helpers/structured_output/base_model.rb +19 -5
  11. data/lib/openai/helpers/structured_output/chat_completion_parser.rb +6 -3
  12. data/lib/openai/helpers/structured_output/json_schema_converter.rb +34 -11
  13. data/lib/openai/internal/vector_store_file_uploader.rb +1 -1
  14. data/lib/openai/models/admin/organization/usage_costs_params.rb +1 -1
  15. data/lib/openai/models/batch.rb +2 -2
  16. data/lib/openai/models/beta/beta_custom_tool.rb +13 -1
  17. data/lib/openai/models/beta/beta_function_tool.rb +8 -1
  18. data/lib/openai/models/beta/beta_namespace_tool.rb +10 -1
  19. data/lib/openai/models/beta/beta_response.rb +20 -9
  20. data/lib/openai/models/beta/beta_response_configuration_update_item.rb +103 -0
  21. data/lib/openai/models/beta/beta_response_configuration_update_item_param.rb +104 -0
  22. data/lib/openai/models/beta/beta_response_custom_tool_call.rb +9 -1
  23. data/lib/openai/models/beta/beta_response_custom_tool_call_item.rb +3 -1
  24. data/lib/openai/models/beta/beta_response_error.rb +96 -1
  25. data/lib/openai/models/beta/beta_response_function_tool_call.rb +9 -1
  26. data/lib/openai/models/beta/beta_response_function_tool_call_item.rb +3 -1
  27. data/lib/openai/models/beta/beta_response_incomplete_event.rb +4 -0
  28. data/lib/openai/models/beta/beta_response_inject_event.rb +2 -2
  29. data/lib/openai/models/beta/beta_response_inject_failed_event.rb +2 -2
  30. data/lib/openai/models/beta/beta_response_input_item.rb +6 -1
  31. data/lib/openai/models/beta/beta_response_item.rb +5 -1
  32. data/lib/openai/models/beta/beta_response_steer_accepted_event.rb +81 -0
  33. data/lib/openai/models/beta/beta_response_steer_error_code.rb +61 -0
  34. data/lib/openai/models/beta/beta_response_steer_event.rb +75 -0
  35. data/lib/openai/models/beta/beta_response_steer_failed_event.rb +151 -0
  36. data/lib/openai/models/beta/beta_response_steer_input.rb +360 -0
  37. data/lib/openai/models/beta/beta_response_steer_input_content.rb +28 -0
  38. data/lib/openai/models/beta/beta_response_steer_pending_event.rb +113 -0
  39. data/lib/openai/models/beta/beta_response_steer_pending_reason.rb +26 -0
  40. data/lib/openai/models/beta/beta_response_steer_required_input.rb +215 -0
  41. data/lib/openai/models/beta/beta_response_stream_event.rb +4 -0
  42. data/lib/openai/models/beta/beta_responses_client_event.rb +40 -7
  43. data/lib/openai/models/beta/beta_responses_server_event.rb +164 -2
  44. data/lib/openai/models/beta/response_compact_params.rb +9 -6
  45. data/lib/openai/models/beta/response_create_params.rb +9 -6
  46. data/lib/openai/models/beta/responses/beta_response_item_list.rb +2 -2
  47. data/lib/openai/models/beta/responses/input_token_count_params.rb +3 -3
  48. data/lib/openai/models/chat/completion_create_params.rb +4 -4
  49. data/lib/openai/models/chat_model.rb +1 -0
  50. data/lib/openai/models/conversations/conversation_create_params.rb +2 -2
  51. data/lib/openai/models/conversations/conversation_item.rb +5 -1
  52. data/lib/openai/models/conversations/conversation_item_list.rb +2 -2
  53. data/lib/openai/models/conversations/item_create_params.rb +2 -2
  54. data/lib/openai/models/error_object.rb +90 -1
  55. data/lib/openai/models/eval_create_response.rb +1 -1
  56. data/lib/openai/models/eval_list_response.rb +1 -1
  57. data/lib/openai/models/eval_retrieve_response.rb +1 -1
  58. data/lib/openai/models/eval_update_response.rb +1 -1
  59. data/lib/openai/models/evals/create_eval_completions_run_data_source.rb +2 -2
  60. data/lib/openai/models/responses/custom_tool.rb +13 -1
  61. data/lib/openai/models/responses/function_tool.rb +8 -1
  62. data/lib/openai/models/responses/input_token_count_params.rb +3 -3
  63. data/lib/openai/models/responses/namespace_tool.rb +10 -1
  64. data/lib/openai/models/responses/response.rb +16 -8
  65. data/lib/openai/models/responses/response_compact_params.rb +9 -6
  66. data/lib/openai/models/responses/response_configuration_update_item.rb +56 -0
  67. data/lib/openai/models/responses/response_configuration_update_item_param.rb +57 -0
  68. data/lib/openai/models/responses/response_create_params.rb +5 -5
  69. data/lib/openai/models/responses/response_custom_tool_call.rb +9 -1
  70. data/lib/openai/models/responses/response_custom_tool_call_item.rb +3 -1
  71. data/lib/openai/models/responses/response_error.rb +96 -1
  72. data/lib/openai/models/responses/response_function_tool_call.rb +9 -1
  73. data/lib/openai/models/responses/response_function_tool_call_item.rb +3 -1
  74. data/lib/openai/models/responses/response_incomplete_event.rb +4 -0
  75. data/lib/openai/models/responses/response_input_item.rb +6 -1
  76. data/lib/openai/models/responses/response_item.rb +5 -1
  77. data/lib/openai/models/responses/response_item_list.rb +2 -2
  78. data/lib/openai/models/responses/response_steer_accepted_event.rb +79 -0
  79. data/lib/openai/models/responses/response_steer_error_code.rb +59 -0
  80. data/lib/openai/models/responses/response_steer_event.rb +73 -0
  81. data/lib/openai/models/responses/response_steer_failed_event.rb +149 -0
  82. data/lib/openai/models/responses/response_steer_input.rb +304 -0
  83. data/lib/openai/models/responses/response_steer_input_content.rb +26 -0
  84. data/lib/openai/models/responses/response_steer_pending_event.rb +111 -0
  85. data/lib/openai/models/responses/response_steer_pending_reason.rb +24 -0
  86. data/lib/openai/models/responses/response_steer_required_input.rb +213 -0
  87. data/lib/openai/models/responses/response_stream_event.rb +4 -0
  88. data/lib/openai/models/responses/responses_client_event.rb +872 -769
  89. data/lib/openai/models/responses/responses_server_event.rb +162 -2
  90. data/lib/openai/models/safety/alert_retrieve_params.rb +24 -0
  91. data/lib/openai/models/safety/safety_alert.rb +96 -0
  92. data/lib/openai/models/video_create_error.rb +93 -1
  93. data/lib/openai/models/webhooks/safety_alert_created_webhook_event.rb +63 -0
  94. data/lib/openai/models/webhooks/safety_org_alert_created_webhook_event.rb +63 -0
  95. data/lib/openai/models/webhooks/unwrap_webhook_event.rb +7 -1
  96. data/lib/openai/models.rb +2 -0
  97. data/lib/openai/net_http_client.rb +1 -1
  98. data/lib/openai/providers/bedrock.rb +20 -12
  99. data/lib/openai/resources/beta/responses/input_items.rb +1 -1
  100. data/lib/openai/resources/beta/responses/input_tokens.rb +1 -1
  101. data/lib/openai/resources/beta/responses.rb +6 -6
  102. data/lib/openai/resources/chat/completions.rb +2 -2
  103. data/lib/openai/resources/conversations/items.rb +3 -3
  104. data/lib/openai/resources/conversations.rb +1 -1
  105. data/lib/openai/resources/responses/input_items.rb +1 -1
  106. data/lib/openai/resources/responses/input_tokens.rb +1 -1
  107. data/lib/openai/resources/responses.rb +6 -6
  108. data/lib/openai/resources/safety/alerts.rb +37 -0
  109. data/lib/openai/resources/safety.rb +18 -0
  110. data/lib/openai/resources/webhooks.rb +1 -1
  111. data/lib/openai/version.rb +1 -1
  112. data/lib/openai.rb +28 -0
  113. data/rbi/openai/client.rbi +3 -0
  114. data/rbi/openai/models/admin/organization/usage_costs_params.rbi +2 -2
  115. data/rbi/openai/models/batch.rbi +2 -2
  116. data/rbi/openai/models/beta/beta_custom_tool.rbi +15 -0
  117. data/rbi/openai/models/beta/beta_function_tool.rbi +11 -0
  118. data/rbi/openai/models/beta/beta_namespace_tool.rbi +15 -0
  119. data/rbi/openai/models/beta/beta_response.rbi +14 -6
  120. data/rbi/openai/models/beta/beta_response_configuration_update_item.rbi +200 -0
  121. data/rbi/openai/models/beta/beta_response_configuration_update_item_param.rbi +207 -0
  122. data/rbi/openai/models/beta/beta_response_custom_tool_call.rbi +13 -0
  123. data/rbi/openai/models/beta/beta_response_custom_tool_call_item.rbi +6 -0
  124. data/rbi/openai/models/beta/beta_response_error.rbi +161 -3
  125. data/rbi/openai/models/beta/beta_response_function_tool_call.rbi +13 -0
  126. data/rbi/openai/models/beta/beta_response_function_tool_call_item.rbi +6 -0
  127. data/rbi/openai/models/beta/beta_response_incomplete_event.rbi +4 -0
  128. data/rbi/openai/models/beta/beta_response_inject_event.rbi +3 -0
  129. data/rbi/openai/models/beta/beta_response_inject_failed_event.rbi +3 -0
  130. data/rbi/openai/models/beta/beta_response_input_item.rbi +1 -0
  131. data/rbi/openai/models/beta/beta_response_item.rbi +1 -0
  132. data/rbi/openai/models/beta/beta_response_steer_accepted_event.rbi +148 -0
  133. data/rbi/openai/models/beta/beta_response_steer_error_code.rbi +65 -0
  134. data/rbi/openai/models/beta/beta_response_steer_event.rbi +118 -0
  135. data/rbi/openai/models/beta/beta_response_steer_failed_event.rbi +267 -0
  136. data/rbi/openai/models/beta/beta_response_steer_input.rbi +602 -0
  137. data/rbi/openai/models/beta/beta_response_steer_input_content.rbi +31 -0
  138. data/rbi/openai/models/beta/beta_response_steer_pending_event.rbi +222 -0
  139. data/rbi/openai/models/beta/beta_response_steer_pending_reason.rbi +35 -0
  140. data/rbi/openai/models/beta/beta_response_steer_required_input.rbi +379 -0
  141. data/rbi/openai/models/beta/beta_responses_client_event.rbi +8 -3
  142. data/rbi/openai/models/beta/beta_responses_server_event.rbi +206 -3
  143. data/rbi/openai/models/beta/response_compact_params.rbi +4 -3
  144. data/rbi/openai/models/beta/response_create_params.rbi +4 -3
  145. data/rbi/openai/models/beta/responses/beta_response_item_list.rbi +1 -0
  146. data/rbi/openai/models/chat/completion_create_params.rbi +3 -3
  147. data/rbi/openai/models/chat_model.rbi +1 -0
  148. data/rbi/openai/models/conversations/conversation_create_params.rbi +3 -0
  149. data/rbi/openai/models/conversations/conversation_item.rbi +1 -0
  150. data/rbi/openai/models/conversations/conversation_item_list.rbi +1 -0
  151. data/rbi/openai/models/conversations/item_create_params.rbi +3 -0
  152. data/rbi/openai/models/error_object.rbi +156 -3
  153. data/rbi/openai/models/eval_create_response.rbi +1 -1
  154. data/rbi/openai/models/eval_list_response.rbi +1 -1
  155. data/rbi/openai/models/eval_retrieve_response.rbi +1 -1
  156. data/rbi/openai/models/eval_update_response.rbi +1 -1
  157. data/rbi/openai/models/evals/create_eval_completions_run_data_source.rbi +2 -2
  158. data/rbi/openai/models/responses/custom_tool.rbi +15 -0
  159. data/rbi/openai/models/responses/function_tool.rbi +11 -0
  160. data/rbi/openai/models/responses/namespace_tool.rbi +15 -0
  161. data/rbi/openai/models/responses/response.rbi +12 -5
  162. data/rbi/openai/models/responses/response_compact_params.rbi +4 -3
  163. data/rbi/openai/models/responses/response_configuration_update_item.rbi +112 -0
  164. data/rbi/openai/models/responses/response_configuration_update_item_param.rbi +117 -0
  165. data/rbi/openai/models/responses/response_create_params.rbi +2 -2
  166. data/rbi/openai/models/responses/response_custom_tool_call.rbi +13 -0
  167. data/rbi/openai/models/responses/response_custom_tool_call_item.rbi +6 -0
  168. data/rbi/openai/models/responses/response_error.rbi +161 -3
  169. data/rbi/openai/models/responses/response_function_tool_call.rbi +13 -0
  170. data/rbi/openai/models/responses/response_function_tool_call_item.rbi +6 -0
  171. data/rbi/openai/models/responses/response_incomplete_event.rbi +4 -0
  172. data/rbi/openai/models/responses/response_input_item.rbi +1 -0
  173. data/rbi/openai/models/responses/response_item.rbi +1 -0
  174. data/rbi/openai/models/responses/response_item_list.rbi +1 -0
  175. data/rbi/openai/models/responses/response_steer_accepted_event.rbi +146 -0
  176. data/rbi/openai/models/responses/response_steer_error_code.rbi +63 -0
  177. data/rbi/openai/models/responses/response_steer_event.rbi +119 -0
  178. data/rbi/openai/models/responses/response_steer_failed_event.rbi +268 -0
  179. data/rbi/openai/models/responses/response_steer_input.rbi +474 -0
  180. data/rbi/openai/models/responses/response_steer_input_content.rbi +29 -0
  181. data/rbi/openai/models/responses/response_steer_pending_event.rbi +220 -0
  182. data/rbi/openai/models/responses/response_steer_pending_reason.rbi +33 -0
  183. data/rbi/openai/models/responses/response_steer_required_input.rbi +377 -0
  184. data/rbi/openai/models/responses/responses_client_event.rbi +1204 -1036
  185. data/rbi/openai/models/responses/responses_server_event.rbi +202 -3
  186. data/rbi/openai/models/safety/alert_retrieve_params.rbi +55 -0
  187. data/rbi/openai/models/safety/safety_alert.rbi +147 -0
  188. data/rbi/openai/models/video_create_error.rbi +149 -3
  189. data/rbi/openai/models/webhooks/safety_alert_created_webhook_event.rbi +130 -0
  190. data/rbi/openai/models/webhooks/safety_org_alert_created_webhook_event.rbi +130 -0
  191. data/rbi/openai/models/webhooks/unwrap_webhook_event.rbi +3 -1
  192. data/rbi/openai/models.rbi +2 -0
  193. data/rbi/openai/resources/admin/organization/usage.rbi +1 -1
  194. data/rbi/openai/resources/beta/responses.rbi +3 -3
  195. data/rbi/openai/resources/chat/completions.rbi +2 -2
  196. data/rbi/openai/resources/conversations/items.rbi +1 -0
  197. data/rbi/openai/resources/conversations.rbi +1 -0
  198. data/rbi/openai/resources/responses.rbi +3 -3
  199. data/rbi/openai/resources/safety/alerts.rbi +30 -0
  200. data/rbi/openai/resources/safety.rbi +18 -0
  201. data/rbi/openai/resources/webhooks.rbi +3 -1
  202. data/sig/openai/client.rbs +2 -0
  203. data/sig/openai/models/beta/beta_custom_tool.rbs +7 -0
  204. data/sig/openai/models/beta/beta_function_tool.rbs +7 -0
  205. data/sig/openai/models/beta/beta_namespace_tool.rbs +7 -0
  206. data/sig/openai/models/beta/beta_response.rbs +6 -2
  207. data/sig/openai/models/beta/beta_response_configuration_update_item.rbs +91 -0
  208. data/sig/openai/models/beta/beta_response_configuration_update_item_param.rbs +87 -0
  209. data/sig/openai/models/beta/beta_response_custom_tool_call.rbs +7 -0
  210. data/sig/openai/models/beta/beta_response_custom_tool_call_item.rbs +3 -0
  211. data/sig/openai/models/beta/beta_response_error.rbs +82 -3
  212. data/sig/openai/models/beta/beta_response_function_tool_call.rbs +7 -0
  213. data/sig/openai/models/beta/beta_response_function_tool_call_item.rbs +3 -0
  214. data/sig/openai/models/beta/beta_response_input_item.rbs +1 -0
  215. data/sig/openai/models/beta/beta_response_item.rbs +1 -0
  216. data/sig/openai/models/beta/beta_response_steer_accepted_event.rbs +53 -0
  217. data/sig/openai/models/beta/beta_response_steer_error_code.rbs +31 -0
  218. data/sig/openai/models/beta/beta_response_steer_event.rbs +34 -0
  219. data/sig/openai/models/beta/beta_response_steer_failed_event.rbs +102 -0
  220. data/sig/openai/models/beta/beta_response_steer_input.rbs +214 -0
  221. data/sig/openai/models/beta/beta_response_steer_input_content.rbs +18 -0
  222. data/sig/openai/models/beta/beta_response_steer_pending_event.rbs +63 -0
  223. data/sig/openai/models/beta/beta_response_steer_pending_reason.rbs +16 -0
  224. data/sig/openai/models/beta/beta_response_steer_required_input.rbs +161 -0
  225. data/sig/openai/models/beta/beta_responses_client_event.rbs +4 -1
  226. data/sig/openai/models/beta/beta_responses_server_event.rbs +80 -3
  227. data/sig/openai/models/beta/response_compact_params.rbs +3 -1
  228. data/sig/openai/models/beta/response_create_params.rbs +3 -1
  229. data/sig/openai/models/chat_model.rbs +3 -1
  230. data/sig/openai/models/conversations/conversation_item.rbs +1 -0
  231. data/sig/openai/models/error_object.rbs +82 -3
  232. data/sig/openai/models/responses/custom_tool.rbs +7 -0
  233. data/sig/openai/models/responses/function_tool.rbs +7 -0
  234. data/sig/openai/models/responses/namespace_tool.rbs +7 -0
  235. data/sig/openai/models/responses/response.rbs +3 -1
  236. data/sig/openai/models/responses/response_compact_params.rbs +3 -1
  237. data/sig/openai/models/responses/response_configuration_update_item.rbs +46 -0
  238. data/sig/openai/models/responses/response_configuration_update_item_param.rbs +46 -0
  239. data/sig/openai/models/responses/response_custom_tool_call.rbs +7 -0
  240. data/sig/openai/models/responses/response_custom_tool_call_item.rbs +3 -0
  241. data/sig/openai/models/responses/response_error.rbs +79 -3
  242. data/sig/openai/models/responses/response_function_tool_call.rbs +7 -0
  243. data/sig/openai/models/responses/response_function_tool_call_item.rbs +3 -0
  244. data/sig/openai/models/responses/response_input_item.rbs +1 -0
  245. data/sig/openai/models/responses/response_item.rbs +1 -0
  246. data/sig/openai/models/responses/response_steer_accepted_event.rbs +51 -0
  247. data/sig/openai/models/responses/response_steer_error_code.rbs +29 -0
  248. data/sig/openai/models/responses/response_steer_event.rbs +32 -0
  249. data/sig/openai/models/responses/response_steer_failed_event.rbs +100 -0
  250. data/sig/openai/models/responses/response_steer_input.rbs +182 -0
  251. data/sig/openai/models/responses/response_steer_input_content.rbs +16 -0
  252. data/sig/openai/models/responses/response_steer_pending_event.rbs +61 -0
  253. data/sig/openai/models/responses/response_steer_pending_reason.rbs +13 -0
  254. data/sig/openai/models/responses/response_steer_required_input.rbs +159 -0
  255. data/sig/openai/models/responses/responses_client_event.rbs +355 -344
  256. data/sig/openai/models/responses/responses_server_event.rbs +80 -3
  257. data/sig/openai/models/safety/alert_retrieve_params.rbs +22 -0
  258. data/sig/openai/models/safety/safety_alert.rbs +81 -0
  259. data/sig/openai/models/video_create_error.rbs +87 -3
  260. data/sig/openai/models/webhooks/safety_alert_created_webhook_event.rbs +52 -0
  261. data/sig/openai/models/webhooks/safety_org_alert_created_webhook_event.rbs +52 -0
  262. data/sig/openai/models/webhooks/unwrap_webhook_event.rbs +2 -0
  263. data/sig/openai/models.rbs +2 -0
  264. data/sig/openai/resources/safety/alerts.rbs +14 -0
  265. data/sig/openai/resources/safety.rbs +9 -0
  266. data/sig/openai/resources/webhooks.rbs +3 -1
  267. metadata +86 -1
@@ -0,0 +1,32 @@
1
+ module OpenAI
2
+ module Models
3
+ module Responses
4
+ type response_steer_event =
5
+ {
6
+ input: OpenAI::Models::Responses::response_steer_input,
7
+ previous_response_id: String,
8
+ type: :"response.steer"
9
+ }
10
+
11
+ class ResponseSteerEvent < OpenAI::Internal::Type::BaseModel
12
+ attr_accessor input: OpenAI::Models::Responses::response_steer_input
13
+
14
+ attr_accessor previous_response_id: String
15
+
16
+ attr_accessor type: :"response.steer"
17
+
18
+ def initialize: (
19
+ input: OpenAI::Models::Responses::response_steer_input,
20
+ previous_response_id: String,
21
+ ?type: :"response.steer"
22
+ ) -> void
23
+
24
+ def to_hash: -> {
25
+ input: OpenAI::Models::Responses::response_steer_input,
26
+ previous_response_id: String,
27
+ type: :"response.steer"
28
+ }
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,100 @@
1
+ module OpenAI
2
+ module Models
3
+ module Responses
4
+ type response_steer_failed_event =
5
+ {
6
+ error: OpenAI::Responses::ResponseSteerFailedEvent::Error,
7
+ sequence_number: Integer,
8
+ steer: OpenAI::Responses::ResponseSteerFailedEvent::Steer,
9
+ type: :"response.steer.failed",
10
+ stream_id: String
11
+ }
12
+
13
+ class ResponseSteerFailedEvent < OpenAI::Internal::Type::BaseModel
14
+ attr_accessor error: OpenAI::Responses::ResponseSteerFailedEvent::Error
15
+
16
+ attr_accessor sequence_number: Integer
17
+
18
+ attr_accessor steer: OpenAI::Responses::ResponseSteerFailedEvent::Steer
19
+
20
+ attr_accessor type: :"response.steer.failed"
21
+
22
+ attr_reader stream_id: String?
23
+
24
+ def stream_id=: (String) -> String
25
+
26
+ def initialize: (
27
+ error: OpenAI::Responses::ResponseSteerFailedEvent::Error,
28
+ sequence_number: Integer,
29
+ steer: OpenAI::Responses::ResponseSteerFailedEvent::Steer,
30
+ ?stream_id: String,
31
+ ?type: :"response.steer.failed"
32
+ ) -> void
33
+
34
+ def to_hash: -> {
35
+ error: OpenAI::Responses::ResponseSteerFailedEvent::Error,
36
+ sequence_number: Integer,
37
+ steer: OpenAI::Responses::ResponseSteerFailedEvent::Steer,
38
+ type: :"response.steer.failed",
39
+ stream_id: String
40
+ }
41
+
42
+ type error =
43
+ {
44
+ code: OpenAI::Models::Responses::response_steer_error_code,
45
+ message: String,
46
+ type: :invalid_request_error
47
+ }
48
+
49
+ class Error < OpenAI::Internal::Type::BaseModel
50
+ attr_accessor code: OpenAI::Models::Responses::response_steer_error_code
51
+
52
+ attr_accessor message: String
53
+
54
+ attr_accessor type: :invalid_request_error
55
+
56
+ def initialize: (
57
+ code: OpenAI::Models::Responses::response_steer_error_code,
58
+ message: String,
59
+ ?type: :invalid_request_error
60
+ ) -> void
61
+
62
+ def to_hash: -> {
63
+ code: OpenAI::Models::Responses::response_steer_error_code,
64
+ message: String,
65
+ type: :invalid_request_error
66
+ }
67
+ end
68
+
69
+ type steer =
70
+ {
71
+ input: OpenAI::Models::Responses::response_steer_input,
72
+ previous_response_id: String,
73
+ id: String
74
+ }
75
+
76
+ class Steer < OpenAI::Internal::Type::BaseModel
77
+ attr_accessor input: OpenAI::Models::Responses::response_steer_input
78
+
79
+ attr_accessor previous_response_id: String
80
+
81
+ attr_reader id: String?
82
+
83
+ def id=: (String) -> String
84
+
85
+ def initialize: (
86
+ input: OpenAI::Models::Responses::response_steer_input,
87
+ previous_response_id: String,
88
+ ?id: String
89
+ ) -> void
90
+
91
+ def to_hash: -> {
92
+ input: OpenAI::Models::Responses::response_steer_input,
93
+ previous_response_id: String,
94
+ id: String
95
+ }
96
+ end
97
+ end
98
+ end
99
+ end
100
+ end
@@ -0,0 +1,182 @@
1
+ module OpenAI
2
+ module Models
3
+ module Responses
4
+ type response_steer_input =
5
+ String
6
+ | ::Array[OpenAI::Models::Responses::ResponseSteerInput::response_steer_input_item_list]
7
+
8
+ module ResponseSteerInput
9
+ extend OpenAI::Internal::Type::Union
10
+
11
+ type response_steer_input_item_list =
12
+ OpenAI::Responses::ResponseSteerInput::ResponseSteerInputItemList::Message
13
+ | OpenAI::Responses::ResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput
14
+
15
+ module ResponseSteerInputItemList
16
+ extend OpenAI::Internal::Type::Union
17
+
18
+ type message =
19
+ {
20
+ content: OpenAI::Models::Responses::ResponseSteerInput::ResponseSteerInputItemList::Message::content,
21
+ role: :user,
22
+ type: :message,
23
+ id: String?,
24
+ status: String?
25
+ }
26
+
27
+ class Message < OpenAI::Internal::Type::BaseModel
28
+ attr_accessor content: OpenAI::Models::Responses::ResponseSteerInput::ResponseSteerInputItemList::Message::content
29
+
30
+ attr_accessor role: :user
31
+
32
+ attr_accessor type: :message
33
+
34
+ attr_accessor id: String?
35
+
36
+ attr_accessor status: String?
37
+
38
+ def initialize: (
39
+ content: OpenAI::Models::Responses::ResponseSteerInput::ResponseSteerInputItemList::Message::content,
40
+ ?id: String?,
41
+ ?status: String?,
42
+ ?role: :user,
43
+ ?type: :message
44
+ ) -> void
45
+
46
+ def to_hash: -> {
47
+ content: OpenAI::Models::Responses::ResponseSteerInput::ResponseSteerInputItemList::Message::content,
48
+ role: :user,
49
+ type: :message,
50
+ id: String?,
51
+ status: String?
52
+ }
53
+
54
+ type content =
55
+ ::Array[OpenAI::Models::Responses::response_steer_input_content]
56
+ | String
57
+
58
+ module Content
59
+ extend OpenAI::Internal::Type::Union
60
+
61
+ def self?.variants: -> ::Array[OpenAI::Models::Responses::ResponseSteerInput::ResponseSteerInputItemList::Message::content]
62
+
63
+ ResponseSteerInputContentArray: OpenAI::Internal::Type::Converter
64
+ end
65
+ end
66
+
67
+ type function_call_output =
68
+ {
69
+ output: OpenAI::Models::Responses::ResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::output,
70
+ type: :function_call_output,
71
+ id: String?,
72
+ call_id: String?,
73
+ caller_: OpenAI::Models::Responses::ResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::caller_?,
74
+ name: String?,
75
+ namespace: String?,
76
+ status: OpenAI::Models::Responses::ResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::status?
77
+ }
78
+
79
+ class FunctionCallOutput < OpenAI::Internal::Type::BaseModel
80
+ attr_accessor output: OpenAI::Models::Responses::ResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::output
81
+
82
+ attr_accessor type: :function_call_output
83
+
84
+ attr_accessor id: String?
85
+
86
+ attr_accessor call_id: String?
87
+
88
+ attr_accessor caller_: OpenAI::Models::Responses::ResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::caller_?
89
+
90
+ attr_accessor name: String?
91
+
92
+ attr_accessor namespace: String?
93
+
94
+ attr_accessor status: OpenAI::Models::Responses::ResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::status?
95
+
96
+ def initialize: (
97
+ output: OpenAI::Models::Responses::ResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::output,
98
+ ?id: String?,
99
+ ?call_id: String?,
100
+ ?caller_: OpenAI::Models::Responses::ResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::caller_?,
101
+ ?name: String?,
102
+ ?namespace: String?,
103
+ ?status: OpenAI::Models::Responses::ResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::status?,
104
+ ?type: :function_call_output
105
+ ) -> void
106
+
107
+ def to_hash: -> {
108
+ output: OpenAI::Models::Responses::ResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::output,
109
+ type: :function_call_output,
110
+ id: String?,
111
+ call_id: String?,
112
+ caller_: OpenAI::Models::Responses::ResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::caller_?,
113
+ name: String?,
114
+ namespace: String?,
115
+ status: OpenAI::Models::Responses::ResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::status?
116
+ }
117
+
118
+ type output =
119
+ String
120
+ | OpenAI::Models::Responses::response_function_call_output_item_list
121
+
122
+ module Output
123
+ extend OpenAI::Internal::Type::Union
124
+
125
+ def self?.variants: -> ::Array[OpenAI::Models::Responses::ResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::output]
126
+ end
127
+
128
+ type caller_ =
129
+ OpenAI::Responses::ResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::Caller::Direct
130
+ | OpenAI::Responses::ResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::Caller::Program
131
+
132
+ module Caller
133
+ extend OpenAI::Internal::Type::Union
134
+
135
+ type direct = { type: :direct }
136
+
137
+ class Direct < OpenAI::Internal::Type::BaseModel
138
+ attr_accessor type: :direct
139
+
140
+ def initialize: (?type: :direct) -> void
141
+
142
+ def to_hash: -> { type: :direct }
143
+ end
144
+
145
+ type program = { caller_id: String, type: :program }
146
+
147
+ class Program < OpenAI::Internal::Type::BaseModel
148
+ attr_accessor caller_id: String
149
+
150
+ attr_accessor type: :program
151
+
152
+ def initialize: (caller_id: String, ?type: :program) -> void
153
+
154
+ def to_hash: -> { caller_id: String, type: :program }
155
+ end
156
+
157
+ def self?.variants: -> ::Array[OpenAI::Models::Responses::ResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::caller_]
158
+ end
159
+
160
+ type status = :in_progress | :completed | :incomplete
161
+
162
+ module Status
163
+ extend OpenAI::Internal::Type::Enum
164
+
165
+ IN_PROGRESS: :in_progress
166
+ COMPLETED: :completed
167
+ INCOMPLETE: :incomplete
168
+
169
+ def self?.values: -> ::Array[OpenAI::Models::Responses::ResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::status]
170
+ end
171
+ end
172
+
173
+ def self?.variants: -> ::Array[OpenAI::Models::Responses::ResponseSteerInput::response_steer_input_item_list]
174
+ end
175
+
176
+ def self?.variants: -> ::Array[OpenAI::Models::Responses::response_steer_input]
177
+
178
+ ResponseSteerInputItemListArray: OpenAI::Internal::Type::Converter
179
+ end
180
+ end
181
+ end
182
+ end
@@ -0,0 +1,16 @@
1
+ module OpenAI
2
+ module Models
3
+ module Responses
4
+ type response_steer_input_content =
5
+ OpenAI::Responses::ResponseInputTextContent
6
+ | OpenAI::Responses::ResponseInputImageContent
7
+ | OpenAI::Responses::ResponseInputFileContent
8
+
9
+ module ResponseSteerInputContent
10
+ extend OpenAI::Internal::Type::Union
11
+
12
+ def self?.variants: -> ::Array[OpenAI::Models::Responses::response_steer_input_content]
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,61 @@
1
+ module OpenAI
2
+ module Models
3
+ module Responses
4
+ type response_steer_pending_event =
5
+ {
6
+ reason: OpenAI::Models::Responses::response_steer_pending_reason,
7
+ required_input: ::Array[OpenAI::Models::Responses::response_steer_required_input],
8
+ sequence_number: Integer,
9
+ steer: OpenAI::Responses::ResponseSteerPendingEvent::Steer,
10
+ type: :"response.steer.pending",
11
+ stream_id: String
12
+ }
13
+
14
+ class ResponseSteerPendingEvent < OpenAI::Internal::Type::BaseModel
15
+ attr_accessor reason: OpenAI::Models::Responses::response_steer_pending_reason
16
+
17
+ attr_accessor required_input: ::Array[OpenAI::Models::Responses::response_steer_required_input]
18
+
19
+ attr_accessor sequence_number: Integer
20
+
21
+ attr_accessor steer: OpenAI::Responses::ResponseSteerPendingEvent::Steer
22
+
23
+ attr_accessor type: :"response.steer.pending"
24
+
25
+ attr_reader stream_id: String?
26
+
27
+ def stream_id=: (String) -> String
28
+
29
+ def initialize: (
30
+ reason: OpenAI::Models::Responses::response_steer_pending_reason,
31
+ required_input: ::Array[OpenAI::Models::Responses::response_steer_required_input],
32
+ sequence_number: Integer,
33
+ steer: OpenAI::Responses::ResponseSteerPendingEvent::Steer,
34
+ ?stream_id: String,
35
+ ?type: :"response.steer.pending"
36
+ ) -> void
37
+
38
+ def to_hash: -> {
39
+ reason: OpenAI::Models::Responses::response_steer_pending_reason,
40
+ required_input: ::Array[OpenAI::Models::Responses::response_steer_required_input],
41
+ sequence_number: Integer,
42
+ steer: OpenAI::Responses::ResponseSteerPendingEvent::Steer,
43
+ type: :"response.steer.pending",
44
+ stream_id: String
45
+ }
46
+
47
+ type steer = { id: String, previous_response_id: String }
48
+
49
+ class Steer < OpenAI::Internal::Type::BaseModel
50
+ attr_accessor id: String
51
+
52
+ attr_accessor previous_response_id: String
53
+
54
+ def initialize: (id: String, previous_response_id: String) -> void
55
+
56
+ def to_hash: -> { id: String, previous_response_id: String }
57
+ end
58
+ end
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,13 @@
1
+ module OpenAI
2
+ module Models
3
+ module Responses
4
+ type response_steer_pending_reason = :waiting_for_required_input | String
5
+
6
+ module ResponseSteerPendingReason
7
+ extend OpenAI::Internal::Type::Union
8
+
9
+ def self?.variants: -> ::Array[OpenAI::Models::Responses::response_steer_pending_reason]
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,159 @@
1
+ module OpenAI
2
+ module Models
3
+ module Responses
4
+ type response_steer_required_input =
5
+ OpenAI::Responses::ResponseSteerRequiredInput::FunctionCallOutput
6
+ | OpenAI::Responses::ResponseSteerRequiredInput::CustomToolCallOutput
7
+ | OpenAI::Responses::ResponseSteerRequiredInput::ComputerCallOutput
8
+ | OpenAI::Responses::ResponseSteerRequiredInput::ShellCallOutput
9
+ | OpenAI::Responses::ResponseSteerRequiredInput::ApplyPatchCallOutput
10
+ | OpenAI::Responses::ResponseSteerRequiredInput::ToolSearchOutput
11
+ | OpenAI::Responses::ResponseSteerRequiredInput::McpApprovalResponse
12
+
13
+ module ResponseSteerRequiredInput
14
+ extend OpenAI::Internal::Type::Union
15
+
16
+ type function_call_output =
17
+ { call_id: String, name: String, type: :function_call_output }
18
+
19
+ class FunctionCallOutput < OpenAI::Internal::Type::BaseModel
20
+ attr_accessor call_id: String
21
+
22
+ attr_accessor name: String
23
+
24
+ attr_accessor type: :function_call_output
25
+
26
+ def initialize: (
27
+ call_id: String,
28
+ name: String,
29
+ ?type: :function_call_output
30
+ ) -> void
31
+
32
+ def to_hash: -> {
33
+ call_id: String,
34
+ name: String,
35
+ type: :function_call_output
36
+ }
37
+ end
38
+
39
+ type custom_tool_call_output =
40
+ { call_id: String, type: :custom_tool_call_output }
41
+
42
+ class CustomToolCallOutput < OpenAI::Internal::Type::BaseModel
43
+ attr_accessor call_id: String
44
+
45
+ attr_accessor type: :custom_tool_call_output
46
+
47
+ def initialize: (
48
+ call_id: String,
49
+ ?type: :custom_tool_call_output
50
+ ) -> void
51
+
52
+ def to_hash: -> { call_id: String, type: :custom_tool_call_output }
53
+ end
54
+
55
+ type computer_call_output =
56
+ { call_id: String, type: :computer_call_output }
57
+
58
+ class ComputerCallOutput < OpenAI::Internal::Type::BaseModel
59
+ attr_accessor call_id: String
60
+
61
+ attr_accessor type: :computer_call_output
62
+
63
+ def initialize: (
64
+ call_id: String,
65
+ ?type: :computer_call_output
66
+ ) -> void
67
+
68
+ def to_hash: -> { call_id: String, type: :computer_call_output }
69
+ end
70
+
71
+ type shell_call_output = { call_id: String, type: :shell_call_output }
72
+
73
+ class ShellCallOutput < OpenAI::Internal::Type::BaseModel
74
+ attr_accessor call_id: String
75
+
76
+ attr_accessor type: :shell_call_output
77
+
78
+ def initialize: (call_id: String, ?type: :shell_call_output) -> void
79
+
80
+ def to_hash: -> { call_id: String, type: :shell_call_output }
81
+ end
82
+
83
+ type apply_patch_call_output =
84
+ { call_id: String, type: :apply_patch_call_output }
85
+
86
+ class ApplyPatchCallOutput < OpenAI::Internal::Type::BaseModel
87
+ attr_accessor call_id: String
88
+
89
+ attr_accessor type: :apply_patch_call_output
90
+
91
+ def initialize: (
92
+ call_id: String,
93
+ ?type: :apply_patch_call_output
94
+ ) -> void
95
+
96
+ def to_hash: -> { call_id: String, type: :apply_patch_call_output }
97
+ end
98
+
99
+ type tool_search_output =
100
+ {
101
+ call_id: String,
102
+ execution: OpenAI::Models::Responses::ResponseSteerRequiredInput::ToolSearchOutput::execution,
103
+ type: :tool_search_output
104
+ }
105
+
106
+ class ToolSearchOutput < OpenAI::Internal::Type::BaseModel
107
+ attr_accessor call_id: String
108
+
109
+ attr_accessor execution: OpenAI::Models::Responses::ResponseSteerRequiredInput::ToolSearchOutput::execution
110
+
111
+ attr_accessor type: :tool_search_output
112
+
113
+ def initialize: (
114
+ call_id: String,
115
+ execution: OpenAI::Models::Responses::ResponseSteerRequiredInput::ToolSearchOutput::execution,
116
+ ?type: :tool_search_output
117
+ ) -> void
118
+
119
+ def to_hash: -> {
120
+ call_id: String,
121
+ execution: OpenAI::Models::Responses::ResponseSteerRequiredInput::ToolSearchOutput::execution,
122
+ type: :tool_search_output
123
+ }
124
+
125
+ type execution = :client
126
+
127
+ module Execution
128
+ extend OpenAI::Internal::Type::Enum
129
+
130
+ CLIENT: :client
131
+
132
+ def self?.values: -> ::Array[OpenAI::Models::Responses::ResponseSteerRequiredInput::ToolSearchOutput::execution]
133
+ end
134
+ end
135
+
136
+ type mcp_approval_response =
137
+ { approval_request_id: String, type: :mcp_approval_response }
138
+
139
+ class McpApprovalResponse < OpenAI::Internal::Type::BaseModel
140
+ attr_accessor approval_request_id: String
141
+
142
+ attr_accessor type: :mcp_approval_response
143
+
144
+ def initialize: (
145
+ approval_request_id: String,
146
+ ?type: :mcp_approval_response
147
+ ) -> void
148
+
149
+ def to_hash: -> {
150
+ approval_request_id: String,
151
+ type: :mcp_approval_response
152
+ }
153
+ end
154
+
155
+ def self?.variants: -> ::Array[OpenAI::Models::Responses::response_steer_required_input]
156
+ end
157
+ end
158
+ end
159
+ end