open_router_enhanced 2.2.0 → 2.3.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 +6 -13
- data/Gemfile.lock +1 -1
- data/README.md +0 -90
- data/lib/open_router/callbacks.rb +1 -1
- data/lib/open_router/client.rb +12 -4
- data/lib/open_router/completion_options.rb +15 -7
- data/lib/open_router/json_healer.rb +1 -1
- data/lib/open_router/request_handler.rb +5 -4
- data/lib/open_router/response.rb +16 -14
- data/lib/open_router/schema.rb +70 -12
- data/lib/open_router/streaming_client.rb +1 -1
- data/lib/open_router/tool_serializer.rb +36 -41
- data/lib/open_router/version.rb +1 -1
- data/lib/open_router.rb +7 -24
- metadata +2 -6
- data/docs/superpowers/plans/2026-06-27-openrouter-routing-features.md +0 -913
- data/docs/superpowers/specs/2026-06-27-openrouter-routing-features-design.md +0 -179
- data/lib/open_router/routing.rb +0 -80
- data/lib/open_router/subagent_tool.rb +0 -51
data/lib/open_router.rb
CHANGED
|
@@ -19,7 +19,6 @@ end
|
|
|
19
19
|
require_relative "open_router/http"
|
|
20
20
|
require_relative "open_router/completion_options"
|
|
21
21
|
require_relative "open_router/tool"
|
|
22
|
-
require_relative "open_router/subagent_tool"
|
|
23
22
|
require_relative "open_router/tool_call_base"
|
|
24
23
|
require_relative "open_router/tool_call"
|
|
25
24
|
require_relative "open_router/schema"
|
|
@@ -31,7 +30,6 @@ require_relative "open_router/model_registry"
|
|
|
31
30
|
require_relative "open_router/model_selector"
|
|
32
31
|
require_relative "open_router/prompt_template"
|
|
33
32
|
require_relative "open_router/usage_tracker"
|
|
34
|
-
require_relative "open_router/routing"
|
|
35
33
|
require_relative "open_router/client"
|
|
36
34
|
require_relative "open_router/streaming_client"
|
|
37
35
|
require_relative "open_router/version"
|
|
@@ -56,15 +54,11 @@ module OpenRouter
|
|
|
56
54
|
# Capability validation configuration
|
|
57
55
|
attr_accessor :strict_mode
|
|
58
56
|
|
|
59
|
-
#
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
#
|
|
63
|
-
attr_accessor :
|
|
64
|
-
|
|
65
|
-
# Optional logger. When set, gem warnings are routed through it (e.g. Rails.logger).
|
|
66
|
-
# When nil (default), warnings go to Kernel.warn → $stderr.
|
|
67
|
-
attr_accessor :logger
|
|
57
|
+
# Default validation strictness for structured outputs.
|
|
58
|
+
# false (default): best-effort, return parsed JSON as-is.
|
|
59
|
+
# true: raise StructuredOutputError when the response doesn't match the schema.
|
|
60
|
+
# Overridden per-call by the `strict:` option.
|
|
61
|
+
attr_accessor :structured_output_strict
|
|
68
62
|
|
|
69
63
|
DEFAULT_API_VERSION = "v1"
|
|
70
64
|
DEFAULT_REQUEST_TIMEOUT = 120
|
|
@@ -99,11 +93,8 @@ module OpenRouter
|
|
|
99
93
|
# Capability validation defaults
|
|
100
94
|
self.strict_mode = ENV.fetch("OPENROUTER_STRICT_MODE", "false").downcase == "true"
|
|
101
95
|
|
|
102
|
-
#
|
|
103
|
-
self.
|
|
104
|
-
|
|
105
|
-
# Default structured output mode
|
|
106
|
-
self.default_structured_output_mode = ENV.fetch("OPENROUTER_DEFAULT_MODE", "strict").to_sym
|
|
96
|
+
# Default structured output validation strictness (loose/best-effort by default)
|
|
97
|
+
self.structured_output_strict = ENV.fetch("OPENROUTER_STRUCTURED_STRICT", "false").downcase == "true"
|
|
107
98
|
end
|
|
108
99
|
|
|
109
100
|
def access_token
|
|
@@ -136,12 +127,4 @@ module OpenRouter
|
|
|
136
127
|
def self.configure
|
|
137
128
|
yield(configuration)
|
|
138
129
|
end
|
|
139
|
-
|
|
140
|
-
def self.log_warning(message)
|
|
141
|
-
if configuration.logger
|
|
142
|
-
configuration.logger.warn(message)
|
|
143
|
-
else
|
|
144
|
-
Kernel.warn(message)
|
|
145
|
-
end
|
|
146
|
-
end
|
|
147
130
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: open_router_enhanced
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.3.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Eric Stiens
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-
|
|
11
|
+
date: 2026-07-08 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activesupport
|
|
@@ -134,8 +134,6 @@ files:
|
|
|
134
134
|
- docs/responses_api.md
|
|
135
135
|
- docs/streaming.md
|
|
136
136
|
- docs/structured_outputs.md
|
|
137
|
-
- docs/superpowers/plans/2026-06-27-openrouter-routing-features.md
|
|
138
|
-
- docs/superpowers/specs/2026-06-27-openrouter-routing-features-design.md
|
|
139
137
|
- docs/tools.md
|
|
140
138
|
- examples/basic_completion.rb
|
|
141
139
|
- examples/dynamic_model_switching_example.rb
|
|
@@ -164,10 +162,8 @@ files:
|
|
|
164
162
|
- lib/open_router/response_parsing.rb
|
|
165
163
|
- lib/open_router/responses_response.rb
|
|
166
164
|
- lib/open_router/responses_tool_call.rb
|
|
167
|
-
- lib/open_router/routing.rb
|
|
168
165
|
- lib/open_router/schema.rb
|
|
169
166
|
- lib/open_router/streaming_client.rb
|
|
170
|
-
- lib/open_router/subagent_tool.rb
|
|
171
167
|
- lib/open_router/tool.rb
|
|
172
168
|
- lib/open_router/tool_call.rb
|
|
173
169
|
- lib/open_router/tool_call_base.rb
|