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
@@ -16,7 +16,12 @@ module OpenAI
16
16
  # @return [String]
17
17
  required :message, String
18
18
 
19
- # @!method initialize(code:, message:)
19
+ # @!attribute misalignment
20
+ #
21
+ # @return [OpenAI::Models::Responses::ResponseError::Misalignment, nil]
22
+ optional :misalignment, -> { OpenAI::Responses::ResponseError::Misalignment }
23
+
24
+ # @!method initialize(code:, message:, misalignment: nil)
20
25
  # Some parameter documentations has been truncated, see
21
26
  # {OpenAI::Models::Responses::ResponseError} for more details.
22
27
  #
@@ -25,6 +30,8 @@ module OpenAI
25
30
  # @param code [Symbol, OpenAI::Models::Responses::ResponseError::Code] The error code for the response.
26
31
  #
27
32
  # @param message [String] A human-readable description of the error.
33
+ #
34
+ # @param misalignment [OpenAI::Models::Responses::ResponseError::Misalignment]
28
35
 
29
36
  # The error code for the response.
30
37
  #
@@ -37,6 +44,7 @@ module OpenAI
37
44
  INVALID_PROMPT = :invalid_prompt
38
45
  DATA_RESIDENCY_MISMATCH = :data_residency_mismatch
39
46
  BIO_POLICY = :bio_policy
47
+ MISALIGNMENT_POLICY_VIOLATION = :misalignment_policy_violation
40
48
  VECTOR_STORE_TIMEOUT = :vector_store_timeout
41
49
  INVALID_IMAGE = :invalid_image
42
50
  INVALID_IMAGE_FORMAT = :invalid_image_format
@@ -56,6 +64,93 @@ module OpenAI
56
64
  # @!method self.values
57
65
  # @return [Array<Symbol>]
58
66
  end
67
+
68
+ # @see OpenAI::Models::Responses::ResponseError#misalignment
69
+ class Misalignment < OpenAI::Internal::Type::BaseModel
70
+ # @!attribute detailed_explanation
71
+ # The public explanation for this block.
72
+ #
73
+ # @return [String, nil]
74
+ optional :detailed_explanation, String
75
+
76
+ # @!attribute error_type
77
+ # An optional classification; clients must accept additional values.
78
+ #
79
+ # @return [String, Symbol, OpenAI::Models::Responses::ResponseError::Misalignment::ErrorType, nil]
80
+ optional :error_type, union: -> { OpenAI::Responses::ResponseError::Misalignment::ErrorType }
81
+
82
+ # @!attribute steer
83
+ # An optional public continuation instruction.
84
+ #
85
+ # @return [OpenAI::Models::Responses::ResponseError::Misalignment::Steer, nil]
86
+ optional :steer, -> { OpenAI::Responses::ResponseError::Misalignment::Steer }
87
+
88
+ # @!method initialize(detailed_explanation: nil, error_type: nil, steer: nil)
89
+ # @param detailed_explanation [String] The public explanation for this block.
90
+ #
91
+ # @param error_type [String, Symbol, OpenAI::Models::Responses::ResponseError::Misalignment::ErrorType] An optional classification; clients must accept additional values.
92
+ #
93
+ # @param steer [OpenAI::Models::Responses::ResponseError::Misalignment::Steer] An optional public continuation instruction.
94
+
95
+ # An optional classification; clients must accept additional values.
96
+ #
97
+ # @see OpenAI::Models::Responses::ResponseError::Misalignment#error_type
98
+ module ErrorType
99
+ extend OpenAI::Internal::Type::Union
100
+
101
+ variant String
102
+
103
+ variant(
104
+ const: -> {
105
+ OpenAI::Models::Responses::ResponseError::Misalignment::ErrorType::POTENTIALLY_UNINTENDED_DATA_TRANSFER
106
+ }
107
+ )
108
+
109
+ variant(
110
+ const: -> {
111
+ OpenAI::Models::Responses::ResponseError::Misalignment::ErrorType::POTENTIALLY_UNINTENDED_DATA_ACCESS
112
+ }
113
+ )
114
+
115
+ variant(
116
+ const: -> {
117
+ OpenAI::Models::Responses::ResponseError::Misalignment::ErrorType::POTENTIALLY_UNINTENDED_DESTRUCTIVE_ACTIVITY
118
+ }
119
+ )
120
+
121
+ variant const: -> { OpenAI::Models::Responses::ResponseError::Misalignment::ErrorType::OTHER }
122
+
123
+ # @!method self.variants
124
+ # @return [Array(String, Symbol)]
125
+
126
+ define_sorbet_constant!(:Variants) do
127
+ T.type_alias { T.any(String, OpenAI::Responses::ResponseError::Misalignment::ErrorType::TaggedSymbol) }
128
+ end
129
+
130
+ # @!group
131
+
132
+ POTENTIALLY_UNINTENDED_DATA_TRANSFER = :potentially_unintended_data_transfer
133
+ POTENTIALLY_UNINTENDED_DATA_ACCESS = :potentially_unintended_data_access
134
+ POTENTIALLY_UNINTENDED_DESTRUCTIVE_ACTIVITY = :potentially_unintended_destructive_activity
135
+ OTHER = :other
136
+
137
+ # @!endgroup
138
+ end
139
+
140
+ # @see OpenAI::Models::Responses::ResponseError::Misalignment#steer
141
+ class Steer < OpenAI::Internal::Type::BaseModel
142
+ # @!attribute message
143
+ # The public continuation instruction.
144
+ #
145
+ # @return [String]
146
+ required :message, String
147
+
148
+ # @!method initialize(message:)
149
+ # An optional public continuation instruction.
150
+ #
151
+ # @param message [String] The public continuation instruction.
152
+ end
153
+ end
59
154
  end
