@bendyline/gezel-inference 0.1.0 → 1.0.1

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.
Files changed (60) hide show
  1. package/README.md +90 -8
  2. package/dist/cache/adapter.d.ts +7 -0
  3. package/dist/cache/controller.d.ts +12 -0
  4. package/dist/cache/controller.js +24 -0
  5. package/dist/catalog/chat-models/bt/btl4-35b-q4/manifest.json +1 -0
  6. package/dist/catalog/chat-models/gl/glm-5.2-754b-q2/manifest.json +1 -0
  7. package/dist/catalog/chat-models/index.json +1 -1
  8. package/dist/catalog/chat-models/lf/lfm2.5-24b-a2b-q4/manifest.json +122 -0
  9. package/dist/catalog/chat-models/lf/lfm2.5-24b-a2b-q4/versions/1.0.0/manifest.json +15 -0
  10. package/dist/catalog/chat-models/mi/minicpm-v4.7-35b-a3b-q4/manifest.json +185 -0
  11. package/dist/catalog/chat-models/mi/minicpm-v4.7-35b-a3b-q4/versions/1.0.0/manifest.json +94 -0
  12. package/dist/catalog/chat-models/mi/minicpm5-1b-q4/manifest.json +1 -0
  13. package/dist/catalog/chat-models/mi/minicpm5-2b-q4/manifest.json +1 -0
  14. package/dist/catalog/chat-models/qw/qwen3.5-0.8b-q4/manifest.json +1 -0
  15. package/dist/catalog/chat-models/raw-index.json +1 -1
  16. package/dist/catalog/provenance.json +1 -1
  17. package/dist/engines/electron-native-reuse.d.ts +9 -0
  18. package/dist/engines/electron-native-reuse.js +146 -45
  19. package/dist/engines/native-manifest.d.ts +8 -0
  20. package/dist/engines/native-manifest.js +30 -0
  21. package/dist/http/openai-compat/apple-model.d.ts +2 -0
  22. package/dist/http/openai-compat/apple-model.js +21 -1
  23. package/dist/http/openai-compat/chat-target.d.ts +12 -0
  24. package/dist/http/openai-compat/chat-target.js +27 -1
  25. package/dist/http/routes/engines.js +9 -3
  26. package/dist/http/routes/v1-chat.js +21 -8
  27. package/dist/http/routes/v1-models.d.ts +6 -0
  28. package/dist/http/routes/v1-models.js +133 -28
  29. package/dist/http/routes/v1-responses.js +9 -2
  30. package/dist/in-flight-requests.d.ts +19 -0
  31. package/dist/in-flight-requests.js +34 -0
  32. package/dist/inference-service.js +3 -3
  33. package/dist/providers/llama-cpp/build-provider.js +33 -8
  34. package/dist/providers/llama-cpp/cache-adapter.d.ts +12 -0
  35. package/dist/providers/llama-cpp/cache-adapter.js +34 -0
  36. package/dist/providers/llama-cpp/gguf-metadata-async.js +7 -0
  37. package/dist/providers/mlx/provider.js +11 -7
  38. package/dist/providers/mlx/python/batch_processors.py +26 -0
  39. package/dist/providers/mlx/python/gezel_mlx_server.py +88 -20
  40. package/dist/providers/mlx/python/response_format.py +374 -0
  41. package/dist/providers/mlx/python/spec_decode.py +5 -0
  42. package/dist/providers/mlx/python/think_budget.py +35 -1
  43. package/dist/providers/mlx/python/tool_grammar.py +62 -3
  44. package/dist/providers/mlx/reasoning-stream.d.ts +20 -2
  45. package/dist/providers/mlx/reasoning-stream.js +77 -16
  46. package/dist/providers/mlx/runtime-diagnostics.d.ts +16 -0
  47. package/dist/providers/mlx/runtime-diagnostics.js +29 -2
  48. package/dist/providers/native/capacity-broker.d.ts +35 -0
  49. package/dist/providers/native/capacity-broker.js +69 -4
  50. package/dist/providers/native/local-engine-runtime.js +7 -2
  51. package/dist/remotes/identity.d.ts +1 -0
  52. package/dist/remotes/identity.js +6 -0
  53. package/dist/remotes/pinned-fetch.d.ts +2 -0
  54. package/dist/remotes/pinned-fetch.js +30 -1
  55. package/dist/remotes/types.d.ts +14 -0
  56. package/dist/runtime-lock.js +1 -1
  57. package/dist/system/memory.js +11 -1
  58. package/dist/utils/service-worker-entry.d.ts +4 -0
  59. package/dist/utils/service-worker-entry.js +4 -0
  60. package/package.json +15 -11
