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,360 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Beta
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 BetaResponseSteerInput
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::Beta::BetaResponseSteerInput::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::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::Message }
31
+
32
+ # The output of a function tool call.
33
+ variant(
34
+ :function_call_output,
35
+ -> { OpenAI::Beta::BetaResponseSteerInput::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::Beta::BetaResponseInputTextContent, OpenAI::Models::Beta::BetaResponseInputImageContent, OpenAI::Models::Beta::BetaResponseInputFileContent>, String]
43
+ required(
44
+ :content,
45
+ union: -> { OpenAI::Beta::BetaResponseSteerInput::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 agent
67
+ # The agent that produced this item.
68
+ #
69
+ # @return [OpenAI::Models::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::Message::Agent, nil]
70
+ optional(
71
+ :agent,
72
+ -> { OpenAI::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::Message::Agent },
73
+ nil?: true
74
+ )
75
+
76
+ # @!attribute status
77
+ # The status of the message item.
78
+ #
79
+ # @return [String, nil]
80
+ optional :status, String, nil?: true
81
+
82
+ # @!method initialize(content:, id: nil, agent: nil, status: nil, role: :user, type: :message)
83
+ # @param content [Array<OpenAI::Models::Beta::BetaResponseInputTextContent, OpenAI::Models::Beta::BetaResponseInputImageContent, OpenAI::Models::Beta::BetaResponseInputFileContent>, String] The message content, as an array of content parts.
84
+ #
85
+ # @param id [String, nil] The unique ID of this message item.
86
+ #
87
+ # @param agent [OpenAI::Models::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::Message::Agent, nil] The agent that produced this item.
88
+ #
89
+ # @param status [String, nil] The status of the message item.
90
+ #
91
+ # @param role [Symbol, :user] The message role. Always `user`.
92
+ #
93
+ # @param type [Symbol, :message] The item type. Always `message`.
94
+
95
+ # The message content, as an array of content parts.
96
+ #
97
+ # @see OpenAI::Models::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::Message#content
98
+ module Content
99
+ extend OpenAI::Internal::Type::Union
100
+
101
+ variant(
102
+ -> {
103
+ OpenAI::Models::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::Message::Content::BetaResponseSteerInputContentArray
104
+ }
105
+ )
106
+
107
+ # The message content, as a single string.
108
+ variant String
109
+
110
+ # @!method self.variants
111
+ # @return [Array(Array<OpenAI::Models::Beta::BetaResponseInputTextContent, OpenAI::Models::Beta::BetaResponseInputImageContent, OpenAI::Models::Beta::BetaResponseInputFileContent>, String)]
112
+
113
+ # @type [OpenAI::Internal::Type::Converter]
114
+ BetaResponseSteerInputContentArray = OpenAI::Internal::Type::ArrayOf[
115
+ union: -> { OpenAI::Beta::BetaResponseSteerInputContent }
116
+ ]
117
+ end
118
+
119
+ # @see OpenAI::Models::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::Message#agent
120
+ class Agent < OpenAI::Internal::Type::BaseModel
121
+ # @!attribute agent_name
122
+ # The canonical name of the agent that produced this item.
123
+ #
124
+ # @return [String]
125
+ required :agent_name, String
126
+
127
+ # @!method initialize(agent_name:)
128
+ # The agent that produced this item.
129
+ #
130
+ # @param agent_name [String] The canonical name of the agent that produced this item.
131
+ end
132
+ end
133
+
134
+ class FunctionCallOutput < OpenAI::Internal::Type::BaseModel
135
+ # @!attribute output
136
+ # Text, image, or file output of the function tool call.
137
+ #
138
+ # @return [String, Array<OpenAI::Models::Beta::BetaResponseInputTextContent, OpenAI::Models::Beta::BetaResponseInputImageContent, OpenAI::Models::Beta::BetaResponseInputFileContent>]
139
+ required(
140
+ :output,
141
+ union: -> {
142
+ OpenAI::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::Output
143
+ }
144
+ )
145
+
146
+ # @!attribute type
147
+ # The type of the function tool call output. Always `function_call_output`.
148
+ #
149
+ # @return [Symbol, :function_call_output]
150
+ required :type, const: :function_call_output
151
+
152
+ # @!attribute id
153
+ # The unique ID of the function tool call output. Populated when this item is
154
+ # returned via API.
155
+ #
156
+ # @return [String, nil]
157
+ optional :id, String, nil?: true
158
+
159
+ # @!attribute agent
160
+ # The agent that produced this item.
161
+ #
162
+ # @return [OpenAI::Models::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::Agent, nil]
163
+ optional(
164
+ :agent,
165
+ -> {
166
+ OpenAI::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::Agent
167
+ },
168
+ nil?: true
169
+ )
170
+
171
+ # @!attribute call_id
172
+ # The unique ID of the function tool call generated by the model.
173
+ #
174
+ # @return [String, nil]
175
+ optional :call_id, String, nil?: true
176
+
177
+ # @!attribute caller_
178
+ # The execution context that produced this tool call.
179
+ #
180
+ # @return [OpenAI::Models::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::Caller::Direct, OpenAI::Models::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::Caller::Program, nil]
181
+ optional(
182
+ :caller_,
183
+ union: -> {
184
+ OpenAI::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::Caller
185
+ },
186
+ api_name: :caller,
187
+ nil?: true
188
+ )
189
+
190
+ # @!attribute name
191
+ # The name of the tool that produced the output.
192
+ #
193
+ # @return [String, nil]
194
+ optional :name, String, nil?: true
195
+
196
+ # @!attribute namespace
197
+ # The namespace of the tool that produced the output.
198
+ #
199
+ # @return [String, nil]
200
+ optional :namespace, String, nil?: true
201
+
202
+ # @!attribute status
203
+ # The status of the item. One of `in_progress`, `completed`, or `incomplete`.
204
+ # Populated when items are returned via API.
205
+ #
206
+ # @return [Symbol, OpenAI::Models::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::Status, nil]
207
+ optional(
208
+ :status,
209
+ enum: -> {
210
+ OpenAI::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::Status
211
+ },
212
+ nil?: true
213
+ )
214
+
215
+ # @!method initialize(output:, id: nil, agent: nil, call_id: nil, caller_: nil, name: nil, namespace: nil, status: nil, type: :function_call_output)
216
+ # Some parameter documentations has been truncated, see
217
+ # {OpenAI::Models::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput}
218
+ # for more details.
219
+ #
220
+ # The output of a function tool call.
221
+ #
222
+ # @param output [String, Array<OpenAI::Models::Beta::BetaResponseInputTextContent, OpenAI::Models::Beta::BetaResponseInputImageContent, OpenAI::Models::Beta::BetaResponseInputFileContent>] Text, image, or file output of the function tool call.
223
+ #
224
+ # @param id [String, nil] The unique ID of the function tool call output. Populated when this item is retu
225
+ #
226
+ # @param agent [OpenAI::Models::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::Agent, nil] The agent that produced this item.
227
+ #
228
+ # @param call_id [String, nil] The unique ID of the function tool call generated by the model.
229
+ #
230
+ # @param caller_ [OpenAI::Models::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::Caller::Direct, OpenAI::Models::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::Caller::Program, nil] The execution context that produced this tool call.
231
+ #
232
+ # @param name [String, nil] The name of the tool that produced the output.
233
+ #
234
+ # @param namespace [String, nil] The namespace of the tool that produced the output.
235
+ #
236
+ # @param status [Symbol, OpenAI::Models::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::Status, nil] The status of the item. One of `in_progress`, `completed`, or `incomplete`. Popu
237
+ #
238
+ # @param type [Symbol, :function_call_output] The type of the function tool call output. Always `function_call_output`.
239
+
240
+ # Text, image, or file output of the function tool call.
241
+ #
242
+ # @see OpenAI::Models::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput#output
243
+ module Output
244
+ extend OpenAI::Internal::Type::Union
245
+
246
+ # A JSON string of the output of the function tool call.
247
+ variant String
248
+
249
+ # An array of content outputs (text, image, file) for the function tool call.
250
+ variant -> { OpenAI::Beta::BetaResponseFunctionCallOutputItemList }
251
+
252
+ # @!method self.variants
253
+ # @return [Array(String, Array<OpenAI::Models::Beta::BetaResponseInputTextContent, OpenAI::Models::Beta::BetaResponseInputImageContent, OpenAI::Models::Beta::BetaResponseInputFileContent>)]
254
+ end
255
+
256
+ # @see OpenAI::Models::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput#agent
257
+ class Agent < OpenAI::Internal::Type::BaseModel
258
+ # @!attribute agent_name
259
+ # The canonical name of the agent that produced this item.
260
+ #
261
+ # @return [String]
262
+ required :agent_name, String
263
+
264
+ # @!method initialize(agent_name:)
265
+ # The agent that produced this item.
266
+ #
267
+ # @param agent_name [String] The canonical name of the agent that produced this item.
268
+ end
269
+
270
+ # The execution context that produced this tool call.
271
+ #
272
+ # @see OpenAI::Models::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput#caller_
273
+ module Caller
274
+ extend OpenAI::Internal::Type::Union
275
+
276
+ discriminator :type
277
+
278
+ variant(
279
+ :direct,
280
+ -> {
281
+ OpenAI::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::Caller::Direct
282
+ }
283
+ )
284
+
285
+ variant(
286
+ :program,
287
+ -> {
288
+ OpenAI::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::Caller::Program
289
+ }
290
+ )
291
+
292
+ class Direct < OpenAI::Internal::Type::BaseModel
293
+ # @!attribute type
294
+ # The caller type. Always `direct`.
295
+ #
296
+ # @return [Symbol, :direct]
297
+ required :type, const: :direct
298
+
299
+ # @!method initialize(type: :direct)
300
+ # @param type [Symbol, :direct] The caller type. Always `direct`.
301
+ end
302
+
303
+ class Program < OpenAI::Internal::Type::BaseModel
304
+ # @!attribute caller_id
305
+ # The call ID of the program item that produced this tool call.
306
+ #
307
+ # @return [String]
308
+ required :caller_id, String
309
+
310
+ # @!attribute type
311
+ # The caller type. Always `program`.
312
+ #
313
+ # @return [Symbol, :program]
314
+ required :type, const: :program
315
+
316
+ # @!method initialize(caller_id:, type: :program)
317
+ # @param caller_id [String] The call ID of the program item that produced this tool call.
318
+ #
319
+ # @param type [Symbol, :program] The caller type. Always `program`.
320
+ end
321
+
322
+ # @!method self.variants
323
+ # @return [Array(OpenAI::Models::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::Caller::Direct, OpenAI::Models::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::Caller::Program)]
324
+ end
325
+
326
+ # The status of the item. One of `in_progress`, `completed`, or `incomplete`.
327
+ # Populated when items are returned via API.
328
+ #
329
+ # @see OpenAI::Models::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput#status
330
+ module Status
331
+ extend OpenAI::Internal::Type::Enum
332
+
333
+ IN_PROGRESS = :in_progress
334
+ COMPLETED = :completed
335
+ INCOMPLETE = :incomplete
336
+
337
+ # @!method self.values
338
+ # @return [Array<Symbol>]
339
+ end
340
+ end
341
+
342
+ # @!method self.variants
343
+ # @return [Array(OpenAI::Models::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::Message, OpenAI::Models::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput)]
344
+ end
345
+
346
+ # @!method self.variants
347
+ # @return [Array(String, Array<Hash{Symbol=>Object}>)]
348
+
349
+ # @type [OpenAI::Internal::Type::Converter]
350
+ ResponseSteerInputItemListArray = OpenAI::Internal::Type::ArrayOf[
351
+ union: -> {
352
+ OpenAI::Beta::BetaResponseSteerInput::ResponseSteerInputItemList
353
+ }
354
+ ]
355
+ end
356
+ end
357
+
358
+ BetaResponseSteerInput = Beta::BetaResponseSteerInput
359
+ end
360
+ end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Beta
6
+ # A piece of message content, such as text, an image, or a file.
7
+ module BetaResponseSteerInputContent
8
+ extend OpenAI::Internal::Type::Union
9
+
10
+ discriminator :type
11
+
12
+ # A text input to the model.
13
+ variant :input_text, -> { OpenAI::Beta::BetaResponseInputTextContent }
14
+
15
+ # An image input to the model. Learn about [image inputs](https://platform.openai.com/docs/guides/vision)
16
+ variant :input_image, -> { OpenAI::Beta::BetaResponseInputImageContent }
17
+
18
+ # A file input to the model.
19
+ variant :input_file, -> { OpenAI::Beta::BetaResponseInputFileContent }
20
+
21
+ # @!method self.variants
22
+ # @return [Array(OpenAI::Models::Beta::BetaResponseInputTextContent, OpenAI::Models::Beta::BetaResponseInputImageContent, OpenAI::Models::Beta::BetaResponseInputFileContent)]
23
+ end
24
+ end
25
+
26
+ BetaResponseSteerInputContent = Beta::BetaResponseSteerInputContent
27
+ end
28
+ end
@@ -0,0 +1,113 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Beta
6
+ class BetaResponseSteerPendingEvent < 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::Beta::BetaResponseSteerPendingReason }
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::Beta::BetaResponseSteerRequiredInput::FunctionCallOutput, OpenAI::Models::Beta::BetaResponseSteerRequiredInput::CustomToolCallOutput, OpenAI::Models::Beta::BetaResponseSteerRequiredInput::ComputerCallOutput, OpenAI::Models::Beta::BetaResponseSteerRequiredInput::ShellCallOutput, OpenAI::Models::Beta::BetaResponseSteerRequiredInput::ApplyPatchCallOutput, OpenAI::Models::Beta::BetaResponseSteerRequiredInput::ToolSearchOutput, OpenAI::Models::Beta::BetaResponseSteerRequiredInput::McpApprovalResponse>]
24
+ required(
25
+ :required_input,
26
+ -> { OpenAI::Internal::Type::ArrayOf[union: OpenAI::Beta::BetaResponseSteerRequiredInput] }
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::Beta::BetaResponseSteerPendingEvent::Steer]
39
+ required :steer, -> { OpenAI::Beta::BetaResponseSteerPendingEvent::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::Beta::BetaResponseSteerPendingEvent} 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::Beta::BetaResponseSteerRequiredInput::FunctionCallOutput, OpenAI::Models::Beta::BetaResponseSteerRequiredInput::CustomToolCallOutput, OpenAI::Models::Beta::BetaResponseSteerRequiredInput::ComputerCallOutput, OpenAI::Models::Beta::BetaResponseSteerRequiredInput::ShellCallOutput, OpenAI::Models::Beta::BetaResponseSteerRequiredInput::ApplyPatchCallOutput, OpenAI::Models::Beta::BetaResponseSteerRequiredInput::ToolSearchOutput, OpenAI::Models::Beta::BetaResponseSteerRequiredInput::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::Beta::BetaResponseSteerPendingEvent::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::Beta::BetaResponseSteerPendingEvent#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
+
111
+ BetaResponseSteerPendingEvent = Beta::BetaResponseSteerPendingEvent
112
+ end
113
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Beta
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 BetaResponseSteerPendingReason
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
+
24
+ BetaResponseSteerPendingReason = Beta::BetaResponseSteerPendingReason
25
+ end
26
+ end