@looprun-ai/models 0.2.0 → 0.4.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 +8 -1
- package/dist/aliases.d.ts.map +1 -1
- package/dist/aliases.js +88 -15
- 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.map +1 -1
- package/dist/llamacpp.js +21 -3
- package/dist/llamacpp.js.map +1 -1
- package/dist/port.d.ts +7 -0
- package/dist/port.d.ts.map +1 -1
- package/package.json +2 -2
package/dist/aliases.d.ts
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
import type { LocalModelSpec } from './port.js';
|
|
2
2
|
export declare const QWEN35_4B: LocalModelSpec;
|
|
3
|
-
|
|
3
|
+
/** RAM24 — the 24 GB-machine tier; the default when nothing is specified. */
|
|
4
|
+
export declare const QWEN36_RAM24: LocalModelSpec;
|
|
5
|
+
/** RAM16 — 16 GB machines: measured 13.4–13.5 GB RSS, ~44 tok/s (q8_0 KV tax). */
|
|
6
|
+
export declare const QWEN36_RAM16: LocalModelSpec;
|
|
7
|
+
/** RAM32 — quality-max local profile. */
|
|
8
|
+
export declare const QWEN36_RAM32: LocalModelSpec;
|
|
9
|
+
/** RAM8 — 8 GB machines: measured 4.62 GB RSS, ~43 tok/s (Qwen3.5-4B + baked MTP head). */
|
|
10
|
+
export declare const QWEN35_RAM8: LocalModelSpec;
|
|
4
11
|
export declare const MODEL_ALIASES: Record<string, LocalModelSpec>;
|
|
5
12
|
export declare function resolveAlias(alias: string): LocalModelSpec;
|
|
6
13
|
/** The resolved model file path (env override → default dir). */
|
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":"AAgCA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAMhD,eAAO,MAAM,SAAS,EAAE,cAavB,CAAC;AAEF,6EAA6E;AAC7E,eAAO,MAAM,YAAY,EAAE,cAc1B,CAAC;AAEF,kFAAkF;AAClF,eAAO,MAAM,YAAY,EAAE,cAc1B,CAAC;AAEF,yCAAyC;AACzC,eAAO,MAAM,YAAY,EAAE,cAc1B,CAAC;AAEF,2FAA2F;AAC3F,eAAO,MAAM,WAAW,EAAE,cAczB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAWxD,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
|
@@ -1,15 +1,32 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @looprun-ai/models — the validated local-model registry.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* - KV precision is measured, not a guess: f16
|
|
6
|
-
* on the 4B
|
|
7
|
-
* saving buys nothing, since weights dominate
|
|
4
|
+
* All entries were validated on the certified benchmark lineage (llama.cpp, Metal + CUDA):
|
|
5
|
+
* - KV precision is measured, not a guess: f16 unless the tier's RAM budget forces q8_0
|
|
6
|
+
* (2026-07-11: f16 = +23% decode vs q8_0 on the 4B, ~1.7× on the 35B-A3B — the GPU
|
|
7
|
+
* dequantizes q8_0 every token while the byte saving buys nothing, since weights dominate
|
|
8
|
+
* decode bandwidth).
|
|
8
9
|
* - cacheRamMiB (`--cache-ram`) is tiered: it is the idle-slot RAM prompt cache that keeps N
|
|
9
10
|
* distinct agent trunks warm across agent switches (measured 2026-07-11: warm switch TTFT
|
|
10
11
|
* 0.5–0.6 s vs 11–22 s cold without it).
|
|
11
|
-
* -
|
|
12
|
+
* - MTP (multi-token prediction): ON for the 35B-A3B tiers since 2026-07-15 — trained MTP
|
|
13
|
+
* heads shipped (`unsloth/Qwen3.6-35B-A3B-MTP-GGUF` bakes the head into every UD quant):
|
|
14
|
+
* acceptance 0.75–0.80, decode 39.6 → 53–58 tok/s, output byte-identical at temp 0
|
|
15
|
+
* (exact-verified = lossless). Works on b9780 AND newer builds (measured on both).
|
|
16
|
+
* The dense 4B stays NON-MTP (~0% measured — draft-forward ≈ token cost there).
|
|
12
17
|
* - Requires a llama.cpp build ≥ b9780 (older builds cannot load the qwen3.5/3.6 family).
|
|
18
|
+
*
|
|
19
|
+
* THE FOUR RUN TIERS (2026-07-15; re-keyed to RAM class 2026-07-15 — old spellings
|
|
20
|
+
* micro/minimal/normal/pro stay accepted). Measured profiles, largest machine first:
|
|
21
|
+
* - ram32 (was pro) — 35B UD-Q3_K_XL + MTP, 17.2 GB weights: ~58 tok/s, the quality-max local profile.
|
|
22
|
+
* - ram24 (was normal, DEFAULT) — 35B UD-IQ2_XXS + MTP, 11.8 GB weights: 88.9% on the certified 117-case
|
|
23
|
+
* eval (ties the 21 GB Q4 record at 56% of the RAM), ~56 tok/s decode, peak RSS ~20.7 GB
|
|
24
|
+
* (fits 24 GB machines) with the full 16 GB prompt cache (cap it via $LLAMA_CACHE_RAM to shrink).
|
|
25
|
+
* - ram16 (was minimal) — same model tuned for 16 GB machines: ctx 24576 (fits a ~21k agent trunk),
|
|
26
|
+
* q8_0 KV, 512 MiB cache. MEASURED: 13.4–13.5 GB RSS, ~44 tok/s decode.
|
|
27
|
+
* - ram8 (was micro) — 8 GB machines: Qwen3.5-4B UD-Q3_K_XL + MTP (2.53 GB), ctx 24576 (fits ~21k
|
|
28
|
+
* agent trunks), q8_0 KV, 384 MiB cache. MEASURED: 4.62 GB RSS, ~43 tok/s decode — leaves
|
|
29
|
+
* ~3.4 GB for the OS + apps. Perf-validated; the 4B's eval quality is far below the 35B tiers.
|
|
13
30
|
*/
|
|
14
31
|
import { homedir } from 'node:os';
|
|
15
32
|
import { join } from 'node:path';
|
|
@@ -30,25 +47,81 @@ export const QWEN35_4B = {
|
|
|
30
47
|
port: 8081,
|
|
31
48
|
servedId: 'qwen3.5-4b-gguf',
|
|
32
49
|
};
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
50
|
+
/** RAM24 — the 24 GB-machine tier; the default when nothing is specified. */
|
|
51
|
+
export const QWEN36_RAM24 = {
|
|
52
|
+
alias: 'qwen3.6-35b-ram24',
|
|
53
|
+
note: '24 GB-machine tier (DEFAULT): UD-IQ2_XXS + baked MTP head (11.8 GB), peak RSS ~20.7 GB. 88.9% certified eval — ties the 21 GB Q4 record — at ~56 tok/s decode.',
|
|
54
|
+
file: 'Qwen3.6-35B-A3B-UD-IQ2_XXS.gguf',
|
|
55
|
+
defaultDir: home('models', 'qwen36-mtp-gguf'),
|
|
56
|
+
envVar: 'QWEN36_35B_GGUF',
|
|
57
|
+
hfRepo: 'unsloth/Qwen3.6-35B-A3B-MTP-GGUF',
|
|
58
|
+
approxSizeGB: 11.8,
|
|
59
|
+
kv: 'f16',
|
|
60
|
+
ctx: 65536,
|
|
61
|
+
cacheRamMiB: 16384,
|
|
62
|
+
port: 8081,
|
|
63
|
+
servedId: 'qwen3.6-35b-gguf',
|
|
64
|
+
specType: 'draft-mtp',
|
|
65
|
+
};
|
|
66
|
+
/** RAM16 — 16 GB machines: measured 13.4–13.5 GB RSS, ~44 tok/s (q8_0 KV tax). */
|
|
67
|
+
export const QWEN36_RAM16 = {
|
|
68
|
+
alias: 'qwen3.6-35b-ram16',
|
|
69
|
+
note: '16 GB-machine tier: same IQ2_XXS+MTP model, ctx 24576 (fits a ~21k agent trunk), q8_0 KV, 512 MiB cache. Measured 13.4–13.5 GB RSS, ~44 tok/s.',
|
|
70
|
+
file: 'Qwen3.6-35B-A3B-UD-IQ2_XXS.gguf',
|
|
71
|
+
defaultDir: home('models', 'qwen36-mtp-gguf'),
|
|
38
72
|
envVar: 'QWEN36_35B_GGUF',
|
|
39
|
-
hfRepo: 'unsloth/Qwen3.6-35B-A3B-GGUF',
|
|
40
|
-
approxSizeGB:
|
|
73
|
+
hfRepo: 'unsloth/Qwen3.6-35B-A3B-MTP-GGUF',
|
|
74
|
+
approxSizeGB: 11.8,
|
|
75
|
+
kv: 'q8_0',
|
|
76
|
+
ctx: 24576,
|
|
77
|
+
cacheRamMiB: 512,
|
|
78
|
+
port: 8081,
|
|
79
|
+
servedId: 'qwen3.6-35b-gguf',
|
|
80
|
+
specType: 'draft-mtp',
|
|
81
|
+
};
|
|
82
|
+
/** RAM32 — quality-max local profile. */
|
|
83
|
+
export const QWEN36_RAM32 = {
|
|
84
|
+
alias: 'qwen3.6-35b-ram32',
|
|
85
|
+
note: '32 GB-machine quality-max tier: UD-Q3_K_XL + baked MTP head (17.2 GB), ~58 tok/s decode, f16 KV + 64k ctx.',
|
|
86
|
+
file: 'Qwen3.6-35B-A3B-UD-Q3_K_XL.gguf',
|
|
87
|
+
defaultDir: home('models', 'qwen36-mtp-gguf'),
|
|
88
|
+
envVar: 'QWEN36_RAM32_GGUF',
|
|
89
|
+
hfRepo: 'unsloth/Qwen3.6-35B-A3B-MTP-GGUF',
|
|
90
|
+
approxSizeGB: 17.2,
|
|
41
91
|
kv: 'f16',
|
|
42
92
|
ctx: 65536,
|
|
43
93
|
cacheRamMiB: 16384,
|
|
44
94
|
port: 8081,
|
|
45
95
|
servedId: 'qwen3.6-35b-gguf',
|
|
96
|
+
specType: 'draft-mtp',
|
|
97
|
+
};
|
|
98
|
+
/** RAM8 — 8 GB machines: measured 4.62 GB RSS, ~43 tok/s (Qwen3.5-4B + baked MTP head). */
|
|
99
|
+
export const QWEN35_RAM8 = {
|
|
100
|
+
alias: 'qwen3.5-4b-ram8',
|
|
101
|
+
note: '8 GB-machine tier: Qwen3.5-4B UD-Q3_K_XL + baked MTP head (2.53 GB), ctx 24576 (fits ~21k agent trunks), q8_0 KV, 384 MiB cache. Measured 4.62 GB RSS, ~43 tok/s — leaves ~3.4 GB for OS + apps. Deep-context-heavy agents can trade back: $LLAMA_KV=f16 $LLAMA_CTX=16384.',
|
|
102
|
+
file: 'Qwen3.5-4B-UD-Q3_K_XL.gguf',
|
|
103
|
+
defaultDir: home('models', 'qwen35-mtp-gguf'),
|
|
104
|
+
envVar: 'QWEN35_RAM8_GGUF',
|
|
105
|
+
hfRepo: 'unsloth/Qwen3.5-4B-MTP-GGUF',
|
|
106
|
+
approxSizeGB: 2.5,
|
|
107
|
+
kv: 'q8_0',
|
|
108
|
+
ctx: 24576,
|
|
109
|
+
cacheRamMiB: 384,
|
|
110
|
+
port: 8081,
|
|
111
|
+
servedId: 'qwen3.5-4b-gguf',
|
|
112
|
+
specType: 'draft-mtp',
|
|
46
113
|
};
|
|
47
114
|
export const MODEL_ALIASES = {
|
|
48
115
|
[QWEN35_4B.alias]: QWEN35_4B,
|
|
49
|
-
[
|
|
50
|
-
|
|
51
|
-
|
|
116
|
+
[QWEN35_RAM8.alias]: QWEN35_RAM8,
|
|
117
|
+
[QWEN36_RAM24.alias]: QWEN36_RAM24,
|
|
118
|
+
[QWEN36_RAM16.alias]: QWEN36_RAM16,
|
|
119
|
+
[QWEN36_RAM32.alias]: QWEN36_RAM32,
|
|
120
|
+
// short spellings
|
|
121
|
+
ram8: QWEN35_RAM8,
|
|
122
|
+
ram16: QWEN36_RAM16,
|
|
123
|
+
ram24: QWEN36_RAM24,
|
|
124
|
+
ram32: QWEN36_RAM32,
|
|
52
125
|
};
|
|
53
126
|
export function resolveAlias(alias) {
|
|
54
127
|
const spec = MODEL_ALIASES[alias];
|
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":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { LocalModelSpec, ModelRuntimePort } from './port.js';
|
|
2
2
|
export type { LocalModelSpec, ModelRuntimePort, RuntimeStatus, EnsureServerResult } from './port.js';
|
|
3
|
-
export { MODEL_ALIASES, QWEN35_4B,
|
|
3
|
+
export { MODEL_ALIASES, QWEN35_4B, QWEN35_RAM8, QWEN36_RAM16, QWEN36_RAM24, QWEN36_RAM32, resolveAlias, modelPath, } from './aliases.js';
|
|
4
4
|
export { LlamaCppRuntime, launchFlags, serverBaseURL, slotStateDir } from './llamacpp.js';
|
|
5
5
|
export { downloadModel, downloadUrl } from './download.js';
|
|
6
6
|
export interface LocalModelOptions {
|
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,
|
|
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,EACL,aAAa,EACb,SAAS,EACT,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,SAAS,GACV,MAAM,cAAc,CAAC;AACtB,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
|
@@ -9,7 +9,7 @@ import { createGoogleGenerativeAI } from '@ai-sdk/google';
|
|
|
9
9
|
import { geminiThinkingOff } from '@looprun-ai/core';
|
|
10
10
|
import { resolveAlias, modelPath } from './aliases.js';
|
|
11
11
|
import { LlamaCppRuntime, serverBaseURL } from './llamacpp.js';
|
|
12
|
-
export { MODEL_ALIASES, QWEN35_4B,
|
|
12
|
+
export { MODEL_ALIASES, QWEN35_4B, QWEN35_RAM8, QWEN36_RAM16, QWEN36_RAM24, QWEN36_RAM32, resolveAlias, modelPath, } from './aliases.js';
|
|
13
13
|
export { LlamaCppRuntime, launchFlags, serverBaseURL, slotStateDir } from './llamacpp.js';
|
|
14
14
|
export { downloadModel, downloadUrl } from './download.js';
|
|
15
15
|
/**
|
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,
|
|
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,EACL,aAAa,EACb,SAAS,EACT,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,SAAS,GACV,MAAM,cAAc,CAAC;AACtB,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.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":"AA4BA,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,CA4BzE;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;CA4D/B"}
|
package/dist/llamacpp.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @looprun-ai/models — the llama.cpp ModelRuntimePort (the v0 local runtime).
|
|
3
3
|
*
|
|
4
|
-
* Launch profile = the measured recipe (
|
|
4
|
+
* Launch profile = the measured recipe (trunk-warm law measured 2026-07-11; MTP added 2026-07-15):
|
|
5
5
|
* llama-server -m <gguf> --port <port> --jinja -fa on -ngl 99 --mlock --no-mmap -np 1
|
|
6
6
|
* -c <ctx> -ctk <kv> -ctv <kv> -ctxcp 64 --cache-ram <MiB> --slot-save-path <dir>
|
|
7
|
+
* [--spec-type draft-mtp]
|
|
7
8
|
* - `-np 1` keeps the shared prompt prefix permanently resident (the long-running-agent law).
|
|
8
9
|
* - `-ctxcp` (context checkpoints) + `--cache-ram` (idle-slot RAM prompt cache) are BOTH
|
|
9
10
|
* load-bearing for the qwen3.5/3.6 hybrid family: checkpoints make ANY continuation warm
|
|
@@ -12,14 +13,17 @@
|
|
|
12
13
|
* - `--slot-save-path` enables per-agent trunk STATE FILES (bake once at the trunk boundary,
|
|
13
14
|
* restore ≈20–30 ms after any restart via POST /slots/{i}?action=save|restore). Zero cost
|
|
14
15
|
* when the /slots endpoints are unused.
|
|
15
|
-
* -
|
|
16
|
+
* - `--spec-type draft-mtp` on specs with `specType` set (2026-07-15): checkpoints with a baked
|
|
17
|
+
* TRAINED MTP head (unsloth *-MTP-GGUF) decode 1.4× faster, lossless (exact-verified,
|
|
18
|
+
* byte-identical at temp 0; measured on b9780 AND b10016). Headless checkpoints and the dense
|
|
19
|
+
* 4B stay non-MTP (~0% there). $LLAMA_SPEC_TYPE='' disables.
|
|
16
20
|
* - Binary must be ≥ b9780 (older builds cannot load the qwen3.5/3.6 family) — resolved via
|
|
17
21
|
* $LLAMA_BIN, then ~/llamacpp-b9780/bin/llama-server, then `llama-server` on PATH.
|
|
18
22
|
*/
|
|
19
23
|
import { spawn, spawnSync } from 'node:child_process';
|
|
20
24
|
import { existsSync, mkdirSync } from 'node:fs';
|
|
21
25
|
import { homedir } from 'node:os';
|
|
22
|
-
import { join } from 'node:path';
|
|
26
|
+
import { dirname, join } from 'node:path';
|
|
23
27
|
import { modelPath } from './aliases.js';
|
|
24
28
|
import { downloadModel } from './download.js';
|
|
25
29
|
function resolveBinary() {
|
|
@@ -74,6 +78,12 @@ export function launchFlags(spec, model) {
|
|
|
74
78
|
const ctx = Number(process.env.LLAMA_CTX ?? spec.ctx);
|
|
75
79
|
const cacheRam = Number(process.env.LLAMA_CACHE_RAM ?? spec.cacheRamMiB);
|
|
76
80
|
const slotDir = slotStateDir();
|
|
81
|
+
// Speculative decoding (D4b, 2026-07-15): '--spec-type draft-mtp' for checkpoints with a baked
|
|
82
|
+
// trained MTP head — lossless (exact-verified, byte-identical at temp 0), 1.4× decode on the
|
|
83
|
+
// 35B-A3B. $LLAMA_SPEC_TYPE overrides the spec's mode; set it to '' to disable.
|
|
84
|
+
const specType = process.env.LLAMA_SPEC_TYPE !== undefined
|
|
85
|
+
? process.env.LLAMA_SPEC_TYPE.trim()
|
|
86
|
+
: (spec.specType ?? '');
|
|
77
87
|
return [
|
|
78
88
|
'-m', model,
|
|
79
89
|
'--port', String(port),
|
|
@@ -88,6 +98,7 @@ export function launchFlags(spec, model) {
|
|
|
88
98
|
'-ctxcp', '64',
|
|
89
99
|
'--cache-ram', String(cacheRam),
|
|
90
100
|
...(slotDir ? ['--slot-save-path', slotDir] : []),
|
|
101
|
+
...(specType ? ['--spec-type', specType] : []),
|
|
91
102
|
];
|
|
92
103
|
}
|
|
93
104
|
export class LlamaCppRuntime {
|
|
@@ -136,9 +147,16 @@ export class LlamaCppRuntime {
|
|
|
136
147
|
const slotDir = slotStateDir();
|
|
137
148
|
if (slotDir)
|
|
138
149
|
mkdirSync(slotDir, { recursive: true }); // llama-server won't create it
|
|
150
|
+
// A llama.cpp SOURCE build's @rpath points at its (often /tmp) build dir, which the OS may clear
|
|
151
|
+
// on reboot → `dyld: Library not loaded: @rpath/lib…dylib` (Abort trap 6). The dylibs ship NEXT
|
|
152
|
+
// to the binary, so point the loader there. macOS-only var (ignored on Linux); we set it directly
|
|
153
|
+
// in the child env (NOT via `nohup`, which is SIP-protected and strips DYLD_*). Existing value wins.
|
|
154
|
+
const libDir = dirname(binary.path);
|
|
155
|
+
const dyld = process.env.DYLD_FALLBACK_LIBRARY_PATH;
|
|
139
156
|
const child = spawn(binary.path, launchFlags(spec, model), {
|
|
140
157
|
stdio: ['ignore', 'ignore', 'ignore'],
|
|
141
158
|
detached: false,
|
|
159
|
+
env: { ...process.env, DYLD_FALLBACK_LIBRARY_PATH: dyld ? `${libDir}:${dyld}` : `${libDir}:/usr/local/lib:/usr/lib` },
|
|
142
160
|
});
|
|
143
161
|
// A server WE spawned must not outlive the process that asked for it (a leaked llama-server
|
|
144
162
|
// can hold gigabytes mlock'd). stop() removes the hook.
|
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
|
@@ -38,6 +38,13 @@ export interface LocalModelSpec {
|
|
|
38
38
|
port: number;
|
|
39
39
|
/** The model id the OpenAI-compatible client sends (a label for llama-server). */
|
|
40
40
|
servedId: string;
|
|
41
|
+
/**
|
|
42
|
+
* Speculative-decoding mode (`--spec-type`), e.g. 'draft-mtp' for checkpoints that ship a
|
|
43
|
+
* trained MTP head baked into the GGUF (measured 2026-07-15: accept 0.75–0.80, decode
|
|
44
|
+
* 39.6 → 53–58 tok/s on the 35B-A3B, output byte-identical at temp 0 — lossless).
|
|
45
|
+
* Omit for models without a usable head ($LLAMA_SPEC_TYPE overrides; '' disables).
|
|
46
|
+
*/
|
|
47
|
+
specType?: string;
|
|
41
48
|
}
|
|
42
49
|
export interface RuntimeStatus {
|
|
43
50
|
runtime: string;
|
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;;;;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;
|
|
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;IACjB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;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.4.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.4.0"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
46
|
"@types/node": "^22.0.0",
|