@bendyline/gezel-inference 0.0.0-stage → 0.1.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.
- package/LICENSE +21 -0
- package/README.md +13 -2
- package/dist/cache/adapter.d.ts +115 -0
- package/dist/cache/adapter.js +23 -0
- package/dist/cache/budget.d.ts +15 -0
- package/dist/cache/budget.js +31 -0
- package/dist/cache/controller.d.ts +205 -0
- package/dist/cache/controller.js +377 -0
- package/dist/catalog/LICENSE +21 -0
- package/dist/catalog/chat-models/bt/btl4-35b-q4/manifest.json +146 -0
- package/dist/catalog/chat-models/bt/btl4-35b-q4/versions/1.0.0/manifest.json +15 -0
- package/dist/catalog/chat-models/bt/btl4-35b-q4/versions/1.0.1/manifest.json +15 -0
- package/dist/catalog/chat-models/bt/btl4-compact-iq2/manifest.json +146 -0
- package/dist/catalog/chat-models/bt/btl4-compact-iq2/versions/1.0.0/manifest.json +15 -0
- package/dist/catalog/chat-models/bt/btl4-compact-iq2/versions/1.0.1/manifest.json +15 -0
- package/dist/catalog/chat-models/bt/btl4-compact-iq2/versions/1.0.2/manifest.json +15 -0
- package/dist/catalog/chat-models/de/deepseek-r1-8b-q4/manifest.json +166 -0
- package/dist/catalog/chat-models/de/deepseek-r1-8b-q4/versions/1.1.0/manifest.json +62 -0
- package/dist/catalog/chat-models/de/deepseek-r1-8b-q4/versions/1.1.1/manifest.json +61 -0
- package/dist/catalog/chat-models/de/deepseek-v4-flash-284b-mxfp4/manifest.json +125 -0
- package/dist/catalog/chat-models/de/deepseek-v4-flash-284b-mxfp4/versions/1.0.0/manifest.json +27 -0
- package/dist/catalog/chat-models/de/deepseek-v4-flash-284b-q2/manifest.json +125 -0
- package/dist/catalog/chat-models/de/deepseek-v4-flash-284b-q2/versions/1.0.0/manifest.json +27 -0
- package/dist/catalog/chat-models/de/deepseek-v4-flash-284b-q2/versions/1.1.0/manifest.json +27 -0
- package/dist/catalog/chat-models/de/deepseek-v4-flash-284b-q2q4/manifest.json +126 -0
- package/dist/catalog/chat-models/de/deepseek-v4-flash-284b-q2q4/versions/1.0.0/manifest.json +27 -0
- package/dist/catalog/chat-models/de/deepseek-v4-flash-284b-q4/manifest.json +318 -0
- package/dist/catalog/chat-models/de/deepseek-v4-flash-284b-q4/versions/1.0.0/manifest.json +225 -0
- package/dist/catalog/chat-models/de/deepseek-v4-flash-284b-q4/versions/1.1.0/manifest.json +225 -0
- package/dist/catalog/chat-models/ge/gemma4-12b-q4/manifest.json +249 -0
- package/dist/catalog/chat-models/ge/gemma4-12b-q4/versions/1.0.0/manifest.json +70 -0
- package/dist/catalog/chat-models/ge/gemma4-12b-q4/versions/1.1.0/manifest.json +72 -0
- package/dist/catalog/chat-models/ge/gemma4-12b-q4/versions/1.1.2/manifest.json +78 -0
- package/dist/catalog/chat-models/ge/gemma4-12b-q4/versions/1.1.3/manifest.json +78 -0
- package/dist/catalog/chat-models/ge/gemma4-12b-q4/versions/1.2.0/manifest.json +98 -0
- package/dist/catalog/chat-models/ge/gemma4-12b-q8/manifest.json +228 -0
- package/dist/catalog/chat-models/ge/gemma4-12b-q8/versions/1.0.0/manifest.json +72 -0
- package/dist/catalog/chat-models/ge/gemma4-12b-q8/versions/1.0.2/manifest.json +78 -0
- package/dist/catalog/chat-models/ge/gemma4-12b-q8/versions/1.0.3/manifest.json +78 -0
- package/dist/catalog/chat-models/ge/gemma4-12b-q8/versions/1.1.0/manifest.json +78 -0
- package/dist/catalog/chat-models/ge/gemma4-26b-q4/manifest.json +220 -0
- package/dist/catalog/chat-models/ge/gemma4-26b-q4/versions/1.1.0/manifest.json +75 -0
- package/dist/catalog/chat-models/ge/gemma4-26b-q4/versions/1.2.0/manifest.json +75 -0
- package/dist/catalog/chat-models/ge/gemma4-26b-q4/versions/1.2.1/manifest.json +80 -0
- package/dist/catalog/chat-models/ge/gemma4-26b-q4/versions/1.2.2/manifest.json +80 -0
- package/dist/catalog/chat-models/ge/gemma4-26b-q4/versions/1.3.0/manifest.json +81 -0
- package/dist/catalog/chat-models/ge/gemma4-31b-q4/manifest.json +226 -0
- package/dist/catalog/chat-models/ge/gemma4-31b-q4/versions/1.1.0/manifest.json +80 -0
- package/dist/catalog/chat-models/ge/gemma4-31b-q4/versions/1.1.1/manifest.json +82 -0
- package/dist/catalog/chat-models/ge/gemma4-31b-q4/versions/1.2.0/manifest.json +82 -0
- package/dist/catalog/chat-models/ge/gemma4-31b-q4/versions/1.2.1/manifest.json +95 -0
- package/dist/catalog/chat-models/ge/gemma4-31b-q4/versions/1.2.2/manifest.json +95 -0
- package/dist/catalog/chat-models/ge/gemma4-31b-q4/versions/1.3.0/manifest.json +86 -0
- package/dist/catalog/chat-models/ge/gemma4-e2b-q4/manifest.json +213 -0
- package/dist/catalog/chat-models/ge/gemma4-e2b-q4/versions/1.1.0/manifest.json +67 -0
- package/dist/catalog/chat-models/ge/gemma4-e2b-q4/versions/1.1.2/manifest.json +75 -0
- package/dist/catalog/chat-models/ge/gemma4-e2b-q4/versions/1.2.0/manifest.json +71 -0
- package/dist/catalog/chat-models/ge/gemma4-e2b-q4/versions/1.2.1/manifest.json +71 -0
- package/dist/catalog/chat-models/ge/gemma4-e2b-q4/versions/1.3.0/manifest.json +71 -0
- package/dist/catalog/chat-models/ge/gemma4-e4b-q4/manifest.json +205 -0
- package/dist/catalog/chat-models/ge/gemma4-e4b-q4/versions/1.1.0/manifest.json +72 -0
- package/dist/catalog/chat-models/ge/gemma4-e4b-q4/versions/1.1.2/manifest.json +75 -0
- package/dist/catalog/chat-models/ge/gemma4-e4b-q4/versions/1.2.0/manifest.json +76 -0
- package/dist/catalog/chat-models/ge/gemma4-e4b-q4/versions/1.2.1/manifest.json +76 -0
- package/dist/catalog/chat-models/ge/gemma4-e4b-q4/versions/1.3.0/manifest.json +76 -0
- package/dist/catalog/chat-models/gl/glm-5.2-754b-q2/manifest.json +127 -0
- package/dist/catalog/chat-models/gl/glm-5.2-754b-q2/versions/1.0.0/manifest.json +20 -0
- package/dist/catalog/chat-models/gl/glm-5.3-flash-320b-q2/manifest.json +140 -0
- package/dist/catalog/chat-models/gl/glm-5.3-flash-320b-q2/versions/1.0.0/manifest.json +23 -0
- package/dist/catalog/chat-models/gl/glm-5.3-flash-320b-q2/versions/1.0.1/manifest.json +26 -0
- package/dist/catalog/chat-models/gp/gpt-oss-120b-q4/manifest.json +247 -0
- package/dist/catalog/chat-models/gp/gpt-oss-120b-q4/versions/1.0.0/manifest.json +137 -0
- package/dist/catalog/chat-models/gp/gpt-oss-120b-q4/versions/1.1.0/manifest.json +135 -0
- package/dist/catalog/chat-models/gp/gpt-oss-20b-q4/manifest.json +195 -0
- package/dist/catalog/chat-models/gp/gpt-oss-20b-q4/versions/1.1.0/manifest.json +72 -0
- package/dist/catalog/chat-models/gp/gpt-oss-20b-q4/versions/1.1.1/manifest.json +71 -0
- package/dist/catalog/chat-models/gr/granite4.2-30b-q4/manifest.json +200 -0
- package/dist/catalog/chat-models/gr/granite4.2-30b-q4/versions/1.0.0/manifest.json +72 -0
- package/dist/catalog/chat-models/gr/granite4.2-3b-q4/manifest.json +196 -0
- package/dist/catalog/chat-models/gr/granite4.2-3b-q4/versions/1.0.0/manifest.json +57 -0
- package/dist/catalog/chat-models/gr/granite4.2-8b-q4/manifest.json +189 -0
- package/dist/catalog/chat-models/gr/granite4.2-8b-q4/versions/1.0.0/manifest.json +57 -0
- package/dist/catalog/chat-models/index.json +1 -0
- package/dist/catalog/chat-models/la/laguna-s-2.1-118b-q4/manifest.json +235 -0
- package/dist/catalog/chat-models/la/laguna-s-2.1-118b-q4/versions/1.0.0/manifest.json +124 -0
- package/dist/catalog/chat-models/la/laguna-s-2.1-118b-q4/versions/1.0.1/manifest.json +124 -0
- package/dist/catalog/chat-models/la/laguna-s-2.1-118b-q4/versions/1.0.2/manifest.json +123 -0
- package/dist/catalog/chat-models/la/laguna-s-2.1-118b-q6/manifest.json +257 -0
- package/dist/catalog/chat-models/la/laguna-s-2.1-118b-q6/versions/1.0.0/manifest.json +145 -0
- package/dist/catalog/chat-models/la/laguna-s-2.1-118b-q6/versions/1.0.1/manifest.json +145 -0
- package/dist/catalog/chat-models/la/laguna-s-2.1-118b-q8/manifest.json +285 -0
- package/dist/catalog/chat-models/la/laguna-s-2.1-118b-q8/versions/1.0.0/manifest.json +174 -0
- package/dist/catalog/chat-models/la/laguna-s-2.1-118b-q8/versions/1.0.1/manifest.json +174 -0
- package/dist/catalog/chat-models/la/laguna-s-2.1-118b-q8/versions/1.0.2/manifest.json +173 -0
- package/dist/catalog/chat-models/lf/lfm2.5-2.6b-q4/manifest.json +162 -0
- package/dist/catalog/chat-models/lf/lfm2.5-2.6b-q4/versions/1.0.0/manifest.json +59 -0
- package/dist/catalog/chat-models/lf/lfm2.5-2.6b-q4/versions/1.0.1/manifest.json +58 -0
- package/dist/catalog/chat-models/ll/llama3.2-3b-q4/manifest.json +134 -0
- package/dist/catalog/chat-models/ll/llama3.2-3b-q4/versions/1.1.0/manifest.json +57 -0
- package/dist/catalog/chat-models/ll/llama3.2-3b-q4/versions/1.1.1/manifest.json +56 -0
- package/dist/catalog/chat-models/mi/minicpm5-1b-q4/manifest.json +156 -0
- package/dist/catalog/chat-models/mi/minicpm5-1b-q4/versions/1.0.0/manifest.json +57 -0
- package/dist/catalog/chat-models/mi/minicpm5-2b-q4/manifest.json +161 -0
- package/dist/catalog/chat-models/mi/minicpm5-2b-q4/versions/1.0.0/manifest.json +57 -0
- package/dist/catalog/chat-models/mi/mistral-7b-q4/manifest.json +159 -0
- package/dist/catalog/chat-models/mi/mistral-7b-q4/versions/1.1.0/manifest.json +62 -0
- package/dist/catalog/chat-models/mi/mistral-7b-q4/versions/1.1.1/manifest.json +61 -0
- package/dist/catalog/chat-models/mi/mistral-medium-3.5-128b-q4/manifest.json +275 -0
- package/dist/catalog/chat-models/mi/mistral-medium-3.5-128b-q4/versions/1.0.0/manifest.json +154 -0
- package/dist/catalog/chat-models/mi/mistral-medium-3.5-128b-q4/versions/1.0.1/manifest.json +153 -0
- package/dist/catalog/chat-models/mu/muse-glimmer-30b-q4/manifest.json +135 -0
- package/dist/catalog/chat-models/mu/muse-glimmer-30b-q4/versions/1.0.0/manifest.json +20 -0
- package/dist/catalog/chat-models/mu/muse-glimmer-30b-q4/versions/1.0.1/manifest.json +20 -0
- package/dist/catalog/chat-models/mu/muse-glimmer-30b-q4/versions/1.0.2/manifest.json +20 -0
- package/dist/catalog/chat-models/na/nanbeige4.2-3b-q4/manifest.json +138 -0
- package/dist/catalog/chat-models/na/nanbeige4.2-3b-q4/versions/1.0.0/manifest.json +14 -0
- package/dist/catalog/chat-models/ne/nemotron3-nano-30b-q4/manifest.json +212 -0
- package/dist/catalog/chat-models/ne/nemotron3-nano-30b-q4/versions/1.0.0/manifest.json +94 -0
- package/dist/catalog/chat-models/ne/nemotron3-nano-30b-q4/versions/1.0.1/manifest.json +94 -0
- package/dist/catalog/chat-models/ne/nemotron3-nano-30b-q4/versions/1.0.2/manifest.json +93 -0
- package/dist/catalog/chat-models/ne/nemotron3-super-120b-q4/manifest.json +135 -0
- package/dist/catalog/chat-models/ne/nemotron3-super-120b-q4/versions/1.0.0/manifest.json +30 -0
- package/dist/catalog/chat-models/ne/nemotron3-super-120b-q4/versions/1.0.1/manifest.json +30 -0
- package/dist/catalog/chat-models/ne/nemotron3.5-lightning-30b-q4/manifest.json +192 -0
- package/dist/catalog/chat-models/ne/nemotron3.5-lightning-30b-q4/versions/1.0.0/manifest.json +74 -0
- package/dist/catalog/chat-models/ne/nemotron3.5-lightning-30b-q4/versions/1.0.1/manifest.json +73 -0
- package/dist/catalog/chat-models/ne/nemotron3.5-lightning-30b-q8/manifest.json +207 -0
- package/dist/catalog/chat-models/ne/nemotron3.5-lightning-30b-q8/versions/1.0.0/manifest.json +89 -0
- package/dist/catalog/chat-models/ne/nemotron3.5-lightning-30b-q8/versions/1.0.1/manifest.json +88 -0
- package/dist/catalog/chat-models/or/ornith-35b-q4/manifest.json +224 -0
- package/dist/catalog/chat-models/or/ornith-35b-q4/versions/1.0.0/manifest.json +94 -0
- package/dist/catalog/chat-models/or/ornith-35b-q4/versions/1.0.1/manifest.json +93 -0
- package/dist/catalog/chat-models/or/ornith-35b-q8/manifest.json +244 -0
- package/dist/catalog/chat-models/or/ornith-35b-q8/versions/1.0.0/manifest.json +114 -0
- package/dist/catalog/chat-models/or/ornith-35b-q8/versions/1.0.1/manifest.json +113 -0
- package/dist/catalog/chat-models/or/ornith-9b-q4/manifest.json +215 -0
- package/dist/catalog/chat-models/or/ornith-9b-q4/versions/1.0.0/manifest.json +84 -0
- package/dist/catalog/chat-models/or/ornith-9b-q4/versions/1.0.1/manifest.json +83 -0
- package/dist/catalog/chat-models/or/ornith1.5-35b-a3b-q4/manifest.json +208 -0
- package/dist/catalog/chat-models/or/ornith1.5-35b-a3b-q4/versions/1.0.0/manifest.json +74 -0
- package/dist/catalog/chat-models/or/ornith1.5-35b-a3b-q8/manifest.json +223 -0
- package/dist/catalog/chat-models/or/ornith1.5-35b-a3b-q8/versions/1.0.0/manifest.json +89 -0
- package/dist/catalog/chat-models/or/ornith1.5-9b-q4/manifest.json +187 -0
- package/dist/catalog/chat-models/or/ornith1.5-9b-q4/versions/1.0.0/manifest.json +53 -0
- package/dist/catalog/chat-models/or/ornith1.5-9b-q4/versions/1.0.1/manifest.json +77 -0
- package/dist/catalog/chat-models/or/ornith1.5-9b-q8/manifest.json +192 -0
- package/dist/catalog/chat-models/or/ornith1.5-9b-q8/versions/1.0.0/manifest.json +58 -0
- package/dist/catalog/chat-models/or/ornith1.5-9b-q8/versions/1.0.1/manifest.json +82 -0
- package/dist/catalog/chat-models/qw/qwen3.5-0.8b-q4/manifest.json +192 -0
- package/dist/catalog/chat-models/qw/qwen3.5-0.8b-q4/versions/1.0.0/manifest.json +75 -0
- package/dist/catalog/chat-models/qw/qwen3.5-122b-a10b-q4/manifest.json +315 -0
- package/dist/catalog/chat-models/qw/qwen3.5-122b-a10b-q4/versions/1.0.0/manifest.json +164 -0
- package/dist/catalog/chat-models/qw/qwen3.5-122b-a10b-q4/versions/1.0.1/manifest.json +164 -0
- package/dist/catalog/chat-models/qw/qwen3.5-122b-a10b-q4/versions/1.0.2/manifest.json +164 -0
- package/dist/catalog/chat-models/qw/qwen3.5-122b-a10b-q4/versions/1.0.3/manifest.json +163 -0
- package/dist/catalog/chat-models/qw/qwen3.5-27b-q4/manifest.json +217 -0
- package/dist/catalog/chat-models/qw/qwen3.5-27b-q4/versions/1.0.0/manifest.json +90 -0
- package/dist/catalog/chat-models/qw/qwen3.5-2b-q4/manifest.json +194 -0
- package/dist/catalog/chat-models/qw/qwen3.5-2b-q4/versions/1.1.0/manifest.json +77 -0
- package/dist/catalog/chat-models/qw/qwen3.5-2b-q4/versions/1.1.2/manifest.json +76 -0
- package/dist/catalog/chat-models/qw/qwen3.5-2b-q4/versions/1.1.3/manifest.json +76 -0
- package/dist/catalog/chat-models/qw/qwen3.5-4b-q4/manifest.json +188 -0
- package/dist/catalog/chat-models/qw/qwen3.5-4b-q4/versions/1.1.0/manifest.json +77 -0
- package/dist/catalog/chat-models/qw/qwen3.5-4b-q4/versions/1.1.2/manifest.json +76 -0
- package/dist/catalog/chat-models/qw/qwen3.5-4b-q4/versions/1.1.3/manifest.json +76 -0
- package/dist/catalog/chat-models/qw/qwen3.5-9b-q4/manifest.json +205 -0
- package/dist/catalog/chat-models/qw/qwen3.5-9b-q4/versions/1.1.0/manifest.json +82 -0
- package/dist/catalog/chat-models/qw/qwen3.5-9b-q4/versions/1.1.2/manifest.json +81 -0
- package/dist/catalog/chat-models/qw/qwen3.5-9b-q4/versions/1.1.3/manifest.json +81 -0
- package/dist/catalog/chat-models/qw/qwen3.6-27b-q4/manifest.json +230 -0
- package/dist/catalog/chat-models/qw/qwen3.6-27b-q4/versions/1.1.0/manifest.json +92 -0
- package/dist/catalog/chat-models/qw/qwen3.6-27b-q4/versions/1.1.4/manifest.json +91 -0
- package/dist/catalog/chat-models/qw/qwen3.6-27b-q4/versions/1.1.5/manifest.json +91 -0
- package/dist/catalog/chat-models/qw/qwen3.6-27b-q4/versions/1.1.6/manifest.json +115 -0
- package/dist/catalog/chat-models/qw/qwen3.6-27b-q8/manifest.json +240 -0
- package/dist/catalog/chat-models/qw/qwen3.6-27b-q8/versions/1.0.0/manifest.json +102 -0
- package/dist/catalog/chat-models/qw/qwen3.6-27b-q8/versions/1.0.2/manifest.json +103 -0
- package/dist/catalog/chat-models/qw/qwen3.6-27b-q8/versions/1.0.3/manifest.json +103 -0
- package/dist/catalog/chat-models/qw/qwen3.6-27b-q8/versions/1.0.4/manifest.json +127 -0
- package/dist/catalog/chat-models/qw/qwen3.6-35b-a3b-q4/manifest.json +233 -0
- package/dist/catalog/chat-models/qw/qwen3.6-35b-a3b-q4/versions/1.0.0/manifest.json +92 -0
- package/dist/catalog/chat-models/qw/qwen3.6-35b-a3b-q4/versions/1.0.1/manifest.json +93 -0
- package/dist/catalog/chat-models/qw/qwen3.6-35b-a3b-q4/versions/1.0.2/manifest.json +93 -0
- package/dist/catalog/chat-models/qw/qwen3.6-35b-a3b-q4/versions/1.0.3/manifest.json +117 -0
- package/dist/catalog/chat-models/qw/qwen3.6-35b-a3b-q8/manifest.json +252 -0
- package/dist/catalog/chat-models/qw/qwen3.6-35b-a3b-q8/versions/1.0.0/manifest.json +112 -0
- package/dist/catalog/chat-models/qw/qwen3.6-35b-a3b-q8/versions/1.0.1/manifest.json +113 -0
- package/dist/catalog/chat-models/qw/qwen3.6-35b-a3b-q8/versions/1.0.2/manifest.json +113 -0
- package/dist/catalog/chat-models/qw/qwen3.6-35b-a3b-q8/versions/1.0.3/manifest.json +137 -0
- package/dist/catalog/chat-models/qw/qwen3.8-27b-iq1-s/manifest.json +195 -0
- package/dist/catalog/chat-models/qw/qwen3.8-27b-iq1-s/versions/1.0.0/manifest.json +19 -0
- package/dist/catalog/chat-models/qw/qwen3.8-27b-q2/manifest.json +194 -0
- package/dist/catalog/chat-models/qw/qwen3.8-27b-q2/versions/1.0.0/manifest.json +19 -0
- package/dist/catalog/chat-models/qw/qwen3.8-27b-q3/manifest.json +194 -0
- package/dist/catalog/chat-models/qw/qwen3.8-27b-q3/versions/1.0.0/manifest.json +19 -0
- package/dist/catalog/chat-models/qw/qwen3.8-27b-q3/versions/1.0.1/manifest.json +19 -0
- package/dist/catalog/chat-models/qw/qwen3.8-27b-q4/manifest.json +291 -0
- package/dist/catalog/chat-models/qw/qwen3.8-27b-q4/versions/1.0.0/manifest.json +20 -0
- package/dist/catalog/chat-models/qw/qwen3.8-27b-q4/versions/1.0.1/manifest.json +93 -0
- package/dist/catalog/chat-models/qw/qwen3.8-27b-q4/versions/1.0.2/manifest.json +92 -0
- package/dist/catalog/chat-models/qw/qwen3.8-27b-q4/versions/1.0.3/manifest.json +116 -0
- package/dist/catalog/chat-models/qw/qwen3.8-27b-q4/versions/1.0.4/manifest.json +116 -0
- package/dist/catalog/chat-models/qw/qwen3.8-27b-q4/versions/1.0.5/manifest.json +116 -0
- package/dist/catalog/chat-models/qw/qwen3.8-27b-q6/manifest.json +278 -0
- package/dist/catalog/chat-models/qw/qwen3.8-27b-q6/versions/1.0.0/manifest.json +20 -0
- package/dist/catalog/chat-models/qw/qwen3.8-27b-q6/versions/1.0.1/manifest.json +104 -0
- package/dist/catalog/chat-models/qw/qwen3.8-27b-q6/versions/1.0.2/manifest.json +103 -0
- package/dist/catalog/chat-models/qw/qwen3.8-27b-q6/versions/1.0.3/manifest.json +127 -0
- package/dist/catalog/chat-models/qw/qwen3.8-27b-q8/manifest.json +278 -0
- package/dist/catalog/chat-models/qw/qwen3.8-27b-q8/versions/1.0.0/manifest.json +113 -0
- package/dist/catalog/chat-models/qw/qwen3.8-27b-q8/versions/1.0.1/manifest.json +113 -0
- package/dist/catalog/chat-models/qw/qwen3.8-27b-q8/versions/1.0.2/manifest.json +137 -0
- package/dist/catalog/chat-models/qw/qwen3.8-flash-next-iq3/manifest.json +221 -0
- package/dist/catalog/chat-models/qw/qwen3.8-flash-next-iq3/versions/1.0.0/manifest.json +36 -0
- package/dist/catalog/chat-models/qw/qwen3.8-flash-next-iq4/manifest.json +429 -0
- package/dist/catalog/chat-models/qw/qwen3.8-flash-next-iq4/versions/1.0.0/manifest.json +36 -0
- package/dist/catalog/chat-models/qw/qwen3.8-flash-next-iq4/versions/1.1.0/manifest.json +205 -0
- package/dist/catalog/chat-models/qw/qwen3.8-flash-next-iq4/versions/1.1.1/manifest.json +244 -0
- package/dist/catalog/chat-models/qw/qwen3.8-flash-next-q2/manifest.json +203 -0
- package/dist/catalog/chat-models/qw/qwen3.8-flash-next-q2/versions/1.0.0/manifest.json +21 -0
- package/dist/catalog/chat-models/qw/qwen3.8-flash-next-q2/versions/1.0.1/manifest.json +31 -0
- package/dist/catalog/chat-models/qw/qwen3.8-flash-next-q2/versions/1.0.2/manifest.json +30 -0
- package/dist/catalog/chat-models/raw-index.json +1 -0
- package/dist/catalog/chat-models/ta/talkie-1930-13b-q4/manifest.json +79 -0
- package/dist/catalog/chat-models/ta/talkie-1930-13b-q4/versions/1.0.0/manifest.json +15 -0
- package/dist/catalog/chat-models/ta/talkie-1930-13b-q4/versions/1.0.1/manifest.json +15 -0
- package/dist/catalog/chat-models/te/ternary-bonsai-27b-q2/manifest.json +204 -0
- package/dist/catalog/chat-models/te/ternary-bonsai-27b-q2/versions/1.0.0/manifest.json +70 -0
- package/dist/catalog/chat-models/te/ternary-bonsai-27b-q2/versions/1.0.1/manifest.json +70 -0
- package/dist/catalog/chat-models/un/underdog-saluki-27b-iq2-mix/manifest.json +164 -0
- package/dist/catalog/chat-models/un/underdog-saluki-27b-iq2-mix/versions/1.0.0/manifest.json +14 -0
- package/dist/catalog/knowledge-catalogs/be/bendyline-how-to-books/manifest.json +26 -0
- package/dist/catalog/knowledge-catalogs/be/bendyline-how-to-books/versions/2026.10.8/manifest.json +8950 -0
- package/dist/catalog/knowledge-catalogs/ca/caselaw-alaska-part-0001/manifest.json +24 -0
- package/dist/catalog/knowledge-catalogs/ca/caselaw-alaska-part-0001/versions/2026.10.1/manifest.json +658 -0
- package/dist/catalog/knowledge-catalogs/ca/caselaw-nevada-part-0001/manifest.json +24 -0
- package/dist/catalog/knowledge-catalogs/ca/caselaw-nevada-part-0001/versions/2026.10.1/manifest.json +666 -0
- package/dist/catalog/knowledge-catalogs/ca/caselaw-us-300-399-part-0001/manifest.json +24 -0
- package/dist/catalog/knowledge-catalogs/ca/caselaw-us-300-399-part-0001/versions/2026.10.2/manifest.json +182 -0
- package/dist/catalog/knowledge-catalogs/ca/caselaw-us-347-349/manifest.json +25 -0
- package/dist/catalog/knowledge-catalogs/ca/caselaw-us-347-349/versions/2026.10.5/manifest.json +38 -0
- package/dist/catalog/knowledge-catalogs/ca/caselaw-utah-part-0001/manifest.json +24 -0
- package/dist/catalog/knowledge-catalogs/ca/caselaw-utah-part-0001/versions/2026.10.1/manifest.json +558 -0
- package/dist/catalog/knowledge-catalogs/ca/caselaw-utah-part-0002/manifest.json +24 -0
- package/dist/catalog/knowledge-catalogs/ca/caselaw-utah-part-0002/versions/2026.10.1/manifest.json +258 -0
- package/dist/catalog/knowledge-catalogs/ca/caselaw-washington-part-0001/manifest.json +24 -0
- package/dist/catalog/knowledge-catalogs/ca/caselaw-washington-part-0001/versions/2026.10.1/manifest.json +318 -0
- package/dist/catalog/knowledge-catalogs/ca/caselaw-washington-part-0002/manifest.json +24 -0
- package/dist/catalog/knowledge-catalogs/ca/caselaw-washington-part-0002/versions/2026.10.1/manifest.json +266 -0
- package/dist/catalog/knowledge-catalogs/ca/caselaw-washington-part-0003/manifest.json +24 -0
- package/dist/catalog/knowledge-catalogs/ca/caselaw-washington-part-0003/versions/2026.10.1/manifest.json +186 -0
- package/dist/catalog/knowledge-catalogs/ca/caselaw-washington-part-0004/manifest.json +24 -0
- package/dist/catalog/knowledge-catalogs/ca/caselaw-washington-part-0004/versions/2026.10.1/manifest.json +138 -0
- package/dist/catalog/knowledge-catalogs/ca/caselaw-washington-part-0005/manifest.json +24 -0
- package/dist/catalog/knowledge-catalogs/ca/caselaw-washington-part-0005/versions/2026.10.1/manifest.json +138 -0
- package/dist/catalog/knowledge-catalogs/ca/caselaw-wyoming-part-0001/manifest.json +24 -0
- package/dist/catalog/knowledge-catalogs/ca/caselaw-wyoming-part-0001/versions/2026.10.3/manifest.json +626 -0
- package/dist/catalog/knowledge-catalogs/index.json +1 -0
- package/dist/catalog/knowledge-catalogs/mi/microsoftdocs-aspnet-core-en/manifest.json +22 -0
- package/dist/catalog/knowledge-catalogs/mi/microsoftdocs-aspnet-core-en/versions/2026.10.16/manifest.json +18270 -0
- package/dist/catalog/knowledge-catalogs/mi/microsoftdocs-azure-ai-platform-en/manifest.json +23 -0
- package/dist/catalog/knowledge-catalogs/mi/microsoftdocs-azure-ai-platform-en/versions/2026.10.16/manifest.json +1098 -0
- package/dist/catalog/knowledge-catalogs/mi/microsoftdocs-azure-apps-compute-en/manifest.json +23 -0
- package/dist/catalog/knowledge-catalogs/mi/microsoftdocs-azure-apps-compute-en/versions/2026.10.16/manifest.json +722 -0
- package/dist/catalog/knowledge-catalogs/mi/microsoftdocs-azure-data-aiot-en/manifest.json +23 -0
- package/dist/catalog/knowledge-catalogs/mi/microsoftdocs-azure-data-aiot-en/versions/2026.10.16/manifest.json +530 -0
- package/dist/catalog/knowledge-catalogs/mi/microsoftdocs-azure-management-hybrid-en/manifest.json +23 -0
- package/dist/catalog/knowledge-catalogs/mi/microsoftdocs-azure-management-hybrid-en/versions/2026.10.16/manifest.json +602 -0
- package/dist/catalog/knowledge-catalogs/mi/microsoftdocs-azure-network-security-en/manifest.json +23 -0
- package/dist/catalog/knowledge-catalogs/mi/microsoftdocs-azure-network-security-en/versions/2026.10.16/manifest.json +250 -0
- package/dist/catalog/knowledge-catalogs/mi/microsoftdocs-dotnet-en/manifest.json +22 -0
- package/dist/catalog/knowledge-catalogs/mi/microsoftdocs-dotnet-en/versions/2026.10.16/manifest.json +16794 -0
- package/dist/catalog/knowledge-catalogs/mi/microsoftdocs-entity-framework-en/manifest.json +22 -0
- package/dist/catalog/knowledge-catalogs/mi/microsoftdocs-entity-framework-en/versions/2026.10.16/manifest.json +1106 -0
- package/dist/catalog/knowledge-catalogs/mi/microsoftdocs-microsoft-365-en/manifest.json +22 -0
- package/dist/catalog/knowledge-catalogs/mi/microsoftdocs-microsoft-365-en/versions/2026.10.16/manifest.json +234 -0
- package/dist/catalog/knowledge-catalogs/mi/microsoftdocs-powershell-en/manifest.json +22 -0
- package/dist/catalog/knowledge-catalogs/mi/microsoftdocs-powershell-en/versions/2026.10.16/manifest.json +522 -0
- package/dist/catalog/knowledge-catalogs/mi/microsoftdocs-sql-server-en/manifest.json +22 -0
- package/dist/catalog/knowledge-catalogs/mi/microsoftdocs-sql-server-en/versions/2026.10.16/manifest.json +1850 -0
- package/dist/catalog/knowledge-catalogs/mi/microsoftdocs-windows-apps-en/manifest.json +22 -0
- package/dist/catalog/knowledge-catalogs/mi/microsoftdocs-windows-apps-en/versions/2026.10.16/manifest.json +1734 -0
- package/dist/catalog/knowledge-catalogs/mi/microsoftdocs-windows-server-en/manifest.json +22 -0
- package/dist/catalog/knowledge-catalogs/mi/microsoftdocs-windows-server-en/versions/2026.10.16/manifest.json +774 -0
- package/dist/catalog/knowledge-catalogs/raw-index.json +1 -0
- package/dist/catalog/knowledge-catalogs/re/regional-american-south/art.json +12 -0
- package/dist/catalog/knowledge-catalogs/re/regional-american-south/logo.webp +0 -0
- package/dist/catalog/knowledge-catalogs/re/regional-american-south/manifest.json +48 -0
- package/dist/catalog/knowledge-catalogs/re/regional-american-south/versions/2026.10.3/manifest.json +133 -0
- package/dist/catalog/knowledge-catalogs/re/regional-andes-amazon/art.json +12 -0
- package/dist/catalog/knowledge-catalogs/re/regional-andes-amazon/logo.webp +0 -0
- package/dist/catalog/knowledge-catalogs/re/regional-andes-amazon/manifest.json +48 -0
- package/dist/catalog/knowledge-catalogs/re/regional-andes-amazon/versions/2026.10.3/manifest.json +133 -0
- package/dist/catalog/knowledge-catalogs/re/regional-australia-nz/art.json +12 -0
- package/dist/catalog/knowledge-catalogs/re/regional-australia-nz/logo.webp +0 -0
- package/dist/catalog/knowledge-catalogs/re/regional-australia-nz/manifest.json +48 -0
- package/dist/catalog/knowledge-catalogs/re/regional-australia-nz/versions/2026.10.3/manifest.json +133 -0
- package/dist/catalog/knowledge-catalogs/re/regional-brazil/art.json +12 -0
- package/dist/catalog/knowledge-catalogs/re/regional-brazil/logo.webp +0 -0
- package/dist/catalog/knowledge-catalogs/re/regional-brazil/manifest.json +48 -0
- package/dist/catalog/knowledge-catalogs/re/regional-brazil/versions/2026.10.3/manifest.json +133 -0
- package/dist/catalog/knowledge-catalogs/re/regional-britain-ireland/art.json +12 -0
- package/dist/catalog/knowledge-catalogs/re/regional-britain-ireland/logo.webp +0 -0
- package/dist/catalog/knowledge-catalogs/re/regional-britain-ireland/manifest.json +48 -0
- package/dist/catalog/knowledge-catalogs/re/regional-britain-ireland/versions/2026.10.3/manifest.json +133 -0
- package/dist/catalog/knowledge-catalogs/re/regional-california-southwest/art.json +12 -0
- package/dist/catalog/knowledge-catalogs/re/regional-california-southwest/logo.webp +0 -0
- package/dist/catalog/knowledge-catalogs/re/regional-california-southwest/manifest.json +48 -0
- package/dist/catalog/knowledge-catalogs/re/regional-california-southwest/versions/2026.10.3/manifest.json +133 -0
- package/dist/catalog/knowledge-catalogs/re/regional-canada-alaska/art.json +12 -0
- package/dist/catalog/knowledge-catalogs/re/regional-canada-alaska/logo.webp +0 -0
- package/dist/catalog/knowledge-catalogs/re/regional-canada-alaska/manifest.json +48 -0
- package/dist/catalog/knowledge-catalogs/re/regional-canada-alaska/versions/2026.10.3/manifest.json +133 -0
- package/dist/catalog/knowledge-catalogs/re/regional-central-eastern-europe/art.json +12 -0
- package/dist/catalog/knowledge-catalogs/re/regional-central-eastern-europe/logo.webp +0 -0
- package/dist/catalog/knowledge-catalogs/re/regional-central-eastern-europe/manifest.json +48 -0
- package/dist/catalog/knowledge-catalogs/re/regional-central-eastern-europe/versions/2026.10.3/manifest.json +133 -0
- package/dist/catalog/knowledge-catalogs/re/regional-east-asia/art.json +12 -0
- package/dist/catalog/knowledge-catalogs/re/regional-east-asia/logo.webp +0 -0
- package/dist/catalog/knowledge-catalogs/re/regional-east-asia/manifest.json +48 -0
- package/dist/catalog/knowledge-catalogs/re/regional-east-asia/versions/2026.10.3/manifest.json +133 -0
- package/dist/catalog/knowledge-catalogs/re/regional-east-southern-africa/art.json +12 -0
- package/dist/catalog/knowledge-catalogs/re/regional-east-southern-africa/logo.webp +0 -0
- package/dist/catalog/knowledge-catalogs/re/regional-east-southern-africa/manifest.json +48 -0
- package/dist/catalog/knowledge-catalogs/re/regional-east-southern-africa/versions/2026.10.3/manifest.json +133 -0
- package/dist/catalog/knowledge-catalogs/re/regional-mediterranean/art.json +12 -0
- package/dist/catalog/knowledge-catalogs/re/regional-mediterranean/logo.webp +0 -0
- package/dist/catalog/knowledge-catalogs/re/regional-mediterranean/manifest.json +48 -0
- package/dist/catalog/knowledge-catalogs/re/regional-mediterranean/versions/2026.10.3/manifest.json +133 -0
- package/dist/catalog/knowledge-catalogs/re/regional-mexico-central-america/art.json +12 -0
- package/dist/catalog/knowledge-catalogs/re/regional-mexico-central-america/logo.webp +0 -0
- package/dist/catalog/knowledge-catalogs/re/regional-mexico-central-america/manifest.json +48 -0
- package/dist/catalog/knowledge-catalogs/re/regional-mexico-central-america/versions/2026.10.3/manifest.json +133 -0
- package/dist/catalog/knowledge-catalogs/re/regional-middle-east/art.json +12 -0
- package/dist/catalog/knowledge-catalogs/re/regional-middle-east/logo.webp +0 -0
- package/dist/catalog/knowledge-catalogs/re/regional-middle-east/manifest.json +48 -0
- package/dist/catalog/knowledge-catalogs/re/regional-middle-east/versions/2026.10.3/manifest.json +133 -0
- package/dist/catalog/knowledge-catalogs/re/regional-midwest/art.json +12 -0
- package/dist/catalog/knowledge-catalogs/re/regional-midwest/logo.webp +0 -0
- package/dist/catalog/knowledge-catalogs/re/regional-midwest/manifest.json +48 -0
- package/dist/catalog/knowledge-catalogs/re/regional-midwest/versions/2026.10.3/manifest.json +133 -0
- package/dist/catalog/knowledge-catalogs/re/regional-north-africa/art.json +12 -0
- package/dist/catalog/knowledge-catalogs/re/regional-north-africa/logo.webp +0 -0
- package/dist/catalog/knowledge-catalogs/re/regional-north-africa/manifest.json +48 -0
- package/dist/catalog/knowledge-catalogs/re/regional-north-africa/versions/2026.10.3/manifest.json +133 -0
- package/dist/catalog/knowledge-catalogs/re/regional-northeast/art.json +12 -0
- package/dist/catalog/knowledge-catalogs/re/regional-northeast/logo.webp +0 -0
- package/dist/catalog/knowledge-catalogs/re/regional-northeast/manifest.json +48 -0
- package/dist/catalog/knowledge-catalogs/re/regional-northeast/versions/2026.10.3/manifest.json +133 -0
- package/dist/catalog/knowledge-catalogs/re/regional-northern-eurasia/art.json +12 -0
- package/dist/catalog/knowledge-catalogs/re/regional-northern-eurasia/logo.webp +0 -0
- package/dist/catalog/knowledge-catalogs/re/regional-northern-eurasia/manifest.json +48 -0
- package/dist/catalog/knowledge-catalogs/re/regional-northern-eurasia/versions/2026.10.3/manifest.json +133 -0
- package/dist/catalog/knowledge-catalogs/re/regional-northern-europe/art.json +12 -0
- package/dist/catalog/knowledge-catalogs/re/regional-northern-europe/logo.webp +0 -0
- package/dist/catalog/knowledge-catalogs/re/regional-northern-europe/manifest.json +48 -0
- package/dist/catalog/knowledge-catalogs/re/regional-northern-europe/versions/2026.10.3/manifest.json +133 -0
- package/dist/catalog/knowledge-catalogs/re/regional-pacific-islands/art.json +12 -0
- package/dist/catalog/knowledge-catalogs/re/regional-pacific-islands/logo.webp +0 -0
- package/dist/catalog/knowledge-catalogs/re/regional-pacific-islands/manifest.json +48 -0
- package/dist/catalog/knowledge-catalogs/re/regional-pacific-islands/versions/2026.10.3/manifest.json +133 -0
- package/dist/catalog/knowledge-catalogs/re/regional-pacific-northwest/art.json +12 -0
- package/dist/catalog/knowledge-catalogs/re/regional-pacific-northwest/logo.webp +0 -0
- package/dist/catalog/knowledge-catalogs/re/regional-pacific-northwest/manifest.json +48 -0
- package/dist/catalog/knowledge-catalogs/re/regional-pacific-northwest/versions/2026.10.3/manifest.json +133 -0
- package/dist/catalog/knowledge-catalogs/re/regional-rockies-plains/art.json +12 -0
- package/dist/catalog/knowledge-catalogs/re/regional-rockies-plains/logo.webp +0 -0
- package/dist/catalog/knowledge-catalogs/re/regional-rockies-plains/manifest.json +48 -0
- package/dist/catalog/knowledge-catalogs/re/regional-rockies-plains/versions/2026.10.3/manifest.json +133 -0
- package/dist/catalog/knowledge-catalogs/re/regional-south-asia/art.json +12 -0
- package/dist/catalog/knowledge-catalogs/re/regional-south-asia/logo.webp +0 -0
- package/dist/catalog/knowledge-catalogs/re/regional-south-asia/manifest.json +48 -0
- package/dist/catalog/knowledge-catalogs/re/regional-south-asia/versions/2026.10.3/manifest.json +133 -0
- package/dist/catalog/knowledge-catalogs/re/regional-southeast-asia/art.json +12 -0
- package/dist/catalog/knowledge-catalogs/re/regional-southeast-asia/logo.webp +0 -0
- package/dist/catalog/knowledge-catalogs/re/regional-southeast-asia/manifest.json +48 -0
- package/dist/catalog/knowledge-catalogs/re/regional-southeast-asia/versions/2026.10.3/manifest.json +133 -0
- package/dist/catalog/knowledge-catalogs/re/regional-southern-cone/art.json +12 -0
- package/dist/catalog/knowledge-catalogs/re/regional-southern-cone/logo.webp +0 -0
- package/dist/catalog/knowledge-catalogs/re/regional-southern-cone/manifest.json +48 -0
- package/dist/catalog/knowledge-catalogs/re/regional-southern-cone/versions/2026.10.3/manifest.json +133 -0
- package/dist/catalog/knowledge-catalogs/re/regional-west-central-africa/art.json +12 -0
- package/dist/catalog/knowledge-catalogs/re/regional-west-central-africa/logo.webp +0 -0
- package/dist/catalog/knowledge-catalogs/re/regional-west-central-africa/manifest.json +48 -0
- package/dist/catalog/knowledge-catalogs/re/regional-west-central-africa/versions/2026.10.3/manifest.json +133 -0
- package/dist/catalog/knowledge-catalogs/re/regional-western-europe/art.json +12 -0
- package/dist/catalog/knowledge-catalogs/re/regional-western-europe/logo.webp +0 -0
- package/dist/catalog/knowledge-catalogs/re/regional-western-europe/manifest.json +48 -0
- package/dist/catalog/knowledge-catalogs/re/regional-western-europe/versions/2026.10.3/manifest.json +133 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-arts/art.json +12 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-arts/logo.webp +0 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-arts/manifest.json +28 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-arts/versions/2026.4.2/manifest.json +53 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-arts/versions/2026.4.3/manifest.json +885 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-arts/versions/2026.4.5/manifest.json +157 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-astronomy/art.json +11 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-astronomy/logo.webp +0 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-astronomy/manifest.json +32 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-astronomy/versions/2026.4.2/manifest.json +69 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-astronomy/versions/2026.4.3/manifest.json +741 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-astronomy/versions/2026.4.5/manifest.json +173 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-biology/art.json +12 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-biology/logo.webp +0 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-biology/manifest.json +69 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-biology/versions/2026.4.4/manifest.json +217 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-biology/versions/2026.4.5/manifest.json +217 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-business/art.json +12 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-business/logo.webp +0 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-business/manifest.json +64 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-business/versions/2026.4.4/manifest.json +197 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-business/versions/2026.4.5/manifest.json +197 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-film-tv/art.json +12 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-film-tv/logo.webp +0 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-film-tv/manifest.json +64 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-film-tv/versions/2026.4.5/manifest.json +197 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-food-drink/art.json +11 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-food-drink/logo.webp +0 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-food-drink/manifest.json +29 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-food-drink/versions/2026.4.2/manifest.json +57 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-food-drink/versions/2026.4.3/manifest.json +925 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-food-drink/versions/2026.4.5/manifest.json +185 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-games/art.json +12 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-games/logo.webp +0 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-games/manifest.json +28 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-games/versions/2026.4.2/manifest.json +53 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-games/versions/2026.4.3/manifest.json +1665 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-games/versions/2026.4.5/manifest.json +133 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-language/art.json +12 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-language/logo.webp +0 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-language/manifest.json +29 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-language/versions/2026.4.2/manifest.json +57 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-language/versions/2026.4.3/manifest.json +1233 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-language/versions/2026.4.5/manifest.json +141 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-law/art.json +11 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-law/logo.webp +0 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-law/manifest.json +29 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-law/versions/2026.4.2/manifest.json +57 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-law/versions/2026.4.3/manifest.json +493 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-law/versions/2026.4.5/manifest.json +185 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-literature/art.json +12 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-literature/logo.webp +0 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-literature/manifest.json +63 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-literature/versions/2026.4.4/manifest.json +193 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-literature/versions/2026.4.5/manifest.json +193 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-mathematics/art.json +12 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-mathematics/logo.webp +0 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-mathematics/manifest.json +30 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-mathematics/versions/2026.4.2/manifest.json +61 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-mathematics/versions/2026.4.3/manifest.json +665 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-mathematics/versions/2026.4.5/manifest.json +177 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-medicine/art.json +12 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-medicine/logo.webp +0 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-medicine/manifest.json +29 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-medicine/versions/2026.4.2/manifest.json +57 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-medicine/versions/2026.4.3/manifest.json +745 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-medicine/versions/2026.4.5/manifest.json +185 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-military/art.json +12 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-military/logo.webp +0 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-military/manifest.json +62 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-military/versions/2026.4.4/manifest.json +189 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-military/versions/2026.4.5/manifest.json +189 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-music/art.json +12 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-music/logo.webp +0 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-music/manifest.json +64 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-music/versions/2026.4.5/manifest.json +197 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-politics/art.json +12 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-politics/logo.webp +0 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-politics/manifest.json +64 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-politics/versions/2026.4.4/manifest.json +197 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-politics/versions/2026.4.5/manifest.json +197 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-religion-philosophy/art.json +12 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-religion-philosophy/logo.webp +0 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-religion-philosophy/manifest.json +30 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-religion-philosophy/versions/2026.4.2/manifest.json +61 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-religion-philosophy/versions/2026.4.3/manifest.json +1253 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-religion-philosophy/versions/2026.4.5/manifest.json +189 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-science/art.json +12 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-science/logo.webp +0 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-science/manifest.json +29 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-science/versions/2026.4.2/manifest.json +57 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-science/versions/2026.4.3/manifest.json +1957 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-science/versions/2026.4.5/manifest.json +185 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-sports/art.json +12 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-sports/logo.webp +0 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-sports/manifest.json +63 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-sports/versions/2026.4.5/manifest.json +193 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-technology/art.json +11 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-technology/logo.webp +0 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-technology/manifest.json +45 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-technology/versions/2026.4.4/manifest.json +121 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-technology/versions/2026.4.5/manifest.json +173 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-transportation/art.json +12 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-transportation/logo.webp +0 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-transportation/manifest.json +62 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-transportation/versions/2026.4.4/manifest.json +189 -0
- package/dist/catalog/knowledge-catalogs/wi/wikipedia-transportation/versions/2026.4.5/manifest.json +189 -0
- package/dist/catalog/provenance.json +8 -0
- package/dist/chat/catalog-model-lookup.d.ts +21 -0
- package/dist/chat/catalog-model-lookup.js +48 -0
- package/dist/chat/local-model-tier.d.ts +1 -0
- package/dist/chat/local-model-tier.js +2 -0
- package/dist/chat/vision-capability.d.ts +1 -0
- package/dist/chat/vision-capability.js +3 -0
- package/dist/engine-components.d.ts +30 -0
- package/dist/engine-components.js +144 -0
- package/dist/engines/electron-native-reuse.d.ts +65 -0
- package/dist/engines/electron-native-reuse.js +305 -0
- package/dist/engines/native-file-manifest.json +1320 -0
- package/dist/engines/native-manifest.d.ts +70 -0
- package/dist/engines/native-manifest.js +98 -0
- package/dist/engines/registry.d.ts +88 -0
- package/dist/engines/registry.js +217 -0
- package/dist/engines/resolver.d.ts +121 -0
- package/dist/engines/resolver.js +894 -0
- package/dist/engines/signature.d.ts +85 -0
- package/dist/engines/signature.js +231 -0
- package/dist/fs/atomic.d.ts +53 -0
- package/dist/fs/atomic.js +202 -0
- package/dist/fs/config-store.d.ts +14 -0
- package/dist/fs/config-store.js +101 -0
- package/dist/fs/home-permissions.d.ts +18 -0
- package/dist/fs/home-permissions.js +27 -0
- package/dist/fs/safe-paths.d.ts +107 -0
- package/dist/fs/safe-paths.js +264 -0
- package/dist/fs/security-json.d.ts +13 -0
- package/dist/fs/security-json.js +67 -0
- package/dist/http/auth-context.d.ts +23 -0
- package/dist/http/auth-context.js +1 -0
- package/dist/http/engine-runtime-context.d.ts +30 -0
- package/dist/http/engine-runtime-context.js +1 -0
- package/dist/http/external-conversation-contract.d.ts +49 -0
- package/dist/http/external-conversation-contract.js +1 -0
- package/dist/http/external-conversation-headers.d.ts +11 -0
- package/dist/http/external-conversation-headers.js +11 -0
- package/dist/http/inference-context.d.ts +36 -0
- package/dist/http/inference-context.js +1 -0
- package/dist/http/model-inventory-cache.d.ts +8 -0
- package/dist/http/model-inventory-cache.js +8 -0
- package/dist/http/openai-compat/action-ledger.d.ts +15 -0
- package/dist/http/openai-compat/action-ledger.js +119 -0
- package/dist/http/openai-compat/apple-model.d.ts +3 -0
- package/dist/http/openai-compat/apple-model.js +44 -0
- package/dist/http/openai-compat/caller-owned-profile.d.ts +7 -0
- package/dist/http/openai-compat/caller-owned-profile.js +18 -0
- package/dist/http/openai-compat/chat-progress.d.ts +9 -0
- package/dist/http/openai-compat/chat-progress.js +69 -0
- package/dist/http/openai-compat/chat-target.d.ts +76 -0
- package/dist/http/openai-compat/chat-target.js +97 -0
- package/dist/http/openai-compat/embeddings.d.ts +37 -0
- package/dist/http/openai-compat/embeddings.js +86 -0
- package/dist/http/openai-compat/request-tuning.d.ts +35 -0
- package/dist/http/openai-compat/request-tuning.js +87 -0
- package/dist/http/openai-compat/responses-streaming.d.ts +351 -0
- package/dist/http/openai-compat/responses-streaming.js +717 -0
- package/dist/http/openai-compat/responses-translate.d.ts +215 -0
- package/dist/http/openai-compat/responses-translate.js +377 -0
- package/dist/http/openai-compat/streaming-telemetry.d.ts +30 -0
- package/dist/http/openai-compat/streaming-telemetry.js +88 -0
- package/dist/http/openai-compat/streaming.d.ts +141 -0
- package/dist/http/openai-compat/streaming.js +687 -0
- package/dist/http/openai-compat/tool-call-stream-filter.d.ts +33 -0
- package/dist/http/openai-compat/tool-call-stream-filter.js +110 -0
- package/dist/http/openai-compat/translate.d.ts +254 -0
- package/dist/http/openai-compat/translate.js +485 -0
- package/dist/http/routes/engines.d.ts +13 -0
- package/dist/http/routes/engines.js +366 -0
- package/dist/http/routes/machine-engine-proxy.d.ts +26 -0
- package/dist/http/routes/machine-engine-proxy.js +43 -0
- package/dist/http/routes/model-bundles.d.ts +4 -0
- package/dist/http/routes/model-bundles.js +190 -0
- package/dist/http/routes/v1-chat.d.ts +72 -0
- package/dist/http/routes/v1-chat.js +645 -0
- package/dist/http/routes/v1-embeddings.d.ts +3 -0
- package/dist/http/routes/v1-embeddings.js +82 -0
- package/dist/http/routes/v1-knowledge.d.ts +4 -0
- package/dist/http/routes/v1-knowledge.js +304 -0
- package/dist/http/routes/v1-models-ensure.d.ts +32 -0
- package/dist/http/routes/v1-models-ensure.js +122 -0
- package/dist/http/routes/v1-models.d.ts +8 -0
- package/dist/http/routes/v1-models.js +189 -0
- package/dist/http/routes/v1-responses.d.ts +20 -0
- package/dist/http/routes/v1-responses.js +327 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -0
- package/dist/inference-service.d.ts +28 -0
- package/dist/inference-service.js +275 -0
- package/dist/knowledge/admission.d.ts +3 -0
- package/dist/knowledge/admission.js +22 -0
- package/dist/knowledge/bundled-catalog.d.ts +2 -0
- package/dist/knowledge/bundled-catalog.js +2 -0
- package/dist/knowledge/catalog-host.d.ts +103 -0
- package/dist/knowledge/catalog-host.js +180 -0
- package/dist/knowledge/catalog-source.d.ts +22 -0
- package/dist/knowledge/catalog-source.js +35 -0
- package/dist/knowledge/install.d.ts +55 -0
- package/dist/knowledge/install.js +274 -0
- package/dist/knowledge/manager.d.ts +287 -0
- package/dist/knowledge/manager.js +1540 -0
- package/dist/knowledge/registry.d.ts +35 -0
- package/dist/knowledge/registry.js +123 -0
- package/dist/knowledge/search-worker.d.ts +17 -0
- package/dist/knowledge/search-worker.js +36 -0
- package/dist/knowledge/shared-install-contract.d.ts +19 -0
- package/dist/knowledge/shared-install-contract.js +1 -0
- package/dist/knowledge/spatial-query.d.ts +11 -0
- package/dist/knowledge/spatial-query.js +33 -0
- package/dist/knowledge/trust-anchors.d.ts +11 -0
- package/dist/knowledge/trust-anchors.js +51 -0
- package/dist/knowledge/vector-floors.d.ts +44 -0
- package/dist/knowledge/vector-floors.js +92 -0
- package/dist/knowledge/worker-host.d.ts +9 -0
- package/dist/knowledge/worker-host.js +179 -0
- package/dist/kokoro-lexicon/LICENSE +202 -0
- package/dist/kokoro-lexicon/lexicon-gb-en.txt.gz +0 -0
- package/dist/kokoro-lexicon/lexicon-us-en.txt.gz +0 -0
- package/dist/kokoro-lexicon/manifest.json +23 -0
- package/dist/machine-engine/inspect-runtime.d.ts +3 -0
- package/dist/machine-engine/inspect-runtime.js +48 -0
- package/dist/machine-engine/knowledge-assets.d.ts +79 -0
- package/dist/machine-engine/knowledge-assets.js +505 -0
- package/dist/memory/embed-core.d.ts +131 -0
- package/dist/memory/embed-core.js +398 -0
- package/dist/memory/embed-worker.d.ts +23 -0
- package/dist/memory/embed-worker.js +49 -0
- package/dist/memory/embeddings.d.ts +105 -0
- package/dist/memory/embeddings.js +467 -0
- package/dist/model-profile/behaviors/tools-mlx-template-fix.d.ts +1 -0
- package/dist/model-profile/behaviors/tools-mlx-template-fix.js +2 -0
- package/dist/model-profile/behaviors/turn-ramble-detection.d.ts +1 -0
- package/dist/model-profile/behaviors/turn-ramble-detection.js +2 -0
- package/dist/model-profile/defaults.d.ts +1 -0
- package/dist/model-profile/defaults.js +2 -0
- package/dist/model-profile/index.d.ts +9 -0
- package/dist/model-profile/index.js +7 -0
- package/dist/model-profile/registry.d.ts +15 -0
- package/dist/model-profile/registry.js +18 -0
- package/dist/model-profile/runtime.d.ts +48 -0
- package/dist/model-profile/runtime.js +131 -0
- package/dist/model-profile/tool-grammar.d.ts +1 -0
- package/dist/model-profile/tool-grammar.js +2 -0
- package/dist/model-profile/tuning.d.ts +19 -0
- package/dist/model-profile/tuning.js +21 -0
- package/dist/model-profile/types.d.ts +1 -0
- package/dist/model-profile/types.js +2 -0
- package/dist/models/bundle-storage.d.ts +28 -0
- package/dist/models/bundle-storage.js +80 -0
- package/dist/models/catalog-drift.d.ts +48 -0
- package/dist/models/catalog-drift.js +94 -0
- package/dist/models/catalog-payload-identity.d.ts +107 -0
- package/dist/models/catalog-payload-identity.js +254 -0
- package/dist/models/ensure.d.ts +125 -0
- package/dist/models/ensure.js +205 -0
- package/dist/models/gezmodel.d.ts +47 -0
- package/dist/models/gezmodel.js +742 -0
- package/dist/models/install-registry.d.ts +101 -0
- package/dist/models/install-registry.js +216 -0
- package/dist/models/model-id.d.ts +22 -0
- package/dist/models/model-id.js +40 -0
- package/dist/models/storage-roots.d.ts +274 -0
- package/dist/models/storage-roots.js +865 -0
- package/dist/native-release-entry.d.ts +16 -0
- package/dist/native-release-entry.js +16 -0
- package/dist/perf/redact-path.d.ts +2 -0
- package/dist/perf/redact-path.js +27 -0
- package/dist/perf/responsiveness.d.ts +70 -0
- package/dist/perf/responsiveness.js +560 -0
- package/dist/providers/active-install-message.d.ts +42 -0
- package/dist/providers/active-install-message.js +49 -0
- package/dist/providers/apple-foundation-models/binary.d.ts +4 -0
- package/dist/providers/apple-foundation-models/binary.js +18 -0
- package/dist/providers/apple-foundation-models/helper.d.ts +66 -0
- package/dist/providers/apple-foundation-models/helper.js +262 -0
- package/dist/providers/apple-foundation-models/provider.d.ts +82 -0
- package/dist/providers/apple-foundation-models/provider.js +389 -0
- package/dist/providers/apple-foundation-models/status.d.ts +9 -0
- package/dist/providers/apple-foundation-models/status.js +49 -0
- package/dist/providers/audio/kokoro-frontend.d.ts +50 -0
- package/dist/providers/audio/kokoro-frontend.js +113 -0
- package/dist/providers/audio/managed-speech-model.d.ts +9 -0
- package/dist/providers/audio/managed-speech-model.js +86 -0
- package/dist/providers/audio/types.d.ts +202 -0
- package/dist/providers/audio/types.js +17 -0
- package/dist/providers/audio/whisper-cpp.d.ts +99 -0
- package/dist/providers/audio/whisper-cpp.js +420 -0
- package/dist/providers/audio-persister-contract.d.ts +13 -0
- package/dist/providers/audio-persister-contract.js +1 -0
- package/dist/providers/catalog-model-config.d.ts +63 -0
- package/dist/providers/catalog-model-config.js +95 -0
- package/dist/providers/code-block-salvage.d.ts +1 -0
- package/dist/providers/code-block-salvage.js +2 -0
- package/dist/providers/codex-cli/reasoning.d.ts +8 -0
- package/dist/providers/codex-cli/reasoning.js +17 -0
- package/dist/providers/complete-tool-call.d.ts +16 -0
- package/dist/providers/complete-tool-call.js +25 -0
- package/dist/providers/constrained-turn.d.ts +1 -0
- package/dist/providers/constrained-turn.js +2 -0
- package/dist/providers/deliverable-read-pacing.d.ts +1 -0
- package/dist/providers/deliverable-read-pacing.js +2 -0
- package/dist/providers/direct-file-work-prompt.d.ts +1 -0
- package/dist/providers/direct-file-work-prompt.js +2 -0
- package/dist/providers/ds4/build-provider.d.ts +100 -0
- package/dist/providers/ds4/build-provider.js +539 -0
- package/dist/providers/ds4/cache-adapter.d.ts +42 -0
- package/dist/providers/ds4/cache-adapter.js +110 -0
- package/dist/providers/ds4/dspark.d.ts +83 -0
- package/dist/providers/ds4/dspark.js +107 -0
- package/dist/providers/ds4/mtp.d.ts +32 -0
- package/dist/providers/ds4/mtp.js +46 -0
- package/dist/providers/ds4/provider.d.ts +67 -0
- package/dist/providers/ds4/provider.js +104 -0
- package/dist/providers/ds4/residency.d.ts +143 -0
- package/dist/providers/ds4/residency.js +139 -0
- package/dist/providers/ds4/stdout-parser.d.ts +47 -0
- package/dist/providers/ds4/stdout-parser.js +134 -0
- package/dist/providers/duplicate-tool-calls.d.ts +1 -0
- package/dist/providers/duplicate-tool-calls.js +2 -0
- package/dist/providers/file-repair-policy.d.ts +1 -0
- package/dist/providers/file-repair-policy.js +2 -0
- package/dist/providers/gpu-arbiter.d.ts +159 -0
- package/dist/providers/gpu-arbiter.js +301 -0
- package/dist/providers/image-persister-contract.d.ts +15 -0
- package/dist/providers/image-persister-contract.js +1 -0
- package/dist/providers/llama-cpp/build-metadata.d.ts +13 -0
- package/dist/providers/llama-cpp/build-metadata.js +39 -0
- package/dist/providers/llama-cpp/build-provider.d.ts +66 -0
- package/dist/providers/llama-cpp/build-provider.js +1491 -0
- package/dist/providers/llama-cpp/cache-adapter.d.ts +242 -0
- package/dist/providers/llama-cpp/cache-adapter.js +689 -0
- package/dist/providers/llama-cpp/devices.d.ts +130 -0
- package/dist/providers/llama-cpp/devices.js +256 -0
- package/dist/providers/llama-cpp/disk-cache.d.ts +8 -0
- package/dist/providers/llama-cpp/disk-cache.js +112 -0
- package/dist/providers/llama-cpp/engine-flags.d.ts +181 -0
- package/dist/providers/llama-cpp/engine-flags.js +279 -0
- package/dist/providers/llama-cpp/gguf-metadata-async.d.ts +11 -0
- package/dist/providers/llama-cpp/gguf-metadata-async.js +180 -0
- package/dist/providers/llama-cpp/gguf-metadata-worker.d.ts +7 -0
- package/dist/providers/llama-cpp/gguf-metadata-worker.js +27 -0
- package/dist/providers/llama-cpp/gguf-metadata.d.ts +198 -0
- package/dist/providers/llama-cpp/gguf-metadata.js +615 -0
- package/dist/providers/llama-cpp/gguf-quantization-backfill.d.ts +32 -0
- package/dist/providers/llama-cpp/gguf-quantization-backfill.js +75 -0
- package/dist/providers/llama-cpp/index.d.ts +10 -0
- package/dist/providers/llama-cpp/index.js +13 -0
- package/dist/providers/llama-cpp/kv-cache-type.d.ts +118 -0
- package/dist/providers/llama-cpp/kv-cache-type.js +140 -0
- package/dist/providers/llama-cpp/log.d.ts +92 -0
- package/dist/providers/llama-cpp/log.js +280 -0
- package/dist/providers/llama-cpp/models.d.ts +389 -0
- package/dist/providers/llama-cpp/models.js +1011 -0
- package/dist/providers/llama-cpp/offload-planner.d.ts +339 -0
- package/dist/providers/llama-cpp/offload-planner.js +524 -0
- package/dist/providers/llama-cpp/provider.d.ts +493 -0
- package/dist/providers/llama-cpp/provider.js +862 -0
- package/dist/providers/llama-cpp/reasoning-launch.d.ts +7 -0
- package/dist/providers/llama-cpp/reasoning-launch.js +14 -0
- package/dist/providers/llama-cpp/spec-draft.d.ts +44 -0
- package/dist/providers/llama-cpp/spec-draft.js +44 -0
- package/dist/providers/llama-cpp/stdout-parser.d.ts +70 -0
- package/dist/providers/llama-cpp/stdout-parser.js +197 -0
- package/dist/providers/local-tool-call-salvage.d.ts +1 -0
- package/dist/providers/local-tool-call-salvage.js +2 -0
- package/dist/providers/local-turn-policy.d.ts +1 -0
- package/dist/providers/local-turn-policy.js +2 -0
- package/dist/providers/mlx/async-file-handoff.d.ts +11 -0
- package/dist/providers/mlx/async-file-handoff.js +25 -0
- package/dist/providers/mlx/build-provider.d.ts +65 -0
- package/dist/providers/mlx/build-provider.js +717 -0
- package/dist/providers/mlx/cache-adapter.d.ts +161 -0
- package/dist/providers/mlx/cache-adapter.js +445 -0
- package/dist/providers/mlx/chat-protocol.d.ts +48 -0
- package/dist/providers/mlx/chat-protocol.js +8 -0
- package/dist/providers/mlx/config-parser.d.ts +29 -0
- package/dist/providers/mlx/config-parser.js +81 -0
- package/dist/providers/mlx/engine-gate.d.ts +51 -0
- package/dist/providers/mlx/engine-gate.js +207 -0
- package/dist/providers/mlx/engine-hold.d.ts +41 -0
- package/dist/providers/mlx/engine-hold.js +59 -0
- package/dist/providers/mlx/engine-log-router.d.ts +84 -0
- package/dist/providers/mlx/engine-log-router.js +137 -0
- package/dist/providers/mlx/engine-stats-sampler.d.ts +36 -0
- package/dist/providers/mlx/engine-stats-sampler.js +59 -0
- package/dist/providers/mlx/index.d.ts +10 -0
- package/dist/providers/mlx/index.js +10 -0
- package/dist/providers/mlx/log.d.ts +55 -0
- package/dist/providers/mlx/log.js +157 -0
- package/dist/providers/mlx/model-geometry.d.ts +35 -0
- package/dist/providers/mlx/model-geometry.js +118 -0
- package/dist/providers/mlx/models.d.ts +289 -0
- package/dist/providers/mlx/models.js +1079 -0
- package/dist/providers/mlx/provider.d.ts +404 -0
- package/dist/providers/mlx/provider.js +3017 -0
- package/dist/providers/mlx/python/cache_persist.py +348 -0
- package/dist/providers/mlx/python/cache_seed.py +402 -0
- package/dist/providers/mlx/python/gezel_mlx_server.py +4491 -0
- package/dist/providers/mlx/python/lfm2_compat.py +55 -0
- package/dist/providers/mlx/python/qwen3_5_text_compat.py +60 -0
- package/dist/providers/mlx/python/qwen4_ple.py +159 -0
- package/dist/providers/mlx/python/spec_decode.py +775 -0
- package/dist/providers/mlx/python/template_stability.py +133 -0
- package/dist/providers/mlx/python/think_budget.py +113 -0
- package/dist/providers/mlx/python/tool_args_json.py +297 -0
- package/dist/providers/mlx/python/tool_call_stream.py +265 -0
- package/dist/providers/mlx/python/tool_grammar.py +794 -0
- package/dist/providers/mlx/python/vision_inputs.py +64 -0
- package/dist/providers/mlx/python/wave_policy.py +147 -0
- package/dist/providers/mlx/reasoning-stream.d.ts +85 -0
- package/dist/providers/mlx/reasoning-stream.js +196 -0
- package/dist/providers/mlx/request-shape.d.ts +34 -0
- package/dist/providers/mlx/request-shape.js +42 -0
- package/dist/providers/mlx/runtime-diagnostics.d.ts +29 -0
- package/dist/providers/mlx/runtime-diagnostics.js +162 -0
- package/dist/providers/mlx/spec-drafter.d.ts +25 -0
- package/dist/providers/mlx/spec-drafter.js +73 -0
- package/dist/providers/mlx/stdout-parser.d.ts +60 -0
- package/dist/providers/mlx/stdout-parser.js +254 -0
- package/dist/providers/mlx/textual-tool-call-salvage.d.ts +46 -0
- package/dist/providers/mlx/textual-tool-call-salvage.js +396 -0
- package/dist/providers/mlx/tool-call-protocol.d.ts +65 -0
- package/dist/providers/mlx/tool-call-protocol.js +140 -0
- package/dist/providers/mlx/tool-call-stripper.d.ts +68 -0
- package/dist/providers/mlx/tool-call-stripper.js +153 -0
- package/dist/providers/mlx/tool-image-retention.d.ts +23 -0
- package/dist/providers/mlx/tool-image-retention.js +43 -0
- package/dist/providers/mlx/turn-telemetry.d.ts +22 -0
- package/dist/providers/mlx/turn-telemetry.js +45 -0
- package/dist/providers/mlx/venv.d.ts +91 -0
- package/dist/providers/mlx/venv.js +111 -0
- package/dist/providers/mlx/vision-mode.d.ts +92 -0
- package/dist/providers/mlx/vision-mode.js +187 -0
- package/dist/providers/mlx/vision.d.ts +2 -0
- package/dist/providers/mlx/vision.js +12 -0
- package/dist/providers/mlx/wire-transcript.d.ts +14 -0
- package/dist/providers/mlx/wire-transcript.js +43 -0
- package/dist/providers/native/capacity-broker.d.ts +812 -0
- package/dist/providers/native/capacity-broker.js +1058 -0
- package/dist/providers/native/capacity-budget.d.ts +133 -0
- package/dist/providers/native/capacity-budget.js +265 -0
- package/dist/providers/native/device-capacity-ledger.d.ts +31 -0
- package/dist/providers/native/device-capacity-ledger.js +196 -0
- package/dist/providers/native/device-capacity.d.ts +84 -0
- package/dist/providers/native/device-capacity.js +431 -0
- package/dist/providers/native/engine-api-key.d.ts +57 -0
- package/dist/providers/native/engine-api-key.js +72 -0
- package/dist/providers/native/engine-key.d.ts +18 -0
- package/dist/providers/native/engine-key.js +41 -0
- package/dist/providers/native/engine-router.d.ts +145 -0
- package/dist/providers/native/engine-router.js +191 -0
- package/dist/providers/native/gpu-panic-guard.d.ts +54 -0
- package/dist/providers/native/gpu-panic-guard.js +59 -0
- package/dist/providers/native/inference.d.ts +33 -0
- package/dist/providers/native/inference.js +49 -0
- package/dist/providers/native/local-engine-runtime.d.ts +412 -0
- package/dist/providers/native/local-engine-runtime.js +1714 -0
- package/dist/providers/native/measured-budget.d.ts +32 -0
- package/dist/providers/native/measured-budget.js +54 -0
- package/dist/providers/native/port.d.ts +11 -0
- package/dist/providers/native/port.js +29 -0
- package/dist/providers/native/provider-pool.d.ts +474 -0
- package/dist/providers/native/provider-pool.js +1166 -0
- package/dist/providers/native/supervisor.d.ts +503 -0
- package/dist/providers/native/supervisor.js +1466 -0
- package/dist/providers/observation-context.d.ts +16 -0
- package/dist/providers/observation-context.js +1 -0
- package/dist/providers/openai-compatible/sse.d.ts +1 -0
- package/dist/providers/openai-compatible/sse.js +2 -0
- package/dist/providers/patient-fetch.d.ts +36 -0
- package/dist/providers/patient-fetch.js +44 -0
- package/dist/providers/project-macro-loop-bail.d.ts +7 -0
- package/dist/providers/project-macro-loop-bail.js +21 -0
- package/dist/providers/prose-document-salvage.d.ts +1 -0
- package/dist/providers/prose-document-salvage.js +2 -0
- package/dist/providers/provider-disposal.d.ts +1 -0
- package/dist/providers/provider-disposal.js +2 -0
- package/dist/providers/queue.d.ts +15 -0
- package/dist/providers/queue.js +23 -0
- package/dist/providers/ramble-abort-message.d.ts +1 -0
- package/dist/providers/ramble-abort-message.js +2 -0
- package/dist/providers/ramble-detector.d.ts +1 -0
- package/dist/providers/ramble-detector.js +2 -0
- package/dist/providers/reasoning-depth.d.ts +1 -0
- package/dist/providers/reasoning-depth.js +2 -0
- package/dist/providers/required-input-reads.d.ts +1 -0
- package/dist/providers/required-input-reads.js +2 -0
- package/dist/providers/session-defaults.d.ts +13 -0
- package/dist/providers/session-defaults.js +49 -0
- package/dist/providers/session-hooks.d.ts +26 -0
- package/dist/providers/session-hooks.js +1 -0
- package/dist/providers/streaming-session.d.ts +1 -0
- package/dist/providers/streaming-session.js +2 -0
- package/dist/providers/terminal-tool-policy.d.ts +1 -0
- package/dist/providers/terminal-tool-policy.js +2 -0
- package/dist/providers/tool-arg-schema-coercion.d.ts +1 -0
- package/dist/providers/tool-arg-schema-coercion.js +2 -0
- package/dist/providers/tool-executor.d.ts +12 -0
- package/dist/providers/tool-executor.js +20 -0
- package/dist/providers/tool-failure-tracker.d.ts +1 -0
- package/dist/providers/tool-failure-tracker.js +2 -0
- package/dist/providers/tool-repeat-tracker.d.ts +1 -0
- package/dist/providers/tool-repeat-tracker.js +2 -0
- package/dist/providers/turn-timeout.d.ts +1 -0
- package/dist/providers/turn-timeout.js +1 -0
- package/dist/providers/types.d.ts +834 -0
- package/dist/providers/types.js +42 -0
- package/dist/providers/usage-builder.d.ts +1 -0
- package/dist/providers/usage-builder.js +2 -0
- package/dist/providers/vision-capability.d.ts +109 -0
- package/dist/providers/vision-capability.js +137 -0
- package/dist/python/mlx-runtime-status-bus.d.ts +39 -0
- package/dist/python/mlx-runtime-status-bus.js +27 -0
- package/dist/python/uv-runtime.d.ts +176 -0
- package/dist/python/uv-runtime.js +492 -0
- package/dist/relevance/install.d.ts +28 -0
- package/dist/relevance/install.js +114 -0
- package/dist/relevance/manager.d.ts +79 -0
- package/dist/relevance/manager.js +211 -0
- package/dist/relevance/registry.d.ts +11 -0
- package/dist/relevance/registry.js +158 -0
- package/dist/relevance/relevance-core.d.ts +67 -0
- package/dist/relevance/relevance-core.js +189 -0
- package/dist/relevance/relevance-model.d.ts +42 -0
- package/dist/relevance/relevance-model.js +292 -0
- package/dist/relevance/relevance-worker.d.ts +20 -0
- package/dist/relevance/relevance-worker.js +57 -0
- package/dist/relevance/settings.d.ts +30 -0
- package/dist/relevance/settings.js +81 -0
- package/dist/remotes/identity.d.ts +121 -0
- package/dist/remotes/identity.js +348 -0
- package/dist/remotes/pinned-fetch.d.ts +45 -0
- package/dist/remotes/pinned-fetch.js +193 -0
- package/dist/remotes/types.d.ts +54 -0
- package/dist/remotes/types.js +1 -0
- package/dist/runtime-lock.d.ts +29 -0
- package/dist/runtime-lock.js +85 -0
- package/dist/search/relevance-stage.d.ts +81 -0
- package/dist/search/relevance-stage.js +177 -0
- package/dist/secrets/types.d.ts +63 -0
- package/dist/secrets/types.js +64 -0
- package/dist/speech.d.ts +1 -0
- package/dist/speech.js +1 -0
- package/dist/system/darwin-memory.d.ts +26 -0
- package/dist/system/darwin-memory.js +81 -0
- package/dist/system/gezel-process-memory.d.ts +55 -0
- package/dist/system/gezel-process-memory.js +156 -0
- package/dist/system/memory.d.ts +154 -0
- package/dist/system/memory.js +501 -0
- package/dist/transformers-cache.d.ts +112 -0
- package/dist/transformers-cache.js +392 -0
- package/dist/utils/disk-space.d.ts +55 -0
- package/dist/utils/disk-space.js +72 -0
- package/dist/utils/download-common.d.ts +138 -0
- package/dist/utils/download-common.js +196 -0
- package/dist/utils/download-with-retry.d.ts +85 -0
- package/dist/utils/download-with-retry.js +522 -0
- package/dist/utils/extract-zip.d.ts +22 -0
- package/dist/utils/extract-zip.js +103 -0
- package/dist/utils/retire-model-worker.d.ts +15 -0
- package/dist/utils/retire-model-worker.js +24 -0
- package/dist/utils/service-worker-entry.d.ts +59 -0
- package/dist/utils/service-worker-entry.js +69 -0
- package/dist/utils/xet-download.d.ts +40 -0
- package/dist/utils/xet-download.js +526 -0
- package/dist/utils/xet.d.ts +86 -0
- package/dist/utils/xet.js +201 -0
- package/package.json +103 -3
- package/scripts/embedding-packaging.cjs +264 -0
- package/scripts/embedding-packaging.d.cts +16 -0
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Streaming-safe filter for chat-template tool-call markers that leak
|
|
3
|
+
* into mlx_vlm.server's content stream.
|
|
4
|
+
*
|
|
5
|
+
* Gemma 3+ tokenizers emit tool calls with literal special-token text
|
|
6
|
+
* when the chat template doesn't fully consume them. Two open variants
|
|
7
|
+
* have been observed in the wild:
|
|
8
|
+
*
|
|
9
|
+
* `<|tool_call|>` — canonical, what the chat template SHOULD emit
|
|
10
|
+
* `<|tool_call>` — short form, missing the trailing `|>`; appears on
|
|
11
|
+
* tighter quants of Gemma 4 E4B
|
|
12
|
+
*
|
|
13
|
+
* Close has four observed variants: `<tool_call|>`, `</tool_call|>`,
|
|
14
|
+
* `<tool_call>`, `</tool_call>`. We accept all four.
|
|
15
|
+
*
|
|
16
|
+
* mlx_vlm.server still ships a structured `tool_calls` delta when the
|
|
17
|
+
* markers parse cleanly, but ALSO leaks the raw text. The structured
|
|
18
|
+
* call is what we want; the text is noise. Stripped bodies are kept on
|
|
19
|
+
* the side so a second pass can attempt repair (`parseGemmaToolCall`)
|
|
20
|
+
* before falling back to a user-visible warning.
|
|
21
|
+
*
|
|
22
|
+
* Streaming safety: deltas can split markers across chunk boundaries,
|
|
23
|
+
* so we hold back any tail that could be a prefix of any open variant
|
|
24
|
+
* until enough additional bytes arrive to disambiguate. End-of-turn
|
|
25
|
+
* `flush()` drops anything still inside an unclosed marker (treats it
|
|
26
|
+
* as truncated noise).
|
|
27
|
+
*/
|
|
28
|
+
const OPEN_VARIANTS = ['<|tool_call|>', '<|tool_call>'];
|
|
29
|
+
const LONGEST_OPEN = OPEN_VARIANTS.reduce((a, b) => (a.length >= b.length ? a : b));
|
|
30
|
+
const CLOSE_RE = /<\/?tool_call\|?>/;
|
|
31
|
+
export class LeakyToolCallStripper {
|
|
32
|
+
buffer = '';
|
|
33
|
+
inside = false;
|
|
34
|
+
currentBody = '';
|
|
35
|
+
bodies = [];
|
|
36
|
+
/**
|
|
37
|
+
* Indices into {@link bodies} that came from an EOS-flush (no
|
|
38
|
+
* `</tool_call>` close marker arrived before the stream ended).
|
|
39
|
+
* Layer 3 reads this to decide whether a successfully-parsed Gemma
|
|
40
|
+
* marker call should also be tagged as truncated — its `content`
|
|
41
|
+
* arg may be partial, in which case the auto-continuation hint
|
|
42
|
+
* should fire on the tool result.
|
|
43
|
+
*/
|
|
44
|
+
eosFlushedIndices = new Set();
|
|
45
|
+
/**
|
|
46
|
+
* Push a streamed chunk and return whatever's safe to emit. Holds
|
|
47
|
+
* back any trailing fragment that could be the start of a marker
|
|
48
|
+
* until enough additional bytes arrive to disambiguate.
|
|
49
|
+
*/
|
|
50
|
+
push(chunk) {
|
|
51
|
+
this.buffer += chunk;
|
|
52
|
+
return this.drain();
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Final drain at end-of-turn. If we're still mid-marker the model
|
|
56
|
+
* never finished closing it — drop the buffered content as noise
|
|
57
|
+
* rather than leak a half-marker.
|
|
58
|
+
*/
|
|
59
|
+
flush() {
|
|
60
|
+
if (this.inside) {
|
|
61
|
+
// Unclosed marker — its body still goes into the bodies list so
|
|
62
|
+
// the parser/warning layer above can act on the model's intent
|
|
63
|
+
// even though the close tag never arrived. Tag the index as
|
|
64
|
+
// EOS-flushed so the provider knows to wire continuation-hint
|
|
65
|
+
// behavior (Layer 3).
|
|
66
|
+
if (this.currentBody.length > 0 || this.buffer.length > 0) {
|
|
67
|
+
const idx = this.bodies.length;
|
|
68
|
+
this.bodies.push((this.currentBody + this.buffer).trim());
|
|
69
|
+
this.eosFlushedIndices.add(idx);
|
|
70
|
+
}
|
|
71
|
+
this.buffer = '';
|
|
72
|
+
this.currentBody = '';
|
|
73
|
+
this.inside = false;
|
|
74
|
+
return '';
|
|
75
|
+
}
|
|
76
|
+
const out = this.buffer;
|
|
77
|
+
this.buffer = '';
|
|
78
|
+
return out;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Bodies of all complete (or unclosed-at-flush) marker spans seen
|
|
82
|
+
* this stream. Surface area for `parseGemmaToolCall`.
|
|
83
|
+
*/
|
|
84
|
+
getStrippedBodies() {
|
|
85
|
+
return this.bodies;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Indices into {@link getStrippedBodies}() that came from an
|
|
89
|
+
* EOS-flush — i.e. the close marker never arrived. Used by the
|
|
90
|
+
* provider's Layer 3 truncation-salvage logic to tag those parsed
|
|
91
|
+
* calls with the continuation-hint behavior even when they parsed
|
|
92
|
+
* successfully (since their string args may be partial).
|
|
93
|
+
*/
|
|
94
|
+
getEosFlushedBodyIndices() {
|
|
95
|
+
return this.eosFlushedIndices;
|
|
96
|
+
}
|
|
97
|
+
drain() {
|
|
98
|
+
let emitted = '';
|
|
99
|
+
while (this.buffer.length > 0) {
|
|
100
|
+
if (this.inside) {
|
|
101
|
+
const closeMatch = this.buffer.match(CLOSE_RE);
|
|
102
|
+
if (closeMatch?.index !== undefined) {
|
|
103
|
+
this.currentBody += this.buffer.slice(0, closeMatch.index);
|
|
104
|
+
this.bodies.push(this.currentBody.trim());
|
|
105
|
+
this.currentBody = '';
|
|
106
|
+
this.buffer = this.buffer.slice(closeMatch.index + closeMatch[0].length);
|
|
107
|
+
this.inside = false;
|
|
108
|
+
continue;
|
|
109
|
+
}
|
|
110
|
+
// Close not seen yet — capture what we have, hold the rest.
|
|
111
|
+
// We need to keep enough trailing bytes that a partial close
|
|
112
|
+
// marker isn't accidentally split across capture and buffer.
|
|
113
|
+
// The longest close pattern is `</tool_call|>` at 13 chars;
|
|
114
|
+
// hold back that much from the end.
|
|
115
|
+
const safeBodyEnd = Math.max(0, this.buffer.length - 13);
|
|
116
|
+
this.currentBody += this.buffer.slice(0, safeBodyEnd);
|
|
117
|
+
this.buffer = this.buffer.slice(safeBodyEnd);
|
|
118
|
+
return emitted;
|
|
119
|
+
}
|
|
120
|
+
// Not inside — find earliest open across all variants.
|
|
121
|
+
let openIdx = -1;
|
|
122
|
+
let openLen = 0;
|
|
123
|
+
for (const variant of OPEN_VARIANTS) {
|
|
124
|
+
const idx = this.buffer.indexOf(variant);
|
|
125
|
+
if (idx >= 0 && (openIdx < 0 || idx < openIdx)) {
|
|
126
|
+
openIdx = idx;
|
|
127
|
+
openLen = variant.length;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
if (openIdx >= 0) {
|
|
131
|
+
emitted += this.buffer.slice(0, openIdx);
|
|
132
|
+
this.buffer = this.buffer.slice(openIdx + openLen);
|
|
133
|
+
this.inside = true;
|
|
134
|
+
continue;
|
|
135
|
+
}
|
|
136
|
+
// No complete open marker. Find the earliest position whose
|
|
137
|
+
// suffix is a prefix of any open variant — that's our holdback.
|
|
138
|
+
const startScan = Math.max(0, this.buffer.length - LONGEST_OPEN.length);
|
|
139
|
+
let holdback = this.buffer.length;
|
|
140
|
+
for (let i = startScan; i < this.buffer.length; i++) {
|
|
141
|
+
const tail = this.buffer.slice(i);
|
|
142
|
+
if (OPEN_VARIANTS.some((v) => v.startsWith(tail))) {
|
|
143
|
+
holdback = i;
|
|
144
|
+
break;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
emitted += this.buffer.slice(0, holdback);
|
|
148
|
+
this.buffer = this.buffer.slice(holdback);
|
|
149
|
+
return emitted;
|
|
150
|
+
}
|
|
151
|
+
return emitted;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool-returned images ride one request after the tool that returned them.
|
|
3
|
+
*
|
|
4
|
+
* `preview_document` hands back slide renders as a vision message, and the
|
|
5
|
+
* session kept it in history. Every later request resent all of it, and a
|
|
6
|
+
* request carrying images disables the prefix cache, so each remaining turn
|
|
7
|
+
* of a powerpoint-deck evaluate step re-encoded six slide images and
|
|
8
|
+
* re-prefilled ~33K text tokens: about three minutes a turn (qwen3.8-27b,
|
|
9
|
+
* 2026-09-23). Once the model has answered after seeing them, later requests
|
|
10
|
+
* carry a note instead of the pixels. A model that needs to look again calls
|
|
11
|
+
* the tool again.
|
|
12
|
+
*
|
|
13
|
+
* Only the runtime's own tool-image message is retired. A picture the user
|
|
14
|
+
* attached stays, because a follow-up question about it is ordinary chat.
|
|
15
|
+
*/
|
|
16
|
+
export declare const TOOL_IMAGES_MESSAGE = "Images returned by the preceding tools. Inspect the pixels before judging them.";
|
|
17
|
+
interface RetainableMessage {
|
|
18
|
+
role: string;
|
|
19
|
+
content?: unknown;
|
|
20
|
+
images?: string[];
|
|
21
|
+
}
|
|
22
|
+
export declare function retireInspectedToolImages<T extends RetainableMessage>(messages: T[]): T[];
|
|
23
|
+
export {};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool-returned images ride one request after the tool that returned them.
|
|
3
|
+
*
|
|
4
|
+
* `preview_document` hands back slide renders as a vision message, and the
|
|
5
|
+
* session kept it in history. Every later request resent all of it, and a
|
|
6
|
+
* request carrying images disables the prefix cache, so each remaining turn
|
|
7
|
+
* of a powerpoint-deck evaluate step re-encoded six slide images and
|
|
8
|
+
* re-prefilled ~33K text tokens: about three minutes a turn (qwen3.8-27b,
|
|
9
|
+
* 2026-09-23). Once the model has answered after seeing them, later requests
|
|
10
|
+
* carry a note instead of the pixels. A model that needs to look again calls
|
|
11
|
+
* the tool again.
|
|
12
|
+
*
|
|
13
|
+
* Only the runtime's own tool-image message is retired. A picture the user
|
|
14
|
+
* attached stays, because a follow-up question about it is ordinary chat.
|
|
15
|
+
*/
|
|
16
|
+
export const TOOL_IMAGES_MESSAGE = 'Images returned by the preceding tools. Inspect the pixels before judging them.';
|
|
17
|
+
export function retireInspectedToolImages(messages) {
|
|
18
|
+
let lastAssistant = -1;
|
|
19
|
+
for (let i = messages.length - 1; i >= 0; i--) {
|
|
20
|
+
if (messages[i]?.role === 'assistant') {
|
|
21
|
+
lastAssistant = i;
|
|
22
|
+
break;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
if (lastAssistant < 0)
|
|
26
|
+
return messages;
|
|
27
|
+
let changed = false;
|
|
28
|
+
const out = messages.map((message, index) => {
|
|
29
|
+
if (index > lastAssistant ||
|
|
30
|
+
message.role !== 'user' ||
|
|
31
|
+
!message.images?.length ||
|
|
32
|
+
message.content !== TOOL_IMAGES_MESSAGE) {
|
|
33
|
+
return message;
|
|
34
|
+
}
|
|
35
|
+
changed = true;
|
|
36
|
+
const { images, ...rest } = message;
|
|
37
|
+
return {
|
|
38
|
+
...rest,
|
|
39
|
+
content: `${images.length} image(s) returned by an earlier tool call were inspected in a previous turn and are no longer attached. Call that tool again to look at them again.`,
|
|
40
|
+
};
|
|
41
|
+
});
|
|
42
|
+
return changed ? out : messages;
|
|
43
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { TurnStatsEvent } from '../streaming-session.js';
|
|
2
|
+
import type { TurnUsage } from '../types.js';
|
|
3
|
+
export interface MlxTurnUsageSnapshot {
|
|
4
|
+
prompt_tokens: number;
|
|
5
|
+
completion_tokens: number;
|
|
6
|
+
prompt_tps?: number;
|
|
7
|
+
generation_tps?: number;
|
|
8
|
+
cached_tokens?: number;
|
|
9
|
+
}
|
|
10
|
+
/** Build the two terminal events from the final streamed usage snapshot. */
|
|
11
|
+
export declare function buildMlxTerminalTelemetry(args: {
|
|
12
|
+
lastUsage: MlxTurnUsageSnapshot | null;
|
|
13
|
+
model: string;
|
|
14
|
+
start: number;
|
|
15
|
+
lastIterationStartedAt: number;
|
|
16
|
+
lastIterationFirstTokenAt: number | null;
|
|
17
|
+
lastIterationFinishedAt: number | null;
|
|
18
|
+
firstTokenAt: number | null;
|
|
19
|
+
}): {
|
|
20
|
+
usage: TurnUsage;
|
|
21
|
+
stats: TurnStatsEvent;
|
|
22
|
+
} | null;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/** Build the two terminal events from the final streamed usage snapshot. */
|
|
2
|
+
export function buildMlxTerminalTelemetry(args) {
|
|
3
|
+
const { lastUsage, model, start, lastIterationStartedAt, lastIterationFirstTokenAt, lastIterationFinishedAt, firstTokenAt, } = args;
|
|
4
|
+
if (!lastUsage || (lastUsage.prompt_tokens <= 0 && lastUsage.completion_tokens <= 0))
|
|
5
|
+
return null;
|
|
6
|
+
const finishedAt = Date.now();
|
|
7
|
+
const durationMs = finishedAt - start;
|
|
8
|
+
const generationStartedAt = lastIterationFirstTokenAt ?? lastIterationStartedAt;
|
|
9
|
+
const generationFinishedAt = lastIterationFinishedAt ?? finishedAt;
|
|
10
|
+
const generationMs = Math.max(1, generationFinishedAt - generationStartedAt);
|
|
11
|
+
const wallTps = lastUsage.completion_tokens > 0
|
|
12
|
+
? lastUsage.completion_tokens / (generationMs / 1000)
|
|
13
|
+
: undefined;
|
|
14
|
+
const tokensPerSec = lastUsage.generation_tps !== undefined && lastUsage.generation_tps > 0
|
|
15
|
+
? lastUsage.generation_tps
|
|
16
|
+
: wallTps;
|
|
17
|
+
const at = new Date(finishedAt).toISOString();
|
|
18
|
+
return {
|
|
19
|
+
usage: {
|
|
20
|
+
model,
|
|
21
|
+
inputTokens: lastUsage.prompt_tokens,
|
|
22
|
+
outputTokens: lastUsage.completion_tokens,
|
|
23
|
+
...(lastUsage.cached_tokens !== undefined
|
|
24
|
+
? { cachedInputTokens: lastUsage.cached_tokens }
|
|
25
|
+
: {}),
|
|
26
|
+
...(tokensPerSec !== undefined ? { outputTokensPerSec: tokensPerSec } : {}),
|
|
27
|
+
durationMs,
|
|
28
|
+
at,
|
|
29
|
+
},
|
|
30
|
+
stats: {
|
|
31
|
+
provider: 'mlx',
|
|
32
|
+
promptTokens: lastUsage.prompt_tokens,
|
|
33
|
+
completionTokens: lastUsage.completion_tokens,
|
|
34
|
+
durationMs,
|
|
35
|
+
...(firstTokenAt !== null ? { ttftMs: Math.max(0, firstTokenAt - start) } : {}),
|
|
36
|
+
...(lastUsage.prompt_tps !== undefined && lastUsage.prompt_tps > 0
|
|
37
|
+
? { promptTokensPerSec: lastUsage.prompt_tps }
|
|
38
|
+
: {}),
|
|
39
|
+
...(lastUsage.cached_tokens !== undefined
|
|
40
|
+
? { cachedPromptTokens: lastUsage.cached_tokens }
|
|
41
|
+
: {}),
|
|
42
|
+
...(tokensPerSec !== undefined ? { tokensPerSec } : {}),
|
|
43
|
+
},
|
|
44
|
+
};
|
|
45
|
+
}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Single source of truth for the MLX Python venv spec — the venv name
|
|
3
|
+
* and the package list `UvRuntime.ensureVenv` provisions.
|
|
4
|
+
*
|
|
5
|
+
* Two code paths provision this venv and they MUST request the
|
|
6
|
+
* identical (name, packages):
|
|
7
|
+
*
|
|
8
|
+
* 1. The lazy first-chat path — `buildMlxProvider` awaits
|
|
9
|
+
* `ensureVenv` before spawning the engine.
|
|
10
|
+
* 2. The parallel warm kicked off by `MlxModelManager` at install time,
|
|
11
|
+
* which
|
|
12
|
+
* overlaps the multi-minute uv/torch install with the model-
|
|
13
|
+
* weight download instead of paying it serially on the first turn.
|
|
14
|
+
*
|
|
15
|
+
* `ensureVenv` keys its idempotent fast-path on the (sorted) package
|
|
16
|
+
* set, so any divergence between the two callers makes the second one
|
|
17
|
+
* reinstall from scratch instead of hitting the warmed venv — which
|
|
18
|
+
* defeats the entire point of warming. Funnel both through here.
|
|
19
|
+
*
|
|
20
|
+
* `torch` + `torchvision` are pinned on by default even though we never
|
|
21
|
+
* compute in torch — `mlx-vlm` does inference in MLX directly. But many
|
|
22
|
+
* catalog models (Qwen 3.5/3.6, future Gemma vision variants) ship a
|
|
23
|
+
* `video_preprocessor_config.json`, which drives
|
|
24
|
+
* `transformers.AutoProcessor.from_pretrained` to construct the model's
|
|
25
|
+
* `*VideoProcessor` class — and those classes have hard
|
|
26
|
+
* `requires_backends('torch', 'torchvision')` guards even when no video
|
|
27
|
+
* is ever fed in. Without these two packages `mlx_vlm.utils.load()`
|
|
28
|
+
* dies with `ImportError: <Class> requires the PyTorch library...`
|
|
29
|
+
* before the engine reports ready. The Apple Silicon wheels are small
|
|
30
|
+
* (~500 MB combined), so paying the disk cost universally is cheaper
|
|
31
|
+
* than per-model gating.
|
|
32
|
+
*/
|
|
33
|
+
/** Default pin for the MLX backend. Advanced users override via
|
|
34
|
+
* `config.mlxPackageSpec` (Settings → This Mac → Advanced).
|
|
35
|
+
*
|
|
36
|
+
* PINNED, not a floor. A floating `>=` spec previously pulled mlx-vlm 0.6.4
|
|
37
|
+
* onto fresh machines and exposed a byte-fallback detokenizer regression in
|
|
38
|
+
* ordinary Qwen output, killing the engine mid-turn and breaking tool calls.
|
|
39
|
+
* The 0.6.6 line that replaced it carried the Laguna text architecture and was
|
|
40
|
+
* compatibility-checked against Gezel's wrapper imports, Laguna tool
|
|
41
|
+
* templating, Qwen byte-BPE streaming, and a real Gemma 4 generation.
|
|
42
|
+
*
|
|
43
|
+
* 0.6.14 was TRIED and REVERTED on 2026-08-18. The theory was that its
|
|
44
|
+
* rewritten `BatchKVCache` would restore prompt-cache reuse — MLX was
|
|
45
|
+
* re-prefilling every turn (23.5% hit rate, median 0 cached tokens). That
|
|
46
|
+
* theory was wrong twice over: 0.6.6's `mlx_vlm.models.cache.BatchKVCache`
|
|
47
|
+
* already implements `is_trimmable()`/`trim()` (an earlier check misread the
|
|
48
|
+
* `mlx_lm` copy), and on 0.6.14 the cache did not improve — 20.8% hit rate,
|
|
49
|
+
* still median 0 cached. Meanwhile a paired A/B on qwen3.8-27b-q4 measured a
|
|
50
|
+
* large slowdown at unchanged 10/10 task success:
|
|
51
|
+
*
|
|
52
|
+
* tictactoe 8.4 min -> 15.9 min tankcombat 12.7 min -> 23.3 min
|
|
53
|
+
* probe throughput 55.8 -> 40.7 gen tok/s
|
|
54
|
+
*
|
|
55
|
+
* The re-prefill cause that bump chased was later found and fixed
|
|
56
|
+
* gezel-side (roster-shaped cache identity + the §12b snapshot machinery
|
|
57
|
+
* — docs/kv-prompt-caching-strategy.md).
|
|
58
|
+
*
|
|
59
|
+
* 0.6.17 (2026-08-28): bumped for MTP speculative decoding, and the bump
|
|
60
|
+
* is correctness-forced — 0.6.6's MTP verify is measured-INEXACT (greedy
|
|
61
|
+
* spec diverged from greedy no-spec; reports/mlx-mtp-rig-20260828.md),
|
|
62
|
+
* and spec_decode.py refuses to arm speculation below 0.6.17. The line
|
|
63
|
+
* also carries 0.6.15's batch-row isolation fix and 0.6.16's ArraysCache
|
|
64
|
+
* per-token Metal buffer leak fix (measured: that leak fix does NOT cure
|
|
65
|
+
* the vlm-tower decode slope under mlx_lm's BatchGenerator — 1.01 → 0.83
|
|
66
|
+
* ms/tok per 10k ctx — so the text-tower split stays). Exactness and the
|
|
67
|
+
* ~1.4x speedup are verified on-device for this list's resolved set
|
|
68
|
+
* (mlx-lm 0.31.3 with mlx 0.32.0; the rig also verified mlx 0.32.2).
|
|
69
|
+
*
|
|
70
|
+
* 0.7.1 (2026-09-14): bumped for Qwen3.8 Flash Next (`qwen4_exp`). Its
|
|
71
|
+
* Qwen4 implementation carries the sparse-attention cache/batch fixes and
|
|
72
|
+
* the Qwen3.8 Conv3d layout correction that the checkpoint needs. Gezel's
|
|
73
|
+
* exact wrapper combination was verified on an M5 Max with mlx-lm 0.31.3
|
|
74
|
+
* and the resolved mlx 0.32.2: real sidecar generation + prompt-cache reuse,
|
|
75
|
+
* plus a two-row Qwen4-Exp continuous-batch prefill/decode smoke. The full
|
|
76
|
+
* 112 GB Flash checkpoint is separately catalog-qualified through 0.7.1's
|
|
77
|
+
* external-PLE view: its 32,000,153,600-byte n-gram table stays disk-backed
|
|
78
|
+
* instead of consuming the Metal working set. Do not treat the library pin
|
|
79
|
+
* alone as proof that every community conversion is correct or fits.
|
|
80
|
+
*
|
|
81
|
+
* Keep upgrades explicit and re-sweep the MLX catalog whenever this pin
|
|
82
|
+
* moves. */
|
|
83
|
+
export declare const MLX_DEFAULT_PACKAGE_SPEC = "mlx-vlm==0.7.1";
|
|
84
|
+
/** Venv name passed to `UvRuntime.ensureVenv` (and its dir basename). */
|
|
85
|
+
export declare const MLX_VENV_NAME = "mlx";
|
|
86
|
+
/**
|
|
87
|
+
* The package list to install into the MLX venv. `packageSpec` is the
|
|
88
|
+
* user's optional `config.mlxPackageSpec` override; when unset we pin
|
|
89
|
+
* {@link MLX_DEFAULT_PACKAGE_SPEC}.
|
|
90
|
+
*/
|
|
91
|
+
export declare function mlxVenvPackages(packageSpec?: string): string[];
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Single source of truth for the MLX Python venv spec — the venv name
|
|
3
|
+
* and the package list `UvRuntime.ensureVenv` provisions.
|
|
4
|
+
*
|
|
5
|
+
* Two code paths provision this venv and they MUST request the
|
|
6
|
+
* identical (name, packages):
|
|
7
|
+
*
|
|
8
|
+
* 1. The lazy first-chat path — `buildMlxProvider` awaits
|
|
9
|
+
* `ensureVenv` before spawning the engine.
|
|
10
|
+
* 2. The parallel warm kicked off by `MlxModelManager` at install time,
|
|
11
|
+
* which
|
|
12
|
+
* overlaps the multi-minute uv/torch install with the model-
|
|
13
|
+
* weight download instead of paying it serially on the first turn.
|
|
14
|
+
*
|
|
15
|
+
* `ensureVenv` keys its idempotent fast-path on the (sorted) package
|
|
16
|
+
* set, so any divergence between the two callers makes the second one
|
|
17
|
+
* reinstall from scratch instead of hitting the warmed venv — which
|
|
18
|
+
* defeats the entire point of warming. Funnel both through here.
|
|
19
|
+
*
|
|
20
|
+
* `torch` + `torchvision` are pinned on by default even though we never
|
|
21
|
+
* compute in torch — `mlx-vlm` does inference in MLX directly. But many
|
|
22
|
+
* catalog models (Qwen 3.5/3.6, future Gemma vision variants) ship a
|
|
23
|
+
* `video_preprocessor_config.json`, which drives
|
|
24
|
+
* `transformers.AutoProcessor.from_pretrained` to construct the model's
|
|
25
|
+
* `*VideoProcessor` class — and those classes have hard
|
|
26
|
+
* `requires_backends('torch', 'torchvision')` guards even when no video
|
|
27
|
+
* is ever fed in. Without these two packages `mlx_vlm.utils.load()`
|
|
28
|
+
* dies with `ImportError: <Class> requires the PyTorch library...`
|
|
29
|
+
* before the engine reports ready. The Apple Silicon wheels are small
|
|
30
|
+
* (~500 MB combined), so paying the disk cost universally is cheaper
|
|
31
|
+
* than per-model gating.
|
|
32
|
+
*/
|
|
33
|
+
/** Default pin for the MLX backend. Advanced users override via
|
|
34
|
+
* `config.mlxPackageSpec` (Settings → This Mac → Advanced).
|
|
35
|
+
*
|
|
36
|
+
* PINNED, not a floor. A floating `>=` spec previously pulled mlx-vlm 0.6.4
|
|
37
|
+
* onto fresh machines and exposed a byte-fallback detokenizer regression in
|
|
38
|
+
* ordinary Qwen output, killing the engine mid-turn and breaking tool calls.
|
|
39
|
+
* The 0.6.6 line that replaced it carried the Laguna text architecture and was
|
|
40
|
+
* compatibility-checked against Gezel's wrapper imports, Laguna tool
|
|
41
|
+
* templating, Qwen byte-BPE streaming, and a real Gemma 4 generation.
|
|
42
|
+
*
|
|
43
|
+
* 0.6.14 was TRIED and REVERTED on 2026-08-18. The theory was that its
|
|
44
|
+
* rewritten `BatchKVCache` would restore prompt-cache reuse — MLX was
|
|
45
|
+
* re-prefilling every turn (23.5% hit rate, median 0 cached tokens). That
|
|
46
|
+
* theory was wrong twice over: 0.6.6's `mlx_vlm.models.cache.BatchKVCache`
|
|
47
|
+
* already implements `is_trimmable()`/`trim()` (an earlier check misread the
|
|
48
|
+
* `mlx_lm` copy), and on 0.6.14 the cache did not improve — 20.8% hit rate,
|
|
49
|
+
* still median 0 cached. Meanwhile a paired A/B on qwen3.8-27b-q4 measured a
|
|
50
|
+
* large slowdown at unchanged 10/10 task success:
|
|
51
|
+
*
|
|
52
|
+
* tictactoe 8.4 min -> 15.9 min tankcombat 12.7 min -> 23.3 min
|
|
53
|
+
* probe throughput 55.8 -> 40.7 gen tok/s
|
|
54
|
+
*
|
|
55
|
+
* The re-prefill cause that bump chased was later found and fixed
|
|
56
|
+
* gezel-side (roster-shaped cache identity + the §12b snapshot machinery
|
|
57
|
+
* — docs/kv-prompt-caching-strategy.md).
|
|
58
|
+
*
|
|
59
|
+
* 0.6.17 (2026-08-28): bumped for MTP speculative decoding, and the bump
|
|
60
|
+
* is correctness-forced — 0.6.6's MTP verify is measured-INEXACT (greedy
|
|
61
|
+
* spec diverged from greedy no-spec; reports/mlx-mtp-rig-20260828.md),
|
|
62
|
+
* and spec_decode.py refuses to arm speculation below 0.6.17. The line
|
|
63
|
+
* also carries 0.6.15's batch-row isolation fix and 0.6.16's ArraysCache
|
|
64
|
+
* per-token Metal buffer leak fix (measured: that leak fix does NOT cure
|
|
65
|
+
* the vlm-tower decode slope under mlx_lm's BatchGenerator — 1.01 → 0.83
|
|
66
|
+
* ms/tok per 10k ctx — so the text-tower split stays). Exactness and the
|
|
67
|
+
* ~1.4x speedup are verified on-device for this list's resolved set
|
|
68
|
+
* (mlx-lm 0.31.3 with mlx 0.32.0; the rig also verified mlx 0.32.2).
|
|
69
|
+
*
|
|
70
|
+
* 0.7.1 (2026-09-14): bumped for Qwen3.8 Flash Next (`qwen4_exp`). Its
|
|
71
|
+
* Qwen4 implementation carries the sparse-attention cache/batch fixes and
|
|
72
|
+
* the Qwen3.8 Conv3d layout correction that the checkpoint needs. Gezel's
|
|
73
|
+
* exact wrapper combination was verified on an M5 Max with mlx-lm 0.31.3
|
|
74
|
+
* and the resolved mlx 0.32.2: real sidecar generation + prompt-cache reuse,
|
|
75
|
+
* plus a two-row Qwen4-Exp continuous-batch prefill/decode smoke. The full
|
|
76
|
+
* 112 GB Flash checkpoint is separately catalog-qualified through 0.7.1's
|
|
77
|
+
* external-PLE view: its 32,000,153,600-byte n-gram table stays disk-backed
|
|
78
|
+
* instead of consuming the Metal working set. Do not treat the library pin
|
|
79
|
+
* alone as proof that every community conversion is correct or fits.
|
|
80
|
+
*
|
|
81
|
+
* Keep upgrades explicit and re-sweep the MLX catalog whenever this pin
|
|
82
|
+
* moves. */
|
|
83
|
+
export const MLX_DEFAULT_PACKAGE_SPEC = 'mlx-vlm==0.7.1';
|
|
84
|
+
/** Venv name passed to `UvRuntime.ensureVenv` (and its dir basename). */
|
|
85
|
+
export const MLX_VENV_NAME = 'mlx';
|
|
86
|
+
/**
|
|
87
|
+
* The package list to install into the MLX venv. `packageSpec` is the
|
|
88
|
+
* user's optional `config.mlxPackageSpec` override; when unset we pin
|
|
89
|
+
* {@link MLX_DEFAULT_PACKAGE_SPEC}.
|
|
90
|
+
*/
|
|
91
|
+
export function mlxVenvPackages(packageSpec) {
|
|
92
|
+
// `llguidance` backs decode-time tool-call grammars (see
|
|
93
|
+
// providers/mlx/python/tool_grammar.py). It ships today as a transitive
|
|
94
|
+
// mlx-vlm dependency, but pin it explicitly so the grammar safety net
|
|
95
|
+
// can't silently vanish under a future mlx-vlm that drops it.
|
|
96
|
+
//
|
|
97
|
+
// `mlx-lm` is load-bearing twice over — the sidecar's batch engine
|
|
98
|
+
// (`from mlx_lm.generate import BatchGenerator`) and the qwen3_5 text
|
|
99
|
+
// tower both live there — and modern mlx-vlm no longer declares it as
|
|
100
|
+
// a dependency (0.6.6 did, which is the only reason the old list
|
|
101
|
+
// worked). Dropping this pin kills the batch engine at import time.
|
|
102
|
+
// 0.31.3 is also the combination used for the 0.7.1 Qwen4-Exp batch
|
|
103
|
+
// compatibility check above; keep it independent of mlx-vlm's deps.
|
|
104
|
+
return [
|
|
105
|
+
packageSpec ?? MLX_DEFAULT_PACKAGE_SPEC,
|
|
106
|
+
'mlx-lm==0.31.3',
|
|
107
|
+
'torch',
|
|
108
|
+
'torchvision',
|
|
109
|
+
'llguidance',
|
|
110
|
+
];
|
|
111
|
+
}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import type { NativeVisionPreference } from '../vision-capability.js';
|
|
2
|
+
import type { MlxEngineGate } from './engine-gate.js';
|
|
3
|
+
/**
|
|
4
|
+
* When an MLX engine loads its vision tower.
|
|
5
|
+
*
|
|
6
|
+
* `--vision` makes the sidecar load mlx_vlm's full multimodal tower, and for
|
|
7
|
+
* the architectures that otherwise get mlx_lm's text tower that tax lands on
|
|
8
|
+
* every text turn: 32 -> 45 ms/token at 11k context and 41 -> 87 at 54k on
|
|
9
|
+
* qwen3.8-27b (the `[tower]` note in gezel_mlx_server.py). So a checkpoint
|
|
10
|
+
* that has a vision tower starts text-only (`on-demand`) and reloads once, the
|
|
11
|
+
* first time a request carries pixels, then stays in vision mode for the rest
|
|
12
|
+
* of that engine process. An explicit per-model `config.nativeVision` wins:
|
|
13
|
+
* `true` is `always`, `false` is `never`.
|
|
14
|
+
*/
|
|
15
|
+
export type MlxVisionPolicy = 'always' | 'on-demand' | 'never';
|
|
16
|
+
export declare function resolveMlxVisionPolicy(opts: {
|
|
17
|
+
preference: NativeVisionPreference;
|
|
18
|
+
hasVisionTower: boolean;
|
|
19
|
+
}): MlxVisionPolicy;
|
|
20
|
+
/**
|
|
21
|
+
* Disk-cache segment for one launch. KV persisted by mlx_lm's text tower and
|
|
22
|
+
* by mlx_vlm's tower is not interchangeable — the saved cache classes come
|
|
23
|
+
* from different packages, and the vlm tower keeps multimodal position state
|
|
24
|
+
* the text tower never wrote — so the two must never restore each other's
|
|
25
|
+
* entries. The text segment keeps the historical fingerprint: every release
|
|
26
|
+
* before on-demand vision launched text-only, and its caches stay valid.
|
|
27
|
+
*/
|
|
28
|
+
export declare function mlxCacheFingerprint(modelFingerprint: string, vision: boolean): string;
|
|
29
|
+
interface VisionMessage {
|
|
30
|
+
role: string;
|
|
31
|
+
content?: unknown;
|
|
32
|
+
images?: string[];
|
|
33
|
+
}
|
|
34
|
+
/** Why this request needs the vision tower, or `undefined` when it carries no pixels. */
|
|
35
|
+
export declare function describeVisionNeed(messages: readonly VisionMessage[], turnStartIdx: number): string | undefined;
|
|
36
|
+
/**
|
|
37
|
+
* Suffix for a successful tool result whose images a text-only engine cannot
|
|
38
|
+
* be shown. The tool's real work — a generated image on disk, a rendered
|
|
39
|
+
* poster — already happened; reporting it as a failure made the model run
|
|
40
|
+
* the GPU-heavy generation again until the failure tracker aborted the turn.
|
|
41
|
+
*/
|
|
42
|
+
export declare function unseenToolImagesNote(count: number): string;
|
|
43
|
+
export declare function withoutImages<T extends VisionMessage>(messages: T[]): T[];
|
|
44
|
+
interface VisionSupervisor {
|
|
45
|
+
ensureRunning(): Promise<unknown>;
|
|
46
|
+
stop(): Promise<void>;
|
|
47
|
+
lifecycleSnapshot(): {
|
|
48
|
+
running: boolean;
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* One MLX engine's tower, decided per launch. The supervisor calls
|
|
53
|
+
* {@link takeLaunch} from `resolveLaunch`; sessions call {@link prepareRequest}
|
|
54
|
+
* before every request. A switch holds every engine-gate slot, so it waits for
|
|
55
|
+
* in-flight requests of other sessions instead of killing them, then reloads
|
|
56
|
+
* through the supervisor's own stop/start — the pool entry, its reservation
|
|
57
|
+
* and its idle accounting never change.
|
|
58
|
+
*/
|
|
59
|
+
export declare class MlxVisionMode {
|
|
60
|
+
readonly policy: MlxVisionPolicy;
|
|
61
|
+
private readonly label;
|
|
62
|
+
private pendingReason;
|
|
63
|
+
private launchedWithVision;
|
|
64
|
+
private unavailableReason;
|
|
65
|
+
private supervisor;
|
|
66
|
+
private gate;
|
|
67
|
+
private isDisposed;
|
|
68
|
+
private switching;
|
|
69
|
+
constructor(policy: MlxVisionPolicy, label?: string);
|
|
70
|
+
/** A tower fixed at construction: an external server, or a test double. */
|
|
71
|
+
static fixed(visionEnabled: boolean): MlxVisionMode;
|
|
72
|
+
bindEngine(supervisor: VisionSupervisor | undefined, gate: Pick<MlxEngineGate, 'acquireAll'>, isDisposed: () => boolean): void;
|
|
73
|
+
/** Whether images can reach the model — now, or after one reload into the vision tower. */
|
|
74
|
+
get capable(): boolean;
|
|
75
|
+
/** Whether the current (or most recent) engine process loaded the vision tower. */
|
|
76
|
+
get active(): boolean;
|
|
77
|
+
/**
|
|
78
|
+
* Decide this launch's tower. Called once per engine start; a pending
|
|
79
|
+
* request is consumed, so the process after this one starts text-only
|
|
80
|
+
* again unless something asks for vision.
|
|
81
|
+
*/
|
|
82
|
+
takeLaunch(): boolean;
|
|
83
|
+
/**
|
|
84
|
+
* The request's messages, bound for an engine that can read them. When no
|
|
85
|
+
* vision tower can be loaded the pixels are replaced with an honest note,
|
|
86
|
+
* because the sidecar rejects image requests on a text-only launch.
|
|
87
|
+
*/
|
|
88
|
+
prepareRequest<T extends VisionMessage>(messages: T[], turnStartIdx: number, signal?: AbortSignal): Promise<T[]>;
|
|
89
|
+
ensureVision(reason: string, signal?: AbortSignal): Promise<boolean>;
|
|
90
|
+
private switchToVision;
|
|
91
|
+
}
|
|
92
|
+
export {};
|