lex-llm-gemini 0.1.2 → 0.1.4

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: 1134a4cb3dc92ae34c6a8dfe5c307c2c16c8ead8ad4795eacb070b44561ada54
4
- data.tar.gz: a83a9fab31f175beed47cd196da8930f3f8f20bd4ff38205996997c1ca774b05
3
+ metadata.gz: 38629e200b20ead1e46cef9d869271abfb744e9696024a6a4f4b25485044e8f6
4
+ data.tar.gz: c9b389261ef415cb1d45115918cf27b98bb96346491cf47bf828b567084780d8
5
5
  SHA512:
6
- metadata.gz: 6b682d787c4b406727f3f8758a5e81d5df9298435fd0047f62e0914c1367a2be8f9769b42e134ec3589a4eba46729d549a699442fb6fb2f02387069da63457d2
7
- data.tar.gz: f41e2b8dcf0a0d45a6ac4c0eeda4c743034669190d346e3d31211ed6308ee173590b590b7adeaa2eae8767d8b104fecfbc5931b128cf979edd9f6add1e7a05b9
6
+ metadata.gz: af56bb55688b7b51508ad3d3b7733a352e7e7808b7fc27e126ddfe1b437203950cc79cf9f82a72b0607c1fe8c50cb0420213c83006f8dfded3a43f873506425c
7
+ data.tar.gz: 5b0be464fb0c6865a6b7df8d7edcb95e0e248db41ca2e37276531e4492cfcf08dc539f56fc81c4169a2dc9d9d8f289b86a112f941575aa5091c0110ff2f6a1ff
data/CHANGELOG.md CHANGED
@@ -1,5 +1,16 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.4 - 2026-04-28
4
+
5
+ - Read Gemini `supportedGenerationMethods` from discovered model metadata when mapping chat, streaming, and embedding capabilities.
6
+ - Cover embedding-only model discovery metadata for routing.
7
+
8
+ ## 0.1.3 - 2026-04-28
9
+
10
+ - Remove the leftover compatibility entrypoint outside the Legion namespace.
11
+ - Load specs through the canonical `legion/extensions/llm/gemini` namespace path.
12
+ - Keep provider gemspec dependencies scoped to the shared `lex-llm` base gem.
13
+
3
14
  ## 0.1.2 - 2026-04-28
4
15
 
5
16
  - Replace fork-era namespace references with the standard Legion::Extensions::Llm provider contract.
data/Gemfile CHANGED
@@ -3,8 +3,8 @@
3
3
  source 'https://rubygems.org'
4
4
 
5
5
  group :test do
6
- lex_llm_path = ENV.fetch('LEX_LLM_PATH', File.expand_path('../lex-llm', __dir__))
7
- gem 'lex-llm', path: lex_llm_path if File.directory?(lex_llm_path)
6
+ llm_base_path = ENV.fetch('LEX_LLM_PATH', File.expand_path('../lex-llm', __dir__))
7
+ gem 'lex-llm', path: llm_base_path if File.directory?(llm_base_path)
8
8
  end
9
9
 
10
10
  gemspec
data/README.md CHANGED
@@ -4,6 +4,8 @@ LegionIO LLM provider extension for Gemini.
4
4
 
5
5
  This gem lives under `Legion::Extensions::Llm::Gemini` and depends on `lex-llm` for shared provider-neutral routing, fleet, and schema primitives.
6
6
 
7
+ Load it with `require 'legion/extensions/llm/gemini'`.
8
+
7
9
  ## What It Provides
8
10
 
9
11
  - `Legion::Extensions::Llm::Provider` registration as `:gemini`
@@ -11,6 +13,7 @@ This gem lives under `Legion::Extensions::Llm::Gemini` and depends on `lex-llm`
11
13
  - streaming chat support through `POST /v1beta/{model=models/*}:streamGenerateContent?alt=sse`
12
14
  - model discovery through `GET /v1beta/models`
13
15
  - embeddings through `POST /v1beta/{model=models/*}:embedContent`
16
+ - normalized chat, streaming, vision, function calling, and embedding capability mapping from `supportedGenerationMethods`
14
17
  - shared fleet/default settings via `Legion::Extensions::Llm.provider_settings`
15
18
 
16
19
  ## Defaults
@@ -23,9 +23,5 @@ Gem::Specification.new do |spec|
23
23
  spec.files = `git ls-files -z`.split("\x0").reject { |file| file.match(%r{^(spec|test|features|tmp|coverage)/}) }
24
24
  spec.require_paths = ['lib']
25
25
 