@@ -0,0 +1,122 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "kind": "chat-model",
4
+ "id": "lfm2.5-24b-a2b-q4",
5
+ "name": "LFM2.5 (24B-A2B, Q4)",
6
+ "description": "Liquid AI's largest LFM2.5, a mixture-of-experts model that holds 24B parameters but uses only about 2B for each word it writes, so it stays quick for its size. Built for agent work: it always thinks before it answers, calls tools natively, and has a 128K context window. Pair it with search or your documents for fact-heavy questions.",
7
+ "tags": [
8
+ "liquid-ai",
9
+ "agentic",
10
+ "reasoning",
11
+ "tools",
12
+ "moe"
13
+ ],
14
+ "category": "general",
15
+ "maintainer": {
16
+ "name": "Liquid AI",
17
+ "url": "https://huggingface.co/LiquidAI/LFM2.5-24B-A2B"
18
+ },
19
+ "version": "1.0.0",
20
+ "updatedAt": "2026-10-14T00:00:00Z",
21
+ "license": "LFM Open License v1.0",
22
+ "licenseClass": "custom-restricted",
23
+ "licenseShortName": "LFM Open 1.0",
24
+ "parameterSize": "24B",
25
+ "approxSizeBytes": 13578190880,
26
+ "supportsTools": true,
27
+ "contextWindow": 128000,
28
+ "upstream": "https://huggingface.co/LiquidAI/LFM2.5-24B-A2B",
29
+ "style": {
30
+ "family": "other",
31
+ "reasoningFormat": "think",
32
+ "toolCallFormat": "function-call"
33
+ },
34
+ "behaviors": [
35
+ "reasoning.strip-think-tags",
36
+ "prompt.private-reasoning-guidance",
37
+ "prompt.tool-cookbook-full",
38
+ "fabrication.detect-past-tense-no-tools",
39
+ "mcp.compact-tool-schemas",
40
+ "mcp.relax-required-fields",
41
+ "mcp.default-missing-fields",
42
+ {
43
+ "id": "turn.continuation-budget",
44
+ "config": {
45
+ "count": 4
46
+ }
47
+ },
48
+ "turn.preamble-folding",
49
+ "turn.ramble-detection",
50
+ "prompt.prefer-writefile-edits",
51
+ "prompt.derive-by-execution",
52
+ "prompt.retrieval-first",
53
+ "prompt.workspace-gestalt",
54
+ {
55
+ "id": "prompt.native-tool-call-format",
56
+ "config": {
57
+ "example": "<|tool_call_start|>[write_file(path='notes.md', content='hello')]<|tool_call_end|>"
58
+ }
59
+ }
60
+ ],
61
+ "tuning": {
62
+ "sampling": {
63
+ "temperature": 0.1,
64
+ "topK": 50,
65
+ "repetitionPenalty": 1.05
66
+ },
67
+ "reasoning": {
68
+ "enableThinking": true,
69
+ "thinkingBudget": 4096
70
+ },
71
+ "profiles": {
72
+ "thinking-general": {
73
+ "sampling": {
74
+ "temperature": 0.1,
75
+ "topP": 0.95,
76
+ "topK": 50,
77
+ "repetitionPenalty": 1.05
78
+ }
79
+ },
80
+ "thinking-coding": {
81
+ "sampling": {
82
+ "temperature": 0.1,
83
+ "topP": 0.9,
84
+ "topK": 50,
85
+ "repetitionPenalty": 1.05
86
+ }
87
+ },
88
+ "thinking-precise": {
89
+ "sampling": {
90
+ "temperature": 0.05,
91
+ "topP": 0.9,
92
+ "topK": 20,
93
+ "repetitionPenalty": 1.05
94
+ }
95
+ },
96
+ "instruct": {
97
+ "sampling": {
98
+ "temperature": 0.1,
99
+ "topP": 0.95,
100
+ "topK": 50,
101
+ "repetitionPenalty": 1.05
102
+ }
103
+ },
104
+ "creative": {
105
+ "sampling": {
106
+ "temperature": 0.3,
107
+ "topP": 0.95,
108
+ "topK": 50,
109
+ "repetitionPenalty": 1.05
110
+ }
111
+ }
112
+ }
113
+ },
114
+ "llamaCpp": {
115
+ "huggingfaceRepo": "LiquidAI/LFM2.5-24B-A2B-GGUF",
116
+ "revision": "0912d33141f77e10705345a6732bfd83f0252fdc",
117
+ "filename": "LFM2.5-24B-A2B-QAD-Q4_0.gguf",
118
+ "sha256": "d1c03f73ecaf61017d70419eec9e5dc0b05d50ae26c23d522829b934fbabf8a5",
119
+ "approxSizeBytes": 13578190880,
120
+ "quantization": "Q4_0"
121
+ }
122
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "version": "1.0.0",
4
+ "releasedAt": "2026-10-14T00:00:00Z",
5
+ "minGezelVersion": "1.26287",
6
+ "approxSizeBytes": 13578190880,
7
+ "llamaCpp": {
8
+ "huggingfaceRepo": "LiquidAI/LFM2.5-24B-A2B-GGUF",
9
+ "revision": "0912d33141f77e10705345a6732bfd83f0252fdc",
10
+ "filename": "LFM2.5-24B-A2B-QAD-Q4_0.gguf",
11
+ "sha256": "d1c03f73ecaf61017d70419eec9e5dc0b05d50ae26c23d522829b934fbabf8a5",
12
+ "approxSizeBytes": 13578190880,
13
+ "quantization": "Q4_0"
14
+ }
15
+ }
@@ -0,0 +1,185 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "kind": "chat-model",
4
+ "id": "minicpm-v4.7-35b-a3b-q4",
5
+ "name": "MiniCPM-V 4.7 (35B-A3B, Q4)",
6
+ "description": "OpenBMB's vision-language model with 35B total parameters and roughly 3B active per token. Understands images, documents, and multiple images, with native tool calling and optional thinking. The Q4_K_M download includes the 16x vision projector. Requires llama.cpp with MiniCPM-V 4.7 support (upstream PR #29416), which Gezel's bundled engine does not have yet; release builds hide it until one does.",
7
+ "tags": [
8
+ "openbmb",
9
+ "vision",
10
+ "multimodal",
11
+ "tools",
12
+ "moe"
13
+ ],
14
+ "category": "general",
15
+ "maintainer": {
16
+ "name": "OpenBMB",
17
+ "url": "https://huggingface.co/openbmb"
18
+ },
19
+ "version": "1.0.0",
20
+ "updatedAt": "2026-10-13T00:00:00Z",
21
+ "license": "Apache-2.0",
22
+ "licenseClass": "open",
23
+ "licenseShortName": "Apache 2.0",
24
+ "parameterSize": "35B",
25
+ "approxSizeBytes": 22285830848,
26
+ "supportsTools": true,
27
+ "contextWindow": 262144,
28
+ "upstream": "https://huggingface.co/openbmb/MiniCPM-V-4.7-35B-A3B",
29
+ "style": {
30
+ "family": "qwen",
31
+ "reasoningFormat": "think",
32
+ "toolCallFormat": "function-call"
33
+ },
34
+ "behaviors": [
35
+ "provider.merge-system-messages",
36
+ "reasoning.strip-think-tags",
37
+ "mcp.compact-tool-schemas",
38
+ "prompt.tool-cookbook-condensed",
39
+ "fabrication.detect-past-tense-no-tools",
40
+ "turn.preamble-folding",
41
+ "turn.ramble-detection"
42
+ ],
43
+ "tuning": {
44
+ "sampling": {
45
+ "temperature": 0.7,
46
+ "topP": 0.8,
47
+ "topK": 100,
48
+ "minP": 0,
49
+ "repetitionPenalty": 1.05,
50
+ "maxTokens": 8192
51
+ },
52
+ "reasoning": {
53
+ "enableThinking": false,
54
+ "thinkingBudget": 4096
55
+ },
56
+ "profiles": {
57
+ "thinking-general": {
58
+ "reasoning": {
59
+ "thinkingBudget": 4096,
60
+ "enableThinking": true
61
+ }
62
+ },
63
+ "thinking-coding": {
64
+ "sampling": {
65
+ "maxTokens": 16384
66
+ },
67
+ "reasoning": {
68
+ "thinkingBudget": 4096,
69
+ "enableThinking": true
70
+ }
71
+ },
72
+ "thinking-precise": {
73
+ "sampling": {
74
+ "seed": 0,
75
+ "temperature": 0.2
76
+ },
77
+ "reasoning": {
78
+ "thinkingBudget": 4096,
79
+ "enableThinking": true
80
+ }
81
+ },
82
+ "instruct": {
83
+ "reasoning": {
84
+ "enableThinking": false
85
+ }
86
+ },
87
+ "creative": {
88
+ "sampling": {
89
+ "topP": 0.9,
90
+ "temperature": 0.8
91
+ },
92
+ "reasoning": {
93
+ "enableThinking": false
94
+ }
95
+ }
96
+ }
97
+ },
98
+ "llamaCpp": {
99
+ "huggingfaceRepo": "openbmb/MiniCPM-V-4.7-35B-A3B-gguf",
100
+ "revision": "1e04eae556a075a1e78808a50266ed0b11de9bf1",
101
+ "filename": "MiniCPM-V-4_7-35B-A3B-Q4_K_M.gguf",
102
+ "sha256": "bf3d1c67f7843193e4483aebd26c5dea6b6d1f6a06ffa03c2387a6f3cc6d7df5",
103
+ "approxSizeBytes": 21166255008,
104
+ "quantization": "Q4_K_M",
105
+ "mmproj": {
106
+ "filename": "mmproj-model-f16.gguf",
107
+ "sha256": "bff3b688e14c300eca273092c37c50a0ddfcc2054e079af1a0480edeed5d20f1",
108
+ "sizeBytes": 1119575840
109
+ }
110
+ },
111
+ "mlx": {
112
+ "huggingfaceRepo": "mlx-community/MiniCPM-V-4.7-35B-A3B-4bit",
113
+ "revision": "0e3b706c1599ad95294122c67c77ce662de18794",
114
+ "quantization": "4bit",
115
+ "approxSizeBytes": 23548600508,
116
+ "files": [
117
+ {
118
+ "name": "chat_template.jinja",
119
+ "sha256": "c4531cacbf2a0ab65170433d7a4f371d11b7599cf96c04b192e6372432636c70",
120
+ "sizeBytes": 7250
121
+ },
122
+ {
123
+ "name": "config.json",
124
+ "sha256": "61335970616d168207bbf4d02daf87da7fe051ade19540d8711a8b37c1a06921",
125
+ "sizeBytes": 23933
126
+ },
127
+ {
128
+ "name": "generation_config.json",
129
+ "sha256": "7fa47217744f0e0918f6cf846e7541e4f322e6bc66917044cf2ad580699216c8",
130
+ "sizeBytes": 186
131
+ },
132
+ {
133
+ "name": "model-00001-of-00005.safetensors",
134
+ "sha256": "84a6955049b3d7428220c7f82dfd18701a8b932e99c8f2fee78a5c496d954636",
135
+ "sizeBytes": 5306512011
136
+ },
137
+ {
138
+ "name": "model-00002-of-00005.safetensors",
139
+ "sha256": "06ea042631cac78852e4283b12857c7b58f28dfa824d1cd6ba0bd9374701b5a4",
140
+ "sizeBytes": 5292106933
141
+ },
142
+ {
143
+ "name": "model-00003-of-00005.safetensors",
144
+ "sha256": "af2cca3162bc19f8de16cd3c76e169cb875a55b39786531d81fb55bc648035fe",
145
+ "sizeBytes": 5364936464
146
+ },
147
+ {
148
+ "name": "model-00004-of-00005.safetensors",
149
+ "sha256": "1c90bac77652fd7720556e73cdc66658b3daa4be0f205d4b8d2fabe3580c89c0",
150
+ "sizeBytes": 5352595712
151
+ },
152
+ {
153
+ "name": "model-00005-of-00005.safetensors",
154
+ "sha256": "4e774554cb00e35a0c1e043bae857e2e6f99efebb657a8279ec96aba1d441b52",
155
+ "sizeBytes": 2212214998
156
+ },
157
+ {
158
+ "name": "model.safetensors.index.json",
159
+ "sha256": "a369a2f73e06421915f7f1f04633f1db64c7fda170e5f5f3d1bec865cd1a8652",
160
+ "sizeBytes": 199017
161
+ },
162
+ {
163
+ "name": "preprocessor_config.json",
164
+ "sha256": "c64289d04f36e48d9d059e3a0069f54062b2ef6044a807adb448b98449cb54de",
165
+ "sizeBytes": 148
166
+ },
167
+ {
168
+ "name": "processor_config.json",
169
+ "sha256": "8540e97ca17871b46aca8639b05f26db4eb4ac39d271b705c9cdbc3e32abbe07",
170
+ "sizeBytes": 764
171
+ },
172
+ {
173
+ "name": "tokenizer.json",
174
+ "sha256": "e4608c5d7b3f4f30ba83be16a82cdac856b2e7191d40f0a08cbacc76c2a926ee",
175
+ "sizeBytes": 20001935
176
+ },
177
+ {
178
+ "name": "tokenizer_config.json",
179
+ "sha256": "be74f538ac586f2daac1ede56d421e915d196fba24171bc8fcd05256e42108bc",
180
+ "sizeBytes": 1157
181
+ }
182
+ ],
183
+ "disabledReason": "Requires MLX-VLM with MiniCPM-V 4.7 support (upstream PR #2499, conversion tested at e928101a144a3f11a27c7ef8d71b6d889b2d250c). Gezel pins mlx-vlm 0.7.1, which does not implement this architecture. Pending a compatible runtime and Apple Silicon validation."
184
+ }
185
+ }
@@ -0,0 +1,94 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "version": "1.0.0",
4
+ "releasedAt": "2026-10-13T00:00:00Z",
5
+ "minGezelVersion": "1.99999",
6
+ "approxSizeBytes": 22285830848,
7
+ "llamaCpp": {
8
+ "huggingfaceRepo": "openbmb/MiniCPM-V-4.7-35B-A3B-gguf",
9
+ "revision": "1e04eae556a075a1e78808a50266ed0b11de9bf1",
10
+ "filename": "MiniCPM-V-4_7-35B-A3B-Q4_K_M.gguf",
11
+ "sha256": "bf3d1c67f7843193e4483aebd26c5dea6b6d1f6a06ffa03c2387a6f3cc6d7df5",
12
+ "approxSizeBytes": 21166255008,
13
+ "quantization": "Q4_K_M",
14
+ "mmproj": {
15
+ "filename": "mmproj-model-f16.gguf",
16
+ "sha256": "bff3b688e14c300eca273092c37c50a0ddfcc2054e079af1a0480edeed5d20f1",
17
+ "sizeBytes": 1119575840
18
+ }
19
+ },
20
+ "mlx": {
21
+ "huggingfaceRepo": "mlx-community/MiniCPM-V-4.7-35B-A3B-4bit",
22
+ "revision": "0e3b706c1599ad95294122c67c77ce662de18794",
23
+ "quantization": "4bit",
24
+ "approxSizeBytes": 23548600508,
25
+ "files": [
26
+ {
27
+ "name": "chat_template.jinja",
28
+ "sha256": "c4531cacbf2a0ab65170433d7a4f371d11b7599cf96c04b192e6372432636c70",
29
+ "sizeBytes": 7250
30
+ },
31
+ {
32
+ "name": "config.json",
33
+ "sha256": "61335970616d168207bbf4d02daf87da7fe051ade19540d8711a8b37c1a06921",
34
+ "sizeBytes": 23933
35
+ },
36
+ {
37
+ "name": "generation_config.json",
38
+ "sha256": "7fa47217744f0e0918f6cf846e7541e4f322e6bc66917044cf2ad580699216c8",
39
+ "sizeBytes": 186
40
+ },
41
+ {
42
+ "name": "model-00001-of-00005.safetensors",
43
+ "sha256": "84a6955049b3d7428220c7f82dfd18701a8b932e99c8f2fee78a5c496d954636",
44
+ "sizeBytes": 5306512011
45
+ },
46
+ {
47
+ "name": "model-00002-of-00005.safetensors",
48
+ "sha256": "06ea042631cac78852e4283b12857c7b58f28dfa824d1cd6ba0bd9374701b5a4",
49
+ "sizeBytes": 5292106933
50
+ },
51
+ {
52
+ "name": "model-00003-of-00005.safetensors",
53
+ "sha256": "af2cca3162bc19f8de16cd3c76e169cb875a55b39786531d81fb55bc648035fe",
54
+ "sizeBytes": 5364936464
55
+ },
56
+ {
57
+ "name": "model-00004-of-00005.safetensors",
58
+ "sha256": "1c90bac77652fd7720556e73cdc66658b3daa4be0f205d4b8d2fabe3580c89c0",
59
+ "sizeBytes": 5352595712
60
+ },
61
+ {
62
+ "name": "model-00005-of-00005.safetensors",
63
+ "sha256": "4e774554cb00e35a0c1e043bae857e2e6f99efebb657a8279ec96aba1d441b52",
64
+ "sizeBytes": 2212214998
65
+ },
66
+ {
67
+ "name": "model.safetensors.index.json",
68
+ "sha256": "a369a2f73e06421915f7f1f04633f1db64c7fda170e5f5f3d1bec865cd1a8652",
69
+ "sizeBytes": 199017
70
+ },
71
+ {
72
+ "name": "preprocessor_config.json",
73
+ "sha256": "c64289d04f36e48d9d059e3a0069f54062b2ef6044a807adb448b98449cb54de",
74
+ "sizeBytes": 148
75
+ },
76
+ {
77
+ "name": "processor_config.json",
78
+ "sha256": "8540e97ca17871b46aca8639b05f26db4eb4ac39d271b705c9cdbc3e32abbe07",
79
+ "sizeBytes": 764
80
+ },
81
+ {
82
+ "name": "tokenizer.json",
83
+ "sha256": "e4608c5d7b3f4f30ba83be16a82cdac856b2e7191d40f0a08cbacc76c2a926ee",
84
+ "sizeBytes": 20001935
85
+ },
86
+ {
87
+ "name": "tokenizer_config.json",
88
+ "sha256": "be74f538ac586f2daac1ede56d421e915d196fba24171bc8fcd05256e42108bc",
89
+ "sizeBytes": 1157
90
+ }
91
+ ],
92
+ "disabledReason": "Requires MLX-VLM with MiniCPM-V 4.7 support (upstream PR #2499, conversion tested at e928101a144a3f11a27c7ef8d71b6d889b2d250c). Gezel pins mlx-vlm 0.7.1, which does not implement this architecture. Pending a compatible runtime and Apple Silicon validation."
93
+ }
94
+ }
@@ -20,6 +20,7 @@
20
20
  "version": "1.0.0",
21
21
  "updatedAt": "2026-09-27T00:00:00Z",
22
22
  "license": "Apache-2.0",
23
+ "licenseClass": "open",
23
24
  "parameterSize": "1B",
24
25
  "approxSizeBytes": 688065920,
25
26
  "supportsTools": true,
@@ -20,6 +20,7 @@
20
20
  "version": "1.0.0",
21
21
  "updatedAt": "2026-09-27T00:00:00Z",
22
22
  "license": "Apache-2.0",
23
+ "licenseClass": "open",
23
24
  "parameterSize": "2B",
24
25
  "approxSizeBytes": 1561318368,
25
26
  "supportsTools": true,
@@ -19,6 +19,7 @@
19
19
  "version": "1.0.0",
20
20
  "updatedAt": "2026-09-27T00:00:00Z",
21
21
  "license": "Apache-2.0",
22
+ "licenseClass": "open",
22
23
  "parameterSize": "0.8B",
23
24
  "approxSizeBytes": 549698976,
24
25
  "supportsTools": true,