openai 0.84.0 → 0.85.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (267) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +30 -0
  3. data/README.md +1 -1
  4. data/SECURITY.md +10 -0
  5. data/docs/architecture/security-model.md +267 -0
  6. data/lib/openai/client.rb +4 -0
  7. data/lib/openai/helpers/streaming/chat_completion_stream.rb +17 -8
  8. data/lib/openai/helpers/streaming/response_stream.rb +13 -8
  9. data/lib/openai/helpers/structured_output/array_of.rb +2 -2
  10. data/lib/openai/helpers/structured_output/base_model.rb +19 -5
  11. data/lib/openai/helpers/structured_output/chat_completion_parser.rb +6 -3
  12. data/lib/openai/helpers/structured_output/json_schema_converter.rb +34 -11
  13. data/lib/openai/internal/vector_store_file_uploader.rb +1 -1
  14. data/lib/openai/models/admin/organization/usage_costs_params.rb +1 -1
  15. data/lib/openai/models/batch.rb +2 -2
  16. data/lib/openai/models/beta/beta_custom_tool.rb +13 -1
  17. data/lib/openai/models/beta/beta_function_tool.rb +8 -1
  18. data/lib/openai/models/beta/beta_namespace_tool.rb +10 -1
  19. data/lib/openai/models/beta/beta_response.rb +20 -9
  20. data/lib/openai/models/beta/beta_response_configuration_update_item.rb +103 -0
  21. data/lib/openai/models/beta/beta_response_configuration_update_item_param.rb +104 -0
  22. data/lib/openai/models/beta/beta_response_custom_tool_call.rb +9 -1
  23. data/lib/openai/models/beta/beta_response_custom_tool_call_item.rb +3 -1
  24. data/lib/openai/models/beta/beta_response_error.rb +96 -1
  25. data/lib/openai/models/beta/beta_response_function_tool_call.rb +9 -1
  26. data/lib/openai/models/beta/beta_response_function_tool_call_item.rb +3 -1
  27. data/lib/openai/models/beta/beta_response_incomplete_event.rb +4 -0
  28. data/lib/openai/models/beta/beta_response_inject_event.rb +2 -2
  29. data/lib/openai/models/beta/beta_response_inject_failed_event.rb +2 -2
  30. data/lib/openai/models/beta/beta_response_input_item.rb +6 -1
  31. data/lib/openai/models/beta/beta_response_item.rb +5 -1
  32. data/lib/openai/models/beta/beta_response_steer_accepted_event.rb +81 -0
  33. data/lib/openai/models/beta/beta_response_steer_error_code.rb +61 -0
  34. data/lib/openai/models/beta/beta_response_steer_event.rb +75 -0
  35. data/lib/openai/models/beta/beta_response_steer_failed_event.rb +151 -0
  36. data/lib/openai/models/beta/beta_response_steer_input.rb +360 -0
  37. data/lib/openai/models/beta/beta_response_steer_input_content.rb +28 -0
  38. data/lib/openai/models/beta/beta_response_steer_pending_event.rb +113 -0
  39. data/lib/openai/models/beta/beta_response_steer_pending_reason.rb +26 -0
  40. data/lib/openai/models/beta/beta_response_steer_required_input.rb +215 -0
  41. data/lib/openai/models/beta/beta_response_stream_event.rb +4 -0
  42. data/lib/openai/models/beta/beta_responses_client_event.rb +40 -7
  43. data/lib/openai/models/beta/beta_responses_server_event.rb +164 -2
  44. data/lib/openai/models/beta/response_compact_params.rb +9 -6
  45. data/lib/openai/models/beta/response_create_params.rb +9 -6
  46. data/lib/openai/models/beta/responses/beta_response_item_list.rb +2 -2
  47. data/lib/openai/models/beta/responses/input_token_count_params.rb +3 -3
  48. data/lib/openai/models/chat/completion_create_params.rb +4 -4
  49. data/lib/openai/models/chat_model.rb +1 -0
  50. data/lib/openai/models/conversations/conversation_create_params.rb +2 -2
  51. data/lib/openai/models/conversations/conversation_item.rb +5 -1
  52. data/lib/openai/models/conversations/conversation_item_list.rb +2 -2
  53. data/lib/openai/models/conversations/item_create_params.rb +2 -2
  54. data/lib/openai/models/error_object.rb +90 -1
  55. data/lib/openai/models/eval_create_response.rb +1 -1
  56. data/lib/openai/models/eval_list_response.rb +1 -1
  57. data/lib/openai/models/eval_retrieve_response.rb +1 -1
  58. data/lib/openai/models/eval_update_response.rb +1 -1
  59. data/lib/openai/models/evals/create_eval_completions_run_data_source.rb +2 -2
  60. data/lib/openai/models/responses/custom_tool.rb +13 -1
  61. data/lib/openai/models/responses/function_tool.rb +8 -1
  62. data/lib/openai/models/responses/input_token_count_params.rb +3 -3
  63. data/lib/openai/models/responses/namespace_tool.rb +10 -1
  64. data/lib/openai/models/responses/response.rb +16 -8
  65. data/lib/openai/models/responses/response_compact_params.rb +9 -6
  66. data/lib/openai/models/responses/response_configuration_update_item.rb +56 -0
  67. data/lib/openai/models/responses/response_configuration_update_item_param.rb +57 -0
  68. data/lib/openai/models/responses/response_create_params.rb +5 -5
  69. data/lib/openai/models/responses/response_custom_tool_call.rb +9 -1
  70. data/lib/openai/models/responses/response_custom_tool_call_item.rb +3 -1
  71. data/lib/openai/models/responses/response_error.rb +96 -1
  72. data/lib/openai/models/responses/response_function_tool_call.rb +9 -1
  73. data/lib/openai/models/responses/response_function_tool_call_item.rb +3 -1
  74. data/lib/openai/models/responses/response_incomplete_event.rb +4 -0
  75. data/lib/openai/models/responses/response_input_item.rb +6 -1
  76. data/lib/openai/models/responses/response_item.rb +5 -1
  77. data/lib/openai/models/responses/response_item_list.rb +2 -2
  78. data/lib/openai/models/responses/response_steer_accepted_event.rb +79 -0
  79. data/lib/openai/models/responses/response_steer_error_code.rb +59 -0
  80. data/lib/openai/models/responses/response_steer_event.rb +73 -0
  81. data/lib/openai/models/responses/response_steer_failed_event.rb +149 -0
  82. data/lib/openai/models/responses/response_steer_input.rb +304 -0
  83. data/lib/openai/models/responses/response_steer_input_content.rb +26 -0
  84. data/lib/openai/models/responses/response_steer_pending_event.rb +111 -0
  85. data/lib/openai/models/responses/response_steer_pending_reason.rb +24 -0
  86. data/lib/openai/models/responses/response_steer_required_input.rb +213 -0
  87. data/lib/openai/models/responses/response_stream_event.rb +4 -0
  88. data/lib/openai/models/responses/responses_client_event.rb +872 -769
  89. data/lib/openai/models/responses/responses_server_event.rb +162 -2
  90. data/lib/openai/models/safety/alert_retrieve_params.rb +24 -0
  91. data/lib/openai/models/safety/safety_alert.rb +96 -0
  92. data/lib/openai/models/video_create_error.rb +93 -1
  93. data/lib/openai/models/webhooks/safety_alert_created_webhook_event.rb +63 -0
  94. data/lib/openai/models/webhooks/safety_org_alert_created_webhook_event.rb +63 -0
  95. data/lib/openai/models/webhooks/unwrap_webhook_event.rb +7 -1
  96. data/lib/openai/models.rb +2 -0
  97. data/lib/openai/net_http_client.rb +1 -1
  98. data/lib/openai/providers/bedrock.rb +20 -12
  99. data/lib/openai/resources/beta/responses/input_items.rb +1 -1
  100. data/lib/openai/resources/beta/responses/input_tokens.rb +1 -1
  101. data/lib/openai/resources/beta/responses.rb +6 -6
  102. data/lib/openai/resources/chat/completions.rb +2 -2
  103. data/lib/openai/resources/conversations/items.rb +3 -3
  104. data/lib/openai/resources/conversations.rb +1 -1
  105. data/lib/openai/resources/responses/input_items.rb +1 -1
  106. data/lib/openai/resources/responses/input_tokens.rb +1 -1
  107. data/lib/openai/resources/responses.rb +6 -6
  108. data/lib/openai/resources/safety/alerts.rb +37 -0
  109. data/lib/openai/resources/safety.rb +18 -0
  110. data/lib/openai/resources/webhooks.rb +1 -1
  111. data/lib/openai/version.rb +1 -1
  112. data/lib/openai.rb +28 -0
  113. data/rbi/openai/client.rbi +3 -0
  114. data/rbi/openai/models/admin/organization/usage_costs_params.rbi +2 -2
  115. data/rbi/openai/models/batch.rbi +2 -2
  116. data/rbi/openai/models/beta/beta_custom_tool.rbi +15 -0
  117. data/rbi/openai/models/beta/beta_function_tool.rbi +11 -0
  118. data/rbi/openai/models/beta/beta_namespace_tool.rbi +15 -0
  119. data/rbi/openai/models/beta/beta_response.rbi +14 -6
  120. data/rbi/openai/models/beta/beta_response_configuration_update_item.rbi +200 -0
  121. data/rbi/openai/models/beta/beta_response_configuration_update_item_param.rbi +207 -0
  122. data/rbi/openai/models/beta/beta_response_custom_tool_call.rbi +13 -0
  123. data/rbi/openai/models/beta/beta_response_custom_tool_call_item.rbi +6 -0
  124. data/rbi/openai/models/beta/beta_response_error.rbi +161 -3
  125. data/rbi/openai/models/beta/beta_response_function_tool_call.rbi +13 -0
  126. data/rbi/openai/models/beta/beta_response_function_tool_call_item.rbi +6 -0
  127. data/rbi/openai/models/beta/beta_response_incomplete_event.rbi +4 -0
  128. data/rbi/openai/models/beta/beta_response_inject_event.rbi +3 -0
  129. data/rbi/openai/models/beta/beta_response_inject_failed_event.rbi +3 -0
  130. data/rbi/openai/models/beta/beta_response_input_item.rbi +1 -0
  131. data/rbi/openai/models/beta/beta_response_item.rbi +1 -0
  132. data/rbi/openai/models/beta/beta_response_steer_accepted_event.rbi +148 -0
  133. data/rbi/openai/models/beta/beta_response_steer_error_code.rbi +65 -0
  134. data/rbi/openai/models/beta/beta_response_steer_event.rbi +118 -0
  135. data/rbi/openai/models/beta/beta_response_steer_failed_event.rbi +267 -0
  136. data/rbi/openai/models/beta/beta_response_steer_input.rbi +602 -0
  137. data/rbi/openai/models/beta/beta_response_steer_input_content.rbi +31 -0
  138. data/rbi/openai/models/beta/beta_response_steer_pending_event.rbi +222 -0
  139. data/rbi/openai/models/beta/beta_response_steer_pending_reason.rbi +35 -0
  140. data/rbi/openai/models/beta/beta_response_steer_required_input.rbi +379 -0
  141. data/rbi/openai/models/beta/beta_responses_client_event.rbi +8 -3
  142. data/rbi/openai/models/beta/beta_responses_server_event.rbi +206 -3
  143. data/rbi/openai/models/beta/response_compact_params.rbi +4 -3
  144. data/rbi/openai/models/beta/response_create_params.rbi +4 -3
  145. data/rbi/openai/models/beta/responses/beta_response_item_list.rbi +1 -0
  146. data/rbi/openai/models/chat/completion_create_params.rbi +3 -3
  147. data/rbi/openai/models/chat_model.rbi +1 -0
  148. data/rbi/openai/models/conversations/conversation_create_params.rbi +3 -0
  149. data/rbi/openai/models/conversations/conversation_item.rbi +1 -0
  150. data/rbi/openai/models/conversations/conversation_item_list.rbi +1 -0
  151. data/rbi/openai/models/conversations/item_create_params.rbi +3 -0
  152. data/rbi/openai/models/error_object.rbi +156 -3
  153. data/rbi/openai/models/eval_create_response.rbi +1 -1
  154. data/rbi/openai/models/eval_list_response.rbi +1 -1
  155. data/rbi/openai/models/eval_retrieve_response.rbi +1 -1
  156. data/rbi/openai/models/eval_update_response.rbi +1 -1
  157. data/rbi/openai/models/evals/create_eval_completions_run_data_source.rbi +2 -2
  158. data/rbi/openai/models/responses/custom_tool.rbi +15 -0
  159. data/rbi/openai/models/responses/function_tool.rbi +11 -0
  160. data/rbi/openai/models/responses/namespace_tool.rbi +15 -0
  161. data/rbi/openai/models/responses/response.rbi +12 -5
  162. data/rbi/openai/models/responses/response_compact_params.rbi +4 -3
  163. data/rbi/openai/models/responses/response_configuration_update_item.rbi +112 -0
  164. data/rbi/openai/models/responses/response_configuration_update_item_param.rbi +117 -0
  165. data/rbi/openai/models/responses/response_create_params.rbi +2 -2
  166. data/rbi/openai/models/responses/response_custom_tool_call.rbi +13 -0
  167. data/rbi/openai/models/responses/response_custom_tool_call_item.rbi +6 -0
  168. data/rbi/openai/models/responses/response_error.rbi +161 -3
  169. data/rbi/openai/models/responses/response_function_tool_call.rbi +13 -0
  170. data/rbi/openai/models/responses/response_function_tool_call_item.rbi +6 -0
  171. data/rbi/openai/models/responses/response_incomplete_event.rbi +4 -0
  172. data/rbi/openai/models/responses/response_input_item.rbi +1 -0
  173. data/rbi/openai/models/responses/response_item.rbi +1 -0
  174. data/rbi/openai/models/responses/response_item_list.rbi +1 -0
  175. data/rbi/openai/models/responses/response_steer_accepted_event.rbi +146 -0
  176. data/rbi/openai/models/responses/response_steer_error_code.rbi +63 -0
  177. data/rbi/openai/models/responses/response_steer_event.rbi +119 -0
  178. data/rbi/openai/models/responses/response_steer_failed_event.rbi +268 -0
  179. data/rbi/openai/models/responses/response_steer_input.rbi +474 -0
  180. data/rbi/openai/models/responses/response_steer_input_content.rbi +29 -0
  181. data/rbi/openai/models/responses/response_steer_pending_event.rbi +220 -0
  182. data/rbi/openai/models/responses/response_steer_pending_reason.rbi +33 -0
  183. data/rbi/openai/models/responses/response_steer_required_input.rbi +377 -0
  184. data/rbi/openai/models/responses/responses_client_event.rbi +1204 -1036
  185. data/rbi/openai/models/responses/responses_server_event.rbi +202 -3
  186. data/rbi/openai/models/safety/alert_retrieve_params.rbi +55 -0
  187. data/rbi/openai/models/safety/safety_alert.rbi +147 -0
  188. data/rbi/openai/models/video_create_error.rbi +149 -3
  189. data/rbi/openai/models/webhooks/safety_alert_created_webhook_event.rbi +130 -0
  190. data/rbi/openai/models/webhooks/safety_org_alert_created_webhook_event.rbi +130 -0
  191. data/rbi/openai/models/webhooks/unwrap_webhook_event.rbi +3 -1
  192. data/rbi/openai/models.rbi +2 -0
  193. data/rbi/openai/resources/admin/organization/usage.rbi +1 -1
  194. data/rbi/openai/resources/beta/responses.rbi +3 -3
  195. data/rbi/openai/resources/chat/completions.rbi +2 -2
  196. data/rbi/openai/resources/conversations/items.rbi +1 -0
  197. data/rbi/openai/resources/conversations.rbi +1 -0
  198. data/rbi/openai/resources/responses.rbi +3 -3
  199. data/rbi/openai/resources/safety/alerts.rbi +30 -0
  200. data/rbi/openai/resources/safety.rbi +18 -0
  201. data/rbi/openai/resources/webhooks.rbi +3 -1
  202. data/sig/openai/client.rbs +2 -0
  203. data/sig/openai/models/beta/beta_custom_tool.rbs +7 -0
  204. data/sig/openai/models/beta/beta_function_tool.rbs +7 -0
  205. data/sig/openai/models/beta/beta_namespace_tool.rbs +7 -0
  206. data/sig/openai/models/beta/beta_response.rbs +6 -2
  207. data/sig/openai/models/beta/beta_response_configuration_update_item.rbs +91 -0
  208. data/sig/openai/models/beta/beta_response_configuration_update_item_param.rbs +87 -0
  209. data/sig/openai/models/beta/beta_response_custom_tool_call.rbs +7 -0
  210. data/sig/openai/models/beta/beta_response_custom_tool_call_item.rbs +3 -0
  211. data/sig/openai/models/beta/beta_response_error.rbs +82 -3
  212. data/sig/openai/models/beta/beta_response_function_tool_call.rbs +7 -0
  213. data/sig/openai/models/beta/beta_response_function_tool_call_item.rbs +3 -0
  214. data/sig/openai/models/beta/beta_response_input_item.rbs +1 -0
  215. data/sig/openai/models/beta/beta_response_item.rbs +1 -0
  216. data/sig/openai/models/beta/beta_response_steer_accepted_event.rbs +53 -0
  217. data/sig/openai/models/beta/beta_response_steer_error_code.rbs +31 -0
  218. data/sig/openai/models/beta/beta_response_steer_event.rbs +34 -0
  219. data/sig/openai/models/beta/beta_response_steer_failed_event.rbs +102 -0
  220. data/sig/openai/models/beta/beta_response_steer_input.rbs +214 -0
  221. data/sig/openai/models/beta/beta_response_steer_input_content.rbs +18 -0
  222. data/sig/openai/models/beta/beta_response_steer_pending_event.rbs +63 -0
  223. data/sig/openai/models/beta/beta_response_steer_pending_reason.rbs +16 -0
  224. data/sig/openai/models/beta/beta_response_steer_required_input.rbs +161 -0
  225. data/sig/openai/models/beta/beta_responses_client_event.rbs +4 -1
  226. data/sig/openai/models/beta/beta_responses_server_event.rbs +80 -3
  227. data/sig/openai/models/beta/response_compact_params.rbs +3 -1
  228. data/sig/openai/models/beta/response_create_params.rbs +3 -1
  229. data/sig/openai/models/chat_model.rbs +3 -1
  230. data/sig/openai/models/conversations/conversation_item.rbs +1 -0
  231. data/sig/openai/models/error_object.rbs +82 -3
  232. data/sig/openai/models/responses/custom_tool.rbs +7 -0
  233. data/sig/openai/models/responses/function_tool.rbs +7 -0
  234. data/sig/openai/models/responses/namespace_tool.rbs +7 -0
  235. data/sig/openai/models/responses/response.rbs +3 -1
  236. data/sig/openai/models/responses/response_compact_params.rbs +3 -1
  237. data/sig/openai/models/responses/response_configuration_update_item.rbs +46 -0
  238. data/sig/openai/models/responses/response_configuration_update_item_param.rbs +46 -0
  239. data/sig/openai/models/responses/response_custom_tool_call.rbs +7 -0
  240. data/sig/openai/models/responses/response_custom_tool_call_item.rbs +3 -0
  241. data/sig/openai/models/responses/response_error.rbs +79 -3
  242. data/sig/openai/models/responses/response_function_tool_call.rbs +7 -0
  243. data/sig/openai/models/responses/response_function_tool_call_item.rbs +3 -0
  244. data/sig/openai/models/responses/response_input_item.rbs +1 -0
  245. data/sig/openai/models/responses/response_item.rbs +1 -0
  246. data/sig/openai/models/responses/response_steer_accepted_event.rbs +51 -0
  247. data/sig/openai/models/responses/response_steer_error_code.rbs +29 -0
  248. data/sig/openai/models/responses/response_steer_event.rbs +32 -0
  249. data/sig/openai/models/responses/response_steer_failed_event.rbs +100 -0
  250. data/sig/openai/models/responses/response_steer_input.rbs +182 -0
  251. data/sig/openai/models/responses/response_steer_input_content.rbs +16 -0
  252. data/sig/openai/models/responses/response_steer_pending_event.rbs +61 -0
  253. data/sig/openai/models/responses/response_steer_pending_reason.rbs +13 -0
  254. data/sig/openai/models/responses/response_steer_required_input.rbs +159 -0
  255. data/sig/openai/models/responses/responses_client_event.rbs +355 -344
  256. data/sig/openai/models/responses/responses_server_event.rbs +80 -3
  257. data/sig/openai/models/safety/alert_retrieve_params.rbs +22 -0
  258. data/sig/openai/models/safety/safety_alert.rbs +81 -0
  259. data/sig/openai/models/video_create_error.rbs +87 -3
  260. data/sig/openai/models/webhooks/safety_alert_created_webhook_event.rbs +52 -0
  261. data/sig/openai/models/webhooks/safety_org_alert_created_webhook_event.rbs +52 -0
  262. data/sig/openai/models/webhooks/unwrap_webhook_event.rbs +2 -0
  263. data/sig/openai/models.rbs +2 -0
  264. data/sig/openai/resources/safety/alerts.rbs +14 -0
  265. data/sig/openai/resources/safety.rbs +9 -0
  266. data/sig/openai/resources/webhooks.rbs +3 -1
  267. metadata +86 -1
