@kenkaiiii/ggcoder 5.49.6 → 5.49.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app-sidecar.js +34 -9
- package/dist/app-sidecar.js.map +1 -1
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +20 -4
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/mcp/defaults.d.ts.map +1 -1
- package/dist/core/mcp/defaults.js +5 -2
- package/dist/core/mcp/defaults.js.map +1 -1
- package/dist/hf-pull.d.ts +38 -2
- package/dist/hf-pull.d.ts.map +1 -1
- package/dist/hf-pull.js +122 -6
- package/dist/hf-pull.js.map +1 -1
- package/dist/ui/App.d.ts.map +1 -1
- package/dist/ui/App.js +1 -1
- package/dist/ui/App.js.map +1 -1
- package/dist/ui/prompt-routing.d.ts +2 -2
- package/dist/ui/prompt-routing.d.ts.map +1 -1
- package/dist/ui/prompt-routing.js +11 -6
- package/dist/ui/prompt-routing.js.map +1 -1
- package/dist/ui/submit-prompt-command.d.ts.map +1 -1
- package/dist/ui/submit-prompt-command.js +1 -1
- package/dist/ui/submit-prompt-command.js.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../../src/core/mcp/defaults.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,MAAM,CAAC,MAAM,mBAAmB,GAAsB;IACpD,4EAA4E;IAC5E,0EAA0E;IAC1E,0EAA0E;IAC1E,2EAA2E;IAC3E,6DAA6D;IAC7D,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,2BAA2B,CAAC,EAAE;CACtF,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,QAAkB,EAAE,MAAe;IAC/D,MAAM,OAAO,GAAG,CAAC,GAAG,mBAAmB,CAAC,CAAC;IAEzC,IAAI,QAAQ,KAAK,KAAK,IAAI,MAAM,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,EAAE,aAAa,EAAE,UAAU,MAAM,EAAE,EAAE,CAAC;QAEtD,
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../../src/core/mcp/defaults.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,MAAM,CAAC,MAAM,mBAAmB,GAAsB;IACpD,4EAA4E;IAC5E,0EAA0E;IAC1E,0EAA0E;IAC1E,2EAA2E;IAC3E,6DAA6D;IAC7D,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,2BAA2B,CAAC,EAAE;CACtF,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,QAAkB,EAAE,MAAe;IAC/D,MAAM,OAAO,GAAG,CAAC,GAAG,mBAAmB,CAAC,CAAC;IAEzC,IAAI,QAAQ,KAAK,KAAK,IAAI,MAAM,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,EAAE,aAAa,EAAE,UAAU,MAAM,EAAE,EAAE,CAAC;QAEtD,wEAAwE;QACxE,4EAA4E;QAC5E,yEAAyE;QACzE,+DAA+D;QAC/D,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,CAAC,IAAI,EAAE,kBAAkB,CAAC;YAChC,GAAG,EAAE;gBACH,YAAY,EAAE,MAAM;gBACpB,SAAS,EAAE,KAAK;aACjB;YACD,OAAO,EAAE,OAAO;SACjB,CAAC,CAAC;QAEH,aAAa;QACb,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,gBAAgB;YACtB,GAAG,EAAE,+CAA+C;YACpD,OAAO,EAAE,OAAO;YAChB,OAAO,EAAE,MAAM;SAChB,CAAC,CAAC;QAEH,4CAA4C;QAC5C,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,gBAAgB;YACtB,GAAG,EAAE,yCAAyC;YAC9C,OAAO,EAAE,OAAO;YAChB,OAAO,EAAE,MAAM;SAChB,CAAC,CAAC;QAEH,gCAAgC;QAChC,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,WAAW;YACjB,GAAG,EAAE,oCAAoC;YACzC,OAAO,EAAE,OAAO;YAChB,OAAO,EAAE,MAAM;SAChB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,QAAkB,EAClB,MAA0B,EAC1B,GAAW,EACX,IAAsC;IAEtC,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACjD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1D,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,CAAC;IACtC,2EAA2E;IAC3E,0EAA0E;IAC1E,8EAA8E;IAC9E,oEAAoE;IACpE,MAAM,WAAW,GAAG,MAAM;SACvB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC;SACxE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;SACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,QAAQ,EAAE,GAAG,WAAW,CAAC,CAAC;AACvC,CAAC"}
|
package/dist/hf-pull.d.ts
CHANGED
|
@@ -14,12 +14,17 @@ export interface HfSearchRow {
|
|
|
14
14
|
likes: number;
|
|
15
15
|
updatedAt: string | null;
|
|
16
16
|
}
|
|
17
|
-
/**
|
|
17
|
+
/**
|
|
18
|
+
* Map a Hub `/api/models?search=` result entry to what the dropdown shows.
|
|
19
|
+
* Entries without parsed `gguf` metadata are dropped: the Hub tags plenty of
|
|
20
|
+
* safetensors-only repos as GGUF-adjacent, and those can never be pulled.
|
|
21
|
+
*/
|
|
18
22
|
export declare function toHfSearchRow(entry: {
|
|
19
23
|
id?: unknown;
|
|
20
24
|
downloads?: unknown;
|
|
21
25
|
likes?: unknown;
|
|
22
26
|
lastModified?: unknown;
|
|
27
|
+
gguf?: unknown;
|
|
23
28
|
}): HfSearchRow | null;
|
|
24
29
|
export interface GgufFile {
|
|
25
30
|
/** Filename, e.g. `qwen3-coder-30b-q4_k_m.gguf`. */
|
|
@@ -33,6 +38,33 @@ export interface QuantChoice {
|
|
|
33
38
|
}
|
|
34
39
|
/** Quant token from a GGUF filename (`...-q4_k_m.gguf` → `Q4_K_M`), if any. */
|
|
35
40
|
export declare function quantFromFilename(path: string): string | null;
|
|
41
|
+
/**
|
|
42
|
+
* `...-00001-of-00009.gguf` — a shard of a split model. Ollama's registry
|
|
43
|
+
* cannot pull sharded GGUF (ollama/ollama#5245), so these are never candidates.
|
|
44
|
+
*/
|
|
45
|
+
export declare function isGgufShard(path: string): boolean;
|
|
46
|
+
/**
|
|
47
|
+
* GGUF files in a model repo that are not the model:
|
|
48
|
+
*
|
|
49
|
+
* - `mmproj-*` / `*projector*` — vision projectors, loaded alongside weights.
|
|
50
|
+
* - `imatrix*` — quantization calibration data.
|
|
51
|
+
* - `mtp-*` / `dspark-*` / anything under `MTP/` — tiny speculative-decoding
|
|
52
|
+
* draft models.
|
|
53
|
+
*
|
|
54
|
+
* All three would otherwise be installed *as* the model: projectors are the
|
|
55
|
+
* smallest file (winning the size fallback) and drafts often carry a more
|
|
56
|
+
* preferred quant tag than the real weights (`mtp-…-Q4_0.gguf` beside
|
|
57
|
+
* `…-qat-UD-Q4_K_XL.gguf`).
|
|
58
|
+
*
|
|
59
|
+
* simplification: matched by name, since size does not separate them — across
|
|
60
|
+
* the top GGUF repos, drafts run 6–23% of the largest file while legitimate
|
|
61
|
+
* IQ1/IQ2 quants run 8–13%. Ceiling: a vendor inventing a new draft prefix is
|
|
62
|
+
* missed until it is added here. Upgrade path: the Hub's per-file `gguf`
|
|
63
|
+
* metadata exposes parameter counts, which separate drafts from quants exactly.
|
|
64
|
+
*/
|
|
65
|
+
export declare function isGgufCompanion(path: string): boolean;
|
|
66
|
+
/** Every pullable GGUF in a repo tree: real models, no shards, no companions. */
|
|
67
|
+
export declare function ggufCandidates(files: readonly GgufFile[]): GgufFile[];
|
|
36
68
|
/**
|
|
37
69
|
* Pick which GGUF file `ollama pull` should fetch. Deterministic: the first
|
|
38
70
|
* entry of `QUANT_PREFERENCE` present, else the smallest file (multi-quant
|
|
@@ -40,12 +72,16 @@ export declare function quantFromFilename(path: string): string | null;
|
|
|
40
72
|
* ships a single unnamed GGUF.
|
|
41
73
|
*/
|
|
42
74
|
export declare function pickGgufQuant(files: readonly GgufFile[]): QuantChoice | null;
|
|
75
|
+
/** Shown when a repo only ships split GGUF shards — an Ollama limitation. */
|
|
76
|
+
export declare const SHARDED_MESSAGE = "That repo only ships split GGUF shards, which Ollama can't pull. Pick a repo with single-file quants (bartowski, lmstudio-community, or the non-split unsloth build).";
|
|
43
77
|
export type PullPhase = "preparing" | "downloading" | "verifying" | "success" | "error";
|
|
78
|
+
/** True when `next` is a real step forward from `current` (never backwards). */
|
|
79
|
+
export declare function advancesPhase(current: PullPhase, next: PullPhase): boolean;
|
|
44
80
|
export interface PullProgress {
|
|
45
81
|
phase: PullPhase;
|
|
46
82
|
/** 0-100 while downloading; sticky afterwards. */
|
|
47
83
|
percent?: number;
|
|
48
|
-
/**
|
|
84
|
+
/** Display text, e.g. `161 MB / 18 GB · 11 MB/s · 26m8s`. */
|
|
49
85
|
detail?: string;
|
|
50
86
|
}
|
|
51
87
|
/**
|
package/dist/hf-pull.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hf-pull.d.ts","sourceRoot":"","sources":["../src/hf-pull.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,mEAAmE;AACnE,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED
|
|
1
|
+
{"version":3,"file":"hf-pull.d.ts","sourceRoot":"","sources":["../src/hf-pull.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,mEAAmE;AACnE,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE;IACnC,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,GAAG,WAAW,GAAG,IAAI,CASrB;AAED,MAAM,WAAW,QAAQ;IACvB,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,+EAA+E;IAC/E,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,IAAI,EAAE,QAAQ,CAAC;CAChB;AAKD,+EAA+E;AAC/E,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAI7D;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEjD;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAcrD;AAED,iFAAiF;AACjF,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,GAAG,QAAQ,EAAE,CAKrE;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,GAAG,WAAW,GAAG,IAAI,CAS5E;AAED,6EAA6E;AAC7E,eAAO,MAAM,eAAe,0KAC6I,CAAC;AAE1K,MAAM,MAAM,SAAS,GAAG,WAAW,GAAG,aAAa,GAAG,WAAW,GAAG,SAAS,GAAG,OAAO,CAAC;AAgBxF,gFAAgF;AAChF,wBAAgB,aAAa,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAE1E;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,SAAS,CAAC;IACjB,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAmCD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAwBrE;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAyB7D;AAED,mEAAmE;AACnE,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAI7C"}
|
package/dist/hf-pull.js
CHANGED
|
@@ -10,10 +10,16 @@
|
|
|
10
10
|
export function isValidHfRepoId(id) {
|
|
11
11
|
return /^[A-Za-z0-9][A-Za-z0-9._-]{0,127}\/[A-Za-z0-9][A-Za-z0-9._-]{0,127}$/.test(id);
|
|
12
12
|
}
|
|
13
|
-
/**
|
|
13
|
+
/**
|
|
14
|
+
* Map a Hub `/api/models?search=` result entry to what the dropdown shows.
|
|
15
|
+
* Entries without parsed `gguf` metadata are dropped: the Hub tags plenty of
|
|
16
|
+
* safetensors-only repos as GGUF-adjacent, and those can never be pulled.
|
|
17
|
+
*/
|
|
14
18
|
export function toHfSearchRow(entry) {
|
|
15
19
|
if (typeof entry.id !== "string" || !isValidHfRepoId(entry.id))
|
|
16
20
|
return null;
|
|
21
|
+
if (entry.gguf === undefined || entry.gguf === null)
|
|
22
|
+
return null;
|
|
17
23
|
return {
|
|
18
24
|
id: entry.id,
|
|
19
25
|
downloads: typeof entry.downloads === "number" && entry.downloads > 0 ? entry.downloads : 0,
|
|
@@ -29,6 +35,50 @@ export function quantFromFilename(path) {
|
|
|
29
35
|
const match = /[-.]((?:i|t)?q\d[_a-z0-9]*)\.gguf$/i.exec(base);
|
|
30
36
|
return match ? match[1].toUpperCase() : null;
|
|
31
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* `...-00001-of-00009.gguf` — a shard of a split model. Ollama's registry
|
|
40
|
+
* cannot pull sharded GGUF (ollama/ollama#5245), so these are never candidates.
|
|
41
|
+
*/
|
|
42
|
+
export function isGgufShard(path) {
|
|
43
|
+
return /-\d{4,5}-of-\d{4,5}\.gguf$/i.test(path.split("/").pop() ?? path);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* GGUF files in a model repo that are not the model:
|
|
47
|
+
*
|
|
48
|
+
* - `mmproj-*` / `*projector*` — vision projectors, loaded alongside weights.
|
|
49
|
+
* - `imatrix*` — quantization calibration data.
|
|
50
|
+
* - `mtp-*` / `dspark-*` / anything under `MTP/` — tiny speculative-decoding
|
|
51
|
+
* draft models.
|
|
52
|
+
*
|
|
53
|
+
* All three would otherwise be installed *as* the model: projectors are the
|
|
54
|
+
* smallest file (winning the size fallback) and drafts often carry a more
|
|
55
|
+
* preferred quant tag than the real weights (`mtp-…-Q4_0.gguf` beside
|
|
56
|
+
* `…-qat-UD-Q4_K_XL.gguf`).
|
|
57
|
+
*
|
|
58
|
+
* simplification: matched by name, since size does not separate them — across
|
|
59
|
+
* the top GGUF repos, drafts run 6–23% of the largest file while legitimate
|
|
60
|
+
* IQ1/IQ2 quants run 8–13%. Ceiling: a vendor inventing a new draft prefix is
|
|
61
|
+
* missed until it is added here. Upgrade path: the Hub's per-file `gguf`
|
|
62
|
+
* metadata exposes parameter counts, which separate drafts from quants exactly.
|
|
63
|
+
*/
|
|
64
|
+
export function isGgufCompanion(path) {
|
|
65
|
+
const segments = path.toLowerCase().split("/");
|
|
66
|
+
const base = segments.pop() ?? path.toLowerCase();
|
|
67
|
+
if (segments.includes("mtp"))
|
|
68
|
+
return true;
|
|
69
|
+
// `mmproj` appears mid-name too (`llava-…-mmproj-f16.gguf`). The rest are
|
|
70
|
+
// anchored: `DeepSeek-V4-Flash-MTP-Q4K-Q8_0-F32.gguf` is a real model, and
|
|
71
|
+
// `…-IQ4_XS-imat.gguf` is a real imatrix-*quantized* model.
|
|
72
|
+
return (base.includes("mmproj") ||
|
|
73
|
+
base.includes("projector") ||
|
|
74
|
+
base.startsWith("imatrix") ||
|
|
75
|
+
base.startsWith("mtp-") ||
|
|
76
|
+
base.startsWith("dspark-"));
|
|
77
|
+
}
|
|
78
|
+
/** Every pullable GGUF in a repo tree: real models, no shards, no companions. */
|
|
79
|
+
export function ggufCandidates(files) {
|
|
80
|
+
return files.filter((f) => f.path.toLowerCase().endsWith(".gguf") && !isGgufShard(f.path) && !isGgufCompanion(f.path));
|
|
81
|
+
}
|
|
32
82
|
/**
|
|
33
83
|
* Pick which GGUF file `ollama pull` should fetch. Deterministic: the first
|
|
34
84
|
* entry of `QUANT_PREFERENCE` present, else the smallest file (multi-quant
|
|
@@ -36,7 +86,7 @@ export function quantFromFilename(path) {
|
|
|
36
86
|
* ships a single unnamed GGUF.
|
|
37
87
|
*/
|
|
38
88
|
export function pickGgufQuant(files) {
|
|
39
|
-
const ggufs = files
|
|
89
|
+
const ggufs = ggufCandidates(files);
|
|
40
90
|
if (ggufs.length === 0)
|
|
41
91
|
return null;
|
|
42
92
|
for (const quant of QUANT_PREFERENCE) {
|
|
@@ -47,10 +97,58 @@ export function pickGgufQuant(files) {
|
|
|
47
97
|
const smallest = ggufs.reduce((a, b) => (a.sizeBytes <= b.sizeBytes ? a : b));
|
|
48
98
|
return { tag: quantFromFilename(smallest.path), file: smallest };
|
|
49
99
|
}
|
|
100
|
+
/** Shown when a repo only ships split GGUF shards — an Ollama limitation. */
|
|
101
|
+
export const SHARDED_MESSAGE = "That repo only ships split GGUF shards, which Ollama can't pull. Pick a repo with single-file quants (bartowski, lmstudio-community, or the non-split unsloth build).";
|
|
102
|
+
/**
|
|
103
|
+
* A pull only moves forward. ollama redraws a multi-line TUI frame, so a single
|
|
104
|
+
* chunk carries both `pulling manifest` and the live progress line — applied in
|
|
105
|
+
* order that flipped the modal preparing→downloading→preparing several times a
|
|
106
|
+
* second, which is the flicker. Ranked so a stale line can never win.
|
|
107
|
+
*/
|
|
108
|
+
const PHASE_ORDER = {
|
|
109
|
+
preparing: 0,
|
|
110
|
+
downloading: 1,
|
|
111
|
+
verifying: 2,
|
|
112
|
+
success: 3,
|
|
113
|
+
error: 4,
|
|
114
|
+
};
|
|
115
|
+
/** True when `next` is a real step forward from `current` (never backwards). */
|
|
116
|
+
export function advancesPhase(current, next) {
|
|
117
|
+
return PHASE_ORDER[next] >= PHASE_ORDER[current];
|
|
118
|
+
}
|
|
50
119
|
/** Strip terminal control noise (cursor moves, enable/disable, spinner
|
|
51
120
|
* frames) that ollama emits even when piped, so lines stay readable. */
|
|
52
121
|
// eslint-disable-next-line no-control-regex -- stripping control characters is the point
|
|
53
122
|
const ANSI_NOISE = /\u001b\[[0-9;?]*[A-Za-z]|[\u001b\u0000-\u0008\u000b-\u001f]|[\u2800-\u28ff]/g;
|
|
123
|
+
/** `1.2 GB`, `505 KB`, `18 GB` — ollama pads the number, so allow inner spaces. */
|
|
124
|
+
const SIZE = String.raw `\d[\d.]*\s*[KMGT]?B`;
|
|
125
|
+
const TRANSFER = new RegExp(String.raw `(${SIZE})\s*/\s*(${SIZE})`);
|
|
126
|
+
const RATE = new RegExp(String.raw `(${SIZE}/s)`);
|
|
127
|
+
/** Trailing `26m8s` / `6s` / `1h2m3s`, before any glued-on next frame. */
|
|
128
|
+
const ETA = /(?:\d+h)?(?:\d+m)?\d+s(?=\D|$)/;
|
|
129
|
+
/**
|
|
130
|
+
* Build the one-line status under the bar. Fixed field order and no ASCII art,
|
|
131
|
+
* so consecutive frames differ only in their numbers — ollama's own rendering
|
|
132
|
+
* is a redrawn TUI frame (progress bar glyphs, cursor-up, the next frame's text
|
|
133
|
+
* glued onto the same line) that reflowed and flickered when shown verbatim.
|
|
134
|
+
*/
|
|
135
|
+
function formatTransfer(text) {
|
|
136
|
+
const transfer = TRANSFER.exec(text);
|
|
137
|
+
if (!transfer)
|
|
138
|
+
return undefined;
|
|
139
|
+
const tidy = (s) => s.replace(/\s+/g, " ").trim();
|
|
140
|
+
const parts = [`${tidy(transfer[1])} / ${tidy(transfer[2])}`];
|
|
141
|
+
// Search after the transferred/total pair so `18 GB` can't be read as a rate
|
|
142
|
+
// and the ETA can't match digits inside the sizes.
|
|
143
|
+
const rest = text.slice(transfer.index + transfer[0].length);
|
|
144
|
+
const rate = RATE.exec(rest);
|
|
145
|
+
if (rate)
|
|
146
|
+
parts.push(tidy(rate[1]));
|
|
147
|
+
const eta = ETA.exec(rate ? rest.slice(rate.index + rate[0].length) : rest);
|
|
148
|
+
if (eta)
|
|
149
|
+
parts.push(eta[0]);
|
|
150
|
+
return parts.join(" · ");
|
|
151
|
+
}
|
|
54
152
|
/**
|
|
55
153
|
* Parse one non-TTY `ollama pull` line. The CLI prints status verbs plus
|
|
56
154
|
* `<sha>: <pct>% <done>/<total> <rate>` lines to stderr; any unrecognized line
|
|
@@ -64,18 +162,23 @@ export function parseOllamaPullLine(line) {
|
|
|
64
162
|
if (text === "success")
|
|
65
163
|
return { phase: "success", percent: 100 };
|
|
66
164
|
if (text.startsWith("verifying") || text.startsWith("writing manifest")) {
|
|
67
|
-
return { phase: "verifying", percent: 100, detail:
|
|
165
|
+
return { phase: "verifying", percent: 100, detail: "Verifying download…" };
|
|
68
166
|
}
|
|
69
167
|
if (text.startsWith("pulling manifest")) {
|
|
70
|
-
return { phase: "preparing", percent: 0, detail:
|
|
168
|
+
return { phase: "preparing", percent: 0, detail: "Contacting Ollama…" };
|
|
71
169
|
}
|
|
170
|
+
// A failure line is not progress. The child's exit handler turns the whole
|
|
171
|
+
// stderr tail into one explained message, so surfacing this here only flashed
|
|
172
|
+
// a bare `Error: 429:` into the progress line for a frame before that landed.
|
|
173
|
+
if (/^Error\b/i.test(text))
|
|
174
|
+
return null;
|
|
72
175
|
const pct = /(\d{1,3})%/.exec(text);
|
|
73
176
|
if (pct) {
|
|
74
177
|
const percent = Math.min(100, Number(pct[1]));
|
|
75
178
|
return {
|
|
76
179
|
phase: "downloading",
|
|
77
180
|
percent,
|
|
78
|
-
detail: text
|
|
181
|
+
detail: formatTransfer(text) ?? `${percent}% downloaded`,
|
|
79
182
|
};
|
|
80
183
|
}
|
|
81
184
|
return { phase: "downloading", detail: text };
|
|
@@ -92,10 +195,23 @@ export function explainPullFailure(stderrTail) {
|
|
|
92
195
|
if (/\b401\b|unauthorized|invalid username or password/i.test(stderrTail)) {
|
|
93
196
|
return "Hugging Face rejected the download as unauthenticated. Connect an HF token under the Hugging Face provider (or `ollama login huggingface.co`), then retry.";
|
|
94
197
|
}
|
|
198
|
+
if (/sharded/i.test(stderrTail)) {
|
|
199
|
+
return SHARDED_MESSAGE;
|
|
200
|
+
}
|
|
95
201
|
if (/no such file|not found|404/i.test(stderrTail)) {
|
|
96
202
|
return "Hugging Face has no GGUF file in that repo, or the quant doesn't exist. Pick another model.";
|
|
97
203
|
}
|
|
98
|
-
|
|
204
|
+
if (/\b429\b|rate limit/i.test(stderrTail)) {
|
|
205
|
+
return "Hugging Face rate-limited this machine. Wait a few minutes, or connect an HF token under the Hugging Face provider to raise the limit, then retry.";
|
|
206
|
+
}
|
|
207
|
+
// The tail is usually a redrawn TUI frame (progress bars, cursor codes, the
|
|
208
|
+
// next frame glued on) with the real cause appended. Prefer ollama's own
|
|
209
|
+
// `Error:` sentence; fall back to the last few lines for anything else.
|
|
210
|
+
const clean = stderrTail.replace(ANSI_NOISE, " ").replace(/[\u2580-\u259f]/g, "");
|
|
211
|
+
const reported = /\bError:.*/.exec(clean);
|
|
212
|
+
const tail = reported
|
|
213
|
+
? reported[0].replace(/\s+/g, " ").trim()
|
|
214
|
+
: clean.trim().split("\n").slice(-3).join(" ").replace(/\s+/g, " ").trim();
|
|
99
215
|
return tail ? `Ollama pull failed: ${tail}` : "Ollama pull failed.";
|
|
100
216
|
}
|
|
101
217
|
/** `12.4M` → `12.4M downloads`, `3,412` stays exact under 1000. */
|
package/dist/hf-pull.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hf-pull.js","sourceRoot":"","sources":["../src/hf-pull.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,mEAAmE;AACnE,MAAM,UAAU,eAAe,CAAC,EAAU;IACxC,OAAO,sEAAsE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACzF,CAAC;AASD
|
|
1
|
+
{"version":3,"file":"hf-pull.js","sourceRoot":"","sources":["../src/hf-pull.ts"],"names":[],"mappings":"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"}
|
package/dist/ui/App.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../src/ui/App.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../src/ui/App.tsx"],"names":[],"mappings":"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"}
|
package/dist/ui/App.js
CHANGED
|
@@ -1690,7 +1690,7 @@ export function App(props) {
|
|
|
1690
1690
|
const modelInfo = getModel(currentModel);
|
|
1691
1691
|
const modelSupportsImages = modelInfo?.supportsImages ?? true;
|
|
1692
1692
|
const modelSupportsVideo = modelInfo?.supportsVideo ?? false;
|
|
1693
|
-
const userContent = buildUserContentWithAttachments(input, inputImages, modelSupportsImages, modelSupportsVideo);
|
|
1693
|
+
const userContent = buildUserContentWithAttachments(input, inputImages, modelSupportsImages, modelSupportsVideo, modelInfo?.provider);
|
|
1694
1694
|
// ── Queue message if agent is already running ──
|
|
1695
1695
|
if (agentLoop.isRunning) {
|
|
1696
1696
|
log("INFO", "queue", `Queued message: ${trimmed.length > 80 ? trimmed.slice(0, 80) + "..." : trimmed}`);
|