26
- spec.add_dependency 'faraday', '>= 2.0'
27
- spec.add_dependency 'legion-json', '>= 1.0'
28
- spec.add_dependency 'legion-logging', '>= 1.0'
29
- spec.add_dependency 'legion-settings', '>= 1.3.14'
30
26
  spec.add_dependency 'lex-llm', '>= 0.1.3'
31
27
  end
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'legion/extensions/llm'
4
- require 'legion/json'
5
4
 
6
5
  module Legion
7
6
  module Extensions
@@ -23,7 +22,7 @@ module Legion
23
22
  def chat?(model) = supported?(model, 'generateContent')
24
23
  def streaming?(model) = supported?(model, 'streamGenerateContent')
25
24
  def embeddings?(model) = supported?(model, 'embedContent')
26
- def vision?(model) = model_id(model).match?(/gemini|flash|pro/)
25
+ def vision?(model) = chat?(model) && model_id(model).match?(/gemini|flash|pro/)
27
26
  def functions?(model) = chat?(model)
28
27
 
29
28
  def critical_capabilities_for(model)
@@ -45,7 +44,8 @@ module Legion
45
44
 
46
45
  def generation_methods(model)
47
46
  metadata = metadata_for(model)
48
- Array(metadata[:supported_generation_methods] || metadata['supported_generation_methods'])
47
+ Array(metadata[:supported_generation_methods] || metadata['supported_generation_methods'] ||
48
+ metadata['supportedGenerationMethods'])
49
49
  end
50
50
 
51
51
  def model_id(model)
@@ -4,7 +4,7 @@ module Legion
4
4
  module Extensions
5
5
  module Llm
6
6
  module Gemini
7
- VERSION = '0.1.2'
7
+ VERSION = '0.1.4'
8
8
  end
9
9
  end
10
10
  end
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.1.2
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - LegionIO
@@ -9,62 +9,6 @@ bindir: bin
9
9
  cert_chain: []
10
10
  date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies:
12
- - !ruby/object:Gem::Dependency
13
- name: faraday
14
- requirement: !ruby/object:Gem::Requirement
15
- requirements:
16
- - - ">="
17
- - !ruby/object:Gem::Version
18
- version: '2.0'
19
- type: :runtime
20
- prerelease: false
21
- version_requirements: !ruby/object:Gem::Requirement
22
- requirements:
23
- - - ">="
24
- - !ruby/object:Gem::Version
25
- version: '2.0'
26
- - !ruby/object:Gem::Dependency
27
- name: legion-json
28
- requirement: !ruby/object:Gem::Requirement
29
- requirements:
30
- - - ">="
31
- - !ruby/object:Gem::Version
32
- version: '1.0'
33
- type: :runtime
34
- prerelease: false
35
- version_requirements: !ruby/object:Gem::Requirement
36
- requirements:
37
- - - ">="
38
- - !ruby/object:Gem::Version
39
- version: '1.0'
40
- - !ruby/object:Gem::Dependency
41
- name: legion-logging
42
- requirement: !ruby/object:Gem::Requirement
43
- requirements:
44
- - - ">="
45
- - !ruby/object:Gem::Version
46
- version: '1.0'
47
- type: :runtime
48
- prerelease: false
49
- version_requirements: !ruby/object:Gem::Requirement
50
- requirements:
51
- - - ">="
52
- - !ruby/object:Gem::Version
53
- version: '1.0'
54
- - !ruby/object:Gem::Dependency
55
- name: legion-settings
56
- requirement: !ruby/object:Gem::Requirement
57
- requirements:
58
- - - ">="
59
- - !ruby/object:Gem::Version
60
- version: 1.3.14
61
- type: :runtime
62
- prerelease: false
63
- version_requirements: !ruby/object:Gem::Requirement
64
- requirements:
65
- - - ">="
66
- - !ruby/object:Gem::Version
67
- version: 1.3.14
68
12
  - !ruby/object:Gem::Dependency
69
13
  name: lex-llm
70
14
  requirement: !ruby/object:Gem::Requirement
@@ -99,7 +43,6 @@ files:
99
43
  - lib/legion/extensions/llm/gemini.rb
100
44
  - lib/legion/extensions/llm/gemini/provider.rb
101
45
  - lib/legion/extensions/llm/gemini/version.rb
102
- - lib/lex_llm_gemini.rb
103
46
  homepage: https://github.com/LegionIO/lex-llm-gemini
104
47
  licenses:
105
48
  - MIT
@@ -1,3 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'legion/extensions/llm/gemini'