@@ -320,7 +320,7 @@ module OpenAI
320
320
  sig { returns(T.nilable(T::Hash[Symbol, String])) }
321
321
  attr_accessor :metadata
322
322
 
323
- # An optional model to filter by (e.g., 'gpt-5.6-sol').
323
+ # An optional model to filter by (e.g., 'gpt-6-astra').
324
324
  sig { returns(T.nilable(String)) }
325
325
  attr_accessor :model
326
326
 
@@ -361,7 +361,7 @@ module OpenAI
361
361
  # a maximum length of 512 characters.
362
362
  metadata: nil,
363
363
 
364
- # An optional model to filter by (e.g., 'gpt-5.6-sol').
364
+ # An optional model to filter by (e.g., 'gpt-6-astra').
365
365
  model: nil,
366
366
 
367
367
  # The type of source. Always `stored_completions`.
@@ -26,6 +26,14 @@ module OpenAI
26
26
  sig { returns(T.nilable(T::Array[OpenAI::Responses::CustomTool::AllowedCaller::OrSymbol])) }
27
27
  attr_accessor :allowed_callers
28
28
 
29
+ # Whether the tool response can be returned asynchronously versus immediately
30
+ # returned on next response creation.
31
+ sig { returns(T.nilable(T::Boolean)) }
32
+ attr_reader :async
33
+
34
+ sig { params(async: T::Boolean).void }
35
+ attr_writer :async
36
+
29
37
  # Whether this tool should be deferred and discovered via tool search.