60
155
  end
61
156
  end
@@ -42,6 +42,12 @@ module OpenAI
42
42
  # @return [String, nil]
43
43
  optional :id, String
44
44
 
45
+ # @!attribute async
46
+ # Whether the function tool call runs asynchronously.
47
+ #
48
+ # @return [Boolean, nil]
49
+ optional :async, OpenAI::Internal::Type::Boolean
50
+
45
51
  # @!attribute caller_
46
52
  # The execution context that produced this tool call.
47
53
  #
@@ -66,7 +72,7 @@ module OpenAI
66
72
  # @return [Symbol, OpenAI::Models::Responses::ResponseFunctionToolCall::Status, nil]
67
73
  optional :status, enum: -> { OpenAI::Responses::ResponseFunctionToolCall::Status }
68
74
 
69
- # @!method initialize(arguments:, call_id:, name:, id: nil, caller_: nil, namespace: nil, status: nil, type: :function_call)
75
+ # @!method initialize(arguments:, call_id:, name:, id: nil, async: nil, caller_: nil, namespace: nil, status: nil, type: :function_call)
70
76
  # Some parameter documentations has been truncated, see
71
77
  # {OpenAI::Models::Responses::ResponseFunctionToolCall} for more details.
72
78
  #
@@ -82,6 +88,8 @@ module OpenAI
82
88
  #
83
89
  # @param id [String] The unique ID of the function tool call.
84
90
  #
91
+ # @param async [Boolean] Whether the function tool call runs asynchronously.
92
+ #
85
93
  # @param caller_ [OpenAI::Models::Responses::ResponseFunctionToolCall::Caller::Direct, OpenAI::Models::Responses::ResponseFunctionToolCall::Caller::Program, nil] The execution context that produced this tool call.
86
94
  #
87
95
  # @param namespace [String] The namespace of the function to run.
@@ -23,7 +23,7 @@ module OpenAI
23
23
  # @return [String, nil]
24
24
  optional :created_by, String
25
25
 
26
- # @!method initialize(arguments:, call_id:, name:, id:, status:, caller_: nil, namespace: nil, created_by: nil, type: :function_call)
26
+ # @!method initialize(arguments:, call_id:, name:, id:, status:, async: nil, caller_: nil, namespace: nil, created_by: nil, type: :function_call)
27
27
  # Some parameter documentations has been truncated, see
28
28
  # {OpenAI::Models::Responses::ResponseFunctionToolCallItem} for more details.
29
29
  #
@@ -41,6 +41,8 @@ module OpenAI
41
41
  #
42
42
  # @param status [Symbol, OpenAI::Models::Responses::ResponseFunctionToolCallItem::Status] The status of the item. One of `in_progress`, `completed`, or
43
43
  #
44
+ # @param async [Boolean] Whether the function tool call runs asynchronously.
45
+ #
44
46
  # @param caller_ [OpenAI::Models::Responses::ResponseFunctionToolCall::Caller::Direct, OpenAI::Models::Responses::ResponseFunctionToolCall::Caller::Program, nil] The execution context that produced this tool call.
45
47
  #
46
48
  # @param namespace [String] The namespace of the function to run.
@@ -28,6 +28,10 @@ module OpenAI
28
28
  #
29
29
  # An event that is emitted when a response finishes as incomplete.
30
30
  #
31
+ # Over WebSocket, steering can finish a response with
32
+ # `response.incomplete_details.reason` set to `steered`, followed automatically by
33
+ # a successor `response.created` that commits the queued steering input.
34
+ #
31
35
  # @param response [OpenAI::Models::Responses::Response] The response that was incomplete.
32
36
  #
33
37
  # @param sequence_number [Integer] The sequence number of this event.
@@ -56,6 +56,11 @@ module OpenAI
56
56
 
57
57
  variant :additional_tools, -> { OpenAI::Responses::ResponseInputItem::AdditionalTools }
58
58
 
59
+ # An update to the conversation's response configuration. The configuration
60
+ # remains in effect for subsequent responses until it is replaced by another
61
+ # configuration update.
62
+ variant :configuration_update, -> { OpenAI::Responses::ResponseConfigurationUpdateItemParam }
63
+
59
64
  # A description of the chain of thought used by a reasoning model while generating
60
65
  # a response. Be sure to include these items in your `input` to the Responses API
