lex-llm-anthropic 0.2.20 → 0.2.21

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: c8d65710f4980c8851f9ff9457cadb0053493ec4817e91b0b046ea354297c9a2
4
- data.tar.gz: d88fda72706b4035cd5ba2866c3b4354c2f36bdcad1d56bd1373684a8c82b0f9
3
+ metadata.gz: 03b981bffa993167ee00d0bb4b122f4a92c55ed978a082d35ee3fb1237afba49
4
+ data.tar.gz: 9c3d7c381087b3eab19acdb504b85670c97833aff725c604c1551cb109fcf677
5
5
  SHA512:
6
- metadata.gz: 8a81ea1ad5a04c67d4079af690238308be289c66315f19555a4d5423a92c43f3ffc940356bf52791d6fd504a446e5fc53fc495c798458f42a7e18bc6beaa5863
7
- data.tar.gz: d53359d7292d05f5719a7412b90d6a8761cc2982f8325a63446dc92ded3c77957c2914a1138eda5eaf52ff56e41408aeea3337cb49c62a00506de860780ad89f
6
+ metadata.gz: 7dab8f8bd7972ea48ce388f3fe72688d21ad2a7c960fef5112673f71bbf2f356aa233a5e00d73c99e766e8ae1b6003a86e1afb258f31cbc153a4c861dcb60f06
7
+ data.tar.gz: 1e1eed5d32c804b2a030ead997aa1a1be86692e13333842a0ad6517a78e94a1307fa919e2791d0c3b2a917778735deb0b35f63638ffcc486d806709eb091c217
data/CHANGELOG.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.2.21 - 2026-06-17
4
+
5
+ ### Changed
6
+ - **Policy-aware default model** — `default_model` is no longer a hardcoded literal forced via `||=`. The `claude-sonnet-4-6` fallback is now a named `DEFAULT_MODEL` constant applied through `Provider.policy_safe_default_model`, so a configured `model_whitelist`/`model_blacklist` is never overridden: if neither the configured default nor the fallback is permitted, `default_model` is left unset and routing resolves an allowed discovered model instead. (Fixes the case where a haiku-only whitelist still surfaced a sonnet default.) Requires lex-llm >= 0.5.4.
7
+
3
8
  ## 0.2.20 - 2026-06-16
4
9
 
5
10
  - dependency updates, code quality improvements
@@ -27,5 +27,5 @@ Gem::Specification.new do |spec|
27
27
  spec.add_dependency 'legion-logging', '>= 1.3.2'
28
28
  spec.add_dependency 'legion-settings', '>= 1.3.14'
29
29
  spec.add_dependency 'legion-transport', '>= 1.4.14'
30
- spec.add_dependency 'lex-llm', '>= 0.5.0'
30
+ spec.add_dependency 'lex-llm', '>= 0.5.4'
31
31
  end
@@ -4,7 +4,7 @@ module Legion
4
4
  module Extensions
5
5
  module Llm
6
6
  module Anthropic
7
- VERSION = '0.2.20'
7
+ VERSION = '0.2.21'
8
8
  end
9
9
  end
10
10
  end
@@ -17,12 +17,16 @@ module Legion
17
17
  extend Legion::Extensions::Llm::AutoRegistration
18
18
 
19
19
  PROVIDER_FAMILY = :anthropic
20
+ # Provider's preferred default when the operator configures none. Used only
21
+ # as a fallback and only when the configured model policy permits it
22
+ # (see resolve_default_model) — a whitelist/blacklist is never overridden.
23
+ DEFAULT_MODEL = 'claude-sonnet-4-6'
20
24
 
21
25
  def self.default_settings
22
26
  ::Legion::Extensions::Llm.provider_settings(
23
27
  family: PROVIDER_FAMILY,
24
28
  instance: {
25
- default_model: 'claude-sonnet-4-6',
29
+ default_model: DEFAULT_MODEL,
26
30
  endpoint: 'https://api.anthropic.com',
27
31
  api_version: '2023-10-16',
28
32
  default_max_tokens: 4096,
@@ -117,11 +121,20 @@ module Legion
117
121
  CredentialSources.dedup_credentials(candidates).transform_values do |config|
118
122
  sanitized = sanitize_instance_config(config)
119
123
  sanitized[:capabilities] ||= %i[completion streaming vision tools].freeze
120
- sanitized[:default_model] ||= 'claude-sonnet-4-6'
124
+ sanitized[:default_model] = resolve_default_model(sanitized)
121
125
  sanitized
122
126
  end
123
127
  end
124
128
 
129
+ # Resolve a default_model that never violates the configured model policy
130
+ # (whitelist/blacklist stays authoritative over the DEFAULT_MODEL fallback).
131
+ def self.resolve_default_model(config)
132
+ provider_class.policy_safe_default_model(
133
+ configured: config[:default_model], fallback: DEFAULT_MODEL,
134
+ **provider_class.model_policy(config, PROVIDER_FAMILY)
135
+ )
136
+ end
137
+
125
138
  def self.settings_instances(config)
126
139
  instances = config[:instances] || config['instances']
127
140
  instances.is_a?(Hash) ? instances : {}
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lex-llm-anthropic
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.20
4
+ version: 0.2.21
5
5
  platform: ruby
6
6
  authors:
7
7
  - LegionIO
@@ -71,14 +71,14 @@ dependencies:
71
71
  requirements:
72
72
  - - ">="
73
73
  - !ruby/object:Gem::Version
74
- version: 0.5.0
74
+ version: 0.5.4
75
75
  type: :runtime
76
76
  prerelease: false
77
77
  version_requirements: !ruby/object:Gem::Requirement
78
78
  requirements:
79
79
  - - ">="
80
80
  - !ruby/object:Gem::Version
81
- version: 0.5.0
81
+ version: 0.5.4
82
82
  description: Anthropic provider integration for the LegionIO LLM routing framework.
83
83
  email:
84
84
  - matthewdiverson@gmail.com