30
38
  sig { returns(T.nilable(T::Boolean)) }
31
39
  attr_reader :defer_loading
@@ -61,6 +69,8 @@ module OpenAI
61
69
 
62
70
  allowed_callers: T.nilable(T::Array[OpenAI::Responses::CustomTool::AllowedCaller::OrSymbol]),
63
71
 
72
+ async: T::Boolean,
73
+
64
74
  defer_loading: T::Boolean,
65
75
 
66
76
  description: String,
@@ -79,6 +89,10 @@ module OpenAI
79
89
  # The tool invocation context(s).
80
90
  allowed_callers: nil,
81
91
 
92
+ # Whether the tool response can be returned asynchronously versus immediately
93
+ # returned on next response creation.
94
+ async: nil,
95
+
82
96
  # Whether this tool should be deferred and discovered via tool search.
83
97
  defer_loading: nil,
84
98
 
@@ -100,6 +114,7 @@ module OpenAI
100
114
  name: String,
101
115
  type: Symbol,
102
116
  allowed_callers: T.nilable(T::Array[OpenAI::Responses::CustomTool::AllowedCaller::OrSymbol]),
117
+ async: T::Boolean,
103
118
  defer_loading: T::Boolean,
104
119
  description: String,
105
120
  format_: T.any(OpenAI::CustomToolInputFormat::Text, OpenAI::CustomToolInputFormat::Grammar)