61
66
  # for subsequent turns of a conversation if you are manually
@@ -1940,7 +1945,7 @@ module OpenAI
1940
1945
  end
1941
1946
 
1942
1947
  # @!method self.variants
1943
- # @return [Array(OpenAI::Models::Responses::EasyInputMessage, OpenAI::Models::Responses::ResponseInputItem::Message, OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseInputItem::ComputerCallOutput, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Responses::ResponseFunctionToolCall, OpenAI::Models::Responses::ResponseInputItem::FunctionCallOutput, OpenAI::Models::Responses::ResponseInputItem::ToolSearchCall, OpenAI::Models::Responses::ResponseToolSearchOutputItemParam, OpenAI::Models::Responses::ResponseInputItem::AdditionalTools, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseCompactionItemParam, OpenAI::Models::Responses::ResponseInputItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Responses::ResponseInputItem::LocalShellCall, OpenAI::Models::Responses::ResponseInputItem::LocalShellCallOutput, OpenAI::Models::Responses::ResponseInputItem::ShellCall, OpenAI::Models::Responses::ResponseInputItem::ShellCallOutput, OpenAI::Models::Responses::ResponseInputItem::ApplyPatchCall, OpenAI::Models::Responses::ResponseInputItem::ApplyPatchCallOutput, OpenAI::Models::Responses::ResponseInputItem::McpListTools, OpenAI::Models::Responses::ResponseInputItem::McpApprovalRequest, OpenAI::Models::Responses::ResponseInputItem::McpApprovalResponse, OpenAI::Models::Responses::ResponseInputItem::McpCall, OpenAI::Models::Responses::ResponseCustomToolCallOutput, OpenAI::Models::Responses::ResponseCustomToolCall, OpenAI::Models::Responses::ResponseInputItem::CompactionTrigger, OpenAI::Models::Responses::ResponseInputItem::ItemReference, OpenAI::Models::Responses::ResponseInputItem::Program, OpenAI::Models::Responses::ResponseInputItem::ProgramOutput)]
1948
+ # @return [Array(OpenAI::Models::Responses::EasyInputMessage, OpenAI::Models::Responses::ResponseInputItem::Message, OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseInputItem::ComputerCallOutput, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Responses::ResponseFunctionToolCall, OpenAI::Models::Responses::ResponseInputItem::FunctionCallOutput, OpenAI::Models::Responses::ResponseInputItem::ToolSearchCall, OpenAI::Models::Responses::ResponseToolSearchOutputItemParam, OpenAI::Models::Responses::ResponseInputItem::AdditionalTools, OpenAI::Models::Responses::ResponseConfigurationUpdateItemParam, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseCompactionItemParam, OpenAI::Models::Responses::ResponseInputItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Responses::ResponseInputItem::LocalShellCall, OpenAI::Models::Responses::ResponseInputItem::LocalShellCallOutput, OpenAI::Models::Responses::ResponseInputItem::ShellCall, OpenAI::Models::Responses::ResponseInputItem::ShellCallOutput, OpenAI::Models::Responses::ResponseInputItem::ApplyPatchCall, OpenAI::Models::Responses::ResponseInputItem::ApplyPatchCallOutput, OpenAI::Models::Responses::ResponseInputItem::McpListTools, OpenAI::Models::Responses::ResponseInputItem::McpApprovalRequest, OpenAI::Models::Responses::ResponseInputItem::McpApprovalResponse, OpenAI::Models::Responses::ResponseInputItem::McpCall, OpenAI::Models::Responses::ResponseCustomToolCallOutput, OpenAI::Models::Responses::ResponseCustomToolCall, OpenAI::Models::Responses::ResponseInputItem::CompactionTrigger, OpenAI::Models::Responses::ResponseInputItem::ItemReference, OpenAI::Models::Responses::ResponseInputItem::Program, OpenAI::Models::Responses::ResponseInputItem::ProgramOutput)]
1944
1949
  end
1945
1950
  end
1946
1951
  end
@@ -40,6 +40,10 @@ module OpenAI
40
40
 
41
41
  variant :additional_tools, -> { OpenAI::Responses::ResponseItem::AdditionalTools }
42
42
 
43
+ # A configuration update that applies to subsequent responses until it is
44
+ # replaced by another configuration update.
45
+ variant :configuration_update, -> { OpenAI::Responses::ResponseConfigurationUpdateItem }
46
+
43
47
  # A description of the chain of thought used by a reasoning model while generating
44
48
  # a response. Be sure to include these items in your `input` to the Responses API
45
49
  # for subsequent turns of a conversation if you are manually
@@ -768,7 +772,7 @@ module OpenAI
768
772
  end
769
773
 
770
774
  # @!method self.variants
