activeagent 1.0.0.rc1 → 1.0.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 -1
- data/lib/active_agent/providers/_base_provider.rb +92 -82
- data/lib/active_agent/providers/anthropic/_types.rb +2 -2
- data/lib/active_agent/providers/anthropic/request.rb +135 -81
- data/lib/active_agent/providers/anthropic/transforms.rb +353 -0
- data/lib/active_agent/providers/anthropic_provider.rb +96 -53
- data/lib/active_agent/providers/common/messages/_types.rb +37 -1
- data/lib/active_agent/providers/common/responses/base.rb +118 -70
- data/lib/active_agent/providers/common/usage.rb +385 -0
- data/lib/active_agent/providers/concerns/instrumentation.rb +263 -0
- data/lib/active_agent/providers/log_subscriber.rb +64 -246
- data/lib/active_agent/providers/mock_provider.rb +23 -23
- data/lib/active_agent/providers/ollama/chat/request.rb +214 -35
- data/lib/active_agent/providers/ollama/chat/transforms.rb +135 -0
- data/lib/active_agent/providers/ollama/embedding/request.rb +160 -47
- data/lib/active_agent/providers/ollama/embedding/transforms.rb +160 -0
- data/lib/active_agent/providers/ollama_provider.rb +0 -1
- data/lib/active_agent/providers/open_ai/_base.rb +3 -2
- data/lib/active_agent/providers/open_ai/chat/_types.rb +13 -1
- data/lib/active_agent/providers/open_ai/chat/request.rb +132 -186
- data/lib/active_agent/providers/open_ai/chat/transforms.rb +364 -0
- data/lib/active_agent/providers/open_ai/chat_provider.rb +57 -36
- data/lib/active_agent/providers/open_ai/embedding/_types.rb +13 -2
- data/lib/active_agent/providers/open_ai/embedding/request.rb +38 -70
- data/lib/active_agent/providers/open_ai/embedding/transforms.rb +88 -0
- data/lib/active_agent/providers/open_ai/responses/_types.rb +1 -7
- data/lib/active_agent/providers/open_ai/responses/request.rb +100 -134
- data/lib/active_agent/providers/open_ai/responses/transforms.rb +228 -0
- data/lib/active_agent/providers/open_ai/responses_provider.rb +77 -30
- data/lib/active_agent/providers/open_ai_provider.rb +0 -3
- data/lib/active_agent/providers/open_router/_types.rb +27 -1
- data/lib/active_agent/providers/open_router/options.rb +49 -1
- data/lib/active_agent/providers/open_router/request.rb +232 -66
- data/lib/active_agent/providers/open_router/requests/_types.rb +0 -1
- data/lib/active_agent/providers/open_router/requests/messages/_types.rb +37 -40
- data/lib/active_agent/providers/open_router/requests/messages/content/file.rb +19 -3
- data/lib/active_agent/providers/open_router/requests/messages/content/files/details.rb +15 -4
- data/lib/active_agent/providers/open_router/requests/plugin.rb +19 -3
- data/lib/active_agent/providers/open_router/requests/plugins/pdf_config.rb +30 -8
- data/lib/active_agent/providers/open_router/requests/prediction.rb +17 -0
- data/lib/active_agent/providers/open_router/requests/provider_preferences/max_price.rb +41 -7
- data/lib/active_agent/providers/open_router/requests/provider_preferences.rb +60 -19
- data/lib/active_agent/providers/open_router/requests/response_format.rb +30 -2
- data/lib/active_agent/providers/open_router/transforms.rb +134 -0
- data/lib/active_agent/providers/open_router_provider.rb +9 -0
- data/lib/active_agent/version.rb +1 -1
- metadata +15 -159
- data/lib/active_agent/generation_provider/open_router/types.rb +0 -505
- data/lib/active_agent/generation_provider/xai_provider.rb +0 -144
- data/lib/active_agent/providers/anthropic/requests/_types.rb +0 -190
- data/lib/active_agent/providers/anthropic/requests/container_params.rb +0 -19
- data/lib/active_agent/providers/anthropic/requests/content/base.rb +0 -21
- data/lib/active_agent/providers/anthropic/requests/content/sources/base.rb +0 -22
- data/lib/active_agent/providers/anthropic/requests/context_management_config.rb +0 -18
- data/lib/active_agent/providers/anthropic/requests/messages/_types.rb +0 -189
- data/lib/active_agent/providers/anthropic/requests/messages/assistant.rb +0 -23
- data/lib/active_agent/providers/anthropic/requests/messages/base.rb +0 -63
- data/lib/active_agent/providers/anthropic/requests/messages/content/_types.rb +0 -143
- data/lib/active_agent/providers/anthropic/requests/messages/content/base.rb +0 -21
- data/lib/active_agent/providers/anthropic/requests/messages/content/document.rb +0 -26
- data/lib/active_agent/providers/anthropic/requests/messages/content/image.rb +0 -23
- data/lib/active_agent/providers/anthropic/requests/messages/content/redacted_thinking.rb +0 -21
- data/lib/active_agent/providers/anthropic/requests/messages/content/search_result.rb +0 -27
- data/lib/active_agent/providers/anthropic/requests/messages/content/sources/_types.rb +0 -171
- data/lib/active_agent/providers/anthropic/requests/messages/content/sources/base.rb +0 -22
- data/lib/active_agent/providers/anthropic/requests/messages/content/sources/document_base64.rb +0 -25
- data/lib/active_agent/providers/anthropic/requests/messages/content/sources/document_file.rb +0 -23
- data/lib/active_agent/providers/anthropic/requests/messages/content/sources/document_text.rb +0 -25
- data/lib/active_agent/providers/anthropic/requests/messages/content/sources/document_url.rb +0 -23
- data/lib/active_agent/providers/anthropic/requests/messages/content/sources/image_base64.rb +0 -27
- data/lib/active_agent/providers/anthropic/requests/messages/content/sources/image_file.rb +0 -23
- data/lib/active_agent/providers/anthropic/requests/messages/content/sources/image_url.rb +0 -23
- data/lib/active_agent/providers/anthropic/requests/messages/content/text.rb +0 -22
- data/lib/active_agent/providers/anthropic/requests/messages/content/thinking.rb +0 -23
- data/lib/active_agent/providers/anthropic/requests/messages/content/tool_result.rb +0 -24
- data/lib/active_agent/providers/anthropic/requests/messages/content/tool_use.rb +0 -28
- data/lib/active_agent/providers/anthropic/requests/messages/user.rb +0 -21
- data/lib/active_agent/providers/anthropic/requests/metadata.rb +0 -18
- data/lib/active_agent/providers/anthropic/requests/response_format.rb +0 -22
- data/lib/active_agent/providers/anthropic/requests/thinking_config/_types.rb +0 -60
- data/lib/active_agent/providers/anthropic/requests/thinking_config/base.rb +0 -20
- data/lib/active_agent/providers/anthropic/requests/thinking_config/disabled.rb +0 -16
- data/lib/active_agent/providers/anthropic/requests/thinking_config/enabled.rb +0 -20
- data/lib/active_agent/providers/anthropic/requests/tool_choice/_types.rb +0 -78
- data/lib/active_agent/providers/anthropic/requests/tool_choice/any.rb +0 -17
- data/lib/active_agent/providers/anthropic/requests/tool_choice/auto.rb +0 -17
- data/lib/active_agent/providers/anthropic/requests/tool_choice/base.rb +0 -20
- data/lib/active_agent/providers/anthropic/requests/tool_choice/none.rb +0 -16
- data/lib/active_agent/providers/anthropic/requests/tool_choice/tool.rb +0 -20
- data/lib/active_agent/providers/ollama/chat/requests/_types.rb +0 -3
- data/lib/active_agent/providers/ollama/chat/requests/messages/_types.rb +0 -116
- data/lib/active_agent/providers/ollama/chat/requests/messages/assistant.rb +0 -19
- data/lib/active_agent/providers/ollama/chat/requests/messages/user.rb +0 -19
- data/lib/active_agent/providers/ollama/embedding/requests/_types.rb +0 -83
- data/lib/active_agent/providers/ollama/embedding/requests/options.rb +0 -104
- data/lib/active_agent/providers/open_ai/chat/requests/_types.rb +0 -229
- data/lib/active_agent/providers/open_ai/chat/requests/audio.rb +0 -24
- data/lib/active_agent/providers/open_ai/chat/requests/messages/_types.rb +0 -123
- data/lib/active_agent/providers/open_ai/chat/requests/messages/assistant.rb +0 -42
- data/lib/active_agent/providers/open_ai/chat/requests/messages/base.rb +0 -78
- data/lib/active_agent/providers/open_ai/chat/requests/messages/content/_types.rb +0 -133
- data/lib/active_agent/providers/open_ai/chat/requests/messages/content/audio.rb +0 -35
- data/lib/active_agent/providers/open_ai/chat/requests/messages/content/base.rb +0 -24
- data/lib/active_agent/providers/open_ai/chat/requests/messages/content/file.rb +0 -26
- data/lib/active_agent/providers/open_ai/chat/requests/messages/content/files/_types.rb +0 -60
- data/lib/active_agent/providers/open_ai/chat/requests/messages/content/files/details.rb +0 -41
- data/lib/active_agent/providers/open_ai/chat/requests/messages/content/image.rb +0 -37
- data/lib/active_agent/providers/open_ai/chat/requests/messages/content/refusal.rb +0 -25
- data/lib/active_agent/providers/open_ai/chat/requests/messages/content/text.rb +0 -25
- data/lib/active_agent/providers/open_ai/chat/requests/messages/developer.rb +0 -25
- data/lib/active_agent/providers/open_ai/chat/requests/messages/function.rb +0 -25
- data/lib/active_agent/providers/open_ai/chat/requests/messages/system.rb +0 -25
- data/lib/active_agent/providers/open_ai/chat/requests/messages/tool.rb +0 -26
- data/lib/active_agent/providers/open_ai/chat/requests/messages/user.rb +0 -32
- data/lib/active_agent/providers/open_ai/chat/requests/prediction.rb +0 -46
- data/lib/active_agent/providers/open_ai/chat/requests/response_format.rb +0 -53
- data/lib/active_agent/providers/open_ai/chat/requests/stream_options.rb +0 -24
- data/lib/active_agent/providers/open_ai/chat/requests/tool_choice.rb +0 -26
- data/lib/active_agent/providers/open_ai/chat/requests/tools/_types.rb +0 -5
- data/lib/active_agent/providers/open_ai/chat/requests/tools/base.rb +0 -22
- data/lib/active_agent/providers/open_ai/chat/requests/tools/custom_tool.rb +0 -41
- data/lib/active_agent/providers/open_ai/chat/requests/tools/function_tool.rb +0 -51
- data/lib/active_agent/providers/open_ai/chat/requests/web_search_options.rb +0 -45
- data/lib/active_agent/providers/open_ai/embedding/requests/_types.rb +0 -49
- data/lib/active_agent/providers/open_ai/responses/requests/_types.rb +0 -231
- data/lib/active_agent/providers/open_ai/responses/requests/conversation.rb +0 -23
- data/lib/active_agent/providers/open_ai/responses/requests/inputs/_types.rb +0 -264
- data/lib/active_agent/providers/open_ai/responses/requests/inputs/assistant_message.rb +0 -22
- data/lib/active_agent/providers/open_ai/responses/requests/inputs/base.rb +0 -89
- data/lib/active_agent/providers/open_ai/responses/requests/inputs/code_interpreter_tool_call.rb +0 -30
- data/lib/active_agent/providers/open_ai/responses/requests/inputs/computer_tool_call.rb +0 -28
- data/lib/active_agent/providers/open_ai/responses/requests/inputs/computer_tool_call_output.rb +0 -33
- data/lib/active_agent/providers/open_ai/responses/requests/inputs/content/_types.rb +0 -207
- data/lib/active_agent/providers/open_ai/responses/requests/inputs/content/base.rb +0 -22
- data/lib/active_agent/providers/open_ai/responses/requests/inputs/content/input_audio.rb +0 -26
- data/lib/active_agent/providers/open_ai/responses/requests/inputs/content/input_file.rb +0 -28
- data/lib/active_agent/providers/open_ai/responses/requests/inputs/content/input_image.rb +0 -28
- data/lib/active_agent/providers/open_ai/responses/requests/inputs/content/input_text.rb +0 -25
- data/lib/active_agent/providers/open_ai/responses/requests/inputs/custom_tool_call.rb +0 -28
- data/lib/active_agent/providers/open_ai/responses/requests/inputs/custom_tool_call_output.rb +0 -27
- data/lib/active_agent/providers/open_ai/responses/requests/inputs/developer_message.rb +0 -20
- data/lib/active_agent/providers/open_ai/responses/requests/inputs/file_search_tool_call.rb +0 -25
- data/lib/active_agent/providers/open_ai/responses/requests/inputs/function_call_output.rb +0 -32
- data/lib/active_agent/providers/open_ai/responses/requests/inputs/function_tool_call.rb +0 -28
- data/lib/active_agent/providers/open_ai/responses/requests/inputs/image_gen_tool_call.rb +0 -27
- data/lib/active_agent/providers/open_ai/responses/requests/inputs/input_message.rb +0 -31
- data/lib/active_agent/providers/open_ai/responses/requests/inputs/item_reference.rb +0 -23
- data/lib/active_agent/providers/open_ai/responses/requests/inputs/local_shell_tool_call.rb +0 -26
- data/lib/active_agent/providers/open_ai/responses/requests/inputs/local_shell_tool_call_output.rb +0 -33
- data/lib/active_agent/providers/open_ai/responses/requests/inputs/mcp_approval_request.rb +0 -30
- data/lib/active_agent/providers/open_ai/responses/requests/inputs/mcp_approval_response.rb +0 -28
- data/lib/active_agent/providers/open_ai/responses/requests/inputs/mcp_list_tools.rb +0 -29
- data/lib/active_agent/providers/open_ai/responses/requests/inputs/mcp_tool_call.rb +0 -35
- data/lib/active_agent/providers/open_ai/responses/requests/inputs/output_message.rb +0 -35
- data/lib/active_agent/providers/open_ai/responses/requests/inputs/reasoning.rb +0 -33
- data/lib/active_agent/providers/open_ai/responses/requests/inputs/system_message.rb +0 -20
- data/lib/active_agent/providers/open_ai/responses/requests/inputs/tool_call_base.rb +0 -27
- data/lib/active_agent/providers/open_ai/responses/requests/inputs/tool_message.rb +0 -23
- data/lib/active_agent/providers/open_ai/responses/requests/inputs/user_message.rb +0 -20
- data/lib/active_agent/providers/open_ai/responses/requests/inputs/web_search_tool_call.rb +0 -24
- data/lib/active_agent/providers/open_ai/responses/requests/prompt_reference.rb +0 -23
- data/lib/active_agent/providers/open_ai/responses/requests/reasoning.rb +0 -23
- data/lib/active_agent/providers/open_ai/responses/requests/stream_options.rb +0 -20
- data/lib/active_agent/providers/open_ai/responses/requests/text/_types.rb +0 -89
- data/lib/active_agent/providers/open_ai/responses/requests/text/base.rb +0 -22
- data/lib/active_agent/providers/open_ai/responses/requests/text/json_object.rb +0 -20
- data/lib/active_agent/providers/open_ai/responses/requests/text/json_schema.rb +0 -48
- data/lib/active_agent/providers/open_ai/responses/requests/text/plain.rb +0 -20
- data/lib/active_agent/providers/open_ai/responses/requests/text.rb +0 -41
- data/lib/active_agent/providers/open_ai/responses/requests/tool_choice.rb +0 -26
- data/lib/active_agent/providers/open_ai/responses/requests/tools/_types.rb +0 -112
- data/lib/active_agent/providers/open_ai/responses/requests/tools/base.rb +0 -25
- data/lib/active_agent/providers/open_ai/responses/requests/tools/code_interpreter_tool.rb +0 -23
- data/lib/active_agent/providers/open_ai/responses/requests/tools/computer_tool.rb +0 -27
- data/lib/active_agent/providers/open_ai/responses/requests/tools/custom_tool.rb +0 -28
- data/lib/active_agent/providers/open_ai/responses/requests/tools/file_search_tool.rb +0 -27
- data/lib/active_agent/providers/open_ai/responses/requests/tools/function_tool.rb +0 -29
- data/lib/active_agent/providers/open_ai/responses/requests/tools/image_generation_tool.rb +0 -37
- data/lib/active_agent/providers/open_ai/responses/requests/tools/local_shell_tool.rb +0 -21
- data/lib/active_agent/providers/open_ai/responses/requests/tools/mcp_tool.rb +0 -41
- data/lib/active_agent/providers/open_ai/responses/requests/tools/web_search_preview_tool.rb +0 -24
- data/lib/active_agent/providers/open_ai/responses/requests/tools/web_search_tool.rb +0 -25
- data/lib/active_agent/providers/open_ai/schema.yml +0 -65937
- data/lib/active_agent/providers/open_router/requests/message.rb +0 -1
- data/lib/active_agent/providers/open_router/requests/messages/assistant.rb +0 -20
- data/lib/active_agent/providers/open_router/requests/messages/user.rb +0 -30
|
@@ -7,44 +7,85 @@ module ActiveAgent
|
|
|
7
7
|
module OpenRouter
|
|
8
8
|
module Requests
|
|
9
9
|
# Provider preferences for routing requests to specific providers
|
|
10
|
-
#
|
|
10
|
+
#
|
|
11
|
+
# Controls how OpenRouter selects and routes requests to underlying model
|
|
12
|
+
# providers. Enables filtering by parameters, cost constraints, privacy
|
|
13
|
+
# settings, and provider-specific preferences.
|
|
14
|
+
#
|
|
15
|
+
# @example Basic provider routing
|
|
16
|
+
# prefs = ProviderPreferences.new(
|
|
17
|
+
# require_parameters: true,
|
|
18
|
+
# allow_fallbacks: false
|
|
19
|
+
# )
|
|
20
|
+
#
|
|
21
|
+
# @example Privacy-focused routing
|
|
22
|
+
# prefs = ProviderPreferences.new(
|
|
23
|
+
# data_collection: 'deny',
|
|
24
|
+
# zdr: true
|
|
25
|
+
# )
|
|
26
|
+
#
|
|
27
|
+
# @example Cost-optimized routing
|
|
28
|
+
# prefs = ProviderPreferences.new(
|
|
29
|
+
# sort: 'price',
|
|
30
|
+
# max_price: { prompt: 0.01, completion: 0.03 }
|
|
31
|
+
# )
|
|
32
|
+
#
|
|
33
|
+
# @example Provider ordering
|
|
34
|
+
# prefs = ProviderPreferences.new(
|
|
35
|
+
# order: ['OpenAI', 'Anthropic'],
|
|
36
|
+
# ignore: ['Together']
|
|
37
|
+
# )
|
|
38
|
+
#
|
|
39
|
+
# @see https://openrouter.ai/docs/provider-routing OpenRouter Provider Routing
|
|
40
|
+
# @see MaxPrice
|
|
11
41
|
class ProviderPreferences < Common::BaseModel
|
|
12
|
-
#
|
|
13
|
-
#
|
|
14
|
-
#
|
|
42
|
+
# @!attribute allow_fallbacks
|
|
43
|
+
# @return [Boolean, nil] whether to allow backup providers when primary is unavailable
|
|
44
|
+
# - true: (default) use next best provider when primary unavailable
|
|
45
|
+
# - false: only use primary/custom provider, return error if unavailable
|
|
15
46
|
attribute :allow_fallbacks, :boolean
|
|
16
47
|
|
|
17
|
-
#
|
|
18
|
-
#
|
|
48
|
+
# @!attribute require_parameters
|
|
49
|
+
# @return [Boolean, nil] whether to filter to providers supporting all parameters
|
|
50
|
+
# - true: only use providers that support all provided parameters
|
|
51
|
+
# - false: providers receive only the parameters they support
|
|
19
52
|
attribute :require_parameters, :boolean
|
|
20
53
|
|
|
21
|
-
#
|
|
22
|
-
#
|
|
23
|
-
#
|
|
54
|
+
# @!attribute data_collection
|
|
55
|
+
# @return [String, nil] data collection preference
|
|
56
|
+
# - 'allow': (default) allow providers which store/train on user data
|
|
57
|
+
# - 'deny': only use providers that don't collect user data
|
|
24
58
|
attribute :data_collection, :string
|
|
25
59
|
|
|
26
|
-
#
|
|
60
|
+
# @!attribute zdr
|
|
61
|
+
# @return [Boolean, nil] zero data retention mode (stricter privacy)
|
|
27
62
|
attribute :zdr, :boolean
|
|
28
63
|
|
|
29
|
-
#
|
|
64
|
+
# @!attribute order
|
|
65
|
+
# @return [Array<String>] ordered list of provider slugs to try in sequence
|
|
30
66
|
attribute :order, default: -> { [] }
|
|
31
67
|
|
|
32
|
-
#
|
|
68
|
+
# @!attribute only
|
|
69
|
+
# @return [Array<String>] allowlist of provider slugs (merged with account settings)
|
|
33
70
|
attribute :only, default: -> { [] }
|
|
34
71
|
|
|
35
|
-
#
|
|
72
|
+
# @!attribute ignore
|
|
73
|
+
# @return [Array<String>] blocklist of provider slugs (merged with account settings)
|
|
36
74
|
attribute :ignore, default: -> { [] }
|
|
37
75
|
|
|
38
|
-
#
|
|
39
|
-
#
|
|
76
|
+
# @!attribute quantizations
|
|
77
|
+
# @return [Array<String>] quantization levels to filter providers by
|
|
78
|
+
# Options: int4, int8, fp4, fp6, fp8, fp16, bf16, fp32, unknown
|
|
40
79
|
attribute :quantizations, default: -> { [] }
|
|
41
80
|
|
|
42
|
-
#
|
|
43
|
-
#
|
|
44
|
-
#
|
|
81
|
+
# @!attribute sort
|
|
82
|
+
# @return [String, nil] sorting strategy when order not specified
|
|
83
|
+
# Options: price, throughput, latency
|
|
84
|
+
# Note: disables load balancing when set
|
|
45
85
|
attribute :sort, :string
|
|
46
86
|
|
|
47
|
-
#
|
|
87
|
+
# @!attribute max_price
|
|
88
|
+
# @return [MaxPrice, nil] maximum price constraints per token/operation
|
|
48
89
|
attribute :max_price, MaxPriceType.new
|
|
49
90
|
|
|
50
91
|
# Validations matching the schema
|
|
@@ -4,11 +4,39 @@ module ActiveAgent
|
|
|
4
4
|
module Providers
|
|
5
5
|
module OpenRouter
|
|
6
6
|
module Requests
|
|
7
|
+
# Response format configuration for structured output
|
|
8
|
+
#
|
|
9
|
+
# Enables JSON-formatted responses using OpenAI's structured output format.
|
|
10
|
+
# When using structured output, OpenRouter automatically sets
|
|
11
|
+
# provider.require_parameters=true to route to compatible models.
|
|
12
|
+
#
|
|
13
|
+
# @example JSON object format
|
|
14
|
+
# format = ResponseFormat.new(type: 'json_object')
|
|
15
|
+
#
|
|
16
|
+
# @example JSON schema format
|
|
17
|
+
# format = ResponseFormat.new(
|
|
18
|
+
# type: 'json_schema',
|
|
19
|
+
# json_schema: {
|
|
20
|
+
# name: 'user_profile',
|
|
21
|
+
# description: 'A user profile',
|
|
22
|
+
# schema: { type: 'object', properties: { name: { type: 'string' } } },
|
|
23
|
+
# strict: true
|
|
24
|
+
# }
|
|
25
|
+
# )
|
|
26
|
+
#
|
|
27
|
+
# @see https://openrouter.ai/docs/structured-outputs OpenRouter Structured Outputs
|
|
28
|
+
# @see https://platform.openai.com/docs/guides/structured-outputs OpenAI Structured Outputs
|
|
7
29
|
class ResponseFormat < Common::BaseModel
|
|
8
|
-
#
|
|
30
|
+
# @!attribute type
|
|
31
|
+
# @return [String] response format type ('json_object' or 'json_schema')
|
|
9
32
|
attribute :type, :string
|
|
10
33
|
|
|
11
|
-
#
|
|
34
|
+
# @!attribute json_schema
|
|
35
|
+
# @return [Hash, nil] JSON schema configuration (required when type is 'json_schema')
|
|
36
|
+
# @option json_schema [String] :name schema name (max 64 chars, alphanumeric/underscore/dash)
|
|
37
|
+
# @option json_schema [String] :description schema description
|
|
38
|
+
# @option json_schema [Hash] :schema JSON schema definition
|
|
39
|
+
# @option json_schema [Boolean] :strict whether to enforce strict schema adherence
|
|
12
40
|
attribute :json_schema # Hash with name, description, schema, strict
|
|
13
41
|
|
|
14
42
|
validates :type, inclusion: { in: %w[json_object json_schema] }, allow_nil: true
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "active_support/core_ext/hash/keys"
|
|
4
|
+
require_relative "../open_ai/chat/transforms"
|
|
5
|
+
|
|
6
|
+
module ActiveAgent
|
|
7
|
+
module Providers
|
|
8
|
+
module OpenRouter
|
|
9
|
+
# Provides transformation methods for normalizing OpenRouter parameters
|
|
10
|
+
# to work with OpenAI gem's native format plus OpenRouter extensions
|
|
11
|
+
#
|
|
12
|
+
# Leverages OpenAI::Chat::Transforms for base message normalization while
|
|
13
|
+
# adding handling for OpenRouter-specific parameters like plugins, provider
|
|
14
|
+
# preferences, and model fallbacks.
|
|
15
|
+
module Transforms
|
|
16
|
+
class << self
|
|
17
|
+
# Converts gem model object to hash via JSON round-trip
|
|
18
|
+
#
|
|
19
|
+
# @param gem_object [Object]
|
|
20
|
+
# @return [Hash] with symbolized keys
|
|
21
|
+
def gem_to_hash(gem_object)
|
|
22
|
+
OpenAI::Chat::Transforms.gem_to_hash(gem_object)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
# Normalizes all request parameters for OpenRouter API
|
|
26
|
+
#
|
|
27
|
+
# Handles both OpenAI-compatible parameters and OpenRouter-specific extensions.
|
|
28
|
+
# OpenRouter-specific params (plugins, provider, transforms, models, route) are
|
|
29
|
+
# extracted and returned separately for manual serialization.
|
|
30
|
+
#
|
|
31
|
+
# @param params [Hash]
|
|
32
|
+
# @return [Array<Hash, Hash>] tuple of [openai_params, openrouter_params]
|
|
33
|
+
def normalize_params(params)
|
|
34
|
+
params = params.dup
|
|
35
|
+
|
|
36
|
+
# Extract OpenRouter-specific parameters
|
|
37
|
+
openrouter_params = {}
|
|
38
|
+
openrouter_params[:plugins] = params.delete(:plugins) if params.key?(:plugins)
|
|
39
|
+
openrouter_params[:provider] = params.delete(:provider) if params.key?(:provider)
|
|
40
|
+
openrouter_params[:transforms] = params.delete(:transforms) if params.key?(:transforms)
|
|
41
|
+
openrouter_params[:models] = params.delete(:models) if params.key?(:models)
|
|
42
|
+
openrouter_params[:route] = params.delete(:route) if params.key?(:route)
|
|
43
|
+
|
|
44
|
+
# Extract OpenRouter-specific sampling parameters not in OpenAI
|
|
45
|
+
openrouter_params[:top_k] = params.delete(:top_k) if params.key?(:top_k)
|
|
46
|
+
openrouter_params[:min_p] = params.delete(:min_p) if params.key?(:min_p)
|
|
47
|
+
openrouter_params[:top_a] = params.delete(:top_a) if params.key?(:top_a)
|
|
48
|
+
openrouter_params[:repetition_penalty] = params.delete(:repetition_penalty) if params.key?(:repetition_penalty)
|
|
49
|
+
|
|
50
|
+
# Handle response_format special logic for OpenRouter
|
|
51
|
+
# OpenRouter requires provider.require_parameters=true for structured output
|
|
52
|
+
if params[:response_format]
|
|
53
|
+
response_format = params[:response_format]
|
|
54
|
+
response_format_hash = response_format.is_a?(Hash) ? response_format : { type: response_format }
|
|
55
|
+
|
|
56
|
+
if %i[json_object json_schema].include?(response_format_hash[:type].to_sym)
|
|
57
|
+
openrouter_params[:provider] ||= {}
|
|
58
|
+
openrouter_params[:provider][:require_parameters] = true
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
# Use OpenAI transforms for the base parameters
|
|
63
|
+
openai_params = OpenAI::Chat::Transforms.normalize_params(params)
|
|
64
|
+
|
|
65
|
+
[ openai_params, openrouter_params ]
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
# Normalizes messages using OpenAI transforms
|
|
69
|
+
#
|
|
70
|
+
# @param messages [Array, String, Hash, nil]
|
|
71
|
+
# @return [Array<OpenAI::Models::Chat::ChatCompletionMessageParam>, nil]
|
|
72
|
+
def normalize_messages(messages)
|
|
73
|
+
OpenAI::Chat::Transforms.normalize_messages(messages)
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
# Normalizes response_format for OpenRouter
|
|
77
|
+
#
|
|
78
|
+
# Delegates to OpenAI transforms. The special handling for structured output
|
|
79
|
+
# (setting provider.require_parameters=true) is handled in normalize_params.
|
|
80
|
+
#
|
|
81
|
+
# @param format [Hash, Symbol, String]
|
|
82
|
+
# @return [Hash]
|
|
83
|
+
def normalize_response_format(format)
|
|
84
|
+
OpenAI::Chat::Transforms.normalize_response_format(format)
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
# Cleans up serialized request for API submission
|
|
88
|
+
#
|
|
89
|
+
# Merges OpenAI-compatible params with OpenRouter-specific params.
|
|
90
|
+
#
|
|
91
|
+
# @param openai_hash [Hash] serialized OpenAI request
|
|
92
|
+
# @param openrouter_params [Hash] OpenRouter-specific parameters
|
|
93
|
+
# @param defaults [Hash] default values to remove
|
|
94
|
+
# @param gem_object [Object] original gem object
|
|
95
|
+
# @return [Hash] cleaned and merged request hash
|
|
96
|
+
def cleanup_serialized_request(openai_hash, openrouter_params, defaults, gem_object)
|
|
97
|
+
# Start with OpenAI cleanup
|
|
98
|
+
cleaned = OpenAI::Chat::Transforms.cleanup_serialized_request(openai_hash, defaults, gem_object)
|
|
99
|
+
|
|
100
|
+
# Merge OpenRouter-specific params, but skip default values
|
|
101
|
+
openrouter_params.each do |key, value|
|
|
102
|
+
# Skip if value is nil, empty, or matches the default
|
|
103
|
+
next if value.nil?
|
|
104
|
+
next if value.respond_to?(:empty?) && value.empty?
|
|
105
|
+
next if defaults.key?(key) && defaults[key] == value
|
|
106
|
+
|
|
107
|
+
cleaned[key] = serialize_openrouter_param(key, value)
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
cleaned
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
# Serializes OpenRouter-specific parameters
|
|
114
|
+
#
|
|
115
|
+
# @param key [Symbol]
|
|
116
|
+
# @param value [Object]
|
|
117
|
+
# @return [Object] serialized value
|
|
118
|
+
def serialize_openrouter_param(key, value)
|
|
119
|
+
case key
|
|
120
|
+
when :provider
|
|
121
|
+
# Serialize provider preferences object
|
|
122
|
+
value.respond_to?(:serialize) ? value.serialize : value
|
|
123
|
+
when :plugins
|
|
124
|
+
# Serialize plugins array
|
|
125
|
+
value.respond_to?(:map) ? value.map { |p| p.respond_to?(:serialize) ? p.serialize : p } : value
|
|
126
|
+
else
|
|
127
|
+
value
|
|
128
|
+
end
|
|
129
|
+
end
|
|
130
|
+
end
|
|
131
|
+
end
|
|
132
|
+
end
|
|
133
|
+
end
|
|
134
|
+
end
|
|
@@ -48,6 +48,15 @@ module ActiveAgent
|
|
|
48
48
|
|
|
49
49
|
hash_merge_delta(message, delta)
|
|
50
50
|
end
|
|
51
|
+
|
|
52
|
+
# @see BaseProvider#api_response_normalize
|
|
53
|
+
# @param api_response [OpenAI::Models::ChatCompletion]
|
|
54
|
+
# @return [Hash] normalized response hash
|
|
55
|
+
def api_response_normalize(api_response)
|
|
56
|
+
return api_response unless api_response
|
|
57
|
+
|
|
58
|
+
OpenAI::Chat::Transforms.gem_to_hash(api_response)
|
|
59
|
+
end
|
|
51
60
|
end
|
|
52
61
|
end
|
|
53
62
|
end
|
data/lib/active_agent/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: activeagent
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.0.0
|
|
4
|
+
version: 1.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Justin Bowen
|
|
@@ -127,16 +127,16 @@ dependencies:
|
|
|
127
127
|
name: rails
|
|
128
128
|
requirement: !ruby/object:Gem::Requirement
|
|
129
129
|
requirements:
|
|
130
|
-
- - "
|
|
130
|
+
- - "~>"
|
|
131
131
|
- !ruby/object:Gem::Version
|
|
132
|
-
version:
|
|
132
|
+
version: 8.0.0
|
|
133
133
|
type: :development
|
|
134
134
|
prerelease: false
|
|
135
135
|
version_requirements: !ruby/object:Gem::Requirement
|
|
136
136
|
requirements:
|
|
137
|
-
- - "
|
|
137
|
+
- - "~>"
|
|
138
138
|
- !ruby/object:Gem::Version
|
|
139
|
-
version:
|
|
139
|
+
version: 8.0.0
|
|
140
140
|
- !ruby/object:Gem::Dependency
|
|
141
141
|
name: anthropic
|
|
142
142
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -165,20 +165,6 @@ dependencies:
|
|
|
165
165
|
- - "~>"
|
|
166
166
|
- !ruby/object:Gem::Version
|
|
167
167
|
version: '0.34'
|
|
168
|
-
- !ruby/object:Gem::Dependency
|
|
169
|
-
name: standard
|
|
170
|
-
requirement: !ruby/object:Gem::Requirement
|
|
171
|
-
requirements:
|
|
172
|
-
- - ">="
|
|
173
|
-
- !ruby/object:Gem::Version
|
|
174
|
-
version: '0'
|
|
175
|
-
type: :development
|
|
176
|
-
prerelease: false
|
|
177
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
178
|
-
requirements:
|
|
179
|
-
- - ">="
|
|
180
|
-
- !ruby/object:Gem::Version
|
|
181
|
-
version: '0'
|
|
182
168
|
- !ruby/object:Gem::Dependency
|
|
183
169
|
name: rubocop-rails-omakase
|
|
184
170
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -375,53 +361,12 @@ files:
|
|
|
375
361
|
- lib/active_agent/deprecator.rb
|
|
376
362
|
- lib/active_agent/generation.rb
|
|
377
363
|
- lib/active_agent/generation_job.rb
|
|
378
|
-
- lib/active_agent/generation_provider/open_router/types.rb
|
|
379
|
-
- lib/active_agent/generation_provider/xai_provider.rb
|
|
380
364
|
- lib/active_agent/inline_preview_interceptor.rb
|
|
381
365
|
- lib/active_agent/providers/_base_provider.rb
|
|
382
366
|
- lib/active_agent/providers/anthropic/_types.rb
|
|
383
367
|
- lib/active_agent/providers/anthropic/options.rb
|
|
384
368
|
- lib/active_agent/providers/anthropic/request.rb
|
|
385
|
-
- lib/active_agent/providers/anthropic/
|
|
386
|
-
- lib/active_agent/providers/anthropic/requests/container_params.rb
|
|
387
|
-
- lib/active_agent/providers/anthropic/requests/content/base.rb
|
|
388
|
-
- lib/active_agent/providers/anthropic/requests/content/sources/base.rb
|
|
389
|
-
- lib/active_agent/providers/anthropic/requests/context_management_config.rb
|
|
390
|
-
- lib/active_agent/providers/anthropic/requests/messages/_types.rb
|
|
391
|
-
- lib/active_agent/providers/anthropic/requests/messages/assistant.rb
|
|
392
|
-
- lib/active_agent/providers/anthropic/requests/messages/base.rb
|
|
393
|
-
- lib/active_agent/providers/anthropic/requests/messages/content/_types.rb
|
|
394
|
-
- lib/active_agent/providers/anthropic/requests/messages/content/base.rb
|
|
395
|
-
- lib/active_agent/providers/anthropic/requests/messages/content/document.rb
|
|
396
|
-
- lib/active_agent/providers/anthropic/requests/messages/content/image.rb
|
|
397
|
-
- lib/active_agent/providers/anthropic/requests/messages/content/redacted_thinking.rb
|
|
398
|
-
- lib/active_agent/providers/anthropic/requests/messages/content/search_result.rb
|
|
399
|
-
- lib/active_agent/providers/anthropic/requests/messages/content/sources/_types.rb
|
|
400
|
-
- lib/active_agent/providers/anthropic/requests/messages/content/sources/base.rb
|
|
401
|
-
- lib/active_agent/providers/anthropic/requests/messages/content/sources/document_base64.rb
|
|
402
|
-
- lib/active_agent/providers/anthropic/requests/messages/content/sources/document_file.rb
|
|
403
|
-
- lib/active_agent/providers/anthropic/requests/messages/content/sources/document_text.rb
|
|
404
|
-
- lib/active_agent/providers/anthropic/requests/messages/content/sources/document_url.rb
|
|
405
|
-
- lib/active_agent/providers/anthropic/requests/messages/content/sources/image_base64.rb
|
|
406
|
-
- lib/active_agent/providers/anthropic/requests/messages/content/sources/image_file.rb
|
|
407
|
-
- lib/active_agent/providers/anthropic/requests/messages/content/sources/image_url.rb
|
|
408
|
-
- lib/active_agent/providers/anthropic/requests/messages/content/text.rb
|
|
409
|
-
- lib/active_agent/providers/anthropic/requests/messages/content/thinking.rb
|
|
410
|
-
- lib/active_agent/providers/anthropic/requests/messages/content/tool_result.rb
|
|
411
|
-
- lib/active_agent/providers/anthropic/requests/messages/content/tool_use.rb
|
|
412
|
-
- lib/active_agent/providers/anthropic/requests/messages/user.rb
|
|
413
|
-
- lib/active_agent/providers/anthropic/requests/metadata.rb
|
|
414
|
-
- lib/active_agent/providers/anthropic/requests/response_format.rb
|
|
415
|
-
- lib/active_agent/providers/anthropic/requests/thinking_config/_types.rb
|
|
416
|
-
- lib/active_agent/providers/anthropic/requests/thinking_config/base.rb
|
|
417
|
-
- lib/active_agent/providers/anthropic/requests/thinking_config/disabled.rb
|
|
418
|
-
- lib/active_agent/providers/anthropic/requests/thinking_config/enabled.rb
|
|
419
|
-
- lib/active_agent/providers/anthropic/requests/tool_choice/_types.rb
|
|
420
|
-
- lib/active_agent/providers/anthropic/requests/tool_choice/any.rb
|
|
421
|
-
- lib/active_agent/providers/anthropic/requests/tool_choice/auto.rb
|
|
422
|
-
- lib/active_agent/providers/anthropic/requests/tool_choice/base.rb
|
|
423
|
-
- lib/active_agent/providers/anthropic/requests/tool_choice/none.rb
|
|
424
|
-
- lib/active_agent/providers/anthropic/requests/tool_choice/tool.rb
|
|
369
|
+
- lib/active_agent/providers/anthropic/transforms.rb
|
|
425
370
|
- lib/active_agent/providers/anthropic_provider.rb
|
|
426
371
|
- lib/active_agent/providers/common/messages/_types.rb
|
|
427
372
|
- lib/active_agent/providers/common/messages/assistant.rb
|
|
@@ -437,7 +382,9 @@ files:
|
|
|
437
382
|
- lib/active_agent/providers/common/responses/format.rb
|
|
438
383
|
- lib/active_agent/providers/common/responses/message.rb
|
|
439
384
|
- lib/active_agent/providers/common/responses/prompt.rb
|
|
385
|
+
- lib/active_agent/providers/common/usage.rb
|
|
440
386
|
- lib/active_agent/providers/concerns/exception_handler.rb
|
|
387
|
+
- lib/active_agent/providers/concerns/instrumentation.rb
|
|
441
388
|
- lib/active_agent/providers/concerns/previewable.rb
|
|
442
389
|
- lib/active_agent/providers/log_subscriber.rb
|
|
443
390
|
- lib/active_agent/providers/mock/_types.rb
|
|
@@ -452,128 +399,36 @@ files:
|
|
|
452
399
|
- lib/active_agent/providers/ollama/_types.rb
|
|
453
400
|
- lib/active_agent/providers/ollama/chat/_types.rb
|
|
454
401
|
- lib/active_agent/providers/ollama/chat/request.rb
|
|
455
|
-
- lib/active_agent/providers/ollama/chat/
|
|
456
|
-
- lib/active_agent/providers/ollama/chat/requests/messages/_types.rb
|
|
457
|
-
- lib/active_agent/providers/ollama/chat/requests/messages/assistant.rb
|
|
458
|
-
- lib/active_agent/providers/ollama/chat/requests/messages/user.rb
|
|
402
|
+
- lib/active_agent/providers/ollama/chat/transforms.rb
|
|
459
403
|
- lib/active_agent/providers/ollama/embedding/_types.rb
|
|
460
404
|
- lib/active_agent/providers/ollama/embedding/request.rb
|
|
461
|
-
- lib/active_agent/providers/ollama/embedding/
|
|
462
|
-
- lib/active_agent/providers/ollama/embedding/requests/options.rb
|
|
405
|
+
- lib/active_agent/providers/ollama/embedding/transforms.rb
|
|
463
406
|
- lib/active_agent/providers/ollama/options.rb
|
|
464
407
|
- lib/active_agent/providers/ollama_provider.rb
|
|
465
408
|
- lib/active_agent/providers/open_ai/_base.rb
|
|
466
409
|
- lib/active_agent/providers/open_ai/_types.rb
|
|
467
410
|
- lib/active_agent/providers/open_ai/chat/_types.rb
|
|
468
411
|
- lib/active_agent/providers/open_ai/chat/request.rb
|
|
469
|
-
- lib/active_agent/providers/open_ai/chat/
|
|
470
|
-
- lib/active_agent/providers/open_ai/chat/requests/audio.rb
|
|
471
|
-
- lib/active_agent/providers/open_ai/chat/requests/messages/_types.rb
|
|
472
|
-
- lib/active_agent/providers/open_ai/chat/requests/messages/assistant.rb
|
|
473
|
-
- lib/active_agent/providers/open_ai/chat/requests/messages/base.rb
|
|
474
|
-
- lib/active_agent/providers/open_ai/chat/requests/messages/content/_types.rb
|
|
475
|
-
- lib/active_agent/providers/open_ai/chat/requests/messages/content/audio.rb
|
|
476
|
-
- lib/active_agent/providers/open_ai/chat/requests/messages/content/base.rb
|
|
477
|
-
- lib/active_agent/providers/open_ai/chat/requests/messages/content/file.rb
|
|
478
|
-
- lib/active_agent/providers/open_ai/chat/requests/messages/content/files/_types.rb
|
|
479
|
-
- lib/active_agent/providers/open_ai/chat/requests/messages/content/files/details.rb
|
|
480
|
-
- lib/active_agent/providers/open_ai/chat/requests/messages/content/image.rb
|
|
481
|
-
- lib/active_agent/providers/open_ai/chat/requests/messages/content/refusal.rb
|
|
482
|
-
- lib/active_agent/providers/open_ai/chat/requests/messages/content/text.rb
|
|
483
|
-
- lib/active_agent/providers/open_ai/chat/requests/messages/developer.rb
|
|
484
|
-
- lib/active_agent/providers/open_ai/chat/requests/messages/function.rb
|
|
485
|
-
- lib/active_agent/providers/open_ai/chat/requests/messages/system.rb
|
|
486
|
-
- lib/active_agent/providers/open_ai/chat/requests/messages/tool.rb
|
|
487
|
-
- lib/active_agent/providers/open_ai/chat/requests/messages/user.rb
|
|
488
|
-
- lib/active_agent/providers/open_ai/chat/requests/prediction.rb
|
|
489
|
-
- lib/active_agent/providers/open_ai/chat/requests/response_format.rb
|
|
490
|
-
- lib/active_agent/providers/open_ai/chat/requests/stream_options.rb
|
|
491
|
-
- lib/active_agent/providers/open_ai/chat/requests/tool_choice.rb
|
|
492
|
-
- lib/active_agent/providers/open_ai/chat/requests/tools/_types.rb
|
|
493
|
-
- lib/active_agent/providers/open_ai/chat/requests/tools/base.rb
|
|
494
|
-
- lib/active_agent/providers/open_ai/chat/requests/tools/custom_tool.rb
|
|
495
|
-
- lib/active_agent/providers/open_ai/chat/requests/tools/function_tool.rb
|
|
496
|
-
- lib/active_agent/providers/open_ai/chat/requests/web_search_options.rb
|
|
412
|
+
- lib/active_agent/providers/open_ai/chat/transforms.rb
|
|
497
413
|
- lib/active_agent/providers/open_ai/chat_provider.rb
|
|
498
414
|
- lib/active_agent/providers/open_ai/embedding/_types.rb
|
|
499
415
|
- lib/active_agent/providers/open_ai/embedding/request.rb
|
|
500
|
-
- lib/active_agent/providers/open_ai/embedding/
|
|
416
|
+
- lib/active_agent/providers/open_ai/embedding/transforms.rb
|
|
501
417
|
- lib/active_agent/providers/open_ai/options.rb
|
|
502
418
|
- lib/active_agent/providers/open_ai/responses/_types.rb
|
|
503
419
|
- lib/active_agent/providers/open_ai/responses/request.rb
|
|
504
|
-
- lib/active_agent/providers/open_ai/responses/
|
|
505
|
-
- lib/active_agent/providers/open_ai/responses/requests/conversation.rb
|
|
506
|
-
- lib/active_agent/providers/open_ai/responses/requests/inputs/_types.rb
|
|
507
|
-
- lib/active_agent/providers/open_ai/responses/requests/inputs/assistant_message.rb
|
|
508
|
-
- lib/active_agent/providers/open_ai/responses/requests/inputs/base.rb
|
|
509
|
-
- lib/active_agent/providers/open_ai/responses/requests/inputs/code_interpreter_tool_call.rb
|
|
510
|
-
- lib/active_agent/providers/open_ai/responses/requests/inputs/computer_tool_call.rb
|
|
511
|
-
- lib/active_agent/providers/open_ai/responses/requests/inputs/computer_tool_call_output.rb
|
|
512
|
-
- lib/active_agent/providers/open_ai/responses/requests/inputs/content/_types.rb
|
|
513
|
-
- lib/active_agent/providers/open_ai/responses/requests/inputs/content/base.rb
|
|
514
|
-
- lib/active_agent/providers/open_ai/responses/requests/inputs/content/input_audio.rb
|
|
515
|
-
- lib/active_agent/providers/open_ai/responses/requests/inputs/content/input_file.rb
|
|
516
|
-
- lib/active_agent/providers/open_ai/responses/requests/inputs/content/input_image.rb
|
|
517
|
-
- lib/active_agent/providers/open_ai/responses/requests/inputs/content/input_text.rb
|
|
518
|
-
- lib/active_agent/providers/open_ai/responses/requests/inputs/custom_tool_call.rb
|
|
519
|
-
- lib/active_agent/providers/open_ai/responses/requests/inputs/custom_tool_call_output.rb
|
|
520
|
-
- lib/active_agent/providers/open_ai/responses/requests/inputs/developer_message.rb
|
|
521
|
-
- lib/active_agent/providers/open_ai/responses/requests/inputs/file_search_tool_call.rb
|
|
522
|
-
- lib/active_agent/providers/open_ai/responses/requests/inputs/function_call_output.rb
|
|
523
|
-
- lib/active_agent/providers/open_ai/responses/requests/inputs/function_tool_call.rb
|
|
524
|
-
- lib/active_agent/providers/open_ai/responses/requests/inputs/image_gen_tool_call.rb
|
|
525
|
-
- lib/active_agent/providers/open_ai/responses/requests/inputs/input_message.rb
|
|
526
|
-
- lib/active_agent/providers/open_ai/responses/requests/inputs/item_reference.rb
|
|
527
|
-
- lib/active_agent/providers/open_ai/responses/requests/inputs/local_shell_tool_call.rb
|
|
528
|
-
- lib/active_agent/providers/open_ai/responses/requests/inputs/local_shell_tool_call_output.rb
|
|
529
|
-
- lib/active_agent/providers/open_ai/responses/requests/inputs/mcp_approval_request.rb
|
|
530
|
-
- lib/active_agent/providers/open_ai/responses/requests/inputs/mcp_approval_response.rb
|
|
531
|
-
- lib/active_agent/providers/open_ai/responses/requests/inputs/mcp_list_tools.rb
|
|
532
|
-
- lib/active_agent/providers/open_ai/responses/requests/inputs/mcp_tool_call.rb
|
|
533
|
-
- lib/active_agent/providers/open_ai/responses/requests/inputs/output_message.rb
|
|
534
|
-
- lib/active_agent/providers/open_ai/responses/requests/inputs/reasoning.rb
|
|
535
|
-
- lib/active_agent/providers/open_ai/responses/requests/inputs/system_message.rb
|
|
536
|
-
- lib/active_agent/providers/open_ai/responses/requests/inputs/tool_call_base.rb
|
|
537
|
-
- lib/active_agent/providers/open_ai/responses/requests/inputs/tool_message.rb
|
|
538
|
-
- lib/active_agent/providers/open_ai/responses/requests/inputs/user_message.rb
|
|
539
|
-
- lib/active_agent/providers/open_ai/responses/requests/inputs/web_search_tool_call.rb
|
|
540
|
-
- lib/active_agent/providers/open_ai/responses/requests/prompt_reference.rb
|
|
541
|
-
- lib/active_agent/providers/open_ai/responses/requests/reasoning.rb
|
|
542
|
-
- lib/active_agent/providers/open_ai/responses/requests/stream_options.rb
|
|
543
|
-
- lib/active_agent/providers/open_ai/responses/requests/text.rb
|
|
544
|
-
- lib/active_agent/providers/open_ai/responses/requests/text/_types.rb
|
|
545
|
-
- lib/active_agent/providers/open_ai/responses/requests/text/base.rb
|
|
546
|
-
- lib/active_agent/providers/open_ai/responses/requests/text/json_object.rb
|
|
547
|
-
- lib/active_agent/providers/open_ai/responses/requests/text/json_schema.rb
|
|
548
|
-
- lib/active_agent/providers/open_ai/responses/requests/text/plain.rb
|
|
549
|
-
- lib/active_agent/providers/open_ai/responses/requests/tool_choice.rb
|
|
550
|
-
- lib/active_agent/providers/open_ai/responses/requests/tools/_types.rb
|
|
551
|
-
- lib/active_agent/providers/open_ai/responses/requests/tools/base.rb
|
|
552
|
-
- lib/active_agent/providers/open_ai/responses/requests/tools/code_interpreter_tool.rb
|
|
553
|
-
- lib/active_agent/providers/open_ai/responses/requests/tools/computer_tool.rb
|
|
554
|
-
- lib/active_agent/providers/open_ai/responses/requests/tools/custom_tool.rb
|
|
555
|
-
- lib/active_agent/providers/open_ai/responses/requests/tools/file_search_tool.rb
|
|
556
|
-
- lib/active_agent/providers/open_ai/responses/requests/tools/function_tool.rb
|
|
557
|
-
- lib/active_agent/providers/open_ai/responses/requests/tools/image_generation_tool.rb
|
|
558
|
-
- lib/active_agent/providers/open_ai/responses/requests/tools/local_shell_tool.rb
|
|
559
|
-
- lib/active_agent/providers/open_ai/responses/requests/tools/mcp_tool.rb
|
|
560
|
-
- lib/active_agent/providers/open_ai/responses/requests/tools/web_search_preview_tool.rb
|
|
561
|
-
- lib/active_agent/providers/open_ai/responses/requests/tools/web_search_tool.rb
|
|
420
|
+
- lib/active_agent/providers/open_ai/responses/transforms.rb
|
|
562
421
|
- lib/active_agent/providers/open_ai/responses_provider.rb
|
|
563
|
-
- lib/active_agent/providers/open_ai/schema.yml
|
|
564
422
|
- lib/active_agent/providers/open_ai_provider.rb
|
|
565
423
|
- lib/active_agent/providers/open_router/_types.rb
|
|
566
424
|
- lib/active_agent/providers/open_router/options.rb
|
|
567
425
|
- lib/active_agent/providers/open_router/request.rb
|
|
568
426
|
- lib/active_agent/providers/open_router/requests/_types.rb
|
|
569
|
-
- lib/active_agent/providers/open_router/requests/message.rb
|
|
570
427
|
- lib/active_agent/providers/open_router/requests/messages/_types.rb
|
|
571
|
-
- lib/active_agent/providers/open_router/requests/messages/assistant.rb
|
|
572
428
|
- lib/active_agent/providers/open_router/requests/messages/content/_types.rb
|
|
573
429
|
- lib/active_agent/providers/open_router/requests/messages/content/file.rb
|
|
574
430
|
- lib/active_agent/providers/open_router/requests/messages/content/files/_types.rb
|
|
575
431
|
- lib/active_agent/providers/open_router/requests/messages/content/files/details.rb
|
|
576
|
-
- lib/active_agent/providers/open_router/requests/messages/user.rb
|
|
577
432
|
- lib/active_agent/providers/open_router/requests/plugin.rb
|
|
578
433
|
- lib/active_agent/providers/open_router/requests/plugins/_types.rb
|
|
579
434
|
- lib/active_agent/providers/open_router/requests/plugins/pdf_config.rb
|
|
@@ -582,6 +437,7 @@ files:
|
|
|
582
437
|
- lib/active_agent/providers/open_router/requests/provider_preferences/_types.rb
|
|
583
438
|
- lib/active_agent/providers/open_router/requests/provider_preferences/max_price.rb
|
|
584
439
|
- lib/active_agent/providers/open_router/requests/response_format.rb
|
|
440
|
+
- lib/active_agent/providers/open_router/transforms.rb
|
|
585
441
|
- lib/active_agent/providers/open_router_provider.rb
|
|
586
442
|
- lib/active_agent/providers/openai_provider.rb
|
|
587
443
|
- lib/active_agent/providers/openrouter_provider.rb
|
|
@@ -633,7 +489,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
633
489
|
- !ruby/object:Gem::Version
|
|
634
490
|
version: '0'
|
|
635
491
|
requirements: []
|
|
636
|
-
rubygems_version:
|
|
492
|
+
rubygems_version: 4.0.0.dev
|
|
637
493
|
specification_version: 4
|
|
638
494
|
summary: Rails AI Agents Framework
|
|
639
495
|
test_files: []
|