@@ -34,6 +34,12 @@ module OpenAI
34
34
  sig { returns(T.nilable(T::Array[OpenAI::Responses::FunctionTool::AllowedCaller::OrSymbol])) }
35
35
  attr_accessor :allowed_callers
36
36
 
37
+ sig { returns(T.nilable(T::Boolean)) }
38
+ attr_reader :async
39
+
40
+ sig { params(async: T::Boolean).void }
41
+ attr_writer :async
42
+
37
43
  # Whether this function is deferred and loaded via tool search.
38
44
  sig { returns(T.nilable(T::Boolean)) }
39
45
  attr_reader :defer_loading
@@ -65,6 +71,8 @@ module OpenAI
65
71
 
66
72
  allowed_callers: T.nilable(T::Array[OpenAI::Responses::FunctionTool::AllowedCaller::OrSymbol]),
67
73
 
74
+ async: T::Boolean,
75
+
68
76
  defer_loading: T::Boolean,
69
77
 
70
78
  description: T.nilable(String),
@@ -89,6 +97,8 @@ module OpenAI
89
97
  # The tool invocation context(s).
90
98
  allowed_callers: nil,
91
99
 
100
+ async: nil,
101
+
92
102
  # Whether this function is deferred and loaded via tool search.
93
103
  defer_loading: nil,
