@atomic-chat/core 0.19.1 → 0.20.6

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 (335) hide show
  1. package/dist/app-daemon.js +5 -0
  2. package/dist/app-daemon.js.map +1 -1
  3. package/dist/audio/args.d.ts +19 -0
  4. package/dist/audio/args.js +39 -0
  5. package/dist/audio/args.js.map +1 -0
  6. package/dist/audio/capabilities.d.ts +24 -0
  7. package/dist/audio/capabilities.js +96 -0
  8. package/dist/audio/capabilities.js.map +1 -0
  9. package/dist/audio/config.d.ts +40 -0
  10. package/dist/audio/config.js +57 -0
  11. package/dist/audio/config.js.map +1 -0
  12. package/dist/audio/errors.d.ts +23 -0
  13. package/dist/audio/errors.js +52 -0
  14. package/dist/audio/errors.js.map +1 -0
  15. package/dist/audio/gallery.d.ts +30 -0
  16. package/dist/audio/gallery.js +152 -0
  17. package/dist/audio/gallery.js.map +1 -0
  18. package/dist/audio/http.d.ts +26 -0
  19. package/dist/audio/http.js +56 -0
  20. package/dist/audio/http.js.map +1 -0
  21. package/dist/audio/idle.d.ts +22 -0
  22. package/dist/audio/idle.js +44 -0
  23. package/dist/audio/idle.js.map +1 -0
  24. package/dist/audio/index.d.ts +26 -0
  25. package/dist/audio/index.js +27 -0
  26. package/dist/audio/index.js.map +1 -0
  27. package/dist/audio/install.d.ts +57 -0
  28. package/dist/audio/install.js +196 -0
  29. package/dist/audio/install.js.map +1 -0
  30. package/dist/audio/jobs.d.ts +77 -0
  31. package/dist/audio/jobs.js +340 -0
  32. package/dist/audio/jobs.js.map +1 -0
  33. package/dist/audio/model-files.d.ts +12 -0
  34. package/dist/audio/model-files.js +42 -0
  35. package/dist/audio/model-files.js.map +1 -0
  36. package/dist/audio/output.d.ts +32 -0
  37. package/dist/audio/output.js +93 -0
  38. package/dist/audio/output.js.map +1 -0
  39. package/dist/audio/parse.d.ts +15 -0
  40. package/dist/audio/parse.js +149 -0
  41. package/dist/audio/parse.js.map +1 -0
  42. package/dist/audio/recipe.d.ts +22 -0
  43. package/dist/audio/recipe.js +92 -0
  44. package/dist/audio/recipe.js.map +1 -0
  45. package/dist/audio/request.d.ts +24 -0
  46. package/dist/audio/request.js +86 -0
  47. package/dist/audio/request.js.map +1 -0
  48. package/dist/audio/server-process.d.ts +51 -0
  49. package/dist/audio/server-process.js +202 -0
  50. package/dist/audio/server-process.js.map +1 -0
  51. package/dist/audio/service.d.ts +107 -0
  52. package/dist/audio/service.js +402 -0
  53. package/dist/audio/service.js.map +1 -0
  54. package/dist/audio/session.d.ts +73 -0
  55. package/dist/audio/session.js +216 -0
  56. package/dist/audio/session.js.map +1 -0
  57. package/dist/audio/state.d.ts +68 -0
  58. package/dist/audio/state.js +88 -0
  59. package/dist/audio/state.js.map +1 -0
  60. package/dist/audio/types.d.ts +52 -0
  61. package/dist/audio/types.js +8 -0
  62. package/dist/audio/types.js.map +1 -0
  63. package/dist/audio/wav.d.ts +22 -0
  64. package/dist/audio/wav.js +56 -0
  65. package/dist/audio/wav.js.map +1 -0
  66. package/dist/audio/wiring.d.ts +31 -0
  67. package/dist/audio/wiring.js +41 -0
  68. package/dist/audio/wiring.js.map +1 -0
  69. package/dist/backend/install/service.js +4 -2
  70. package/dist/backend/install/service.js.map +1 -1
  71. package/dist/cli/launch.js +2 -0
  72. package/dist/cli/launch.js.map +1 -1
  73. package/dist/cli/main.d.ts +1 -1
  74. package/dist/cli/main.js +5 -0
  75. package/dist/cli/main.js.map +1 -1
  76. package/dist/client/control-client.d.ts +21 -1
  77. package/dist/client/control-client.js +50 -0
  78. package/dist/client/control-client.js.map +1 -1
  79. package/dist/client/index.d.ts +1 -0
  80. package/dist/client/index.js +1 -0
  81. package/dist/client/index.js.map +1 -1
  82. package/dist/client/model-catalog.d.ts +40 -0
  83. package/dist/client/model-catalog.js +149 -0
  84. package/dist/client/model-catalog.js.map +1 -0
  85. package/dist/cloud/registry.js +1 -0
  86. package/dist/cloud/registry.js.map +1 -1
  87. package/dist/config/paths.d.ts +22 -1
  88. package/dist/config/paths.js +24 -0
  89. package/dist/config/paths.js.map +1 -1
  90. package/dist/contracts/audio.d.ts +290 -0
  91. package/dist/contracts/audio.js +24 -0
  92. package/dist/contracts/audio.js.map +1 -0
  93. package/dist/contracts/embedding.js +1 -0
  94. package/dist/contracts/embedding.js.map +1 -1
  95. package/dist/contracts/engine-builds.d.ts +10 -4
  96. package/dist/contracts/engine-builds.js +10 -2
  97. package/dist/contracts/engine-builds.js.map +1 -1
  98. package/dist/contracts/engines.d.ts +1 -1
  99. package/dist/contracts/engines.js +4 -0
  100. package/dist/contracts/engines.js.map +1 -1
  101. package/dist/contracts/errors.d.ts +14 -2
  102. package/dist/contracts/errors.js +29 -0
  103. package/dist/contracts/errors.js.map +1 -1
  104. package/dist/contracts/events.d.ts +10 -0
  105. package/dist/contracts/geniex.d.ts +98 -0
  106. package/dist/contracts/geniex.js +15 -0
  107. package/dist/contracts/geniex.js.map +1 -0
  108. package/dist/contracts/index.d.ts +2 -0
  109. package/dist/contracts/index.js +2 -0
  110. package/dist/contracts/index.js.map +1 -1
  111. package/dist/contracts/model-yml.d.ts +40 -0
  112. package/dist/contracts/model-yml.js +7 -0
  113. package/dist/contracts/model-yml.js.map +1 -1
  114. package/dist/contracts/session.d.ts +6 -1
  115. package/dist/contracts/session.js.map +1 -1
  116. package/dist/contracts/settings.d.ts +12 -1
  117. package/dist/contracts/settings.js.map +1 -1
  118. package/dist/core/atomic-core.d.ts +6 -1
  119. package/dist/core/atomic-core.js +7 -1
  120. package/dist/core/atomic-core.js.map +1 -1
  121. package/dist/core/create.js +105 -6
  122. package/dist/core/create.js.map +1 -1
  123. package/dist/core/gpu-residency.d.ts +8 -2
  124. package/dist/core/gpu-residency.js +9 -1
  125. package/dist/core/gpu-residency.js.map +1 -1
  126. package/dist/core/types.d.ts +3 -0
  127. package/dist/core/types.js.map +1 -1
  128. package/dist/diffusion/install.d.ts +6 -3
  129. package/dist/diffusion/install.js +5 -4
  130. package/dist/diffusion/install.js.map +1 -1
  131. package/dist/embedding/index.js +1 -0
  132. package/dist/embedding/index.js.map +1 -1
  133. package/dist/engine-builds/engines.d.ts +31 -8
  134. package/dist/engine-builds/engines.js +118 -14
  135. package/dist/engine-builds/engines.js.map +1 -1
  136. package/dist/engine-builds/geniex.d.ts +35 -0
  137. package/dist/engine-builds/geniex.js +111 -0
  138. package/dist/engine-builds/geniex.js.map +1 -0
  139. package/dist/engine-builds/index.d.ts +3 -2
  140. package/dist/engine-builds/index.js +3 -2
  141. package/dist/engine-builds/index.js.map +1 -1
  142. package/dist/engine-builds/manifest.d.ts +95 -5
  143. package/dist/engine-builds/manifest.js +152 -9
  144. package/dist/engine-builds/manifest.js.map +1 -1
  145. package/dist/engine-builds/order.d.ts +7 -1
  146. package/dist/engine-builds/order.js +13 -0
  147. package/dist/engine-builds/order.js.map +1 -1
  148. package/dist/engine-builds/select.d.ts +43 -11
  149. package/dist/engine-builds/select.js +64 -16
  150. package/dist/engine-builds/select.js.map +1 -1
  151. package/dist/engine-builds/service.d.ts +19 -11
  152. package/dist/engine-builds/service.js +31 -9
  153. package/dist/engine-builds/service.js.map +1 -1
  154. package/dist/engines/service.d.ts +4 -3
  155. package/dist/engines/service.js +5 -3
  156. package/dist/engines/service.js.map +1 -1
  157. package/dist/engines/versions.js +3 -0
  158. package/dist/engines/versions.js.map +1 -1
  159. package/dist/integrations/catalog.d.ts +3 -1
  160. package/dist/integrations/catalog.js +8 -2
  161. package/dist/integrations/catalog.js.map +1 -1
  162. package/dist/integrations/config-io.d.ts +45 -4
  163. package/dist/integrations/config-io.js +91 -6
  164. package/dist/integrations/config-io.js.map +1 -1
  165. package/dist/integrations/configure/codex-repair.d.ts +75 -0
  166. package/dist/integrations/configure/codex-repair.js +254 -0
  167. package/dist/integrations/configure/codex-repair.js.map +1 -0
  168. package/dist/integrations/configure/codex.d.ts +48 -10
  169. package/dist/integrations/configure/codex.js +126 -32
  170. package/dist/integrations/configure/codex.js.map +1 -1
  171. package/dist/integrations/configure/registry.d.ts +4 -1
  172. package/dist/integrations/configure/registry.js +1 -0
  173. package/dist/integrations/configure/registry.js.map +1 -1
  174. package/dist/lock/process-journal.d.ts +3 -3
  175. package/dist/models/compatibility/rules-baseline.js +1 -0
  176. package/dist/models/compatibility/rules-baseline.js.map +1 -1
  177. package/dist/models/compatibility/rules.js +1 -0
  178. package/dist/models/compatibility/rules.js.map +1 -1
  179. package/dist/models/gguf/kv-cache.d.ts +5 -0
  180. package/dist/models/gguf/kv-cache.js +35 -2
  181. package/dist/models/gguf/kv-cache.js.map +1 -1
  182. package/dist/models/gguf/reader.d.ts +5 -0
  183. package/dist/models/gguf/reader.js +15 -3
  184. package/dist/models/gguf/reader.js.map +1 -1
  185. package/dist/models/hf.d.ts +3 -0
  186. package/dist/models/hf.js +11 -4
  187. package/dist/models/hf.js.map +1 -1
  188. package/dist/router/resolve.d.ts +3 -2
  189. package/dist/router/resolve.js +3 -1
  190. package/dist/router/resolve.js.map +1 -1
  191. package/dist/runtime/geniex/accelerators.d.ts +20 -0
  192. package/dist/runtime/geniex/accelerators.js +53 -0
  193. package/dist/runtime/geniex/accelerators.js.map +1 -0
  194. package/dist/runtime/geniex/check.d.ts +34 -0
  195. package/dist/runtime/geniex/check.js +117 -0
  196. package/dist/runtime/geniex/check.js.map +1 -0
  197. package/dist/runtime/geniex/chip.d.ts +29 -0
  198. package/dist/runtime/geniex/chip.js +35 -0
  199. package/dist/runtime/geniex/chip.js.map +1 -0
  200. package/dist/runtime/geniex/devices.d.ts +13 -0
  201. package/dist/runtime/geniex/devices.js +32 -0
  202. package/dist/runtime/geniex/devices.js.map +1 -0
  203. package/dist/runtime/geniex/geniex-host.d.ts +17 -0
  204. package/dist/runtime/geniex/geniex-host.js +26 -0
  205. package/dist/runtime/geniex/geniex-host.js.map +1 -0
  206. package/dist/runtime/geniex/host/args.d.ts +56 -0
  207. package/dist/runtime/geniex/host/args.js +115 -0
  208. package/dist/runtime/geniex/host/args.js.map +1 -0
  209. package/dist/runtime/geniex/host/engine.d.ts +76 -0
  210. package/dist/runtime/geniex/host/engine.js +122 -0
  211. package/dist/runtime/geniex/host/engine.js.map +1 -0
  212. package/dist/runtime/geniex/host/ffi-bun.d.ts +15 -0
  213. package/dist/runtime/geniex/host/ffi-bun.js +415 -0
  214. package/dist/runtime/geniex/host/ffi-bun.js.map +1 -0
  215. package/dist/runtime/geniex/host/grammar.d.ts +11 -0
  216. package/dist/runtime/geniex/host/grammar.js +223 -0
  217. package/dist/runtime/geniex/host/grammar.js.map +1 -0
  218. package/dist/runtime/geniex/host/inspect.d.ts +25 -0
  219. package/dist/runtime/geniex/host/inspect.js +177 -0
  220. package/dist/runtime/geniex/host/inspect.js.map +1 -0
  221. package/dist/runtime/geniex/host/library.d.ts +117 -0
  222. package/dist/runtime/geniex/host/library.js +38 -0
  223. package/dist/runtime/geniex/host/library.js.map +1 -0
  224. package/dist/runtime/geniex/host/openai.d.ts +62 -0
  225. package/dist/runtime/geniex/host/openai.js +458 -0
  226. package/dist/runtime/geniex/host/openai.js.map +1 -0
  227. package/dist/runtime/geniex/host/run.d.ts +48 -0
  228. package/dist/runtime/geniex/host/run.js +208 -0
  229. package/dist/runtime/geniex/host/run.js.map +1 -0
  230. package/dist/runtime/geniex/host/server.d.ts +39 -0
  231. package/dist/runtime/geniex/host/server.js +232 -0
  232. package/dist/runtime/geniex/host/server.js.map +1 -0
  233. package/dist/runtime/geniex/host/worker-protocol.d.ts +76 -0
  234. package/dist/runtime/geniex/host/worker-protocol.js +116 -0
  235. package/dist/runtime/geniex/host/worker-protocol.js.map +1 -0
  236. package/dist/runtime/geniex/host/worker-source.generated.d.ts +1 -0
  237. package/dist/runtime/geniex/host/worker-source.generated.js +4 -0
  238. package/dist/runtime/geniex/host/worker-source.generated.js.map +1 -0
  239. package/dist/runtime/geniex/host/worker.d.ts +7 -0
  240. package/dist/runtime/geniex/host/worker.js +19 -0
  241. package/dist/runtime/geniex/host/worker.js.map +1 -0
  242. package/dist/runtime/geniex/host-process.d.ts +48 -0
  243. package/dist/runtime/geniex/host-process.js +104 -0
  244. package/dist/runtime/geniex/host-process.js.map +1 -0
  245. package/dist/runtime/geniex/index.d.ts +11 -0
  246. package/dist/runtime/geniex/index.js +12 -0
  247. package/dist/runtime/geniex/index.js.map +1 -0
  248. package/dist/runtime/geniex/model-yml.d.ts +8 -0
  249. package/dist/runtime/geniex/model-yml.js +98 -0
  250. package/dist/runtime/geniex/model-yml.js.map +1 -0
  251. package/dist/runtime/geniex/runtime.d.ts +94 -0
  252. package/dist/runtime/geniex/runtime.js +366 -0
  253. package/dist/runtime/geniex/runtime.js.map +1 -0
  254. package/dist/runtime/litert-lm/host/openai.d.ts +4 -37
  255. package/dist/runtime/litert-lm/host/openai.js +11 -96
  256. package/dist/runtime/litert-lm/host/openai.js.map +1 -1
  257. package/dist/runtime/litert-lm/host/pool.d.ts +1 -7
  258. package/dist/runtime/litert-lm/host/pool.js +1 -17
  259. package/dist/runtime/litert-lm/host/pool.js.map +1 -1
  260. package/dist/runtime/litert-lm/host/server.js +11 -53
  261. package/dist/runtime/litert-lm/host/server.js.map +1 -1
  262. package/dist/runtime/llamacpp/args.d.ts +5 -0
  263. package/dist/runtime/llamacpp/args.js +2 -0
  264. package/dist/runtime/llamacpp/args.js.map +1 -1
  265. package/dist/runtime/llamacpp/fit-margin.d.ts +44 -0
  266. package/dist/runtime/llamacpp/fit-margin.js +50 -0
  267. package/dist/runtime/llamacpp/fit-margin.js.map +1 -1
  268. package/dist/runtime/llamacpp/load-plan.d.ts +5 -0
  269. package/dist/runtime/llamacpp/load-plan.js +57 -22
  270. package/dist/runtime/llamacpp/load-plan.js.map +1 -1
  271. package/dist/runtime/llamacpp/runtime.d.ts +2 -1
  272. package/dist/runtime/llamacpp/runtime.js +3 -1
  273. package/dist/runtime/llamacpp/runtime.js.map +1 -1
  274. package/dist/runtime/shared/external-sessions.js +1 -0
  275. package/dist/runtime/shared/external-sessions.js.map +1 -1
  276. package/dist/runtime/shared/fifo-lock.d.ts +10 -0
  277. package/dist/runtime/shared/fifo-lock.js +21 -0
  278. package/dist/runtime/shared/fifo-lock.js.map +1 -0
  279. package/dist/runtime/shared/index.d.ts +2 -0
  280. package/dist/runtime/shared/index.js +2 -0
  281. package/dist/runtime/shared/index.js.map +1 -1
  282. package/dist/runtime/shared/openai-sse.d.ts +112 -0
  283. package/dist/runtime/shared/openai-sse.js +178 -0
  284. package/dist/runtime/shared/openai-sse.js.map +1 -0
  285. package/dist/server/control/index.d.ts +1 -1
  286. package/dist/server/control/router.js +4 -0
  287. package/dist/server/control/router.js.map +1 -1
  288. package/dist/server/control/routes/audio.d.ts +15 -0
  289. package/dist/server/control/routes/audio.js +59 -0
  290. package/dist/server/control/routes/audio.js.map +1 -0
  291. package/dist/server/control/routes/geniex.d.ts +7 -0
  292. package/dist/server/control/routes/geniex.js +22 -0
  293. package/dist/server/control/routes/geniex.js.map +1 -0
  294. package/dist/server/control/types.d.ts +36 -2
  295. package/dist/server/control/types.js.map +1 -1
  296. package/dist/server/http.js +4 -0
  297. package/dist/server/http.js.map +1 -1
  298. package/dist/server/public/audio-speech-params.d.ts +47 -0
  299. package/dist/server/public/audio-speech-params.js +177 -0
  300. package/dist/server/public/audio-speech-params.js.map +1 -0
  301. package/dist/server/public/audio-speech.d.ts +14 -0
  302. package/dist/server/public/audio-speech.js +118 -0
  303. package/dist/server/public/audio-speech.js.map +1 -0
  304. package/dist/server/public/embedding.d.ts +8 -7
  305. package/dist/server/public/embedding.js +15 -7
  306. package/dist/server/public/embedding.js.map +1 -1
  307. package/dist/server/public/forward.js +15 -1
  308. package/dist/server/public/forward.js.map +1 -1
  309. package/dist/server/public/index.d.ts +1 -1
  310. package/dist/server/public/index.js +7 -0
  311. package/dist/server/public/index.js.map +1 -1
  312. package/dist/server/public/listing.js +1 -0
  313. package/dist/server/public/listing.js.map +1 -1
  314. package/dist/server/public/responses.js +9 -0
  315. package/dist/server/public/responses.js.map +1 -1
  316. package/dist/server/public/trace.js +2 -0
  317. package/dist/server/public/trace.js.map +1 -1
  318. package/dist/server/public/types.d.ts +29 -1
  319. package/dist/server/public/validate.d.ts +32 -0
  320. package/dist/server/public/validate.js +146 -0
  321. package/dist/server/public/validate.js.map +1 -0
  322. package/dist/settings/schema/geniex.json +63 -0
  323. package/dist/settings/schema/mlx.json +1 -1
  324. package/dist/settings/schema.js +11 -0
  325. package/dist/settings/schema.js.map +1 -1
  326. package/dist/telemetry/reports.d.ts +12 -0
  327. package/dist/telemetry/reports.js +38 -0
  328. package/dist/telemetry/reports.js.map +1 -1
  329. package/dist/telemetry/subscribe.d.ts +3 -3
  330. package/dist/telemetry/subscribe.js +8 -3
  331. package/dist/telemetry/subscribe.js.map +1 -1
  332. package/dist/telemetry/types.d.ts +1 -1
  333. package/dist/version.d.ts +1 -1
  334. package/dist/version.js +1 -1
  335. package/package.json +11 -2
