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,474 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+
6
+ module Responses
7
+
8
+ # Input to queue for a continuation of the response. Uses the same string or
9
+ # input-item shape as `response.create.input`, with a non-empty array when
10
+ # supplying input items.
11
+ #
12
+ # Steering accepts only messages with the `user` role. Each message may contain
13
+ # only `type`, `role`, and `content`, with `content` as a string or an array of
14
+ # `input_text`, `input_image`, and `input_file` parts. The optional `type` must be
15
+ # `message`. Other roles, tool outputs, and item types are not supported for
16
+ # steering.
17
+ module ResponseSteerInput
18
+ extend OpenAI::Internal::Type::Union
19
+
20
+ Variants = T.type_alias do
21
+ T.any(
22
+ String,
23
+ T::Array[OpenAI::Responses::ResponseSteerInput::ResponseSteerInputItemList::Variants]
24
+ )
25
+ end
26
+
27
+ # The output of a function tool call.
28
+ module ResponseSteerInputItemList
29
+ extend OpenAI::Internal::Type::Union
30
+
31
+ Variants = T.type_alias {
32
+ T.any(
33
+ OpenAI::Responses::ResponseSteerInput::ResponseSteerInputItemList::Message,
34
+ OpenAI::Responses::ResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput
35
+ )
36
+ }
37
+
38
+ class Message < OpenAI::Internal::Type::BaseModel
39
+ OrHash = T.type_alias do
40
+ T.any(
41
+ OpenAI::Responses::ResponseSteerInput::ResponseSteerInputItemList::Message,
42
+ OpenAI::Internal::AnyHash
43
+ )
44
+ end
45
+
46
+ # The message content, as an array of content parts.
47
+ sig {
48
+ returns(OpenAI::Responses::ResponseSteerInput::ResponseSteerInputItemList::Message::Content::Variants)
49
+ }
50
+ attr_accessor :content
51
+
52
+ # The message role. Always `user`.
53
+ sig { returns(Symbol) }
54
+ attr_accessor :role
55
+
56
+ # The item type. Always `message`.
57
+ sig { returns(Symbol) }
58
+ attr_accessor :type
59
+
60
+ # The unique ID of this message item.
61
+ sig { returns(T.nilable(String)) }
62
+ attr_accessor :id
63
+
64
+ # The status of the message item.
65
+ sig { returns(T.nilable(String)) }
66
+ attr_accessor :status
67
+
68
+ sig do
69
+ params(
70
+
71
+ content: OpenAI::Responses::ResponseSteerInput::ResponseSteerInputItemList::Message::Content::Variants,
72
+
73
+ id: T.nilable(String),
74
+
75
+ status: T.nilable(String),
76
+
77
+ role: Symbol,
78
+
79
+ type: Symbol
80
+ )
81
+ .returns(T.attached_class)
82
+ end
83
+ def self.new(
84
+
85
+ # The message content, as an array of content parts.
86
+ content:,
87
+
88
+ # The unique ID of this message item.
89
+ id: nil,
90
+
91
+ # The status of the message item.
92
+ status: nil,
93
+
94
+ # The message role. Always `user`.
95
+ role: :user,
96
+
97
+ # The item type. Always `message`.
98
+
99
+ type: :message
100
+ )
101
+ end
102
+
103
+ sig do
104
+ override.returns(
105
+ {
106
+ content: OpenAI::Responses::ResponseSteerInput::ResponseSteerInputItemList::Message::Content::Variants,
107
+ role: Symbol,
108
+ type: Symbol,
109
+ id: T.nilable(String),
110
+ status: T.nilable(String)
111
+ }
112
+ )
113
+ end
114
+ def to_hash
115
+ end
116
+
117
+ # The message content, as an array of content parts.
118
+ module Content
119
+ extend OpenAI::Internal::Type::Union
120
+
121
+ Variants = T.type_alias {
122
+ T.any(T::Array[OpenAI::Responses::ResponseSteerInputContent::Variants], String)
123
+ }
124
+
125
+ sig {
126
+ override.returns(
127
+ T::Array[
128
+ OpenAI::Responses::ResponseSteerInput::ResponseSteerInputItemList::Message::Content::Variants
129
+ ]
130
+ )
131
+ }
132
+ def self.variants
133
+ end
134
+
135
+ ResponseSteerInputContentArray = T.let(
136
+ OpenAI::Internal::Type::ArrayOf[union: OpenAI::Responses::ResponseSteerInputContent],
137
+ OpenAI::Internal::Type::Converter
138
+ )
139
+
140
+ end
141
+ end
142
+
143
+ class FunctionCallOutput < OpenAI::Internal::Type::BaseModel
144
+ OrHash = T.type_alias do
145
+ T.any(
146
+ OpenAI::Responses::ResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput,
147
+ OpenAI::Internal::AnyHash
148
+ )
149
+ end
150
+
151
+ # Text, image, or file output of the function tool call.
152
+ sig {
153
+ returns(
154
+ OpenAI::Responses::ResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::Output::Variants
155
+ )
156
+ }
157
+ attr_accessor :output
158
+
159
+ # The type of the function tool call output. Always `function_call_output`.
160
+ sig { returns(Symbol) }
161
+ attr_accessor :type
162
+
163
+ # The unique ID of the function tool call output. Populated when this item is
164
+ # returned via API.
165
+ sig { returns(T.nilable(String)) }
166
+ attr_accessor :id
167
+
168
+ # The unique ID of the function tool call generated by the model.
169
+ sig { returns(T.nilable(String)) }
170
+ attr_accessor :call_id
171
+
172
+ # The execution context that produced this tool call.
173
+ sig {
174
+ returns(
175
+ T.nilable(
176
+ T.any(
177
+ OpenAI::Responses::ResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::Caller::Direct,
178
+ OpenAI::Responses::ResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::Caller::Program
179
+ )
180
+ )
181
+ )
182
+ }
183
+ attr_accessor :caller_
184
+
185
+ # The name of the tool that produced the output.
186
+ sig { returns(T.nilable(String)) }
187
+ attr_accessor :name
188
+
189
+ # The namespace of the tool that produced the output.
190
+ sig { returns(T.nilable(String)) }
191
+ attr_accessor :namespace
192
+
193
+ # The status of the item. One of `in_progress`, `completed`, or `incomplete`.
194
+ # Populated when items are returned via API.
195
+ sig {
196
+ returns(
197
+ T.nilable(
198
+ OpenAI::Responses::ResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::Status::OrSymbol
199
+ )
200
+ )
201
+ }
202
+ attr_accessor :status
203
+
204
+ # The output of a function tool call.
205
+ sig do
206
+ params(
207
+
208
+ output: OpenAI::Responses::ResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::Output::Variants,
209
+
210
+ id: T.nilable(String),
211
+
212
+ call_id: T.nilable(String),
213
+
214
+ caller_: T.nilable(
215
+ T.any(
216
+ OpenAI::Responses::ResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::Caller::Direct::OrHash,
217
+ OpenAI::Responses::ResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::Caller::Program::OrHash
218
+ )
219
+ ),
220
+
221
+ name: T.nilable(String),
222
+
223
+ namespace: T.nilable(String),
224
+
225
+ status: T.nilable(
226
+ OpenAI::Responses::ResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::Status::OrSymbol
227
+ ),
228
+
229
+ type: Symbol
230
+ )
231
+ .returns(T.attached_class)
232
+ end
233
+ def self.new(
234
+
235
+ # Text, image, or file output of the function tool call.
236
+ output:,
237
+
238
+ # The unique ID of the function tool call output. Populated when this item is
239
+ # returned via API.
240
+ id: nil,
241
+
242
+ # The unique ID of the function tool call generated by the model.
243
+ call_id: nil,
244
+
245
+ # The execution context that produced this tool call.
246
+ caller_: nil,
247
+
248
+ # The name of the tool that produced the output.
249
+ name: nil,
250
+
251
+ # The namespace of the tool that produced the output.
252
+ namespace: nil,
253
+
254
+ # The status of the item. One of `in_progress`, `completed`, or `incomplete`.
255
+ # Populated when items are returned via API.
256
+ status: nil,
257
+
258
+ # The type of the function tool call output. Always `function_call_output`.
259
+
260
+ type: :function_call_output
261
+ )
262
+ end
263
+
264
+ sig do
265
+ override.returns(
266
+ {
267
+ output: OpenAI::Responses::ResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::Output::Variants,
268
+ type: Symbol,
269
+ id: T.nilable(String),
270
+ call_id: T.nilable(String),
271
+ caller_: T.nilable(
272
+ T.any(
273
+ OpenAI::Responses::ResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::Caller::Direct,
274
+ OpenAI::Responses::ResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::Caller::Program
275
+ )
276
+ ),
277
+ name: T.nilable(String),
278
+ namespace: T.nilable(String),
279
+ status: T.nilable(
280
+ OpenAI::Responses::ResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::Status::OrSymbol
281
+ )
282
+ }
283
+ )
284
+ end
285
+ def to_hash
286
+ end
287
+
288
+ # Text, image, or file output of the function tool call.
289
+ module Output
290
+ extend OpenAI::Internal::Type::Union
291
+
292
+ Variants = T.type_alias {
293
+ T.any(String, T::Array[OpenAI::Responses::ResponseFunctionCallOutputItem::Variants])
294
+ }
295
+
296
+ sig {
297
+ override.returns(
298
+ T::Array[
299
+ OpenAI::Responses::ResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::Output::Variants
300
+ ]
301
+ )
302
+ }
303
+ def self.variants
304
+ end
305
+
306
+ end
307
+
308
+ # The execution context that produced this tool call.
309
+ module Caller
310
+ extend OpenAI::Internal::Type::Union
311
+
312
+ Variants = T.type_alias {
313
+ T.any(
314
+ OpenAI::Responses::ResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::Caller::Direct,
315
+ OpenAI::Responses::ResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::Caller::Program
316
+ )
317
+ }
318
+
319
+ class Direct < OpenAI::Internal::Type::BaseModel
320
+ OrHash = T.type_alias do
321
+ T.any(
322
+ OpenAI::Responses::ResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::Caller::Direct,
323
+ OpenAI::Internal::AnyHash
324
+ )
325
+ end
326
+
327
+ # The caller type. Always `direct`.
328
+ sig { returns(Symbol) }
329
+ attr_accessor :type
330
+
331
+ sig do
332
+ params(
333
+
334
+ type: Symbol
335
+ )
336
+ .returns(T.attached_class)
337
+ end
338
+ def self.new(
339
+
340
+ # The caller type. Always `direct`.
341
+
342
+ type: :direct
343
+ )
344
+ end
345
+
346
+ sig do
347
+ override.returns(
348
+ {type: Symbol}
349
+ )
350
+ end
351
+ def to_hash
352
+ end
353
+
354
+ end
355
+
356
+ class Program < OpenAI::Internal::Type::BaseModel
357
+ OrHash = T.type_alias do
358
+ T.any(
359
+ OpenAI::Responses::ResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::Caller::Program,
360
+ OpenAI::Internal::AnyHash
361
+ )
362
+ end
363
+
364
+ # The call ID of the program item that produced this tool call.
365
+ sig { returns(String) }
366
+ attr_accessor :caller_id
367
+
368
+ # The caller type. Always `program`.
369
+ sig { returns(Symbol) }
370
+ attr_accessor :type
371
+
372
+ sig do
373
+ params(
374
+
375
+ caller_id: String,
376
+
377
+ type: Symbol
378
+ )
379
+ .returns(T.attached_class)
380
+ end
381
+ def self.new(
382
+
383
+ # The call ID of the program item that produced this tool call.
384
+ caller_id:,
385
+
386
+ # The caller type. Always `program`.
387
+
388
+ type: :program
389
+ )
390
+ end
391
+
392
+ sig do
393
+ override.returns(
394
+ {caller_id: String, type: Symbol}
395
+ )
396
+ end
397
+ def to_hash
398
+ end
399
+
400
+ end
401
+
402
+ sig {
403
+ override.returns(
404
+ T::Array[
405
+ OpenAI::Responses::ResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::Caller::Variants
406
+ ]
407
+ )
408
+ }
409
+ def self.variants
410
+ end
411
+
412
+ end
413
+
414
+ # The status of the item. One of `in_progress`, `completed`, or `incomplete`.
415
+ # Populated when items are returned via API.
416
+ module Status
417
+ extend OpenAI::Internal::Type::Enum
418
+
419
+ TaggedSymbol = T.type_alias {
420
+ T.all(
421
+ Symbol,
422
+ OpenAI::Responses::ResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::Status
423
+ )
424
+ }
425
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
426
+
427
+ IN_PROGRESS = T.let(
428
+ :in_progress,
429
+ OpenAI::Responses::ResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::Status::TaggedSymbol
430
+ )
431
+ COMPLETED = T.let(
432
+ :completed,
433
+ OpenAI::Responses::ResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::Status::TaggedSymbol
434
+ )
435
+ INCOMPLETE = T.let(
436
+ :incomplete,
437
+ OpenAI::Responses::ResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::Status::TaggedSymbol
438
+ )
439
+
440
+ sig {
441
+ override.returns(
442
+ T::Array[
443
+ OpenAI::Responses::ResponseSteerInput::ResponseSteerInputItemList::FunctionCallOutput::Status::TaggedSymbol
444
+ ]
445
+ )
446
+ }
447
+ def self.values
448
+ end
449
+ end
450
+ end
451
+
452
+ sig {
453
+ override.returns(T::Array[OpenAI::Responses::ResponseSteerInput::ResponseSteerInputItemList::Variants])
454
+ }
455
+ def self.variants
456
+ end
457
+
458
+ end
459
+
460
+ sig { override.returns(T::Array[OpenAI::Responses::ResponseSteerInput::Variants]) }
461
+ def self.variants
462
+ end
463
+
464
+ ResponseSteerInputItemListArray = T.let(
465
+ OpenAI::Internal::Type::ArrayOf[union: OpenAI::Responses::ResponseSteerInput::ResponseSteerInputItemList],
466
+ OpenAI::Internal::Type::Converter
467
+ )
468
+
469
+ end
470
+
471
+ end
472
+
473
+ end
474
+ end
@@ -0,0 +1,29 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+
6
+ module Responses
7
+
8
+ # A piece of message content, such as text, an image, or a file.
9
+ module ResponseSteerInputContent
10
+ extend OpenAI::Internal::Type::Union
11
+
12
+ Variants = T.type_alias do
13
+ T.any(
14
+ OpenAI::Responses::ResponseInputTextContent,
15
+ OpenAI::Responses::ResponseInputImageContent,
16
+ OpenAI::Responses::ResponseInputFileContent
17
+ )
18
+ end
19
+
20
+ sig { override.returns(T::Array[OpenAI::Responses::ResponseSteerInputContent::Variants]) }
21
+ def self.variants
22
+ end
23
+
24
+ end
25
+
26
+ end
27
+
28
+ end
29
+ end