771
- # @return [Array(OpenAI::Models::Responses::ResponseInputMessageItem, OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseComputerToolCallOutputItem, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Responses::ResponseFunctionToolCallItem, OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem, OpenAI::Models::Responses::ResponseToolSearchCall, OpenAI::Models::Responses::ResponseToolSearchOutputItem, OpenAI::Models::Responses::ResponseItem::AdditionalTools, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseItem::Program, OpenAI::Models::Responses::ResponseItem::ProgramOutput, OpenAI::Models::Responses::ResponseCompactionItem, OpenAI::Models::Responses::ResponseItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Responses::ResponseItem::LocalShellCall, OpenAI::Models::Responses::ResponseItem::LocalShellCallOutput, OpenAI::Models::Responses::ResponseFunctionShellToolCall, OpenAI::Models::Responses::ResponseFunctionShellToolCallOutput, OpenAI::Models::Responses::ResponseApplyPatchToolCall, OpenAI::Models::Responses::ResponseApplyPatchToolCallOutput, OpenAI::Models::Responses::ResponseItem::McpListTools, OpenAI::Models::Responses::ResponseItem::McpApprovalRequest, OpenAI::Models::Responses::ResponseItem::McpApprovalResponse, OpenAI::Models::Responses::ResponseItem::McpCall, OpenAI::Models::Responses::ResponseCustomToolCallItem, OpenAI::Models::Responses::ResponseCustomToolCallOutputItem)]
775
+ # @return [Array(OpenAI::Models::Responses::ResponseInputMessageItem, OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseComputerToolCallOutputItem, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Responses::ResponseFunctionToolCallItem, OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem, OpenAI::Models::Responses::ResponseToolSearchCall, OpenAI::Models::Responses::ResponseToolSearchOutputItem, OpenAI::Models::Responses::ResponseItem::AdditionalTools, OpenAI::Models::Responses::ResponseConfigurationUpdateItem, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseItem::Program, OpenAI::Models::Responses::ResponseItem::ProgramOutput, OpenAI::Models::Responses::ResponseCompactionItem, OpenAI::Models::Responses::ResponseItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Responses::ResponseItem::LocalShellCall, OpenAI::Models::Responses::ResponseItem::LocalShellCallOutput, OpenAI::Models::Responses::ResponseFunctionShellToolCall, OpenAI::Models::Responses::ResponseFunctionShellToolCallOutput, OpenAI::Models::Responses::ResponseApplyPatchToolCall, OpenAI::Models::Responses::ResponseApplyPatchToolCallOutput, OpenAI::Models::Responses::ResponseItem::McpListTools, OpenAI::Models::Responses::ResponseItem::McpApprovalRequest, OpenAI::Models::Responses::ResponseItem::McpApprovalResponse, OpenAI::Models::Responses::ResponseItem::McpCall, OpenAI::Models::Responses::ResponseCustomToolCallItem, OpenAI::Models::Responses::ResponseCustomToolCallOutputItem)]
772
776
  end
773
777
  end
774
778
  end
@@ -7,7 +7,7 @@ module OpenAI
7
7
  # @!attribute data
8
8
  # A list of items used to generate this response.
9
9
  #
10
- # @return [Array<OpenAI::Models::Responses::ResponseInputMessageItem, OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseComputerToolCallOutputItem, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Responses::ResponseFunctionToolCallItem, OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem, OpenAI::Models::Responses::ResponseToolSearchCall, OpenAI::Models::Responses::ResponseToolSearchOutputItem, OpenAI::Models::Responses::ResponseItem::AdditionalTools, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseItem::Program, OpenAI::Models::Responses::ResponseItem::ProgramOutput, OpenAI::Models::Responses::ResponseCompactionItem, OpenAI::Models::Responses::ResponseItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Responses::ResponseItem::LocalShellCall, OpenAI::Models::Responses::ResponseItem::LocalShellCallOutput, OpenAI::Models::Responses::ResponseFunctionShellToolCall, OpenAI::Models::Responses::ResponseFunctionShellToolCallOutput, OpenAI::Models::Responses::ResponseApplyPatchToolCall, OpenAI::Models::Responses::ResponseApplyPatchToolCallOutput, OpenAI::Models::Responses::ResponseItem::McpListTools, OpenAI::Models::Responses::ResponseItem::McpApprovalRequest, OpenAI::Models::Responses::ResponseItem::McpApprovalResponse, OpenAI::Models::Responses::ResponseItem::McpCall, OpenAI::Models::Responses::ResponseCustomToolCallItem, OpenAI::Models::Responses::ResponseCustomToolCallOutputItem>]
10
+ # @return [Array<OpenAI::Models::Responses::ResponseInputMessageItem, OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseComputerToolCallOutputItem, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Responses::ResponseFunctionToolCallItem, OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem, OpenAI::Models::Responses::ResponseToolSearchCall, OpenAI::Models::Responses::ResponseToolSearchOutputItem, OpenAI::Models::Responses::ResponseItem::AdditionalTools, OpenAI::Models::Responses::ResponseConfigurationUpdateItem, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseItem::Program, OpenAI::Models::Responses::ResponseItem::ProgramOutput, OpenAI::Models::Responses::ResponseCompactionItem, OpenAI::Models::Responses::ResponseItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Responses::ResponseItem::LocalShellCall, OpenAI::Models::Responses::ResponseItem::LocalShellCallOutput, OpenAI::Models::Responses::ResponseFunctionShellToolCall, OpenAI::Models::Responses::ResponseFunctionShellToolCallOutput, OpenAI::Models::Responses::ResponseApplyPatchToolCall, OpenAI::Models::Responses::ResponseApplyPatchToolCallOutput, OpenAI::Models::Responses::ResponseItem::McpListTools, OpenAI::Models::Responses::ResponseItem::McpApprovalRequest, OpenAI::Models::Responses::ResponseItem::McpApprovalResponse, OpenAI::Models::Responses::ResponseItem::McpCall, OpenAI::Models::Responses::ResponseCustomToolCallItem, OpenAI::Models::Responses::ResponseCustomToolCallOutputItem>]
11
11
  required :data, -> { OpenAI::Internal::Type::ArrayOf[union: OpenAI::Responses::ResponseItem] }
