openai 0.83.0 → 0.85.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +59 -0
- data/README.md +1 -1
- data/SECURITY.md +10 -0
- data/docs/architecture/security-model.md +267 -0
- data/lib/openai/auth/workload_identity_auth.rb +17 -2
- data/lib/openai/client.rb +24 -6
- data/lib/openai/errors.rb +1 -1
- data/lib/openai/helpers/streaming/chat_completion_stream.rb +18 -10
- data/lib/openai/helpers/streaming/response_events.rb +2 -2
- data/lib/openai/helpers/streaming/response_stream.rb +80 -44
- data/lib/openai/helpers/structured_output/array_of.rb +2 -2
- data/lib/openai/helpers/structured_output/base_model.rb +19 -5
- data/lib/openai/helpers/structured_output/chat_completion_parser.rb +12 -3
- data/lib/openai/helpers/structured_output/json_schema_converter.rb +34 -11
- data/lib/openai/helpers/structured_output/response_parser.rb +1 -1
- data/lib/openai/internal/type/base_model.rb +2 -2
- data/lib/openai/internal/type/converter.rb +1 -1
- data/lib/openai/internal/util.rb +2 -2
- data/lib/openai/internal/vector_store_file_uploader.rb +1 -1
- data/lib/openai/models/admin/organization/usage_costs_params.rb +10 -1
- data/lib/openai/models/batch.rb +4 -4
- data/lib/openai/models/beta/beta_custom_tool.rb +13 -1
- data/lib/openai/models/beta/beta_function_tool.rb +8 -1
- data/lib/openai/models/beta/beta_namespace_tool.rb +10 -1
- data/lib/openai/models/beta/beta_response.rb +26 -18
- data/lib/openai/models/beta/beta_response_configuration_update_item.rb +103 -0
- data/lib/openai/models/beta/beta_response_configuration_update_item_param.rb +104 -0
- data/lib/openai/models/beta/beta_response_custom_tool_call.rb +9 -1
- data/lib/openai/models/beta/beta_response_custom_tool_call_item.rb +3 -1
- data/lib/openai/models/beta/beta_response_error.rb +96 -1
- data/lib/openai/models/beta/beta_response_function_tool_call.rb +9 -1
- data/lib/openai/models/beta/beta_response_function_tool_call_item.rb +3 -1
- data/lib/openai/models/beta/beta_response_incomplete_event.rb +4 -0
- data/lib/openai/models/beta/beta_response_inject_event.rb +2 -2
- data/lib/openai/models/beta/beta_response_inject_failed_event.rb +2 -2
- data/lib/openai/models/beta/beta_response_input_item.rb +6 -1
- data/lib/openai/models/beta/beta_response_item.rb +5 -1
- data/lib/openai/models/beta/beta_response_steer_accepted_event.rb +81 -0
- data/lib/openai/models/beta/beta_response_steer_error_code.rb +61 -0
- data/lib/openai/models/beta/beta_response_steer_event.rb +75 -0
- data/lib/openai/models/beta/beta_response_steer_failed_event.rb +151 -0
- data/lib/openai/models/beta/beta_response_steer_input.rb +360 -0
- data/lib/openai/models/beta/beta_response_steer_input_content.rb +28 -0
- data/lib/openai/models/beta/beta_response_steer_pending_event.rb +113 -0
- data/lib/openai/models/beta/beta_response_steer_pending_reason.rb +26 -0
- data/lib/openai/models/beta/beta_response_steer_required_input.rb +215 -0
- data/lib/openai/models/beta/beta_response_stream_event.rb +4 -0
- data/lib/openai/models/beta/beta_response_usage.rb +1 -12
- data/lib/openai/models/beta/beta_responses_client_event.rb +45 -16
- data/lib/openai/models/beta/beta_responses_server_event.rb +164 -2
- data/lib/openai/models/beta/response_compact_params.rb +13 -10
- data/lib/openai/models/beta/response_create_params.rb +14 -15
- data/lib/openai/models/beta/responses/beta_response_item_list.rb +2 -2
- data/lib/openai/models/beta/responses/input_token_count_params.rb +3 -3
- data/lib/openai/models/chat/completion_create_params.rb +8 -8
- data/lib/openai/models/chat_model.rb +1 -0
- data/lib/openai/models/completion_usage.rb +1 -12
- data/lib/openai/models/conversations/conversation_create_params.rb +2 -2
- data/lib/openai/models/conversations/conversation_item.rb +5 -1
- data/lib/openai/models/conversations/conversation_item_list.rb +2 -2
- data/lib/openai/models/conversations/item_create_params.rb +2 -2
- data/lib/openai/models/error_object.rb +90 -1
- data/lib/openai/models/eval_create_response.rb +1 -1
- data/lib/openai/models/eval_list_response.rb +1 -1
- data/lib/openai/models/eval_retrieve_response.rb +1 -1
- data/lib/openai/models/eval_update_response.rb +1 -1
- data/lib/openai/models/evals/create_eval_completions_run_data_source.rb +2 -2
- data/lib/openai/models/reasoning.rb +0 -2
- data/lib/openai/models/responses/custom_tool.rb +13 -1
- data/lib/openai/models/responses/function_tool.rb +8 -1
- data/lib/openai/models/responses/input_token_count_params.rb +3 -3
- data/lib/openai/models/responses/namespace_tool.rb +10 -1
- data/lib/openai/models/responses/response.rb +20 -13
- data/lib/openai/models/responses/response_compact_params.rb +13 -10
- data/lib/openai/models/responses/response_configuration_update_item.rb +56 -0
- data/lib/openai/models/responses/response_configuration_update_item_param.rb +57 -0
- data/lib/openai/models/responses/response_create_params.rb +8 -10
- data/lib/openai/models/responses/response_custom_tool_call.rb +9 -1
- data/lib/openai/models/responses/response_custom_tool_call_item.rb +3 -1
- data/lib/openai/models/responses/response_error.rb +96 -1
- data/lib/openai/models/responses/response_function_tool_call.rb +9 -1
- data/lib/openai/models/responses/response_function_tool_call_item.rb +3 -1
- data/lib/openai/models/responses/response_incomplete_event.rb +4 -0
- data/lib/openai/models/responses/response_input_item.rb +6 -1
- data/lib/openai/models/responses/response_item.rb +5 -1
- data/lib/openai/models/responses/response_item_list.rb +2 -2
- data/lib/openai/models/responses/response_steer_accepted_event.rb +79 -0
- data/lib/openai/models/responses/response_steer_error_code.rb +59 -0
- data/lib/openai/models/responses/response_steer_event.rb +73 -0
- data/lib/openai/models/responses/response_steer_failed_event.rb +149 -0
- data/lib/openai/models/responses/response_steer_input.rb +304 -0
- data/lib/openai/models/responses/response_steer_input_content.rb +26 -0
- data/lib/openai/models/responses/response_steer_pending_event.rb +111 -0
- data/lib/openai/models/responses/response_steer_pending_reason.rb +24 -0
- data/lib/openai/models/responses/response_steer_required_input.rb +213 -0
- data/lib/openai/models/responses/response_stream_event.rb +4 -0
- data/lib/openai/models/responses/response_usage.rb +1 -12
- data/lib/openai/models/responses/responses_client_event.rb +872 -771
- data/lib/openai/models/responses/responses_server_event.rb +162 -2
- data/lib/openai/models/safety/alert_retrieve_params.rb +24 -0
- data/lib/openai/models/safety/safety_alert.rb +96 -0
- data/lib/openai/models/video_create_error.rb +93 -1
- data/lib/openai/models/webhooks/safety_alert_created_webhook_event.rb +63 -0
- data/lib/openai/models/webhooks/safety_org_alert_created_webhook_event.rb +63 -0
- data/lib/openai/models/webhooks/unwrap_webhook_event.rb +7 -1
- data/lib/openai/models.rb +2 -0
- data/lib/openai/net_http_client.rb +1 -1
- data/lib/openai/providers/bedrock.rb +20 -12
- data/lib/openai/resources/admin/organization/usage.rb +3 -1
- data/lib/openai/resources/beta/responses/input_items.rb +1 -1
- data/lib/openai/resources/beta/responses/input_tokens.rb +1 -1
- data/lib/openai/resources/beta/responses.rb +8 -8
- data/lib/openai/resources/chat/completions.rb +2 -2
- data/lib/openai/resources/conversations/items.rb +3 -3
- data/lib/openai/resources/conversations.rb +1 -1
- data/lib/openai/resources/responses/input_items.rb +1 -1
- data/lib/openai/resources/responses/input_tokens.rb +1 -1
- data/lib/openai/resources/responses.rb +10 -9
- data/lib/openai/resources/safety/alerts.rb +37 -0
- data/lib/openai/resources/safety.rb +18 -0
- data/lib/openai/resources/webhooks.rb +1 -1
- data/lib/openai/version.rb +1 -1
- data/lib/openai.rb +29 -0
- data/rbi/openai/client.rbi +3 -0
- data/rbi/openai/errors.rbi +1 -1
- data/rbi/openai/helpers/streaming/events.rbi +2 -2
- data/rbi/openai/helpers/streaming/response_stream.rbi +3 -3
- data/rbi/openai/models/admin/organization/usage_costs_params.rbi +15 -0
- data/rbi/openai/models/batch.rbi +6 -6
- data/rbi/openai/models/beta/beta_custom_tool.rbi +15 -0
- data/rbi/openai/models/beta/beta_function_tool.rbi +11 -0
- data/rbi/openai/models/beta/beta_namespace_tool.rbi +15 -0
- data/rbi/openai/models/beta/beta_response.rbi +21 -18
- data/rbi/openai/models/beta/beta_response_configuration_update_item.rbi +200 -0
- data/rbi/openai/models/beta/beta_response_configuration_update_item_param.rbi +207 -0
- data/rbi/openai/models/beta/beta_response_custom_tool_call.rbi +13 -0
- data/rbi/openai/models/beta/beta_response_custom_tool_call_item.rbi +6 -0
- data/rbi/openai/models/beta/beta_response_error.rbi +161 -3
- data/rbi/openai/models/beta/beta_response_function_tool_call.rbi +13 -0
- data/rbi/openai/models/beta/beta_response_function_tool_call_item.rbi +6 -0
- data/rbi/openai/models/beta/beta_response_incomplete_event.rbi +4 -0
- data/rbi/openai/models/beta/beta_response_inject_event.rbi +3 -0
- data/rbi/openai/models/beta/beta_response_inject_failed_event.rbi +3 -0
- data/rbi/openai/models/beta/beta_response_input_item.rbi +1 -0
- data/rbi/openai/models/beta/beta_response_item.rbi +1 -0
- data/rbi/openai/models/beta/beta_response_steer_accepted_event.rbi +148 -0
- data/rbi/openai/models/beta/beta_response_steer_error_code.rbi +65 -0
- data/rbi/openai/models/beta/beta_response_steer_event.rbi +118 -0
- data/rbi/openai/models/beta/beta_response_steer_failed_event.rbi +267 -0
- data/rbi/openai/models/beta/beta_response_steer_input.rbi +602 -0
- data/rbi/openai/models/beta/beta_response_steer_input_content.rbi +31 -0
- data/rbi/openai/models/beta/beta_response_steer_pending_event.rbi +222 -0
- data/rbi/openai/models/beta/beta_response_steer_pending_reason.rbi +35 -0
- data/rbi/openai/models/beta/beta_response_steer_required_input.rbi +379 -0
- data/rbi/openai/models/beta/beta_response_usage.rbi +3 -13
- data/rbi/openai/models/beta/beta_responses_client_event.rbi +14 -15
- data/rbi/openai/models/beta/beta_responses_server_event.rbi +206 -3
- data/rbi/openai/models/beta/response_compact_params.rbi +10 -9
- data/rbi/openai/models/beta/response_create_params.rbi +10 -15
- data/rbi/openai/models/beta/responses/beta_response_item_list.rbi +1 -0
- data/rbi/openai/models/chat/completion_create_params.rbi +9 -9
- data/rbi/openai/models/chat_model.rbi +1 -0
- data/rbi/openai/models/completion_usage.rbi +0 -10
- data/rbi/openai/models/conversations/conversation_create_params.rbi +3 -0
- data/rbi/openai/models/conversations/conversation_item.rbi +1 -0
- data/rbi/openai/models/conversations/conversation_item_list.rbi +1 -0
- data/rbi/openai/models/conversations/item_create_params.rbi +3 -0
- data/rbi/openai/models/error_object.rbi +156 -3
- data/rbi/openai/models/eval_create_response.rbi +1 -1
- data/rbi/openai/models/eval_list_response.rbi +1 -1
- data/rbi/openai/models/eval_retrieve_response.rbi +1 -1
- data/rbi/openai/models/eval_update_response.rbi +1 -1
- data/rbi/openai/models/evals/create_eval_completions_run_data_source.rbi +2 -2
- data/rbi/openai/models/reasoning.rbi +0 -2
- data/rbi/openai/models/responses/custom_tool.rbi +15 -0
- data/rbi/openai/models/responses/function_tool.rbi +11 -0
- data/rbi/openai/models/responses/namespace_tool.rbi +15 -0
- data/rbi/openai/models/responses/response.rbi +17 -13
- data/rbi/openai/models/responses/response_compact_params.rbi +10 -9
- data/rbi/openai/models/responses/response_configuration_update_item.rbi +112 -0
- data/rbi/openai/models/responses/response_configuration_update_item_param.rbi +117 -0
- data/rbi/openai/models/responses/response_create_params.rbi +6 -10
- data/rbi/openai/models/responses/response_custom_tool_call.rbi +13 -0
- data/rbi/openai/models/responses/response_custom_tool_call_item.rbi +6 -0
- data/rbi/openai/models/responses/response_error.rbi +161 -3
- data/rbi/openai/models/responses/response_function_tool_call.rbi +13 -0
- data/rbi/openai/models/responses/response_function_tool_call_item.rbi +6 -0
- data/rbi/openai/models/responses/response_incomplete_event.rbi +4 -0
- data/rbi/openai/models/responses/response_input_item.rbi +1 -0
- data/rbi/openai/models/responses/response_item.rbi +1 -0
- data/rbi/openai/models/responses/response_item_list.rbi +1 -0
- data/rbi/openai/models/responses/response_steer_accepted_event.rbi +146 -0
- data/rbi/openai/models/responses/response_steer_error_code.rbi +63 -0
- data/rbi/openai/models/responses/response_steer_event.rbi +119 -0
- data/rbi/openai/models/responses/response_steer_failed_event.rbi +268 -0
- data/rbi/openai/models/responses/response_steer_input.rbi +474 -0
- data/rbi/openai/models/responses/response_steer_input_content.rbi +29 -0
- data/rbi/openai/models/responses/response_steer_pending_event.rbi +220 -0
- data/rbi/openai/models/responses/response_steer_pending_reason.rbi +33 -0
- data/rbi/openai/models/responses/response_steer_required_input.rbi +377 -0
- data/rbi/openai/models/responses/response_usage.rbi +3 -13
- data/rbi/openai/models/responses/responses_client_event.rbi +1205 -1041
- data/rbi/openai/models/responses/responses_server_event.rbi +202 -3
- data/rbi/openai/models/safety/alert_retrieve_params.rbi +55 -0
- data/rbi/openai/models/safety/safety_alert.rbi +147 -0
- data/rbi/openai/models/video_create_error.rbi +149 -3
- data/rbi/openai/models/webhooks/safety_alert_created_webhook_event.rbi +130 -0
- data/rbi/openai/models/webhooks/safety_org_alert_created_webhook_event.rbi +130 -0
- data/rbi/openai/models/webhooks/unwrap_webhook_event.rbi +3 -1
- data/rbi/openai/models.rbi +2 -0
- data/rbi/openai/resources/admin/organization/usage.rbi +4 -0
- data/rbi/openai/resources/beta/responses.rbi +7 -11
- data/rbi/openai/resources/chat/completions.rbi +6 -6
- data/rbi/openai/resources/conversations/items.rbi +1 -0
- data/rbi/openai/resources/conversations.rbi +1 -0
- data/rbi/openai/resources/responses.rbi +9 -13
- data/rbi/openai/resources/safety/alerts.rbi +30 -0
- data/rbi/openai/resources/safety.rbi +18 -0
- data/rbi/openai/resources/webhooks.rbi +3 -1
- data/sig/openai/client.rbs +2 -0
- data/sig/openai/errors.rbs +1 -1
- data/sig/openai/internal/transport/base_client.rbs +4 -19
- data/sig/openai/models/admin/organization/usage_costs_params.rbs +7 -0
- data/sig/openai/models/beta/beta_custom_tool.rbs +7 -0
- data/sig/openai/models/beta/beta_function_tool.rbs +7 -0
- data/sig/openai/models/beta/beta_namespace_tool.rbs +7 -0
- data/sig/openai/models/beta/beta_response.rbs +7 -2
- data/sig/openai/models/beta/beta_response_configuration_update_item.rbs +91 -0
- data/sig/openai/models/beta/beta_response_configuration_update_item_param.rbs +87 -0
- data/sig/openai/models/beta/beta_response_custom_tool_call.rbs +7 -0
- data/sig/openai/models/beta/beta_response_custom_tool_call_item.rbs +3 -0
- data/sig/openai/models/beta/beta_response_error.rbs +82 -3
- data/sig/openai/models/beta/beta_response_function_tool_call.rbs +7 -0
- data/sig/openai/models/beta/beta_response_function_tool_call_item.rbs +3 -0
- data/sig/openai/models/beta/beta_response_input_item.rbs +1 -0
- data/sig/openai/models/beta/beta_response_item.rbs +1 -0
- data/sig/openai/models/beta/beta_response_steer_accepted_event.rbs +53 -0
- data/sig/openai/models/beta/beta_response_steer_error_code.rbs +31 -0
- data/sig/openai/models/beta/beta_response_steer_event.rbs +34 -0
- data/sig/openai/models/beta/beta_response_steer_failed_event.rbs +102 -0
- data/sig/openai/models/beta/beta_response_steer_input.rbs +214 -0
- data/sig/openai/models/beta/beta_response_steer_input_content.rbs +18 -0
- data/sig/openai/models/beta/beta_response_steer_pending_event.rbs +63 -0
- data/sig/openai/models/beta/beta_response_steer_pending_reason.rbs +16 -0
- data/sig/openai/models/beta/beta_response_steer_required_input.rbs +161 -0
- data/sig/openai/models/beta/beta_response_usage.rbs +3 -8
- data/sig/openai/models/beta/beta_responses_client_event.rbs +4 -1
- data/sig/openai/models/beta/beta_responses_server_event.rbs +80 -3
- data/sig/openai/models/beta/response_compact_params.rbs +3 -1
- data/sig/openai/models/beta/response_create_params.rbs +3 -1
- data/sig/openai/models/chat_model.rbs +3 -1
- data/sig/openai/models/completion_usage.rbs +0 -5
- data/sig/openai/models/conversations/conversation_item.rbs +1 -0
- data/sig/openai/models/error_object.rbs +82 -3
- data/sig/openai/models/responses/custom_tool.rbs +7 -0
- data/sig/openai/models/responses/function_tool.rbs +7 -0
- data/sig/openai/models/responses/namespace_tool.rbs +7 -0
- data/sig/openai/models/responses/response.rbs +4 -1
- data/sig/openai/models/responses/response_compact_params.rbs +3 -1
- data/sig/openai/models/responses/response_configuration_update_item.rbs +46 -0
- data/sig/openai/models/responses/response_configuration_update_item_param.rbs +46 -0
- data/sig/openai/models/responses/response_custom_tool_call.rbs +7 -0
- data/sig/openai/models/responses/response_custom_tool_call_item.rbs +3 -0
- data/sig/openai/models/responses/response_error.rbs +79 -3
- data/sig/openai/models/responses/response_function_tool_call.rbs +7 -0
- data/sig/openai/models/responses/response_function_tool_call_item.rbs +3 -0
- data/sig/openai/models/responses/response_input_item.rbs +1 -0
- data/sig/openai/models/responses/response_item.rbs +1 -0
- data/sig/openai/models/responses/response_steer_accepted_event.rbs +51 -0
- data/sig/openai/models/responses/response_steer_error_code.rbs +29 -0
- data/sig/openai/models/responses/response_steer_event.rbs +32 -0
- data/sig/openai/models/responses/response_steer_failed_event.rbs +100 -0
- data/sig/openai/models/responses/response_steer_input.rbs +182 -0
- data/sig/openai/models/responses/response_steer_input_content.rbs +16 -0
- data/sig/openai/models/responses/response_steer_pending_event.rbs +61 -0
- data/sig/openai/models/responses/response_steer_pending_reason.rbs +13 -0
- data/sig/openai/models/responses/response_steer_required_input.rbs +159 -0
- data/sig/openai/models/responses/response_usage.rbs +3 -8
- data/sig/openai/models/responses/responses_client_event.rbs +355 -344
- data/sig/openai/models/responses/responses_server_event.rbs +80 -3
- data/sig/openai/models/safety/alert_retrieve_params.rbs +22 -0
- data/sig/openai/models/safety/safety_alert.rbs +81 -0
- data/sig/openai/models/video_create_error.rbs +87 -3
- data/sig/openai/models/webhooks/safety_alert_created_webhook_event.rbs +52 -0
- data/sig/openai/models/webhooks/safety_org_alert_created_webhook_event.rbs +52 -0
- data/sig/openai/models/webhooks/unwrap_webhook_event.rbs +2 -0
- data/sig/openai/models.rbs +2 -0
- data/sig/openai/resources/admin/organization/usage.rbs +1 -0
- data/sig/openai/resources/safety/alerts.rbs +14 -0
- data/sig/openai/resources/safety.rbs +9 -0
- data/sig/openai/resources/webhooks.rbs +3 -1
- metadata +86 -1
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module OpenAI
|
|
4
|
+
module Models
|
|
5
|
+
|
|
6
|
+
module Responses
|
|
7
|
+
|
|
8
|
+
class ResponseSteerPendingEvent < OpenAI::Internal::Type::BaseModel
|
|
9
|
+
|
|
10
|
+
OrHash = T.type_alias do
|
|
11
|
+
T.any(
|
|
12
|
+
OpenAI::Responses::ResponseSteerPendingEvent,
|
|
13
|
+
OpenAI::Internal::AnyHash
|
|
14
|
+
)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
# An extensible enum describing why accepted steering input is still queued.
|
|
18
|
+
# Clients should handle unknown values because additional reasons may be
|
|
19
|
+
# introduced. Known values include:
|
|
20
|
+
#
|
|
21
|
+
# - `waiting_for_required_input`: The response is waiting for the tool results or
|
|
22
|
+
# approval decisions identified by `required_input`.
|
|
23
|
+
sig { returns(OpenAI::Responses::ResponseSteerPendingReason::Variants) }
|
|
24
|
+
attr_accessor :reason
|
|
25
|
+
|
|
26
|
+
# Input stubs identifying outstanding client-owned tool results or approval
|
|
27
|
+
# decisions. Each stub contains identifying fields only; the client supplies the
|
|
28
|
+
# result before including it in `response.create`.
|
|
29
|
+
sig {
|
|
30
|
+
returns(
|
|
31
|
+
T::Array[
|
|
32
|
+
T.any(
|
|
33
|
+
OpenAI::Responses::ResponseSteerRequiredInput::FunctionCallOutput,
|
|
34
|
+
OpenAI::Responses::ResponseSteerRequiredInput::CustomToolCallOutput,
|
|
35
|
+
OpenAI::Responses::ResponseSteerRequiredInput::ComputerCallOutput,
|
|
36
|
+
OpenAI::Responses::ResponseSteerRequiredInput::ShellCallOutput,
|
|
37
|
+
OpenAI::Responses::ResponseSteerRequiredInput::ApplyPatchCallOutput,
|
|
38
|
+
OpenAI::Responses::ResponseSteerRequiredInput::ToolSearchOutput,
|
|
39
|
+
OpenAI::Responses::ResponseSteerRequiredInput::McpApprovalResponse
|
|
40
|
+
)
|
|
41
|
+
]
|
|
42
|
+
)
|
|
43
|
+
}
|
|
44
|
+
attr_accessor :required_input
|
|
45
|
+
|
|
46
|
+
# The sequence number for this event.
|
|
47
|
+
sig { returns(Integer) }
|
|
48
|
+
attr_accessor :sequence_number
|
|
49
|
+
|
|
50
|
+
# The steering submission that remains queued.
|
|
51
|
+
sig { returns(OpenAI::Responses::ResponseSteerPendingEvent::Steer) }
|
|
52
|
+
attr_reader :steer
|
|
53
|
+
|
|
54
|
+
sig { params(steer: OpenAI::Responses::ResponseSteerPendingEvent::Steer::OrHash).void }
|
|
55
|
+
attr_writer :steer
|
|
56
|
+
|
|
57
|
+
# The event discriminator. Always `response.steer.pending`.
|
|
58
|
+
sig { returns(Symbol) }
|
|
59
|
+
attr_accessor :type
|
|
60
|
+
|
|
61
|
+
# The WebSocket lane that emitted this event. This field is present when the
|
|
62
|
+
# target response's `response.create` event supplied a `stream_id`.
|
|
63
|
+
sig { returns(T.nilable(String)) }
|
|
64
|
+
attr_reader :stream_id
|
|
65
|
+
|
|
66
|
+
sig { params(stream_id: String).void }
|
|
67
|
+
attr_writer :stream_id
|
|
68
|
+
|
|
69
|
+
# Emitted when accepted steering input remains queued after the target response
|
|
70
|
+
# completes. The server still owns the input. Do not resend it. The successor's
|
|
71
|
+
# `response.created` event is the commit point.
|
|
72
|
+
#
|
|
73
|
+
# When `reason` is `waiting_for_required_input`, this event follows
|
|
74
|
+
# `response.completed` while the response waits for the tool results or approval
|
|
75
|
+
# decisions identified by `required_input`. Copy those stubs, fill their result
|
|
76
|
+
# fields using the ordinary `response.create` input schemas, and submit one
|
|
77
|
+
# continuation per parent with the same `previous_response_id` and WebSocket lane.
|
|
78
|
+
# Use saved results without rerunning tools. The queued steering input is
|
|
79
|
+
# prepended in submission order to the continuation's input. That explicit request
|
|
80
|
+
# retains its own settings.
|
|
81
|
+
#
|
|
82
|
+
# This notification is emitted at most once per steering submission. Multiple
|
|
83
|
+
# submissions for the same parent can report the same required inputs; they do not
|
|
84
|
+
# each require a separate continuation.
|
|
85
|
+
sig do
|
|
86
|
+
params(
|
|
87
|
+
|
|
88
|
+
reason: T.any(Symbol, String),
|
|
89
|
+
|
|
90
|
+
required_input: T::Array[
|
|
91
|
+
T.any(
|
|
92
|
+
OpenAI::Responses::ResponseSteerRequiredInput::FunctionCallOutput::OrHash,
|
|
93
|
+
OpenAI::Responses::ResponseSteerRequiredInput::CustomToolCallOutput::OrHash,
|
|
94
|
+
OpenAI::Responses::ResponseSteerRequiredInput::ComputerCallOutput::OrHash,
|
|
95
|
+
OpenAI::Responses::ResponseSteerRequiredInput::ShellCallOutput::OrHash,
|
|
96
|
+
OpenAI::Responses::ResponseSteerRequiredInput::ApplyPatchCallOutput::OrHash,
|
|
97
|
+
OpenAI::Responses::ResponseSteerRequiredInput::ToolSearchOutput::OrHash,
|
|
98
|
+
OpenAI::Responses::ResponseSteerRequiredInput::McpApprovalResponse::OrHash
|
|
99
|
+
)
|
|
100
|
+
],
|
|
101
|
+
|
|
102
|
+
sequence_number: Integer,
|
|
103
|
+
|
|
104
|
+
steer: OpenAI::Responses::ResponseSteerPendingEvent::Steer::OrHash,
|
|
105
|
+
|
|
106
|
+
stream_id: String,
|
|
107
|
+
|
|
108
|
+
type: Symbol
|
|
109
|
+
)
|
|
110
|
+
.returns(T.attached_class)
|
|
111
|
+
end
|
|
112
|
+
def self.new(
|
|
113
|
+
|
|
114
|
+
# An extensible enum describing why accepted steering input is still queued.
|
|
115
|
+
# Clients should handle unknown values because additional reasons may be
|
|
116
|
+
# introduced. Known values include:
|
|
117
|
+
#
|
|
118
|
+
# - `waiting_for_required_input`: The response is waiting for the tool results or
|
|
119
|
+
# approval decisions identified by `required_input`.
|
|
120
|
+
reason:,
|
|
121
|
+
|
|
122
|
+
# Input stubs identifying outstanding client-owned tool results or approval
|
|
123
|
+
# decisions. Each stub contains identifying fields only; the client supplies the
|
|
124
|
+
# result before including it in `response.create`.
|
|
125
|
+
required_input:,
|
|
126
|
+
|
|
127
|
+
# The sequence number for this event.
|
|
128
|
+
sequence_number:,
|
|
129
|
+
|
|
130
|
+
# The steering submission that remains queued.
|
|
131
|
+
steer:,
|
|
132
|
+
|
|
133
|
+
# The WebSocket lane that emitted this event. This field is present when the
|
|
134
|
+
# target response's `response.create` event supplied a `stream_id`.
|
|
135
|
+
stream_id: nil,
|
|
136
|
+
|
|
137
|
+
# The event discriminator. Always `response.steer.pending`.
|
|
138
|
+
|
|
139
|
+
type: :"response.steer.pending"
|
|
140
|
+
)
|
|
141
|
+
end
|
|
142
|
+
|
|
143
|
+
sig do
|
|
144
|
+
override.returns(
|
|
145
|
+
{
|
|
146
|
+
reason: OpenAI::Responses::ResponseSteerPendingReason::Variants,
|
|
147
|
+
required_input: T::Array[
|
|
148
|
+
T.any(
|
|
149
|
+
OpenAI::Responses::ResponseSteerRequiredInput::FunctionCallOutput,
|
|
150
|
+
OpenAI::Responses::ResponseSteerRequiredInput::CustomToolCallOutput,
|
|
151
|
+
OpenAI::Responses::ResponseSteerRequiredInput::ComputerCallOutput,
|
|
152
|
+
OpenAI::Responses::ResponseSteerRequiredInput::ShellCallOutput,
|
|
153
|
+
OpenAI::Responses::ResponseSteerRequiredInput::ApplyPatchCallOutput,
|
|
154
|
+
OpenAI::Responses::ResponseSteerRequiredInput::ToolSearchOutput,
|
|
155
|
+
OpenAI::Responses::ResponseSteerRequiredInput::McpApprovalResponse
|
|
156
|
+
)
|
|
157
|
+
],
|
|
158
|
+
sequence_number: Integer,
|
|
159
|
+
steer: OpenAI::Responses::ResponseSteerPendingEvent::Steer,
|
|
160
|
+
type: Symbol,
|
|
161
|
+
stream_id: String
|
|
162
|
+
}
|
|
163
|
+
)
|
|
164
|
+
end
|
|
165
|
+
def to_hash
|
|
166
|
+
end
|
|
167
|
+
|
|
168
|
+
class Steer < OpenAI::Internal::Type::BaseModel
|
|
169
|
+
OrHash = T.type_alias do
|
|
170
|
+
T.any(
|
|
171
|
+
OpenAI::Responses::ResponseSteerPendingEvent::Steer,
|
|
172
|
+
OpenAI::Internal::AnyHash
|
|
173
|
+
)
|
|
174
|
+
end
|
|
175
|
+
|
|
176
|
+
# The ID assigned to the steering submission.
|
|
177
|
+
sig { returns(String) }
|
|
178
|
+
attr_accessor :id
|
|
179
|
+
|
|
180
|
+
# The ID of the response being steered.
|
|
181
|
+
sig { returns(String) }
|
|
182
|
+
attr_accessor :previous_response_id
|
|
183
|
+
|
|
184
|
+
# The steering submission that remains queued.
|
|
185
|
+
sig do
|
|
186
|
+
params(
|
|
187
|
+
|
|
188
|
+
id: String,
|
|
189
|
+
|
|
190
|
+
previous_response_id: String
|
|
191
|
+
)
|
|
192
|
+
.returns(T.attached_class)
|
|
193
|
+
end
|
|
194
|
+
def self.new(
|
|
195
|
+
|
|
196
|
+
# The ID assigned to the steering submission.
|
|
197
|
+
id:,
|
|
198
|
+
|
|
199
|
+
# The ID of the response being steered.
|
|
200
|
+
|
|
201
|
+
previous_response_id:
|
|
202
|
+
)
|
|
203
|
+
end
|
|
204
|
+
|
|
205
|
+
sig do
|
|
206
|
+
override.returns(
|
|
207
|
+
{id: String, previous_response_id: String}
|
|
208
|
+
)
|
|
209
|
+
end
|
|
210
|
+
def to_hash
|
|
211
|
+
end
|
|
212
|
+
|
|
213
|
+
end
|
|
214
|
+
|
|
215
|
+
end
|
|
216
|
+
|
|
217
|
+
end
|
|
218
|
+
|
|
219
|
+
end
|
|
220
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module OpenAI
|
|
4
|
+
module Models
|
|
5
|
+
|
|
6
|
+
module Responses
|
|
7
|
+
|
|
8
|
+
# An extensible enum describing why accepted steering input is still queued.
|
|
9
|
+
# Clients should handle unknown values because additional reasons may be
|
|
10
|
+
# introduced. Known values include:
|
|
11
|
+
#
|
|
12
|
+
# - `waiting_for_required_input`: The response is waiting for the tool results or
|
|
13
|
+
# approval decisions identified by `required_input`.
|
|
14
|
+
module ResponseSteerPendingReason
|
|
15
|
+
extend OpenAI::Internal::Type::Union
|
|
16
|
+
|
|
17
|
+
Variants = T.type_alias do
|
|
18
|
+
T.any(
|
|
19
|
+
Symbol,
|
|
20
|
+
String
|
|
21
|
+
)
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
sig { override.returns(T::Array[OpenAI::Responses::ResponseSteerPendingReason::Variants]) }
|
|
25
|
+
def self.variants
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -0,0 +1,377 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module OpenAI
|
|
4
|
+
module Models
|
|
5
|
+
|
|
6
|
+
module Responses
|
|
7
|
+
|
|
8
|
+
# An input stub identifying an outstanding client-owned tool result or approval
|
|
9
|
+
# decision. Copy the stub and fill the result fields using the corresponding
|
|
10
|
+
# `response.create` input schema. Use saved results without rerunning the tool.
|
|
11
|
+
# The server does not supply results, approval decisions, or safety
|
|
12
|
+
# acknowledgements in these stubs.
|
|
13
|
+
module ResponseSteerRequiredInput
|
|
14
|
+
extend OpenAI::Internal::Type::Union
|
|
15
|
+
|
|
16
|
+
Variants = T.type_alias do
|
|
17
|
+
T.any(
|
|
18
|
+
OpenAI::Responses::ResponseSteerRequiredInput::FunctionCallOutput,
|
|
19
|
+
OpenAI::Responses::ResponseSteerRequiredInput::CustomToolCallOutput,
|
|
20
|
+
OpenAI::Responses::ResponseSteerRequiredInput::ComputerCallOutput,
|
|
21
|
+
OpenAI::Responses::ResponseSteerRequiredInput::ShellCallOutput,
|
|
22
|
+
OpenAI::Responses::ResponseSteerRequiredInput::ApplyPatchCallOutput,
|
|
23
|
+
OpenAI::Responses::ResponseSteerRequiredInput::ToolSearchOutput,
|
|
24
|
+
OpenAI::Responses::ResponseSteerRequiredInput::McpApprovalResponse
|
|
25
|
+
)
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
class FunctionCallOutput < OpenAI::Internal::Type::BaseModel
|
|
29
|
+
OrHash = T.type_alias do
|
|
30
|
+
T.any(
|
|
31
|
+
OpenAI::Responses::ResponseSteerRequiredInput::FunctionCallOutput,
|
|
32
|
+
OpenAI::Internal::AnyHash
|
|
33
|
+
)
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
sig { returns(String) }
|
|
37
|
+
attr_accessor :call_id
|
|
38
|
+
|
|
39
|
+
sig { returns(String) }
|
|
40
|
+
attr_accessor :name
|
|
41
|
+
|
|
42
|
+
sig { returns(Symbol) }
|
|
43
|
+
attr_accessor :type
|
|
44
|
+
|
|
45
|
+
# Supply `output` using the function tool call output input schema.
|
|
46
|
+
sig do
|
|
47
|
+
params(
|
|
48
|
+
|
|
49
|
+
call_id: String,
|
|
50
|
+
|
|
51
|
+
name: String,
|
|
52
|
+
|
|
53
|
+
type: Symbol
|
|
54
|
+
)
|
|
55
|
+
.returns(T.attached_class)
|
|
56
|
+
end
|
|
57
|
+
def self.new(
|
|
58
|
+
|
|
59
|
+
call_id:,
|
|
60
|
+
|
|
61
|
+
name:,
|
|
62
|
+
|
|
63
|
+
type: :function_call_output
|
|
64
|
+
)
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
sig do
|
|
68
|
+
override.returns(
|
|
69
|
+
{call_id: String, name: String, type: Symbol}
|
|
70
|
+
)
|
|
71
|
+
end
|
|
72
|
+
def to_hash
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
class CustomToolCallOutput < OpenAI::Internal::Type::BaseModel
|
|
78
|
+
OrHash = T.type_alias do
|
|
79
|
+
T.any(
|
|
80
|
+
OpenAI::Responses::ResponseSteerRequiredInput::CustomToolCallOutput,
|
|
81
|
+
OpenAI::Internal::AnyHash
|
|
82
|
+
)
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
sig { returns(String) }
|
|
86
|
+
attr_accessor :call_id
|
|
87
|
+
|
|
88
|
+
sig { returns(Symbol) }
|
|
89
|
+
attr_accessor :type
|
|
90
|
+
|
|
91
|
+
# Supply `output` using the custom tool call output input schema. The original
|
|
92
|
+
# custom tool call supplies the tool's name.
|
|
93
|
+
sig do
|
|
94
|
+
params(
|
|
95
|
+
|
|
96
|
+
call_id: String,
|
|
97
|
+
|
|
98
|
+
type: Symbol
|
|
99
|
+
)
|
|
100
|
+
.returns(T.attached_class)
|
|
101
|
+
end
|
|
102
|
+
def self.new(
|
|
103
|
+
|
|
104
|
+
call_id:,
|
|
105
|
+
|
|
106
|
+
type: :custom_tool_call_output
|
|
107
|
+
)
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
sig do
|
|
111
|
+
override.returns(
|
|
112
|
+
{call_id: String, type: Symbol}
|
|
113
|
+
)
|
|
114
|
+
end
|
|
115
|
+
def to_hash
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
class ComputerCallOutput < OpenAI::Internal::Type::BaseModel
|
|
121
|
+
OrHash = T.type_alias do
|
|
122
|
+
T.any(
|
|
123
|
+
OpenAI::Responses::ResponseSteerRequiredInput::ComputerCallOutput,
|
|
124
|
+
OpenAI::Internal::AnyHash
|
|
125
|
+
)
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
sig { returns(String) }
|
|
129
|
+
attr_accessor :call_id
|
|
130
|
+
|
|
131
|
+
sig { returns(Symbol) }
|
|
132
|
+
attr_accessor :type
|
|
133
|
+
|
|
134
|
+
# Supply `output` using the computer tool call output input schema, including any
|
|
135
|
+
# required `acknowledged_safety_checks`.
|
|
136
|
+
sig do
|
|
137
|
+
params(
|
|
138
|
+
|
|
139
|
+
call_id: String,
|
|
140
|
+
|
|
141
|
+
type: Symbol
|
|
142
|
+
)
|
|
143
|
+
.returns(T.attached_class)
|
|
144
|
+
end
|
|
145
|
+
def self.new(
|
|
146
|
+
|
|
147
|
+
call_id:,
|
|
148
|
+
|
|
149
|
+
type: :computer_call_output
|
|
150
|
+
)
|
|
151
|
+
end
|
|
152
|
+
|
|
153
|
+
sig do
|
|
154
|
+
override.returns(
|
|
155
|
+
{call_id: String, type: Symbol}
|
|
156
|
+
)
|
|
157
|
+
end
|
|
158
|
+
def to_hash
|
|
159
|
+
end
|
|
160
|
+
|
|
161
|
+
end
|
|
162
|
+
|
|
163
|
+
class ShellCallOutput < OpenAI::Internal::Type::BaseModel
|
|
164
|
+
OrHash = T.type_alias do
|
|
165
|
+
T.any(
|
|
166
|
+
OpenAI::Responses::ResponseSteerRequiredInput::ShellCallOutput,
|
|
167
|
+
OpenAI::Internal::AnyHash
|
|
168
|
+
)
|
|
169
|
+
end
|
|
170
|
+
|
|
171
|
+
sig { returns(String) }
|
|
172
|
+
attr_accessor :call_id
|
|
173
|
+
|
|
174
|
+
sig { returns(Symbol) }
|
|
175
|
+
attr_accessor :type
|
|
176
|
+
|
|
177
|
+
# Supply `output` using the shell tool call output input schema. Each output entry
|
|
178
|
+
# includes `stdout`, `stderr`, and `outcome`.
|
|
179
|
+
sig do
|
|
180
|
+
params(
|
|
181
|
+
|
|
182
|
+
call_id: String,
|
|
183
|
+
|
|
184
|
+
type: Symbol
|
|
185
|
+
)
|
|
186
|
+
.returns(T.attached_class)
|
|
187
|
+
end
|
|
188
|
+
def self.new(
|
|
189
|
+
|
|
190
|
+
call_id:,
|
|
191
|
+
|
|
192
|
+
type: :shell_call_output
|
|
193
|
+
)
|
|
194
|
+
end
|
|
195
|
+
|
|
196
|
+
sig do
|
|
197
|
+
override.returns(
|
|
198
|
+
{call_id: String, type: Symbol}
|
|
199
|
+
)
|
|
200
|
+
end
|
|
201
|
+
def to_hash
|
|
202
|
+
end
|
|
203
|
+
|
|
204
|
+
end
|
|
205
|
+
|
|
206
|
+
class ApplyPatchCallOutput < OpenAI::Internal::Type::BaseModel
|
|
207
|
+
OrHash = T.type_alias do
|
|
208
|
+
T.any(
|
|
209
|
+
OpenAI::Responses::ResponseSteerRequiredInput::ApplyPatchCallOutput,
|
|
210
|
+
OpenAI::Internal::AnyHash
|
|
211
|
+
)
|
|
212
|
+
end
|
|
213
|
+
|
|
214
|
+
sig { returns(String) }
|
|
215
|
+
attr_accessor :call_id
|
|
216
|
+
|
|
217
|
+
sig { returns(Symbol) }
|
|
218
|
+
attr_accessor :type
|
|
219
|
+
|
|
220
|
+
# Supply `status` and optional `output` using the apply patch tool call output
|
|
221
|
+
# input schema.
|
|
222
|
+
sig do
|
|
223
|
+
params(
|
|
224
|
+
|
|
225
|
+
call_id: String,
|
|
226
|
+
|
|
227
|
+
type: Symbol
|
|
228
|
+
)
|
|
229
|
+
.returns(T.attached_class)
|
|
230
|
+
end
|
|
231
|
+
def self.new(
|
|
232
|
+
|
|
233
|
+
call_id:,
|
|
234
|
+
|
|
235
|
+
type: :apply_patch_call_output
|
|
236
|
+
)
|
|
237
|
+
end
|
|
238
|
+
|
|
239
|
+
sig do
|
|
240
|
+
override.returns(
|
|
241
|
+
{call_id: String, type: Symbol}
|
|
242
|
+
)
|
|
243
|
+
end
|
|
244
|
+
def to_hash
|
|
245
|
+
end
|
|
246
|
+
|
|
247
|
+
end
|
|
248
|
+
|
|
249
|
+
class ToolSearchOutput < OpenAI::Internal::Type::BaseModel
|
|
250
|
+
OrHash = T.type_alias do
|
|
251
|
+
T.any(
|
|
252
|
+
OpenAI::Responses::ResponseSteerRequiredInput::ToolSearchOutput,
|
|
253
|
+
OpenAI::Internal::AnyHash
|
|
254
|
+
)
|
|
255
|
+
end
|
|
256
|
+
|
|
257
|
+
sig { returns(String) }
|
|
258
|
+
attr_accessor :call_id
|
|
259
|
+
|
|
260
|
+
sig { returns(OpenAI::Responses::ResponseSteerRequiredInput::ToolSearchOutput::Execution::TaggedSymbol) }
|
|
261
|
+
attr_accessor :execution
|
|
262
|
+
|
|
263
|
+
sig { returns(Symbol) }
|
|
264
|
+
attr_accessor :type
|
|
265
|
+
|
|
266
|
+
# Supply `tools` using the tool search output input schema, retaining
|
|
267
|
+
# `execution: "client"`.
|
|
268
|
+
sig do
|
|
269
|
+
params(
|
|
270
|
+
|
|
271
|
+
call_id: String,
|
|
272
|
+
|
|
273
|
+
execution: OpenAI::Responses::ResponseSteerRequiredInput::ToolSearchOutput::Execution::OrSymbol,
|
|
274
|
+
|
|
275
|
+
type: Symbol
|
|
276
|
+
)
|
|
277
|
+
.returns(T.attached_class)
|
|
278
|
+
end
|
|
279
|
+
def self.new(
|
|
280
|
+
|
|
281
|
+
call_id:,
|
|
282
|
+
|
|
283
|
+
execution:,
|
|
284
|
+
|
|
285
|
+
type: :tool_search_output
|
|
286
|
+
)
|
|
287
|
+
end
|
|
288
|
+
|
|
289
|
+
sig do
|
|
290
|
+
override.returns(
|
|
291
|
+
{
|
|
292
|
+
call_id: String,
|
|
293
|
+
execution: OpenAI::Responses::ResponseSteerRequiredInput::ToolSearchOutput::Execution::TaggedSymbol,
|
|
294
|
+
type: Symbol
|
|
295
|
+
}
|
|
296
|
+
)
|
|
297
|
+
end
|
|
298
|
+
def to_hash
|
|
299
|
+
end
|
|
300
|
+
|
|
301
|
+
module Execution
|
|
302
|
+
extend OpenAI::Internal::Type::Enum
|
|
303
|
+
|
|
304
|
+
TaggedSymbol = T.type_alias {
|
|
305
|
+
T.all(Symbol, OpenAI::Responses::ResponseSteerRequiredInput::ToolSearchOutput::Execution)
|
|
306
|
+
}
|
|
307
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
308
|
+
|
|
309
|
+
CLIENT = T.let(
|
|
310
|
+
:client,
|
|
311
|
+
OpenAI::Responses::ResponseSteerRequiredInput::ToolSearchOutput::Execution::TaggedSymbol
|
|
312
|
+
)
|
|
313
|
+
|
|
314
|
+
sig {
|
|
315
|
+
override.returns(
|
|
316
|
+
T::Array[OpenAI::Responses::ResponseSteerRequiredInput::ToolSearchOutput::Execution::TaggedSymbol]
|
|
317
|
+
)
|
|
318
|
+
}
|
|
319
|
+
def self.values
|
|
320
|
+
end
|
|
321
|
+
end
|
|
322
|
+
end
|
|
323
|
+
|
|
324
|
+
class McpApprovalResponse < OpenAI::Internal::Type::BaseModel
|
|
325
|
+
OrHash = T.type_alias do
|
|
326
|
+
T.any(
|
|
327
|
+
OpenAI::Responses::ResponseSteerRequiredInput::McpApprovalResponse,
|
|
328
|
+
OpenAI::Internal::AnyHash
|
|
329
|
+
)
|
|
330
|
+
end
|
|
331
|
+
|
|
332
|
+
sig { returns(String) }
|
|
333
|
+
attr_accessor :approval_request_id
|
|
334
|
+
|
|
335
|
+
sig { returns(Symbol) }
|
|
336
|
+
attr_accessor :type
|
|
337
|
+
|
|
338
|
+
# Supply `approve` using the MCP approval response input schema. An optional
|
|
339
|
+
# `reason` can be supplied when denying the request. The original approval request
|
|
340
|
+
# identifies the tool and server.
|
|
341
|
+
sig do
|
|
342
|
+
params(
|
|
343
|
+
|
|
344
|
+
approval_request_id: String,
|
|
345
|
+
|
|
346
|
+
type: Symbol
|
|
347
|
+
)
|
|
348
|
+
.returns(T.attached_class)
|
|
349
|
+
end
|
|
350
|
+
def self.new(
|
|
351
|
+
|
|
352
|
+
approval_request_id:,
|
|
353
|
+
|
|
354
|
+
type: :mcp_approval_response
|
|
355
|
+
)
|
|
356
|
+
end
|
|
357
|
+
|
|
358
|
+
sig do
|
|
359
|
+
override.returns(
|
|
360
|
+
{approval_request_id: String, type: Symbol}
|
|
361
|
+
)
|
|
362
|
+
end
|
|
363
|
+
def to_hash
|
|
364
|
+
end
|
|
365
|
+
|
|
366
|
+
end
|
|
367
|
+
|
|
368
|
+
sig { override.returns(T::Array[OpenAI::Responses::ResponseSteerRequiredInput::Variants]) }
|
|
369
|
+
def self.variants
|
|
370
|
+
end
|
|
371
|
+
|
|
372
|
+
end
|
|
373
|
+
|
|
374
|
+
end
|
|
375
|
+
|
|
376
|
+
end
|
|
377
|
+
end
|
|
@@ -40,10 +40,6 @@ module OpenAI
|
|
|
40
40
|
sig { returns(Integer) }
|
|
41
41
|
attr_accessor :total_tokens
|
|
42
42
|
|
|
43
|
-
# Compute units for the request. Currently null when available.
|
|
44
|
-
sig { returns(T.nilable(Integer)) }
|
|
45
|
-
attr_accessor :compute_units
|
|
46
|
-
|
|
47
43
|
# Represents token usage details including input tokens, output tokens, a
|
|
48
44
|
# breakdown of output tokens, and the total tokens used.
|
|
49
45
|
sig do
|
|
@@ -57,9 +53,7 @@ module OpenAI
|
|
|
57
53
|
|
|
58
54
|
output_tokens_details: OpenAI::Responses::ResponseUsage::OutputTokensDetails::OrHash,
|
|
59
55
|
|
|
60
|
-
total_tokens: Integer
|
|
61
|
-
|
|
62
|
-
compute_units: T.nilable(Integer)
|
|
56
|
+
total_tokens: Integer
|
|
63
57
|
)
|
|
64
58
|
.returns(T.attached_class)
|
|
65
59
|
end
|
|
@@ -78,11 +72,8 @@ module OpenAI
|
|
|
78
72
|
output_tokens_details:,
|
|
79
73
|
|
|
80
74
|
# The total number of tokens used.
|
|
81
|
-
total_tokens:,
|
|
82
|
-
|
|
83
|
-
# Compute units for the request. Currently null when available.
|
|
84
75
|
|
|
85
|
-
|
|
76
|
+
total_tokens:
|
|
86
77
|
)
|
|
87
78
|
end
|
|
88
79
|
|
|
@@ -93,8 +84,7 @@ module OpenAI
|
|
|
93
84
|
input_tokens_details: OpenAI::Responses::ResponseUsage::InputTokensDetails,
|
|
94
85
|
output_tokens: Integer,
|
|
95
86
|
output_tokens_details: OpenAI::Responses::ResponseUsage::OutputTokensDetails,
|
|
96
|
-
total_tokens: Integer
|
|
97
|
-
compute_units: T.nilable(Integer)
|
|
87
|
+
total_tokens: Integer
|
|
98
88
|
}
|
|
99
89
|
)
|
|
100
90
|
end
|