@@ -1 +1 @@
1
- {"version":3,"file":"rules.js","sourceRoot":"","sources":["../../../src/models/compatibility/rules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rules.js","sourceRoot":"","sources":["../../../src/models/compatibility/rules.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,11 @@
2
2
  * KV-cache size estimate from GGUF metadata. Port of `gguf/utils.rs`
3
3
  * (`kv_cache_bits_per_element`, `estimate_kv_cache_internal`). Error strings are the Rust
4
4
  * `Display` texts, which the app receives verbatim.
5
+ *
6
+ * Beyond the port: a per-layer `head_count_kv` array (`[0, 0, 8, …]`, which `reader.ts` inlines at
7
+ * any length) counts only the layers with KV heads, each with its own count, as llama.cpp allocates
8
+ * them — a hybrid model's recurrent layers hold no KV cache. The Rust estimate cannot read the array
9
+ * and counts every block with `head_count` heads (15 times LFM2.5-2.6B's real 16 KiB per token).
5
10
  */
6
11
  export interface KvCacheEstimate {
7
12
  size: number;
@@ -2,6 +2,11 @@
2
2
  * KV-cache size estimate from GGUF metadata. Port of `gguf/utils.rs`
3
3
  * (`kv_cache_bits_per_element`, `estimate_kv_cache_internal`). Error strings are the Rust
4
4
  * `Display` texts, which the app receives verbatim.
5
+ *
6
+ * Beyond the port: a per-layer `head_count_kv` array (`[0, 0, 8, …]`, which `reader.ts` inlines at
7
+ * any length) counts only the layers with KV heads, each with its own count, as llama.cpp allocates
8
+ * them — a hybrid model's recurrent layers hold no KV cache. The Rust estimate cannot read the array
9
+ * and counts every block with `head_count` heads (15 times LFM2.5-2.6B's real 16 KiB per token).
5
10
  */
6
11
  import { parseRustU64 } from '../../util/index.js';
7
12
  export class KvCacheError extends Error {
@@ -53,6 +58,26 @@ const u64 = (meta, key) => {
53
58
  const raw = meta[key];
54
59
  return raw === undefined ? undefined : parseRustU64(raw);
55
60
  };
61
+ /**
62
+ * The KV heads of each layer from an inline integer array, or `undefined` for anything else: a
63
+ * scalar, the reader's placeholder, a malformed list, or one in which no layer has a KV head.
64
+ */
65
+ function perLayerKvHeads(raw) {
66
+ const text = raw?.trim();
67
+ if (!text || !text.startsWith('[') || !text.endsWith(']'))
68
+ return undefined;
69
+ const inner = text.slice(1, -1).trim();
70
+ if (inner === '')
71
+ return undefined;
72
+ const heads = [];
73
+ for (const part of inner.split(',')) {
74
+ const n = parseRustU64(part.trim());
75
+ if (n === undefined)
76
+ return undefined;
77
+ heads.push(n);
78
+ }
79
+ return heads.some((n) => n > 0) ? heads : undefined;
80
+ }
56
81
  export function estimateKvCache(meta, ctxSize, cacheTypeK, cacheTypeV) {
57
82
  const arch = meta['general.architecture'];
58
83
  if (arch === undefined)
@@ -61,10 +86,17 @@ export function estimateKvCache(meta, ctxSize, cacheTypeK, cacheTypeV) {
61
86
  if (nLayer === undefined || nLayer <= 0)
62
87
  throw new KvCacheError(KV_CACHE_ERRORS.blockCountInvalid);
63
88
  const headCount = u64(meta, `${arch}.attention.head_count`);
89
+ const layerKvHeads = perLayerKvHeads(meta[`${arch}.attention.head_count_kv`]);
64
90
  const headCountKv = u64(meta, `${arch}.attention.head_count_kv`);
65
- const nHead = headCountKv !== undefined && headCountKv > 0 ? headCountKv : (headCount ?? 0);
91
+ const nHead = layerKvHeads
92
+ ? Math.max(...layerKvHeads)
93
+ : headCountKv !== undefined && headCountKv > 0
94
+ ? headCountKv
95
+ : (headCount ?? 0);
66
96
  if (nHead === 0)
67
97
  throw new KvCacheError(KV_CACHE_ERRORS.headCountInvalid);
98
+ /** KV heads summed over the layers: `block_count × heads` for a scalar, the array's sum per layer. */
99
+ const kvHeadsAcrossLayers = layerKvHeads ? layerKvHeads.reduce((a, b) => a + b, 0) : nLayer * nHead;
68
100
  let keyLen = u64(meta, `${arch}.attention.key_length`) ?? 0;
69
101
  let valLen = u64(meta, `${arch}.attention.value_length`) ?? 0;
70
102
  if (keyLen === 0 || valLen === 0) {
@@ -84,7 +116,8 @@ export function estimateKvCache(meta, ctxSize, cacheTypeK, cacheTypeV) {
84
116
  const ctxLen = ctxSize === undefined ? maxCtx : Math.min(ctxSize, maxCtx);
85
117
  const slidingWindowRaw = u64(meta, `${arch}.attention.sliding_window`);
86
118
  const slidingWindow = slidingWindowRaw !== undefined && slidingWindowRaw > 0 ? slidingWindowRaw : undefined;
87
- const bitsPerToken = nLayer * nHead * (keyLen * kvCacheBitsPerElement(cacheTypeK) + valLen * kvCacheBitsPerElement(cacheTypeV));
119
+ const bitsPerToken = kvHeadsAcrossLayers *
120
+ (keyLen * kvCacheBitsPerElement(cacheTypeK) + valLen * kvCacheBitsPerElement(cacheTypeV));
88
121
  const kvPerToken = Math.ceil(bitsPerToken / 8);
89
122
  const fullCost = ctxLen * kvPerToken;
90
123
  const size = slidingWindow === undefined ? fullCost : Math.floor((fullCost + slidingWindow * kvPerToken) / 2);
@@ -1 +1 @@
1
- {"version":3,"file":"kv-cache.js","sourceRoot":"","sources":["../../../src/models/gguf/kv-cache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kv-cache.js","sourceRoot":"","sources":["../../../src/models/gguf/kv-cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAOlD,MAAM,OAAO,YAAa,SAAQ,KAAK;IACrC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,cAAc,CAAA;IAC5B,CAAC;CACF;AAED,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,oBAAoB,EAAE,0CAA0C;IAChE,iBAAiB,EAAE,oDAAoD;IACvE,gBAAgB,EAAE,mDAAmD;IACrE,sBAAsB,EAAE,yDAAyD;IACjF,oBAAoB,EAAE,uDAAuD;CACrE,CAAA;AAEV;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,SAAoC;IACxE,QAAQ,SAAS,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;QACxC,KAAK,KAAK;YACR,OAAO,EAAE,CAAA;QACX,KAAK,KAAK,CAAC;QACX,KAAK,MAAM;YACT,OAAO,EAAE,CAAA;QACX,KAAK,MAAM;YACT,OAAO,GAAG,CAAA;QACZ,KAAK,MAAM;YACT,OAAO,CAAC,CAAA;QACV,KAAK,MAAM;YACT,OAAO,GAAG,CAAA;QACZ,KAAK,MAAM;YACT,OAAO,CAAC,CAAA;QACV,KAAK,MAAM,CAAC;QACZ,KAAK,QAAQ;YACX,OAAO,GAAG,CAAA;QACZ,KAAK,QAAQ;YACX,OAAO,CAAC,CAAA;QACV,KAAK,QAAQ;YACX,OAAO,CAAC,CAAA;QACV,KAAK,QAAQ;YACX,OAAO,CAAC,CAAA;QACV;YACE,OAAO,EAAE,CAAA;IACb,CAAC;AACH,CAAC;AAED,MAAM,GAAG,GAAG,CAAC,IAA4B,EAAE,GAAW,EAAsB,EAAE;IAC5E,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAA;IACrB,OAAO,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;AAC1D,CAAC,CAAA;AAED;;;GAGG;AACH,SAAS,eAAe,CAAC,GAAuB;IAC9C,MAAM,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,CAAA;IACxB,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAA;IAC3E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IACtC,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO,SAAS,CAAA;IAClC,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACpC,MAAM,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QACnC,IAAI,CAAC,KAAK,SAAS;YAAE,OAAO,SAAS,CAAA;QACrC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACf,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;AACrD,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,IAA4B,EAC5B,OAA2B,EAC3B,UAA0B,EAC1B,UAA0B;IAE1B,MAAM,IAAI,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAA;IACzC,IAAI,IAAI,KAAK,SAAS;QAAE,MAAM,IAAI,YAAY,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAA;IAEpF,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,GAAG,IAAI,cAAc,CAAC,CAAA;IAC/C,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,IAAI,CAAC;QAAE,MAAM,IAAI,YAAY,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAA;IAElG,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,EAAE,GAAG,IAAI,uBAAuB,CAAC,CAAA;IAC3D,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,CAAC,GAAG,IAAI,0BAA0B,CAAC,CAAC,CAAA;IAC7E,MAAM,WAAW,GAAG,GAAG,CAAC,IAAI,EAAE,GAAG,IAAI,0BAA0B,CAAC,CAAA;IAChE,MAAM,KAAK,GAAG,YAAY;QACxB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC;QAC3B,CAAC,CAAC,WAAW,KAAK,SAAS,IAAI,WAAW,GAAG,CAAC;YAC5C,CAAC,CAAC,WAAW;YACb,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAA;IACtB,IAAI,KAAK,KAAK,CAAC;QAAE,MAAM,IAAI,YAAY,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAA;IACzE,sGAAsG;IACtG,MAAM,mBAAmB,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,KAAK,CAAA;IAEnG,IAAI,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,GAAG,IAAI,uBAAuB,CAAC,IAAI,CAAC,CAAA;IAC3D,IAAI,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,GAAG,IAAI,yBAAyB,CAAC,IAAI,CAAC,CAAA;IAC7D,IAAI,MAAM,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAA;QACzD,IAAI,MAAM,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,UAAU,GAAG,SAAS,IAAI,KAAK,CAAA;YACrC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC,CAAA;YAC/C,MAAM,GAAG,OAAO,CAAA;YAChB,MAAM,GAAG,OAAO,CAAA;QAClB,CAAC;IACH,CAAC;IACD,IAAI,MAAM,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,YAAY,CAAC,eAAe,CAAC,sBAAsB,CAAC,CAAA;IAEhG,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,GAAG,IAAI,iBAAiB,CAAC,CAAA;IAClD,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,IAAI,CAAC;QAAE,MAAM,IAAI,YAAY,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAA;IACrG,MAAM,MAAM,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAEzE,MAAM,gBAAgB,GAAG,GAAG,CAAC,IAAI,EAAE,GAAG,IAAI,2BAA2B,CAAC,CAAA;IACtE,MAAM,aAAa,GAAG,gBAAgB,KAAK,SAAS,IAAI,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAA;IAE3G,MAAM,YAAY,GAChB,mBAAmB;QACnB,CAAC,MAAM,GAAG,qBAAqB,CAAC,UAAU,CAAC,GAAG,MAAM,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAA;IAC3F,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAA;IAC9C,MAAM,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAA;IACpC,MAAM,IAAI,GACR,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,aAAa,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAA;IAClG,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,CAAA;AAC7C,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,iBAAiB,CAAC,IAA4B;IAC5D,MAAM,IAAI,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAA;IACzC,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IACxC,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,GAAG,IAAI,iBAAiB,CAAC,CAAA;IAC7C,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AACjD,CAAC"}
@@ -4,6 +4,9 @@
4
4
  * Reads magic, version, tensor count and the metadata KV block only — never the tensor table.
5
5
  * Every value is stringified the way the Rust reader does (`to_string()`, `[a, b]` for arrays of
6
6
  * up to 24 elements, a placeholder for longer ones), so downstream code sees identical strings.
7
+ * One deliberate exception: an integer `<arch>.attention.head_count_kv` is inlined at any length up
8
+ * to `MAX_PER_LAYER_ARRAY_LEN`, because a hybrid model names its attention layers there, one entry
9
+ * per block, and the KV-cache estimate needs every entry (LFM2.5-2.6B has 30 blocks, 8 of them attend).
7
10
  *
8
11
  * Pure over a byte buffer; callers feed it a file prefix and grow it while it asks for more.
9
12
  */
@@ -16,6 +19,8 @@ export declare const GGUF_VALUE_TYPE_NAMES: readonly ["Uint8", "Int8", "Uint16",
16
19
  export declare const MAX_GGUF_STRING_BYTES: number;
17
20
  export declare const MAX_GGUF_ARRAY_LEN = 1000000;
18
21
  export declare const INLINE_ARRAY_MAX_LEN = 24;
22
+ /** The longest per-layer array inlined past `INLINE_ARRAY_MAX_LEN`: more blocks than any model has. */
23
+ export declare const MAX_PER_LAYER_ARRAY_LEN = 4096;
19
24
  /** The buffer ended before the header did; feed more bytes and retry. */
20
25
  export declare class GgufNeedMoreData extends Error {
21
26
  constructor();
@@ -4,6 +4,9 @@
4
4
  * Reads magic, version, tensor count and the metadata KV block only — never the tensor table.
5
5
  * Every value is stringified the way the Rust reader does (`to_string()`, `[a, b]` for arrays of
6
6
  * up to 24 elements, a placeholder for longer ones), so downstream code sees identical strings.
7
+ * One deliberate exception: an integer `<arch>.attention.head_count_kv` is inlined at any length up
8
+ * to `MAX_PER_LAYER_ARRAY_LEN`, because a hybrid model names its attention layers there, one entry
9
+ * per block, and the KV-cache estimate needs every entry (LFM2.5-2.6B has 30 blocks, 8 of them attend).
7
10
  *
8
11
  * Pure over a byte buffer; callers feed it a file prefix and grow it while it asks for more.
9
12
  */
@@ -26,6 +29,14 @@ export const GGUF_VALUE_TYPE_NAMES = [
26
29
  export const MAX_GGUF_STRING_BYTES = 1024 * 1024;
27
30
  export const MAX_GGUF_ARRAY_LEN = 1_000_000;
28
31
  export const INLINE_ARRAY_MAX_LEN = 24;
32
+ /** The longest per-layer array inlined past `INLINE_ARRAY_MAX_LEN`: more blocks than any model has. */
33
+ export const MAX_PER_LAYER_ARRAY_LEN = 4096;
34
+ /** Integer GGUF value types (`u8` … `i32`, `u64`, `i64`). */
35
+ const INTEGER_TYPES = new Set([0, 1, 2, 3, 4, 5, 10, 11]);
36
+ /** Keys whose integer arrays are one entry per block and are inlined at any length. */
37
+ function isPerLayerKey(key) {
38
+ return /^[^.]+\.attention\.head_count_kv$/.test(key);
39
+ }
29
40
  /** The buffer ended before the header did; feed more bytes and retry. */
30
41
  export class GgufNeedMoreData extends Error {
31
42
  constructor() {
@@ -137,7 +148,7 @@ function valueType(n) {
137
148
  throw new GgufParseError(`Unknown GGUF value type: ${n}`);
138
149
  return n;
139
150
  }
140
- function readValue(c, type) {
151
+ function readValue(c, type, perLayer = false) {
141
152
  switch (type) {
142
153
  case 0:
143
154
  return String(c.u8());
@@ -169,7 +180,8 @@ function readValue(c, type) {
169
180
  if (len > BigInt(MAX_GGUF_ARRAY_LEN))
170
181
  throw new GgufParseError(`Array length ${len} is unreasonably large`);
171
182
  const n = Number(len);
172
- if (n > INLINE_ARRAY_MAX_LEN) {
183
+ const inlineAll = perLayer && INTEGER_TYPES.has(elemType) && n <= MAX_PER_LAYER_ARRAY_LEN;
184
+ if (n > INLINE_ARRAY_MAX_LEN && !inlineAll) {
173
185
  skipArray(c, elemType, n);
174
186
  return `<Array of type ${GGUF_VALUE_TYPE_NAMES[elemType]} with ${n} elements, data skipped>`;
175
187
  }
@@ -234,7 +246,7 @@ export function readGgufMetadata(bytes) {
234
246
  try {
235
247
  const key = readString(c);
236
248
  const type = valueType(c.u32());
237
- metadata[key] = readValue(c, type);
249
+ metadata[key] = readValue(c, type, isPerLayerKey(key));
238
250
  }
239
251
  catch (e) {
240
252
  if (e instanceof GgufNeedMoreData)
@@ -1 +1 @@
1
- {"version":3,"file":"reader.js","sourceRoot":"","sources":["../../../src/models/gguf/reader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reader.js","sourceRoot":"","sources":["../../../src/models/gguf/reader.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,8 @@ export interface HfFileInfo {
7
7
  filename: string;
8
8
  size: number;
9
9
  sha256?: string;
10
+ /** Actual immutable repository commit; populated by fetchHfGgufFiles. */
11
+ revision?: string;
10
12
  downloadUrl: string;
11
13
  }
12
14
  /** Exactly `owner/repo`, with the same conservative character set as the legacy Rust CLI. */
@@ -17,6 +19,7 @@ export declare function hfToken(env?: NodeJS.ProcessEnv): string | undefined;
17
19
  export declare function fetchHfGgufFiles(repoId: string, options?: {
18
20
  fetch?: typeof fetch;
19
21
  token?: string;
22
+ revision?: string;
20
23
  }): Promise<HfFileInfo[]>;
21
24
  /** Prefer the Rust CLI's default quantization, then the largest known file. */
22
25
  export declare function chooseDefaultHfFile(files: HfFileInfo[]): HfFileInfo;
package/dist/models/hf.js CHANGED
@@ -24,7 +24,7 @@ export async function fetchHfGgufFiles(repoId, options = {}) {
24
24
  }
25
25
  const fetchImpl = options.fetch ?? fetch;
26
26
  const headers = options.token ? { authorization: `Bearer ${options.token}` } : undefined;
27
- const url = `https://huggingface.co/api/models/${repoId}?blobs=true&files_metadata=true`;
27
+ const url = `https://huggingface.co/api/models/${repoId}/revision/${encodeURIComponent(options.revision ?? 'main')}?blobs=true&files_metadata=true`;
28
28
  const response = await fetchImpl(url, { ...(headers ? { headers } : {}) });
29
29
  if (!response.ok) {
30
30
  const details = response.status === 401 || response.status === 403
@@ -38,8 +38,14 @@ export async function fetchHfGgufFiles(repoId, options = {}) {
38
38
  if (!Array.isArray(body.siblings)) {
39
39
  throw new AtomicCoreError('IO_ERROR', 'Unexpected Hugging Face model metadata response.');
40
40
  }
41
+ if (typeof body.sha !== 'string' || !/^[0-9a-f]{40}$/.test(body.sha)) {
42
+ throw new AtomicCoreError('IO_ERROR', 'Hugging Face did not provide an immutable repository commit.');
43
+ }
44
+ if (options.revision && /^[0-9a-f]{40}$/.test(options.revision) && body.sha !== options.revision) {
45
+ throw new AtomicCoreError('IO_ERROR', 'Hugging Face returned another repository commit.');
46
+ }
41
47
  const files = body.siblings
42
- .map(parseSibling(repoId))
48
+ .map(parseSibling(repoId, body.sha))
43
49
  .filter((file) => file !== undefined)
44
50
  .sort((a, b) => a.size - b.size || a.filename.localeCompare(b.filename));
45
51
  if (files.length === 0) {
@@ -58,7 +64,7 @@ export function chooseDefaultHfFile(files) {
58
64
  throw new AtomicCoreError('MODEL_NOT_FOUND', 'No GGUF file is available to download.');
59
65
  return chosen;
60
66
  }
61
- function parseSibling(repoId) {
67
+ function parseSibling(repoId, revision) {
62
68
  return (value) => {
63
69
  if (!value || typeof value !== 'object')
64
70
  return undefined;
@@ -80,7 +86,8 @@ function parseSibling(repoId) {
80
86
  filename,
81
87
  size,
82
88
  ...(sha256 ? { sha256 } : {}),
83
- downloadUrl: `https://huggingface.co/${repoId}/resolve/main/${encoded}`,
89
+ revision,
90
+ downloadUrl: `https://huggingface.co/${repoId}/resolve/${revision}/${encoded}`,
84
91
  };
85
92
  };
86
93
  }
@@ -1 +1 @@
1
- {"version":3,"file":"hf.js","sourceRoot":"","sources":["../../src/models/hf.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hf.js","sourceRoot":"","sources":["../../src/models/hf.ts"],"names":[],"mappings":"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"}
@@ -21,7 +21,7 @@ export interface RemoteProvider {
21
21
  /** The image and video models enabled for this provider; never part of chat routing. */
22
22
  media?: CloudProviderMedia;
23
23
  }
24
- export type LocalProvider = 'llamacpp' | 'llamacpp-upstream' | 'mlx' | 'tensorrt-llm' | 'atomic-prism' | 'vllm' | 'sglang' | 'foundry-local' | 'litert-lm';
24
+ export type LocalProvider = 'llamacpp' | 'llamacpp-upstream' | 'mlx' | 'tensorrt-llm' | 'atomic-prism' | 'vllm' | 'sglang' | 'foundry-local' | 'litert-lm' | 'geniex';
25
25
  /**
26
26
  * The order local providers are searched in when a request names only a model. The same model id
27
27
  * loaded under two engines resolves to the first; changing the order would silently move traffic.
@@ -29,7 +29,8 @@ export type LocalProvider = 'llamacpp' | 'llamacpp-upstream' | 'mlx' | 'tensorrt
29
29
  * exactly that reason: adding a provider moves nothing that already resolved (`vllm` after
30
30
  * `atomic-prism`, which core 0.10.0 already shipped; change `add-vllm-runtime`, D11; `sglang` after
31
31
  * `vllm`, change `add-sglang-runtime`, D8; `foundry-local` after `sglang`, change `add-foundry-local`, D5;
32
- * `litert-lm` after `foundry-local`, change `add-litert-lm-runtime`, task 6.1). A Prism-only file never loads
32
+ * `litert-lm` after `foundry-local`, change `add-litert-lm-runtime`, task 6.1; `geniex` after `litert-lm`,
33
+ * change `add-geniex-runtime`, task 6.1). A Prism-only file never loads
33
34
  * under another engine (the compatibility gate), so its sessions are found here even near the end of
34
35
  * the list; one store model is never loaded in two managed providers at once, so their order never
35
36
  * decides between two live sessions of one id.
@@ -12,7 +12,8 @@
12
12
  * exactly that reason: adding a provider moves nothing that already resolved (`vllm` after
13
13
  * `atomic-prism`, which core 0.10.0 already shipped; change `add-vllm-runtime`, D11; `sglang` after
14
14
  * `vllm`, change `add-sglang-runtime`, D8; `foundry-local` after `sglang`, change `add-foundry-local`, D5;
15
- * `litert-lm` after `foundry-local`, change `add-litert-lm-runtime`, task 6.1). A Prism-only file never loads
15
+ * `litert-lm` after `foundry-local`, change `add-litert-lm-runtime`, task 6.1; `geniex` after `litert-lm`,
16
+ * change `add-geniex-runtime`, task 6.1). A Prism-only file never loads
16
17
  * under another engine (the compatibility gate), so its sessions are found here even near the end of
17
18
  * the list; one store model is never loaded in two managed providers at once, so their order never
18
19
  * decides between two live sessions of one id.
@@ -27,6 +28,7 @@ export const LOCAL_SEARCH_ORDER = [
27
28
  'sglang',
28
29
  'foundry-local',
29
30
  'litert-lm',
31
+ 'geniex',
30
32
  ];
31
33
  /**
32
34
  * The remote provider that owns `modelId`, if any. For an id the app selected no provider for
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/router/resolve.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/router/resolve.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * GenieX's devices as accelerators (openspec change `add-geniex-runtime`, task 6.4, design D3): what
3
+ * the active build's library found at its install — the Hexagon NPU (`HTP0`) and the Adreno GPU
4
+ * (`GPUOpenCL`) — in LiteRT-LM's shape, so the clients reuse their UI. Everything a device needs
5
+ * ships inside the SDK build, so each is `prepared` the moment it is listed and `prepare` has
6
+ * nothing to download; it answers so without an event.
7
+ */
8
+ import type { GeniexAccelerators, GeniexChip, GeniexPrepareRequest, GeniexPrepareResult } from '../../contracts/index.js';
9
+ import type { GeniexBuild } from './runtime.js';
10
+ export interface GeniexAcceleratorDeps {
11
+ resolveBuild: () => Promise<GeniexBuild | undefined>;
12
+ chip: GeniexChip;
13
+ }
14
+ export declare class GeniexAcceleratorService {
15
+ private readonly deps;
16
+ constructor(deps: GeniexAcceleratorDeps);
17
+ list(): Promise<GeniexAccelerators>;
18
+ /** Every name answers at once: prepared when the library found it, with why it is not otherwise. */
19
+ prepare(request: GeniexPrepareRequest): Promise<GeniexPrepareResult>;
20
+ }
@@ -0,0 +1,53 @@
1
+ /**
2
+ * GenieX's devices as accelerators (openspec change `add-geniex-runtime`, task 6.4, design D3): what
3
+ * the active build's library found at its install — the Hexagon NPU (`HTP0`) and the Adreno GPU
4
+ * (`GPUOpenCL`) — in LiteRT-LM's shape, so the clients reuse their UI. Everything a device needs
5
+ * ships inside the SDK build, so each is `prepared` the moment it is listed and `prepare` has
6
+ * nothing to download; it answers so without an event.
7
+ */
8
+ import { acceleratorsFound } from './devices.js';
9
+ const NOTHING_TO_PREPARE = "Nothing to prepare: GenieX's NPU and GPU libraries are part of the installed build.";
10
+ export class GeniexAcceleratorService {
11
+ deps;
12
+ constructor(deps) {
13
+ this.deps = deps;
14
+ }
15
+ async list() {
16
+ const build = await this.deps.resolveBuild();
17
+ if (!build)
18
+ return { installed: false, build: null, chip: this.deps.chip, accelerators: [], error: null };
19
+ return {
20
+ installed: true,
21
+ build: `${build.version}/${build.dir.split(/[\\/]/).at(-1) ?? ''}`,
22
+ chip: this.deps.chip,
23
+ accelerators: acceleratorsFound(build.devices).map((device) => ({
24
+ name: device,
25
+ device,
26
+ version: build.version,
27
+ size_bytes: 0,
28
+ prepared: true,
29
+ })),
30
+ error: null,
31
+ };
32
+ }
33
+ /** Every name answers at once: prepared when the library found it, with why it is not otherwise. */
34
+ async prepare(request) {
35
+ const listed = await this.list();
36
+ const offered = new Set(listed.accelerators.map((accelerator) => accelerator.name));
37
+ const wanted = request.accelerators && request.accelerators.length > 0 ? request.accelerators : [...offered];
38
+ return {
39
+ accelerators: wanted.map((name) => offered.has(name)
40
+ ? { name, prepared: true, reason: NOTHING_TO_PREPARE }
41
+ : {
42
+ name,
43
+ prepared: false,
44
+ reason: !listed.installed
45
+ ? 'GenieX is not installed on this computer.'
46
+ : name === 'npu' || name === 'gpu'
47
+ ? `GenieX found no ${name.toUpperCase()} on this computer.`
48
+ : `GenieX has no ${name} accelerator.`,
49
+ }),
50
+ };
51
+ }
52
+ }
53
+ //# sourceMappingURL=accelerators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accelerators.js","sourceRoot":"","sources":["../../../src/runtime/geniex/accelerators.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAQH,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAQhD,MAAM,kBAAkB,GACtB,qFAAqF,CAAA;AAEvF,MAAM,OAAO,wBAAwB;IACN;IAA7B,YAA6B,IAA2B;QAA3B,SAAI,GAAJ,IAAI,CAAuB;IAAG,CAAC;IAE5D,KAAK,CAAC,IAAI;QACR,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAA;QAC5C,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;QACzG,OAAO;YACL,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE;YAClE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;YACpB,YAAY,EAAE,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBAC9D,IAAI,EAAE,MAAM;gBACZ,MAAM;gBACN,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,UAAU,EAAE,CAAC;gBACb,QAAQ,EAAE,IAAI;aACf,CAAC,CAAC;YACH,KAAK,EAAE,IAAI;SACZ,CAAA;IACH,CAAC;IAED,oGAAoG;IACpG,KAAK,CAAC,OAAO,CAAC,OAA6B;QACzC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;QAChC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAA;QACnF,MAAM,MAAM,GACV,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAA;QAC/F,OAAO;YACL,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAChC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;gBACf,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,kBAAkB,EAAE;gBACtD,CAAC,CAAC;oBACE,IAAI;oBACJ,QAAQ,EAAE,KAAK;oBACf,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS;wBACvB,CAAC,CAAC,2CAA2C;wBAC7C,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK;4BAChC,CAAC,CAAC,mBAAmB,IAAI,CAAC,WAAW,EAAE,oBAAoB;4BAC3D,CAAC,CAAC,iBAAiB,IAAI,eAAe;iBAC3C,CACN;SACF,CAAA;IACH,CAAC;CACF"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * `POST /models/geniex/check` (openspec change `add-geniex-runtime`, task 6.5): whether a variant
3
+ * would run here. Before a download, from what core already knows — this machine's chip, the
4
+ * active build and the devices its probe found — never the network. For a model on disk, also from
5
+ * the model itself (`geniex-host inspect`, no library needed), whose facts come back in the answer
6
+ * for the client to write into `model.yml`.
7
+ */
8
+ import type { GeniexCheckRequest, GeniexCheckResult, GeniexChip, GeniexModelMetadata } from '../../contracts/index.js';
9
+ import type { ModelRegistry } from '../../models/index.js';
10
+ import type { GeniexBuild } from './runtime.js';
11
+ export interface GeniexCheckFacts {
12
+ chip: GeniexChip;
13
+ build: GeniexBuild | null;
14
+ }
15
+ /** The verdict for a variant (`plugin`, `device`, `chip`, `min_runtime_version`), and for a model its facts. */
16
+ export declare function geniexVerdict(facts: GeniexCheckFacts, request: Pick<GeniexCheckRequest, 'plugin' | 'device' | 'chip' | 'min_runtime_version'>, model: GeniexModelMetadata | null): GeniexCheckResult;
17
+ /** The request body, strictly: a variant, a path with its plugin and device, or a model id. */
18
+ export declare function parseGeniexCheckRequest(body: unknown): GeniexCheckRequest;
19
+ export interface GeniexCheckDeps {
20
+ chip: GeniexChip;
21
+ /** `<data>/geniex/models`: the only place a checked path may be. */
22
+ modelsDir: string;
23
+ registry: ModelRegistry;
24
+ resolveBuild: () => Promise<GeniexBuild | undefined>;
25
+ /** The runtime's cached `inspect` (by path and mtime); needs no build. */
26
+ inspect: (path: string) => Promise<GeniexModelMetadata>;
27
+ }
28
+ export declare class GeniexCheckService {
29
+ private readonly deps;
30
+ constructor(deps: GeniexCheckDeps);
31
+ /** A path inside the models root, links resolved, or `INVALID_ARGUMENT`. */
32
+ private inRoot;
33
+ check(request: GeniexCheckRequest): Promise<GeniexCheckResult>;
34
+ }