94
104
 
@@ -114,6 +124,7 @@ module OpenAI
114
124
  strict: T.nilable(T::Boolean),
115
125
  type: Symbol,
116
126
  allowed_callers: T.nilable(T::Array[OpenAI::Responses::FunctionTool::AllowedCaller::OrSymbol]),
127
+ async: T::Boolean,
117
128
  defer_loading: T::Boolean,
118
129
  description: T.nilable(String),
119
130
  output_schema: T.nilable(T::Hash[Symbol, T.anything])
@@ -106,6 +106,14 @@ module OpenAI
106
106
  }
107
107
  attr_accessor :allowed_callers
108
108
 
109
+ # Whether the tool response can be returned asynchronously versus immediately
110
+ # returned on next response creation.
111
+ sig { returns(T.nilable(T::Boolean)) }
112
+ attr_reader :async
113
+
114
+ sig { params(async: T::Boolean).void }
115
+ attr_writer :async
116
+
109
117
  # Whether this function should be deferred and discovered via tool search.
110
118
  sig { returns(T.nilable(T::Boolean)) }
111
119
  attr_reader :defer_loading
@@ -139,6 +147,8 @@ module OpenAI
139
147
  T::Array[OpenAI::Responses::NamespaceTool::Tool::Function::AllowedCaller::OrSymbol]
140
148
  ),
141
149
 
150
+ async: T::Boolean,
151
+
142
152
  defer_loading: T::Boolean,
143
153
 
144
154
  description: T.nilable(String),
@@ -160,6 +170,10 @@ module OpenAI
160
170
  # The tool invocation context(s).
161
171
  allowed_callers: nil,
162
172
 
173
+ # Whether the tool response can be returned asynchronously versus immediately
174
+ # returned on next response creation.
175
+ async: nil,
176
+
163
177
  # Whether this function should be deferred and discovered via tool search.
