zuno 1.1.0 → 1.1.1
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 -0
- data/lib/zuno/version.rb +1 -1
- data/lib/zuno.rb +22 -0
- metadata +3 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b7d6ca01a3009551afda766233cc241c30eff87eb7226142552c21f9d68450d0
|
|
4
|
+
data.tar.gz: f71bd9073d2d14829502216a82e28d4f11e4bbb1de0b9f330befb4d2a6d02757
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 2228bcd4b752897c4757ad869fbe92ad0c189cc24be1d265d718f80e2cc23104194c737658022b0caa35c25f98d4a94006ba19746f1b30c6fd56317d6d3cee36
|
|
7
|
+
data.tar.gz: a24da98ad4c6ce0214e26224d6e8f65886901865df8e1c05ab1f0572028c2d7f797328388bfdf035e7cfb52ecc52c9e5e207e101165e478df517589a0505ae81
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [1.1.1](https://github.com/dqnamo/zuno/compare/v1.1.0...v1.1.1) (2026-04-06)
|
|
4
|
+
|
|
5
|
+
### Bug Fixes
|
|
6
|
+
|
|
7
|
+
* disable parallel tool calls by default for Gemini models routed through Vercel AI Gateway so function responses stay provider-compatible
|
|
8
|
+
|
|
3
9
|
## [1.1.0](https://github.com/dqnamo/zuno/compare/v1.0.2...v1.1.0) (2026-04-04)
|
|
4
10
|
|
|
5
11
|
### Features
|
data/lib/zuno/version.rb
CHANGED
data/lib/zuno.rb
CHANGED
|
@@ -1118,6 +1118,12 @@ module Zuno
|
|
|
1118
1118
|
payload["max_tokens"] = max_tokens unless max_tokens.nil?
|
|
1119
1119
|
payload["tools"] = tools.values.map(&:as_provider_tool) unless tools.empty?
|
|
1120
1120
|
payload["tool_choice"] = deep_stringify(tool_choice) unless tool_choice.nil?
|
|
1121
|
+
payload["parallel_tool_calls"] = false if disable_parallel_tool_calls_by_default?(
|
|
1122
|
+
model_id: model_id,
|
|
1123
|
+
provider: provider,
|
|
1124
|
+
tools: tools,
|
|
1125
|
+
provider_options: provider_options
|
|
1126
|
+
)
|
|
1121
1127
|
|
|
1122
1128
|
request_options = reject_keys(provider_options, provider_adapter_config_keys(provider) + [ :tool_choice ])
|
|
1123
1129
|
payload.merge!(deep_stringify(request_options)) if request_options.is_a?(Hash)
|
|
@@ -1125,6 +1131,22 @@ module Zuno
|
|
|
1125
1131
|
end
|
|
1126
1132
|
private_class_method :build_payload
|
|
1127
1133
|
|
|
1134
|
+
def disable_parallel_tool_calls_by_default?(model_id:, provider:, tools:, provider_options:)
|
|
1135
|
+
return false if tools.empty?
|
|
1136
|
+
return false unless provider.to_sym == :ai_gateway
|
|
1137
|
+
return false unless gemini_model?(model_id)
|
|
1138
|
+
return false if provider_options&.key?(:parallel_tool_calls) || provider_options&.key?("parallel_tool_calls")
|
|
1139
|
+
|
|
1140
|
+
true
|
|
1141
|
+
end
|
|
1142
|
+
private_class_method :disable_parallel_tool_calls_by_default?
|
|
1143
|
+
|
|
1144
|
+
def gemini_model?(model_id)
|
|
1145
|
+
normalized = model_id.to_s.downcase
|
|
1146
|
+
normalized.start_with?("google/") || normalized.include?("gemini")
|
|
1147
|
+
end
|
|
1148
|
+
private_class_method :gemini_model?
|
|
1149
|
+
|
|
1128
1150
|
def provider_adapter_config_keys(provider)
|
|
1129
1151
|
case provider.to_sym
|
|
1130
1152
|
when :openrouter
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: zuno
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.1.
|
|
4
|
+
version: 1.1.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Hyperaide
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-04-
|
|
11
|
+
date: 2026-04-06 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: typhoeus
|
|
@@ -85,7 +85,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
85
85
|
- !ruby/object:Gem::Version
|
|
86
86
|
version: '0'
|
|
87
87
|
requirements: []
|
|
88
|
-
rubygems_version: 3.5.
|
|
88
|
+
rubygems_version: 3.5.23
|
|
89
89
|
signing_key:
|
|
90
90
|
specification_version: 4
|
|
91
91
|
summary: Ruby SDK with provider/model abstraction, single-shot generation, loops,
|