@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,812 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CapacityBroker — single source of truth for "do we have headroom
|
|
3
|
+
* to load another local model?" Sums per-engine `residentBytes`
|
|
4
|
+
* reservations against a budget (auto-derived from system RAM, or
|
|
5
|
+
* explicitly set in config) and decides reserve / deny.
|
|
6
|
+
*
|
|
7
|
+
* The broker tracks reservations, not actual RSS. Treating
|
|
8
|
+
* `residentBytes` from the catalog as the source of truth keeps the
|
|
9
|
+
* logic deterministic and fast — a polling RSS reader would race the
|
|
10
|
+
* reserve→spawn window where committed > actual. The catalog number
|
|
11
|
+
* intentionally over-estimates (working set + buffers), so the broker
|
|
12
|
+
* is conservative in the right direction.
|
|
13
|
+
*
|
|
14
|
+
* Lifecycle: every supervisor spawn calls `reserve(key, bytes)`;
|
|
15
|
+
* every supervisor stop (idle, eviction, shutdown) calls
|
|
16
|
+
* `release(key)`. The pool decides what to do when `reserve` returns
|
|
17
|
+
* false — typically: pick LRU and evict, then retry.
|
|
18
|
+
*/
|
|
19
|
+
import { type LlamaCppContextSizing } from '@bendyline/gezel';
|
|
20
|
+
import { type CapacityBudget, fastMemoryBudgetBytes } from './capacity-budget.js';
|
|
21
|
+
import type { LocalProviderName } from './engine-key.js';
|
|
22
|
+
export { autoAllowRamSpillover, autoDetectBudgetBytes, computeCapacityBudget, getDetectedGpuVramBytes, pressureIdleGraceMs, setDetectedGpuVramBytes, type CapacityBudget, } from './capacity-budget.js';
|
|
23
|
+
export { fastMemoryBudgetBytes };
|
|
24
|
+
export type EngineKey = string;
|
|
25
|
+
export interface CapacityBrokerOptions {
|
|
26
|
+
/**
|
|
27
|
+
* Total budget in bytes. Pass `undefined` to derive from system RAM
|
|
28
|
+
* via {@link autoDetectBudgetBytes}. Pass `0` (or any value <
|
|
29
|
+
* 1 GB) to disable enforcement — the broker still tracks
|
|
30
|
+
* reservations but `canReserve` always returns true. Useful for
|
|
31
|
+
* tests and for users who want to opt out of the budget entirely.
|
|
32
|
+
*/
|
|
33
|
+
budgetBytes?: number;
|
|
34
|
+
/** Test seam — defaults to {@link totalmem}. */
|
|
35
|
+
systemRamBytes?: () => number;
|
|
36
|
+
/**
|
|
37
|
+
* Whether this host shares one memory pool between CPU and GPU, which
|
|
38
|
+
* changes the auto-derived budget. Defaults to detecting the running
|
|
39
|
+
* host; pass it explicitly in tests so the expected budget doesn't
|
|
40
|
+
* depend on which machine the suite runs on.
|
|
41
|
+
*/
|
|
42
|
+
unifiedMemory?: boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Measured discrete-GPU VRAM, or null for none. A card's memory is added
|
|
45
|
+
* to the RAM share rather than replacing it — see
|
|
46
|
+
* {@link computeCapacityBudget}. Omit to read the last published probe.
|
|
47
|
+
*/
|
|
48
|
+
gpuVramBytes?: number | null;
|
|
49
|
+
/**
|
|
50
|
+
* May co-resident models spill into system RAM? `null`/omitted follows
|
|
51
|
+
* {@link autoAllowRamSpillover} for this host. See
|
|
52
|
+
* {@link CapacityBroker.coResidencyBytes}.
|
|
53
|
+
*/
|
|
54
|
+
allowRamSpillover?: boolean | null;
|
|
55
|
+
}
|
|
56
|
+
export interface CapacityCommitted {
|
|
57
|
+
budgetBytes: number;
|
|
58
|
+
committedBytes: number;
|
|
59
|
+
enforced: boolean;
|
|
60
|
+
/** Total physical RAM the budget was derived from (for messaging). */
|
|
61
|
+
systemRamBytes: number;
|
|
62
|
+
/**
|
|
63
|
+
* What {@link autoDetectBudgetBytes} would pick for this host, whether or
|
|
64
|
+
* not an explicit budget is in force. The Settings slider marks it on the
|
|
65
|
+
* track so "Auto" stays a visible position rather than a hidden default.
|
|
66
|
+
*/
|
|
67
|
+
autoBudgetBytes: number;
|
|
68
|
+
/** True when an explicit budget is overriding {@link autoBudgetBytes}. */
|
|
69
|
+
overridden: boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Which pools the auto budget draws on, so the UI and the denial message
|
|
72
|
+
* can name the memory a person actually has instead of describing a 24 GB
|
|
73
|
+
* card's models as a percentage of system RAM.
|
|
74
|
+
*/
|
|
75
|
+
pools: {
|
|
76
|
+
kind: CapacityBudget['kind'];
|
|
77
|
+
/** Usable VRAM on a discrete card; 0 on unified / CPU-only hosts. */
|
|
78
|
+
vramBytes: number;
|
|
79
|
+
/** The system-RAM share of the auto budget. */
|
|
80
|
+
ramShareBytes: number;
|
|
81
|
+
/** Fast (on-accelerator) memory — VRAM on a card, the budget otherwise. */
|
|
82
|
+
fastBytes: number;
|
|
83
|
+
/**
|
|
84
|
+
* {@link CapacityBudget.concurrencySizingBytes} — what slot COUNT is
|
|
85
|
+
* sized against. Lower than `fastBytes` on a big unified host, where
|
|
86
|
+
* admission capacity was raised without raising peak concurrency.
|
|
87
|
+
*/
|
|
88
|
+
concurrencySizingBytes: number;
|
|
89
|
+
};
|
|
90
|
+
/** Whether co-resident models may spill into system RAM, and how that was decided. */
|
|
91
|
+
ramSpillover: {
|
|
92
|
+
allowed: boolean;
|
|
93
|
+
/** What this host would pick on its own; the toggle's "Auto" position. */
|
|
94
|
+
auto: boolean;
|
|
95
|
+
/** True when an explicit setting is overriding {@link auto}. */
|
|
96
|
+
overridden: boolean;
|
|
97
|
+
/**
|
|
98
|
+
* The ceiling the resident set must fit under while more than one model
|
|
99
|
+
* is loaded. Equals {@link budgetBytes} when spilling is allowed.
|
|
100
|
+
*/
|
|
101
|
+
coResidencyBytes: number;
|
|
102
|
+
};
|
|
103
|
+
byKey: Array<{
|
|
104
|
+
key: EngineKey;
|
|
105
|
+
bytes: number;
|
|
106
|
+
}>;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Turn a raw capacity denial into a human-readable, actionable
|
|
110
|
+
* message. The raw broker reason (`budget exhausted: would commit
|
|
111
|
+
* 14326180192 against 10307921510`) is fine for logs but unreadable in
|
|
112
|
+
* a chat bubble — this is what the user actually sees when a model is
|
|
113
|
+
* too big to load.
|
|
114
|
+
*/
|
|
115
|
+
export declare function formatCapacityDenial(opts: {
|
|
116
|
+
/** Friendly model name, e.g. `gemma4-12b-q4` (not the engine key). */
|
|
117
|
+
modelLabel: string;
|
|
118
|
+
/** Bytes the model needs resident. */
|
|
119
|
+
requestedBytes: number;
|
|
120
|
+
/** Total model budget. */
|
|
121
|
+
budgetBytes: number;
|
|
122
|
+
/** Bytes already reserved by other resident models. */
|
|
123
|
+
committedBytes: number;
|
|
124
|
+
/** Physical RAM the budget was derived from; 0 when unknown. */
|
|
125
|
+
systemRamBytes: number;
|
|
126
|
+
/**
|
|
127
|
+
* Which pools the budget draws on. Omit on a RAM-only host. Without this
|
|
128
|
+
* the message describes a 24 GB card's budget as a percentage of system
|
|
129
|
+
* RAM — the number a person with a GPU is least likely to recognize.
|
|
130
|
+
*/
|
|
131
|
+
pools?: CapacityCommitted['pools'];
|
|
132
|
+
/**
|
|
133
|
+
* The co-residency ceiling, when it is tighter than the budget — i.e. when
|
|
134
|
+
* this refusal is "keep models on the card", not "out of memory".
|
|
135
|
+
*/
|
|
136
|
+
coResidencyBytes?: number;
|
|
137
|
+
}): string;
|
|
138
|
+
/**
|
|
139
|
+
* A model that could not be admitted for lack of memory. The message is
|
|
140
|
+
* unchanged from what `formatCapacityDenial` always produced — the class
|
|
141
|
+
* exists purely so `describeTurnError` can tell an out-of-memory refusal
|
|
142
|
+
* apart from an engine crash, since the two need very different advice in
|
|
143
|
+
* a bug report.
|
|
144
|
+
*/
|
|
145
|
+
export declare class CapacityDeniedError extends Error {
|
|
146
|
+
readonly code = "capacity-denied";
|
|
147
|
+
/**
|
|
148
|
+
* Machine-readable cause when the human message alone would mislead a
|
|
149
|
+
* downstream surface. `resident-below-minimum` = the model is ALREADY
|
|
150
|
+
* running with a window smaller than the current policy requires — the
|
|
151
|
+
* remedy is an engine restart, not freeing memory, and the models list
|
|
152
|
+
* must not render it as a generic "won't fit".
|
|
153
|
+
*/
|
|
154
|
+
readonly reason?: 'resident-below-minimum';
|
|
155
|
+
constructor(message: string, opts?: {
|
|
156
|
+
reason?: 'resident-below-minimum';
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* A resident engine could not be evicted in time to make room because it
|
|
161
|
+
* was still serving requests. Unlike {@link CapacityDeniedError} this is a
|
|
162
|
+
* *transient* condition — nothing is wrong with the model that wanted room;
|
|
163
|
+
* the caller should retry once current turns drain. The `code` lets the
|
|
164
|
+
* fitness probe classify the failure as "did not run" rather than "failed".
|
|
165
|
+
*/
|
|
166
|
+
export declare class EngineBusyError extends Error {
|
|
167
|
+
readonly code = "engine-busy";
|
|
168
|
+
constructor(message: string);
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Did this failure come from the pool refusing to make room, rather than from
|
|
172
|
+
* the model? Match the `code` first, and fall back to the stable message so a
|
|
173
|
+
* rewrapped error (the one-shot and provider layers both re-throw) still
|
|
174
|
+
* classifies right.
|
|
175
|
+
*
|
|
176
|
+
* Callers must not charge this to whatever they were working on: the request
|
|
177
|
+
* never reached a model, so it is evidence about neither the target nor the
|
|
178
|
+
* input. The fitness probe records `blocked` ("did not run"); index enrichment
|
|
179
|
+
* defers the file with its retry budget untouched.
|
|
180
|
+
*/
|
|
181
|
+
/**
|
|
182
|
+
* True for a refusal to load a model at all. Like {@link isEngineBusyError}
|
|
183
|
+
* this is a "never dispatched" signal: nothing reached a model, so it is
|
|
184
|
+
* evidence about neither the target's health nor the request's content.
|
|
185
|
+
*/
|
|
186
|
+
export declare function isCapacityDeniedError(err: unknown): boolean;
|
|
187
|
+
export declare function isEngineBusyError(err: unknown): boolean;
|
|
188
|
+
export declare class CapacityBroker {
|
|
189
|
+
private budgetBytes;
|
|
190
|
+
private enforced;
|
|
191
|
+
private explicitBudgetBytes;
|
|
192
|
+
private readonly systemRamBytes;
|
|
193
|
+
private readonly unifiedMemory;
|
|
194
|
+
private readonly gpuVramBytes;
|
|
195
|
+
private explicitAllowRamSpillover;
|
|
196
|
+
private readonly reservations;
|
|
197
|
+
constructor(opts?: CapacityBrokerOptions);
|
|
198
|
+
/**
|
|
199
|
+
* The broker is built once and lives for the whole process, so the host
|
|
200
|
+
* shape it was handed at construction is the one every later admission is
|
|
201
|
+
* priced against. `gpuVramBytes: null` there means "the boot probe reported
|
|
202
|
+
* no accelerator" — which is also exactly what a probe that TIMED OUT
|
|
203
|
+
* reports, and `nvidia-smi` on a laptop dGPU parked in a low-power state
|
|
204
|
+
* routinely loses its 2s race. Pinning that answer turns one slow probe
|
|
205
|
+
* into a RAM-only budget for the life of the daemon.
|
|
206
|
+
*
|
|
207
|
+
* So a card measured SINCE construction wins, by deferring the whole host
|
|
208
|
+
* shape — VRAM and the unified flag together — to the published probe. A
|
|
209
|
+
* host that genuinely has no accelerator publishes `null` too, and nothing
|
|
210
|
+
* changes for it.
|
|
211
|
+
*/
|
|
212
|
+
private autoBudget;
|
|
213
|
+
/**
|
|
214
|
+
* Re-derive the auto budget when the host measurement moved under it.
|
|
215
|
+
*
|
|
216
|
+
* {@link autoBudget} recomputes per call, but `budgetBytes` — the number
|
|
217
|
+
* admission actually gates on — is assigned once by {@link applyBudget}.
|
|
218
|
+
* Without this, a card measured after construction would show up in
|
|
219
|
+
* `pools` and in `fastBudgetBytes()` while the enforced ceiling stayed on
|
|
220
|
+
* the RAM-only curve, which is the half of the figure that denies models.
|
|
221
|
+
*
|
|
222
|
+
* Called from every public read; an explicit budget is the operator's
|
|
223
|
+
* number and is never re-derived.
|
|
224
|
+
*/
|
|
225
|
+
private refreshAutoBudget;
|
|
226
|
+
private applyBudget;
|
|
227
|
+
/**
|
|
228
|
+
* Re-point the budget without rebuilding the broker. `null` reverts to
|
|
229
|
+
* {@link autoDetectBudgetBytes}. Existing reservations are untouched: a
|
|
230
|
+
* shrink below current commitments doesn't evict anything, it just makes
|
|
231
|
+
* the next `reserve` fail until the pool's LRU path frees room. That is
|
|
232
|
+
* the same shape as the cache controller's live budget, and it keeps the
|
|
233
|
+
* Settings slider from severing a mid-turn engine.
|
|
234
|
+
*
|
|
235
|
+
* Without this the budget was read once when the engine router was built
|
|
236
|
+
* and cached until shutdown, so changing the setting did nothing until
|
|
237
|
+
* the daemon restarted.
|
|
238
|
+
*/
|
|
239
|
+
setBudgetBytes(bytes: number | null): void;
|
|
240
|
+
/**
|
|
241
|
+
* Live-update whether co-resident models may spill into system RAM.
|
|
242
|
+
* `null` reverts to {@link autoAllowRamSpillover}. Like
|
|
243
|
+
* {@link setBudgetBytes}, tightening never evicts anything itself — it
|
|
244
|
+
* makes the next reserve fail, and the pool's LRU path does the freeing.
|
|
245
|
+
*/
|
|
246
|
+
setAllowRamSpillover(allow: boolean | null): void;
|
|
247
|
+
/** Whether co-resident models may spill into system RAM right now. */
|
|
248
|
+
ramSpilloverAllowed(): boolean;
|
|
249
|
+
/**
|
|
250
|
+
* The ceiling the resident set must fit under **while more than one model
|
|
251
|
+
* is loaded**. Equal to the budget when spilling is allowed; the card's
|
|
252
|
+
* usable VRAM when it isn't.
|
|
253
|
+
*
|
|
254
|
+
* The single-model carve-out is the whole point of expressing this as a
|
|
255
|
+
* co-residency rule rather than a smaller budget: one model may still use
|
|
256
|
+
* the full budget, so a MoE larger than the card keeps running by streaming
|
|
257
|
+
* its experts from system RAM. What the rule forbids is a *second* model
|
|
258
|
+
* pushing the resident set off the card, where every model in it gets slow
|
|
259
|
+
* at once. Capping the budget instead would have made that big MoE
|
|
260
|
+
* unloadable and quietly shrunk the catalog to what fits in VRAM.
|
|
261
|
+
*/
|
|
262
|
+
coResidencyBytes(): number;
|
|
263
|
+
/** True iff a fresh reservation of `bytes` would fit. */
|
|
264
|
+
canReserve(bytes: number): boolean;
|
|
265
|
+
/**
|
|
266
|
+
* Bytes of existing reservation that must be released before `bytes` fits
|
|
267
|
+
* — 0 when it already does. Both constraints in one number so the pool can
|
|
268
|
+
* size an eviction batch without knowing which rule bound it.
|
|
269
|
+
*
|
|
270
|
+
* `priorBytes` is an existing reservation for the same key being resized;
|
|
271
|
+
* it is not an obstacle to itself.
|
|
272
|
+
*/
|
|
273
|
+
shortfallFor(bytes: number, priorBytes?: number): number;
|
|
274
|
+
/**
|
|
275
|
+
* Attempt to reserve `bytes` for `key`. Returns the result; on
|
|
276
|
+
* `granted: false` the caller is expected to evict and retry.
|
|
277
|
+
*
|
|
278
|
+
* Idempotent on `key`: a second reserve for the same key replaces
|
|
279
|
+
* the prior bytes value (useful when an engine's working set grows
|
|
280
|
+
* after first turn). The replacement is treated as "free old, add
|
|
281
|
+
* new" so an enlargement that no longer fits returns false and
|
|
282
|
+
* leaves the prior reservation intact.
|
|
283
|
+
*/
|
|
284
|
+
reserve(key: EngineKey, bytes: number): {
|
|
285
|
+
granted: boolean;
|
|
286
|
+
reason?: string;
|
|
287
|
+
};
|
|
288
|
+
/**
|
|
289
|
+
* The raw machine-shaped reason for a denial of `bytes` (optionally
|
|
290
|
+
* replacing an existing `priorBytes` reservation). Single source of
|
|
291
|
+
* the `budget exhausted: would commit N against M` string — it feeds
|
|
292
|
+
* both `reserve()` results and the pool's `capacity broker denied`
|
|
293
|
+
* log line, whose shape is a contract with the eval harness (see
|
|
294
|
+
* provider-pool.ts). Do not reword. A co-residency denial keeps that
|
|
295
|
+
* exact prefix and only appends its own clause, so the harness's
|
|
296
|
+
* `capacity broker denied … budget exhausted` match still classifies it.
|
|
297
|
+
*/
|
|
298
|
+
denialReason(bytes: number, priorBytes?: number): string;
|
|
299
|
+
release(key: EngineKey): void;
|
|
300
|
+
/** Sum of all current reservations. */
|
|
301
|
+
committedBytes(): number;
|
|
302
|
+
/** Fast (on-accelerator) memory for this host — see {@link CapacityBudget.fastBytes}. */
|
|
303
|
+
fastBudgetBytes(): number;
|
|
304
|
+
/** Snapshot used by the UX status endpoint and tests. */
|
|
305
|
+
committed(): CapacityCommitted;
|
|
306
|
+
/**
|
|
307
|
+
* Fallback estimate when a catalog entry lacks `residentBytes`.
|
|
308
|
+
* Used by callers building reservation requests from
|
|
309
|
+
* `approxSizeBytes`. Reflects the working-set footprint vs. on-disk
|
|
310
|
+
* size WITHOUT any KV — every caller prices KV explicitly on top.
|
|
311
|
+
*
|
|
312
|
+
* llama.cpp: see {@link estimateLlamaCppResidentBytes}. Pass `mmprojBytes`
|
|
313
|
+
* for a multimodal model — `approxSizeBytes` counts the weights alone, and
|
|
314
|
+
* the projector plus its vision buffers is 1.7 GB on a 30B.
|
|
315
|
+
* MLX: see {@link estimateMlxResidentBytes}. MLX needs no equivalent — its
|
|
316
|
+
* vision tower is inside the same safetensors set `approxSizeBytes` sums.
|
|
317
|
+
*
|
|
318
|
+
* ds4 is special: it streams MoE experts from SSD, so its resident
|
|
319
|
+
* working set is bounded by the configured expert-cache budget + KV +
|
|
320
|
+
* non-routed weights — NOT the full on-disk weight size. The catalog
|
|
321
|
+
* `residentBytes` is authoritative for ds4; this fallback only caps at a
|
|
322
|
+
* conservative streaming working set so a 64GB box is never told an
|
|
323
|
+
* 87GB DeepSeek-V4 model "can't fit" (which is the whole point of ds4).
|
|
324
|
+
*/
|
|
325
|
+
static estimateResidentBytes(engine: LocalProviderName, approxSizeBytes: number, opts?: {
|
|
326
|
+
mmprojBytes?: number;
|
|
327
|
+
}): number;
|
|
328
|
+
}
|
|
329
|
+
/**
|
|
330
|
+
* RECLAIMABLE-aware free RAM. `os.freemem()` reports truly-free pages
|
|
331
|
+
* only: on macOS, file-backed cache and purgeable memory count as "used"
|
|
332
|
+
* even though the kernel hands them back on demand — and a just-exited
|
|
333
|
+
* llama engine's mmap'd weights ARE file-backed cache, so freemem()
|
|
334
|
+
* reads a few GB on a 64 GB box right after any model ran. Wild-caught
|
|
335
|
+
* 2026-08-04: the context memory-clamp saw "~6.6 GB available", floored
|
|
336
|
+
* gemma4-31b to 8,192 ctx, and all 11 trials died on context overflow —
|
|
337
|
+
* on a machine with >40 GB actually reclaimable. Linux freemem() has the
|
|
338
|
+
* same free-vs-MemAvailable trap.
|
|
339
|
+
*
|
|
340
|
+
* darwin: vm_stat free+inactive+speculative+purgeable+file-backed.
|
|
341
|
+
* linux: /proc/meminfo MemAvailable. Fallback: freemem().
|
|
342
|
+
*/
|
|
343
|
+
export declare function availableSystemRamBytes(): number;
|
|
344
|
+
/** Pure vm_stat parser (exported for tests). Returns null when the output
|
|
345
|
+
* doesn't look like vm_stat. */
|
|
346
|
+
export declare function parseVmStatAvailableBytes(text: string): number | null;
|
|
347
|
+
/** Pure /proc/meminfo parser (exported for tests). */
|
|
348
|
+
export declare function parseMeminfoAvailableBytes(text: string): number | null;
|
|
349
|
+
/**
|
|
350
|
+
* Demand-shaped default concurrent-slot count for a supervised local engine.
|
|
351
|
+
* The input is usable FAST memory: VRAM on a discrete GPU, the shared pool on
|
|
352
|
+
* UMA, and the engine RAM budget on CPU. System RAM beside a dGPU must never
|
|
353
|
+
* raise `--parallel` / `--max-concurrency`; it is only a single-large-model
|
|
354
|
+
* offload pool. Thresholds are expressed against the safety-discounted pool,
|
|
355
|
+
* so an 8 GiB card resolves to 1 and a 16 GiB card to 2.
|
|
356
|
+
*
|
|
357
|
+
* The exact model/KV ceiling clamps this further. An explicit
|
|
358
|
+
* `providerConcurrency[engine]` setting remains an operator override.
|
|
359
|
+
*/
|
|
360
|
+
export declare function defaultLocalEngineSlots(fastMemoryBytes?: number): number;
|
|
361
|
+
/**
|
|
362
|
+
* Slots a launch would be admitted at before the context-admission ladder
|
|
363
|
+
* gets its say: an explicit operator setting, else the fast-memory tier default
|
|
364
|
+
* capped by what memory can actually hold.
|
|
365
|
+
*
|
|
366
|
+
* Exists so every caller resolves slots the same way. The launch-preview
|
|
367
|
+
* short-circuit once used the bare tier default while the main path clamped
|
|
368
|
+
* by the ceiling, so a resident model on a 32-48 GB host advertised a
|
|
369
|
+
* 3-slot reservation (~49 GB for a 17 GB model) the broker would never have
|
|
370
|
+
* admitted.
|
|
371
|
+
*/
|
|
372
|
+
export declare function plannedLocalEngineSlots(opts: {
|
|
373
|
+
configuredSlots?: number | undefined;
|
|
374
|
+
ceiling: number;
|
|
375
|
+
tierDefault?: number;
|
|
376
|
+
}): number;
|
|
377
|
+
/**
|
|
378
|
+
* Conservative estimate of the KV-cache bytes ONE slot needs at a given
|
|
379
|
+
* per-turn context window. We have no model attention-architecture metadata
|
|
380
|
+
* (layers / KV-heads / head-dim) anywhere in the app, so we scale off the
|
|
381
|
+
* on-disk weights size — calibrated to a measured anchor (a 26B Q4_K_M
|
|
382
|
+
* Gemma uses ~2 GB of q8_0 KV at 65K ctx ≈ 30 KB/token) and biased ~1.3×
|
|
383
|
+
* high so we under-provision slots rather than risk OOM. Clamped to a sane
|
|
384
|
+
* per-token band so tiny models don't round to ~0 and giant MoE weights
|
|
385
|
+
* don't push the estimate far past reality.
|
|
386
|
+
*/
|
|
387
|
+
/** Approximate scale from an f16 KV baseline to the launcher's cache dtype. */
|
|
388
|
+
export declare function kvQuantScale(kvCacheType: string | undefined): number;
|
|
389
|
+
export declare function estimatePerSlotKvBytes(opts: {
|
|
390
|
+
perTurnCtxTokens: number;
|
|
391
|
+
weightsBytes: number;
|
|
392
|
+
kvCacheType?: string;
|
|
393
|
+
}): number;
|
|
394
|
+
export declare function computeHeadroomFor(engine: LocalProviderName): number;
|
|
395
|
+
/**
|
|
396
|
+
* Bytes left for KV + compute after resident weights and any co-resident
|
|
397
|
+
* models. Negative when the model barely fits (or doesn't) — callers clamp.
|
|
398
|
+
* Shared so the slot COUNT ({@link localEngineSlotCeiling}) and the engine's
|
|
399
|
+
* own prompt-cache budget can be sized against the SAME number instead of
|
|
400
|
+
* drifting apart (a fat prompt cache holding idle-session KV was a
|
|
401
|
+
* co-conspirator in the 27B Metal OOM, not just the concurrent slots).
|
|
402
|
+
*/
|
|
403
|
+
export declare function localEngineKvBudgetBytes(opts: {
|
|
404
|
+
engine: LocalProviderName;
|
|
405
|
+
budgetBytes: number;
|
|
406
|
+
weightsBytes: number;
|
|
407
|
+
/** Fixed working set with KV excluded. When absent, derive it from weightsBytes. */
|
|
408
|
+
weightsResidentBytes?: number;
|
|
409
|
+
committedOtherBytes?: number;
|
|
410
|
+
}): number;
|
|
411
|
+
/**
|
|
412
|
+
* Max concurrent slots that fit the model budget: resident weights +
|
|
413
|
+
* N × per-slot KV + a compute-headroom reserve ≤ budget. Always ≥ 1 — if even
|
|
414
|
+
* one slot's KV doesn't fit, that's the broker's job to deny the whole spawn;
|
|
415
|
+
* our job is only the slot COUNT given the model loads. `committedOtherBytes`
|
|
416
|
+
* subtracts co-resident model reservations (default 0 = primary/only model).
|
|
417
|
+
*
|
|
418
|
+
* `engine` drives the resident-weights multiplier (MLX's f16 KV + working set
|
|
419
|
+
* runs heavier than llama.cpp's — see {@link CapacityBroker.estimateResidentBytes}).
|
|
420
|
+
* Pass the ACTUAL `kvCacheType` the engine will run: MLX defaults to f16 (no
|
|
421
|
+
* `--kv-bits`), so omitting it or passing a q8 type here silently under-counts
|
|
422
|
+
* KV by ~1.8× and over-slots — exactly the trap the MLX path fell into.
|
|
423
|
+
*/
|
|
424
|
+
export declare function localEngineSlotCeiling(opts: {
|
|
425
|
+
engine: LocalProviderName;
|
|
426
|
+
budgetBytes: number;
|
|
427
|
+
weightsBytes: number;
|
|
428
|
+
/** Fixed working set with KV excluded. When absent, derive it from weightsBytes. */
|
|
429
|
+
weightsResidentBytes?: number;
|
|
430
|
+
perTurnCtxTokens: number;
|
|
431
|
+
kvCacheType?: string;
|
|
432
|
+
committedOtherBytes?: number;
|
|
433
|
+
/**
|
|
434
|
+
* Header-exact per-slot KV at f16 (see estimateExactPerSlotKvBytesF16).
|
|
435
|
+
* When present it replaces the weights-scaled heuristic, scaled to the
|
|
436
|
+
* launcher's cache dtype by the same approximate quant ladder — the
|
|
437
|
+
* heuristic under-prices small dense models ~3× (over-slotting exactly
|
|
438
|
+
* the models that get multi-slot defaults) and over-prices MoE.
|
|
439
|
+
*/
|
|
440
|
+
exactPerSlotKvBytesF16?: number;
|
|
441
|
+
/**
|
|
442
|
+
* {@link CapacityBudget.concurrencySizingBytes} — the ceiling slot COUNT is
|
|
443
|
+
* sized against when it is lower than the admission budget. Raising the
|
|
444
|
+
* budget must let more models fit, not silently hand one model more
|
|
445
|
+
* simultaneous KV slots. Omit to size against `budgetBytes` (the pre-split
|
|
446
|
+
* behavior, and correct for a discrete card where the two are the same).
|
|
447
|
+
*/
|
|
448
|
+
sizingBudgetBytes?: number;
|
|
449
|
+
}): number;
|
|
450
|
+
/**
|
|
451
|
+
* llama.cpp slot ceiling — thin wrapper over {@link localEngineSlotCeiling}.
|
|
452
|
+
* Retained for existing callers/tests; new engine paths call the generic form
|
|
453
|
+
* with their own `engine` + `kvCacheType`.
|
|
454
|
+
*/
|
|
455
|
+
export declare function llamaCppSlotCeiling(opts: {
|
|
456
|
+
budgetBytes: number;
|
|
457
|
+
weightsBytes: number;
|
|
458
|
+
weightsResidentBytes?: number;
|
|
459
|
+
perTurnCtxTokens: number;
|
|
460
|
+
kvCacheType?: string;
|
|
461
|
+
committedOtherBytes?: number;
|
|
462
|
+
exactPerSlotKvBytesF16?: number;
|
|
463
|
+
sizingBudgetBytes?: number;
|
|
464
|
+
}): number;
|
|
465
|
+
/**
|
|
466
|
+
* Physical memory held back from every live-availability decision: the OS,
|
|
467
|
+
* the desktop shell, and whatever the user is actually doing.
|
|
468
|
+
*
|
|
469
|
+
* ONE function because there used to be two, and they disagreed by gigabytes.
|
|
470
|
+
* The context clamp held back a flat 2 GiB from
|
|
471
|
+
* {@link availableSystemRamBytes}; the device admission ledger held back
|
|
472
|
+
* `min(4 GiB, 10% of RAM)` from a stricter darwin-only sample that counted
|
|
473
|
+
* neither inactive nor speculative pages. On a 16 GiB Mac the planner read
|
|
474
|
+
* 9.3 GiB available and the admitter 4.3 GiB from the same `vm_stat` seconds
|
|
475
|
+
* apart, so a launch the planner sized at 9.7 GiB sat in the admission queue
|
|
476
|
+
* for its full five-minute budget and then failed — on a host that was never
|
|
477
|
+
* going to free 5 GiB, because nothing was holding it but the estimate.
|
|
478
|
+
* Planning and admission must read one number.
|
|
479
|
+
*/
|
|
480
|
+
export declare function liveRamOsReserveBytes(totalRamBytes?: number): number;
|
|
481
|
+
/**
|
|
482
|
+
* The most a launch could hold right now, as {@link clampCtxTokensForMemory}
|
|
483
|
+
* reckons it with nothing else resident: the fast pool plus the system RAM
|
|
484
|
+
* free now, less the OS reserve and the planning margin, capped by the
|
|
485
|
+
* budget. First run picks against this so it never chooses a model the
|
|
486
|
+
* first chat turn refuses, and the failed-turn card names a model that will
|
|
487
|
+
* start.
|
|
488
|
+
*
|
|
489
|
+
* It holds back {@link FIT_NOW_DRIFT_BYTES} more: free RAM moves by hundreds
|
|
490
|
+
* of megabytes between this check and the launch, and a model priced inside
|
|
491
|
+
* that drift was suggested and then refused (2026-10-12).
|
|
492
|
+
*/
|
|
493
|
+
export declare function liveLaunchCapBytes(input: {
|
|
494
|
+
budgetBytes: number;
|
|
495
|
+
vramBytes: number;
|
|
496
|
+
}): number;
|
|
497
|
+
/**
|
|
498
|
+
* Minimum useful per-turn context for Gezel's standing prompt + tool surface
|
|
499
|
+
* on a host with memory to spare. Read {@link minViableLocalContextTokens}
|
|
500
|
+
* rather than this constant when the answer has to fit the running machine.
|
|
501
|
+
*/
|
|
502
|
+
export declare const MIN_VIABLE_LOCAL_CONTEXT_TOKENS = 65536;
|
|
503
|
+
/** The same minimum on a host that has to trade context for memory. */
|
|
504
|
+
export declare const MIN_VIABLE_CONSTRAINED_CONTEXT_TOKENS = 32768;
|
|
505
|
+
/**
|
|
506
|
+
* The context floor THIS host is held to. A 16 GB Mac or an 8 GB card cannot
|
|
507
|
+
* back a 64K window next to the weights, and the admission ladder's only
|
|
508
|
+
* remaining move there is to deny the launch — so those hosts run at
|
|
509
|
+
* {@link MIN_VIABLE_CONSTRAINED_CONTEXT_TOKENS} instead, and sessions compact
|
|
510
|
+
* sooner rather than the model being unusable.
|
|
511
|
+
*
|
|
512
|
+
* Reads the same host shape the budget does, so the two cannot disagree:
|
|
513
|
+
* a discrete card is judged on its usable VRAM, every other host on system
|
|
514
|
+
* RAM. `GEZEL_MIN_CONTEXT_TOKENS` overrides both, for operators and for tests
|
|
515
|
+
* that need a host-independent floor.
|
|
516
|
+
*/
|
|
517
|
+
export declare function minViableLocalContextTokens(opts?: {
|
|
518
|
+
systemRamBytes?: number;
|
|
519
|
+
budget?: CapacityBudget;
|
|
520
|
+
}): number;
|
|
521
|
+
export interface LocalContextRequirement {
|
|
522
|
+
nativeContextWindow: number;
|
|
523
|
+
minimumPerTurnCtxTokens: number;
|
|
524
|
+
requestedPerTurnCtxTokens: number;
|
|
525
|
+
}
|
|
526
|
+
/**
|
|
527
|
+
* Resolve the model-aware context contract. Long-context models must retain
|
|
528
|
+
* at least the host's floor ({@link minViableLocalContextTokens} — 64K, or 32K
|
|
529
|
+
* on a memory-constrained machine); a model whose native window is genuinely
|
|
530
|
+
* smaller keeps that native limit instead of being asked to do something it
|
|
531
|
+
* cannot support.
|
|
532
|
+
*
|
|
533
|
+
* `minViableContextTokens` exists so callers that already know the host (and
|
|
534
|
+
* every test) pin the floor instead of re-probing the machine underneath them.
|
|
535
|
+
*/
|
|
536
|
+
export declare function resolveLocalContextRequirement(opts: {
|
|
537
|
+
modelContextWindow?: number;
|
|
538
|
+
requestedContextWindow?: number;
|
|
539
|
+
minViableContextTokens?: number;
|
|
540
|
+
}): LocalContextRequirement;
|
|
541
|
+
export interface LlamaCppContextRequirement extends LocalContextRequirement {
|
|
542
|
+
/**
|
|
543
|
+
* True when strict model-max is in force (policy selected, no explicit
|
|
544
|
+
* numeric override): the requested native window is also the admission
|
|
545
|
+
* minimum. This flag is the SINGLE derivation of strictness — admission
|
|
546
|
+
* sites must consume `minimumPerTurnCtxTokens` (which already carries it)
|
|
547
|
+
* rather than re-deriving the predicate from config. Notably, strictness
|
|
548
|
+
* must NOT disable the SWA windowed re-plan: gemma's full-attention KV at
|
|
549
|
+
* its native window never fits any real host, while the windowed cache
|
|
550
|
+
* often holds the full native window cheaply (12b: 4.8 GB at 256K) — an
|
|
551
|
+
* early build gated the re-plan on `!strict` and thereby denied every
|
|
552
|
+
* Gemma model under model-max.
|
|
553
|
+
*/
|
|
554
|
+
strict: boolean;
|
|
555
|
+
/**
|
|
556
|
+
* Adaptive growth target: the per-turn window the launch should try to
|
|
557
|
+
* grow toward AFTER the admission ladder settles slots and grants the
|
|
558
|
+
* un-grown request — never an admission requirement. Emitted only when
|
|
559
|
+
* every disable condition is absent (strict model-max, an explicit
|
|
560
|
+
* numeric override, an authored per-model tuning ceiling at or below the
|
|
561
|
+
* request, an unknown native window) so launch and preview cannot
|
|
562
|
+
* disagree about eligibility. Consumed by {@link planAdaptiveContextGrowth}.
|
|
563
|
+
*/
|
|
564
|
+
growthTargetTokens?: number;
|
|
565
|
+
}
|
|
566
|
+
/**
|
|
567
|
+
* Apply llama.cpp's user-selectable sizing policy on top of the shared local
|
|
568
|
+
* context floor. Explicit numeric overrides keep their historical semantics
|
|
569
|
+
* and win over the selector. In strict model-max mode the requested native
|
|
570
|
+
* window is also the admission minimum, so the planner may reduce slots but
|
|
571
|
+
* cannot silently shorten the context window to make the model fit.
|
|
572
|
+
*/
|
|
573
|
+
export declare function resolveLlamaCppContextRequirement(opts: {
|
|
574
|
+
modelContextWindow?: number;
|
|
575
|
+
explicitContextWindow?: number;
|
|
576
|
+
adaptiveContextWindow?: number;
|
|
577
|
+
contextSizing?: LlamaCppContextSizing;
|
|
578
|
+
minViableContextTokens?: number;
|
|
579
|
+
/**
|
|
580
|
+
* Authored `tuning.engine.llamaCpp.contextSize` when the catalog carries
|
|
581
|
+
* one. Documented as a per-model launch CEILING, so adaptive growth must
|
|
582
|
+
* not exceed it. Pass it only when authored — the 65_536 fallback the
|
|
583
|
+
* caller substitutes for the adaptive request must not cap growth.
|
|
584
|
+
*/
|
|
585
|
+
manifestContextSize?: number;
|
|
586
|
+
/** Test seam; defaults to `GEZEL_LLAMA_GROWTH_CEILING_TOKENS`, else uncapped. */
|
|
587
|
+
growthCeilingTokens?: number;
|
|
588
|
+
}): LlamaCppContextRequirement;
|
|
589
|
+
export interface CtxMemoryClampInput {
|
|
590
|
+
/** The per-turn context the launch wants (`effectiveNumCtx`). */
|
|
591
|
+
requestedPerTurnCtxTokens: number;
|
|
592
|
+
/** `--parallel` slot count; total KV is per-turn ctx × slots. */
|
|
593
|
+
slots: number;
|
|
594
|
+
/**
|
|
595
|
+
* KV bytes per token for ONE slot at the dtype the engine will actually
|
|
596
|
+
* run. Pass the exact GGUF-derived figure when the model header is
|
|
597
|
+
* readable (`estimateKvReserveBytes(...) / ctx`) — the weights-scaled
|
|
598
|
+
* heuristic underestimates models with outsized attention geometry by
|
|
599
|
+
* up to ~10× (a Gemma-12B at f16 KV is ~380 KB/token against the
|
|
600
|
+
* heuristic's 40 KB), and that gap is exactly how a 6.7 GB model became
|
|
601
|
+
* a 25 GB process on a 32 GB machine.
|
|
602
|
+
*/
|
|
603
|
+
kvBytesPerToken: number;
|
|
604
|
+
/** Resident weight footprint (post-multiplier — see estimateResidentBytes). */
|
|
605
|
+
weightsResidentBytes: number;
|
|
606
|
+
/** Admission budget for the resident set (broker or auto-derived). */
|
|
607
|
+
budgetBytes: number;
|
|
608
|
+
/** Reservations other resident models already hold. */
|
|
609
|
+
committedOtherBytes?: number;
|
|
610
|
+
/**
|
|
611
|
+
* Live free physical RAM at launch time. Required for an actual launch —
|
|
612
|
+
* it is the half of the clamp that stops a spawn from paging the desktop.
|
|
613
|
+
*
|
|
614
|
+
* OMIT for a policy-only question ("what window would this model get?"),
|
|
615
|
+
* where live pressure is the wrong input and often a circular one: the
|
|
616
|
+
* models list asks it about every installed model while OUR OWN resident
|
|
617
|
+
* engine is what depressed free RAM, so a running model made every row —
|
|
618
|
+
* itself included — report "won't fit". Omitting evaluates against the
|
|
619
|
+
* capacity budget alone, which already accounts for co-resident models
|
|
620
|
+
* through `committedOtherBytes` and, unlike free RAM, knows that memory
|
|
621
|
+
* is reclaimable by eviction.
|
|
622
|
+
*/
|
|
623
|
+
freeSystemRamBytes?: number;
|
|
624
|
+
/**
|
|
625
|
+
* Usable VRAM on a discrete card; MUST be 0 on unified/shared-pool
|
|
626
|
+
* hosts, where the "VRAM" is the same physical RAM `freeSystemRamBytes`
|
|
627
|
+
* measures and adding it would double-count. `computeCapacityBudget`
|
|
628
|
+
* already reports `vramBytes: 0` for those hosts — pass its value.
|
|
629
|
+
*/
|
|
630
|
+
vramBytes: number;
|
|
631
|
+
minPerTurnCtxTokens?: number;
|
|
632
|
+
/**
|
|
633
|
+
* Held back from `freeSystemRamBytes`. Defaults to
|
|
634
|
+
* {@link liveRamOsReserveBytes} plus the planner's margin — i.e. always at
|
|
635
|
+
* least what device admission will hold back, so a plan this clamp accepts
|
|
636
|
+
* is one admission accepts too. Tests pass it explicitly; production does
|
|
637
|
+
* not, and must not lower it below the admission reserve.
|
|
638
|
+
*/
|
|
639
|
+
osReserveBytes?: number;
|
|
640
|
+
}
|
|
641
|
+
export interface CtxMemoryClampResult {
|
|
642
|
+
perTurnCtxTokens: number;
|
|
643
|
+
clamped: boolean;
|
|
644
|
+
/** Human-readable rationale, set only when clamped. */
|
|
645
|
+
reason: string | null;
|
|
646
|
+
}
|
|
647
|
+
export interface CtxMemoryAdmissionPlanResult extends CtxMemoryClampResult {
|
|
648
|
+
/** Slot count that produced this admission result. */
|
|
649
|
+
slots: number;
|
|
650
|
+
/** The model/policy minimum this plan had to preserve. */
|
|
651
|
+
minimumPerTurnCtxTokens: number;
|
|
652
|
+
/** False means even one slot cannot fit the required working window. */
|
|
653
|
+
minimumSatisfied: boolean;
|
|
654
|
+
}
|
|
655
|
+
/**
|
|
656
|
+
* Clamp the per-turn context window so the engine's projected footprint —
|
|
657
|
+
* resident weights plus total KV plus the compute-headroom reserve — fits
|
|
658
|
+
* BOTH the capacity budget and what the machine can actually give right
|
|
659
|
+
* now (live free RAM + discrete VRAM).
|
|
660
|
+
*
|
|
661
|
+
* This is the missing admission check behind the 2026-08-03 incident: the
|
|
662
|
+
* slot ceiling sizes the slot COUNT and the broker admits WEIGHTS, but
|
|
663
|
+
* nothing asked whether one slot at the requested context fit at all.
|
|
664
|
+
* A 64K-token default on an f16-KV model sailed through both and put a
|
|
665
|
+
* ~19 GB KV cache into system RAM. Clamping context degrades gracefully
|
|
666
|
+
* (sessions compact sooner); paging does not degrade at all — it takes
|
|
667
|
+
* the whole desktop with it.
|
|
668
|
+
*
|
|
669
|
+
* Never returns below the caller's floor. Production launch admission wraps
|
|
670
|
+
* this primitive with {@link planCtxTokensForMemory}, which tests the actual
|
|
671
|
+
* safe value and refuses a launch that cannot retain the model-aware floor.
|
|
672
|
+
* Returns multiples of 1024 for tidy engine arguments.
|
|
673
|
+
*/
|
|
674
|
+
export declare function clampCtxTokensForMemory(input: CtxMemoryClampInput): CtxMemoryClampResult;
|
|
675
|
+
/**
|
|
676
|
+
* Preserve useful context by reducing concurrency before context. If even a
|
|
677
|
+
* single slot cannot fit the required per-turn window, report a denial rather
|
|
678
|
+
* than silently launching a tool-using model with an unusably small window.
|
|
679
|
+
*/
|
|
680
|
+
export declare function planCtxTokensForMemory(input: CtxMemoryClampInput & {
|
|
681
|
+
minimumPerTurnCtxTokens: number;
|
|
682
|
+
}): CtxMemoryAdmissionPlanResult;
|
|
683
|
+
/**
|
|
684
|
+
* The concurrency floor automatic growth may trade down to. Growth may
|
|
685
|
+
* consolidate a 3- or 4-lane launch to two lanes when that buys a longer
|
|
686
|
+
* window, but the second lane is never traded away — a single busy slot
|
|
687
|
+
* turns every other chat on the machine into a queue, and SWA models with
|
|
688
|
+
* one slot re-prefill wholesale on session alternation (the same wall the
|
|
689
|
+
* q8_0 KV trade in {@link planLlamaCppKv} exists to avoid).
|
|
690
|
+
*/
|
|
691
|
+
export declare const ADAPTIVE_GROWTH_MIN_SLOTS = 2;
|
|
692
|
+
/**
|
|
693
|
+
* A lane is only traded when the window it buys is at least this much
|
|
694
|
+
* longer than the no-trade grown window. Pure KV-bound consolidation from
|
|
695
|
+
* 3 → 2 lanes yields 1.5× by construction, so real trades clear this
|
|
696
|
+
* easily; what it filters out is spending a lane to close the last few
|
|
697
|
+
* percent toward a target the untraded launch nearly reaches anyway.
|
|
698
|
+
*/
|
|
699
|
+
export declare const ADAPTIVE_GROWTH_TRADE_MIN_GAIN = 1.25;
|
|
700
|
+
export interface AdaptiveCtxGrowthInput {
|
|
701
|
+
/** The ladder-settled per-turn grant the launch would use without growth. */
|
|
702
|
+
basePerTurnCtxTokens: number;
|
|
703
|
+
/** `LlamaCppContextRequirement.growthTargetTokens` — native ∧ ceilings. */
|
|
704
|
+
targetPerTurnCtxTokens: number;
|
|
705
|
+
/** The ladder-settled slot count growth starts from. */
|
|
706
|
+
slots: number;
|
|
707
|
+
/**
|
|
708
|
+
* The SAME per-slot KV linearization the accepted admission plan used —
|
|
709
|
+
* windowed `bytesPerToken` when the SWA re-plan produced the plan, the
|
|
710
|
+
* full-attention figure otherwise. Feeding a different linearization here
|
|
711
|
+
* would let growth and admission disagree about the same launch.
|
|
712
|
+
*/
|
|
713
|
+
kvBytesPerToken: number;
|
|
714
|
+
/**
|
|
715
|
+
* Fixed per-slot KV block (windowed models' window-capped SWA layers).
|
|
716
|
+
* Kept separate from `weightsResidentBytes` — it scales with the slot
|
|
717
|
+
* count growth itself may change.
|
|
718
|
+
*/
|
|
719
|
+
kvFixedPerSlotBytes?: number;
|
|
720
|
+
/** Resident weights WITHOUT any per-slot KV folded in. */
|
|
721
|
+
weightsResidentBytes: number;
|
|
722
|
+
/** Fast pool the growth is confined to (broker fast budget or `fastBytes`). */
|
|
723
|
+
fastBudgetBytes: number;
|
|
724
|
+
committedOtherBytes?: number;
|
|
725
|
+
budgetKind: CapacityBudget['kind'];
|
|
726
|
+
/** Usable VRAM on a discrete card (`liveBudget.vramBytes`); 0 elsewhere. */
|
|
727
|
+
vramBytes: number;
|
|
728
|
+
/**
|
|
729
|
+
* Graphics memory free right now on a discrete card, as device admission
|
|
730
|
+
* measures it (`measureAvailableGpuBytes`). Growth never plans past it:
|
|
731
|
+
* `vramBytes` is a fraction of the card's TOTAL memory, and admission
|
|
732
|
+
* refuses a grown launch that other applications' VRAM no longer leaves
|
|
733
|
+
* room for. Ignored off discrete cards; omit for a policy-only preview.
|
|
734
|
+
*/
|
|
735
|
+
measuredFreeVramBytes?: number;
|
|
736
|
+
/**
|
|
737
|
+
* Live free RAM — consulted only on shared-pool hosts. Omit for a
|
|
738
|
+
* policy-only preview; see {@link CtxMemoryClampInput.freeSystemRamBytes}.
|
|
739
|
+
*/
|
|
740
|
+
freeSystemRamBytes?: number;
|
|
741
|
+
/** Routed-expert model? Growth on a discrete card is disabled for these. */
|
|
742
|
+
isMoE?: boolean;
|
|
743
|
+
/**
|
|
744
|
+
* May growth trade slots for a longer window (never below
|
|
745
|
+
* {@link ADAPTIVE_GROWTH_MIN_SLOTS})? Callers pass false when an explicit
|
|
746
|
+
* `providerConcurrency` pin exists — a user-chosen lane count is not
|
|
747
|
+
* growth's to spend.
|
|
748
|
+
*/
|
|
749
|
+
allowSlotTrade?: boolean;
|
|
750
|
+
}
|
|
751
|
+
export interface AdaptiveCtxGrowthResult {
|
|
752
|
+
perTurnCtxTokens: number;
|
|
753
|
+
/**
|
|
754
|
+
* The slot count the grown launch should use. Equals the input count
|
|
755
|
+
* unless a slot trade bought a longer window; callers must apply it the
|
|
756
|
+
* same way they apply the admission ladder's slot reduction.
|
|
757
|
+
*/
|
|
758
|
+
slots: number;
|
|
759
|
+
grown: boolean;
|
|
760
|
+
/** Info-level rationale, set only when grown. Not a warning. */
|
|
761
|
+
reason: string | null;
|
|
762
|
+
}
|
|
763
|
+
/**
|
|
764
|
+
* Grow an adaptive launch's per-turn context toward the model's native
|
|
765
|
+
* window using only the fast memory left over AFTER the admission ladder
|
|
766
|
+
* settled slots and granted the un-grown request.
|
|
767
|
+
*
|
|
768
|
+
* Deliberately a second clamp pass rather than a bigger first request:
|
|
769
|
+
* the first ladder pass sizes slot ceilings, the `--swa-full` fit verdict,
|
|
770
|
+
* and RAM-spillover admission, all of which must stay anchored on the
|
|
771
|
+
* practical 64K target — growing the request there would decline
|
|
772
|
+
* `--swa-full` for models whose full cache fits at 64K and grow KV into
|
|
773
|
+
* system-RAM spill on discrete cards.
|
|
774
|
+
*
|
|
775
|
+
* Slot trade: when `allowSlotTrade` is set and the target is out of reach
|
|
776
|
+
* at the settled slot count, growth walks the count down — taking the
|
|
777
|
+
* LARGEST count that reaches the target, else the longest window at
|
|
778
|
+
* {@link ADAPTIVE_GROWTH_MIN_SLOTS}. It never consolidates when the target
|
|
779
|
+
* is already reachable, never goes below two lanes, and never returns a
|
|
780
|
+
* smaller window than the un-traded grant.
|
|
781
|
+
*
|
|
782
|
+
* Confinement: on a discrete GPU the clamp sees only the fast budget and
|
|
783
|
+
* usable VRAM (`freeSystemRamBytes` zeroed) so grown KV never pages through
|
|
784
|
+
* system RAM, and — when the launch supplies `measuredFreeVramBytes` — only
|
|
785
|
+
* the VRAM other applications actually leave free, so a grown launch is one
|
|
786
|
+
* device admission will grant; on unified / system-ram hosts fast memory IS the budget, so
|
|
787
|
+
* the inputs match the base clamp. Inherits `VRAM_USABLE_FRACTION` and
|
|
788
|
+
* {@link LOCAL_ENGINE_COMPUTE_HEADROOM} through the shared clamp.
|
|
789
|
+
*
|
|
790
|
+
* MoE models never grow on a discrete card: `planMoeOffload` places routed
|
|
791
|
+
* experts around the KV reserve, and a grown reserve would silently evict
|
|
792
|
+
* experts from VRAM — trading decode speed for context behind the user's
|
|
793
|
+
* back. (Models whose resident weights exceed the fast pool get a zero
|
|
794
|
+
* allowance and don't grow regardless, which covers CPU-spilled MoE.)
|
|
795
|
+
*/
|
|
796
|
+
export declare function planAdaptiveContextGrowth(input: AdaptiveCtxGrowthInput): AdaptiveCtxGrowthResult;
|
|
797
|
+
/**
|
|
798
|
+
* What a person sees when a model cannot retain its viable context. The
|
|
799
|
+
* arithmetic behind the refusal is ours, not theirs: launch paths log it via
|
|
800
|
+
* {@link formatContextCapacityDenial}.
|
|
801
|
+
*/
|
|
802
|
+
export declare const NOT_ENOUGH_MEMORY_MESSAGE = "There is not enough memory to run this model. Please select another model or close some applications on this device.";
|
|
803
|
+
/**
|
|
804
|
+
* Log-side diagnostic for a context refusal. Never the thrown message — see
|
|
805
|
+
* {@link NOT_ENOUGH_MEMORY_MESSAGE}. The eval harness reads the
|
|
806
|
+
* `with its required <n>-token working window` shape from daemon.log
|
|
807
|
+
* (evals/src/engine-context.ts), so keep that phrase intact.
|
|
808
|
+
*/
|
|
809
|
+
export declare function formatContextCapacityDenial(opts: {
|
|
810
|
+
modelLabel: string;
|
|
811
|
+
plan: CtxMemoryAdmissionPlanResult;
|
|
812
|
+
}): string;
|