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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +30 -0
- data/README.md +1 -1
- data/SECURITY.md +10 -0
- data/docs/architecture/security-model.md +267 -0
- data/lib/openai/client.rb +4 -0
- data/lib/openai/helpers/streaming/chat_completion_stream.rb +17 -8
- data/lib/openai/helpers/streaming/response_stream.rb +13 -8
- 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 +6 -3
- data/lib/openai/helpers/structured_output/json_schema_converter.rb +34 -11
- data/lib/openai/internal/vector_store_file_uploader.rb +1 -1
- data/lib/openai/models/admin/organization/usage_costs_params.rb +1 -1
- data/lib/openai/models/batch.rb +2 -2
- 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 +20 -9
- 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_responses_client_event.rb +40 -7
- data/lib/openai/models/beta/beta_responses_server_event.rb +164 -2
- data/lib/openai/models/beta/response_compact_params.rb +9 -6
- data/lib/openai/models/beta/response_create_params.rb +9 -6
- 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 +4 -4
- data/lib/openai/models/chat_model.rb +1 -0
- 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/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 +16 -8
- data/lib/openai/models/responses/response_compact_params.rb +9 -6
- 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 +5 -5
- 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/responses_client_event.rb +872 -769
- 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/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 +6 -6
- 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 +6 -6
- 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 +28 -0
- data/rbi/openai/client.rbi +3 -0
- data/rbi/openai/models/admin/organization/usage_costs_params.rbi +2 -2
- data/rbi/openai/models/batch.rbi +2 -2
- 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 +14 -6
- 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_responses_client_event.rbi +8 -3
- data/rbi/openai/models/beta/beta_responses_server_event.rbi +206 -3
- data/rbi/openai/models/beta/response_compact_params.rbi +4 -3
- data/rbi/openai/models/beta/response_create_params.rbi +4 -3
- data/rbi/openai/models/beta/responses/beta_response_item_list.rbi +1 -0
- data/rbi/openai/models/chat/completion_create_params.rbi +3 -3
- data/rbi/openai/models/chat_model.rbi +1 -0
- 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/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 +12 -5
- data/rbi/openai/models/responses/response_compact_params.rbi +4 -3
- 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 +2 -2
- 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/responses_client_event.rbi +1204 -1036
- 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 +1 -1
- data/rbi/openai/resources/beta/responses.rbi +3 -3
- data/rbi/openai/resources/chat/completions.rbi +2 -2
- data/rbi/openai/resources/conversations/items.rbi +1 -0
- data/rbi/openai/resources/conversations.rbi +1 -0
- data/rbi/openai/resources/responses.rbi +3 -3
- 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/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 +6 -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_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/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 +3 -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/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/safety/alerts.rbs +14 -0
- data/sig/openai/resources/safety.rbs +9 -0
- data/sig/openai/resources/webhooks.rbs +3 -1
- metadata +86 -1
|
@@ -24,13 +24,21 @@ module OpenAI
|
|
|
24
24
|
sig { returns(String) }
|
|
25
25
|
attr_accessor :message
|
|
26
26
|
|
|
27
|
+
sig { returns(T.nilable(OpenAI::Beta::BetaResponseError::Misalignment)) }
|
|
28
|
+
attr_reader :misalignment
|
|
29
|
+
|
|
30
|
+
sig { params(misalignment: OpenAI::Beta::BetaResponseError::Misalignment::OrHash).void }
|
|
31
|
+
attr_writer :misalignment
|
|
32
|
+
|
|
27
33
|
# An error object returned when the model fails to generate a Response.
|
|
28
34
|
sig do
|
|
29
35
|
params(
|
|
30
36
|
|
|
31
37
|
code: OpenAI::Beta::BetaResponseError::Code::OrSymbol,
|
|
32
38
|
|
|
33
|
-
message: String
|
|
39
|
+
message: String,
|
|
40
|
+
|
|
41
|
+
misalignment: OpenAI::Beta::BetaResponseError::Misalignment::OrHash
|
|
34
42
|
)
|
|
35
43
|
.returns(T.attached_class)
|
|
36
44
|
end
|
|
@@ -40,14 +48,19 @@ module OpenAI
|
|
|
40
48
|
code:,
|
|
41
49
|
|
|
42
50
|
# A human-readable description of the error.
|
|
51
|
+
message:,
|
|
43
52
|
|
|
44
|
-
|
|
53
|
+
misalignment: nil
|
|
45
54
|
)
|
|
46
55
|
end
|
|
47
56
|
|
|
48
57
|
sig do
|
|
49
58
|
override.returns(
|
|
50
|
-
{
|
|
59
|
+
{
|
|
60
|
+
code: OpenAI::Beta::BetaResponseError::Code::TaggedSymbol,
|
|
61
|
+
message: String,
|
|
62
|
+
misalignment: OpenAI::Beta::BetaResponseError::Misalignment
|
|
63
|
+
}
|
|
51
64
|
)
|
|
52
65
|
end
|
|
53
66
|
def to_hash
|
|
@@ -65,6 +78,10 @@ module OpenAI
|
|
|
65
78
|
INVALID_PROMPT = T.let(:invalid_prompt, OpenAI::Beta::BetaResponseError::Code::TaggedSymbol)
|
|
66
79
|
DATA_RESIDENCY_MISMATCH = T.let(:data_residency_mismatch, OpenAI::Beta::BetaResponseError::Code::TaggedSymbol)
|
|
67
80
|
BIO_POLICY = T.let(:bio_policy, OpenAI::Beta::BetaResponseError::Code::TaggedSymbol)
|
|
81
|
+
MISALIGNMENT_POLICY_VIOLATION = T.let(
|
|
82
|
+
:misalignment_policy_violation,
|
|
83
|
+
OpenAI::Beta::BetaResponseError::Code::TaggedSymbol
|
|
84
|
+
)
|
|
68
85
|
VECTOR_STORE_TIMEOUT = T.let(:vector_store_timeout, OpenAI::Beta::BetaResponseError::Code::TaggedSymbol)
|
|
69
86
|
INVALID_IMAGE = T.let(:invalid_image, OpenAI::Beta::BetaResponseError::Code::TaggedSymbol)
|
|
70
87
|
INVALID_IMAGE_FORMAT = T.let(:invalid_image_format, OpenAI::Beta::BetaResponseError::Code::TaggedSymbol)
|
|
@@ -95,6 +112,147 @@ module OpenAI
|
|
|
95
112
|
end
|
|
96
113
|
end
|
|
97
114
|
|
|
115
|
+
class Misalignment < OpenAI::Internal::Type::BaseModel
|
|
116
|
+
OrHash = T.type_alias do
|
|
117
|
+
T.any(
|
|
118
|
+
OpenAI::Beta::BetaResponseError::Misalignment,
|
|
119
|
+
OpenAI::Internal::AnyHash
|
|
120
|
+
)
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
# The public explanation for this block.
|
|
124
|
+
sig { returns(T.nilable(String)) }
|
|
125
|
+
attr_reader :detailed_explanation
|
|
126
|
+
|
|
127
|
+
sig { params(detailed_explanation: String).void }
|
|
128
|
+
attr_writer :detailed_explanation
|
|
129
|
+
|
|
130
|
+
# An optional classification; clients must accept additional values.
|
|
131
|
+
sig { returns(T.nilable(OpenAI::Beta::BetaResponseError::Misalignment::ErrorType::Variants)) }
|
|
132
|
+
attr_reader :error_type
|
|
133
|
+
|
|
134
|
+
sig {
|
|
135
|
+
params(error_type: T.any(String, OpenAI::Beta::BetaResponseError::Misalignment::ErrorType::OrSymbol)).void
|
|
136
|
+
}
|
|
137
|
+
attr_writer :error_type
|
|
138
|
+
|
|
139
|
+
# An optional public continuation instruction.
|
|
140
|
+
sig { returns(T.nilable(OpenAI::Beta::BetaResponseError::Misalignment::Steer)) }
|
|
141
|
+
attr_reader :steer
|
|
142
|
+
|
|
143
|
+
sig { params(steer: OpenAI::Beta::BetaResponseError::Misalignment::Steer::OrHash).void }
|
|
144
|
+
attr_writer :steer
|
|
145
|
+
|
|
146
|
+
sig do
|
|
147
|
+
params(
|
|
148
|
+
|
|
149
|
+
detailed_explanation: String,
|
|
150
|
+
|
|
151
|
+
error_type: T.any(String, OpenAI::Beta::BetaResponseError::Misalignment::ErrorType::OrSymbol),
|
|
152
|
+
|
|
153
|
+
steer: OpenAI::Beta::BetaResponseError::Misalignment::Steer::OrHash
|
|
154
|
+
)
|
|
155
|
+
.returns(T.attached_class)
|
|
156
|
+
end
|
|
157
|
+
def self.new(
|
|
158
|
+
|
|
159
|
+
# The public explanation for this block.
|
|
160
|
+
detailed_explanation: nil,
|
|
161
|
+
|
|
162
|
+
# An optional classification; clients must accept additional values.
|
|
163
|
+
error_type: nil,
|
|
164
|
+
|
|
165
|
+
# An optional public continuation instruction.
|
|
166
|
+
|
|
167
|
+
steer: nil
|
|
168
|
+
)
|
|
169
|
+
end
|
|
170
|
+
|
|
171
|
+
sig do
|
|
172
|
+
override.returns(
|
|
173
|
+
{
|
|
174
|
+
detailed_explanation: String,
|
|
175
|
+
error_type: OpenAI::Beta::BetaResponseError::Misalignment::ErrorType::Variants,
|
|
176
|
+
steer: OpenAI::Beta::BetaResponseError::Misalignment::Steer
|
|
177
|
+
}
|
|
178
|
+
)
|
|
179
|
+
end
|
|
180
|
+
def to_hash
|
|
181
|
+
end
|
|
182
|
+
|
|
183
|
+
# An optional classification; clients must accept additional values.
|
|
184
|
+
module ErrorType
|
|
185
|
+
extend OpenAI::Internal::Type::Union
|
|
186
|
+
|
|
187
|
+
Variants = T.type_alias {
|
|
188
|
+
T.any(String, OpenAI::Beta::BetaResponseError::Misalignment::ErrorType::TaggedSymbol)
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
sig { override.returns(T::Array[OpenAI::Beta::BetaResponseError::Misalignment::ErrorType::Variants]) }
|
|
192
|
+
def self.variants
|
|
193
|
+
end
|
|
194
|
+
|
|
195
|
+
TaggedSymbol = T.type_alias do
|
|
196
|
+
T.all(Symbol, OpenAI::Beta::BetaResponseError::Misalignment::ErrorType)
|
|
197
|
+
end
|
|
198
|
+
|
|
199
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
200
|
+
|
|
201
|
+
POTENTIALLY_UNINTENDED_DATA_TRANSFER = T.let(
|
|
202
|
+
:potentially_unintended_data_transfer,
|
|
203
|
+
OpenAI::Beta::BetaResponseError::Misalignment::ErrorType::TaggedSymbol
|
|
204
|
+
)
|
|
205
|
+
POTENTIALLY_UNINTENDED_DATA_ACCESS = T.let(
|
|
206
|
+
:potentially_unintended_data_access,
|
|
207
|
+
OpenAI::Beta::BetaResponseError::Misalignment::ErrorType::TaggedSymbol
|
|
208
|
+
)
|
|
209
|
+
POTENTIALLY_UNINTENDED_DESTRUCTIVE_ACTIVITY = T.let(
|
|
210
|
+
:potentially_unintended_destructive_activity,
|
|
211
|
+
OpenAI::Beta::BetaResponseError::Misalignment::ErrorType::TaggedSymbol
|
|
212
|
+
)
|
|
213
|
+
OTHER = T.let(:other, OpenAI::Beta::BetaResponseError::Misalignment::ErrorType::TaggedSymbol)
|
|
214
|
+
|
|
215
|
+
end
|
|
216
|
+
|
|
217
|
+
class Steer < OpenAI::Internal::Type::BaseModel
|
|
218
|
+
OrHash = T.type_alias do
|
|
219
|
+
T.any(
|
|
220
|
+
OpenAI::Beta::BetaResponseError::Misalignment::Steer,
|
|
221
|
+
OpenAI::Internal::AnyHash
|
|
222
|
+
)
|
|
223
|
+
end
|
|
224
|
+
|
|
225
|
+
# The public continuation instruction.
|
|
226
|
+
sig { returns(String) }
|
|
227
|
+
attr_accessor :message
|
|
228
|
+
|
|
229
|
+
# An optional public continuation instruction.
|
|
230
|
+
sig do
|
|
231
|
+
params(
|
|
232
|
+
|
|
233
|
+
message: String
|
|
234
|
+
)
|
|
235
|
+
.returns(T.attached_class)
|
|
236
|
+
end
|
|
237
|
+
def self.new(
|
|
238
|
+
|
|
239
|
+
# The public continuation instruction.
|
|
240
|
+
|
|
241
|
+
message:
|
|
242
|
+
)
|
|
243
|
+
end
|
|
244
|
+
|
|
245
|
+
sig do
|
|
246
|
+
override.returns(
|
|
247
|
+
{message: String}
|
|
248
|
+
)
|
|
249
|
+
end
|
|
250
|
+
def to_hash
|
|
251
|
+
end
|
|
252
|
+
|
|
253
|
+
end
|
|
254
|
+
end
|
|
255
|
+
|
|
98
256
|
end
|
|
99
257
|
|
|
100
258
|
end
|
|
@@ -46,6 +46,13 @@ module OpenAI
|
|
|
46
46
|
sig { params(agent: T.nilable(OpenAI::Beta::BetaResponseFunctionToolCall::Agent::OrHash)).void }
|
|
47
47
|
attr_writer :agent
|
|
48
48
|
|
|
49
|
+
# Whether the function tool call runs asynchronously.
|
|
50
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
51
|
+
attr_reader :async
|
|
52
|
+
|
|
53
|
+
sig { params(async: T::Boolean).void }
|
|
54
|
+
attr_writer :async
|
|
55
|
+
|
|
49
56
|
# The execution context that produced this tool call.
|
|
50
57
|
sig {
|
|
51
58
|
returns(
|
|
@@ -90,6 +97,8 @@ module OpenAI
|
|
|
90
97
|
|
|
91
98
|
agent: T.nilable(OpenAI::Beta::BetaResponseFunctionToolCall::Agent::OrHash),
|
|
92
99
|
|
|
100
|
+
async: T::Boolean,
|
|
101
|
+
|
|
93
102
|
caller_: T.nilable(
|
|
94
103
|
T.any(
|
|
95
104
|
OpenAI::Beta::BetaResponseFunctionToolCall::Caller::Direct::OrHash,
|
|
@@ -122,6 +131,9 @@ module OpenAI
|
|
|
122
131
|
# The agent that produced this item.
|
|
123
132
|
agent: nil,
|
|
124
133
|
|
|
134
|
+
# Whether the function tool call runs asynchronously.
|
|
135
|
+
async: nil,
|
|
136
|
+
|
|
125
137
|
# The execution context that produced this tool call.
|
|
126
138
|
caller_: nil,
|
|
127
139
|
|
|
@@ -147,6 +159,7 @@ module OpenAI
|
|
|
147
159
|
type: Symbol,
|
|
148
160
|
id: String,
|
|
149
161
|
agent: T.nilable(OpenAI::Beta::BetaResponseFunctionToolCall::Agent),
|
|
162
|
+
async: T::Boolean,
|
|
150
163
|
caller_: T.nilable(
|
|
151
164
|
T.any(
|
|
152
165
|
OpenAI::Beta::BetaResponseFunctionToolCall::Caller::Direct,
|
|
@@ -50,6 +50,8 @@ module OpenAI
|
|
|
50
50
|
|
|
51
51
|
agent: T.nilable(OpenAI::Beta::BetaResponseFunctionToolCall::Agent::OrHash),
|
|
52
52
|
|
|
53
|
+
async: T::Boolean,
|
|
54
|
+
|
|
53
55
|
caller_: T.nilable(
|
|
54
56
|
T.any(
|
|
55
57
|
OpenAI::Beta::BetaResponseFunctionToolCall::Caller::Direct::OrHash,
|
|
@@ -86,6 +88,9 @@ module OpenAI
|
|
|
86
88
|
# The agent that produced this item.
|
|
87
89
|
agent: nil,
|
|
88
90
|
|
|
91
|
+
# Whether the function tool call runs asynchronously.
|
|
92
|
+
async: nil,
|
|
93
|
+
|
|
89
94
|
# The execution context that produced this tool call.
|
|
90
95
|
caller_: nil,
|
|
91
96
|
|
|
@@ -111,6 +116,7 @@ module OpenAI
|
|
|
111
116
|
status: OpenAI::Beta::BetaResponseFunctionToolCallItem::Status::TaggedSymbol,
|
|
112
117
|
type: Symbol,
|
|
113
118
|
agent: T.nilable(OpenAI::Beta::BetaResponseFunctionToolCall::Agent),
|
|
119
|
+
async: T::Boolean,
|
|
114
120
|
caller_: T.nilable(
|
|
115
121
|
T.any(
|
|
116
122
|
OpenAI::Beta::BetaResponseFunctionToolCall::Caller::Direct,
|
|
@@ -39,6 +39,10 @@ module OpenAI
|
|
|
39
39
|
attr_writer :agent
|
|
40
40
|
|
|
41
41
|
# An event that is emitted when a response finishes as incomplete.
|
|
42
|
+
#
|
|
43
|
+
# Over WebSocket, steering can finish a response with
|
|
44
|
+
# `response.incomplete_details.reason` set to `steered`, followed automatically by
|
|
45
|
+
# a successor `response.created` that commits the queued steering input.
|
|
42
46
|
sig do
|
|
43
47
|
params(
|
|
44
48
|
|
|
@@ -36,6 +36,7 @@ module OpenAI
|
|
|
36
36
|
OpenAI::Beta::BetaResponseInputItem::ToolSearchCall,
|
|
37
37
|
OpenAI::Beta::BetaResponseToolSearchOutputItemParam,
|
|
38
38
|
OpenAI::Beta::BetaResponseInputItem::AdditionalTools,
|
|
39
|
+
OpenAI::Beta::BetaResponseConfigurationUpdateItemParam,
|
|
39
40
|
OpenAI::Beta::BetaResponseReasoningItem,
|
|
40
41
|
OpenAI::Beta::BetaResponseCompactionItemParam,
|
|
41
42
|
OpenAI::Beta::BetaResponseInputItem::ImageGenerationCall,
|
|
@@ -93,6 +94,7 @@ module OpenAI
|
|
|
93
94
|
OpenAI::Beta::BetaResponseInputItem::ToolSearchCall::OrHash,
|
|
94
95
|
OpenAI::Beta::BetaResponseToolSearchOutputItemParam::OrHash,
|
|
95
96
|
OpenAI::Beta::BetaResponseInputItem::AdditionalTools::OrHash,
|
|
97
|
+
OpenAI::Beta::BetaResponseConfigurationUpdateItemParam::OrHash,
|
|
96
98
|
OpenAI::Beta::BetaResponseReasoningItem::OrHash,
|
|
97
99
|
OpenAI::Beta::BetaResponseCompactionItemParam::OrHash,
|
|
98
100
|
OpenAI::Beta::BetaResponseInputItem::ImageGenerationCall::OrHash,
|
|
@@ -156,6 +158,7 @@ module OpenAI
|
|
|
156
158
|
OpenAI::Beta::BetaResponseInputItem::ToolSearchCall,
|
|
157
159
|
OpenAI::Beta::BetaResponseToolSearchOutputItemParam,
|
|
158
160
|
OpenAI::Beta::BetaResponseInputItem::AdditionalTools,
|
|
161
|
+
OpenAI::Beta::BetaResponseConfigurationUpdateItemParam,
|
|
159
162
|
OpenAI::Beta::BetaResponseReasoningItem,
|
|
160
163
|
OpenAI::Beta::BetaResponseCompactionItemParam,
|
|
161
164
|
OpenAI::Beta::BetaResponseInputItem::ImageGenerationCall,
|
|
@@ -43,6 +43,7 @@ module OpenAI
|
|
|
43
43
|
OpenAI::Beta::BetaResponseInputItem::ToolSearchCall,
|
|
44
44
|
OpenAI::Beta::BetaResponseToolSearchOutputItemParam,
|
|
45
45
|
OpenAI::Beta::BetaResponseInputItem::AdditionalTools,
|
|
46
|
+
OpenAI::Beta::BetaResponseConfigurationUpdateItemParam,
|
|
46
47
|
OpenAI::Beta::BetaResponseReasoningItem,
|
|
47
48
|
OpenAI::Beta::BetaResponseCompactionItemParam,
|
|
48
49
|
OpenAI::Beta::BetaResponseInputItem::ImageGenerationCall,
|
|
@@ -114,6 +115,7 @@ module OpenAI
|
|
|
114
115
|
OpenAI::Beta::BetaResponseInputItem::ToolSearchCall::OrHash,
|
|
115
116
|
OpenAI::Beta::BetaResponseToolSearchOutputItemParam::OrHash,
|
|
116
117
|
OpenAI::Beta::BetaResponseInputItem::AdditionalTools::OrHash,
|
|
118
|
+
OpenAI::Beta::BetaResponseConfigurationUpdateItemParam::OrHash,
|
|
117
119
|
OpenAI::Beta::BetaResponseReasoningItem::OrHash,
|
|
118
120
|
OpenAI::Beta::BetaResponseCompactionItemParam::OrHash,
|
|
119
121
|
OpenAI::Beta::BetaResponseInputItem::ImageGenerationCall::OrHash,
|
|
@@ -192,6 +194,7 @@ module OpenAI
|
|
|
192
194
|
OpenAI::Beta::BetaResponseInputItem::ToolSearchCall,
|
|
193
195
|
OpenAI::Beta::BetaResponseToolSearchOutputItemParam,
|
|
194
196
|
OpenAI::Beta::BetaResponseInputItem::AdditionalTools,
|
|
197
|
+
OpenAI::Beta::BetaResponseConfigurationUpdateItemParam,
|
|
195
198
|
OpenAI::Beta::BetaResponseReasoningItem,
|
|
196
199
|
OpenAI::Beta::BetaResponseCompactionItemParam,
|
|
197
200
|
OpenAI::Beta::BetaResponseInputItem::ImageGenerationCall,
|
|
@@ -32,6 +32,7 @@ module OpenAI
|
|
|
32
32
|
OpenAI::Beta::BetaResponseInputItem::ToolSearchCall,
|
|
33
33
|
OpenAI::Beta::BetaResponseToolSearchOutputItemParam,
|
|
34
34
|
OpenAI::Beta::BetaResponseInputItem::AdditionalTools,
|
|
35
|
+
OpenAI::Beta::BetaResponseConfigurationUpdateItemParam,
|
|
35
36
|
OpenAI::Beta::BetaResponseReasoningItem,
|
|
36
37
|
OpenAI::Beta::BetaResponseCompactionItemParam,
|
|
37
38
|
OpenAI::Beta::BetaResponseInputItem::ImageGenerationCall,
|
|
@@ -27,6 +27,7 @@ module OpenAI
|
|
|
27
27
|
OpenAI::Beta::BetaResponseToolSearchCall,
|
|
28
28
|
OpenAI::Beta::BetaResponseToolSearchOutputItem,
|
|
29
29
|
OpenAI::Beta::BetaResponseItem::AdditionalTools,
|
|
30
|
+
OpenAI::Beta::BetaResponseConfigurationUpdateItem,
|
|
30
31
|
OpenAI::Beta::BetaResponseReasoningItem,
|
|
31
32
|
OpenAI::Beta::BetaResponseItem::Program,
|
|
32
33
|
OpenAI::Beta::BetaResponseItem::ProgramOutput,
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module OpenAI
|
|
4
|
+
module Models
|
|
5
|
+
|
|
6
|
+
BetaResponseSteerAcceptedEvent = Beta::BetaResponseSteerAcceptedEvent
|
|
7
|
+
|
|
8
|
+
module Beta
|
|
9
|
+
|
|
10
|
+
class BetaResponseSteerAcceptedEvent < OpenAI::Internal::Type::BaseModel
|
|
11
|
+
|
|
12
|
+
OrHash = T.type_alias do
|
|
13
|
+
T.any(
|
|
14
|
+
OpenAI::Beta::BetaResponseSteerAcceptedEvent,
|
|
15
|
+
OpenAI::Internal::AnyHash
|
|
16
|
+
)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
# The sequence number for this event.
|
|
20
|
+
sig { returns(Integer) }
|
|
21
|
+
attr_accessor :sequence_number
|
|
22
|
+
|
|
23
|
+
# The accepted steering submission.
|
|
24
|
+
sig { returns(OpenAI::Beta::BetaResponseSteerAcceptedEvent::Steer) }
|
|
25
|
+
attr_reader :steer
|
|
26
|
+
|
|
27
|
+
sig { params(steer: OpenAI::Beta::BetaResponseSteerAcceptedEvent::Steer::OrHash).void }
|
|
28
|
+
attr_writer :steer
|
|
29
|
+
|
|
30
|
+
# The event discriminator. Always `response.steer.accepted`.
|
|
31
|
+
sig { returns(Symbol) }
|
|
32
|
+
attr_accessor :type
|
|
33
|
+
|
|
34
|
+
# The WebSocket lane that emitted this event. This field is present when the
|
|
35
|
+
# target response's `response.create` event supplied a `stream_id`.
|
|
36
|
+
sig { returns(T.nilable(String)) }
|
|
37
|
+
attr_reader :stream_id
|
|
38
|
+
|
|
39
|
+
sig { params(stream_id: String).void }
|
|
40
|
+
attr_writer :stream_id
|
|
41
|
+
|
|
42
|
+
# Emitted when steering input has been validated and queued. Acceptance means the
|
|
43
|
+
# server owns the input, not that it has been applied. The successor's
|
|
44
|
+
# `response.created` event is the commit point. If accepted input cannot be
|
|
45
|
+
# committed, `response.steer.failed` returns it with the same steering ID.
|
|
46
|
+
#
|
|
47
|
+
# When the response stops for client-owned tool output or approval, the input
|
|
48
|
+
# remains queued and `response.steer.pending` is emitted after
|
|
49
|
+
# `response.completed`. Fill the pending event's `required_input` stubs with saved
|
|
50
|
+
# results and send one matching explicit `response.create` per parent. Do not
|
|
51
|
+
# resend accepted input while it is still queued.
|
|
52
|
+
sig do
|
|
53
|
+
params(
|
|
54
|
+
|
|
55
|
+
sequence_number: Integer,
|
|
56
|
+
|
|
57
|
+
steer: OpenAI::Beta::BetaResponseSteerAcceptedEvent::Steer::OrHash,
|
|
58
|
+
|
|
59
|
+
stream_id: String,
|
|
60
|
+
|
|
61
|
+
type: Symbol
|
|
62
|
+
)
|
|
63
|
+
.returns(T.attached_class)
|
|
64
|
+
end
|
|
65
|
+
def self.new(
|
|
66
|
+
|
|
67
|
+
# The sequence number for this event.
|
|
68
|
+
sequence_number:,
|
|
69
|
+
|
|
70
|
+
# The accepted steering submission.
|
|
71
|
+
steer:,
|
|
72
|
+
|
|
73
|
+
# The WebSocket lane that emitted this event. This field is present when the
|
|
74
|
+
# target response's `response.create` event supplied a `stream_id`.
|
|
75
|
+
stream_id: nil,
|
|
76
|
+
|
|
77
|
+
# The event discriminator. Always `response.steer.accepted`.
|
|
78
|
+
|
|
79
|
+
type: :"response.steer.accepted"
|
|
80
|
+
)
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
sig do
|
|
84
|
+
override.returns(
|
|
85
|
+
{
|
|
86
|
+
sequence_number: Integer,
|
|
87
|
+
steer: OpenAI::Beta::BetaResponseSteerAcceptedEvent::Steer,
|
|
88
|
+
type: Symbol,
|
|
89
|
+
stream_id: String
|
|
90
|
+
}
|
|
91
|
+
)
|
|
92
|
+
end
|
|
93
|
+
def to_hash
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
class Steer < OpenAI::Internal::Type::BaseModel
|
|
97
|
+
OrHash = T.type_alias do
|
|
98
|
+
T.any(
|
|
99
|
+
OpenAI::Beta::BetaResponseSteerAcceptedEvent::Steer,
|
|
100
|
+
OpenAI::Internal::AnyHash
|
|
101
|
+
)
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
# The ID assigned to the steering submission.
|
|
105
|
+
sig { returns(String) }
|
|
106
|
+
attr_accessor :id
|
|
107
|
+
|
|
108
|
+
# The ID of the response being steered.
|
|
109
|
+
sig { returns(String) }
|
|
110
|
+
attr_accessor :previous_response_id
|
|
111
|
+
|
|
112
|
+
# The accepted steering submission.
|
|
113
|
+
sig do
|
|
114
|
+
params(
|
|
115
|
+
|
|
116
|
+
id: String,
|
|
117
|
+
|
|
118
|
+
previous_response_id: String
|
|
119
|
+
)
|
|
120
|
+
.returns(T.attached_class)
|
|
121
|
+
end
|
|
122
|
+
def self.new(
|
|
123
|
+
|
|
124
|
+
# The ID assigned to the steering submission.
|
|
125
|
+
id:,
|
|
126
|
+
|
|
127
|
+
# The ID of the response being steered.
|
|
128
|
+
|
|
129
|
+
previous_response_id:
|
|
130
|
+
)
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
sig do
|
|
134
|
+
override.returns(
|
|
135
|
+
{id: String, previous_response_id: String}
|
|
136
|
+
)
|
|
137
|
+
end
|
|
138
|
+
def to_hash
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
end
|
|
142
|
+
|
|
143
|
+
end
|
|
144
|
+
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
end
|
|
148
|
+
end
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module OpenAI
|
|
4
|
+
module Models
|
|
5
|
+
|
|
6
|
+
BetaResponseSteerErrorCode = Beta::BetaResponseSteerErrorCode
|
|
7
|
+
|
|
8
|
+
module Beta
|
|
9
|
+
|
|
10
|
+
# A machine-readable steering error code. Clients should handle unknown values
|
|
11
|
+
# because additional codes may be introduced. Known values include:
|
|
12
|
+
#
|
|
13
|
+
# - `response_not_found`: The target response is not available on this connection.
|
|
14
|
+
# - `invalid_input`: The event or input failed validation.
|
|
15
|
+
# - `steering_not_supported`: The model or response execution mode does not
|
|
16
|
+
# support steering.
|
|
17
|
+
# - `too_many_pending_steers`: Too much steering input is pending for the
|
|
18
|
+
# response.
|
|
19
|
+
# - `response_already_completed`: The response completed and is no longer
|
|
20
|
+
# accepting steering input.
|
|
21
|
+
# - `response_not_active`: The response is no longer accepting steering input.
|
|
22
|
+
# - `successor_creation_failed`: The successor response could not be created.
|
|
23
|
+
module BetaResponseSteerErrorCode
|
|
24
|
+
extend OpenAI::Internal::Type::Union
|
|
25
|
+
|
|
26
|
+
Variants = T.type_alias do
|
|
27
|
+
T.any(
|
|
28
|
+
OpenAI::Beta::BetaResponseSteerErrorCode::TaggedSymbol,
|
|
29
|
+
String
|
|
30
|
+
)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
sig { override.returns(T::Array[OpenAI::Beta::BetaResponseSteerErrorCode::Variants]) }
|
|
34
|
+
def self.variants
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
TaggedSymbol = T.type_alias do
|
|
38
|
+
T.all(Symbol, OpenAI::Beta::BetaResponseSteerErrorCode)
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
42
|
+
|
|
43
|
+
RESPONSE_NOT_FOUND = T.let(:response_not_found, OpenAI::Beta::BetaResponseSteerErrorCode::TaggedSymbol)
|
|
44
|
+
INVALID_INPUT = T.let(:invalid_input, OpenAI::Beta::BetaResponseSteerErrorCode::TaggedSymbol)
|
|
45
|
+
STEERING_NOT_SUPPORTED = T.let(:steering_not_supported, OpenAI::Beta::BetaResponseSteerErrorCode::TaggedSymbol)
|
|
46
|
+
TOO_MANY_PENDING_STEERS = T.let(
|
|
47
|
+
:too_many_pending_steers,
|
|
48
|
+
OpenAI::Beta::BetaResponseSteerErrorCode::TaggedSymbol
|
|
49
|
+
)
|
|
50
|
+
RESPONSE_ALREADY_COMPLETED = T.let(
|
|
51
|
+
:response_already_completed,
|
|
52
|
+
OpenAI::Beta::BetaResponseSteerErrorCode::TaggedSymbol
|
|
53
|
+
)
|
|
54
|
+
RESPONSE_NOT_ACTIVE = T.let(:response_not_active, OpenAI::Beta::BetaResponseSteerErrorCode::TaggedSymbol)
|
|
55
|
+
SUCCESSOR_CREATION_FAILED = T.let(
|
|
56
|
+
:successor_creation_failed,
|
|
57
|
+
OpenAI::Beta::BetaResponseSteerErrorCode::TaggedSymbol
|
|
58
|
+
)
|
|
59
|
+
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
end
|
|
65
|
+
end
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module OpenAI
|
|
4
|
+
module Models
|
|
5
|
+
|
|
6
|
+
BetaResponseSteerEvent = Beta::BetaResponseSteerEvent
|
|
7
|
+
|
|
8
|
+
module Beta
|
|
9
|
+
|
|
10
|
+
class BetaResponseSteerEvent < OpenAI::Internal::Type::BaseModel
|
|
11
|
+
|
|
12
|
+
OrHash = T.type_alias do
|
|
13
|
+
T.any(
|
|
14
|
+
OpenAI::Beta::BetaResponseSteerEvent,
|
|
15
|
+
OpenAI::Internal::AnyHash
|
|
16
|
+
)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
# Input to queue for a continuation of the response. Uses the same string or
|
|
20
|
+
# input-item shape as `response.create.input`, with a non-empty array when
|
|
21
|
+
# supplying input items.
|
|
22
|
+
#
|
|
23
|
+
# Steering accepts only messages with the `user` role. Each message may contain
|
|
24
|
+
# only `type`, `role`, and `content`, with `content` as a string or an array of
|
|
25
|
+
# `input_text`, `input_image`, and `input_file` parts. The optional `type` must be
|
|
26
|
+
# `message`. Other roles, tool outputs, and item types are not supported for
|
|
27
|
+
# steering.
|
|
28
|
+
sig {
|
|
29
|
+
returns(T.any(String, T::Array[OpenAI::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::Variants]))
|
|
30
|
+
}
|
|
31
|
+
attr_accessor :input
|
|
32
|
+
|
|
33
|
+
# The ID of the response to steer on this WebSocket connection.
|
|
34
|
+
sig { returns(String) }
|
|
35
|
+
attr_accessor :previous_response_id
|
|
36
|
+
|
|
37
|
+
# The event discriminator. Always `response.steer`.
|
|
38
|
+
sig { returns(Symbol) }
|
|
39
|
+
attr_accessor :type
|
|
40
|
+
|
|
41
|
+
# Queues user input to steer a response on this WebSocket connection. Input can
|
|
42
|
+
# contain text, images, and files. Steering is supported only for single-agent
|
|
43
|
+
# responses on models and execution modes that support steering. Responses bound
|
|
44
|
+
# to a conversation or using automatic compaction do not support steering.
|
|
45
|
+
#
|
|
46
|
+
# A `response.steer.accepted` event acknowledges that the server owns the queued
|
|
47
|
+
# input, not that it has been applied. The successor's `response.created` event is
|
|
48
|
+
# the commit point. Input that cannot be committed is returned in
|
|
49
|
+
# `response.steer.failed`.
|
|
50
|
+
#
|
|
51
|
+
# Steering may cause the active response to finish at a safe output boundary with
|
|
52
|
+
# `response.incomplete` and `incomplete_details.reason` set to `steered`, followed
|
|
53
|
+
# automatically by a successor `response.created`. Normal completion can also be
|
|
54
|
+
# followed by an automatic successor. Automatic successors inherit the previous
|
|
55
|
+
# response's settings and continue from it with the queued input.
|
|
56
|
+
#
|
|
57
|
+
# If the response stops for client-owned tool output or approval, accepted
|
|
58
|
+
# steering input remains queued and `response.steer.pending` is emitted after
|
|
59
|
+
# `response.completed`. Fill the `required_input` stubs from that event with saved
|
|
60
|
+
# tool results or approval decisions, and send one explicit `response.create` per
|
|
61
|
+
# parent with the same `previous_response_id` and WebSocket lane. Do not rerun
|
|
62
|
+
# tools or resend accepted steering input. The queued input is prepended in
|
|
63
|
+
# submission order to that request's input, and the explicit request retains its
|
|
64
|
+
# own settings.
|
|
65
|
+
#
|
|
66
|
+
# This event accepts only `type`, `previous_response_id`, and `input`. Do not send
|
|
67
|
+
# `stream_id`; the target response determines the WebSocket lane.
|
|
68
|
+
sig do
|
|
69
|
+
params(
|
|
70
|
+
|
|
71
|
+
input: T.any(String, T::Array[OpenAI::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::Variants]),
|
|
72
|
+
|
|
73
|
+
previous_response_id: String,
|
|
74
|
+
|
|
75
|
+
type: Symbol
|
|
76
|
+
)
|
|
77
|
+
.returns(T.attached_class)
|
|
78
|
+
end
|
|
79
|
+
def self.new(
|
|
80
|
+
|
|
81
|
+
# Input to queue for a continuation of the response. Uses the same string or
|
|
82
|
+
# input-item shape as `response.create.input`, with a non-empty array when
|
|
83
|
+
# supplying input items.
|
|
84
|
+
#
|
|
85
|
+
# Steering accepts only messages with the `user` role. Each message may contain
|
|
86
|
+
# only `type`, `role`, and `content`, with `content` as a string or an array of
|
|
87
|
+
# `input_text`, `input_image`, and `input_file` parts. The optional `type` must be
|
|
88
|
+
# `message`. Other roles, tool outputs, and item types are not supported for
|
|
89
|
+
# steering.
|
|
90
|
+
input:,
|
|
91
|
+
|
|
92
|
+
# The ID of the response to steer on this WebSocket connection.
|
|
93
|
+
previous_response_id:,
|
|
94
|
+
|
|
95
|
+
# The event discriminator. Always `response.steer`.
|
|
96
|
+
|
|
97
|
+
type: :"response.steer"
|
|
98
|
+
)
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
sig do
|
|
102
|
+
override.returns(
|
|
103
|
+
{
|
|
104
|
+
input: T.any(String, T::Array[OpenAI::Beta::BetaResponseSteerInput::ResponseSteerInputItemList::Variants]),
|
|
105
|
+
previous_response_id: String,
|
|
106
|
+
type: Symbol
|
|
107
|
+
}
|
|
108
|
+
)
|
|
109
|
+
end
|
|
110
|
+
def to_hash
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
end
|
|
118
|
+
end
|