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