164
178
  defer_loading: nil,
165
179
 
@@ -188,6 +202,7 @@ module OpenAI
188
202
  allowed_callers: T.nilable(
189
203
  T::Array[OpenAI::Responses::NamespaceTool::Tool::Function::AllowedCaller::OrSymbol]
190
204
  ),
205
+ async: T::Boolean,
191
206
  defer_loading: T::Boolean,
192
207
  description: T.nilable(String),
193
208
  output_schema: T.nilable(T::Hash[Symbol, T.anything]),
@@ -53,7 +53,7 @@ module OpenAI
53
53
  sig { returns(T.nilable(T::Hash[Symbol, String])) }
54
54
  attr_accessor :metadata
55
55
 
56
- # Model ID used to generate the response, like `gpt-5.6-sol`. OpenAI offers a wide
56
+ # Model ID used to generate the response, like `gpt-6-astra`. OpenAI offers a wide
57
57
  # range of models with different capabilities, performance characteristics, and
58
58
  # price points. Refer to the
59
59
  # [model guide](https://platform.openai.com/docs/models) to browse and compare
@@ -475,7 +475,7 @@ module OpenAI
475
475
  # a maximum length of 512 characters.
476
476
  metadata:,
477
477
 
478
- # Model ID used to generate the response, like `gpt-5.6-sol`. OpenAI offers a wide
478
+ # Model ID used to generate the response, like `gpt-6-astra`. OpenAI offers a wide
479
479
  # range of models with different capabilities, performance characteristics, and
480
480
  # price points. Refer to the
481
481
  # [model guide](https://platform.openai.com/docs/models) to browse and compare
@@ -729,7 +729,9 @@ module OpenAI
729
729
  )
730
730
  end
731
731
 
732
- # The reason why the response is incomplete.
732
+ # The reason why the response is incomplete. `steered` means the response stopped
733
+ # at a safe output boundary after a WebSocket `response.steer` event. The server
734
+ # can then create a successor response automatically with the queued input.
733
735
  sig { returns(T.nilable(OpenAI::Responses::Response::IncompleteDetails::Reason::TaggedSymbol)) }
734
736
  attr_reader :reason
735
737
 
@@ -746,7 +748,9 @@ module OpenAI
746
748
  end
747
749
  def self.new(
748
750
 
749
- # The reason why the response is incomplete.
751
+ # The reason why the response is incomplete. `steered` means the response stopped
752
+ # at a safe output boundary after a WebSocket `response.steer` event. The server
753
+ # can then create a successor response automatically with the queued input.
750
754
 
751
755
  reason: nil
752
756
  )
@@ -760,7 +764,9 @@ module OpenAI
760
764
  def to_hash
761
765
  end
762
766
 
763
- # The reason why the response is incomplete.
767
+ # The reason why the response is incomplete. `steered` means the response stopped
768
+ # at a safe output boundary after a WebSocket `response.steer` event. The server
769
+ # can then create a successor response automatically with the queued input.
764
770
  module Reason
765
771
  extend OpenAI::Internal::Type::Enum
766
772
 
@@ -776,6 +782,7 @@ module OpenAI
776
782
  :content_filter,
777
783
  OpenAI::Responses::Response::IncompleteDetails::Reason::TaggedSymbol
778
784
  )
785
+ STEERED = T.let(:steered, OpenAI::Responses::Response::IncompleteDetails::Reason::TaggedSymbol)
779
786
 
780
787
  sig { override.returns(T::Array[OpenAI::Responses::Response::IncompleteDetails::Reason::TaggedSymbol]) }
781
788
  def self.values
@@ -17,7 +17,7 @@ module OpenAI
17
17
  )
18
18
  end
19
19
 
20
- # Model ID used to generate the response, like `gpt-5.6-sol`. OpenAI offers a wide
20
+ # Model ID used to generate the response, like `gpt-6-astra`. OpenAI offers a wide
21
21
  # range of models with different capabilities, performance characteristics, and
22
22
  # price points. Refer to the
23
23
  # [model guide](https://platform.openai.com/docs/models) to browse and compare
@@ -112,7 +112,7 @@ module OpenAI
112
112
  end
