@atomic-chat/core 0.20.7 → 0.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/launch.d.ts +23 -3
- package/dist/cli/launch.js +59 -8
- package/dist/cli/launch.js.map +1 -1
- package/dist/cli/main.d.ts +1 -1
- package/dist/contracts/events.d.ts +8 -0
- package/dist/contracts/settings.d.ts +5 -0
- package/dist/contracts/settings.js.map +1 -1
- package/dist/core/atomic-core.d.ts +3 -1
- package/dist/core/atomic-core.js +4 -1
- package/dist/core/atomic-core.js.map +1 -1
- package/dist/core/create.js +4 -1
- package/dist/core/create.js.map +1 -1
- package/dist/core/sessions.js +1 -0
- package/dist/core/sessions.js.map +1 -1
- package/dist/integrations/catalog.d.ts +25 -8
- package/dist/integrations/catalog.js +105 -38
- package/dist/integrations/catalog.js.map +1 -1
- package/dist/integrations/configure/atomic-agent.d.ts +9 -1
- package/dist/integrations/configure/atomic-agent.js +42 -3
- package/dist/integrations/configure/atomic-agent.js.map +1 -1
- package/dist/integrations/configure/backup.d.ts +21 -0
- package/dist/integrations/configure/backup.js +52 -0
- package/dist/integrations/configure/backup.js.map +1 -0
- package/dist/integrations/configure/claude-code.d.ts +11 -4
- package/dist/integrations/configure/claude-code.js +73 -24
- package/dist/integrations/configure/claude-code.js.map +1 -1
- package/dist/integrations/configure/cline.d.ts +14 -4
- package/dist/integrations/configure/cline.js +78 -6
- package/dist/integrations/configure/cline.js.map +1 -1
- package/dist/integrations/configure/codex.d.ts +5 -3
- package/dist/integrations/configure/codex.js +12 -5
- package/dist/integrations/configure/codex.js.map +1 -1
- package/dist/integrations/configure/copilot.d.ts +28 -5
- package/dist/integrations/configure/copilot.js +124 -8
- package/dist/integrations/configure/copilot.js.map +1 -1
- package/dist/integrations/configure/droid.d.ts +13 -7
- package/dist/integrations/configure/droid.js +48 -17
- package/dist/integrations/configure/droid.js.map +1 -1
- package/dist/integrations/configure/dsh.d.ts +36 -20
- package/dist/integrations/configure/dsh.js +250 -48
- package/dist/integrations/configure/dsh.js.map +1 -1
- package/dist/integrations/configure/goose.d.ts +21 -7
- package/dist/integrations/configure/goose.js +141 -10
- package/dist/integrations/configure/goose.js.map +1 -1
- package/dist/integrations/configure/hermes.d.ts +63 -10
- package/dist/integrations/configure/hermes.js +360 -75
- package/dist/integrations/configure/hermes.js.map +1 -1
- package/dist/integrations/configure/json-backup.d.ts +73 -0
- package/dist/integrations/configure/json-backup.js +292 -0
- package/dist/integrations/configure/json-backup.js.map +1 -0
- package/dist/integrations/configure/json-key-backup.d.ts +43 -0
- package/dist/integrations/configure/json-key-backup.js +113 -0
- package/dist/integrations/configure/json-key-backup.js.map +1 -0
- package/dist/integrations/configure/kilo.d.ts +4 -4
- package/dist/integrations/configure/kilo.js +6 -9
- package/dist/integrations/configure/kilo.js.map +1 -1
- package/dist/integrations/configure/legacy-env-block.d.ts +18 -0
- package/dist/integrations/configure/legacy-env-block.js +47 -0
- package/dist/integrations/configure/legacy-env-block.js.map +1 -0
- package/dist/integrations/configure/mimo.d.ts +3 -2
- package/dist/integrations/configure/mimo.js +8 -9
- package/dist/integrations/configure/mimo.js.map +1 -1
- package/dist/integrations/configure/muse.d.ts +3 -3
- package/dist/integrations/configure/muse.js +5 -6
- package/dist/integrations/configure/muse.js.map +1 -1
- package/dist/integrations/configure/openclaude.d.ts +22 -7
- package/dist/integrations/configure/openclaude.js +132 -39
- package/dist/integrations/configure/openclaude.js.map +1 -1
- package/dist/integrations/configure/openclaw.d.ts +19 -5
- package/dist/integrations/configure/openclaw.js +79 -23
- package/dist/integrations/configure/openclaw.js.map +1 -1
- package/dist/integrations/configure/opencode-style.d.ts +53 -11
- package/dist/integrations/configure/opencode-style.js +218 -23
- package/dist/integrations/configure/opencode-style.js.map +1 -1
- package/dist/integrations/configure/opencode.d.ts +5 -4
- package/dist/integrations/configure/opencode.js +8 -10
- package/dist/integrations/configure/opencode.js.map +1 -1
- package/dist/integrations/configure/openhands.d.ts +5 -4
- package/dist/integrations/configure/openhands.js +7 -7
- package/dist/integrations/configure/openhands.js.map +1 -1
- package/dist/integrations/configure/pi.d.ts +6 -5
- package/dist/integrations/configure/pi.js +79 -30
- package/dist/integrations/configure/pi.js.map +1 -1
- package/dist/integrations/configure/poolside.d.ts +5 -4
- package/dist/integrations/configure/poolside.js +7 -7
- package/dist/integrations/configure/poolside.js.map +1 -1
- package/dist/integrations/configure/registry.d.ts +6 -0
- package/dist/integrations/configure/registry.js +1 -0
- package/dist/integrations/configure/registry.js.map +1 -1
- package/dist/integrations/configure/zcode.d.ts +6 -7
- package/dist/integrations/configure/zcode.js +26 -11
- package/dist/integrations/configure/zcode.js.map +1 -1
- package/dist/integrations/configure/zed.d.ts +16 -4
- package/dist/integrations/configure/zed.js +61 -13
- package/dist/integrations/configure/zed.js.map +1 -1
- package/dist/models/gguf/kv-cache.d.ts +20 -1
- package/dist/models/gguf/kv-cache.js +97 -7
- package/dist/models/gguf/kv-cache.js.map +1 -1
- package/dist/models/gguf/reader.d.ts +5 -3
- package/dist/models/gguf/reader.js +10 -6
- package/dist/models/gguf/reader.js.map +1 -1
- package/dist/runtime/llamacpp/args.d.ts +14 -0
- package/dist/runtime/llamacpp/args.js +48 -4
- package/dist/runtime/llamacpp/args.js.map +1 -1
- package/dist/runtime/llamacpp/ctx-ladder.d.ts +6 -3
- package/dist/runtime/llamacpp/ctx-ladder.js +6 -3
- package/dist/runtime/llamacpp/ctx-ladder.js.map +1 -1
- package/dist/runtime/llamacpp/fit-margin.d.ts +24 -0
- package/dist/runtime/llamacpp/fit-margin.js +31 -0
- package/dist/runtime/llamacpp/fit-margin.js.map +1 -1
- package/dist/runtime/llamacpp/generation-limits.d.ts +45 -0
- package/dist/runtime/llamacpp/generation-limits.js +61 -0
- package/dist/runtime/llamacpp/generation-limits.js.map +1 -0
- package/dist/runtime/llamacpp/load-plan.d.ts +14 -2
- package/dist/runtime/llamacpp/load-plan.js +64 -13
- package/dist/runtime/llamacpp/load-plan.js.map +1 -1
- package/dist/runtime/llamacpp/runtime.d.ts +1 -0
- package/dist/runtime/llamacpp/runtime.js +2 -0
- package/dist/runtime/llamacpp/runtime.js.map +1 -1
- package/dist/runtime/managed-engines/runtime.js +13 -2
- package/dist/runtime/managed-engines/runtime.js.map +1 -1
- package/dist/runtime/managed-engines/spec.d.ts +6 -0
- package/dist/runtime/managed-engines/spec.js.map +1 -1
- package/dist/runtime/managed-models/auto-limits.d.ts +47 -0
- package/dist/runtime/managed-models/auto-limits.js +60 -0
- package/dist/runtime/managed-models/auto-limits.js.map +1 -0
- package/dist/runtime/managed-models/index.d.ts +1 -0
- package/dist/runtime/managed-models/index.js +1 -0
- package/dist/runtime/managed-models/index.js.map +1 -1
- package/dist/runtime/mlx/config.d.ts +9 -5
- package/dist/runtime/mlx/config.js +12 -6
- package/dist/runtime/mlx/config.js.map +1 -1
- package/dist/runtime/mlx/model-files.d.ts +9 -0
- package/dist/runtime/mlx/model-files.js +26 -0
- package/dist/runtime/mlx/model-files.js.map +1 -1
- package/dist/runtime/mlx/runtime.d.ts +7 -0
- package/dist/runtime/mlx/runtime.js +24 -2
- package/dist/runtime/mlx/runtime.js.map +1 -1
- package/dist/runtime/sglang/adapter.d.ts +4 -0
- package/dist/runtime/sglang/adapter.js +9 -6
- package/dist/runtime/sglang/adapter.js.map +1 -1
- package/dist/runtime/sglang/engine.js +2 -1
- package/dist/runtime/sglang/engine.js.map +1 -1
- package/dist/runtime/sglang/memory.d.ts +11 -1
- package/dist/runtime/sglang/memory.js +34 -3
- package/dist/runtime/sglang/memory.js.map +1 -1
- package/dist/runtime/sglang/settings.d.ts +2 -1
- package/dist/runtime/sglang/settings.js +11 -7
- package/dist/runtime/sglang/settings.js.map +1 -1
- package/dist/runtime/vllm/adapter.d.ts +4 -0
- package/dist/runtime/vllm/adapter.js +9 -6
- package/dist/runtime/vllm/adapter.js.map +1 -1
- package/dist/runtime/vllm/engine.js +1 -0
- package/dist/runtime/vllm/engine.js.map +1 -1
- package/dist/runtime/vllm/memory.d.ts +12 -1
- package/dist/runtime/vllm/memory.js +44 -2
- package/dist/runtime/vllm/memory.js.map +1 -1
- package/dist/runtime/vllm/settings.d.ts +2 -1
- package/dist/runtime/vllm/settings.js +12 -7
- package/dist/runtime/vllm/settings.js.map +1 -1
- package/dist/server/public/context-window.d.ts +29 -0
- package/dist/server/public/context-window.js +77 -0
- package/dist/server/public/context-window.js.map +1 -0
- package/dist/server/public/decision-preview.js +1 -0
- package/dist/server/public/decision-preview.js.map +1 -1
- package/dist/server/public/errors.d.ts +15 -4
- package/dist/server/public/errors.js +53 -7
- package/dist/server/public/errors.js.map +1 -1
- package/dist/server/public/forward.js +65 -5
- package/dist/server/public/forward.js.map +1 -1
- package/dist/server/public/index.d.ts +1 -0
- package/dist/server/public/index.js +1 -0
- package/dist/server/public/index.js.map +1 -1
- package/dist/server/public/listing.d.ts +9 -2
- package/dist/server/public/listing.js +30 -9
- package/dist/server/public/listing.js.map +1 -1
- package/dist/server/public/responses.js +9 -5
- package/dist/server/public/responses.js.map +1 -1
- package/dist/server/public/system-messages.d.ts +39 -0
- package/dist/server/public/system-messages.js +166 -0
- package/dist/server/public/system-messages.js.map +1 -0
- package/dist/server/public/telemetry.d.ts +9 -0
- package/dist/server/public/telemetry.js +42 -6
- package/dist/server/public/telemetry.js.map +1 -1
- package/dist/server/public/thinking.d.ts +26 -0
- package/dist/server/public/thinking.js +62 -0
- package/dist/server/public/thinking.js.map +1 -0
- package/dist/server/public/trace.d.ts +8 -0
- package/dist/server/public/trace.js +17 -0
- package/dist/server/public/trace.js.map +1 -1
- package/dist/server/public/types.d.ts +8 -0
- package/dist/server/shims/index.d.ts +1 -0
- package/dist/server/shims/index.js +1 -0
- package/dist/server/shims/index.js.map +1 -1
- package/dist/server/shims/reminders.d.ts +8 -0
- package/dist/server/shims/reminders.js +14 -0
- package/dist/server/shims/reminders.js.map +1 -0
- package/dist/server/shims/responses.d.ts +33 -9
- package/dist/server/shims/responses.js +160 -36
- package/dist/server/shims/responses.js.map +1 -1
- package/dist/settings/default-migrations.d.ts +34 -0
- package/dist/settings/default-migrations.js +47 -0
- package/dist/settings/default-migrations.js.map +1 -0
- package/dist/settings/schema/atomic-prism.json +23 -9
- package/dist/settings/schema/llamacpp-upstream.json +23 -9
- package/dist/settings/schema/llamacpp.json +23 -9
- package/dist/settings/schema/sglang.json +8 -8
- package/dist/settings/schema/vllm.json +8 -8
- package/dist/settings/schema.js +1 -0
- package/dist/settings/schema.js.map +1 -1
- package/dist/settings/store.d.ts +6 -0
- package/dist/settings/store.js +18 -1
- package/dist/settings/store.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zed.js","sourceRoot":"","sources":["../../../src/integrations/configure/zed.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"zed.js","sourceRoot":"","sources":["../../../src/integrations/configure/zed.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAE1D,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE7C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAE9C,0FAA0F;AAC1F,MAAM,eAAe,GAAG,aAAa,CAAA;AACrC,iGAAiG;AACjG,MAAM,oBAAoB,GAAG,MAAM,CAAA;AACnC,MAAM,qBAAqB,GAAG,KAAK,CAAA;AACnC,iGAAiG;AACjG,MAAM,CAAC,MAAM,qBAAqB,GAAG,qBAAqB,CAAA;AAE1D;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,GAAsB,EAAE,QAAyB,EAAE,EAAY;IAC1F,MAAM,GAAG,GAAG,CAAC,IAAY,EAAE,EAAE;QAC3B,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,CAAA;QACvB,OAAO,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;IACzD,CAAC,CAAA;IACD,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,CAAA;QAC9B,OAAO,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAA;IACxE,CAAC;IACD,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAG,GAAG,CAAC,iBAAiB,CAAC,CAAA;QAClC,IAAI,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,GAAG,GAAG,MAAM,CAAA;IAC/C,CAAC;IACD,OAAO,aAAa,CAAA;AACtB,CAAC;AAED,wEAAwE;AACxE,SAAS,WAAW,CAAC,aAAiC;IACpD,MAAM,OAAO,GAAG,aAAa,IAAI,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,oBAAoB,CAAA;IACzF,OAAO;QACL,SAAS,EAAE,OAAO;QAClB,eAAe,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,qBAAqB,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;KACvF,CAAA;AACH,CAAC;AAED,MAAM,cAAc,GAAG,CAAC,KAA4B,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,eAAe,CAAA;AAE9G,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,KAAqB;IACtD,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAA;IACnC,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;IACvD,MAAM,IAAI,GAAG,GAAG,GAAG,gBAAgB,CAAA;IACnC,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAEpB,6FAA6F;IAC7F,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAChC,MAAM,MAAM,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;IAClF,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,CAAA;IACjC,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,eAAe,CAAC,UAAU,EAAE,oCAAoC,CAAC,CAAA;IAEtF,MAAM,cAAc,GAAG,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,EAAE,CAAA;IAClE,IAAI,CAAC,iBAAiB,CAAC,GAAG,cAAc,CAAA;IACxC,MAAM,UAAU,GAAG,YAAY,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC,IAAI,EAAE,CAAA;IAC1E,cAAc,CAAC,mBAAmB,CAAC,GAAG,UAAU,CAAA;IAEhD,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;IACvE,MAAM,eAAe,GACnB,KAAK,KAAK,EAAE;QACV,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC;YACE;gBACE,IAAI,EAAE,KAAK;gBACX,YAAY,EAAE,KAAK;gBACnB,UAAU,EAAE,SAAS;gBACrB,iBAAiB,EAAE,eAAe;gBAClC,YAAY,EAAE;oBACZ,KAAK,EAAE,IAAI;oBACX,8EAA8E;oBAC9E,MAAM,EAAE,KAAK;oBACb,mBAAmB,EAAE,KAAK;oBAC1B,gBAAgB,EAAE,KAAK;iBACxB;aACF;SACF,CAAA;IACP,UAAU,CAAC,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,eAAe,EAAE,CAAA;IAEpF,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;QACjB,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAA;QAC/C,IAAI,CAAC,OAAO,CAAC,GAAG,KAAK,CAAA;QACrB,MAAM,QAAQ,GAAG,KAAK,CAAC,eAAe,CAAC,CAAA;QACvC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9B,MAAM,OAAO,GAAG,GAAG,IAAI,0BAA0B,CAAA;YACjD,IAAI,QAAQ,KAAK,SAAS;gBAAE,MAAM,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;;gBAC/C,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE,CAAC,qBAAqB,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAA;QACpF,CAAC;QACD,KAAK,CAAC,eAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,eAAe,EAAE,KAAK,EAAE,CAAA;IAC/D,CAAC;IAED,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,CAAA;AAC3C,CAAC;AAED,cAAc,CAAC,KAAK,EAAE,YAAY,CAAC,CAAA"}
|
|
@@ -7,6 +7,13 @@
|
|
|
7
7
|
* any length) counts only the layers with KV heads, each with its own count, as llama.cpp allocates
|
|
8
8
|
* them — a hybrid model's recurrent layers hold no KV cache. The Rust estimate cannot read the array
|
|
9
9
|
* and counts every block with `head_count` heads (15 times LFM2.5-2.6B's real 16 KiB per token).
|
|
10
|
+
*
|
|
11
|
+
* Sliding-window models are counted layer by layer too, as llama.cpp b12019 allocates them
|
|
12
|
+
* (`src/llama-kv-cache-iswa.cpp:73`): a global layer holds the whole window, a sliding layer only
|
|
13
|
+
* `min(window, pad256(n_swa × sequences + n_ubatch))` cells. The Rust estimate averaged the two over
|
|
14
|
+
* every layer, `(full + window) / 2`, which for Gemma 3 (five sliding layers to one global,
|
|
15
|
+
* `src/models/gemma3.cpp:7`) counted two and a half times its real cache at 32K and narrowed small Macs
|
|
16
|
+
* far more than they needed.
|
|
10
17
|
*/
|
|
11
18
|
export interface KvCacheEstimate {
|
|
12
19
|
size: number;
|
|
@@ -27,6 +34,18 @@ export declare const KV_CACHE_ERRORS: {
|
|
|
27
34
|
* 32 elements (hence the half bits); unknown or absent reads as fp16.
|
|
28
35
|
*/
|
|
29
36
|
export declare function kvCacheBitsPerElement(cacheType: string | undefined | null): number;
|
|
30
|
-
|
|
37
|
+
/** How the cache is shared: llama.cpp sizes a sliding layer per sequence and per micro-batch. */
|
|
38
|
+
export interface KvCacheLayout {
|
|
39
|
+
/**
|
|
40
|
+
* Sequences sharing one unified cache (`--parallel` under `-kvu`): a sliding layer keeps a window
|
|
41
|
+
* for each of them (`n_swa × n_seq_max`, `src/llama-kv-cache-iswa.cpp:73`). Default 1.
|
|
42
|
+
*/
|
|
43
|
+
nSeq?: number;
|
|
44
|
+
/** `--ubatch-size`: a sliding layer also holds one micro-batch beyond its window. Default 512. */
|
|
45
|
+
nUbatch?: number;
|
|
46
|
+
}
|
|
47
|
+
/** llama.cpp's own `--ubatch-size` default (`common/common.h`, `n_ubatch = 512`). */
|
|
48
|
+
export declare const LLAMA_DEFAULT_UBATCH = 512;
|
|
49
|
+
export declare function estimateKvCache(meta: Record<string, string>, ctxSize: number | undefined, cacheTypeK?: string | null, cacheTypeV?: string | null, layout?: KvCacheLayout): KvCacheEstimate;
|
|
31
50
|
/** `{arch}.context_length` when present and positive — the model's trained context. */
|
|
32
51
|
export declare function ggufContextLength(meta: Record<string, string>): number | undefined;
|
|
@@ -7,6 +7,13 @@
|
|
|
7
7
|
* any length) counts only the layers with KV heads, each with its own count, as llama.cpp allocates
|
|
8
8
|
* them — a hybrid model's recurrent layers hold no KV cache. The Rust estimate cannot read the array
|
|
9
9
|
* and counts every block with `head_count` heads (15 times LFM2.5-2.6B's real 16 KiB per token).
|
|
10
|
+
*
|
|
11
|
+
* Sliding-window models are counted layer by layer too, as llama.cpp b12019 allocates them
|
|
12
|
+
* (`src/llama-kv-cache-iswa.cpp:73`): a global layer holds the whole window, a sliding layer only
|
|
13
|
+
* `min(window, pad256(n_swa × sequences + n_ubatch))` cells. The Rust estimate averaged the two over
|
|
14
|
+
* every layer, `(full + window) / 2`, which for Gemma 3 (five sliding layers to one global,
|
|
15
|
+
* `src/models/gemma3.cpp:7`) counted two and a half times its real cache at 32K and narrowed small Macs
|
|
16
|
+
* far more than they needed.
|
|
10
17
|
*/
|
|
11
18
|
import { parseRustU64 } from '../../util/index.js';
|
|
12
19
|
export class KvCacheError extends Error {
|
|
@@ -78,7 +85,67 @@ function perLayerKvHeads(raw) {
|
|
|
78
85
|
}
|
|
79
86
|
return heads.some((n) => n > 0) ? heads : undefined;
|
|
80
87
|
}
|
|
81
|
-
|
|
88
|
+
/** llama.cpp's own `--ubatch-size` default (`common/common.h`, `n_ubatch = 512`). */
|
|
89
|
+
export const LLAMA_DEFAULT_UBATCH = 512;
|
|
90
|
+
/** llama.cpp pads every KV cache size to 256 cells (`src/llama-context.cpp:388`, `iswa.cpp:73`). */
|
|
91
|
+
const KV_PAD = 256;
|
|
92
|
+
/**
|
|
93
|
+
* The sliding-window layer pattern llama.cpp b12019 hard-codes per architecture when the GGUF does
|
|
94
|
+
* not carry `<arch>.attention.sliding_window_pattern` (`load_swa_pattern(ml, n[, dense_first])` in
|
|
95
|
+
* `src/models/<arch>.cpp`): `n` is the period, the last layer of each period (the first with
|
|
96
|
+
* `denseFirst`) attends globally.
|
|
97
|
+
*/
|
|
98
|
+
const ARCH_SWA_PATTERN = {
|
|
99
|
+
'gemma2': { period: 2 },
|
|
100
|
+
'gemma3': { period: 6 },
|
|
101
|
+
'gemma3n': { period: 5 },
|
|
102
|
+
'cohere2': { period: 4 },
|
|
103
|
+
'gpt-oss': { period: 2 },
|
|
104
|
+
'exaone4': { period: 4 },
|
|
105
|
+
'afmoe': { period: 4 },
|
|
106
|
+
'smallthinker': { period: 4, denseFirst: true },
|
|
107
|
+
};
|
|
108
|
+
/**
|
|
109
|
+
* Gemma 3n keeps KV only for its first 20 layers, the rest reuse them (`src/models/gemma3n.cpp:7`);
|
|
110
|
+
* other models say how many trailing layers share in `<arch>.attention.shared_kv_layers` (Gemma 4).
|
|
111
|
+
*/
|
|
112
|
+
const ARCH_KV_LAYERS_FROM_START = { gemma3n: 20 };
|
|
113
|
+
/** `llama_hparams::set_swa_pattern` (`src/llama-hparams.cpp:8`). */
|
|
114
|
+
function periodicSwa(period, denseFirst) {
|
|
115
|
+
if (period === 0)
|
|
116
|
+
return () => true;
|
|
117
|
+
return denseFirst ? (il) => il % period !== 0 : (il) => il % period < period - 1;
|
|
118
|
+
}
|
|
119
|
+
/** A `[true, false, …]` array as the reader inlines it, or `undefined`. */
|
|
120
|
+
function perLayerFlags(raw) {
|
|
121
|
+
const text = raw?.trim();
|
|
122
|
+
if (!text || !text.startsWith('[') || !text.endsWith(']'))
|
|
123
|
+
return undefined;
|
|
124
|
+
const parts = text
|
|
125
|
+
.slice(1, -1)
|
|
126
|
+
.split(',')
|
|
127
|
+
.map((p) => p.trim());
|
|
128
|
+
if (parts.length === 0 || parts.some((p) => p !== 'true' && p !== 'false'))
|
|
129
|
+
return undefined;
|
|
130
|
+
return parts.map((p) => p === 'true');
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Which layers keep only a sliding window: the GGUF's own per-layer flags or period, else the
|
|
134
|
+
* architecture's built-in pattern. `undefined` — every layer at the full window, the safe side — for a
|
|
135
|
+
* model without a window, and for an architecture whose pattern this table does not know.
|
|
136
|
+
*/
|
|
137
|
+
function slidingLayers(meta, arch) {
|
|
138
|
+
const raw = meta[`${arch}.attention.sliding_window_pattern`];
|
|
139
|
+
const flags = perLayerFlags(raw);
|
|
140
|
+
if (flags)
|
|
141
|
+
return (il) => flags[il] === true;
|
|
142
|
+
const period = raw === undefined ? undefined : parseRustU64(raw);
|
|
143
|
+
if (period !== undefined)
|
|
144
|
+
return periodicSwa(period, false);
|
|
145
|
+
const known = ARCH_SWA_PATTERN[arch];
|
|
146
|
+
return known ? periodicSwa(known.period, known.denseFirst === true) : undefined;
|
|
147
|
+
}
|
|
148
|
+
export function estimateKvCache(meta, ctxSize, cacheTypeK, cacheTypeV, layout = {}) {
|
|
82
149
|
const arch = meta['general.architecture'];
|
|
83
150
|
if (arch === undefined)
|
|
84
151
|
throw new KvCacheError(KV_CACHE_ERRORS.architectureNotFound);
|
|
@@ -116,12 +183,35 @@ export function estimateKvCache(meta, ctxSize, cacheTypeK, cacheTypeV) {
|
|
|
116
183
|
const ctxLen = ctxSize === undefined ? maxCtx : Math.min(ctxSize, maxCtx);
|
|
117
184
|
const slidingWindowRaw = u64(meta, `${arch}.attention.sliding_window`);
|
|
118
185
|
const slidingWindow = slidingWindowRaw !== undefined && slidingWindowRaw > 0 ? slidingWindowRaw : undefined;
|
|
119
|
-
const
|
|
120
|
-
|
|
121
|
-
const
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
186
|
+
const isSliding = slidingWindow === undefined ? undefined : slidingLayers(meta, arch);
|
|
187
|
+
const bitsK = kvCacheBitsPerElement(cacheTypeK);
|
|
188
|
+
const bitsV = kvCacheBitsPerElement(cacheTypeV);
|
|
189
|
+
if (slidingWindow === undefined || isSliding === undefined) {
|
|
190
|
+
const kvPerToken = Math.ceil((kvHeadsAcrossLayers * (keyLen * bitsK + valLen * bitsV)) / 8);
|
|
191
|
+
return { size: ctxLen * kvPerToken, per_token_size: kvPerToken };
|
|
192
|
+
}
|
|
193
|
+
// Layer by layer: the global ones hold the whole window, the sliding ones their own (possibly
|
|
194
|
+
// narrower) heads over `swaCells`, and the layers that reuse another's KV hold nothing.
|
|
195
|
+
const keyLenSwa = u64(meta, `${arch}.attention.key_length_swa`) || keyLen;
|
|
196
|
+
const valLenSwa = u64(meta, `${arch}.attention.value_length_swa`) || valLen;
|
|
197
|
+
const shared = u64(meta, `${arch}.attention.shared_kv_layers`);
|
|
198
|
+
const kvFromStart = ARCH_KV_LAYERS_FROM_START[arch] ?? (shared ? nLayer - shared : undefined);
|
|
199
|
+
const layers = layerKvHeads ?? Array.from({ length: nLayer }, () => nHead);
|
|
200
|
+
let fullBits = 0;
|
|
201
|
+
let swaBits = 0;
|
|
202
|
+
layers.forEach((heads, il) => {
|
|
203
|
+
if (heads === 0 || (kvFromStart !== undefined && il >= kvFromStart))
|
|
204
|
+
return;
|
|
205
|
+
if (isSliding(il))
|
|
206
|
+
swaBits += heads * (keyLenSwa * bitsK + valLenSwa * bitsV);
|
|
207
|
+
else
|
|
208
|
+
fullBits += heads * (keyLen * bitsK + valLen * bitsV);
|
|
209
|
+
});
|
|
210
|
+
const nSeq = Math.max(1, Math.floor(layout.nSeq ?? 1));
|
|
211
|
+
const nUbatch = Math.max(1, Math.floor(layout.nUbatch ?? LLAMA_DEFAULT_UBATCH));
|
|
212
|
+
const swaCells = Math.min(ctxLen, Math.ceil((slidingWindow * nSeq + nUbatch) / KV_PAD) * KV_PAD);
|
|
213
|
+
const size = ctxLen * Math.ceil(fullBits / 8) + swaCells * Math.ceil(swaBits / 8);
|
|
214
|
+
return { size, per_token_size: Math.ceil((fullBits + swaBits) / 8) };
|
|
125
215
|
}
|
|
126
216
|
/** `{arch}.context_length` when present and positive — the model's trained context. */
|
|
127
217
|
export function ggufContextLength(meta) {
|
|
@@ -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":"AAAA;;;;;;;;;;;;;;;;GAgBG;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;AAaD,qFAAqF;AACrF,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAA;AAEvC,oGAAoG;AACpG,MAAM,MAAM,GAAG,GAAG,CAAA;AAElB;;;;;GAKG;AACH,MAAM,gBAAgB,GAAuE;IAC3F,QAAQ,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE;IACvB,QAAQ,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE;IACvB,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE;IACxB,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE;IACxB,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE;IACxB,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE;IACxB,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE;IACtB,cAAc,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE;CAChD,CAAA;AAED;;;GAGG;AACH,MAAM,yBAAyB,GAAqC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAA;AAEnF,oEAAoE;AACpE,SAAS,WAAW,CAAC,MAAc,EAAE,UAAmB;IACtD,IAAI,MAAM,KAAK,CAAC;QAAE,OAAO,GAAG,EAAE,CAAC,IAAI,CAAA;IACnC,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,MAAM,GAAG,MAAM,GAAG,CAAC,CAAA;AAClF,CAAC;AAED,2EAA2E;AAC3E,SAAS,aAAa,CAAC,GAAuB;IAC5C,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;SACf,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SACZ,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;IACvB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,OAAO,CAAC;QAAE,OAAO,SAAS,CAAA;IAC5F,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAA;AACvC,CAAC;AAED;;;;GAIG;AACH,SAAS,aAAa,CAAC,IAA4B,EAAE,IAAY;IAC/D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,mCAAmC,CAAC,CAAA;IAC5D,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,CAAA;IAChC,IAAI,KAAK;QAAE,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,IAAI,CAAA;IAC5C,MAAM,MAAM,GAAG,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;IAChE,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IAC3D,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;IACpC,OAAO,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AACjF,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,IAA4B,EAC5B,OAA2B,EAC3B,UAA0B,EAC1B,UAA0B,EAC1B,SAAwB,EAAE;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;IAC3G,MAAM,SAAS,GAAG,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAErF,MAAM,KAAK,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAA;IAC/C,MAAM,KAAK,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAA;IAC/C,IAAI,aAAa,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC3D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,mBAAmB,GAAG,CAAC,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;QAC3F,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,CAAA;IAClE,CAAC;IAED,8FAA8F;IAC9F,wFAAwF;IACxF,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,EAAE,GAAG,IAAI,2BAA2B,CAAC,IAAI,MAAM,CAAA;IACzE,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,EAAE,GAAG,IAAI,6BAA6B,CAAC,IAAI,MAAM,CAAA;IAC3E,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,GAAG,IAAI,6BAA6B,CAAC,CAAA;IAC9D,MAAM,WAAW,GAAG,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;IAC7F,MAAM,MAAM,GAAG,YAAY,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAA;IAC1E,IAAI,QAAQ,GAAG,CAAC,CAAA;IAChB,IAAI,OAAO,GAAG,CAAC,CAAA;IACf,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;QAC3B,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,IAAI,WAAW,CAAC;YAAE,OAAM;QAC3E,IAAI,SAAS,CAAC,EAAE,CAAC;YAAE,OAAO,IAAI,KAAK,GAAG,CAAC,SAAS,GAAG,KAAK,GAAG,SAAS,GAAG,KAAK,CAAC,CAAA;;YACxE,QAAQ,IAAI,KAAK,GAAG,CAAC,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,CAAC,CAAA;IAC5D,CAAC,CAAC,CAAA;IACF,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAA;IACtD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,IAAI,oBAAoB,CAAC,CAAC,CAAA;IAC/E,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,aAAa,GAAG,IAAI,GAAG,OAAO,CAAC,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC,CAAA;IAChG,MAAM,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAA;IACjF,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAA;AACtE,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,9 +4,11 @@
|
|
|
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`
|
|
8
|
-
*
|
|
9
|
-
*
|
|
7
|
+
* One deliberate exception: an integer `<arch>.attention.head_count_kv` and a boolean
|
|
8
|
+
* `<arch>.attention.sliding_window_pattern` are inlined at any length up to `MAX_PER_LAYER_ARRAY_LEN`,
|
|
9
|
+
* because they name, one entry per block, which layers attend (LFM2.5-2.6B has 30 blocks, 8 of them
|
|
10
|
+
* attend) and which of those keep only a sliding window (Gemma 4 31B: 60 blocks), and the KV-cache
|
|
11
|
+
* estimate needs every entry.
|
|
10
12
|
*
|
|
11
13
|
* Pure over a byte buffer; callers feed it a file prefix and grow it while it asks for more.
|
|
12
14
|
*/
|
|
@@ -4,9 +4,11 @@
|
|
|
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`
|
|
8
|
-
*
|
|
9
|
-
*
|
|
7
|
+
* One deliberate exception: an integer `<arch>.attention.head_count_kv` and a boolean
|
|
8
|
+
* `<arch>.attention.sliding_window_pattern` are inlined at any length up to `MAX_PER_LAYER_ARRAY_LEN`,
|
|
9
|
+
* because they name, one entry per block, which layers attend (LFM2.5-2.6B has 30 blocks, 8 of them
|
|
10
|
+
* attend) and which of those keep only a sliding window (Gemma 4 31B: 60 blocks), and the KV-cache
|
|
11
|
+
* estimate needs every entry.
|
|
10
12
|
*
|
|
11
13
|
* Pure over a byte buffer; callers feed it a file prefix and grow it while it asks for more.
|
|
12
14
|
*/
|
|
@@ -33,9 +35,11 @@ export const INLINE_ARRAY_MAX_LEN = 24;
|
|
|
33
35
|
export const MAX_PER_LAYER_ARRAY_LEN = 4096;
|
|
34
36
|
/** Integer GGUF value types (`u8` … `i32`, `u64`, `i64`). */
|
|
35
37
|
const INTEGER_TYPES = new Set([0, 1, 2, 3, 4, 5, 10, 11]);
|
|
36
|
-
/**
|
|
38
|
+
/** What a per-layer array may hold: integers, or booleans (`sliding_window_pattern`). */
|
|
39
|
+
const PER_LAYER_TYPES = new Set([...INTEGER_TYPES, 7]);
|
|
40
|
+
/** Keys whose integer or boolean arrays are one entry per block and are inlined at any length. */
|
|
37
41
|
function isPerLayerKey(key) {
|
|
38
|
-
return /^[^.]+\.attention\.head_count_kv$/.test(key);
|
|
42
|
+
return /^[^.]+\.attention\.(head_count_kv|sliding_window_pattern)$/.test(key);
|
|
39
43
|
}
|
|
40
44
|
/** The buffer ended before the header did; feed more bytes and retry. */
|
|
41
45
|
export class GgufNeedMoreData extends Error {
|
|
@@ -180,7 +184,7 @@ function readValue(c, type, perLayer = false) {
|
|
|
180
184
|
if (len > BigInt(MAX_GGUF_ARRAY_LEN))
|
|
181
185
|
throw new GgufParseError(`Array length ${len} is unreasonably large`);
|
|
182
186
|
const n = Number(len);
|
|
183
|
-
const inlineAll = perLayer &&
|
|
187
|
+
const inlineAll = perLayer && PER_LAYER_TYPES.has(elemType) && n <= MAX_PER_LAYER_ARRAY_LEN;
|
|
184
188
|
if (n > INLINE_ARRAY_MAX_LEN && !inlineAll) {
|
|
185
189
|
skipArray(c, elemType, n);
|
|
186
190
|
return `<Array of type ${GGUF_VALUE_TYPE_NAMES[elemType]} with ${n} elements, data skipped>`;
|
|
@@ -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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"}
|
|
@@ -35,6 +35,17 @@ export declare const LOAD_MODE_ONLY_MIN_BUILD = 10875;
|
|
|
35
35
|
* is a no-op there that only prints a deprecation warning, so it is not sent.
|
|
36
36
|
*/
|
|
37
37
|
export declare const DEFRAG_THOLD_NO_OP_MIN_BUILD = 6245;
|
|
38
|
+
/**
|
|
39
|
+
* First upstream release with the host-memory prompt cache and its `--cache-ram` limit
|
|
40
|
+
* (ggml-org/llama.cpp#16391, merged as d00cbea; b6721 is two commits short of it).
|
|
41
|
+
*/
|
|
42
|
+
export declare const CACHE_RAM_MIN_BUILD = 6723;
|
|
43
|
+
/**
|
|
44
|
+
* First upstream release whose `--reasoning-budget` takes a token count and has
|
|
45
|
+
* `--reasoning-budget-message` (ggml-org/llama.cpp#20297, acb7c79). Before it the flag accepted only
|
|
46
|
+
* -1 and 0, and any other value failed the launch (`common/arg.cpp` at b8285: "invalid value").
|
|
47
|
+
*/
|
|
48
|
+
export declare const REASONING_BUDGET_TOKENS_MIN_BUILD = 8287;
|
|
38
49
|
/** Cache types supported by stock ggml-org builds. */
|
|
39
50
|
export declare const STANDARD_CACHE_TYPES: readonly string[];
|
|
40
51
|
/** Fields with `#[serde(default)]` in Rust; every other `LlamacppConfig` field is required. */
|
|
@@ -57,6 +68,7 @@ export declare const LLAMACPP_CONFIG_SERDE_DEFAULTS: {
|
|
|
57
68
|
readonly dflash_draft_path: "";
|
|
58
69
|
readonly dflash_n_max: 0;
|
|
59
70
|
readonly reasoning_preserve: false;
|
|
71
|
+
readonly reasoning_budget: -1;
|
|
60
72
|
readonly extra_args: "";
|
|
61
73
|
};
|
|
62
74
|
export type LlamacppConfigInput = Omit<LlamacppConfig, keyof typeof LLAMACPP_CONFIG_SERDE_DEFAULTS> & Partial<Pick<LlamacppConfig, keyof typeof LLAMACPP_CONFIG_SERDE_DEFAULTS>>;
|
|
@@ -78,6 +90,8 @@ export interface LlamaArgsInput {
|
|
|
78
90
|
* `--ctx-size`, which ends fit's context search while fit still places the layers.
|
|
79
91
|
*/
|
|
80
92
|
fitCtxCeiling?: number;
|
|
93
|
+
/** `--cache-ram` in MiB, from the load plan on a machine with at most 16 GiB of RAM. */
|
|
94
|
+
cacheRamMiB?: number;
|
|
81
95
|
}
|
|
82
96
|
export interface LlamaArgsPlan {
|
|
83
97
|
argv: string[];
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
*/
|
|
15
15
|
import { AtomicCoreError } from '../../contracts/index.js';
|
|
16
16
|
import { f32Differs, formatRustF32 } from '../../util/index.js';
|
|
17
|
+
import { REASONING_BUDGET_MESSAGE } from './generation-limits.js';
|
|
17
18
|
export { f32Differs, formatRustF32 };
|
|
18
19
|
/** Minimum llama.cpp build that turned `--flash-attn` into a string argument (auto|on|off). */
|
|
19
20
|
export const FLASH_ATTN_STRING_ARG_MIN_BUILD = 6325;
|
|
@@ -35,6 +36,17 @@ export const LOAD_MODE_ONLY_MIN_BUILD = 10875;
|
|
|
35
36
|
* is a no-op there that only prints a deprecation warning, so it is not sent.
|
|
36
37
|
*/
|
|
37
38
|
export const DEFRAG_THOLD_NO_OP_MIN_BUILD = 6245;
|
|
39
|
+
/**
|
|
40
|
+
* First upstream release with the host-memory prompt cache and its `--cache-ram` limit
|
|
41
|
+
* (ggml-org/llama.cpp#16391, merged as d00cbea; b6721 is two commits short of it).
|
|
42
|
+
*/
|
|
43
|
+
export const CACHE_RAM_MIN_BUILD = 6723;
|
|
44
|
+
/**
|
|
45
|
+
* First upstream release whose `--reasoning-budget` takes a token count and has
|
|
46
|
+
* `--reasoning-budget-message` (ggml-org/llama.cpp#20297, acb7c79). Before it the flag accepted only
|
|
47
|
+
* -1 and 0, and any other value failed the launch (`common/arg.cpp` at b8285: "invalid value").
|
|
48
|
+
*/
|
|
49
|
+
export const REASONING_BUDGET_TOKENS_MIN_BUILD = 8287;
|
|
38
50
|
/** Cache types supported by stock ggml-org builds. */
|
|
39
51
|
export const STANDARD_CACHE_TYPES = [
|
|
40
52
|
'f32',
|
|
@@ -67,6 +79,9 @@ export const LLAMACPP_CONFIG_SERDE_DEFAULTS = {
|
|
|
67
79
|
dflash_draft_path: '',
|
|
68
80
|
dflash_n_max: 0,
|
|
69
81
|
reasoning_preserve: false,
|
|
82
|
+
// Absent, as in every config written before the setting existed: no budget, llama.cpp's own -1.
|
|
83
|
+
// What a load gets by default is the settings schema's value (generation-limits.ts).
|
|
84
|
+
reasoning_budget: -1,
|
|
70
85
|
extra_args: '',
|
|
71
86
|
};
|
|
72
87
|
/**
|
|
@@ -276,8 +291,13 @@ export function planLlamaArgs(config, input) {
|
|
|
276
291
|
}
|
|
277
292
|
if (cfg.ctx_shift)
|
|
278
293
|
push('--context-shift');
|
|
294
|
+
// Explicit both ways: llama.cpp batches continuously unless told not to (`common/common.h:577`,
|
|
295
|
+
// `cont_batching = true`), so a setting that only ever sent the "on" flag could not turn it off.
|
|
296
|
+
// ik builds keep the old form.
|
|
279
297
|
if (cfg.cont_batching)
|
|
280
298
|
push('--cont-batching');
|
|
299
|
+
else if (!ik)
|
|
300
|
+
push('--no-cont-batching');
|
|
281
301
|
if (!ik && build !== undefined && build >= LOAD_MODE_ONLY_MIN_BUILD) {
|
|
282
302
|
if (cfg.no_mmap && cfg.mlock)
|
|
283
303
|
push('--load-mode', 'mlock');
|
|
@@ -294,11 +314,16 @@ export function planLlamaArgs(config, input) {
|
|
|
294
314
|
}
|
|
295
315
|
if (cfg.no_kv_offload)
|
|
296
316
|
push('--no-kv-offload');
|
|
297
|
-
if (cfg.parallel > 0)
|
|
317
|
+
if (cfg.parallel > 0)
|
|
298
318
|
push('--parallel', String(cfg.parallel));
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
319
|
+
// One KV pool for every slot (ggml-org/llama.cpp#17450): each slot may use the whole window
|
|
320
|
+
// (`src/llama-context.cpp:389-390`, `n_ctx_seq = n_ctx`) and the slots together never take more than
|
|
321
|
+
// one window's memory, so `--parallel N` costs no KV memory beyond a sliding-window layer's window
|
|
322
|
+
// per slot. Without it llama.cpp splits the window, `n_ctx / N` each. Caveat: the slots share the
|
|
323
|
+
// pool — one long prompt can fill it, and when concurrent slots outgrow it llama.cpp first clears
|
|
324
|
+
// idle slots, then fails every active one with "Context size has been exceeded."
|
|
325
|
+
// (`tools/server/server-context.cpp:4703-4744`).
|
|
326
|
+
push('-kvu');
|
|
302
327
|
// Speculative decoding: DFlash wins when both are set.
|
|
303
328
|
const addMtp = () => {
|
|
304
329
|
if (!cfg.mtp || input.isEmbedding)
|
|
@@ -368,6 +393,25 @@ export function planLlamaArgs(config, input) {
|
|
|
368
393
|
push('--ctx-size', String(input.fitCtxCeiling));
|
|
369
394
|
if (cfg.n_predict > 0)
|
|
370
395
|
push('--n-predict', String(cfg.n_predict));
|
|
396
|
+
// The thinking budget: llama.cpp applies it to requests that set none, and only to templates with
|
|
397
|
+
// a thinking end tag (`tools/server/server-common.cpp:1517-1531`). -1 (or absent) leaves thinking
|
|
398
|
+
// unbounded, 0 ends it at once.
|
|
399
|
+
if (!ik && cfg.reasoning_budget >= 0) {
|
|
400
|
+
if (build !== undefined && build >= REASONING_BUDGET_TOKENS_MIN_BUILD) {
|
|
401
|
+
push('--reasoning-budget', String(Math.floor(cfg.reasoning_budget)));
|
|
402
|
+
if (cfg.reasoning_budget > 0)
|
|
403
|
+
push('--reasoning-budget-message', REASONING_BUDGET_MESSAGE);
|
|
404
|
+
}
|
|
405
|
+
else {
|
|
406
|
+
warnings.push(`Reasoning budget requested but backend build ${version}/${backend} predates token budgets (b${REASONING_BUDGET_TOKENS_MIN_BUILD}); skipping`);
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
if (!ik &&
|
|
410
|
+
input.cacheRamMiB !== undefined &&
|
|
411
|
+
input.cacheRamMiB > 0 &&
|
|
412
|
+
build !== undefined &&
|
|
413
|
+
build >= CACHE_RAM_MIN_BUILD)
|
|
414
|
+
push('--cache-ram', String(Math.floor(input.cacheRamMiB)));
|
|
371
415
|
if (cfg.cache_type_k !== '' && cfg.cache_type_k !== 'f16') {
|
|
372
416
|
const safeK = sanitizeCacheType(cfg.cache_type_k);
|
|
373
417
|
if (safeK !== 'f16')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"args.js","sourceRoot":"","sources":["../../../src/runtime/llamacpp/args.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"args.js","sourceRoot":"","sources":["../../../src/runtime/llamacpp/args.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,8 +9,11 @@
|
|
|
9
9
|
* up at the same sizes.
|
|
10
10
|
*/
|
|
11
11
|
/**
|
|
12
|
-
* The context window assumed when nothing else says otherwise
|
|
13
|
-
* settled on after five different defaults disagreed across its tree
|
|
12
|
+
* The context window assumed when nothing else says otherwise. It was 16384, the single value the
|
|
13
|
+
* app settled on after five different defaults disagreed across its tree; a coding agent's first
|
|
14
|
+
* request alone is 13-27K tokens (Claude Code, OpenCode, Codex — integrations audit 2026-11-03, S4),
|
|
15
|
+
* so 16K refused every agent. 32768 is the ladder's own next step. Small Macs are narrowed back
|
|
16
|
+
* toward 16K by memory (`smallMemoryDefaultCtx`).
|
|
14
17
|
*/
|
|
15
|
-
export declare const DEFAULT_CTX_LEN =
|
|
18
|
+
export declare const DEFAULT_CTX_LEN = 32768;
|
|
16
19
|
export declare function computeNextCtxLen(currentCtxLen: number, maxCtxLen?: number): number;
|
|
@@ -9,10 +9,13 @@
|
|
|
9
9
|
* up at the same sizes.
|
|
10
10
|
*/
|
|
11
11
|
/**
|
|
12
|
-
* The context window assumed when nothing else says otherwise
|
|
13
|
-
* settled on after five different defaults disagreed across its tree
|
|
12
|
+
* The context window assumed when nothing else says otherwise. It was 16384, the single value the
|
|
13
|
+
* app settled on after five different defaults disagreed across its tree; a coding agent's first
|
|
14
|
+
* request alone is 13-27K tokens (Claude Code, OpenCode, Codex — integrations audit 2026-11-03, S4),
|
|
15
|
+
* so 16K refused every agent. 32768 is the ladder's own next step. Small Macs are narrowed back
|
|
16
|
+
* toward 16K by memory (`smallMemoryDefaultCtx`).
|
|
14
17
|
*/
|
|
15
|
-
export const DEFAULT_CTX_LEN =
|
|
18
|
+
export const DEFAULT_CTX_LEN = 32768;
|
|
16
19
|
export function computeNextCtxLen(currentCtxLen, maxCtxLen) {
|
|
17
20
|
let next;
|
|
18
21
|
if (currentCtxLen < 8192)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ctx-ladder.js","sourceRoot":"","sources":["../../../src/runtime/llamacpp/ctx-ladder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH
|
|
1
|
+
{"version":3,"file":"ctx-ladder.js","sourceRoot":"","sources":["../../../src/runtime/llamacpp/ctx-ladder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAA;AAEpC,MAAM,UAAU,iBAAiB,CAAC,aAAqB,EAAE,SAAkB;IACzE,IAAI,IAAY,CAAA;IAChB,IAAI,aAAa,GAAG,IAAI;QAAE,IAAI,GAAG,IAAI,CAAA;SAChC,IAAI,aAAa,GAAG,KAAK;QAAE,IAAI,GAAG,KAAK,CAAA;;QACvC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,GAAG,CAAC,CAAA;IAC3C,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,GAAG,CAAC;QAAE,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;IACpF,OAAO,IAAI,CAAA;AACb,CAAC"}
|
|
@@ -88,3 +88,27 @@ export interface SmallUnifiedMemoryCtxInput {
|
|
|
88
88
|
* exactly as before.
|
|
89
89
|
*/
|
|
90
90
|
export declare function smallUnifiedMemoryCtxCeiling(input: SmallUnifiedMemoryCtxInput): number | undefined;
|
|
91
|
+
/**
|
|
92
|
+
* The default window of a load that sizes nothing itself — llama.cpp with fit off, MLX — before 32K
|
|
93
|
+
* became the default (`DEFAULT_CTX_LEN`): it stays the floor on a small Mac, so the change never
|
|
94
|
+
* gives anyone a narrower window than before.
|
|
95
|
+
*/
|
|
96
|
+
export declare const PREVIOUS_DEFAULT_CTX = 16384;
|
|
97
|
+
export interface SmallMemoryDefaultCtxInput {
|
|
98
|
+
/** Physical RAM, shared by the CPU and the GPU. */
|
|
99
|
+
totalMemoryBytes: number;
|
|
100
|
+
/** The model's weights in memory. */
|
|
101
|
+
weightsBytes: number;
|
|
102
|
+
/** The default window before memory narrows it: 32K, or the trained context when smaller. */
|
|
103
|
+
defaultCtx: number;
|
|
104
|
+
/** The KV cache at `ctx` tokens; `undefined` when it cannot be estimated. */
|
|
105
|
+
kvBytesAt: (ctx: number) => number | undefined;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* The default window on a unified-memory Mac below 16 GiB, or `undefined` elsewhere (the default
|
|
109
|
+
* stands). Half of RAM is the engine's, as with fit (`UNIFIED_MEMORY_LLAMA_SHARE`): the default is
|
|
110
|
+
* narrowed in steps of 256 tokens until the weights, the KV cache and the compute reserve fit it, but
|
|
111
|
+
* never below {@link PREVIOUS_DEFAULT_CTX} (or the default itself when that is smaller) — and stays
|
|
112
|
+
* there when the KV cache cannot be estimated.
|
|
113
|
+
*/
|
|
114
|
+
export declare function smallMemoryDefaultCtx(input: SmallMemoryDefaultCtxInput): number | undefined;
|
|
@@ -94,4 +94,35 @@ export function smallUnifiedMemoryCtxCeiling(input) {
|
|
|
94
94
|
}
|
|
95
95
|
return undefined;
|
|
96
96
|
}
|
|
97
|
+
/**
|
|
98
|
+
* The default window of a load that sizes nothing itself — llama.cpp with fit off, MLX — before 32K
|
|
99
|
+
* became the default (`DEFAULT_CTX_LEN`): it stays the floor on a small Mac, so the change never
|
|
100
|
+
* gives anyone a narrower window than before.
|
|
101
|
+
*/
|
|
102
|
+
export const PREVIOUS_DEFAULT_CTX = 16_384;
|
|
103
|
+
/**
|
|
104
|
+
* The default window on a unified-memory Mac below 16 GiB, or `undefined` elsewhere (the default
|
|
105
|
+
* stands). Half of RAM is the engine's, as with fit (`UNIFIED_MEMORY_LLAMA_SHARE`): the default is
|
|
106
|
+
* narrowed in steps of 256 tokens until the weights, the KV cache and the compute reserve fit it, but
|
|
107
|
+
* never below {@link PREVIOUS_DEFAULT_CTX} (or the default itself when that is smaller) — and stays
|
|
108
|
+
* there when the KV cache cannot be estimated.
|
|
109
|
+
*/
|
|
110
|
+
export function smallMemoryDefaultCtx(input) {
|
|
111
|
+
if (!(input.totalMemoryBytes > 0) || input.totalMemoryBytes >= SMALL_UNIFIED_MEMORY_BYTES)
|
|
112
|
+
return undefined;
|
|
113
|
+
const floor = Math.min(PREVIOUS_DEFAULT_CTX, input.defaultCtx);
|
|
114
|
+
const room = input.totalMemoryBytes * UNIFIED_MEMORY_LLAMA_SHARE -
|
|
115
|
+
Math.max(0, input.weightsBytes) -
|
|
116
|
+
FIT_COMPUTE_RESERVE_BYTES;
|
|
117
|
+
let ctx = input.defaultCtx;
|
|
118
|
+
while (ctx > floor) {
|
|
119
|
+
const kv = input.kvBytesAt(ctx);
|
|
120
|
+
if (kv === undefined)
|
|
121
|
+
return floor;
|
|
122
|
+
if (kv <= room)
|
|
123
|
+
return ctx;
|
|
124
|
+
ctx -= ctx % FIT_CTX_ALIGN === 0 ? FIT_CTX_ALIGN : ctx % FIT_CTX_ALIGN;
|
|
125
|
+
}
|
|
126
|
+
return floor;
|
|
127
|
+
}
|
|
97
128
|
//# sourceMappingURL=fit-margin.js.map
|