@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.
- package/dist/app-daemon.js +5 -0
- package/dist/app-daemon.js.map +1 -1
- package/dist/audio/args.d.ts +19 -0
- package/dist/audio/args.js +39 -0
- package/dist/audio/args.js.map +1 -0
- package/dist/audio/capabilities.d.ts +24 -0
- package/dist/audio/capabilities.js +96 -0
- package/dist/audio/capabilities.js.map +1 -0
- package/dist/audio/config.d.ts +40 -0
- package/dist/audio/config.js +57 -0
- package/dist/audio/config.js.map +1 -0
- package/dist/audio/errors.d.ts +23 -0
- package/dist/audio/errors.js +52 -0
- package/dist/audio/errors.js.map +1 -0
- package/dist/audio/gallery.d.ts +30 -0
- package/dist/audio/gallery.js +152 -0
- package/dist/audio/gallery.js.map +1 -0
- package/dist/audio/http.d.ts +26 -0
- package/dist/audio/http.js +56 -0
- package/dist/audio/http.js.map +1 -0
- package/dist/audio/idle.d.ts +22 -0
- package/dist/audio/idle.js +44 -0
- package/dist/audio/idle.js.map +1 -0
- package/dist/audio/index.d.ts +26 -0
- package/dist/audio/index.js +27 -0
- package/dist/audio/index.js.map +1 -0
- package/dist/audio/install.d.ts +57 -0
- package/dist/audio/install.js +196 -0
- package/dist/audio/install.js.map +1 -0
- package/dist/audio/jobs.d.ts +77 -0
- package/dist/audio/jobs.js +340 -0
- package/dist/audio/jobs.js.map +1 -0
- package/dist/audio/model-files.d.ts +12 -0
- package/dist/audio/model-files.js +42 -0
- package/dist/audio/model-files.js.map +1 -0
- package/dist/audio/output.d.ts +32 -0
- package/dist/audio/output.js +93 -0
- package/dist/audio/output.js.map +1 -0
- package/dist/audio/parse.d.ts +15 -0
- package/dist/audio/parse.js +149 -0
- package/dist/audio/parse.js.map +1 -0
- package/dist/audio/recipe.d.ts +22 -0
- package/dist/audio/recipe.js +92 -0
- package/dist/audio/recipe.js.map +1 -0
- package/dist/audio/request.d.ts +24 -0
- package/dist/audio/request.js +86 -0
- package/dist/audio/request.js.map +1 -0
- package/dist/audio/server-process.d.ts +51 -0
- package/dist/audio/server-process.js +202 -0
- package/dist/audio/server-process.js.map +1 -0
- package/dist/audio/service.d.ts +107 -0
- package/dist/audio/service.js +402 -0
- package/dist/audio/service.js.map +1 -0
- package/dist/audio/session.d.ts +73 -0
- package/dist/audio/session.js +216 -0
- package/dist/audio/session.js.map +1 -0
- package/dist/audio/state.d.ts +68 -0
- package/dist/audio/state.js +88 -0
- package/dist/audio/state.js.map +1 -0
- package/dist/audio/types.d.ts +52 -0
- package/dist/audio/types.js +8 -0
- package/dist/audio/types.js.map +1 -0
- package/dist/audio/wav.d.ts +22 -0
- package/dist/audio/wav.js +56 -0
- package/dist/audio/wav.js.map +1 -0
- package/dist/audio/wiring.d.ts +31 -0
- package/dist/audio/wiring.js +41 -0
- package/dist/audio/wiring.js.map +1 -0
- package/dist/backend/install/service.js +4 -2
- package/dist/backend/install/service.js.map +1 -1
- package/dist/cli/launch.js +2 -0
- package/dist/cli/launch.js.map +1 -1
- package/dist/cli/main.d.ts +1 -1
- package/dist/cli/main.js +5 -0
- package/dist/cli/main.js.map +1 -1
- package/dist/client/control-client.d.ts +21 -1
- package/dist/client/control-client.js +50 -0
- package/dist/client/control-client.js.map +1 -1
- package/dist/client/index.d.ts +1 -0
- package/dist/client/index.js +1 -0
- package/dist/client/index.js.map +1 -1
- package/dist/client/model-catalog.d.ts +40 -0
- package/dist/client/model-catalog.js +149 -0
- package/dist/client/model-catalog.js.map +1 -0
- package/dist/cloud/registry.js +1 -0
- package/dist/cloud/registry.js.map +1 -1
- package/dist/config/paths.d.ts +22 -1
- package/dist/config/paths.js +24 -0
- package/dist/config/paths.js.map +1 -1
- package/dist/contracts/audio.d.ts +290 -0
- package/dist/contracts/audio.js +24 -0
- package/dist/contracts/audio.js.map +1 -0
- package/dist/contracts/embedding.js +1 -0
- package/dist/contracts/embedding.js.map +1 -1
- package/dist/contracts/engine-builds.d.ts +10 -4
- package/dist/contracts/engine-builds.js +10 -2
- package/dist/contracts/engine-builds.js.map +1 -1
- package/dist/contracts/engines.d.ts +1 -1
- package/dist/contracts/engines.js +4 -0
- package/dist/contracts/engines.js.map +1 -1
- package/dist/contracts/errors.d.ts +14 -2
- package/dist/contracts/errors.js +29 -0
- package/dist/contracts/errors.js.map +1 -1
- package/dist/contracts/events.d.ts +10 -0
- package/dist/contracts/geniex.d.ts +98 -0
- package/dist/contracts/geniex.js +15 -0
- package/dist/contracts/geniex.js.map +1 -0
- package/dist/contracts/index.d.ts +2 -0
- package/dist/contracts/index.js +2 -0
- package/dist/contracts/index.js.map +1 -1
- package/dist/contracts/model-yml.d.ts +40 -0
- package/dist/contracts/model-yml.js +7 -0
- package/dist/contracts/model-yml.js.map +1 -1
- package/dist/contracts/session.d.ts +6 -1
- package/dist/contracts/session.js.map +1 -1
- package/dist/contracts/settings.d.ts +12 -1
- package/dist/contracts/settings.js.map +1 -1
- package/dist/core/atomic-core.d.ts +6 -1
- package/dist/core/atomic-core.js +7 -1
- package/dist/core/atomic-core.js.map +1 -1
- package/dist/core/create.js +105 -6
- package/dist/core/create.js.map +1 -1
- package/dist/core/gpu-residency.d.ts +8 -2
- package/dist/core/gpu-residency.js +9 -1
- package/dist/core/gpu-residency.js.map +1 -1
- package/dist/core/types.d.ts +3 -0
- package/dist/core/types.js.map +1 -1
- package/dist/diffusion/install.d.ts +6 -3
- package/dist/diffusion/install.js +5 -4
- package/dist/diffusion/install.js.map +1 -1
- package/dist/embedding/index.js +1 -0
- package/dist/embedding/index.js.map +1 -1
- package/dist/engine-builds/engines.d.ts +31 -8
- package/dist/engine-builds/engines.js +118 -14
- package/dist/engine-builds/engines.js.map +1 -1
- package/dist/engine-builds/geniex.d.ts +35 -0
- package/dist/engine-builds/geniex.js +111 -0
- package/dist/engine-builds/geniex.js.map +1 -0
- package/dist/engine-builds/index.d.ts +3 -2
- package/dist/engine-builds/index.js +3 -2
- package/dist/engine-builds/index.js.map +1 -1
- package/dist/engine-builds/manifest.d.ts +95 -5
- package/dist/engine-builds/manifest.js +152 -9
- package/dist/engine-builds/manifest.js.map +1 -1
- package/dist/engine-builds/order.d.ts +7 -1
- package/dist/engine-builds/order.js +13 -0
- package/dist/engine-builds/order.js.map +1 -1
- package/dist/engine-builds/select.d.ts +43 -11
- package/dist/engine-builds/select.js +64 -16
- package/dist/engine-builds/select.js.map +1 -1
- package/dist/engine-builds/service.d.ts +19 -11
- package/dist/engine-builds/service.js +31 -9
- package/dist/engine-builds/service.js.map +1 -1
- package/dist/engines/service.d.ts +4 -3
- package/dist/engines/service.js +5 -3
- package/dist/engines/service.js.map +1 -1
- package/dist/engines/versions.js +3 -0
- package/dist/engines/versions.js.map +1 -1
- package/dist/integrations/catalog.d.ts +3 -1
- package/dist/integrations/catalog.js +8 -2
- package/dist/integrations/catalog.js.map +1 -1
- package/dist/integrations/config-io.d.ts +45 -4
- package/dist/integrations/config-io.js +91 -6
- package/dist/integrations/config-io.js.map +1 -1
- package/dist/integrations/configure/codex-repair.d.ts +75 -0
- package/dist/integrations/configure/codex-repair.js +254 -0
- package/dist/integrations/configure/codex-repair.js.map +1 -0
- package/dist/integrations/configure/codex.d.ts +48 -10
- package/dist/integrations/configure/codex.js +126 -32
- package/dist/integrations/configure/codex.js.map +1 -1
- package/dist/integrations/configure/registry.d.ts +4 -1
- package/dist/integrations/configure/registry.js +1 -0
- package/dist/integrations/configure/registry.js.map +1 -1
- package/dist/lock/process-journal.d.ts +3 -3
- package/dist/models/compatibility/rules-baseline.js +1 -0
- package/dist/models/compatibility/rules-baseline.js.map +1 -1
- package/dist/models/compatibility/rules.js +1 -0
- package/dist/models/compatibility/rules.js.map +1 -1
- package/dist/models/gguf/kv-cache.d.ts +5 -0
- package/dist/models/gguf/kv-cache.js +35 -2
- package/dist/models/gguf/kv-cache.js.map +1 -1
- package/dist/models/gguf/reader.d.ts +5 -0
- package/dist/models/gguf/reader.js +15 -3
- package/dist/models/gguf/reader.js.map +1 -1
- package/dist/models/hf.d.ts +3 -0
- package/dist/models/hf.js +11 -4
- package/dist/models/hf.js.map +1 -1
- package/dist/router/resolve.d.ts +3 -2
- package/dist/router/resolve.js +3 -1
- package/dist/router/resolve.js.map +1 -1
- package/dist/runtime/geniex/accelerators.d.ts +20 -0
- package/dist/runtime/geniex/accelerators.js +53 -0
- package/dist/runtime/geniex/accelerators.js.map +1 -0
- package/dist/runtime/geniex/check.d.ts +34 -0
- package/dist/runtime/geniex/check.js +117 -0
- package/dist/runtime/geniex/check.js.map +1 -0
- package/dist/runtime/geniex/chip.d.ts +29 -0
- package/dist/runtime/geniex/chip.js +35 -0
- package/dist/runtime/geniex/chip.js.map +1 -0
- package/dist/runtime/geniex/devices.d.ts +13 -0
- package/dist/runtime/geniex/devices.js +32 -0
- package/dist/runtime/geniex/devices.js.map +1 -0
- package/dist/runtime/geniex/geniex-host.d.ts +17 -0
- package/dist/runtime/geniex/geniex-host.js +26 -0
- package/dist/runtime/geniex/geniex-host.js.map +1 -0
- package/dist/runtime/geniex/host/args.d.ts +56 -0
- package/dist/runtime/geniex/host/args.js +115 -0
- package/dist/runtime/geniex/host/args.js.map +1 -0
- package/dist/runtime/geniex/host/engine.d.ts +76 -0
- package/dist/runtime/geniex/host/engine.js +122 -0
- package/dist/runtime/geniex/host/engine.js.map +1 -0
- package/dist/runtime/geniex/host/ffi-bun.d.ts +15 -0
- package/dist/runtime/geniex/host/ffi-bun.js +415 -0
- package/dist/runtime/geniex/host/ffi-bun.js.map +1 -0
- package/dist/runtime/geniex/host/grammar.d.ts +11 -0
- package/dist/runtime/geniex/host/grammar.js +223 -0
- package/dist/runtime/geniex/host/grammar.js.map +1 -0
- package/dist/runtime/geniex/host/inspect.d.ts +25 -0
- package/dist/runtime/geniex/host/inspect.js +177 -0
- package/dist/runtime/geniex/host/inspect.js.map +1 -0
- package/dist/runtime/geniex/host/library.d.ts +117 -0
- package/dist/runtime/geniex/host/library.js +38 -0
- package/dist/runtime/geniex/host/library.js.map +1 -0
- package/dist/runtime/geniex/host/openai.d.ts +62 -0
- package/dist/runtime/geniex/host/openai.js +458 -0
- package/dist/runtime/geniex/host/openai.js.map +1 -0
- package/dist/runtime/geniex/host/run.d.ts +48 -0
- package/dist/runtime/geniex/host/run.js +208 -0
- package/dist/runtime/geniex/host/run.js.map +1 -0
- package/dist/runtime/geniex/host/server.d.ts +39 -0
- package/dist/runtime/geniex/host/server.js +232 -0
- package/dist/runtime/geniex/host/server.js.map +1 -0
- package/dist/runtime/geniex/host/worker-protocol.d.ts +76 -0
- package/dist/runtime/geniex/host/worker-protocol.js +116 -0
- package/dist/runtime/geniex/host/worker-protocol.js.map +1 -0
- package/dist/runtime/geniex/host/worker-source.generated.d.ts +1 -0
- package/dist/runtime/geniex/host/worker-source.generated.js +4 -0
- package/dist/runtime/geniex/host/worker-source.generated.js.map +1 -0
- package/dist/runtime/geniex/host/worker.d.ts +7 -0
- package/dist/runtime/geniex/host/worker.js +19 -0
- package/dist/runtime/geniex/host/worker.js.map +1 -0
- package/dist/runtime/geniex/host-process.d.ts +48 -0
- package/dist/runtime/geniex/host-process.js +104 -0
- package/dist/runtime/geniex/host-process.js.map +1 -0
- package/dist/runtime/geniex/index.d.ts +11 -0
- package/dist/runtime/geniex/index.js +12 -0
- package/dist/runtime/geniex/index.js.map +1 -0
- package/dist/runtime/geniex/model-yml.d.ts +8 -0
- package/dist/runtime/geniex/model-yml.js +98 -0
- package/dist/runtime/geniex/model-yml.js.map +1 -0
- package/dist/runtime/geniex/runtime.d.ts +94 -0
- package/dist/runtime/geniex/runtime.js +366 -0
- package/dist/runtime/geniex/runtime.js.map +1 -0
- package/dist/runtime/litert-lm/host/openai.d.ts +4 -37
- package/dist/runtime/litert-lm/host/openai.js +11 -96
- package/dist/runtime/litert-lm/host/openai.js.map +1 -1
- package/dist/runtime/litert-lm/host/pool.d.ts +1 -7
- package/dist/runtime/litert-lm/host/pool.js +1 -17
- package/dist/runtime/litert-lm/host/pool.js.map +1 -1
- package/dist/runtime/litert-lm/host/server.js +11 -53
- package/dist/runtime/litert-lm/host/server.js.map +1 -1
- package/dist/runtime/llamacpp/args.d.ts +5 -0
- package/dist/runtime/llamacpp/args.js +2 -0
- package/dist/runtime/llamacpp/args.js.map +1 -1
- package/dist/runtime/llamacpp/fit-margin.d.ts +44 -0
- package/dist/runtime/llamacpp/fit-margin.js +50 -0
- package/dist/runtime/llamacpp/fit-margin.js.map +1 -1
- package/dist/runtime/llamacpp/load-plan.d.ts +5 -0
- package/dist/runtime/llamacpp/load-plan.js +57 -22
- package/dist/runtime/llamacpp/load-plan.js.map +1 -1
- package/dist/runtime/llamacpp/runtime.d.ts +2 -1
- package/dist/runtime/llamacpp/runtime.js +3 -1
- package/dist/runtime/llamacpp/runtime.js.map +1 -1
- package/dist/runtime/shared/external-sessions.js +1 -0
- package/dist/runtime/shared/external-sessions.js.map +1 -1
- package/dist/runtime/shared/fifo-lock.d.ts +10 -0
- package/dist/runtime/shared/fifo-lock.js +21 -0
- package/dist/runtime/shared/fifo-lock.js.map +1 -0
- package/dist/runtime/shared/index.d.ts +2 -0
- package/dist/runtime/shared/index.js +2 -0
- package/dist/runtime/shared/index.js.map +1 -1
- package/dist/runtime/shared/openai-sse.d.ts +112 -0
- package/dist/runtime/shared/openai-sse.js +178 -0
- package/dist/runtime/shared/openai-sse.js.map +1 -0
- package/dist/server/control/index.d.ts +1 -1
- package/dist/server/control/router.js +4 -0
- package/dist/server/control/router.js.map +1 -1
- package/dist/server/control/routes/audio.d.ts +15 -0
- package/dist/server/control/routes/audio.js +59 -0
- package/dist/server/control/routes/audio.js.map +1 -0
- package/dist/server/control/routes/geniex.d.ts +7 -0
- package/dist/server/control/routes/geniex.js +22 -0
- package/dist/server/control/routes/geniex.js.map +1 -0
- package/dist/server/control/types.d.ts +36 -2
- package/dist/server/control/types.js.map +1 -1
- package/dist/server/http.js +4 -0
- package/dist/server/http.js.map +1 -1
- package/dist/server/public/audio-speech-params.d.ts +47 -0
- package/dist/server/public/audio-speech-params.js +177 -0
- package/dist/server/public/audio-speech-params.js.map +1 -0
- package/dist/server/public/audio-speech.d.ts +14 -0
- package/dist/server/public/audio-speech.js +118 -0
- package/dist/server/public/audio-speech.js.map +1 -0
- package/dist/server/public/embedding.d.ts +8 -7
- package/dist/server/public/embedding.js +15 -7
- package/dist/server/public/embedding.js.map +1 -1
- package/dist/server/public/forward.js +15 -1
- package/dist/server/public/forward.js.map +1 -1
- package/dist/server/public/index.d.ts +1 -1
- package/dist/server/public/index.js +7 -0
- package/dist/server/public/index.js.map +1 -1
- package/dist/server/public/listing.js +1 -0
- package/dist/server/public/listing.js.map +1 -1
- package/dist/server/public/responses.js +9 -0
- package/dist/server/public/responses.js.map +1 -1
- package/dist/server/public/trace.js +2 -0
- package/dist/server/public/trace.js.map +1 -1
- package/dist/server/public/types.d.ts +29 -1
- package/dist/server/public/validate.d.ts +32 -0
- package/dist/server/public/validate.js +146 -0
- package/dist/server/public/validate.js.map +1 -0
- package/dist/settings/schema/geniex.json +63 -0
- package/dist/settings/schema/mlx.json +1 -1
- package/dist/settings/schema.js +11 -0
- package/dist/settings/schema.js.map +1 -1
- package/dist/telemetry/reports.d.ts +12 -0
- package/dist/telemetry/reports.js +38 -0
- package/dist/telemetry/reports.js.map +1 -1
- package/dist/telemetry/subscribe.d.ts +3 -3
- package/dist/telemetry/subscribe.js +8 -3
- package/dist/telemetry/subscribe.js.map +1 -1
- package/dist/telemetry/types.d.ts +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- 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 =
|
|
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 =
|
|
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":"AAAA
|
|
1
|
+
{"version":3,"file":"kv-cache.js","sourceRoot":"","sources":["../../../src/models/gguf/kv-cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -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
|
-
|
|
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":"AAAA
|
|
1
|
+
{"version":3,"file":"reader.js","sourceRoot":"","sources":["../../../src/models/gguf/reader.ts"],"names":[],"mappings":"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"}
|
package/dist/models/hf.d.ts
CHANGED
|
@@ -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
|
-
|
|
89
|
+
revision,
|
|
90
|
+
downloadUrl: `https://huggingface.co/${repoId}/resolve/${revision}/${encoded}`,
|
|
84
91
|
};
|
|
85
92
|
};
|
|
86
93
|
}
|
package/dist/models/hf.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hf.js","sourceRoot":"","sources":["../../src/models/hf.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"hf.js","sourceRoot":"","sources":["../../src/models/hf.ts"],"names":[],"mappings":"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"}
|
package/dist/router/resolve.d.ts
CHANGED
|
@@ -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
|
|
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.
|
package/dist/router/resolve.js
CHANGED
|
@@ -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
|
|
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":"AAAA;;;;;;GAMG;
|
|
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
|
+
}
|