12
12
 
13
13
  # @!attribute first_id
@@ -37,7 +37,7 @@ module OpenAI
37
37
  # @!method initialize(data:, first_id:, has_more:, last_id:, object: :list)
38
38
  # A list of Response items.
39
39
  #
40
- # @param data [Array<OpenAI::Models::Responses::ResponseInputMessageItem, OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseComputerToolCallOutputItem, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Responses::ResponseFunctionToolCallItem, OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem, OpenAI::Models::Responses::ResponseToolSearchCall, OpenAI::Models::Responses::ResponseToolSearchOutputItem, OpenAI::Models::Responses::ResponseItem::AdditionalTools, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseItem::Program, OpenAI::Models::Responses::ResponseItem::ProgramOutput, OpenAI::Models::Responses::ResponseCompactionItem, OpenAI::Models::Responses::ResponseItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Responses::ResponseItem::LocalShellCall, OpenAI::Models::Responses::ResponseItem::LocalShellCallOutput, OpenAI::Models::Responses::ResponseFunctionShellToolCall, OpenAI::Models::Responses::ResponseFunctionShellToolCallOutput, OpenAI::Models::Responses::ResponseApplyPatchToolCall, OpenAI::Models::Responses::ResponseApplyPatchToolCallOutput, OpenAI::Models::Responses::ResponseItem::McpListTools, OpenAI::Models::Responses::ResponseItem::McpApprovalRequest, OpenAI::Models::Responses::ResponseItem::McpApprovalResponse, OpenAI::Models::Responses::ResponseItem::McpCall, OpenAI::Models::Responses::ResponseCustomToolCallItem, OpenAI::Models::Responses::ResponseCustomToolCallOutputItem>] A list of items used to generate this response.
40
+ # @param data [Array<OpenAI::Models::Responses::ResponseInputMessageItem, OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseComputerToolCallOutputItem, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Responses::ResponseFunctionToolCallItem, OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem, OpenAI::Models::Responses::ResponseToolSearchCall, OpenAI::Models::Responses::ResponseToolSearchOutputItem, OpenAI::Models::Responses::ResponseItem::AdditionalTools, OpenAI::Models::Responses::ResponseConfigurationUpdateItem, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseItem::Program, OpenAI::Models::Responses::ResponseItem::ProgramOutput, OpenAI::Models::Responses::ResponseCompactionItem, OpenAI::Models::Responses::ResponseItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Responses::ResponseItem::LocalShellCall, OpenAI::Models::Responses::ResponseItem::LocalShellCallOutput, OpenAI::Models::Responses::ResponseFunctionShellToolCall, OpenAI::Models::Responses::ResponseFunctionShellToolCallOutput, OpenAI::Models::Responses::ResponseApplyPatchToolCall, OpenAI::Models::Responses::ResponseApplyPatchToolCallOutput, OpenAI::Models::Responses::ResponseItem::McpListTools, OpenAI::Models::Responses::ResponseItem::McpApprovalRequest, OpenAI::Models::Responses::ResponseItem::McpApprovalResponse, OpenAI::Models::Responses::ResponseItem::McpCall, OpenAI::Models::Responses::ResponseCustomToolCallItem, OpenAI::Models::Responses::ResponseCustomToolCallOutputItem>] A list of items used to generate this response.
41
41
  #
42
42
  # @param first_id [String] The ID of the first item in the list.
43
43
  #