113
113
  def self.new(
114
114
 
115
- # Model ID used to generate the response, like `gpt-5.6-sol`. OpenAI offers a wide
115
+ # Model ID used to generate the response, like `gpt-6-astra`. OpenAI offers a wide
116
116
  # range of models with different capabilities, performance characteristics, and
117
117
  # price points. Refer to the
118
118
  # [model guide](https://platform.openai.com/docs/models) to browse and compare
@@ -192,7 +192,7 @@ module OpenAI
192
192
  def to_hash
193
193
  end
194
194
 
195
- # Model ID used to generate the response, like `gpt-5.6-sol`. OpenAI offers a wide
195
+ # Model ID used to generate the response, like `gpt-6-astra`. OpenAI offers a wide
196
196
  # range of models with different capabilities, performance characteristics, and
197
197
  # price points. Refer to the
198
198
  # [model guide](https://platform.openai.com/docs/models) to browse and compare
@@ -212,6 +212,7 @@ module OpenAI
212
212
 
213
213
  OrSymbol = T.type_alias { T.any(Symbol, String) }
214
214
 
215
+ GPT_6_ASTRA = T.let(:"gpt-6-astra", OpenAI::Responses::ResponseCompactParams::Model::TaggedSymbol)
215
216
  GPT_5_6_SOL = T.let(:"gpt-5.6-sol", OpenAI::Responses::ResponseCompactParams::Model::TaggedSymbol)
216
217
  GPT_5_6_TERRA = T.let(:"gpt-5.6-terra", OpenAI::Responses::ResponseCompactParams::Model::TaggedSymbol)
217
218
  GPT_5_6_LUNA = T.let(:"gpt-5.6-luna", OpenAI::Responses::ResponseCompactParams::Model::TaggedSymbol)
@@ -0,0 +1,112 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+
6
+ module Responses
7
+
8
+ class ResponseConfigurationUpdateItem < OpenAI::Internal::Type::BaseModel
9
+
10
+ OrHash = T.type_alias do
11
+ T.any(
12
+ OpenAI::Responses::ResponseConfigurationUpdateItem,
13
+ OpenAI::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ # The unique ID of the configuration update item.
18
+ sig { returns(String) }
19
+ attr_accessor :id
20
+
21
+ # The item type. Always `configuration_update`.
22
+ sig { returns(Symbol) }
23
+ attr_accessor :type
24
+
25
+ # The reasoning configuration applied by this update.
26
+ sig { returns(T.nilable(OpenAI::Responses::ResponseConfigurationUpdateItem::Reasoning)) }
27
+ attr_reader :reasoning
28
+
29
+ sig { params(reasoning: OpenAI::Responses::ResponseConfigurationUpdateItem::Reasoning::OrHash).void }
30
+ attr_writer :reasoning
31
+
32
+ # A configuration update that applies to subsequent responses until it is replaced
33
+ # by another configuration update.
34
+ sig do
35
+ params(
36
+
37
+ id: String,
38
+
39
+ reasoning: OpenAI::Responses::ResponseConfigurationUpdateItem::Reasoning::OrHash,
40
+
41
+ type: Symbol
42
+ )
43
+ .returns(T.attached_class)
44
+ end
45
+ def self.new(
46
+
47
+ # The unique ID of the configuration update item.
48
+ id:,
49
+
50
+ # The reasoning configuration applied by this update.
51
+ reasoning: nil,
52
+
53
+ # The item type. Always `configuration_update`.
54
+
55
+ type: :configuration_update
56
+ )
57
+ end
58
+
59
+ sig do
60
+ override.returns(
61
+ {id: String, type: Symbol, reasoning: OpenAI::Responses::ResponseConfigurationUpdateItem::Reasoning}
62
+ )
63
+ end
64
+ def to_hash
65
+ end
66
+
67
+ class Reasoning < OpenAI::Internal::Type::BaseModel
68
+ OrHash = T.type_alias do
69
+ T.any(
70
+ OpenAI::Responses::ResponseConfigurationUpdateItem::Reasoning,
71
+ OpenAI::Internal::AnyHash
72
+ )
73
+ end
74
+
75
+ # The reasoning effort used for subsequent responses until another configuration
76
+ # update replaces it.
77
+ sig { returns(T.nilable(OpenAI::ReasoningEffort::OrSymbol)) }
78
+ attr_accessor :effort
79
+
80
+ # The reasoning configuration applied by this update.
81
+ sig do
82
+ params(
83
+
84
+ effort: T.nilable(OpenAI::ReasoningEffort::OrSymbol)
85
+ )
86
+ .returns(T.attached_class)
87
+ end
88
+ def self.new(
89
+
90
+ # The reasoning effort used for subsequent responses until another configuration
91
+ # update replaces it.
92
+
93
+ effort: nil
94
+ )
95
+ end
96
+
97
+ sig do
98
+ override.returns(
99
+ {effort: T.nilable(OpenAI::ReasoningEffort::OrSymbol)}
100
+ )
101
+ end
102
+ def to_hash
103
+ end
104
+
105
+ end
106
+
107
+ end
108
+
109
+ end
110
+
111
+ end
112
+ end
@@ -0,0 +1,117 @@
1
+ # typed: strong
2
+
3
+ module OpenAI
4
+ module Models
5
+
6
+ module Responses
7
+
8
+ class ResponseConfigurationUpdateItemParam < OpenAI::Internal::Type::BaseModel
9
+
10
+ OrHash = T.type_alias do
11
+ T.any(
12
+ OpenAI::Responses::ResponseConfigurationUpdateItemParam,
13
+ OpenAI::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ # The item type. Always `configuration_update`.
18
+ sig { returns(Symbol) }
19
+ attr_accessor :type
20
+
21
+ # The unique ID of the configuration update item.
22
+ sig { returns(T.nilable(String)) }
23
+ attr_accessor :id
24
+
25
+ # Updates to reasoning configuration. Only effort is supported.
26
+ sig { returns(T.nilable(OpenAI::Responses::ResponseConfigurationUpdateItemParam::Reasoning)) }
27
+ attr_reader :reasoning
28
+
29
+ sig { params(reasoning: OpenAI::Responses::ResponseConfigurationUpdateItemParam::Reasoning::OrHash).void }
30
+ attr_writer :reasoning
31
+
32
+ # An update to the conversation's response configuration. The configuration
33
+ # remains in effect for subsequent responses until it is replaced by another
34
+ # configuration update.
35
+ sig do
36
+ params(
37
+
38
+ id: T.nilable(String),
39
+
40
+ reasoning: OpenAI::Responses::ResponseConfigurationUpdateItemParam::Reasoning::OrHash,
41
+
42
+ type: Symbol
43
+ )
44
+ .returns(T.attached_class)
45
+ end
46
+ def self.new(
47
+
48
+ # The unique ID of the configuration update item.
49
+ id: nil,
50
+
51
+ # Updates to reasoning configuration. Only effort is supported.
52
+ reasoning: nil,
53
+
54
+ # The item type. Always `configuration_update`.
55
+
56
+ type: :configuration_update
57
+ )
58
+ end
59
+
60
+ sig do
61
+ override.returns(
62
+ {
63
+ type: Symbol,
64
+ id: T.nilable(String),
65
+ reasoning: OpenAI::Responses::ResponseConfigurationUpdateItemParam::Reasoning
66
+ }
67
+ )
68
+ end
69
+ def to_hash
70
+ end
71
+
72
+ class Reasoning < OpenAI::Internal::Type::BaseModel
73
+ OrHash = T.type_alias do
74
+ T.any(
75
+ OpenAI::Responses::ResponseConfigurationUpdateItemParam::Reasoning,
76
+ OpenAI::Internal::AnyHash
77
+ )
78
+ end
79
+
80
+ # The reasoning effort to use for subsequent responses until another configuration
81
+ # update replaces it.
82
+ sig { returns(T.nilable(OpenAI::ReasoningEffort::OrSymbol)) }
83
+ attr_accessor :effort
84
+
85
+ # Updates to reasoning configuration. Only effort is supported.
86
+ sig do
87
+ params(
88
+
89
+ effort: T.nilable(OpenAI::ReasoningEffort::OrSymbol)
90
+ )
91
+ .returns(T.attached_class)
92
+ end
93
+ def self.new(
94
+
95
+ # The reasoning effort to use for subsequent responses until another configuration
96
+ # update replaces it.
97
+
98
+ effort: nil
99
+ )
100
+ end
101
+
102
+ sig do
103
+ override.returns(
104
+ {effort: T.nilable(OpenAI::ReasoningEffort::OrSymbol)}
105
+ )
106
+ end
107
+ def to_hash
108
+ end
109
+
110
+ end
111
+
112
+ end
113
+
114
+ end
115
+
116
+ end
117
+ end
@@ -99,7 +99,7 @@ module OpenAI
99
99
  sig { returns(T.nilable(T::Hash[Symbol, String])) }
100
100
  attr_accessor :metadata
101
101
 
102
- # Model ID used to generate the response, like `gpt-5.6-sol`. OpenAI offers a wide
102
+ # Model ID used to generate the response, like `gpt-6-astra`. OpenAI offers a wide
103
103
  # range of models with different capabilities, performance characteristics, and
104
104
  # price points. Refer to the
105
105
  # [model guide](https://platform.openai.com/docs/models) to browse and compare
@@ -585,7 +585,7 @@ module OpenAI
585
585
  # a maximum length of 512 characters.
586
586
  metadata: nil,
587
587
 
588
- # Model ID used to generate the response, like `gpt-5.6-sol`. OpenAI offers a wide
588
+ # Model ID used to generate the response, like `gpt-6-astra`. OpenAI offers a wide
589
589
  # range of models with different capabilities, performance characteristics, and
590
590
  # price points. Refer to the
591
591
  # [model guide](https://platform.openai.com/docs/models) to browse and compare
@@ -37,6 +37,13 @@ module OpenAI
37
37
  sig { params(id: String).void }
38
38
  attr_writer :id
39
39
 
40
+ # Whether the custom tool call runs asynchronously.
41
+ sig { returns(T.nilable(T::Boolean)) }
42
+ attr_reader :async
43
+
44
+ sig { params(async: T::Boolean).void }
45
+ attr_writer :async
46
+
40
47
  # The execution context that produced this tool call.
41
48
  sig {
42
49
  returns(
@@ -69,6 +76,8 @@ module OpenAI
69
76
 
70
77
  id: String,
71
78
 
79
+ async: T::Boolean,
80
+
72
81
  caller_: T.nilable(
73
82
  T.any(
74
83
  OpenAI::Responses::ResponseCustomToolCall::Caller::Direct::OrHash,
@@ -96,6 +105,9 @@ module OpenAI
96
105
  # The unique ID of the custom tool call in the OpenAI platform.
97
106
  id: nil,
98
107
 
108
+ # Whether the custom tool call runs asynchronously.
109
+ async: nil,
110
+
99
111
  # The execution context that produced this tool call.
100
112
  caller_: nil,
101
113
 
@@ -116,6 +128,7 @@ module OpenAI
116
128
  name: String,
117
129
  type: Symbol,
118
130
  id: String,
131
+ async: T::Boolean,
119
132
  caller_: T.nilable(
120
133
  T.any(
121
134
  OpenAI::Responses::ResponseCustomToolCall::Caller::Direct,
@@ -44,6 +44,8 @@ module OpenAI
44
44
 
45
45
  status: OpenAI::Responses::ResponseCustomToolCallItem::Status::OrSymbol,
46
46
 
47
+ async: T::Boolean,
48
+
47
49
  caller_: T.nilable(
48
50
  T.any(
49
51
  OpenAI::Responses::ResponseCustomToolCall::Caller::Direct::OrHash,
@@ -77,6 +79,9 @@ module OpenAI
77
79
  # Populated when items are returned via API.
78
80
  status:,
79
81
 
82
+ # Whether the custom tool call runs asynchronously.
83
+ async: nil,
84
+
80
85
  # The execution context that produced this tool call.
81
86
  caller_: nil,
82
87
 
@@ -101,6 +106,7 @@ module OpenAI
101
106
  id: String,
102
107
  status: OpenAI::Responses::ResponseCustomToolCallItem::Status::TaggedSymbol,
103
108
  type: Symbol,
109
+ async: T::Boolean,
104
110
  caller_: T.nilable(
105
111
  T.any(
106
112
  OpenAI::Responses::ResponseCustomToolCall::Caller::Direct,