@bendyline/gezel-inference 0.0.0-stage → 1.0.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.
Files changed (967) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +13 -2
  3. package/dist/cache/adapter.d.ts +115 -0
  4. package/dist/cache/adapter.js +23 -0
  5. package/dist/cache/budget.d.ts +15 -0
  6. package/dist/cache/budget.js +31 -0
  7. package/dist/cache/controller.d.ts +205 -0
  8. package/dist/cache/controller.js +377 -0
  9. package/dist/catalog/LICENSE +21 -0
  10. package/dist/catalog/chat-models/bt/btl4-35b-q4/manifest.json +146 -0
  11. package/dist/catalog/chat-models/bt/btl4-35b-q4/versions/1.0.0/manifest.json +15 -0
  12. package/dist/catalog/chat-models/bt/btl4-35b-q4/versions/1.0.1/manifest.json +15 -0
  13. package/dist/catalog/chat-models/bt/btl4-compact-iq2/manifest.json +146 -0
  14. package/dist/catalog/chat-models/bt/btl4-compact-iq2/versions/1.0.0/manifest.json +15 -0
  15. package/dist/catalog/chat-models/bt/btl4-compact-iq2/versions/1.0.1/manifest.json +15 -0
  16. package/dist/catalog/chat-models/bt/btl4-compact-iq2/versions/1.0.2/manifest.json +15 -0
  17. package/dist/catalog/chat-models/de/deepseek-r1-8b-q4/manifest.json +166 -0
  18. package/dist/catalog/chat-models/de/deepseek-r1-8b-q4/versions/1.1.0/manifest.json +62 -0
  19. package/dist/catalog/chat-models/de/deepseek-r1-8b-q4/versions/1.1.1/manifest.json +61 -0
  20. package/dist/catalog/chat-models/de/deepseek-v4-flash-284b-mxfp4/manifest.json +125 -0
  21. package/dist/catalog/chat-models/de/deepseek-v4-flash-284b-mxfp4/versions/1.0.0/manifest.json +27 -0
  22. package/dist/catalog/chat-models/de/deepseek-v4-flash-284b-q2/manifest.json +125 -0
  23. package/dist/catalog/chat-models/de/deepseek-v4-flash-284b-q2/versions/1.0.0/manifest.json +27 -0
  24. package/dist/catalog/chat-models/de/deepseek-v4-flash-284b-q2/versions/1.1.0/manifest.json +27 -0
  25. package/dist/catalog/chat-models/de/deepseek-v4-flash-284b-q2q4/manifest.json +126 -0
  26. package/dist/catalog/chat-models/de/deepseek-v4-flash-284b-q2q4/versions/1.0.0/manifest.json +27 -0
  27. package/dist/catalog/chat-models/de/deepseek-v4-flash-284b-q4/manifest.json +318 -0
  28. package/dist/catalog/chat-models/de/deepseek-v4-flash-284b-q4/versions/1.0.0/manifest.json +225 -0
  29. package/dist/catalog/chat-models/de/deepseek-v4-flash-284b-q4/versions/1.1.0/manifest.json +225 -0
  30. package/dist/catalog/chat-models/ge/gemma4-12b-q4/manifest.json +249 -0
  31. package/dist/catalog/chat-models/ge/gemma4-12b-q4/versions/1.0.0/manifest.json +70 -0
  32. package/dist/catalog/chat-models/ge/gemma4-12b-q4/versions/1.1.0/manifest.json +72 -0
  33. package/dist/catalog/chat-models/ge/gemma4-12b-q4/versions/1.1.2/manifest.json +78 -0
  34. package/dist/catalog/chat-models/ge/gemma4-12b-q4/versions/1.1.3/manifest.json +78 -0
  35. package/dist/catalog/chat-models/ge/gemma4-12b-q4/versions/1.2.0/manifest.json +98 -0
  36. package/dist/catalog/chat-models/ge/gemma4-12b-q8/manifest.json +228 -0
  37. package/dist/catalog/chat-models/ge/gemma4-12b-q8/versions/1.0.0/manifest.json +72 -0
  38. package/dist/catalog/chat-models/ge/gemma4-12b-q8/versions/1.0.2/manifest.json +78 -0
  39. package/dist/catalog/chat-models/ge/gemma4-12b-q8/versions/1.0.3/manifest.json +78 -0
  40. package/dist/catalog/chat-models/ge/gemma4-12b-q8/versions/1.1.0/manifest.json +78 -0
  41. package/dist/catalog/chat-models/ge/gemma4-26b-q4/manifest.json +220 -0
  42. package/dist/catalog/chat-models/ge/gemma4-26b-q4/versions/1.1.0/manifest.json +75 -0
  43. package/dist/catalog/chat-models/ge/gemma4-26b-q4/versions/1.2.0/manifest.json +75 -0
  44. package/dist/catalog/chat-models/ge/gemma4-26b-q4/versions/1.2.1/manifest.json +80 -0
  45. package/dist/catalog/chat-models/ge/gemma4-26b-q4/versions/1.2.2/manifest.json +80 -0
  46. package/dist/catalog/chat-models/ge/gemma4-26b-q4/versions/1.3.0/manifest.json +81 -0
  47. package/dist/catalog/chat-models/ge/gemma4-31b-q4/manifest.json +226 -0
  48. package/dist/catalog/chat-models/ge/gemma4-31b-q4/versions/1.1.0/manifest.json +80 -0
  49. package/dist/catalog/chat-models/ge/gemma4-31b-q4/versions/1.1.1/manifest.json +82 -0
  50. package/dist/catalog/chat-models/ge/gemma4-31b-q4/versions/1.2.0/manifest.json +82 -0
  51. package/dist/catalog/chat-models/ge/gemma4-31b-q4/versions/1.2.1/manifest.json +95 -0
  52. package/dist/catalog/chat-models/ge/gemma4-31b-q4/versions/1.2.2/manifest.json +95 -0
  53. package/dist/catalog/chat-models/ge/gemma4-31b-q4/versions/1.3.0/manifest.json +86 -0
  54. package/dist/catalog/chat-models/ge/gemma4-e2b-q4/manifest.json +213 -0
  55. package/dist/catalog/chat-models/ge/gemma4-e2b-q4/versions/1.1.0/manifest.json +67 -0
  56. package/dist/catalog/chat-models/ge/gemma4-e2b-q4/versions/1.1.2/manifest.json +75 -0
  57. package/dist/catalog/chat-models/ge/gemma4-e2b-q4/versions/1.2.0/manifest.json +71 -0
  58. package/dist/catalog/chat-models/ge/gemma4-e2b-q4/versions/1.2.1/manifest.json +71 -0
  59. package/dist/catalog/chat-models/ge/gemma4-e2b-q4/versions/1.3.0/manifest.json +71 -0
  60. package/dist/catalog/chat-models/ge/gemma4-e4b-q4/manifest.json +205 -0
  61. package/dist/catalog/chat-models/ge/gemma4-e4b-q4/versions/1.1.0/manifest.json +72 -0
  62. package/dist/catalog/chat-models/ge/gemma4-e4b-q4/versions/1.1.2/manifest.json +75 -0
  63. package/dist/catalog/chat-models/ge/gemma4-e4b-q4/versions/1.2.0/manifest.json +76 -0
  64. package/dist/catalog/chat-models/ge/gemma4-e4b-q4/versions/1.2.1/manifest.json +76 -0
  65. package/dist/catalog/chat-models/ge/gemma4-e4b-q4/versions/1.3.0/manifest.json +76 -0
  66. package/dist/catalog/chat-models/gl/glm-5.2-754b-q2/manifest.json +127 -0
  67. package/dist/catalog/chat-models/gl/glm-5.2-754b-q2/versions/1.0.0/manifest.json +20 -0
  68. package/dist/catalog/chat-models/gl/glm-5.3-flash-320b-q2/manifest.json +140 -0
  69. package/dist/catalog/chat-models/gl/glm-5.3-flash-320b-q2/versions/1.0.0/manifest.json +23 -0
  70. package/dist/catalog/chat-models/gl/glm-5.3-flash-320b-q2/versions/1.0.1/manifest.json +26 -0
  71. package/dist/catalog/chat-models/gp/gpt-oss-120b-q4/manifest.json +247 -0
  72. package/dist/catalog/chat-models/gp/gpt-oss-120b-q4/versions/1.0.0/manifest.json +137 -0
  73. package/dist/catalog/chat-models/gp/gpt-oss-120b-q4/versions/1.1.0/manifest.json +135 -0
  74. package/dist/catalog/chat-models/gp/gpt-oss-20b-q4/manifest.json +195 -0
  75. package/dist/catalog/chat-models/gp/gpt-oss-20b-q4/versions/1.1.0/manifest.json +72 -0
  76. package/dist/catalog/chat-models/gp/gpt-oss-20b-q4/versions/1.1.1/manifest.json +71 -0
  77. package/dist/catalog/chat-models/gr/granite4.2-30b-q4/manifest.json +200 -0
  78. package/dist/catalog/chat-models/gr/granite4.2-30b-q4/versions/1.0.0/manifest.json +72 -0
  79. package/dist/catalog/chat-models/gr/granite4.2-3b-q4/manifest.json +196 -0
  80. package/dist/catalog/chat-models/gr/granite4.2-3b-q4/versions/1.0.0/manifest.json +57 -0
  81. package/dist/catalog/chat-models/gr/granite4.2-8b-q4/manifest.json +189 -0
  82. package/dist/catalog/chat-models/gr/granite4.2-8b-q4/versions/1.0.0/manifest.json +57 -0
  83. package/dist/catalog/chat-models/index.json +1 -0
  84. package/dist/catalog/chat-models/la/laguna-s-2.1-118b-q4/manifest.json +235 -0
  85. package/dist/catalog/chat-models/la/laguna-s-2.1-118b-q4/versions/1.0.0/manifest.json +124 -0
  86. package/dist/catalog/chat-models/la/laguna-s-2.1-118b-q4/versions/1.0.1/manifest.json +124 -0
  87. package/dist/catalog/chat-models/la/laguna-s-2.1-118b-q4/versions/1.0.2/manifest.json +123 -0
  88. package/dist/catalog/chat-models/la/laguna-s-2.1-118b-q6/manifest.json +257 -0
  89. package/dist/catalog/chat-models/la/laguna-s-2.1-118b-q6/versions/1.0.0/manifest.json +145 -0
  90. package/dist/catalog/chat-models/la/laguna-s-2.1-118b-q6/versions/1.0.1/manifest.json +145 -0
  91. package/dist/catalog/chat-models/la/laguna-s-2.1-118b-q8/manifest.json +285 -0
  92. package/dist/catalog/chat-models/la/laguna-s-2.1-118b-q8/versions/1.0.0/manifest.json +174 -0
  93. package/dist/catalog/chat-models/la/laguna-s-2.1-118b-q8/versions/1.0.1/manifest.json +174 -0
  94. package/dist/catalog/chat-models/la/laguna-s-2.1-118b-q8/versions/1.0.2/manifest.json +173 -0
  95. package/dist/catalog/chat-models/lf/lfm2.5-2.6b-q4/manifest.json +162 -0
  96. package/dist/catalog/chat-models/lf/lfm2.5-2.6b-q4/versions/1.0.0/manifest.json +59 -0
  97. package/dist/catalog/chat-models/lf/lfm2.5-2.6b-q4/versions/1.0.1/manifest.json +58 -0
  98. package/dist/catalog/chat-models/ll/llama3.2-3b-q4/manifest.json +134 -0
  99. package/dist/catalog/chat-models/ll/llama3.2-3b-q4/versions/1.1.0/manifest.json +57 -0
  100. package/dist/catalog/chat-models/ll/llama3.2-3b-q4/versions/1.1.1/manifest.json +56 -0
  101. package/dist/catalog/chat-models/mi/minicpm5-1b-q4/manifest.json +156 -0
  102. package/dist/catalog/chat-models/mi/minicpm5-1b-q4/versions/1.0.0/manifest.json +57 -0
  103. package/dist/catalog/chat-models/mi/minicpm5-2b-q4/manifest.json +161 -0
  104. package/dist/catalog/chat-models/mi/minicpm5-2b-q4/versions/1.0.0/manifest.json +57 -0
  105. package/dist/catalog/chat-models/mi/mistral-7b-q4/manifest.json +159 -0
  106. package/dist/catalog/chat-models/mi/mistral-7b-q4/versions/1.1.0/manifest.json +62 -0
  107. package/dist/catalog/chat-models/mi/mistral-7b-q4/versions/1.1.1/manifest.json +61 -0
  108. package/dist/catalog/chat-models/mi/mistral-medium-3.5-128b-q4/manifest.json +275 -0
  109. package/dist/catalog/chat-models/mi/mistral-medium-3.5-128b-q4/versions/1.0.0/manifest.json +154 -0
  110. package/dist/catalog/chat-models/mi/mistral-medium-3.5-128b-q4/versions/1.0.1/manifest.json +153 -0
  111. package/dist/catalog/chat-models/mu/muse-glimmer-30b-q4/manifest.json +135 -0
  112. package/dist/catalog/chat-models/mu/muse-glimmer-30b-q4/versions/1.0.0/manifest.json +20 -0
  113. package/dist/catalog/chat-models/mu/muse-glimmer-30b-q4/versions/1.0.1/manifest.json +20 -0
  114. package/dist/catalog/chat-models/mu/muse-glimmer-30b-q4/versions/1.0.2/manifest.json +20 -0
  115. package/dist/catalog/chat-models/na/nanbeige4.2-3b-q4/manifest.json +138 -0
  116. package/dist/catalog/chat-models/na/nanbeige4.2-3b-q4/versions/1.0.0/manifest.json +14 -0
  117. package/dist/catalog/chat-models/ne/nemotron3-nano-30b-q4/manifest.json +212 -0
  118. package/dist/catalog/chat-models/ne/nemotron3-nano-30b-q4/versions/1.0.0/manifest.json +94 -0
  119. package/dist/catalog/chat-models/ne/nemotron3-nano-30b-q4/versions/1.0.1/manifest.json +94 -0
  120. package/dist/catalog/chat-models/ne/nemotron3-nano-30b-q4/versions/1.0.2/manifest.json +93 -0
  121. package/dist/catalog/chat-models/ne/nemotron3-super-120b-q4/manifest.json +135 -0
  122. package/dist/catalog/chat-models/ne/nemotron3-super-120b-q4/versions/1.0.0/manifest.json +30 -0
  123. package/dist/catalog/chat-models/ne/nemotron3-super-120b-q4/versions/1.0.1/manifest.json +30 -0
  124. package/dist/catalog/chat-models/ne/nemotron3.5-lightning-30b-q4/manifest.json +192 -0
  125. package/dist/catalog/chat-models/ne/nemotron3.5-lightning-30b-q4/versions/1.0.0/manifest.json +74 -0
  126. package/dist/catalog/chat-models/ne/nemotron3.5-lightning-30b-q4/versions/1.0.1/manifest.json +73 -0
  127. package/dist/catalog/chat-models/ne/nemotron3.5-lightning-30b-q8/manifest.json +207 -0
  128. package/dist/catalog/chat-models/ne/nemotron3.5-lightning-30b-q8/versions/1.0.0/manifest.json +89 -0
  129. package/dist/catalog/chat-models/ne/nemotron3.5-lightning-30b-q8/versions/1.0.1/manifest.json +88 -0
  130. package/dist/catalog/chat-models/or/ornith-35b-q4/manifest.json +224 -0
  131. package/dist/catalog/chat-models/or/ornith-35b-q4/versions/1.0.0/manifest.json +94 -0
  132. package/dist/catalog/chat-models/or/ornith-35b-q4/versions/1.0.1/manifest.json +93 -0
  133. package/dist/catalog/chat-models/or/ornith-35b-q8/manifest.json +244 -0
  134. package/dist/catalog/chat-models/or/ornith-35b-q8/versions/1.0.0/manifest.json +114 -0
  135. package/dist/catalog/chat-models/or/ornith-35b-q8/versions/1.0.1/manifest.json +113 -0
  136. package/dist/catalog/chat-models/or/ornith-9b-q4/manifest.json +215 -0
  137. package/dist/catalog/chat-models/or/ornith-9b-q4/versions/1.0.0/manifest.json +84 -0
  138. package/dist/catalog/chat-models/or/ornith-9b-q4/versions/1.0.1/manifest.json +83 -0
  139. package/dist/catalog/chat-models/or/ornith1.5-35b-a3b-q4/manifest.json +208 -0
  140. package/dist/catalog/chat-models/or/ornith1.5-35b-a3b-q4/versions/1.0.0/manifest.json +74 -0
  141. package/dist/catalog/chat-models/or/ornith1.5-35b-a3b-q8/manifest.json +223 -0
  142. package/dist/catalog/chat-models/or/ornith1.5-35b-a3b-q8/versions/1.0.0/manifest.json +89 -0
  143. package/dist/catalog/chat-models/or/ornith1.5-9b-q4/manifest.json +187 -0
  144. package/dist/catalog/chat-models/or/ornith1.5-9b-q4/versions/1.0.0/manifest.json +53 -0
  145. package/dist/catalog/chat-models/or/ornith1.5-9b-q4/versions/1.0.1/manifest.json +77 -0
  146. package/dist/catalog/chat-models/or/ornith1.5-9b-q8/manifest.json +192 -0
  147. package/dist/catalog/chat-models/or/ornith1.5-9b-q8/versions/1.0.0/manifest.json +58 -0
  148. package/dist/catalog/chat-models/or/ornith1.5-9b-q8/versions/1.0.1/manifest.json +82 -0
  149. package/dist/catalog/chat-models/qw/qwen3.5-0.8b-q4/manifest.json +192 -0
  150. package/dist/catalog/chat-models/qw/qwen3.5-0.8b-q4/versions/1.0.0/manifest.json +75 -0
  151. package/dist/catalog/chat-models/qw/qwen3.5-122b-a10b-q4/manifest.json +315 -0
  152. package/dist/catalog/chat-models/qw/qwen3.5-122b-a10b-q4/versions/1.0.0/manifest.json +164 -0
  153. package/dist/catalog/chat-models/qw/qwen3.5-122b-a10b-q4/versions/1.0.1/manifest.json +164 -0
  154. package/dist/catalog/chat-models/qw/qwen3.5-122b-a10b-q4/versions/1.0.2/manifest.json +164 -0
  155. package/dist/catalog/chat-models/qw/qwen3.5-122b-a10b-q4/versions/1.0.3/manifest.json +163 -0
  156. package/dist/catalog/chat-models/qw/qwen3.5-27b-q4/manifest.json +217 -0
  157. package/dist/catalog/chat-models/qw/qwen3.5-27b-q4/versions/1.0.0/manifest.json +90 -0
  158. package/dist/catalog/chat-models/qw/qwen3.5-2b-q4/manifest.json +194 -0
  159. package/dist/catalog/chat-models/qw/qwen3.5-2b-q4/versions/1.1.0/manifest.json +77 -0
  160. package/dist/catalog/chat-models/qw/qwen3.5-2b-q4/versions/1.1.2/manifest.json +76 -0
  161. package/dist/catalog/chat-models/qw/qwen3.5-2b-q4/versions/1.1.3/manifest.json +76 -0
  162. package/dist/catalog/chat-models/qw/qwen3.5-4b-q4/manifest.json +188 -0
  163. package/dist/catalog/chat-models/qw/qwen3.5-4b-q4/versions/1.1.0/manifest.json +77 -0
  164. package/dist/catalog/chat-models/qw/qwen3.5-4b-q4/versions/1.1.2/manifest.json +76 -0
  165. package/dist/catalog/chat-models/qw/qwen3.5-4b-q4/versions/1.1.3/manifest.json +76 -0
  166. package/dist/catalog/chat-models/qw/qwen3.5-9b-q4/manifest.json +205 -0
  167. package/dist/catalog/chat-models/qw/qwen3.5-9b-q4/versions/1.1.0/manifest.json +82 -0
  168. package/dist/catalog/chat-models/qw/qwen3.5-9b-q4/versions/1.1.2/manifest.json +81 -0
  169. package/dist/catalog/chat-models/qw/qwen3.5-9b-q4/versions/1.1.3/manifest.json +81 -0
  170. package/dist/catalog/chat-models/qw/qwen3.6-27b-q4/manifest.json +230 -0
  171. package/dist/catalog/chat-models/qw/qwen3.6-27b-q4/versions/1.1.0/manifest.json +92 -0
  172. package/dist/catalog/chat-models/qw/qwen3.6-27b-q4/versions/1.1.4/manifest.json +91 -0
  173. package/dist/catalog/chat-models/qw/qwen3.6-27b-q4/versions/1.1.5/manifest.json +91 -0
  174. package/dist/catalog/chat-models/qw/qwen3.6-27b-q4/versions/1.1.6/manifest.json +115 -0
  175. package/dist/catalog/chat-models/qw/qwen3.6-27b-q8/manifest.json +240 -0
  176. package/dist/catalog/chat-models/qw/qwen3.6-27b-q8/versions/1.0.0/manifest.json +102 -0
  177. package/dist/catalog/chat-models/qw/qwen3.6-27b-q8/versions/1.0.2/manifest.json +103 -0
  178. package/dist/catalog/chat-models/qw/qwen3.6-27b-q8/versions/1.0.3/manifest.json +103 -0
  179. package/dist/catalog/chat-models/qw/qwen3.6-27b-q8/versions/1.0.4/manifest.json +127 -0
  180. package/dist/catalog/chat-models/qw/qwen3.6-35b-a3b-q4/manifest.json +233 -0
  181. package/dist/catalog/chat-models/qw/qwen3.6-35b-a3b-q4/versions/1.0.0/manifest.json +92 -0
  182. package/dist/catalog/chat-models/qw/qwen3.6-35b-a3b-q4/versions/1.0.1/manifest.json +93 -0
  183. package/dist/catalog/chat-models/qw/qwen3.6-35b-a3b-q4/versions/1.0.2/manifest.json +93 -0
  184. package/dist/catalog/chat-models/qw/qwen3.6-35b-a3b-q4/versions/1.0.3/manifest.json +117 -0
  185. package/dist/catalog/chat-models/qw/qwen3.6-35b-a3b-q8/manifest.json +252 -0
  186. package/dist/catalog/chat-models/qw/qwen3.6-35b-a3b-q8/versions/1.0.0/manifest.json +112 -0
  187. package/dist/catalog/chat-models/qw/qwen3.6-35b-a3b-q8/versions/1.0.1/manifest.json +113 -0
  188. package/dist/catalog/chat-models/qw/qwen3.6-35b-a3b-q8/versions/1.0.2/manifest.json +113 -0
  189. package/dist/catalog/chat-models/qw/qwen3.6-35b-a3b-q8/versions/1.0.3/manifest.json +137 -0
  190. package/dist/catalog/chat-models/qw/qwen3.8-27b-iq1-s/manifest.json +195 -0
  191. package/dist/catalog/chat-models/qw/qwen3.8-27b-iq1-s/versions/1.0.0/manifest.json +19 -0
  192. package/dist/catalog/chat-models/qw/qwen3.8-27b-q2/manifest.json +194 -0
  193. package/dist/catalog/chat-models/qw/qwen3.8-27b-q2/versions/1.0.0/manifest.json +19 -0
  194. package/dist/catalog/chat-models/qw/qwen3.8-27b-q3/manifest.json +194 -0
  195. package/dist/catalog/chat-models/qw/qwen3.8-27b-q3/versions/1.0.0/manifest.json +19 -0
  196. package/dist/catalog/chat-models/qw/qwen3.8-27b-q3/versions/1.0.1/manifest.json +19 -0
  197. package/dist/catalog/chat-models/qw/qwen3.8-27b-q4/manifest.json +291 -0
  198. package/dist/catalog/chat-models/qw/qwen3.8-27b-q4/versions/1.0.0/manifest.json +20 -0
  199. package/dist/catalog/chat-models/qw/qwen3.8-27b-q4/versions/1.0.1/manifest.json +93 -0
  200. package/dist/catalog/chat-models/qw/qwen3.8-27b-q4/versions/1.0.2/manifest.json +92 -0
  201. package/dist/catalog/chat-models/qw/qwen3.8-27b-q4/versions/1.0.3/manifest.json +116 -0
  202. package/dist/catalog/chat-models/qw/qwen3.8-27b-q4/versions/1.0.4/manifest.json +116 -0
  203. package/dist/catalog/chat-models/qw/qwen3.8-27b-q4/versions/1.0.5/manifest.json +116 -0
  204. package/dist/catalog/chat-models/qw/qwen3.8-27b-q6/manifest.json +278 -0
  205. package/dist/catalog/chat-models/qw/qwen3.8-27b-q6/versions/1.0.0/manifest.json +20 -0
  206. package/dist/catalog/chat-models/qw/qwen3.8-27b-q6/versions/1.0.1/manifest.json +104 -0
  207. package/dist/catalog/chat-models/qw/qwen3.8-27b-q6/versions/1.0.2/manifest.json +103 -0
  208. package/dist/catalog/chat-models/qw/qwen3.8-27b-q6/versions/1.0.3/manifest.json +127 -0
  209. package/dist/catalog/chat-models/qw/qwen3.8-27b-q8/manifest.json +278 -0
  210. package/dist/catalog/chat-models/qw/qwen3.8-27b-q8/versions/1.0.0/manifest.json +113 -0
  211. package/dist/catalog/chat-models/qw/qwen3.8-27b-q8/versions/1.0.1/manifest.json +113 -0
  212. package/dist/catalog/chat-models/qw/qwen3.8-27b-q8/versions/1.0.2/manifest.json +137 -0
  213. package/dist/catalog/chat-models/qw/qwen3.8-flash-next-iq3/manifest.json +221 -0
  214. package/dist/catalog/chat-models/qw/qwen3.8-flash-next-iq3/versions/1.0.0/manifest.json +36 -0
  215. package/dist/catalog/chat-models/qw/qwen3.8-flash-next-iq4/manifest.json +429 -0
  216. package/dist/catalog/chat-models/qw/qwen3.8-flash-next-iq4/versions/1.0.0/manifest.json +36 -0
  217. package/dist/catalog/chat-models/qw/qwen3.8-flash-next-iq4/versions/1.1.0/manifest.json +205 -0
  218. package/dist/catalog/chat-models/qw/qwen3.8-flash-next-iq4/versions/1.1.1/manifest.json +244 -0
  219. package/dist/catalog/chat-models/qw/qwen3.8-flash-next-q2/manifest.json +203 -0
  220. package/dist/catalog/chat-models/qw/qwen3.8-flash-next-q2/versions/1.0.0/manifest.json +21 -0
  221. package/dist/catalog/chat-models/qw/qwen3.8-flash-next-q2/versions/1.0.1/manifest.json +31 -0
  222. package/dist/catalog/chat-models/qw/qwen3.8-flash-next-q2/versions/1.0.2/manifest.json +30 -0
  223. package/dist/catalog/chat-models/raw-index.json +1 -0
  224. package/dist/catalog/chat-models/ta/talkie-1930-13b-q4/manifest.json +79 -0
  225. package/dist/catalog/chat-models/ta/talkie-1930-13b-q4/versions/1.0.0/manifest.json +15 -0
  226. package/dist/catalog/chat-models/ta/talkie-1930-13b-q4/versions/1.0.1/manifest.json +15 -0
  227. package/dist/catalog/chat-models/te/ternary-bonsai-27b-q2/manifest.json +204 -0
  228. package/dist/catalog/chat-models/te/ternary-bonsai-27b-q2/versions/1.0.0/manifest.json +70 -0
  229. package/dist/catalog/chat-models/te/ternary-bonsai-27b-q2/versions/1.0.1/manifest.json +70 -0
  230. package/dist/catalog/chat-models/un/underdog-saluki-27b-iq2-mix/manifest.json +164 -0
  231. package/dist/catalog/chat-models/un/underdog-saluki-27b-iq2-mix/versions/1.0.0/manifest.json +14 -0
  232. package/dist/catalog/knowledge-catalogs/be/bendyline-how-to-books/manifest.json +26 -0
  233. package/dist/catalog/knowledge-catalogs/be/bendyline-how-to-books/versions/2026.10.8/manifest.json +8950 -0
  234. package/dist/catalog/knowledge-catalogs/ca/caselaw-alaska-part-0001/manifest.json +24 -0
  235. package/dist/catalog/knowledge-catalogs/ca/caselaw-alaska-part-0001/versions/2026.10.1/manifest.json +658 -0
  236. package/dist/catalog/knowledge-catalogs/ca/caselaw-nevada-part-0001/manifest.json +24 -0
  237. package/dist/catalog/knowledge-catalogs/ca/caselaw-nevada-part-0001/versions/2026.10.1/manifest.json +666 -0
  238. package/dist/catalog/knowledge-catalogs/ca/caselaw-us-300-399-part-0001/manifest.json +24 -0
  239. package/dist/catalog/knowledge-catalogs/ca/caselaw-us-300-399-part-0001/versions/2026.10.2/manifest.json +182 -0
  240. package/dist/catalog/knowledge-catalogs/ca/caselaw-us-347-349/manifest.json +25 -0
  241. package/dist/catalog/knowledge-catalogs/ca/caselaw-us-347-349/versions/2026.10.5/manifest.json +38 -0
  242. package/dist/catalog/knowledge-catalogs/ca/caselaw-utah-part-0001/manifest.json +24 -0
  243. package/dist/catalog/knowledge-catalogs/ca/caselaw-utah-part-0001/versions/2026.10.1/manifest.json +558 -0
  244. package/dist/catalog/knowledge-catalogs/ca/caselaw-utah-part-0002/manifest.json +24 -0
  245. package/dist/catalog/knowledge-catalogs/ca/caselaw-utah-part-0002/versions/2026.10.1/manifest.json +258 -0
  246. package/dist/catalog/knowledge-catalogs/ca/caselaw-washington-part-0001/manifest.json +24 -0
  247. package/dist/catalog/knowledge-catalogs/ca/caselaw-washington-part-0001/versions/2026.10.1/manifest.json +318 -0
  248. package/dist/catalog/knowledge-catalogs/ca/caselaw-washington-part-0002/manifest.json +24 -0
  249. package/dist/catalog/knowledge-catalogs/ca/caselaw-washington-part-0002/versions/2026.10.1/manifest.json +266 -0
  250. package/dist/catalog/knowledge-catalogs/ca/caselaw-washington-part-0003/manifest.json +24 -0
  251. package/dist/catalog/knowledge-catalogs/ca/caselaw-washington-part-0003/versions/2026.10.1/manifest.json +186 -0
  252. package/dist/catalog/knowledge-catalogs/ca/caselaw-washington-part-0004/manifest.json +24 -0
  253. package/dist/catalog/knowledge-catalogs/ca/caselaw-washington-part-0004/versions/2026.10.1/manifest.json +138 -0
  254. package/dist/catalog/knowledge-catalogs/ca/caselaw-washington-part-0005/manifest.json +24 -0
  255. package/dist/catalog/knowledge-catalogs/ca/caselaw-washington-part-0005/versions/2026.10.1/manifest.json +138 -0
  256. package/dist/catalog/knowledge-catalogs/ca/caselaw-wyoming-part-0001/manifest.json +24 -0
  257. package/dist/catalog/knowledge-catalogs/ca/caselaw-wyoming-part-0001/versions/2026.10.3/manifest.json +626 -0
  258. package/dist/catalog/knowledge-catalogs/index.json +1 -0
  259. package/dist/catalog/knowledge-catalogs/mi/microsoftdocs-aspnet-core-en/manifest.json +22 -0
  260. package/dist/catalog/knowledge-catalogs/mi/microsoftdocs-aspnet-core-en/versions/2026.10.16/manifest.json +18270 -0
  261. package/dist/catalog/knowledge-catalogs/mi/microsoftdocs-azure-ai-platform-en/manifest.json +23 -0
  262. package/dist/catalog/knowledge-catalogs/mi/microsoftdocs-azure-ai-platform-en/versions/2026.10.16/manifest.json +1098 -0
  263. package/dist/catalog/knowledge-catalogs/mi/microsoftdocs-azure-apps-compute-en/manifest.json +23 -0
  264. package/dist/catalog/knowledge-catalogs/mi/microsoftdocs-azure-apps-compute-en/versions/2026.10.16/manifest.json +722 -0
  265. package/dist/catalog/knowledge-catalogs/mi/microsoftdocs-azure-data-aiot-en/manifest.json +23 -0
  266. package/dist/catalog/knowledge-catalogs/mi/microsoftdocs-azure-data-aiot-en/versions/2026.10.16/manifest.json +530 -0
  267. package/dist/catalog/knowledge-catalogs/mi/microsoftdocs-azure-management-hybrid-en/manifest.json +23 -0
  268. package/dist/catalog/knowledge-catalogs/mi/microsoftdocs-azure-management-hybrid-en/versions/2026.10.16/manifest.json +602 -0
  269. package/dist/catalog/knowledge-catalogs/mi/microsoftdocs-azure-network-security-en/manifest.json +23 -0
  270. package/dist/catalog/knowledge-catalogs/mi/microsoftdocs-azure-network-security-en/versions/2026.10.16/manifest.json +250 -0
  271. package/dist/catalog/knowledge-catalogs/mi/microsoftdocs-dotnet-en/manifest.json +22 -0
  272. package/dist/catalog/knowledge-catalogs/mi/microsoftdocs-dotnet-en/versions/2026.10.16/manifest.json +16794 -0
  273. package/dist/catalog/knowledge-catalogs/mi/microsoftdocs-entity-framework-en/manifest.json +22 -0
  274. package/dist/catalog/knowledge-catalogs/mi/microsoftdocs-entity-framework-en/versions/2026.10.16/manifest.json +1106 -0
  275. package/dist/catalog/knowledge-catalogs/mi/microsoftdocs-microsoft-365-en/manifest.json +22 -0
  276. package/dist/catalog/knowledge-catalogs/mi/microsoftdocs-microsoft-365-en/versions/2026.10.16/manifest.json +234 -0
  277. package/dist/catalog/knowledge-catalogs/mi/microsoftdocs-powershell-en/manifest.json +22 -0
  278. package/dist/catalog/knowledge-catalogs/mi/microsoftdocs-powershell-en/versions/2026.10.16/manifest.json +522 -0
  279. package/dist/catalog/knowledge-catalogs/mi/microsoftdocs-sql-server-en/manifest.json +22 -0
  280. package/dist/catalog/knowledge-catalogs/mi/microsoftdocs-sql-server-en/versions/2026.10.16/manifest.json +1850 -0
  281. package/dist/catalog/knowledge-catalogs/mi/microsoftdocs-windows-apps-en/manifest.json +22 -0
  282. package/dist/catalog/knowledge-catalogs/mi/microsoftdocs-windows-apps-en/versions/2026.10.16/manifest.json +1734 -0
  283. package/dist/catalog/knowledge-catalogs/mi/microsoftdocs-windows-server-en/manifest.json +22 -0
  284. package/dist/catalog/knowledge-catalogs/mi/microsoftdocs-windows-server-en/versions/2026.10.16/manifest.json +774 -0
  285. package/dist/catalog/knowledge-catalogs/raw-index.json +1 -0
  286. package/dist/catalog/knowledge-catalogs/re/regional-american-south/art.json +12 -0
  287. package/dist/catalog/knowledge-catalogs/re/regional-american-south/logo.webp +0 -0
  288. package/dist/catalog/knowledge-catalogs/re/regional-american-south/manifest.json +48 -0
  289. package/dist/catalog/knowledge-catalogs/re/regional-american-south/versions/2026.10.3/manifest.json +133 -0
  290. package/dist/catalog/knowledge-catalogs/re/regional-andes-amazon/art.json +12 -0
  291. package/dist/catalog/knowledge-catalogs/re/regional-andes-amazon/logo.webp +0 -0
  292. package/dist/catalog/knowledge-catalogs/re/regional-andes-amazon/manifest.json +48 -0
  293. package/dist/catalog/knowledge-catalogs/re/regional-andes-amazon/versions/2026.10.3/manifest.json +133 -0
  294. package/dist/catalog/knowledge-catalogs/re/regional-australia-nz/art.json +12 -0
  295. package/dist/catalog/knowledge-catalogs/re/regional-australia-nz/logo.webp +0 -0
  296. package/dist/catalog/knowledge-catalogs/re/regional-australia-nz/manifest.json +48 -0
  297. package/dist/catalog/knowledge-catalogs/re/regional-australia-nz/versions/2026.10.3/manifest.json +133 -0
  298. package/dist/catalog/knowledge-catalogs/re/regional-brazil/art.json +12 -0
  299. package/dist/catalog/knowledge-catalogs/re/regional-brazil/logo.webp +0 -0
  300. package/dist/catalog/knowledge-catalogs/re/regional-brazil/manifest.json +48 -0
  301. package/dist/catalog/knowledge-catalogs/re/regional-brazil/versions/2026.10.3/manifest.json +133 -0
  302. package/dist/catalog/knowledge-catalogs/re/regional-britain-ireland/art.json +12 -0
  303. package/dist/catalog/knowledge-catalogs/re/regional-britain-ireland/logo.webp +0 -0
  304. package/dist/catalog/knowledge-catalogs/re/regional-britain-ireland/manifest.json +48 -0
  305. package/dist/catalog/knowledge-catalogs/re/regional-britain-ireland/versions/2026.10.3/manifest.json +133 -0
  306. package/dist/catalog/knowledge-catalogs/re/regional-california-southwest/art.json +12 -0
  307. package/dist/catalog/knowledge-catalogs/re/regional-california-southwest/logo.webp +0 -0
  308. package/dist/catalog/knowledge-catalogs/re/regional-california-southwest/manifest.json +48 -0
  309. package/dist/catalog/knowledge-catalogs/re/regional-california-southwest/versions/2026.10.3/manifest.json +133 -0
  310. package/dist/catalog/knowledge-catalogs/re/regional-canada-alaska/art.json +12 -0
  311. package/dist/catalog/knowledge-catalogs/re/regional-canada-alaska/logo.webp +0 -0
  312. package/dist/catalog/knowledge-catalogs/re/regional-canada-alaska/manifest.json +48 -0
  313. package/dist/catalog/knowledge-catalogs/re/regional-canada-alaska/versions/2026.10.3/manifest.json +133 -0
  314. package/dist/catalog/knowledge-catalogs/re/regional-central-eastern-europe/art.json +12 -0
  315. package/dist/catalog/knowledge-catalogs/re/regional-central-eastern-europe/logo.webp +0 -0
  316. package/dist/catalog/knowledge-catalogs/re/regional-central-eastern-europe/manifest.json +48 -0
  317. package/dist/catalog/knowledge-catalogs/re/regional-central-eastern-europe/versions/2026.10.3/manifest.json +133 -0
  318. package/dist/catalog/knowledge-catalogs/re/regional-east-asia/art.json +12 -0
  319. package/dist/catalog/knowledge-catalogs/re/regional-east-asia/logo.webp +0 -0
  320. package/dist/catalog/knowledge-catalogs/re/regional-east-asia/manifest.json +48 -0
  321. package/dist/catalog/knowledge-catalogs/re/regional-east-asia/versions/2026.10.3/manifest.json +133 -0
  322. package/dist/catalog/knowledge-catalogs/re/regional-east-southern-africa/art.json +12 -0
  323. package/dist/catalog/knowledge-catalogs/re/regional-east-southern-africa/logo.webp +0 -0
  324. package/dist/catalog/knowledge-catalogs/re/regional-east-southern-africa/manifest.json +48 -0
  325. package/dist/catalog/knowledge-catalogs/re/regional-east-southern-africa/versions/2026.10.3/manifest.json +133 -0
  326. package/dist/catalog/knowledge-catalogs/re/regional-mediterranean/art.json +12 -0
  327. package/dist/catalog/knowledge-catalogs/re/regional-mediterranean/logo.webp +0 -0
  328. package/dist/catalog/knowledge-catalogs/re/regional-mediterranean/manifest.json +48 -0
  329. package/dist/catalog/knowledge-catalogs/re/regional-mediterranean/versions/2026.10.3/manifest.json +133 -0
  330. package/dist/catalog/knowledge-catalogs/re/regional-mexico-central-america/art.json +12 -0
  331. package/dist/catalog/knowledge-catalogs/re/regional-mexico-central-america/logo.webp +0 -0
  332. package/dist/catalog/knowledge-catalogs/re/regional-mexico-central-america/manifest.json +48 -0
  333. package/dist/catalog/knowledge-catalogs/re/regional-mexico-central-america/versions/2026.10.3/manifest.json +133 -0
  334. package/dist/catalog/knowledge-catalogs/re/regional-middle-east/art.json +12 -0
  335. package/dist/catalog/knowledge-catalogs/re/regional-middle-east/logo.webp +0 -0
  336. package/dist/catalog/knowledge-catalogs/re/regional-middle-east/manifest.json +48 -0
  337. package/dist/catalog/knowledge-catalogs/re/regional-middle-east/versions/2026.10.3/manifest.json +133 -0
  338. package/dist/catalog/knowledge-catalogs/re/regional-midwest/art.json +12 -0
  339. package/dist/catalog/knowledge-catalogs/re/regional-midwest/logo.webp +0 -0
  340. package/dist/catalog/knowledge-catalogs/re/regional-midwest/manifest.json +48 -0
  341. package/dist/catalog/knowledge-catalogs/re/regional-midwest/versions/2026.10.3/manifest.json +133 -0
  342. package/dist/catalog/knowledge-catalogs/re/regional-north-africa/art.json +12 -0
  343. package/dist/catalog/knowledge-catalogs/re/regional-north-africa/logo.webp +0 -0
  344. package/dist/catalog/knowledge-catalogs/re/regional-north-africa/manifest.json +48 -0
  345. package/dist/catalog/knowledge-catalogs/re/regional-north-africa/versions/2026.10.3/manifest.json +133 -0
  346. package/dist/catalog/knowledge-catalogs/re/regional-northeast/art.json +12 -0
  347. package/dist/catalog/knowledge-catalogs/re/regional-northeast/logo.webp +0 -0
  348. package/dist/catalog/knowledge-catalogs/re/regional-northeast/manifest.json +48 -0
  349. package/dist/catalog/knowledge-catalogs/re/regional-northeast/versions/2026.10.3/manifest.json +133 -0
  350. package/dist/catalog/knowledge-catalogs/re/regional-northern-eurasia/art.json +12 -0
  351. package/dist/catalog/knowledge-catalogs/re/regional-northern-eurasia/logo.webp +0 -0
  352. package/dist/catalog/knowledge-catalogs/re/regional-northern-eurasia/manifest.json +48 -0
  353. package/dist/catalog/knowledge-catalogs/re/regional-northern-eurasia/versions/2026.10.3/manifest.json +133 -0
  354. package/dist/catalog/knowledge-catalogs/re/regional-northern-europe/art.json +12 -0
  355. package/dist/catalog/knowledge-catalogs/re/regional-northern-europe/logo.webp +0 -0
  356. package/dist/catalog/knowledge-catalogs/re/regional-northern-europe/manifest.json +48 -0
  357. package/dist/catalog/knowledge-catalogs/re/regional-northern-europe/versions/2026.10.3/manifest.json +133 -0
  358. package/dist/catalog/knowledge-catalogs/re/regional-pacific-islands/art.json +12 -0
  359. package/dist/catalog/knowledge-catalogs/re/regional-pacific-islands/logo.webp +0 -0
  360. package/dist/catalog/knowledge-catalogs/re/regional-pacific-islands/manifest.json +48 -0
  361. package/dist/catalog/knowledge-catalogs/re/regional-pacific-islands/versions/2026.10.3/manifest.json +133 -0
  362. package/dist/catalog/knowledge-catalogs/re/regional-pacific-northwest/art.json +12 -0
  363. package/dist/catalog/knowledge-catalogs/re/regional-pacific-northwest/logo.webp +0 -0
  364. package/dist/catalog/knowledge-catalogs/re/regional-pacific-northwest/manifest.json +48 -0
  365. package/dist/catalog/knowledge-catalogs/re/regional-pacific-northwest/versions/2026.10.3/manifest.json +133 -0
  366. package/dist/catalog/knowledge-catalogs/re/regional-rockies-plains/art.json +12 -0
  367. package/dist/catalog/knowledge-catalogs/re/regional-rockies-plains/logo.webp +0 -0
  368. package/dist/catalog/knowledge-catalogs/re/regional-rockies-plains/manifest.json +48 -0
  369. package/dist/catalog/knowledge-catalogs/re/regional-rockies-plains/versions/2026.10.3/manifest.json +133 -0
  370. package/dist/catalog/knowledge-catalogs/re/regional-south-asia/art.json +12 -0
  371. package/dist/catalog/knowledge-catalogs/re/regional-south-asia/logo.webp +0 -0
  372. package/dist/catalog/knowledge-catalogs/re/regional-south-asia/manifest.json +48 -0
  373. package/dist/catalog/knowledge-catalogs/re/regional-south-asia/versions/2026.10.3/manifest.json +133 -0
  374. package/dist/catalog/knowledge-catalogs/re/regional-southeast-asia/art.json +12 -0
  375. package/dist/catalog/knowledge-catalogs/re/regional-southeast-asia/logo.webp +0 -0
  376. package/dist/catalog/knowledge-catalogs/re/regional-southeast-asia/manifest.json +48 -0
  377. package/dist/catalog/knowledge-catalogs/re/regional-southeast-asia/versions/2026.10.3/manifest.json +133 -0
  378. package/dist/catalog/knowledge-catalogs/re/regional-southern-cone/art.json +12 -0
  379. package/dist/catalog/knowledge-catalogs/re/regional-southern-cone/logo.webp +0 -0
  380. package/dist/catalog/knowledge-catalogs/re/regional-southern-cone/manifest.json +48 -0
  381. package/dist/catalog/knowledge-catalogs/re/regional-southern-cone/versions/2026.10.3/manifest.json +133 -0
  382. package/dist/catalog/knowledge-catalogs/re/regional-west-central-africa/art.json +12 -0
  383. package/dist/catalog/knowledge-catalogs/re/regional-west-central-africa/logo.webp +0 -0
  384. package/dist/catalog/knowledge-catalogs/re/regional-west-central-africa/manifest.json +48 -0
  385. package/dist/catalog/knowledge-catalogs/re/regional-west-central-africa/versions/2026.10.3/manifest.json +133 -0
  386. package/dist/catalog/knowledge-catalogs/re/regional-western-europe/art.json +12 -0
  387. package/dist/catalog/knowledge-catalogs/re/regional-western-europe/logo.webp +0 -0
  388. package/dist/catalog/knowledge-catalogs/re/regional-western-europe/manifest.json +48 -0
  389. package/dist/catalog/knowledge-catalogs/re/regional-western-europe/versions/2026.10.3/manifest.json +133 -0
  390. package/dist/catalog/knowledge-catalogs/wi/wikipedia-arts/art.json +12 -0
  391. package/dist/catalog/knowledge-catalogs/wi/wikipedia-arts/logo.webp +0 -0
  392. package/dist/catalog/knowledge-catalogs/wi/wikipedia-arts/manifest.json +28 -0
  393. package/dist/catalog/knowledge-catalogs/wi/wikipedia-arts/versions/2026.4.2/manifest.json +53 -0
  394. package/dist/catalog/knowledge-catalogs/wi/wikipedia-arts/versions/2026.4.3/manifest.json +885 -0
  395. package/dist/catalog/knowledge-catalogs/wi/wikipedia-arts/versions/2026.4.5/manifest.json +157 -0
  396. package/dist/catalog/knowledge-catalogs/wi/wikipedia-astronomy/art.json +11 -0
  397. package/dist/catalog/knowledge-catalogs/wi/wikipedia-astronomy/logo.webp +0 -0
  398. package/dist/catalog/knowledge-catalogs/wi/wikipedia-astronomy/manifest.json +32 -0
  399. package/dist/catalog/knowledge-catalogs/wi/wikipedia-astronomy/versions/2026.4.2/manifest.json +69 -0
  400. package/dist/catalog/knowledge-catalogs/wi/wikipedia-astronomy/versions/2026.4.3/manifest.json +741 -0
  401. package/dist/catalog/knowledge-catalogs/wi/wikipedia-astronomy/versions/2026.4.5/manifest.json +173 -0
  402. package/dist/catalog/knowledge-catalogs/wi/wikipedia-biology/art.json +12 -0
  403. package/dist/catalog/knowledge-catalogs/wi/wikipedia-biology/logo.webp +0 -0
  404. package/dist/catalog/knowledge-catalogs/wi/wikipedia-biology/manifest.json +69 -0
  405. package/dist/catalog/knowledge-catalogs/wi/wikipedia-biology/versions/2026.4.4/manifest.json +217 -0
  406. package/dist/catalog/knowledge-catalogs/wi/wikipedia-biology/versions/2026.4.5/manifest.json +217 -0
  407. package/dist/catalog/knowledge-catalogs/wi/wikipedia-business/art.json +12 -0
  408. package/dist/catalog/knowledge-catalogs/wi/wikipedia-business/logo.webp +0 -0
  409. package/dist/catalog/knowledge-catalogs/wi/wikipedia-business/manifest.json +64 -0
  410. package/dist/catalog/knowledge-catalogs/wi/wikipedia-business/versions/2026.4.4/manifest.json +197 -0
  411. package/dist/catalog/knowledge-catalogs/wi/wikipedia-business/versions/2026.4.5/manifest.json +197 -0
  412. package/dist/catalog/knowledge-catalogs/wi/wikipedia-film-tv/art.json +12 -0
  413. package/dist/catalog/knowledge-catalogs/wi/wikipedia-film-tv/logo.webp +0 -0
  414. package/dist/catalog/knowledge-catalogs/wi/wikipedia-film-tv/manifest.json +64 -0
  415. package/dist/catalog/knowledge-catalogs/wi/wikipedia-film-tv/versions/2026.4.5/manifest.json +197 -0
  416. package/dist/catalog/knowledge-catalogs/wi/wikipedia-food-drink/art.json +11 -0
  417. package/dist/catalog/knowledge-catalogs/wi/wikipedia-food-drink/logo.webp +0 -0
  418. package/dist/catalog/knowledge-catalogs/wi/wikipedia-food-drink/manifest.json +29 -0
  419. package/dist/catalog/knowledge-catalogs/wi/wikipedia-food-drink/versions/2026.4.2/manifest.json +57 -0
  420. package/dist/catalog/knowledge-catalogs/wi/wikipedia-food-drink/versions/2026.4.3/manifest.json +925 -0
  421. package/dist/catalog/knowledge-catalogs/wi/wikipedia-food-drink/versions/2026.4.5/manifest.json +185 -0
  422. package/dist/catalog/knowledge-catalogs/wi/wikipedia-games/art.json +12 -0
  423. package/dist/catalog/knowledge-catalogs/wi/wikipedia-games/logo.webp +0 -0
  424. package/dist/catalog/knowledge-catalogs/wi/wikipedia-games/manifest.json +28 -0
  425. package/dist/catalog/knowledge-catalogs/wi/wikipedia-games/versions/2026.4.2/manifest.json +53 -0
  426. package/dist/catalog/knowledge-catalogs/wi/wikipedia-games/versions/2026.4.3/manifest.json +1665 -0
  427. package/dist/catalog/knowledge-catalogs/wi/wikipedia-games/versions/2026.4.5/manifest.json +133 -0
  428. package/dist/catalog/knowledge-catalogs/wi/wikipedia-language/art.json +12 -0
  429. package/dist/catalog/knowledge-catalogs/wi/wikipedia-language/logo.webp +0 -0
  430. package/dist/catalog/knowledge-catalogs/wi/wikipedia-language/manifest.json +29 -0
  431. package/dist/catalog/knowledge-catalogs/wi/wikipedia-language/versions/2026.4.2/manifest.json +57 -0
  432. package/dist/catalog/knowledge-catalogs/wi/wikipedia-language/versions/2026.4.3/manifest.json +1233 -0
  433. package/dist/catalog/knowledge-catalogs/wi/wikipedia-language/versions/2026.4.5/manifest.json +141 -0
  434. package/dist/catalog/knowledge-catalogs/wi/wikipedia-law/art.json +11 -0
  435. package/dist/catalog/knowledge-catalogs/wi/wikipedia-law/logo.webp +0 -0
  436. package/dist/catalog/knowledge-catalogs/wi/wikipedia-law/manifest.json +29 -0
  437. package/dist/catalog/knowledge-catalogs/wi/wikipedia-law/versions/2026.4.2/manifest.json +57 -0
  438. package/dist/catalog/knowledge-catalogs/wi/wikipedia-law/versions/2026.4.3/manifest.json +493 -0
  439. package/dist/catalog/knowledge-catalogs/wi/wikipedia-law/versions/2026.4.5/manifest.json +185 -0
  440. package/dist/catalog/knowledge-catalogs/wi/wikipedia-literature/art.json +12 -0
  441. package/dist/catalog/knowledge-catalogs/wi/wikipedia-literature/logo.webp +0 -0
  442. package/dist/catalog/knowledge-catalogs/wi/wikipedia-literature/manifest.json +63 -0
  443. package/dist/catalog/knowledge-catalogs/wi/wikipedia-literature/versions/2026.4.4/manifest.json +193 -0
  444. package/dist/catalog/knowledge-catalogs/wi/wikipedia-literature/versions/2026.4.5/manifest.json +193 -0
  445. package/dist/catalog/knowledge-catalogs/wi/wikipedia-mathematics/art.json +12 -0
  446. package/dist/catalog/knowledge-catalogs/wi/wikipedia-mathematics/logo.webp +0 -0
  447. package/dist/catalog/knowledge-catalogs/wi/wikipedia-mathematics/manifest.json +30 -0
  448. package/dist/catalog/knowledge-catalogs/wi/wikipedia-mathematics/versions/2026.4.2/manifest.json +61 -0
  449. package/dist/catalog/knowledge-catalogs/wi/wikipedia-mathematics/versions/2026.4.3/manifest.json +665 -0
  450. package/dist/catalog/knowledge-catalogs/wi/wikipedia-mathematics/versions/2026.4.5/manifest.json +177 -0
  451. package/dist/catalog/knowledge-catalogs/wi/wikipedia-medicine/art.json +12 -0
  452. package/dist/catalog/knowledge-catalogs/wi/wikipedia-medicine/logo.webp +0 -0
  453. package/dist/catalog/knowledge-catalogs/wi/wikipedia-medicine/manifest.json +29 -0
  454. package/dist/catalog/knowledge-catalogs/wi/wikipedia-medicine/versions/2026.4.2/manifest.json +57 -0
  455. package/dist/catalog/knowledge-catalogs/wi/wikipedia-medicine/versions/2026.4.3/manifest.json +745 -0
  456. package/dist/catalog/knowledge-catalogs/wi/wikipedia-medicine/versions/2026.4.5/manifest.json +185 -0
  457. package/dist/catalog/knowledge-catalogs/wi/wikipedia-military/art.json +12 -0
  458. package/dist/catalog/knowledge-catalogs/wi/wikipedia-military/logo.webp +0 -0
  459. package/dist/catalog/knowledge-catalogs/wi/wikipedia-military/manifest.json +62 -0
  460. package/dist/catalog/knowledge-catalogs/wi/wikipedia-military/versions/2026.4.4/manifest.json +189 -0
  461. package/dist/catalog/knowledge-catalogs/wi/wikipedia-military/versions/2026.4.5/manifest.json +189 -0
  462. package/dist/catalog/knowledge-catalogs/wi/wikipedia-music/art.json +12 -0
  463. package/dist/catalog/knowledge-catalogs/wi/wikipedia-music/logo.webp +0 -0
  464. package/dist/catalog/knowledge-catalogs/wi/wikipedia-music/manifest.json +64 -0
  465. package/dist/catalog/knowledge-catalogs/wi/wikipedia-music/versions/2026.4.5/manifest.json +197 -0
  466. package/dist/catalog/knowledge-catalogs/wi/wikipedia-politics/art.json +12 -0
  467. package/dist/catalog/knowledge-catalogs/wi/wikipedia-politics/logo.webp +0 -0
  468. package/dist/catalog/knowledge-catalogs/wi/wikipedia-politics/manifest.json +64 -0
  469. package/dist/catalog/knowledge-catalogs/wi/wikipedia-politics/versions/2026.4.4/manifest.json +197 -0
  470. package/dist/catalog/knowledge-catalogs/wi/wikipedia-politics/versions/2026.4.5/manifest.json +197 -0
  471. package/dist/catalog/knowledge-catalogs/wi/wikipedia-religion-philosophy/art.json +12 -0
  472. package/dist/catalog/knowledge-catalogs/wi/wikipedia-religion-philosophy/logo.webp +0 -0
  473. package/dist/catalog/knowledge-catalogs/wi/wikipedia-religion-philosophy/manifest.json +30 -0
  474. package/dist/catalog/knowledge-catalogs/wi/wikipedia-religion-philosophy/versions/2026.4.2/manifest.json +61 -0
  475. package/dist/catalog/knowledge-catalogs/wi/wikipedia-religion-philosophy/versions/2026.4.3/manifest.json +1253 -0
  476. package/dist/catalog/knowledge-catalogs/wi/wikipedia-religion-philosophy/versions/2026.4.5/manifest.json +189 -0
  477. package/dist/catalog/knowledge-catalogs/wi/wikipedia-science/art.json +12 -0
  478. package/dist/catalog/knowledge-catalogs/wi/wikipedia-science/logo.webp +0 -0
  479. package/dist/catalog/knowledge-catalogs/wi/wikipedia-science/manifest.json +29 -0
  480. package/dist/catalog/knowledge-catalogs/wi/wikipedia-science/versions/2026.4.2/manifest.json +57 -0
  481. package/dist/catalog/knowledge-catalogs/wi/wikipedia-science/versions/2026.4.3/manifest.json +1957 -0
  482. package/dist/catalog/knowledge-catalogs/wi/wikipedia-science/versions/2026.4.5/manifest.json +185 -0
  483. package/dist/catalog/knowledge-catalogs/wi/wikipedia-sports/art.json +12 -0
  484. package/dist/catalog/knowledge-catalogs/wi/wikipedia-sports/logo.webp +0 -0
  485. package/dist/catalog/knowledge-catalogs/wi/wikipedia-sports/manifest.json +63 -0
  486. package/dist/catalog/knowledge-catalogs/wi/wikipedia-sports/versions/2026.4.5/manifest.json +193 -0
  487. package/dist/catalog/knowledge-catalogs/wi/wikipedia-technology/art.json +11 -0
  488. package/dist/catalog/knowledge-catalogs/wi/wikipedia-technology/logo.webp +0 -0
  489. package/dist/catalog/knowledge-catalogs/wi/wikipedia-technology/manifest.json +45 -0
  490. package/dist/catalog/knowledge-catalogs/wi/wikipedia-technology/versions/2026.4.4/manifest.json +121 -0
  491. package/dist/catalog/knowledge-catalogs/wi/wikipedia-technology/versions/2026.4.5/manifest.json +173 -0
  492. package/dist/catalog/knowledge-catalogs/wi/wikipedia-transportation/art.json +12 -0
  493. package/dist/catalog/knowledge-catalogs/wi/wikipedia-transportation/logo.webp +0 -0
  494. package/dist/catalog/knowledge-catalogs/wi/wikipedia-transportation/manifest.json +62 -0
  495. package/dist/catalog/knowledge-catalogs/wi/wikipedia-transportation/versions/2026.4.4/manifest.json +189 -0
  496. package/dist/catalog/knowledge-catalogs/wi/wikipedia-transportation/versions/2026.4.5/manifest.json +189 -0
  497. package/dist/catalog/provenance.json +8 -0
  498. package/dist/chat/catalog-model-lookup.d.ts +21 -0
  499. package/dist/chat/catalog-model-lookup.js +48 -0
  500. package/dist/chat/local-model-tier.d.ts +1 -0
  501. package/dist/chat/local-model-tier.js +2 -0
  502. package/dist/chat/vision-capability.d.ts +1 -0
  503. package/dist/chat/vision-capability.js +3 -0
  504. package/dist/engine-components.d.ts +30 -0
  505. package/dist/engine-components.js +144 -0
  506. package/dist/engines/electron-native-reuse.d.ts +65 -0
  507. package/dist/engines/electron-native-reuse.js +305 -0
  508. package/dist/engines/native-file-manifest.json +1320 -0
  509. package/dist/engines/native-manifest.d.ts +70 -0
  510. package/dist/engines/native-manifest.js +98 -0
  511. package/dist/engines/registry.d.ts +88 -0
  512. package/dist/engines/registry.js +217 -0
  513. package/dist/engines/resolver.d.ts +121 -0
  514. package/dist/engines/resolver.js +894 -0
  515. package/dist/engines/signature.d.ts +85 -0
  516. package/dist/engines/signature.js +231 -0
  517. package/dist/fs/atomic.d.ts +53 -0
  518. package/dist/fs/atomic.js +202 -0
  519. package/dist/fs/config-store.d.ts +14 -0
  520. package/dist/fs/config-store.js +101 -0
  521. package/dist/fs/home-permissions.d.ts +18 -0
  522. package/dist/fs/home-permissions.js +27 -0
  523. package/dist/fs/safe-paths.d.ts +107 -0
  524. package/dist/fs/safe-paths.js +264 -0
  525. package/dist/fs/security-json.d.ts +13 -0
  526. package/dist/fs/security-json.js +67 -0
  527. package/dist/http/auth-context.d.ts +23 -0
  528. package/dist/http/auth-context.js +1 -0
  529. package/dist/http/engine-runtime-context.d.ts +30 -0
  530. package/dist/http/engine-runtime-context.js +1 -0
  531. package/dist/http/external-conversation-contract.d.ts +49 -0
  532. package/dist/http/external-conversation-contract.js +1 -0
  533. package/dist/http/external-conversation-headers.d.ts +11 -0
  534. package/dist/http/external-conversation-headers.js +11 -0
  535. package/dist/http/inference-context.d.ts +36 -0
  536. package/dist/http/inference-context.js +1 -0
  537. package/dist/http/model-inventory-cache.d.ts +8 -0
  538. package/dist/http/model-inventory-cache.js +8 -0
  539. package/dist/http/openai-compat/action-ledger.d.ts +15 -0
  540. package/dist/http/openai-compat/action-ledger.js +119 -0
  541. package/dist/http/openai-compat/apple-model.d.ts +3 -0
  542. package/dist/http/openai-compat/apple-model.js +44 -0
  543. package/dist/http/openai-compat/caller-owned-profile.d.ts +7 -0
  544. package/dist/http/openai-compat/caller-owned-profile.js +18 -0
  545. package/dist/http/openai-compat/chat-progress.d.ts +9 -0
  546. package/dist/http/openai-compat/chat-progress.js +69 -0
  547. package/dist/http/openai-compat/chat-target.d.ts +76 -0
  548. package/dist/http/openai-compat/chat-target.js +97 -0
  549. package/dist/http/openai-compat/embeddings.d.ts +37 -0
  550. package/dist/http/openai-compat/embeddings.js +86 -0
  551. package/dist/http/openai-compat/request-tuning.d.ts +35 -0
  552. package/dist/http/openai-compat/request-tuning.js +87 -0
  553. package/dist/http/openai-compat/responses-streaming.d.ts +351 -0
  554. package/dist/http/openai-compat/responses-streaming.js +717 -0
  555. package/dist/http/openai-compat/responses-translate.d.ts +215 -0
  556. package/dist/http/openai-compat/responses-translate.js +377 -0
  557. package/dist/http/openai-compat/streaming-telemetry.d.ts +30 -0
  558. package/dist/http/openai-compat/streaming-telemetry.js +88 -0
  559. package/dist/http/openai-compat/streaming.d.ts +141 -0
  560. package/dist/http/openai-compat/streaming.js +687 -0
  561. package/dist/http/openai-compat/tool-call-stream-filter.d.ts +33 -0
  562. package/dist/http/openai-compat/tool-call-stream-filter.js +110 -0
  563. package/dist/http/openai-compat/translate.d.ts +254 -0
  564. package/dist/http/openai-compat/translate.js +485 -0
  565. package/dist/http/routes/engines.d.ts +13 -0
  566. package/dist/http/routes/engines.js +366 -0
  567. package/dist/http/routes/machine-engine-proxy.d.ts +26 -0
  568. package/dist/http/routes/machine-engine-proxy.js +43 -0
  569. package/dist/http/routes/model-bundles.d.ts +4 -0
  570. package/dist/http/routes/model-bundles.js +190 -0
  571. package/dist/http/routes/v1-chat.d.ts +72 -0
  572. package/dist/http/routes/v1-chat.js +645 -0
  573. package/dist/http/routes/v1-embeddings.d.ts +3 -0
  574. package/dist/http/routes/v1-embeddings.js +82 -0
  575. package/dist/http/routes/v1-knowledge.d.ts +4 -0
  576. package/dist/http/routes/v1-knowledge.js +304 -0
  577. package/dist/http/routes/v1-models-ensure.d.ts +32 -0
  578. package/dist/http/routes/v1-models-ensure.js +122 -0
  579. package/dist/http/routes/v1-models.d.ts +8 -0
  580. package/dist/http/routes/v1-models.js +189 -0
  581. package/dist/http/routes/v1-responses.d.ts +20 -0
  582. package/dist/http/routes/v1-responses.js +327 -0
  583. package/dist/index.d.ts +2 -0
  584. package/dist/index.js +2 -0
  585. package/dist/inference-service.d.ts +28 -0
  586. package/dist/inference-service.js +275 -0
  587. package/dist/knowledge/admission.d.ts +3 -0
  588. package/dist/knowledge/admission.js +22 -0
  589. package/dist/knowledge/bundled-catalog.d.ts +2 -0
  590. package/dist/knowledge/bundled-catalog.js +2 -0
  591. package/dist/knowledge/catalog-host.d.ts +103 -0
  592. package/dist/knowledge/catalog-host.js +180 -0
  593. package/dist/knowledge/catalog-source.d.ts +22 -0
  594. package/dist/knowledge/catalog-source.js +35 -0
  595. package/dist/knowledge/install.d.ts +55 -0
  596. package/dist/knowledge/install.js +274 -0
  597. package/dist/knowledge/manager.d.ts +287 -0
  598. package/dist/knowledge/manager.js +1540 -0
  599. package/dist/knowledge/registry.d.ts +35 -0
  600. package/dist/knowledge/registry.js +123 -0
  601. package/dist/knowledge/search-worker.d.ts +17 -0
  602. package/dist/knowledge/search-worker.js +36 -0
  603. package/dist/knowledge/shared-install-contract.d.ts +19 -0
  604. package/dist/knowledge/shared-install-contract.js +1 -0
  605. package/dist/knowledge/spatial-query.d.ts +11 -0
  606. package/dist/knowledge/spatial-query.js +33 -0
  607. package/dist/knowledge/trust-anchors.d.ts +11 -0
  608. package/dist/knowledge/trust-anchors.js +51 -0
  609. package/dist/knowledge/vector-floors.d.ts +44 -0
  610. package/dist/knowledge/vector-floors.js +92 -0
  611. package/dist/knowledge/worker-host.d.ts +9 -0
  612. package/dist/knowledge/worker-host.js +179 -0
  613. package/dist/kokoro-lexicon/LICENSE +202 -0
  614. package/dist/kokoro-lexicon/lexicon-gb-en.txt.gz +0 -0
  615. package/dist/kokoro-lexicon/lexicon-us-en.txt.gz +0 -0
  616. package/dist/kokoro-lexicon/manifest.json +23 -0
  617. package/dist/machine-engine/inspect-runtime.d.ts +3 -0
  618. package/dist/machine-engine/inspect-runtime.js +48 -0
  619. package/dist/machine-engine/knowledge-assets.d.ts +79 -0
  620. package/dist/machine-engine/knowledge-assets.js +505 -0
  621. package/dist/memory/embed-core.d.ts +131 -0
  622. package/dist/memory/embed-core.js +398 -0
  623. package/dist/memory/embed-worker.d.ts +23 -0
  624. package/dist/memory/embed-worker.js +49 -0
  625. package/dist/memory/embeddings.d.ts +105 -0
  626. package/dist/memory/embeddings.js +467 -0
  627. package/dist/model-profile/behaviors/tools-mlx-template-fix.d.ts +1 -0
  628. package/dist/model-profile/behaviors/tools-mlx-template-fix.js +2 -0
  629. package/dist/model-profile/behaviors/turn-ramble-detection.d.ts +1 -0
  630. package/dist/model-profile/behaviors/turn-ramble-detection.js +2 -0
  631. package/dist/model-profile/defaults.d.ts +1 -0
  632. package/dist/model-profile/defaults.js +2 -0
  633. package/dist/model-profile/index.d.ts +9 -0
  634. package/dist/model-profile/index.js +7 -0
  635. package/dist/model-profile/registry.d.ts +15 -0
  636. package/dist/model-profile/registry.js +18 -0
  637. package/dist/model-profile/runtime.d.ts +48 -0
  638. package/dist/model-profile/runtime.js +131 -0
  639. package/dist/model-profile/tool-grammar.d.ts +1 -0
  640. package/dist/model-profile/tool-grammar.js +2 -0
  641. package/dist/model-profile/tuning.d.ts +19 -0
  642. package/dist/model-profile/tuning.js +21 -0
  643. package/dist/model-profile/types.d.ts +1 -0
  644. package/dist/model-profile/types.js +2 -0
  645. package/dist/models/bundle-storage.d.ts +28 -0
  646. package/dist/models/bundle-storage.js +80 -0
  647. package/dist/models/catalog-drift.d.ts +48 -0
  648. package/dist/models/catalog-drift.js +94 -0
  649. package/dist/models/catalog-payload-identity.d.ts +107 -0
  650. package/dist/models/catalog-payload-identity.js +254 -0
  651. package/dist/models/ensure.d.ts +125 -0
  652. package/dist/models/ensure.js +205 -0
  653. package/dist/models/gezmodel.d.ts +47 -0
  654. package/dist/models/gezmodel.js +742 -0
  655. package/dist/models/install-registry.d.ts +101 -0
  656. package/dist/models/install-registry.js +216 -0
  657. package/dist/models/model-id.d.ts +22 -0
  658. package/dist/models/model-id.js +40 -0
  659. package/dist/models/storage-roots.d.ts +274 -0
  660. package/dist/models/storage-roots.js +865 -0
  661. package/dist/native-release-entry.d.ts +16 -0
  662. package/dist/native-release-entry.js +16 -0
  663. package/dist/perf/redact-path.d.ts +2 -0
  664. package/dist/perf/redact-path.js +27 -0
  665. package/dist/perf/responsiveness.d.ts +70 -0
  666. package/dist/perf/responsiveness.js +560 -0
  667. package/dist/providers/active-install-message.d.ts +42 -0
  668. package/dist/providers/active-install-message.js +49 -0
  669. package/dist/providers/apple-foundation-models/binary.d.ts +4 -0
  670. package/dist/providers/apple-foundation-models/binary.js +18 -0
  671. package/dist/providers/apple-foundation-models/helper.d.ts +66 -0
  672. package/dist/providers/apple-foundation-models/helper.js +262 -0
  673. package/dist/providers/apple-foundation-models/provider.d.ts +82 -0
  674. package/dist/providers/apple-foundation-models/provider.js +389 -0
  675. package/dist/providers/apple-foundation-models/status.d.ts +9 -0
  676. package/dist/providers/apple-foundation-models/status.js +49 -0
  677. package/dist/providers/audio/kokoro-frontend.d.ts +50 -0
  678. package/dist/providers/audio/kokoro-frontend.js +113 -0
  679. package/dist/providers/audio/managed-speech-model.d.ts +9 -0
  680. package/dist/providers/audio/managed-speech-model.js +86 -0
  681. package/dist/providers/audio/types.d.ts +202 -0
  682. package/dist/providers/audio/types.js +17 -0
  683. package/dist/providers/audio/whisper-cpp.d.ts +99 -0
  684. package/dist/providers/audio/whisper-cpp.js +420 -0
  685. package/dist/providers/audio-persister-contract.d.ts +13 -0
  686. package/dist/providers/audio-persister-contract.js +1 -0
  687. package/dist/providers/catalog-model-config.d.ts +63 -0
  688. package/dist/providers/catalog-model-config.js +95 -0
  689. package/dist/providers/code-block-salvage.d.ts +1 -0
  690. package/dist/providers/code-block-salvage.js +2 -0
  691. package/dist/providers/codex-cli/reasoning.d.ts +8 -0
  692. package/dist/providers/codex-cli/reasoning.js +17 -0
  693. package/dist/providers/complete-tool-call.d.ts +16 -0
  694. package/dist/providers/complete-tool-call.js +25 -0
  695. package/dist/providers/constrained-turn.d.ts +1 -0
  696. package/dist/providers/constrained-turn.js +2 -0
  697. package/dist/providers/deliverable-read-pacing.d.ts +1 -0
  698. package/dist/providers/deliverable-read-pacing.js +2 -0
  699. package/dist/providers/direct-file-work-prompt.d.ts +1 -0
  700. package/dist/providers/direct-file-work-prompt.js +2 -0
  701. package/dist/providers/ds4/build-provider.d.ts +100 -0
  702. package/dist/providers/ds4/build-provider.js +539 -0
  703. package/dist/providers/ds4/cache-adapter.d.ts +42 -0
  704. package/dist/providers/ds4/cache-adapter.js +110 -0
  705. package/dist/providers/ds4/dspark.d.ts +83 -0
  706. package/dist/providers/ds4/dspark.js +107 -0
  707. package/dist/providers/ds4/mtp.d.ts +32 -0
  708. package/dist/providers/ds4/mtp.js +46 -0
  709. package/dist/providers/ds4/provider.d.ts +67 -0
  710. package/dist/providers/ds4/provider.js +104 -0
  711. package/dist/providers/ds4/residency.d.ts +143 -0
  712. package/dist/providers/ds4/residency.js +139 -0
  713. package/dist/providers/ds4/stdout-parser.d.ts +47 -0
  714. package/dist/providers/ds4/stdout-parser.js +134 -0
  715. package/dist/providers/duplicate-tool-calls.d.ts +1 -0
  716. package/dist/providers/duplicate-tool-calls.js +2 -0
  717. package/dist/providers/file-repair-policy.d.ts +1 -0
  718. package/dist/providers/file-repair-policy.js +2 -0
  719. package/dist/providers/gpu-arbiter.d.ts +159 -0
  720. package/dist/providers/gpu-arbiter.js +301 -0
  721. package/dist/providers/image-persister-contract.d.ts +15 -0
  722. package/dist/providers/image-persister-contract.js +1 -0
  723. package/dist/providers/llama-cpp/build-metadata.d.ts +13 -0
  724. package/dist/providers/llama-cpp/build-metadata.js +39 -0
  725. package/dist/providers/llama-cpp/build-provider.d.ts +66 -0
  726. package/dist/providers/llama-cpp/build-provider.js +1491 -0
  727. package/dist/providers/llama-cpp/cache-adapter.d.ts +242 -0
  728. package/dist/providers/llama-cpp/cache-adapter.js +689 -0
  729. package/dist/providers/llama-cpp/devices.d.ts +130 -0
  730. package/dist/providers/llama-cpp/devices.js +256 -0
  731. package/dist/providers/llama-cpp/disk-cache.d.ts +8 -0
  732. package/dist/providers/llama-cpp/disk-cache.js +112 -0
  733. package/dist/providers/llama-cpp/engine-flags.d.ts +181 -0
  734. package/dist/providers/llama-cpp/engine-flags.js +279 -0
  735. package/dist/providers/llama-cpp/gguf-metadata-async.d.ts +11 -0
  736. package/dist/providers/llama-cpp/gguf-metadata-async.js +180 -0
  737. package/dist/providers/llama-cpp/gguf-metadata-worker.d.ts +7 -0
  738. package/dist/providers/llama-cpp/gguf-metadata-worker.js +27 -0
  739. package/dist/providers/llama-cpp/gguf-metadata.d.ts +198 -0
  740. package/dist/providers/llama-cpp/gguf-metadata.js +615 -0
  741. package/dist/providers/llama-cpp/gguf-quantization-backfill.d.ts +32 -0
  742. package/dist/providers/llama-cpp/gguf-quantization-backfill.js +75 -0
  743. package/dist/providers/llama-cpp/index.d.ts +10 -0
  744. package/dist/providers/llama-cpp/index.js +13 -0
  745. package/dist/providers/llama-cpp/kv-cache-type.d.ts +118 -0
  746. package/dist/providers/llama-cpp/kv-cache-type.js +140 -0
  747. package/dist/providers/llama-cpp/log.d.ts +92 -0
  748. package/dist/providers/llama-cpp/log.js +280 -0
  749. package/dist/providers/llama-cpp/models.d.ts +389 -0
  750. package/dist/providers/llama-cpp/models.js +1011 -0
  751. package/dist/providers/llama-cpp/offload-planner.d.ts +339 -0
  752. package/dist/providers/llama-cpp/offload-planner.js +524 -0
  753. package/dist/providers/llama-cpp/provider.d.ts +493 -0
  754. package/dist/providers/llama-cpp/provider.js +862 -0
  755. package/dist/providers/llama-cpp/reasoning-launch.d.ts +7 -0
  756. package/dist/providers/llama-cpp/reasoning-launch.js +14 -0
  757. package/dist/providers/llama-cpp/spec-draft.d.ts +44 -0
  758. package/dist/providers/llama-cpp/spec-draft.js +44 -0
  759. package/dist/providers/llama-cpp/stdout-parser.d.ts +70 -0
  760. package/dist/providers/llama-cpp/stdout-parser.js +197 -0
  761. package/dist/providers/local-tool-call-salvage.d.ts +1 -0
  762. package/dist/providers/local-tool-call-salvage.js +2 -0
  763. package/dist/providers/local-turn-policy.d.ts +1 -0
  764. package/dist/providers/local-turn-policy.js +2 -0
  765. package/dist/providers/mlx/async-file-handoff.d.ts +11 -0
  766. package/dist/providers/mlx/async-file-handoff.js +25 -0
  767. package/dist/providers/mlx/build-provider.d.ts +65 -0
  768. package/dist/providers/mlx/build-provider.js +717 -0
  769. package/dist/providers/mlx/cache-adapter.d.ts +161 -0
  770. package/dist/providers/mlx/cache-adapter.js +445 -0
  771. package/dist/providers/mlx/chat-protocol.d.ts +48 -0
  772. package/dist/providers/mlx/chat-protocol.js +8 -0
  773. package/dist/providers/mlx/config-parser.d.ts +29 -0
  774. package/dist/providers/mlx/config-parser.js +81 -0
  775. package/dist/providers/mlx/engine-gate.d.ts +51 -0
  776. package/dist/providers/mlx/engine-gate.js +207 -0
  777. package/dist/providers/mlx/engine-hold.d.ts +41 -0
  778. package/dist/providers/mlx/engine-hold.js +59 -0
  779. package/dist/providers/mlx/engine-log-router.d.ts +84 -0
  780. package/dist/providers/mlx/engine-log-router.js +137 -0
  781. package/dist/providers/mlx/engine-stats-sampler.d.ts +36 -0
  782. package/dist/providers/mlx/engine-stats-sampler.js +59 -0
  783. package/dist/providers/mlx/index.d.ts +10 -0
  784. package/dist/providers/mlx/index.js +10 -0
  785. package/dist/providers/mlx/log.d.ts +55 -0
  786. package/dist/providers/mlx/log.js +157 -0
  787. package/dist/providers/mlx/model-geometry.d.ts +35 -0
  788. package/dist/providers/mlx/model-geometry.js +118 -0
  789. package/dist/providers/mlx/models.d.ts +289 -0
  790. package/dist/providers/mlx/models.js +1079 -0
  791. package/dist/providers/mlx/provider.d.ts +404 -0
  792. package/dist/providers/mlx/provider.js +3017 -0
  793. package/dist/providers/mlx/python/cache_persist.py +348 -0
  794. package/dist/providers/mlx/python/cache_seed.py +402 -0
  795. package/dist/providers/mlx/python/gezel_mlx_server.py +4491 -0
  796. package/dist/providers/mlx/python/lfm2_compat.py +55 -0
  797. package/dist/providers/mlx/python/qwen3_5_text_compat.py +60 -0
  798. package/dist/providers/mlx/python/qwen4_ple.py +159 -0
  799. package/dist/providers/mlx/python/spec_decode.py +775 -0
  800. package/dist/providers/mlx/python/template_stability.py +133 -0
  801. package/dist/providers/mlx/python/think_budget.py +113 -0
  802. package/dist/providers/mlx/python/tool_args_json.py +297 -0
  803. package/dist/providers/mlx/python/tool_call_stream.py +265 -0
  804. package/dist/providers/mlx/python/tool_grammar.py +794 -0
  805. package/dist/providers/mlx/python/vision_inputs.py +64 -0
  806. package/dist/providers/mlx/python/wave_policy.py +147 -0
  807. package/dist/providers/mlx/reasoning-stream.d.ts +85 -0
  808. package/dist/providers/mlx/reasoning-stream.js +196 -0
  809. package/dist/providers/mlx/request-shape.d.ts +34 -0
  810. package/dist/providers/mlx/request-shape.js +42 -0
  811. package/dist/providers/mlx/runtime-diagnostics.d.ts +29 -0
  812. package/dist/providers/mlx/runtime-diagnostics.js +162 -0
  813. package/dist/providers/mlx/spec-drafter.d.ts +25 -0
  814. package/dist/providers/mlx/spec-drafter.js +73 -0
  815. package/dist/providers/mlx/stdout-parser.d.ts +60 -0
  816. package/dist/providers/mlx/stdout-parser.js +254 -0
  817. package/dist/providers/mlx/textual-tool-call-salvage.d.ts +46 -0
  818. package/dist/providers/mlx/textual-tool-call-salvage.js +396 -0
  819. package/dist/providers/mlx/tool-call-protocol.d.ts +65 -0
  820. package/dist/providers/mlx/tool-call-protocol.js +140 -0
  821. package/dist/providers/mlx/tool-call-stripper.d.ts +68 -0
  822. package/dist/providers/mlx/tool-call-stripper.js +153 -0
  823. package/dist/providers/mlx/tool-image-retention.d.ts +23 -0
  824. package/dist/providers/mlx/tool-image-retention.js +43 -0
  825. package/dist/providers/mlx/turn-telemetry.d.ts +22 -0
  826. package/dist/providers/mlx/turn-telemetry.js +45 -0
  827. package/dist/providers/mlx/venv.d.ts +91 -0
  828. package/dist/providers/mlx/venv.js +111 -0
  829. package/dist/providers/mlx/vision-mode.d.ts +92 -0
  830. package/dist/providers/mlx/vision-mode.js +187 -0
  831. package/dist/providers/mlx/vision.d.ts +2 -0
  832. package/dist/providers/mlx/vision.js +12 -0
  833. package/dist/providers/mlx/wire-transcript.d.ts +14 -0
  834. package/dist/providers/mlx/wire-transcript.js +43 -0
  835. package/dist/providers/native/capacity-broker.d.ts +812 -0
  836. package/dist/providers/native/capacity-broker.js +1058 -0
  837. package/dist/providers/native/capacity-budget.d.ts +133 -0
  838. package/dist/providers/native/capacity-budget.js +265 -0
  839. package/dist/providers/native/device-capacity-ledger.d.ts +31 -0
  840. package/dist/providers/native/device-capacity-ledger.js +196 -0
  841. package/dist/providers/native/device-capacity.d.ts +84 -0
  842. package/dist/providers/native/device-capacity.js +431 -0
  843. package/dist/providers/native/engine-api-key.d.ts +57 -0
  844. package/dist/providers/native/engine-api-key.js +72 -0
  845. package/dist/providers/native/engine-key.d.ts +18 -0
  846. package/dist/providers/native/engine-key.js +41 -0
  847. package/dist/providers/native/engine-router.d.ts +145 -0
  848. package/dist/providers/native/engine-router.js +191 -0
  849. package/dist/providers/native/gpu-panic-guard.d.ts +54 -0
  850. package/dist/providers/native/gpu-panic-guard.js +59 -0
  851. package/dist/providers/native/inference.d.ts +33 -0
  852. package/dist/providers/native/inference.js +49 -0
  853. package/dist/providers/native/local-engine-runtime.d.ts +412 -0
  854. package/dist/providers/native/local-engine-runtime.js +1714 -0
  855. package/dist/providers/native/measured-budget.d.ts +32 -0
  856. package/dist/providers/native/measured-budget.js +54 -0
  857. package/dist/providers/native/port.d.ts +11 -0
  858. package/dist/providers/native/port.js +29 -0
  859. package/dist/providers/native/provider-pool.d.ts +474 -0
  860. package/dist/providers/native/provider-pool.js +1166 -0
  861. package/dist/providers/native/supervisor.d.ts +503 -0
  862. package/dist/providers/native/supervisor.js +1466 -0
  863. package/dist/providers/observation-context.d.ts +16 -0
  864. package/dist/providers/observation-context.js +1 -0
  865. package/dist/providers/openai-compatible/sse.d.ts +1 -0
  866. package/dist/providers/openai-compatible/sse.js +2 -0
  867. package/dist/providers/patient-fetch.d.ts +36 -0
  868. package/dist/providers/patient-fetch.js +44 -0
  869. package/dist/providers/project-macro-loop-bail.d.ts +7 -0
  870. package/dist/providers/project-macro-loop-bail.js +21 -0
  871. package/dist/providers/prose-document-salvage.d.ts +1 -0
  872. package/dist/providers/prose-document-salvage.js +2 -0
  873. package/dist/providers/provider-disposal.d.ts +1 -0
  874. package/dist/providers/provider-disposal.js +2 -0
  875. package/dist/providers/queue.d.ts +15 -0
  876. package/dist/providers/queue.js +23 -0
  877. package/dist/providers/ramble-abort-message.d.ts +1 -0
  878. package/dist/providers/ramble-abort-message.js +2 -0
  879. package/dist/providers/ramble-detector.d.ts +1 -0
  880. package/dist/providers/ramble-detector.js +2 -0
  881. package/dist/providers/reasoning-depth.d.ts +1 -0
  882. package/dist/providers/reasoning-depth.js +2 -0
  883. package/dist/providers/required-input-reads.d.ts +1 -0
  884. package/dist/providers/required-input-reads.js +2 -0
  885. package/dist/providers/session-defaults.d.ts +13 -0
  886. package/dist/providers/session-defaults.js +49 -0
  887. package/dist/providers/session-hooks.d.ts +26 -0
  888. package/dist/providers/session-hooks.js +1 -0
  889. package/dist/providers/streaming-session.d.ts +1 -0
  890. package/dist/providers/streaming-session.js +2 -0
  891. package/dist/providers/terminal-tool-policy.d.ts +1 -0
  892. package/dist/providers/terminal-tool-policy.js +2 -0
  893. package/dist/providers/tool-arg-schema-coercion.d.ts +1 -0
  894. package/dist/providers/tool-arg-schema-coercion.js +2 -0
  895. package/dist/providers/tool-executor.d.ts +12 -0
  896. package/dist/providers/tool-executor.js +20 -0
  897. package/dist/providers/tool-failure-tracker.d.ts +1 -0
  898. package/dist/providers/tool-failure-tracker.js +2 -0
  899. package/dist/providers/tool-repeat-tracker.d.ts +1 -0
  900. package/dist/providers/tool-repeat-tracker.js +2 -0
  901. package/dist/providers/turn-timeout.d.ts +1 -0
  902. package/dist/providers/turn-timeout.js +1 -0
  903. package/dist/providers/types.d.ts +834 -0
  904. package/dist/providers/types.js +42 -0
  905. package/dist/providers/usage-builder.d.ts +1 -0
  906. package/dist/providers/usage-builder.js +2 -0
  907. package/dist/providers/vision-capability.d.ts +109 -0
  908. package/dist/providers/vision-capability.js +137 -0
  909. package/dist/python/mlx-runtime-status-bus.d.ts +39 -0
  910. package/dist/python/mlx-runtime-status-bus.js +27 -0
  911. package/dist/python/uv-runtime.d.ts +176 -0
  912. package/dist/python/uv-runtime.js +492 -0
  913. package/dist/relevance/install.d.ts +28 -0
  914. package/dist/relevance/install.js +114 -0
  915. package/dist/relevance/manager.d.ts +79 -0
  916. package/dist/relevance/manager.js +211 -0
  917. package/dist/relevance/registry.d.ts +11 -0
  918. package/dist/relevance/registry.js +158 -0
  919. package/dist/relevance/relevance-core.d.ts +67 -0
  920. package/dist/relevance/relevance-core.js +189 -0
  921. package/dist/relevance/relevance-model.d.ts +42 -0
  922. package/dist/relevance/relevance-model.js +292 -0
  923. package/dist/relevance/relevance-worker.d.ts +20 -0
  924. package/dist/relevance/relevance-worker.js +57 -0
  925. package/dist/relevance/settings.d.ts +30 -0
  926. package/dist/relevance/settings.js +81 -0
  927. package/dist/remotes/identity.d.ts +121 -0
  928. package/dist/remotes/identity.js +348 -0
  929. package/dist/remotes/pinned-fetch.d.ts +45 -0
  930. package/dist/remotes/pinned-fetch.js +193 -0
  931. package/dist/remotes/types.d.ts +54 -0
  932. package/dist/remotes/types.js +1 -0
  933. package/dist/runtime-lock.d.ts +29 -0
  934. package/dist/runtime-lock.js +85 -0
  935. package/dist/search/relevance-stage.d.ts +81 -0
  936. package/dist/search/relevance-stage.js +177 -0
  937. package/dist/secrets/types.d.ts +63 -0
  938. package/dist/secrets/types.js +64 -0
  939. package/dist/speech.d.ts +1 -0
  940. package/dist/speech.js +1 -0
  941. package/dist/system/darwin-memory.d.ts +26 -0
  942. package/dist/system/darwin-memory.js +81 -0
  943. package/dist/system/gezel-process-memory.d.ts +55 -0
  944. package/dist/system/gezel-process-memory.js +156 -0
  945. package/dist/system/memory.d.ts +154 -0
  946. package/dist/system/memory.js +501 -0
  947. package/dist/transformers-cache.d.ts +112 -0
  948. package/dist/transformers-cache.js +392 -0
  949. package/dist/utils/disk-space.d.ts +55 -0
  950. package/dist/utils/disk-space.js +72 -0
  951. package/dist/utils/download-common.d.ts +138 -0
  952. package/dist/utils/download-common.js +196 -0
  953. package/dist/utils/download-with-retry.d.ts +85 -0
  954. package/dist/utils/download-with-retry.js +522 -0
  955. package/dist/utils/extract-zip.d.ts +22 -0
  956. package/dist/utils/extract-zip.js +103 -0
  957. package/dist/utils/retire-model-worker.d.ts +15 -0
  958. package/dist/utils/retire-model-worker.js +24 -0
  959. package/dist/utils/service-worker-entry.d.ts +59 -0
  960. package/dist/utils/service-worker-entry.js +69 -0
  961. package/dist/utils/xet-download.d.ts +40 -0
  962. package/dist/utils/xet-download.js +526 -0
  963. package/dist/utils/xet.d.ts +86 -0
  964. package/dist/utils/xet.js +201 -0
  965. package/package.json +103 -3
  966. package/scripts/embedding-packaging.cjs +264 -0
  967. 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;