lex-llm-mlx 0.1.2 → 0.1.5
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 +15 -0
- data/Gemfile +2 -2
- data/README.md +3 -0
- data/lex-llm-mlx.gemspec +5 -6
- data/lib/legion/extensions/llm/mlx/provider.rb +10 -1
- data/lib/legion/extensions/llm/mlx/version.rb +1 -1
- metadata +9 -24
- data/lib/lex_llm_mlx.rb +0 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f02dcdce8e8d6c755dfc0823ad9f22cfda099675efa26c09a39de9573ba484cb
|
|
4
|
+
data.tar.gz: a32ce7c861f05eb42bb73253b15e4c9b2b078e583456d4f135d01ea52fcf48a4
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 96cf438ecdc6f331304fafe09bfd46c9baf56992dcb46ecc5b901bda4775e4566dd1adfeebcccf74d59a234bdeacc9f751b540201b3b6209c9f6ca89bfa7a44d
|
|
7
|
+
data.tar.gz: aa4b04058524f283e52974b4feb5b16d02c6b1ddcab8191bce7c8fc5e8f0f587fdd08a7b3109ec9978973ce8d8391a21d1dfcec09c9da31eada0ef15783995b6
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.1.5 - 2026-04-28
|
|
4
|
+
|
|
5
|
+
- Require current shared Legion JSON, logging, settings, and `lex-llm >= 0.1.5` runtime dependencies.
|
|
6
|
+
|
|
7
|
+
## 0.1.4 - 2026-04-28
|
|
8
|
+
|
|
9
|
+
- Require `lex-llm >= 0.1.4` so OpenAI-compatible model discovery exposes normalized capabilities and modalities.
|
|
10
|
+
- Add explicit chat and embedding model capability mapping for MLX routing metadata.
|
|
11
|
+
|
|
12
|
+
## 0.1.3 - 2026-04-28
|
|
13
|
+
|
|
14
|
+
- Remove the leftover compatibility entrypoint outside the Legion namespace.
|
|
15
|
+
- Load specs through the canonical `legion/extensions/llm/mlx` namespace path.
|
|
16
|
+
- Keep provider gemspec dependencies scoped to the shared `lex-llm` base gem.
|
|
17
|
+
|
|
3
18
|
## 0.1.2 - 2026-04-28
|
|
4
19
|
|
|
5
20
|
- 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
|
-
|
|
7
|
-
gem '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,10 +4,13 @@ LegionIO LLM provider extension for MLX-backed OpenAI-compatible servers on Appl
|
|
|
4
4
|
|
|
5
5
|
This gem lives under `Legion::Extensions::Llm::Mlx` and depends on `lex-llm` for shared provider-neutral routing, fleet, and schema primitives.
|
|
6
6
|
|
|
7
|
+
Load it with `require 'legion/extensions/llm/mlx'`.
|
|
8
|
+
|
|
7
9
|
## What It Provides
|
|
8
10
|
|
|
9
11
|
- `Legion::Extensions::Llm::Mlx::Provider`, registered as `:mlx`.
|
|
10
12
|
- OpenAI-compatible chat, streaming, model listing, and embeddings endpoint wrappers.
|
|
13
|
+
- Heuristic chat, embedding, and vision capability mapping for discovered local models.
|
|
11
14
|
- Local-first defaults for MLX servers running on MacBook, Mac Studio, or local Apple Silicon hosts.
|
|
12
15
|
- Shared Legion settings, JSON, and logging dependencies.
|
|
13
16
|
|
data/lex-llm-mlx.gemspec
CHANGED
|
@@ -7,8 +7,8 @@ Gem::Specification.new do |spec|
|
|
|
7
7
|
spec.version = Legion::Extensions::Llm::Mlx::VERSION
|
|
8
8
|
spec.authors = ['LegionIO']
|
|
9
9
|
spec.email = ['matthewdiverson@gmail.com']
|
|
10
|
-
spec.summary = 'LegionIO LLM
|
|
11
|
-
spec.description = '
|
|
10
|
+
spec.summary = 'LegionIO LLM MLX provider extension'
|
|
11
|
+
spec.description = 'MLX provider integration for the LegionIO LLM routing framework.'
|
|
12
12
|
spec.homepage = 'https://github.com/LegionIO/lex-llm-mlx'
|
|
13
13
|
spec.license = 'MIT'
|
|
14
14
|
spec.required_ruby_version = '>= 3.4'
|
|
@@ -23,9 +23,8 @@ 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 '
|
|
27
|
-
spec.add_dependency 'legion-
|
|
28
|
-
spec.add_dependency 'legion-logging', '>= 1.0'
|
|
26
|
+
spec.add_dependency 'legion-json', '>= 1.2.1'
|
|
27
|
+
spec.add_dependency 'legion-logging', '>= 1.3.2'
|
|
29
28
|
spec.add_dependency 'legion-settings', '>= 1.3.14'
|
|
30
|
-
spec.add_dependency 'lex-llm', '>= 0.1.
|
|
29
|
+
spec.add_dependency 'lex-llm', '>= 0.1.5'
|
|
31
30
|
end
|
|
@@ -25,9 +25,18 @@ module Legion
|
|
|
25
25
|
def chat?(model) = !embeddings?(model)
|
|
26
26
|
def streaming?(model) = chat?(model)
|
|
27
27
|
def vision?(model) = model_id(model).match?(/vlm|vision|llava|pixtral|qwen.*vl/i)
|
|
28
|
-
def functions?(
|
|
28
|
+
def functions?(model) = chat?(model)
|
|
29
29
|
def embeddings?(model) = model_id(model).match?(/embed|bge|e5|nomic/i)
|
|
30
30
|
|
|
31
|
+
def critical_capabilities_for(model)
|
|
32
|
+
[
|
|
33
|
+
('streaming' if streaming?(model)),
|
|
34
|
+
('function_calling' if functions?(model)),
|
|
35
|
+
('vision' if vision?(model)),
|
|
36
|
+
('embeddings' if embeddings?(model))
|
|
37
|
+
].compact
|
|
38
|
+
end
|
|
39
|
+
|
|
31
40
|
def model_id(model)
|
|
32
41
|
model.respond_to?(:id) ? model.id.to_s : model.to_s
|
|
33
42
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: lex-llm-mlx
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.5
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- LegionIO
|
|
@@ -9,48 +9,34 @@ 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
12
|
- !ruby/object:Gem::Dependency
|
|
27
13
|
name: legion-json
|
|
28
14
|
requirement: !ruby/object:Gem::Requirement
|
|
29
15
|
requirements:
|
|
30
16
|
- - ">="
|
|
31
17
|
- !ruby/object:Gem::Version
|
|
32
|
-
version:
|
|
18
|
+
version: 1.2.1
|
|
33
19
|
type: :runtime
|
|
34
20
|
prerelease: false
|
|
35
21
|
version_requirements: !ruby/object:Gem::Requirement
|
|
36
22
|
requirements:
|
|
37
23
|
- - ">="
|
|
38
24
|
- !ruby/object:Gem::Version
|
|
39
|
-
version:
|
|
25
|
+
version: 1.2.1
|
|
40
26
|
- !ruby/object:Gem::Dependency
|
|
41
27
|
name: legion-logging
|
|
42
28
|
requirement: !ruby/object:Gem::Requirement
|
|
43
29
|
requirements:
|
|
44
30
|
- - ">="
|
|
45
31
|
- !ruby/object:Gem::Version
|
|
46
|
-
version:
|
|
32
|
+
version: 1.3.2
|
|
47
33
|
type: :runtime
|
|
48
34
|
prerelease: false
|
|
49
35
|
version_requirements: !ruby/object:Gem::Requirement
|
|
50
36
|
requirements:
|
|
51
37
|
- - ">="
|
|
52
38
|
- !ruby/object:Gem::Version
|
|
53
|
-
version:
|
|
39
|
+
version: 1.3.2
|
|
54
40
|
- !ruby/object:Gem::Dependency
|
|
55
41
|
name: legion-settings
|
|
56
42
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -71,15 +57,15 @@ dependencies:
|
|
|
71
57
|
requirements:
|
|
72
58
|
- - ">="
|
|
73
59
|
- !ruby/object:Gem::Version
|
|
74
|
-
version: 0.1.
|
|
60
|
+
version: 0.1.5
|
|
75
61
|
type: :runtime
|
|
76
62
|
prerelease: false
|
|
77
63
|
version_requirements: !ruby/object:Gem::Requirement
|
|
78
64
|
requirements:
|
|
79
65
|
- - ">="
|
|
80
66
|
- !ruby/object:Gem::Version
|
|
81
|
-
version: 0.1.
|
|
82
|
-
description:
|
|
67
|
+
version: 0.1.5
|
|
68
|
+
description: MLX provider integration for the LegionIO LLM routing framework.
|
|
83
69
|
email:
|
|
84
70
|
- matthewdiverson@gmail.com
|
|
85
71
|
executables: []
|
|
@@ -99,7 +85,6 @@ files:
|
|
|
99
85
|
- lib/legion/extensions/llm/mlx.rb
|
|
100
86
|
- lib/legion/extensions/llm/mlx/provider.rb
|
|
101
87
|
- lib/legion/extensions/llm/mlx/version.rb
|
|
102
|
-
- lib/lex_llm_mlx.rb
|
|
103
88
|
homepage: https://github.com/LegionIO/lex-llm-mlx
|
|
104
89
|
licenses:
|
|
105
90
|
- MIT
|
|
@@ -126,5 +111,5 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
126
111
|
requirements: []
|
|
127
112
|
rubygems_version: 3.6.9
|
|
128
113
|
specification_version: 4
|
|
129
|
-
summary: LegionIO LLM
|
|
114
|
+
summary: LegionIO LLM MLX provider extension
|
|
130
115
|
test_files: []
|
data/lib/lex_llm_mlx.rb
DELETED