lex-llm-gemini 0.2.0 → 0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '0788daea481b47eead29eb391fa566a2f02540f1f0f5b4c8aca382b457de8c33'
4
- data.tar.gz: 356fd313c188e9d585ca9d7a3f9f7fd8b1ab9d687edba232266ea168c306135f
3
+ metadata.gz: c5809a1fe2d0614ca09803118c54d0bf53d86253c5877a60e9e8607974f9ba09
4
+ data.tar.gz: 51b3697e7ecd2f87e030b180878fe23052e22a67b20e7f89ab635e503db2d019
5
5
  SHA512:
6
- metadata.gz: '09edc833e89707be34a90292622615b2fcd391d19cee2baa73d29ed7a6f12b1d520cee837684f9db28349488e7d54f7ff312414b6e3ede280627da4d821d456e'
7
- data.tar.gz: 634a5703a52c3d0554a47141265430ea1dbe10b43dfef892923ea4b0b4e7a278a914a76a9c1c109196ea27f09d9c5fb2dabdade8b302aff888185f9731a236b4
6
+ metadata.gz: 155271bed61b4a5daf51c364721350f4f58f4c9bf1277e1d889f0a19996772af855f75d63ecd26b99b1ea3f4a2a9fc65092508c612d1f0ec88792f0eaa8789ae
7
+ data.tar.gz: 2f52cc4ef38d97f53709ef9222e89b60b16487a5fa7b76e070d11a3eff7c8e5bb6b50b75bd03ee15997ea9d7c54232137202364d40d03c3448a2400aa8f222fa
data/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.3.0 - 2026-05-01
4
+
5
+ - Add auto-discovery via CredentialSources and AutoRegistration from lex-llm 0.3.0
6
+ - Self-register discovered instances into Call::Registry at require-time
7
+ - Require lex-llm >= 0.3.0
8
+
9
+
3
10
  ## 0.2.0 - 2026-04-30
4
11
 
5
12
  - **Breaking**: Adopt the base contract from lex-llm 0.1.9.
@@ -26,5 +26,5 @@ Gem::Specification.new do |spec|
26
26
  spec.add_dependency 'legion-json', '>= 1.2.1'
27
27
  spec.add_dependency 'legion-logging', '>= 1.3.2'
28
28
  spec.add_dependency 'legion-settings', '>= 1.3.14'
29
- spec.add_dependency 'lex-llm', '>= 0.2.0'
29
+ spec.add_dependency 'lex-llm', '>= 0.3.0'
30
30
  end
@@ -4,7 +4,7 @@ module Legion
4
4
  module Extensions
5
5
  module Llm
6
6
  module Gemini
7
- VERSION = '0.2.0'
7
+ VERSION = '0.3.0'
8
8
  end
9
9
  end
10
10
  end
@@ -12,6 +12,7 @@ module Legion
12
12
  module Gemini
13
13
  extend ::Legion::Extensions::Core if ::Legion::Extensions.const_defined?(:Core, false)
14
14
  extend Legion::Logging::Helper
15
+ extend Legion::Extensions::Llm::AutoRegistration
15
16
 
16
17
  PROVIDER_FAMILY = :gemini
17
18
 
@@ -31,9 +32,50 @@ module Legion
31
32
  def self.provider_class
32
33
  Provider
33
34
  end
35
+
36
+ def self.discover_instances
37
+ candidates = {}
38
+ discover_from_env(candidates)
39
+ discover_from_settings(candidates)
40
+ CredentialSources.dedup_credentials(candidates)
41
+ end
42
+
43
+ def self.discover_from_env(candidates)
44
+ env_key = CredentialSources.env('GEMINI_API_KEY')
45
+ return unless env_key
46
+
47
+ candidates[:env] = { api_key: env_key, gemini_api_key: env_key, tier: :cloud }
48
+ end
49
+
50
+ def self.discover_from_settings(candidates)
51
+ settings_cfg = CredentialSources.setting(:extensions, :llm, :gemini)
52
+ return unless settings_cfg.is_a?(Hash)
53
+
54
+ add_settings_api_key(candidates, settings_cfg)
55
+ add_settings_instances(candidates, settings_cfg)
56
+ end
57
+
58
+ def self.add_settings_api_key(candidates, cfg)
59
+ api_key = cfg[:api_key] || cfg['api_key']
60
+ return if api_key.nil? || api_key.to_s.strip.empty?
61
+
62
+ candidates[:settings] = { api_key: api_key, gemini_api_key: api_key, tier: :cloud }
63
+ end
64
+
65
+ def self.add_settings_instances(candidates, cfg)
66
+ instances = cfg[:instances] || cfg['instances']
67
+ return unless instances.is_a?(Hash)
68
+
69
+ instances.each { |name, config| candidates[name.to_sym] = config.merge(tier: :cloud) }
70
+ end
71
+
72
+ private_class_method :discover_from_env, :discover_from_settings,
73
+ :add_settings_api_key, :add_settings_instances
34
74
  end
35
75
 
36
76
  Configuration.register_provider_options(Gemini::Provider.configuration_options)
37
77
  end
38
78
  end
39
79
  end
80
+
81
+ Legion::Extensions::Llm::Gemini.register_discovered_instances
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lex-llm-gemini
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - LegionIO
@@ -57,14 +57,14 @@ dependencies:
57
57
  requirements:
58
58
  - - ">="
59
59
  - !ruby/object:Gem::Version
60
- version: 0.2.0
60
+ version: 0.3.0
61
61
  type: :runtime
62
62
  prerelease: false
63
63
  version_requirements: !ruby/object:Gem::Requirement
64
64
  requirements:
65
65
  - - ">="
66
66
  - !ruby/object:Gem::Version
67
- version: 0.2.0
67
+ version: 0.3.0
68
68
  description: Gemini provider integration for the LegionIO LLM routing framework.
69
69
  email:
70
70
  - matthewdiverson@gmail.com