legion-llm 0.14.9 → 0.14.10

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f67a1a83e7213a2e50437b07e71afd74302c2b1da8229708ec8d99506d45354e
4
- data.tar.gz: fa1dcc7ae0d4b64dd2716271dd5c50778ff178fa3987704b16302c00b75029ab
3
+ metadata.gz: 259d94128ef1590e757e4929a78e0f260db10ccc447c92033164db40b236198b
4
+ data.tar.gz: 9b51f6f2bed159bbdbbd19d30af9c1b54e1905bbc284996865ab5da20b581450
5
5
  SHA512:
6
- metadata.gz: b3c1802c7bc32daa15d15c0fc8b16923d8fac48531adc5bcfb2997eec6234534166b85c43e9262774dedb63e28a7a62c148614bdac53e00c15fe44598770823b
7
- data.tar.gz: cc6ae96b0bfc1e1e54298b028334d1bd1f19e18147ac0d7a7d61bb849c86e157ff26b986082be3027ba4199570481d91b960ce6eb1d82b2ec5aa66d787d3a9b7
6
+ metadata.gz: 03c431fb67fdb8a8f319bacde1afad35f98141412b7a721c2ff59b94d8f43ae6f2c0d89369e4d662ce310b4c1e0b4354087c90cf796dfed5a4585e79e4133a7a
7
+ data.tar.gz: e8480e859c80a2c98562fe6619de8f1a16ddd6ba7079d3006092c24f08f1ab9a6e31443080fb7e48d7647c1696fe8917e6b2a21f2ea48780ae079d4750732f34
data/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Legion LLM Changelog
2
2
 
3
+ ## [0.14.10] - 2026-06-26
4
+
5
+ ### Fixed
6
+
7
+ - `routing_resolution_for` now passes `chain_required_capabilities` to `request_lane` — requests with tools filter out lanes without `:tools` capability. Prevents tool-bearing requests from routing to models that can't handle function calling (e.g. v100 with `enable_tools: false`).
8
+ - `Prompt.dispatch` no longer pre-bakes `default_provider`/`default_model` from settings when Inventory has lanes. Passes nil so the Executor's `step_routing` routes via `request_lane` using weight, context_window, and capabilities. Fixes GAIA/lex-agentic requests >16K getting locked to v100 by model filter instead of routing to h200.
9
+
3
10
  ## [0.14.9] - 2026-06-25
4
11
 
5
12
  ### Fixed
@@ -388,6 +388,7 @@ module Legion
388
388
  providers: providers,
389
389
  instances: instances,
390
390
  models: models,
391
+ capabilities: chain_required_capabilities,
391
392
  estimated_context: state[:estimated_tokens],
392
393
  tried_lanes: Array(state[:tried_lanes])
393
394
  )
@@ -49,8 +49,10 @@ module Legion
49
49
  resolved_model = lane&.dig(:model)
50
50
  end
51
51
 
52
- resolved_provider ||= Legion::Settings[:llm][:default_provider] unless auto_route
53
- resolved_model ||= Legion::Settings[:llm][:default_model] unless auto_route
52
+ if !auto_route && resolved_provider.nil? && resolved_model.nil? && Legion::LLM::Inventory.lanes.none?
53
+ resolved_provider = Legion::Settings[:llm][:default_provider]
54
+ resolved_model = Legion::Settings[:llm][:default_model]
55
+ end
54
56
 
55
57
  request(message,
56
58
  provider: resolved_provider,
@@ -93,7 +95,7 @@ module Legion
93
95
  quality_check: nil,
94
96
  **)
95
97
  auto_route = Inference::Request.auto_routing_model?(model)
96
- if !auto_route && (provider.nil? || model.nil?)
98
+ if !auto_route && (provider.nil? || model.nil?) && Legion::LLM::Inventory.lanes.none?
97
99
  raise LLMError, "Prompt.request: provider and model must be set (got provider=#{provider.inspect}, model=#{model.inspect}). " \
98
100
  'Configure Legion::Settings[:llm][:default_provider] and [:default_model], or pass them explicitly.'
99
101
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Legion
4
4
  module LLM
5
- VERSION = '0.14.9'
5
+ VERSION = '0.14.10'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: legion-llm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.14.9
4
+ version: 0.14.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Esity