openai 0.96.0 → 0.98.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 +31 -0
- data/README.md +76 -1
- data/lib/openai/helpers/agents/session_stream.rb +60 -3
- data/lib/openai/helpers/beta/agents/artifacts.rb +72 -0
- data/lib/openai/helpers/beta/agents/creation_stream.rb +69 -0
- data/lib/openai/helpers/beta/agents/files.rb +236 -0
- data/lib/openai/helpers/beta/agents/function_tool.rb +65 -0
- data/lib/openai/helpers/beta/agents/model_adapter.rb +27 -0
- data/lib/openai/helpers/beta/agents/result.rb +170 -0
- data/lib/openai/helpers/beta/agents/typed_output.rb +191 -0
- data/lib/openai/helpers/live/websocket.rb +7 -1
- data/lib/openai/helpers/realtime/conversation_item_variant_resolver.rb +1 -1
- data/lib/openai/helpers/responses_websocket/connection.rb +7 -1
- data/lib/openai/helpers/responses_websocket/session.rb +5 -1
- data/lib/openai/helpers/responses_websocket/transports/async_websocket.rb +12 -2
- data/lib/openai/internal/transport/base_client.rb +18 -0
- data/lib/openai/internal/type/array_of.rb +1 -1
- data/lib/openai/internal/type/base_model.rb +6 -3
- data/lib/openai/internal/type/converter.rb +50 -3
- data/lib/openai/internal/type/hash_of.rb +1 -1
- data/lib/openai/internal/type/union.rb +6 -6
- data/lib/openai/models/beta/agent.rb +2 -2
- data/lib/openai/models/beta/agent_browser_authentication_cancel_param.rb +23 -0
- data/lib/openai/models/beta/agent_browser_authentication_submit_param.rb +70 -0
- data/lib/openai/models/beta/agent_browser_origin_access_param.rb +45 -0
- data/lib/openai/models/beta/agent_create_params.rb +2 -2
- data/lib/openai/models/beta/agent_output_item.rb +276 -1
- data/lib/openai/models/beta/agent_session.rb +251 -5
- data/lib/openai/models/beta/agent_session_input_param.rb +64 -1
- data/lib/openai/models/beta/agent_session_item.rb +391 -1
- data/lib/openai/models/beta/agent_session_turn_item_added_event.rb +2 -2
- data/lib/openai/models/beta/agent_session_turn_item_done_event.rb +2 -2
- data/lib/openai/models/beta/agent_tool.rb +27 -1
- data/lib/openai/models/beta/agent_tool_param.rb +27 -1
- data/lib/openai/models/beta/agent_update_params.rb +2 -2
- data/lib/openai/models/beta/agents/environments/environment_template.rb +26 -2
- data/lib/openai/models/beta/agents/environments/template_create_params.rb +48 -3
- data/lib/openai/models/beta/agents/environments/template_update_params.rb +45 -3
- data/lib/openai/models/beta/agents/session_create_params.rb +2 -2
- data/lib/openai/models/beta/agents/sessions/event_create_params.rb +2 -2
- data/lib/openai/models/beta/agents/sessions/session_trace.rb +64 -0
- data/lib/openai/models/beta/agents/sessions/trace_list_params.rb +68 -0
- data/lib/openai/models/beta/agents/vaults/credential.rb +8 -4
- data/lib/openai/models/beta/beta_response_output_text.rb +2 -2
- data/lib/openai/models/beta/beta_response_output_text_annotation_added_event.rb +2 -2
- data/lib/openai/models/beta/environment.rb +58 -2
- data/lib/openai/models/beta/environment_param.rb +66 -3
- data/lib/openai/models/beta/persisted_agent_tool.rb +27 -1
- data/lib/openai/models/beta/persisted_agent_tool_param.rb +27 -1
- data/lib/openai/models/beta/session_turn_error.rb +3 -0
- data/lib/openai/models/chat/chat_completion_content_part_image.rb +1 -0
- data/lib/openai/models/live/fork_server_event.rb +14 -3
- data/lib/openai/models/live/server_event.rb +14 -3
- data/lib/openai/models/realtime/translations/client_secret_create_params.rb +28 -0
- data/lib/openai/models/responses/response_output_text.rb +2 -2
- data/lib/openai/models/responses/response_output_text_annotation_added_event.rb +2 -2
- data/lib/openai/resources/beta/agents/environments/files.rb +31 -0
- data/lib/openai/resources/beta/agents/environments/templates.rb +9 -2
- data/lib/openai/resources/beta/agents/sessions/artifacts.rb +8 -0
- data/lib/openai/resources/beta/agents/sessions/events.rb +7 -6
- data/lib/openai/resources/beta/agents/sessions/items.rb +1 -1
- data/lib/openai/resources/beta/agents/sessions/subagents/items.rb +1 -1
- data/lib/openai/resources/beta/agents/sessions/subagents/turns/items.rb +1 -1
- data/lib/openai/resources/beta/agents/sessions/traces.rb +58 -0
- data/lib/openai/resources/beta/agents/sessions.rb +18 -5
- data/lib/openai/resources/beta/agents.rb +2 -2
- data/lib/openai/resources/evals/runs.rb +1 -1
- data/lib/openai/resources/realtime/translations/client_secrets.rb +58 -0
- data/lib/openai/resources/realtime/translations.rb +20 -0
- data/lib/openai/resources/realtime.rb +4 -0
- data/lib/openai/version.rb +1 -1
- data/lib/openai.rb +12 -1
- data/rbi/openai/helpers/agents.rbi +20 -1
- data/rbi/openai/helpers/beta/agents/artifacts.rbi +29 -0
- data/rbi/openai/helpers/beta/agents/files.rbi +65 -0
- data/rbi/openai/helpers/beta/agents/function_tool.rbi +40 -0
- data/rbi/openai/helpers/beta/agents/model_adapter.rbi +22 -0
- data/rbi/openai/helpers/beta/agents.rbi +146 -0
- data/rbi/openai/internal/transport/base_client.rbi +12 -0
- data/rbi/openai/internal/type/base_model.rbi +2 -2
- data/rbi/openai/internal/type/converter.rbi +21 -3
- data/rbi/openai/internal/type/union.rbi +6 -2
- data/rbi/openai/models/beta/agent.rbi +2 -1
- data/rbi/openai/models/beta/agent_browser_authentication_cancel_param.rbi +53 -0
- data/rbi/openai/models/beta/agent_browser_authentication_submit_param.rbi +125 -0
- data/rbi/openai/models/beta/agent_browser_origin_access_param.rbi +76 -0
- data/rbi/openai/models/beta/agent_create_params.rbi +6 -3
- data/rbi/openai/models/beta/agent_output_item.rbi +422 -0
- data/rbi/openai/models/beta/agent_session.rbi +373 -1
- data/rbi/openai/models/beta/agent_session_input_param.rbi +102 -0
- data/rbi/openai/models/beta/agent_session_item.rbi +614 -0
- data/rbi/openai/models/beta/agent_session_turn_item_added_event.rbi +3 -0
- data/rbi/openai/models/beta/agent_session_turn_item_done_event.rbi +2 -0
- data/rbi/openai/models/beta/agent_tool.rbi +49 -1
- data/rbi/openai/models/beta/agent_tool_param.rbi +52 -1
- data/rbi/openai/models/beta/agent_update_params.rbi +6 -3
- data/rbi/openai/models/beta/agents/environments/environment_template.rbi +53 -2
- data/rbi/openai/models/beta/agents/environments/template_create_params.rbi +74 -4
- data/rbi/openai/models/beta/agents/environments/template_update_params.rbi +71 -4
- data/rbi/openai/models/beta/agents/session_create_params.rbi +6 -3
- data/rbi/openai/models/beta/agents/sessions/event_create_params.rbi +3 -0
- data/rbi/openai/models/beta/agents/sessions/session_trace.rbi +97 -0
- data/rbi/openai/models/beta/agents/sessions/trace_list_params.rbi +121 -0
- data/rbi/openai/models/beta/agents/vaults/credential.rbi +5 -5
- data/rbi/openai/models/beta/beta_response_output_text.rbi +2 -2
- data/rbi/openai/models/beta/beta_response_output_text_annotation_added_event.rbi +2 -2
- data/rbi/openai/models/beta/environment.rbi +82 -2
- data/rbi/openai/models/beta/environment_param.rbi +103 -4
- data/rbi/openai/models/beta/persisted_agent_tool.rbi +49 -1
- data/rbi/openai/models/beta/persisted_agent_tool_param.rbi +52 -1
- data/rbi/openai/models/beta/session_turn_error.rbi +3 -0
- data/rbi/openai/models/chat/chat_completion_content_part_image.rbi +1 -0
- data/rbi/openai/models/live/fork_server_event.rbi +14 -2
- data/rbi/openai/models/live/server_event.rbi +14 -2
- data/rbi/openai/models/realtime/translations/client_secret_create_params.rbi +68 -0
- data/rbi/openai/models/responses/response_output_text.rbi +2 -2
- data/rbi/openai/models/responses/response_output_text_annotation_added_event.rbi +2 -2
- data/rbi/openai/resources/beta/agents/environments/files.rbi +31 -0
- data/rbi/openai/resources/beta/agents/environments/templates.rbi +7 -0
- data/rbi/openai/resources/beta/agents/sessions/artifacts.rbi +8 -0
- data/rbi/openai/resources/beta/agents/sessions/events.rbi +7 -5
- data/rbi/openai/resources/beta/agents/sessions/traces.rbi +54 -0
- data/rbi/openai/resources/beta/agents/sessions.rbi +6 -1
- data/rbi/openai/resources/beta/agents.rbi +4 -2
- data/rbi/openai/resources/realtime/translations/client_secrets.rbi +54 -0
- data/rbi/openai/resources/realtime/translations.rbi +22 -0
- data/rbi/openai/resources/realtime.rbi +3 -0
- data/sig/openai/helpers/agents.rbs +7 -0
- data/sig/openai/helpers/beta/agents/artifacts.rbs +20 -0
- data/sig/openai/helpers/beta/agents/files.rbs +41 -0
- data/sig/openai/helpers/beta/agents/function_tool.rbs +24 -0
- data/sig/openai/helpers/beta/agents/model_adapter.rbs +16 -0
- data/sig/openai/helpers/beta/agents.rbs +71 -0
- data/sig/openai/helpers/structured_output.rbs +12 -0
- data/sig/openai/internal/transport/base_client.rbs +8 -0
- data/sig/openai/internal/type/base_model.rbs +3 -1
- data/sig/openai/internal/type/converter.rbs +16 -2
- data/sig/openai/internal/type/union.rbs +2 -1
- data/sig/openai/models/beta/agent_browser_authentication_cancel_param.rbs +21 -0
- data/sig/openai/models/beta/agent_browser_authentication_submit_param.rbs +63 -0
- data/sig/openai/models/beta/agent_browser_origin_access_param.rbs +47 -0
- data/sig/openai/models/beta/agent_output_item.rbs +254 -0
- data/sig/openai/models/beta/agent_session.rbs +215 -1
- data/sig/openai/models/beta/agent_session_input_param.rbs +51 -1
- data/sig/openai/models/beta/agent_session_item.rbs +362 -0
- data/sig/openai/models/beta/agent_tool.rbs +22 -0
- data/sig/openai/models/beta/agent_tool_param.rbs +25 -0
- data/sig/openai/models/beta/agents/environments/environment_template.rbs +29 -3
- data/sig/openai/models/beta/agents/environments/template_create_params.rbs +39 -4
- data/sig/openai/models/beta/agents/environments/template_update_params.rbs +37 -4
- data/sig/openai/models/beta/agents/sessions/session_trace.rbs +65 -0
- data/sig/openai/models/beta/agents/sessions/trace_list_params.rbs +81 -0
- data/sig/openai/models/beta/agents/vaults/credential.rbs +5 -5
- data/sig/openai/models/beta/beta_response_output_text.rbs +2 -2
- data/sig/openai/models/beta/beta_response_output_text_annotation_added_event.rbs +2 -2
- data/sig/openai/models/beta/environment.rbs +51 -3
- data/sig/openai/models/beta/environment_param.rbs +64 -4
- data/sig/openai/models/beta/persisted_agent_tool.rbs +22 -0
- data/sig/openai/models/beta/persisted_agent_tool_param.rbs +25 -0
- data/sig/openai/models/beta/session_turn_error.rbs +4 -0
- data/sig/openai/models/chat/chat_completion_content_part_image.rbs +2 -1
- data/sig/openai/models/live/fork_server_event.rbs +17 -2
- data/sig/openai/models/live/server_event.rbs +17 -2
- data/sig/openai/models/realtime/translations/client_secret_create_params.rbs +39 -0
- data/sig/openai/models/responses/response_output_text.rbs +2 -2
- data/sig/openai/models/responses/response_output_text_annotation_added_event.rbs +2 -2
- data/sig/openai/resources/beta/agents/environments/files.rbs +17 -0
- data/sig/openai/resources/beta/agents/environments/templates.rbs +2 -0
- data/sig/openai/resources/beta/agents/sessions/artifacts.rbs +4 -0
- data/sig/openai/resources/beta/agents/sessions/traces.rbs +21 -0
- data/sig/openai/resources/beta/agents/sessions.rbs +4 -1
- data/sig/openai/resources/realtime/translations/client_secrets.rbs +17 -0
- data/sig/openai/resources/realtime/translations.rbs +11 -0
- data/sig/openai/resources/realtime.rbs +2 -0
- metadata +46 -1
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module OpenAI
|
|
4
|
+
module Resources
|
|
5
|
+
class Realtime
|
|
6
|
+
class Translations
|
|
7
|
+
class ClientSecrets
|
|
8
|
+
# Create a Realtime translation client secret with an associated translation
|
|
9
|
+
# session configuration.
|
|
10
|
+
#
|
|
11
|
+
# Client secrets are short-lived tokens that can be passed to a client app, such
|
|
12
|
+
# as a web frontend or mobile client, which grants access to the Realtime
|
|
13
|
+
# Translation API without leaking your main API key. You can configure a custom
|
|
14
|
+
# TTL for each client secret.
|
|
15
|
+
#
|
|
16
|
+
# Returns the created client secret and the effective translation session object.
|
|
17
|
+
# The client secret is a string that looks like `ek_1234`.
|
|
18
|
+
#
|
|
19
|
+
# @overload create(session:, expires_after: nil, request_options: {})
|
|
20
|
+
#
|
|
21
|
+
# @param session [OpenAI::Models::Realtime::RealtimeTranslationSessionCreateRequest]
|
|
22
|
+
# Realtime translation session configuration. Translation sessions stream source
|
|
23
|
+
# audio in and translated audio plus transcript deltas out continuously.
|
|
24
|
+
#
|
|
25
|
+
# @param expires_after [OpenAI::Models::Realtime::RealtimeTranslationClientSecretCreateRequest::ExpiresAfter]
|
|
26
|
+
# Configuration for the client secret expiration. Expiration refers to the time
|
|
27
|
+
# after which a client secret will no longer be valid for creating sessions. The
|
|
28
|
+
# session itself may continue after that time once started. A secret can be used
|
|
29
|
+
# to create multiple sessions until it expires.
|
|
30
|
+
#
|
|
31
|
+
# @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
32
|
+
#
|
|
33
|
+
# @return [OpenAI::Models::Realtime::RealtimeTranslationClientSecretCreateResponse]
|
|
34
|
+
#
|
|
35
|
+
# @see OpenAI::Models::Realtime::Translations::ClientSecretCreateParams
|
|
36
|
+
def create(params)
|
|
37
|
+
parsed, options = OpenAI::Realtime::Translations::ClientSecretCreateParams.dump_request(params)
|
|
38
|
+
@client.request(
|
|
39
|
+
method: :post,
|
|
40
|
+
path: "realtime/translations/client_secrets",
|
|
41
|
+
body: parsed,
|
|
42
|
+
model: OpenAI::Realtime::RealtimeTranslationClientSecretCreateResponse,
|
|
43
|
+
security: {bearer_auth: true},
|
|
44
|
+
options: options
|
|
45
|
+
)
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
# @api private
|
|
49
|
+
#
|
|
50
|
+
# @param client [OpenAI::Client]
|
|
51
|
+
def initialize(client:)
|
|
52
|
+
@client = client
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module OpenAI
|
|
4
|
+
module Resources
|
|
5
|
+
class Realtime
|
|
6
|
+
class Translations
|
|
7
|
+
# @return [OpenAI::Resources::Realtime::Translations::ClientSecrets]
|
|
8
|
+
attr_reader :client_secrets
|
|
9
|
+
|
|
10
|
+
# @api private
|
|
11
|
+
#
|
|
12
|
+
# @param client [OpenAI::Client]
|
|
13
|
+
def initialize(client:)
|
|
14
|
+
@client = client
|
|
15
|
+
@client_secrets = OpenAI::Resources::Realtime::Translations::ClientSecrets.new(client: client)
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -9,6 +9,9 @@ module OpenAI
|
|
|
9
9
|
# @return [OpenAI::Resources::Realtime::Calls]
|
|
10
10
|
attr_reader :calls
|
|
11
11
|
|
|
12
|
+
# @return [OpenAI::Resources::Realtime::Translations]
|
|
13
|
+
attr_reader :translations
|
|
14
|
+
|
|
12
15
|
# @api private
|
|
13
16
|
#
|
|
14
17
|
# @param client [OpenAI::Client]
|
|
@@ -16,6 +19,7 @@ module OpenAI
|
|
|
16
19
|
@client = client
|
|
17
20
|
@client_secrets = OpenAI::Resources::Realtime::ClientSecrets.new(client: client)
|
|
18
21
|
@calls = OpenAI::Resources::Realtime::Calls.new(client: client)
|
|
22
|
+
@translations = OpenAI::Resources::Realtime::Translations.new(client: client)
|
|
19
23
|
end
|
|
20
24
|
end
|
|
21
25
|
end
|
data/lib/openai/version.rb
CHANGED
data/lib/openai.rb
CHANGED
|
@@ -163,6 +163,7 @@ require_relative "openai/models/graders/python_grader"
|
|
|
163
163
|
require_relative "openai/models/graders/text_similarity_grader"
|
|
164
164
|
require_relative "openai/models/fine_tuning/fine_tuning_job_wandb_integration_object"
|
|
165
165
|
require_relative "openai/models/realtime/realtime_session_create_request"
|
|
166
|
+
require_relative "openai/models/realtime/realtime_translation_client_secret_create_request"
|
|
166
167
|
require_relative "openai/models/responses/response_custom_tool_call"
|
|
167
168
|
require_relative "openai/models/responses/response_custom_tool_call_output"
|
|
168
169
|
require_relative "openai/models/responses/response_function_tool_call"
|
|
@@ -465,6 +466,9 @@ require_relative "openai/models/batch_request_counts"
|
|
|
465
466
|
require_relative "openai/models/batch_retrieve_params"
|
|
466
467
|
require_relative "openai/models/batch_usage"
|
|
467
468
|
require_relative "openai/models/beta/agent"
|
|
469
|
+
require_relative "openai/models/beta/agent_browser_authentication_cancel_param"
|
|
470
|
+
require_relative "openai/models/beta/agent_browser_authentication_submit_param"
|
|
471
|
+
require_relative "openai/models/beta/agent_browser_origin_access_param"
|
|
468
472
|
require_relative "openai/models/beta/agent_close_subagent_call_item"
|
|
469
473
|
require_relative "openai/models/beta/agent_command_execution_item"
|
|
470
474
|
require_relative "openai/models/beta/agent_content"
|
|
@@ -512,12 +516,14 @@ require_relative "openai/models/beta/agents/sessions/event_stream_params"
|
|
|
512
516
|
require_relative "openai/models/beta/agents/sessions/item_list_params"
|
|
513
517
|
require_relative "openai/models/beta/agents/sessions/session_artifact"
|
|
514
518
|
require_relative "openai/models/beta/agents/sessions/session_artifact_deleted"
|
|
519
|
+
require_relative "openai/models/beta/agents/sessions/session_trace"
|
|
515
520
|
require_relative "openai/models/beta/agents/sessions/subagent_list_params"
|
|
516
521
|
require_relative "openai/models/beta/agents/sessions/subagent_retrieve_params"
|
|
517
522
|
require_relative "openai/models/beta/agents/sessions/subagents/item_list_params"
|
|
518
523
|
require_relative "openai/models/beta/agents/sessions/subagents/turn_list_params"
|
|
519
524
|
require_relative "openai/models/beta/agents/sessions/subagents/turn_retrieve_params"
|
|
520
525
|
require_relative "openai/models/beta/agents/sessions/subagents/turns/item_list_params"
|
|
526
|
+
require_relative "openai/models/beta/agents/sessions/trace_list_params"
|
|
521
527
|
require_relative "openai/models/beta/agents/sessions/turn"
|
|
522
528
|
require_relative "openai/models/beta/agents/sessions/turn_list_params"
|
|
523
529
|
require_relative "openai/models/beta/agents/sessions/turn_retrieve_params"
|
|
@@ -1201,7 +1207,6 @@ require_relative "openai/models/realtime/realtime_transcription_session_create_r
|
|
|
1201
1207
|
require_relative "openai/models/realtime/realtime_transcription_session_create_response"
|
|
1202
1208
|
require_relative "openai/models/realtime/realtime_transcription_session_turn_detection"
|
|
1203
1209
|
require_relative "openai/models/realtime/realtime_translation_client_event"
|
|
1204
|
-
require_relative "openai/models/realtime/realtime_translation_client_secret_create_request"
|
|
1205
1210
|
require_relative "openai/models/realtime/realtime_translation_client_secret_create_response"
|
|
1206
1211
|
require_relative "openai/models/realtime/realtime_translation_input_audio_buffer_append_event"
|
|
1207
1212
|
require_relative "openai/models/realtime/realtime_translation_input_transcript_delta_event"
|
|
@@ -1244,6 +1249,7 @@ require_relative "openai/models/realtime/session_updated_event"
|
|
|
1244
1249
|
require_relative "openai/models/realtime/session_update_event"
|
|
1245
1250
|
require_relative "openai/models/realtime/transcription_session_update"
|
|
1246
1251
|
require_relative "openai/models/realtime/transcription_session_updated_event"
|
|
1252
|
+
require_relative "openai/models/realtime/translations/client_secret_create_params"
|
|
1247
1253
|
require_relative "openai/models/reasoning"
|
|
1248
1254
|
require_relative "openai/models/response_format_json_object"
|
|
1249
1255
|
require_relative "openai/models/response_format_json_schema"
|
|
@@ -1518,6 +1524,7 @@ require_relative "openai/resources/beta/agents/sessions/subagents"
|
|
|
1518
1524
|
require_relative "openai/resources/beta/agents/sessions/subagents/items"
|
|
1519
1525
|
require_relative "openai/resources/beta/agents/sessions/subagents/turns"
|
|
1520
1526
|
require_relative "openai/resources/beta/agents/sessions/subagents/turns/items"
|
|
1527
|
+
require_relative "openai/resources/beta/agents/sessions/traces"
|
|
1521
1528
|
require_relative "openai/resources/beta/agents/sessions/turns"
|
|
1522
1529
|
require_relative "openai/resources/beta/agents/vaults"
|
|
1523
1530
|
require_relative "openai/resources/beta/agents/vaults/credentials"
|
|
@@ -1567,6 +1574,8 @@ require_relative "openai/resources/moderations"
|
|
|
1567
1574
|
require_relative "openai/resources/realtime"
|
|
1568
1575
|
require_relative "openai/resources/realtime/calls"
|
|
1569
1576
|
require_relative "openai/resources/realtime/client_secrets"
|
|
1577
|
+
require_relative "openai/resources/realtime/translations"
|
|
1578
|
+
require_relative "openai/resources/realtime/translations/client_secrets"
|
|
1570
1579
|
require_relative "openai/resources/responses"
|
|
1571
1580
|
require_relative "openai/resources/responses/input_items"
|
|
1572
1581
|
require_relative "openai/resources/responses/input_tokens"
|
|
@@ -1596,5 +1605,7 @@ require_relative "openai/helpers/realtime"
|
|
|
1596
1605
|
require_relative "openai/helpers/responses_websocket"
|
|
1597
1606
|
require_relative "openai/helpers/live/websocket"
|
|
1598
1607
|
|
|
1608
|
+
require_relative "openai/helpers/beta/agents/creation_stream"
|
|
1599
1609
|
require_relative "openai/helpers/agents/session_stream"
|
|
1610
|
+
require_relative "openai/helpers/beta/agents/function_tool"
|
|
1600
1611
|
require_relative "openai/helpers/agents/message"
|
|
@@ -26,6 +26,16 @@ module OpenAI
|
|
|
26
26
|
def each(&block)
|
|
27
27
|
end
|
|
28
28
|
|
|
29
|
+
# @beta
|
|
30
|
+
sig { returns(OpenAI::Helpers::Beta::Agents::TurnResult) }
|
|
31
|
+
def get_final_result
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
# @beta
|
|
35
|
+
sig { returns(T.self_type) }
|
|
36
|
+
def with_result_collection
|
|
37
|
+
end
|
|
38
|
+
|
|
29
39
|
sig { void }
|
|
30
40
|
def close
|
|
31
41
|
end
|
|
@@ -47,12 +57,21 @@ module OpenAI
|
|
|
47
57
|
input: T.any(String, T::Array[OpenAI::Models::Beta::AgentSessionInputMessageParam::OrHash]),
|
|
48
58
|
tool_handlers: T::Hash[String, OpenAI::Helpers::Agents::ToolHandler],
|
|
49
59
|
idempotency_key: T.nilable(String),
|
|
60
|
+
output_type: T.nilable(T.class_of(OpenAI::Helpers::StructuredOutput::BaseModel)),
|
|
50
61
|
request_options: T.nilable(OpenAI::RequestOptions::OrHash),
|
|
51
62
|
block: T.nilable(T.proc.params(stream: OpenAI::Helpers::Agents::SessionStream).void)
|
|
52
63
|
)
|
|
53
64
|
.returns(OpenAI::Helpers::Agents::SessionStream)
|
|
54
65
|
end
|
|
55
|
-
def stream(
|
|
66
|
+
def stream(
|
|
67
|
+
session_id,
|
|
68
|
+
input:,
|
|
69
|
+
tool_handlers: {},
|
|
70
|
+
idempotency_key: nil,
|
|
71
|
+
output_type: nil,
|
|
72
|
+
request_options: {},
|
|
73
|
+
&block
|
|
74
|
+
)
|
|
56
75
|
end
|
|
57
76
|
end
|
|
58
77
|
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
module OpenAI
|
|
3
|
+
module Helpers
|
|
4
|
+
module Beta
|
|
5
|
+
module Agents
|
|
6
|
+
class ResultArtifacts
|
|
7
|
+
sig {
|
|
8
|
+
params(
|
|
9
|
+
artifacts: OpenAI::Resources::Beta::Agents::Sessions::Artifacts,
|
|
10
|
+
client: OpenAI::Client,
|
|
11
|
+
result: TurnResult
|
|
12
|
+
)
|
|
13
|
+
.void
|
|
14
|
+
}
|
|
15
|
+
def initialize(artifacts:, client:, result:)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
sig {
|
|
19
|
+
params(path: String, to: T.untyped, request_options: OpenAI::RequestOptions::OrHash).returns(
|
|
20
|
+
OpenAI::Models::Beta::Agents::Sessions::SessionArtifact
|
|
21
|
+
)
|
|
22
|
+
}
|
|
23
|
+
def download(path:, to:, request_options: {})
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
module OpenAI
|
|
3
|
+
module Helpers
|
|
4
|
+
module Beta
|
|
5
|
+
module Agents
|
|
6
|
+
class PreparedFiles
|
|
7
|
+
sig { returns(T::Array[OpenAI::Models::Beta::HostedEnvironmentFileParam::FileID]) }
|
|
8
|
+
attr_reader :files
|
|
9
|
+
sig { returns(T::Array[String]) }
|
|
10
|
+
attr_reader :upload_ids
|
|
11
|
+
sig { params(files: T::Array[T::Hash[Symbol, T.untyped]]).void }
|
|
12
|
+
def initialize(files)
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
class FilePreparationError < OpenAI::Errors::Error
|
|
17
|
+
sig { returns(PreparedFiles) }
|
|
18
|
+
attr_reader :prepared
|
|
19
|
+
sig { params(prepared: PreparedFiles).returns(T.attached_class) }
|
|
20
|
+
def self.new(prepared:)
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
# @api private
|
|
24
|
+
class FilePreparation
|
|
25
|
+
sig {
|
|
26
|
+
params(client: OpenAI::Client, environment_files: OpenAI::Resources::Beta::Agents::Environments::Files).void
|
|
27
|
+
}
|
|
28
|
+
def initialize(client:, environment_files:)
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
sig {
|
|
32
|
+
params(files: T::Hash[String, T.any(String, Pathname)], request_options: OpenAI::RequestOptions::OrHash)
|
|
33
|
+
.returns(PreparedFiles)
|
|
34
|
+
}
|
|
35
|
+
def prepare(files, request_options: {})
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
sig {
|
|
39
|
+
params(
|
|
40
|
+
directory: T.any(String, Pathname),
|
|
41
|
+
destination: String,
|
|
42
|
+
include: T::Array[String],
|
|
43
|
+
request_options: OpenAI::RequestOptions::OrHash
|
|
44
|
+
)
|
|
45
|
+
.returns(PreparedFiles)
|
|
46
|
+
}
|
|
47
|
+
def prepare_directory(directory, destination:, include:, request_options: {})
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
sig {
|
|
51
|
+
params(
|
|
52
|
+
environment_id: String,
|
|
53
|
+
file: T.any(String, Pathname),
|
|
54
|
+
path: String,
|
|
55
|
+
request_options: OpenAI::RequestOptions::OrHash
|
|
56
|
+
)
|
|
57
|
+
.returns(PreparedFiles)
|
|
58
|
+
}
|
|
59
|
+
def upload(environment_id, file:, path:, request_options: {})
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
end
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module OpenAI
|
|
4
|
+
module Helpers
|
|
5
|
+
module Beta
|
|
6
|
+
module Agents
|
|
7
|
+
class FunctionTool
|
|
8
|
+
sig { returns(String) }
|
|
9
|
+
attr_reader :name
|
|
10
|
+
|
|
11
|
+
sig do
|
|
12
|
+
params(
|
|
13
|
+
name: String,
|
|
14
|
+
arguments: T.class_of(OpenAI::BaseModel),
|
|
15
|
+
description: String,
|
|
16
|
+
handler: T.proc.params(arguments: T.untyped).returns(OpenAI::Helpers::Agents::ToolOutput)
|
|
17
|
+
)
|
|
18
|
+
.void
|
|
19
|
+
end
|
|
20
|
+
def initialize(name:, arguments:, description: "", &handler)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
sig { returns(OpenAI::Internal::AnyHash) }
|
|
24
|
+
def definition
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
sig { returns(T::Hash[String, OpenAI::Helpers::Agents::ToolHandler]) }
|
|
28
|
+
def handlers
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
sig {
|
|
32
|
+
params(arguments: T.any(String, OpenAI::Internal::AnyHash)).returns(OpenAI::Helpers::Agents::ToolOutput)
|
|
33
|
+
}
|
|
34
|
+
def call(arguments)
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module OpenAI
|
|
4
|
+
module Helpers
|
|
5
|
+
module Beta
|
|
6
|
+
module Agents
|
|
7
|
+
module ModelAdapter
|
|
8
|
+
sig { params(model: T.untyped, parameter: String).void }
|
|
9
|
+
def self.validate!(model, parameter:)
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
sig do
|
|
13
|
+
params(model: T.class_of(OpenAI::BaseModel), value: T.untyped, memoize: T::Boolean)
|
|
14
|
+
.returns(T.nilable(OpenAI::BaseModel))
|
|
15
|
+
end
|
|
16
|
+
def self.coerce(model, value, memoize: false)
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module OpenAI
|
|
4
|
+
module Helpers
|
|
5
|
+
module Beta
|
|
6
|
+
module Agents
|
|
7
|
+
class TurnResult
|
|
8
|
+
sig { returns(OpenAI::Models::Beta::Agents::Sessions::Turn) }
|
|
9
|
+
def turn
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
sig { returns(T::Array[OpenAI::Models::Beta::AgentSessionMessage]) }
|
|
13
|
+
def messages
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
sig { returns(String) }
|
|
17
|
+
def session_id
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
sig { returns(String) }
|
|
21
|
+
def turn_id
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
sig { returns(String) }
|
|
25
|
+
def output_text
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
sig { returns(T.untyped) }
|
|
29
|
+
def output_parsed
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
sig {
|
|
33
|
+
params(output_type: T.class_of(OpenAI::Helpers::StructuredOutput::BaseModel)).returns(ParsedTurnResult)
|
|
34
|
+
}
|
|
35
|
+
def parse(output_type:)
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
class ResultError < OpenAI::Errors::Error
|
|
40
|
+
sig { returns(Symbol) }
|
|
41
|
+
def reason
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
sig { returns(T.nilable(String)) }
|
|
45
|
+
def session_id
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
sig { returns(T.nilable(OpenAI::Models::Beta::Agents::Sessions::Turn)) }
|
|
49
|
+
def turn
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
sig { returns(T::Array[OpenAI::Models::Beta::AgentSessionMessage]) }
|
|
53
|
+
def messages
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
sig {
|
|
57
|
+
returns(
|
|
58
|
+
T::Array[T.any(OpenAI::Models::Beta::AgentSession::RequiredAction::Variants, OpenAI::Internal::AnyHash)]
|
|
59
|
+
)
|
|
60
|
+
}
|
|
61
|
+
def required_actions
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
sig { returns(T.nilable(String)) }
|
|
65
|
+
def turn_id
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
# @api private
|
|
70
|
+
class ResultCollector
|
|
71
|
+
sig { params(session_id: T.nilable(String), handler_names: T::Array[String]).void }
|
|
72
|
+
def initialize(session_id: nil, handler_names: [])
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
sig { void }
|
|
76
|
+
def enable
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
sig {
|
|
80
|
+
params(event: T.any(OpenAI::Models::Beta::AgentSessionEvent::Variants, OpenAI::Internal::AnyHash)).void
|
|
81
|
+
}
|
|
82
|
+
def observe(event)
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
86
|
+
def stopped?
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
sig { params(error: StandardError).void }
|
|
90
|
+
def observe_error(error)
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
sig { returns(TurnResult) }
|
|
94
|
+
def result
|
|
95
|
+
end
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
class ParsedTurnResult < TurnResult
|
|
99
|
+
sig { returns(TurnResult) }
|
|
100
|
+
attr_reader :raw_result
|
|
101
|
+
|
|
102
|
+
sig { returns(T.untyped) }
|
|
103
|
+
attr_reader :output_parsed
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
class OutputParseError < OpenAI::Errors::Error
|
|
107
|
+
sig { returns(TurnResult) }
|
|
108
|
+
attr_reader :raw_result
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
# @api private
|
|
112
|
+
class OutputParser
|
|
113
|
+
sig { params(model: T.class_of(OpenAI::Helpers::StructuredOutput::BaseModel)).void }
|
|
114
|
+
def initialize(model)
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
sig { params(params: OpenAI::Internal::AnyHash).void }
|
|
118
|
+
def prepare_request(params)
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
sig { params(result: TurnResult).returns(ParsedTurnResult) }
|
|
122
|
+
def parse(result)
|
|
123
|
+
end
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
class CreationStream < OpenAI::Internal::Stream
|
|
127
|
+
Message = type_member(:in) { {fixed: OpenAI::Internal::Util::ServerSentEvent} }
|
|
128
|
+
Elem = type_member(:out) { {fixed: OpenAI::Models::Beta::AgentSessionEvent::Variants} }
|
|
129
|
+
|
|
130
|
+
sig { returns(TurnResult) }
|
|
131
|
+
def get_final_result
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
sig { returns(T.self_type) }
|
|
135
|
+
def with_result_collection
|
|
136
|
+
end
|
|
137
|
+
|
|
138
|
+
# @api private
|
|
139
|
+
sig { params(parser: T.nilable(OutputParser)).returns(T.self_type) }
|
|
140
|
+
def configure_output_parser(parser)
|
|
141
|
+
end
|
|
142
|
+
end
|
|
143
|
+
end
|
|
144
|
+
end
|
|
145
|
+
end
|
|
146
|
+
end
|
|
@@ -409,6 +409,18 @@ module OpenAI
|
|
|
409
409
|
)
|
|
410
410
|
end
|
|
411
411
|
|
|
412
|
+
# @api private
|
|
413
|
+
sig {
|
|
414
|
+
params(
|
|
415
|
+
req: T.untyped,
|
|
416
|
+
on_response: T.nilable(T.proc.returns(T.untyped)),
|
|
417
|
+
blk: T.proc.params(chunk: String).returns(T.untyped)
|
|
418
|
+
)
|
|
419
|
+
.void
|
|
420
|
+
}
|
|
421
|
+
def request_streaming_body(req, on_response = nil, &blk)
|
|
422
|
+
end
|
|
423
|
+
|
|
412
424
|
# @api private
|
|
413
425
|
sig do
|
|
414
426
|
params(
|
|
@@ -51,7 +51,7 @@ module OpenAI
|
|
|
51
51
|
|
|
52
52
|
# @api private
|
|
53
53
|
sig do
|
|
54
|
-
returns(
|
|
54
|
+
params(state: T.nilable(OpenAI::Internal::Type::Converter::CoerceState)).returns(
|
|
55
55
|
T::Hash[
|
|
56
56
|
Symbol,
|
|
57
57
|
T.all(
|
|
@@ -61,7 +61,7 @@ module OpenAI
|
|
|
61
61
|
]
|
|
62
62
|
)
|
|
63
63
|
end
|
|
64
|
-
def fields
|
|
64
|
+
def fields(state: nil)
|
|
65
65
|
end
|
|
66
66
|
|
|
67
67
|
# @api private
|
|
@@ -22,7 +22,8 @@ module OpenAI
|
|
|
22
22
|
maybe: Integer
|
|
23
23
|
},
|
|
24
24
|
error: T.nilable(StandardError),
|
|
25
|
-
branched: Integer
|
|
25
|
+
branched: Integer,
|
|
26
|
+
memo: T.nilable(T::Hash[T.untyped, T.untyped])
|
|
26
27
|
}
|
|
27
28
|
end
|
|
28
29
|
|
|
@@ -123,11 +124,28 @@ module OpenAI
|
|
|
123
124
|
|
|
124
125
|
# @api private
|
|
125
126
|
sig do
|
|
126
|
-
params(translate_names: T::Boolean, request_only: T::Boolean).returns(
|
|
127
|
+
params(translate_names: T::Boolean, request_only: T::Boolean, memoize: T::Boolean).returns(
|
|
127
128
|
OpenAI::Internal::Type::Converter::CoerceState
|
|
128
129
|
)
|
|
129
130
|
end
|
|
130
|
-
def self.new_coerce_state(translate_names: true, request_only: false)
|
|
131
|
+
def self.new_coerce_state(translate_names: true, request_only: false, memoize: false)
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
# @api private
|
|
135
|
+
sig {
|
|
136
|
+
params(type_fn: T.proc.returns(T.untyped), state: T.nilable(OpenAI::Internal::Type::Converter::CoerceState))
|
|
137
|
+
.returns(T.untyped)
|
|
138
|
+
}
|
|
139
|
+
def self.resolve_type(type_fn, state: nil)
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
# @api private
|
|
143
|
+
sig {
|
|
144
|
+
params(target: T.untyped, value: T.untyped, state: OpenAI::Internal::Type::Converter::CoerceState).returns(
|
|
145
|
+
T.untyped
|
|
146
|
+
)
|
|
147
|
+
}
|
|
148
|
+
def self.coerce_cached(target, value, state:)
|
|
131
149
|
end
|
|
132
150
|
|
|
133
151
|
# @api private
|
|
@@ -65,8 +65,12 @@ module OpenAI
|
|
|
65
65
|
end
|
|
66
66
|
|
|
67
67
|
# @api private
|
|
68
|
-
sig {
|
|
69
|
-
|
|
68
|
+
sig {
|
|
69
|
+
params(value: T.anything, state: T.nilable(OpenAI::Internal::Type::Converter::CoerceState)).returns(
|
|
70
|
+
T.nilable(T.anything)
|
|
71
|
+
)
|
|
72
|
+
}
|
|
73
|
+
private def resolve_variant(value, state: nil)
|
|
70
74
|
end
|
|
71
75
|
|
|
72
76
|
sig { params(other: T.anything).returns(T::Boolean) }
|
|
@@ -106,7 +106,8 @@ module OpenAI
|
|
|
106
106
|
OpenAI::Beta::PersistedAgentTool::ToolSearch::OrHash,
|
|
107
107
|
OpenAI::Beta::PersistedAgentTool::ProgrammaticToolCalling::OrHash,
|
|
108
108
|
OpenAI::Beta::PersistedAgentTool::Mcp::OrHash,
|
|
109
|
-
OpenAI::Beta::PersistedAgentTool::WebSearch::OrHash
|
|
109
|
+
OpenAI::Beta::PersistedAgentTool::WebSearch::OrHash,
|
|
110
|
+
OpenAI::Beta::PersistedAgentTool::ComputerUse::OrHash
|
|
110
111
|
)
|
|
111
112
|
],
|
|
112
113
|
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module OpenAI
|
|
4
|
+
module Models
|
|
5
|
+
|
|
6
|
+
module Beta
|
|
7
|
+
|
|
8
|
+
class AgentBrowserAuthenticationCancelParam < OpenAI::Internal::Type::BaseModel
|
|
9
|
+
|
|
10
|
+
OrHash = T.type_alias do
|
|
11
|
+
T.any(
|
|
12
|
+
OpenAI::Beta::AgentBrowserAuthenticationCancelParam,
|
|
13
|
+
OpenAI::Internal::AnyHash
|
|
14
|
+
)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
sig { returns(Symbol) }
|
|
18
|
+
attr_accessor :action
|
|
19
|
+
|
|
20
|
+
sig { returns(Symbol) }
|
|
21
|
+
attr_accessor :type
|
|
22
|
+
|
|
23
|
+
sig do
|
|
24
|
+
params(
|
|
25
|
+
|
|
26
|
+
action: Symbol,
|
|
27
|
+
|
|
28
|
+
type: Symbol
|
|
29
|
+
)
|
|
30
|
+
.returns(T.attached_class)
|
|
31
|
+
end
|
|
32
|
+
def self.new(
|
|
33
|
+
|
|
34
|
+
action: :cancel,
|
|
35
|
+
|
|
36
|
+
type: :browser_authentication
|
|
37
|
+
)
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
sig do
|
|
41
|
+
override.returns(
|
|
42
|
+
{action: Symbol, type: Symbol}
|
|
43
|
+
)
|
|
44
|
+
end
|
|
45
|
+
def to_hash
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
end
|
|
53
|
+
end
|