@looprun-ai/models 0.1.0 → 0.2.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/aliases.d.ts.map +1 -1
- package/dist/aliases.js +9 -3
- package/dist/aliases.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/llamacpp.d.ts +2 -0
- package/dist/llamacpp.d.ts.map +1 -1
- package/dist/llamacpp.js +25 -3
- package/dist/llamacpp.js.map +1 -1
- package/dist/port.d.ts +11 -1
- package/dist/port.d.ts.map +1 -1
- package/package.json +2 -2
package/dist/aliases.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aliases.d.ts","sourceRoot":"","sources":["../src/aliases.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"aliases.d.ts","sourceRoot":"","sources":["../src/aliases.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAMhD,eAAO,MAAM,SAAS,EAAE,cAavB,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,cAa5B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAKxD,CAAC;AAEF,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,CAQ1D;AAED,iEAAiE;AACjE,wBAAgB,SAAS,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAGtD"}
|
package/dist/aliases.js
CHANGED
|
@@ -2,8 +2,12 @@
|
|
|
2
2
|
* @looprun-ai/models — the validated local-model registry.
|
|
3
3
|
*
|
|
4
4
|
* Both entries were validated on the certified benchmark lineage (llama.cpp, Metal + CUDA):
|
|
5
|
-
* - KV precision is measured, not a guess:
|
|
6
|
-
*
|
|
5
|
+
* - KV precision is measured, not a guess: f16 on BOTH tiers (2026-07-11: +23% decode vs q8_0
|
|
6
|
+
* on the 4B too; ~1.7× on the 35B-A3B — the GPU dequantizes q8_0 every token while the byte
|
|
7
|
+
* saving buys nothing, since weights dominate decode bandwidth). q8_0 = RAM escape hatch only.
|
|
8
|
+
* - cacheRamMiB (`--cache-ram`) is tiered: it is the idle-slot RAM prompt cache that keeps N
|
|
9
|
+
* distinct agent trunks warm across agent switches (measured 2026-07-11: warm switch TTFT
|
|
10
|
+
* 0.5–0.6 s vs 11–22 s cold without it).
|
|
7
11
|
* - NON-MTP: multi-token prediction measured at ~0% speedup on Metal — never enabled.
|
|
8
12
|
* - Requires a llama.cpp build ≥ b9780 (older builds cannot load the qwen3.5/3.6 family).
|
|
9
13
|
*/
|
|
@@ -20,8 +24,9 @@ export const QWEN35_4B = {
|
|
|
20
24
|
envVar: 'QWEN35_4B_GGUF',
|
|
21
25
|
hfRepo: 'unsloth/Qwen3.5-4B-GGUF',
|
|
22
26
|
approxSizeGB: 2.9,
|
|
23
|
-
kv: '
|
|
27
|
+
kv: 'f16',
|
|
24
28
|
ctx: 32768,
|
|
29
|
+
cacheRamMiB: 3072,
|
|
25
30
|
port: 8081,
|
|
26
31
|
servedId: 'qwen3.5-4b-gguf',
|
|
27
32
|
};
|
|
@@ -35,6 +40,7 @@ export const QWEN36_35B_A3B = {
|
|
|
35
40
|
approxSizeGB: 21,
|
|
36
41
|
kv: 'f16',
|
|
37
42
|
ctx: 65536,
|
|
43
|
+
cacheRamMiB: 16384,
|
|
38
44
|
port: 8081,
|
|
39
45
|
servedId: 'qwen3.6-35b-gguf',
|
|
40
46
|
};
|
package/dist/aliases.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aliases.js","sourceRoot":"","sources":["../src/aliases.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"aliases.js","sourceRoot":"","sources":["../src/aliases.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,SAAS,IAAI,CAAC,GAAG,KAAe;IAC9B,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAAmB;IACvC,KAAK,EAAE,YAAY;IACnB,IAAI,EAAE,8FAA8F;IACpG,IAAI,EAAE,4BAA4B;IAClC,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC;IACzC,MAAM,EAAE,gBAAgB;IACxB,MAAM,EAAE,yBAAyB;IACjC,YAAY,EAAE,GAAG;IACjB,EAAE,EAAE,KAAK;IACT,GAAG,EAAE,KAAK;IACV,WAAW,EAAE,IAAI;IACjB,IAAI,EAAE,IAAI;IACV,QAAQ,EAAE,iBAAiB;CAC5B,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAmB;IAC5C,KAAK,EAAE,iBAAiB;IACxB,IAAI,EAAE,4FAA4F;IAClG,IAAI,EAAE,iCAAiC;IACvC,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC;IACzC,MAAM,EAAE,iBAAiB;IACzB,MAAM,EAAE,8BAA8B;IACtC,YAAY,EAAE,EAAE;IAChB,EAAE,EAAE,KAAK;IACT,GAAG,EAAE,KAAK;IACV,WAAW,EAAE,KAAK;IAClB,IAAI,EAAE,IAAI;IACV,QAAQ,EAAE,kBAAkB;CAC7B,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAmC;IAC3D,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,SAAS;IAC5B,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,cAAc;IACtC,qBAAqB;IACrB,gBAAgB,EAAE,cAAc;CACjC,CAAC;AAEF,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CACb,uCAAuC,KAAK,aAAa,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACrI,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,SAAS,CAAC,IAAoB;IAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACzC,OAAO,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AAChF,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { LocalModelSpec, ModelRuntimePort } from './port.js';
|
|
2
2
|
export type { LocalModelSpec, ModelRuntimePort, RuntimeStatus, EnsureServerResult } from './port.js';
|
|
3
3
|
export { MODEL_ALIASES, QWEN35_4B, QWEN36_35B_A3B, resolveAlias, modelPath } from './aliases.js';
|
|
4
|
-
export { LlamaCppRuntime, launchFlags, serverBaseURL } from './llamacpp.js';
|
|
4
|
+
export { LlamaCppRuntime, launchFlags, serverBaseURL, slotStateDir } from './llamacpp.js';
|
|
5
5
|
export { downloadModel, downloadUrl } from './download.js';
|
|
6
6
|
export interface LocalModelOptions {
|
|
7
7
|
/** The runtime port; defaults to llama.cpp. */
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAElE,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACrG,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,cAAc,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACjG,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAElE,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACrG,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,cAAc,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACjG,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC1F,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE3D,MAAM,WAAW,iBAAiB;IAChC,+CAA+C;IAC/C,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,yDAAyD;IACzD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAED;;;;GAIG;AAEH,wBAAsB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,iBAAsB,GAAG,OAAO,CAAC,GAAG,CAAC,CAS1F;AAED,kFAAkF;AAElF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAGnD;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG;IAEpF,KAAK,EAAE,GAAG,CAAC;IACX,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC,CAKA;AAED,uCAAuC;AACvC,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAwC,8CAEtG;AAED,YAAY,EAAE,cAAc,IAAI,qBAAqB,EAAE,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -10,7 +10,7 @@ import { geminiThinkingOff } from '@looprun-ai/core';
|
|
|
10
10
|
import { resolveAlias, modelPath } from './aliases.js';
|
|
11
11
|
import { LlamaCppRuntime, serverBaseURL } from './llamacpp.js';
|
|
12
12
|
export { MODEL_ALIASES, QWEN35_4B, QWEN36_35B_A3B, resolveAlias, modelPath } from './aliases.js';
|
|
13
|
-
export { LlamaCppRuntime, launchFlags, serverBaseURL } from './llamacpp.js';
|
|
13
|
+
export { LlamaCppRuntime, launchFlags, serverBaseURL, slotStateDir } from './llamacpp.js';
|
|
14
14
|
export { downloadModel, downloadUrl } from './download.js';
|
|
15
15
|
/**
|
|
16
16
|
* A validated LOCAL model as an AI-SDK LanguageModel (OpenAI-compatible chat over llama.cpp).
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAI/D,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,cAAc,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACjG,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAI/D,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,cAAc,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACjG,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC1F,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAiB3D;;;;GAIG;AACH,8DAA8D;AAC9D,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,KAAa,EAAE,OAA0B,EAAE;IAC1E,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,eAAe,EAAE,CAAC;IACtD,MAAM,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,YAAY,KAAK,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IACvG,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE;QACnD,SAAS,EAAE,IAAI,CAAC,SAAS,KAAK,KAAK;QACnC,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACjE,CAAC,CAAC;IACH,OAAO,YAAY,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACxE,CAAC;AAED,kFAAkF;AAClF,8DAA8D;AAC9D,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACjC,OAAO,YAAY,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC7F,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAAyC,EAAE;IAKjF,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC;IACvE,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IAClF,MAAM,MAAM,GAAG,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IACpD,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,uBAAuB,CAAC,EAAE,WAAW,EAAE,iBAAiB,EAAE,EAAE,CAAC;AACjG,CAAC;AAED,uCAAuC;AACvC,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,KAAa,EAAE,UAA4B,IAAI,eAAe,EAAE;IACrG,OAAO,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7C,CAAC"}
|
package/dist/llamacpp.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import type { EnsureServerResult, LocalModelSpec, ModelRuntimePort, RuntimeStatus } from './port.js';
|
|
2
2
|
export declare function serverBaseURL(spec: LocalModelSpec): string;
|
|
3
|
+
/** The slot-state dir (`--slot-save-path`); $LLAMA_SLOT_SAVE_PATH overrides, '' disables. */
|
|
4
|
+
export declare function slotStateDir(): string;
|
|
3
5
|
export declare function launchFlags(spec: LocalModelSpec, model: string): string[];
|
|
4
6
|
export declare class LlamaCppRuntime implements ModelRuntimePort {
|
|
5
7
|
readonly id = "llamacpp";
|
package/dist/llamacpp.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llamacpp.d.ts","sourceRoot":"","sources":["../src/llamacpp.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"llamacpp.d.ts","sourceRoot":"","sources":["../src/llamacpp.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAwBrG,wBAAgB,aAAa,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAG1D;AAcD,6FAA6F;AAC7F,wBAAgB,YAAY,IAAI,MAAM,CAIrC;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAqBzE;AAED,qBAAa,eAAgB,YAAW,gBAAgB;IACtD,QAAQ,CAAC,EAAE,cAAc;IAEnB,MAAM,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;IAWpD,WAAW,CACf,IAAI,EAAE,cAAc,EACpB,IAAI,GAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;KAAO,GACpE,OAAO,CAAC,MAAM,CAAC;IAqBZ,YAAY,CAChB,IAAI,EAAE,cAAc,EACpB,IAAI,GAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAO,GACrD,OAAO,CAAC,kBAAkB,CAAC;CAqD/B"}
|
package/dist/llamacpp.js
CHANGED
|
@@ -1,16 +1,23 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @looprun-ai/models — the llama.cpp ModelRuntimePort (the v0 local runtime).
|
|
3
3
|
*
|
|
4
|
-
* Launch profile = the measured recipe (NON-MTP):
|
|
4
|
+
* Launch profile = the measured recipe (NON-MTP; trunk-warm law measured 2026-07-11):
|
|
5
5
|
* llama-server -m <gguf> --port <port> --jinja -fa on -ngl 99 --mlock --no-mmap -np 1
|
|
6
|
-
* -c <ctx> -ctk <kv> -ctv <kv>
|
|
6
|
+
* -c <ctx> -ctk <kv> -ctv <kv> -ctxcp 64 --cache-ram <MiB> --slot-save-path <dir>
|
|
7
7
|
* - `-np 1` keeps the shared prompt prefix permanently resident (the long-running-agent law).
|
|
8
|
+
* - `-ctxcp` (context checkpoints) + `--cache-ram` (idle-slot RAM prompt cache) are BOTH
|
|
9
|
+
* load-bearing for the qwen3.5/3.6 hybrid family: checkpoints make ANY continuation warm
|
|
10
|
+
* (even same-agent multi-turn), the RAM cache keeps N distinct agent trunks warm across
|
|
11
|
+
* agent switches (warm switch TTFT 0.5–0.6 s vs 11–22 s cold). Never disable either.
|
|
12
|
+
* - `--slot-save-path` enables per-agent trunk STATE FILES (bake once at the trunk boundary,
|
|
13
|
+
* restore ≈20–30 ms after any restart via POST /slots/{i}?action=save|restore). Zero cost
|
|
14
|
+
* when the /slots endpoints are unused.
|
|
8
15
|
* - NO `--spec-type` (MTP measured ~0% speedup on Metal — rejected).
|
|
9
16
|
* - Binary must be ≥ b9780 (older builds cannot load the qwen3.5/3.6 family) — resolved via
|
|
10
17
|
* $LLAMA_BIN, then ~/llamacpp-b9780/bin/llama-server, then `llama-server` on PATH.
|
|
11
18
|
*/
|
|
12
19
|
import { spawn, spawnSync } from 'node:child_process';
|
|
13
|
-
import { existsSync } from 'node:fs';
|
|
20
|
+
import { existsSync, mkdirSync } from 'node:fs';
|
|
14
21
|
import { homedir } from 'node:os';
|
|
15
22
|
import { join } from 'node:path';
|
|
16
23
|
import { modelPath } from './aliases.js';
|
|
@@ -54,10 +61,19 @@ async function healthy(spec) {
|
|
|
54
61
|
return false;
|
|
55
62
|
}
|
|
56
63
|
}
|
|
64
|
+
/** The slot-state dir (`--slot-save-path`); $LLAMA_SLOT_SAVE_PATH overrides, '' disables. */
|
|
65
|
+
export function slotStateDir() {
|
|
66
|
+
const fromEnv = process.env.LLAMA_SLOT_SAVE_PATH;
|
|
67
|
+
if (fromEnv !== undefined)
|
|
68
|
+
return fromEnv.trim();
|
|
69
|
+
return join(homedir(), '.cache', 'looprun', 'slot-states');
|
|
70
|
+
}
|
|
57
71
|
export function launchFlags(spec, model) {
|
|
58
72
|
const port = Number(process.env.LLAMA_PORT ?? spec.port);
|
|
59
73
|
const kv = process.env.LLAMA_KV ?? spec.kv;
|
|
60
74
|
const ctx = Number(process.env.LLAMA_CTX ?? spec.ctx);
|
|
75
|
+
const cacheRam = Number(process.env.LLAMA_CACHE_RAM ?? spec.cacheRamMiB);
|
|
76
|
+
const slotDir = slotStateDir();
|
|
61
77
|
return [
|
|
62
78
|
'-m', model,
|
|
63
79
|
'--port', String(port),
|
|
@@ -69,6 +85,9 @@ export function launchFlags(spec, model) {
|
|
|
69
85
|
'-c', String(ctx),
|
|
70
86
|
'-ctk', kv,
|
|
71
87
|
'-ctv', kv,
|
|
88
|
+
'-ctxcp', '64',
|
|
89
|
+
'--cache-ram', String(cacheRam),
|
|
90
|
+
...(slotDir ? ['--slot-save-path', slotDir] : []),
|
|
72
91
|
];
|
|
73
92
|
}
|
|
74
93
|
export class LlamaCppRuntime {
|
|
@@ -114,6 +133,9 @@ export class LlamaCppRuntime {
|
|
|
114
133
|
if (!binary.path)
|
|
115
134
|
throw new Error(`looprun: ${binary.note}`);
|
|
116
135
|
const model = await this.ensureModel(spec); // fails fast with the pull hint when missing
|
|
136
|
+
const slotDir = slotStateDir();
|
|
137
|
+
if (slotDir)
|
|
138
|
+
mkdirSync(slotDir, { recursive: true }); // llama-server won't create it
|
|
117
139
|
const child = spawn(binary.path, launchFlags(spec, model), {
|
|
118
140
|
stdio: ['ignore', 'ignore', 'ignore'],
|
|
119
141
|
detached: false,
|
package/dist/llamacpp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llamacpp.js","sourceRoot":"","sources":["../src/llamacpp.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"llamacpp.js","sourceRoot":"","sources":["../src/llamacpp.ts"],"names":[],"mappings":"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"}
|
package/dist/port.d.ts
CHANGED
|
@@ -20,10 +20,20 @@ export interface LocalModelSpec {
|
|
|
20
20
|
hfRepo: string;
|
|
21
21
|
/** Approximate download size, for consent prompts. */
|
|
22
22
|
approxSizeGB: number;
|
|
23
|
-
/**
|
|
23
|
+
/**
|
|
24
|
+
* KV cache precision — f16 on every tier (measured 2026-07-11: +23% decode vs q8_0 even on the
|
|
25
|
+
* 4B; weights dominate decode bandwidth, q8_0's per-token dequant is pure overhead). q8_0 is a
|
|
26
|
+
* RAM escape hatch only ($LLAMA_KV=q8_0).
|
|
27
|
+
*/
|
|
24
28
|
kv: 'q8_0' | 'f16';
|
|
25
29
|
/** Context window. */
|
|
26
30
|
ctx: number;
|
|
31
|
+
/**
|
|
32
|
+
* `--cache-ram` MiB — the idle-slot RAM prompt cache that keeps N distinct agent trunks warm
|
|
33
|
+
* on `-np 1` (one agent state ≈ 140–210 MB). NEVER 0 for the qwen3.5/3.6 hybrid family:
|
|
34
|
+
* without it every agent switch is a full re-prefill (11–22 s measured).
|
|
35
|
+
*/
|
|
36
|
+
cacheRamMiB: number;
|
|
27
37
|
/** Default server port. */
|
|
28
38
|
port: number;
|
|
29
39
|
/** The model id the OpenAI-compatible client sends (a label for llama-server). */
|
package/dist/port.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"port.d.ts","sourceRoot":"","sources":["../src/port.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,wDAAwD;AACxD,MAAM,WAAW,cAAc;IAC7B,+CAA+C;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,yDAAyD;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,+DAA+D;IAC/D,UAAU,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,MAAM,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,MAAM,EAAE,MAAM,CAAC;IACf,sDAAsD;IACtD,YAAY,EAAE,MAAM,CAAC;IACrB
|
|
1
|
+
{"version":3,"file":"port.d.ts","sourceRoot":"","sources":["../src/port.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,wDAAwD;AACxD,MAAM,WAAW,cAAc;IAC7B,+CAA+C;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,yDAAyD;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,+DAA+D;IAC/D,UAAU,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,MAAM,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,MAAM,EAAE,MAAM,CAAC;IACf,sDAAsD;IACtD,YAAY,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,EAAE,EAAE,MAAM,GAAG,KAAK,CAAC;IACnB,sBAAsB;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ;;;;OAIG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,kFAAkF;IAClF,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,EAAE,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5D,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC;IAC7C,MAAM,EAAE;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAC1C;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,OAAO,CAAC;IACxB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB;AAED,sEAAsE;AACtE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACrD;;;OAGG;IACH,WAAW,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACtH,6EAA6E;IAC7E,YAAY,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;CACrH"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@looprun-ai/models",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "looprun model story: validated local models (Qwen3.5-4B / Qwen3.6-35B-A3B on llama.cpp, measured flags) behind a ModelRuntimePort, plus the cloud validation model (gemini flash-lite thinking-off with the numeric thinkingBudget:0 trap encoded). localModel('qwen3.5-4b') → AI-SDK model for LoopRunAgent.",
|
|
6
6
|
"keywords": [
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"dependencies": {
|
|
41
41
|
"@ai-sdk/google": "^3.0.0",
|
|
42
42
|
"@ai-sdk/openai": "^3.0.0",
|
|
43
|
-
"@looprun-ai/core": "^0.
|
|
43
|
+
"@looprun-ai/core": "^0.2.0"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
46
|
"@types/node": "^22.0.0",
|