@@ -0,0 +1,79 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Responses
6
+ class ResponseSteerAcceptedEvent < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute sequence_number
8
+ # The sequence number for this event.
9
+ #
10
+ # @return [Integer]
11
+ required :sequence_number, Integer
12
+
13
+ # @!attribute steer
14
+ # The accepted steering submission.
15
+ #
16
+ # @return [OpenAI::Models::Responses::ResponseSteerAcceptedEvent::Steer]
17
+ required :steer, -> { OpenAI::Responses::ResponseSteerAcceptedEvent::Steer }
18
+
19
+ # @!attribute type
20
+ # The event discriminator. Always `response.steer.accepted`.
21
+ #
22
+ # @return [Symbol, :"response.steer.accepted"]
23
+ required :type, const: :"response.steer.accepted"
24
+
25
+ # @!attribute stream_id
26
+ # The WebSocket lane that emitted this event. This field is present when the
27
+ # target response's `response.create` event supplied a `stream_id`.
28
+ #
29
+ # @return [String, nil]
30
+ optional :stream_id, String
31
+
32
+ # @!method initialize(sequence_number:, steer:, stream_id: nil, type: :"response.steer.accepted")
33
+ # Some parameter documentations has been truncated, see
34
+ # {OpenAI::Models::Responses::ResponseSteerAcceptedEvent} for more details.
35
+ #
36
+ # Emitted when steering input has been validated and queued. Acceptance means the
37
+ # server owns the input, not that it has been applied. The successor's
38
+ # `response.created` event is the commit point. If accepted input cannot be
39
+ # committed, `response.steer.failed` returns it with the same steering ID.
40
+ #
41
+ # When the response stops for client-owned tool output or approval, the input
42
+ # remains queued and `response.steer.pending` is emitted after
43
+ # `response.completed`. Fill the pending event's `required_input` stubs with saved
44
+ # results and send one matching explicit `response.create` per parent. Do not
45
+ # resend accepted input while it is still queued.
46
+ #
47
+ # @param sequence_number [Integer] The sequence number for this event.
48
+ #
49
+ # @param steer [OpenAI::Models::Responses::ResponseSteerAcceptedEvent::Steer] The accepted steering submission.
50
+ #
51
+ # @param stream_id [String] The WebSocket lane that emitted this event. This field is present when
52
+ #
53
+ # @param type [Symbol, :"response.steer.accepted"] The event discriminator. Always `response.steer.accepted`.
54
+
55
+ # @see OpenAI::Models::Responses::ResponseSteerAcceptedEvent#steer
56
+ class Steer < OpenAI::Internal::Type::BaseModel
57
+ # @!attribute id
58
+ # The ID assigned to the steering submission.
59
+ #
60
+ # @return [String]
61
+ required :id, String
62
+
63
+ # @!attribute previous_response_id
64
+ # The ID of the response being steered.
65
+ #
66
+ # @return [String]
67
+ required :previous_response_id, String
68
+
69
+ # @!method initialize(id:, previous_response_id:)
70
+ # The accepted steering submission.
71
+ #
72
+ # @param id [String] The ID assigned to the steering submission.
73
+ #
74
+ # @param previous_response_id [String] The ID of the response being steered.
75
+ end
76
+ end
77
+ end
78
+ end
79
+ end
@@ -0,0 +1,59 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Responses
6
+ # A machine-readable steering error code. Clients should handle unknown values
7
+ # because additional codes may be introduced. Known values include:
8
+ #
9
+ # - `response_not_found`: The target response is not available on this connection.
10
+ # - `invalid_input`: The event or input failed validation.
11
+ # - `steering_not_supported`: The model or response execution mode does not
12
+ # support steering.
13
+ # - `too_many_pending_steers`: Too much steering input is pending for the
14
+ # response.
15
+ # - `response_already_completed`: The response completed and is no longer
16
+ # accepting steering input.
17
+ # - `response_not_active`: The response is no longer accepting steering input.
18
+ # - `successor_creation_failed`: The successor response could not be created.
19
+ module ResponseSteerErrorCode
20
+ extend OpenAI::Internal::Type::Union
21
+
22
+ variant const: -> { OpenAI::Models::Responses::ResponseSteerErrorCode::RESPONSE_NOT_FOUND }
23
+
24
+ variant const: -> { OpenAI::Models::Responses::ResponseSteerErrorCode::INVALID_INPUT }
25
+
26
+ variant const: -> { OpenAI::Models::Responses::ResponseSteerErrorCode::STEERING_NOT_SUPPORTED }
27
+
28
+ variant const: -> { OpenAI::Models::Responses::ResponseSteerErrorCode::TOO_MANY_PENDING_STEERS }
29
+
30
+ variant const: -> { OpenAI::Models::Responses::ResponseSteerErrorCode::RESPONSE_ALREADY_COMPLETED }
31
+
32
+ variant const: -> { OpenAI::Models::Responses::ResponseSteerErrorCode::RESPONSE_NOT_ACTIVE }
33
+
34
+ variant const: -> { OpenAI::Models::Responses::ResponseSteerErrorCode::SUCCESSOR_CREATION_FAILED }
35
+
36
+ variant String
37
+
38
+ # @!method self.variants
39
+ # @return [Array(Symbol, String)]
40
+
41
+ define_sorbet_constant!(:Variants) do
42
+ T.type_alias { T.any(OpenAI::Responses::ResponseSteerErrorCode::TaggedSymbol, String) }
43
+ end
44
+
45
+ # @!group
46
+
47
+ RESPONSE_NOT_FOUND = :response_not_found
48
+ INVALID_INPUT = :invalid_input
49
+ STEERING_NOT_SUPPORTED = :steering_not_supported
50
+ TOO_MANY_PENDING_STEERS = :too_many_pending_steers
51
+ RESPONSE_ALREADY_COMPLETED = :response_already_completed
52
+ RESPONSE_NOT_ACTIVE = :response_not_active
53
+ SUCCESSOR_CREATION_FAILED = :successor_creation_failed
54
+
55
+ # @!endgroup
56
+ end
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,73 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Responses
6
+ class ResponseSteerEvent < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute input
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
+ #
18
+ # @return [String, Array<Hash{Symbol=>Object}>]
19
+ required :input, union: -> { OpenAI::Responses::ResponseSteerInput }
20
+
21
+ # @!attribute previous_response_id
22
+ # The ID of the response to steer on this WebSocket connection.
23
+ #
24
+ # @return [String]
25
+ required :previous_response_id, String
26
+
27
+ # @!attribute type
28
+ # The event discriminator. Always `response.steer`.
29
+ #
30
+ # @return [Symbol, :"response.steer"]
31
+ required :type, const: :"response.steer"
32
+
33
+ # @!method initialize(input:, previous_response_id:, type: :"response.steer")
34
+ # Some parameter documentations has been truncated, see
35
+ # {OpenAI::Models::Responses::ResponseSteerEvent} for more details.
36
+ #
37
+ # Queues user input to steer a response on this WebSocket connection. Input can
38
+ # contain text, images, and files. Steering is supported only for single-agent
39
+ # responses on models and execution modes that support steering. Responses bound
40
+ # to a conversation or using automatic compaction do not support steering.
41
+ #
42
+ # A `response.steer.accepted` event acknowledges that the server owns the queued
43
+ # input, not that it has been applied. The successor's `response.created` event is
44
+ # the commit point. Input that cannot be committed is returned in
45
+ # `response.steer.failed`.
46
+ #
47
+ # Steering may cause the active response to finish at a safe output boundary with
48
+ # `response.incomplete` and `incomplete_details.reason` set to `steered`, followed
49
+ # automatically by a successor `response.created`. Normal completion can also be
50
+ # followed by an automatic successor. Automatic successors inherit the previous
51
+ # response's settings and continue from it with the queued input.
52
+ #
53
+ # If the response stops for client-owned tool output or approval, accepted
54
+ # steering input remains queued and `response.steer.pending` is emitted after
55
+ # `response.completed`. Fill the `required_input` stubs from that event with saved
56
+ # tool results or approval decisions, and send one explicit `response.create` per
57
+ # parent with the same `previous_response_id` and WebSocket lane. Do not rerun
58
+ # tools or resend accepted steering input. The queued input is prepended in
59
+ # submission order to that request's input, and the explicit request retains its
60
+ # own settings.
61
+ #
62
+ # This event accepts only `type`, `previous_response_id`, and `input`. Do not send
63
+ # `stream_id`; the target response determines the WebSocket lane.
64
+ #
65
+ # @param input [String, Array<Hash{Symbol=>Object}>] Input to queue for a continuation of the response. Uses the same string or
66
+ #
67
+ # @param previous_response_id [String] The ID of the response to steer on this WebSocket connection.
68
+ #
69
+ # @param type [Symbol, :"response.steer"] The event discriminator. Always `response.steer`.
70
+ end
71
+ end
72
+ end
73
+ end
@@ -0,0 +1,149 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenAI
4
+ module Models
5
+ module Responses
6
+ class ResponseSteerFailedEvent < OpenAI::Internal::Type::BaseModel
7
+ # @!attribute error
8
+ # Information about why the input could not be committed.
9
+ #
10
+ # @return [OpenAI::Models::Responses::ResponseSteerFailedEvent::Error]
11
+ required :error, -> { OpenAI::Responses::ResponseSteerFailedEvent::Error }
12
+
13
+ # @!attribute sequence_number
14
+ # The sequence number for this event.
15
+ #
16
+ # @return [Integer]
17
+ required :sequence_number, Integer
18
+
19
+ # @!attribute steer
20
+ # The steering submission that could not be committed.
21
+ #
22
+ # @return [OpenAI::Models::Responses::ResponseSteerFailedEvent::Steer]
23
+ required :steer, -> { OpenAI::Responses::ResponseSteerFailedEvent::Steer }
24
+
25
+ # @!attribute type
26
+ # The event discriminator. Always `response.steer.failed`.
27
+ #
28
+ # @return [Symbol, :"response.steer.failed"]
29
+ required :type, const: :"response.steer.failed"
30
+
31
+ # @!attribute stream_id
32
+ # The WebSocket lane that emitted this event, when the target response is
33
+ # available and its `response.create` event supplied a `stream_id`.
34
+ #
35
+ # @return [String, nil]
36
+ optional :stream_id, String
37
+
38
+ # @!method initialize(error:, sequence_number:, steer:, stream_id: nil, type: :"response.steer.failed")
39
+ # Some parameter documentations has been truncated, see
40
+ # {OpenAI::Models::Responses::ResponseSteerFailedEvent} for more details.
41
+ #
42
+ # Emitted when steering input is rejected or cannot be committed to a successor
43
+ # response. Returns the original, uncommitted input so the client can carry it
44
+ # into `response.create` when appropriate. Invalid input must be corrected before
45
+ # retrying.
46
+ #
47
+ # Failures after acceptance include the same steering ID. Failures before an ID is
48
+ # allocated omit `steer.id`. A lost connection or missing acknowledgement leaves
49
+ # the outcome unknown; it is not proof that the input was rejected.
50
+ #
51
+ # @param error [OpenAI::Models::Responses::ResponseSteerFailedEvent::Error] Information about why the input could not be committed.
52
+ #
53
+ # @param sequence_number [Integer] The sequence number for this event.
54
+ #
55
+ # @param steer [OpenAI::Models::Responses::ResponseSteerFailedEvent::Steer] The steering submission that could not be committed.
56
+ #
57
+ # @param stream_id [String] The WebSocket lane that emitted this event, when the target response is
58
+ #
59
+ # @param type [Symbol, :"response.steer.failed"] The event discriminator. Always `response.steer.failed`.
60
+
61
+ # @see OpenAI::Models::Responses::ResponseSteerFailedEvent#error
62
+ class Error < OpenAI::Internal::Type::BaseModel
63
+ # @!attribute code
64
+ # A machine-readable steering error code. Clients should handle unknown values
65
+ # because additional codes may be introduced. Known values include:
66
+ #
67
+ # - `response_not_found`: The target response is not available on this connection.
68
+ # - `invalid_input`: The event or input failed validation.
69
+ # - `steering_not_supported`: The model or response execution mode does not
70
+ # support steering.
71
+ # - `too_many_pending_steers`: Too much steering input is pending for the
72
+ # response.
73
+ # - `response_already_completed`: The response completed and is no longer
74
+ # accepting steering input.
75
+ # - `response_not_active`: The response is no longer accepting steering input.
76
+ # - `successor_creation_failed`: The successor response could not be created.
77
+ #
78
+ # @return [Symbol, String, OpenAI::Models::Responses::ResponseSteerErrorCode]
79
+ required :code, union: -> { OpenAI::Responses::ResponseSteerErrorCode }
80
+
81
+ # @!attribute message
82
+ # A human-readable description of the error.
83
+ #
84
+ # @return [String]
85
+ required :message, String
86
+
87
+ # @!attribute type
88
+ # The error type. Always `invalid_request_error`.
89
+ #
90
+ # @return [Symbol, :invalid_request_error]
91
+ required :type, const: :invalid_request_error
92
+
93
+ # @!method initialize(code:, message:, type: :invalid_request_error)
94
+ # Some parameter documentations has been truncated, see
95
+ # {OpenAI::Models::Responses::ResponseSteerFailedEvent::Error} for more details.
96
+ #
97
+ # Information about why the input could not be committed.
98
+ #
99
+ # @param code [Symbol, String, OpenAI::Models::Responses::ResponseSteerErrorCode] A machine-readable steering error code. Clients should handle unknown
100
+ #
101
+ # @param message [String] A human-readable description of the error.
102
+ #
103
+ # @param type [Symbol, :invalid_request_error] The error type. Always `invalid_request_error`.
104
+ end
105
+
106
+ # @see OpenAI::Models::Responses::ResponseSteerFailedEvent#steer
107
+ class Steer < OpenAI::Internal::Type::BaseModel
108
+ # @!attribute input
109
+ # Input to queue for a continuation of the response. Uses the same string or
110
+ # input-item shape as `response.create.input`, with a non-empty array when
111
+ # supplying input items.
112
+ #
113
+ # Steering accepts only messages with the `user` role. Each message may contain
114
+ # only `type`, `role`, and `content`, with `content` as a string or an array of
115
+ # `input_text`, `input_image`, and `input_file` parts. The optional `type` must be
116
+ # `message`. Other roles, tool outputs, and item types are not supported for
117
+ # steering.
118
+ #
119
+ # @return [String, Array<Hash{Symbol=>Object}>]
120
+ required :input, union: -> { OpenAI::Responses::ResponseSteerInput }
121
+
122
+ # @!attribute previous_response_id
123
+ # The ID of the response that was targeted for steering.
124
+ #
125
+ # @return [String]
126
+ required :previous_response_id, String
127
+
128
+ # @!attribute id
129
+ # The ID assigned to the steering submission, if one was allocated.
130
+ #
131
+ # @return [String, nil]
132
+ optional :id, String
133
+
134
+ # @!method initialize(input:, previous_response_id:, id: nil)
135
+ # Some parameter documentations has been truncated, see
136
+ # {OpenAI::Models::Responses::ResponseSteerFailedEvent::Steer} for more details.
137
+ #
138
+ # The steering submission that could not be committed.
139
+ #
140
+ # @param input [String, Array<Hash{Symbol=>Object}>] Input to queue for a continuation of the response. Uses the same string or
141
+ #
142
+ # @param previous_response_id [String] The ID of the response that was targeted for steering.
143
+ #
144
+ # @param id [String] The ID assigned to the steering submission, if one was allocated.
145
+ end
146
+ end
147
+ end
148
+ end
149
+ end