comfyui-mcp 0.44.0 → 0.45.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.
Files changed (53) hide show
  1. package/dist/config.js +3 -1
  2. package/dist/config.js.map +1 -1
  3. package/dist/orchestrator/ai-proposer.js +5 -0
  4. package/dist/orchestrator/ai-proposer.js.map +1 -1
  5. package/dist/orchestrator/antigravity-backend.js +394 -52
  6. package/dist/orchestrator/antigravity-backend.js.map +1 -1
  7. package/dist/orchestrator/claude-backend.js +13 -0
  8. package/dist/orchestrator/claude-backend.js.map +1 -1
  9. package/dist/orchestrator/codex-backend.js +12 -1
  10. package/dist/orchestrator/codex-backend.js.map +1 -1
  11. package/dist/orchestrator/gemini-backend.js +8 -1
  12. package/dist/orchestrator/gemini-backend.js.map +1 -1
  13. package/dist/orchestrator/grok-backend.js +4 -1
  14. package/dist/orchestrator/grok-backend.js.map +1 -1
  15. package/dist/orchestrator/index.js +53 -10
  16. package/dist/orchestrator/index.js.map +1 -1
  17. package/dist/orchestrator/panel-agent.js +21 -5
  18. package/dist/orchestrator/panel-agent.js.map +1 -1
  19. package/dist/orchestrator/panel-console-http.js +1 -0
  20. package/dist/orchestrator/panel-console-http.js.map +1 -1
  21. package/dist/orchestrator/panel-tools.js +140 -9
  22. package/dist/orchestrator/panel-tools.js.map +1 -1
  23. package/dist/services/ai-toolkit.js +260 -3
  24. package/dist/services/ai-toolkit.js.map +1 -1
  25. package/dist/services/missing-models.js +295 -0
  26. package/dist/services/missing-models.js.map +1 -0
  27. package/dist/services/openai-provider-registry.js +20 -1
  28. package/dist/services/openai-provider-registry.js.map +1 -1
  29. package/dist/services/panel-secrets.js +58 -7
  30. package/dist/services/panel-secrets.js.map +1 -1
  31. package/dist/services/runpod-client.js +157 -9
  32. package/dist/services/runpod-client.js.map +1 -1
  33. package/dist/services/runpod-ssh.js +594 -0
  34. package/dist/services/runpod-ssh.js.map +1 -0
  35. package/dist/services/runpod-watch.js +53 -12
  36. package/dist/services/runpod-watch.js.map +1 -1
  37. package/dist/services/trainer-bootstrap.js +142 -0
  38. package/dist/services/trainer-bootstrap.js.map +1 -0
  39. package/dist/services/training-config.js +4 -1
  40. package/dist/services/training-config.js.map +1 -1
  41. package/dist/services/training-jobs.js +1332 -253
  42. package/dist/services/training-jobs.js.map +1 -1
  43. package/dist/tools/index.js +2 -0
  44. package/dist/tools/index.js.map +1 -1
  45. package/dist/tools/missing-models.js +151 -0
  46. package/dist/tools/missing-models.js.map +1 -0
  47. package/dist/tools/runpod.js +7 -0
  48. package/dist/tools/runpod.js.map +1 -1
  49. package/dist/tools/train.js +138 -5
  50. package/dist/tools/train.js.map +1 -1
  51. package/docker/trainer/Dockerfile +4 -2
  52. package/package.json +1 -1
  53. package/scripts/gen-tool-docs.ts +36 -4
@@ -0,0 +1,295 @@
1
+ // Missing-model resolution: figure out which model files a workflow wants but
2
+ // this ComfyUI doesn't have, then find installable candidates for them.
3
+ //
4
+ // WHY THIS EXISTS: `extract_workflow_dependencies` / `install_workflow_dependencies`
5
+ // resolve the custom NODE PACKS a workflow needs — they never touch the missing
6
+ // MODEL side of the same problem. So "open this Template and make it runnable"
7
+ // took two manual hops: the agent had to infer which checkpoint/VAE/LoRA was
8
+ // missing, then find it itself. Reported in the help channel (seanmcmagic).
9
+ //
10
+ // DETECTION: we do NOT hardcode widget names. ComfyUI publishes every model
11
+ // selector as a COMBO whose options are the server's ACTUAL filenames:
12
+ //
13
+ // CheckpointLoaderSimple.input.required.ckpt_name = [["a.safetensors", …], {…}]
14
+ //
15
+ // So a workflow value that is a model-looking filename and is NOT in its combo's
16
+ // option list is missing — which covers every model type, including ones from
17
+ // custom packs we've never heard of, with no per-node mapping to maintain.
18
+ //
19
+ // SIZE IS NOT VRAM: weights are the floor, not the ceiling (activations, latents
20
+ // and context sit on top), so `fitVerdict` deliberately reserves headroom rather
21
+ // than pretending file size == requirement.
22
+ /** Weight-file extensions. Used to tell a model value from an ordinary enum. */
23
+ const MODEL_EXTS = new Set([".safetensors", ".ckpt", ".pt", ".pth", ".bin", ".gguf", ".sft", ".onnx"]);
24
+ /** Widget name → models/ subdirectory. Only used to say WHERE a download should
25
+ * land; detection never depends on it, so an unknown widget degrades to
26
+ * `undefined` rather than dropping the missing model. */
27
+ const DIR_BY_WIDGET = {
28
+ ckpt_name: "checkpoints",
29
+ lora_name: "loras",
30
+ vae_name: "vae",
31
+ control_net_name: "controlnet",
32
+ controlnet_name: "controlnet",
33
+ unet_name: "diffusion_models",
34
+ model_name: "upscale_models",
35
+ clip_name: "text_encoders",
36
+ clip_name1: "text_encoders",
37
+ clip_name2: "text_encoders",
38
+ style_model_name: "style_models",
39
+ embedding_name: "embeddings",
40
+ gligen_name: "gligen",
41
+ hypernetwork_name: "hypernetworks",
42
+ ipadapter_file: "ipadapter",
43
+ };
44
+ /** Strip directory + extension, lowercase — the comparable identity of a model. */
45
+ export function fileStem(name) {
46
+ const base = name.split(/[/\\]/).pop() ?? name;
47
+ return base.replace(/\.[^.]+$/, "").toLowerCase();
48
+ }
49
+ function hasModelExt(name) {
50
+ const base = name.split(/[/\\]/).pop() ?? name;
51
+ const dot = base.lastIndexOf(".");
52
+ if (dot < 0)
53
+ return false;
54
+ return MODEL_EXTS.has(base.slice(dot).toLowerCase());
55
+ }
56
+ /**
57
+ * Read the precision / quantisation out of a weight filename.
58
+ *
59
+ * This is what makes a fuzzy match set useful instead of opaque: the same model
60
+ * ships as fp16 / fp8 / several GGUF quants at wildly different sizes, and on a
61
+ * constrained GPU the quantised one is the whole answer.
62
+ *
63
+ * GGUF is checked FIRST: a name can contain both "gguf" and a dtype-looking
64
+ * token, and the container is what decides whether it loads at all.
65
+ */
66
+ export function classifyPrecision(filename) {
67
+ const n = filename.toLowerCase();
68
+ if (/\.gguf$|[-_.]gguf\b/.test(n)) {
69
+ // Q4_K_M, Q6_K, Q8_0, IQ3_XXS …
70
+ const m = n.match(/\b(iq|q)(\d+)(_[a-z0-9]+)*\b/);
71
+ return {
72
+ precision: "gguf",
73
+ quant: m ? m[0].toUpperCase() : undefined,
74
+ requiresPack: "ComfyUI-GGUF",
75
+ };
76
+ }
77
+ if (/\bnf4\b/.test(n))
78
+ return { precision: "nf4" };
79
+ // fp8_e4m3fn / fp8_e5m2 / float8
80
+ if (/\bfp8\b|\bfloat8\b|e4m3|e5m2/.test(n))
81
+ return { precision: "fp8" };
82
+ if (/\bbf16\b|\bbfloat16\b/.test(n))
83
+ return { precision: "bf16" };
84
+ if (/\bfp16\b|\bfloat16\b|\bhalf\b/.test(n))
85
+ return { precision: "fp16" };
86
+ if (/\bfp32\b|\bfloat32\b|\bfull\b/.test(n))
87
+ return { precision: "fp32" };
88
+ return { precision: "unknown" };
89
+ }
90
+ /**
91
+ * Can this file plausibly run on a card with `vramBytes` of VRAM?
92
+ *
93
+ * Weights are the floor, not the ceiling — activations/latents/context also live
94
+ * in VRAM — so we reserve headroom instead of claiming a 15.9 GB file "fits" a
95
+ * 16 GB card. Anything above 80% of VRAM is reported as `tight`, not `fits`.
96
+ */
97
+ export function fitVerdict(sizeBytes, vramBytes) {
98
+ if (!sizeBytes || !vramBytes || sizeBytes <= 0 || vramBytes <= 0)
99
+ return "unknown";
100
+ const ratio = sizeBytes / vramBytes;
101
+ if (ratio > 1)
102
+ return "too_big";
103
+ if (ratio > 0.8)
104
+ return "tight";
105
+ return "fits";
106
+ }
107
+ /** How well does `candidate` answer the request for `wanted`? */
108
+ export function matchQuality(wanted, candidate) {
109
+ const w = (wanted.split(/[/\\]/).pop() ?? wanted).toLowerCase();
110
+ const c = (candidate.split(/[/\\]/).pop() ?? candidate).toLowerCase();
111
+ if (w === c)
112
+ return "exact";
113
+ if (fileStem(wanted) === fileStem(candidate))
114
+ return "stem";
115
+ return "fuzzy";
116
+ }
117
+ const MATCH_RANK = { exact: 0, stem: 1, fuzzy: 2 };
118
+ const FIT_RANK = { fits: 0, tight: 1, unknown: 2, too_big: 3 };
119
+ /**
120
+ * Order candidates the way a human would pick: closest name first, then what
121
+ * actually fits the card, then larger (higher-quality) files before smaller.
122
+ * Stable — equal candidates keep their input order.
123
+ */
124
+ export function rankCandidates(wanted, candidates) {
125
+ return candidates
126
+ .map((c, i) => ({ ...c, match: matchQuality(wanted, c.filename), _i: i }))
127
+ .sort((a, b) => {
128
+ const m = MATCH_RANK[a.match] - MATCH_RANK[b.match];
129
+ if (m !== 0)
130
+ return m;
131
+ const f = FIT_RANK[a.fit ?? "unknown"] - FIT_RANK[b.fit ?? "unknown"];
132
+ if (f !== 0)
133
+ return f;
134
+ const s = (b.size_bytes ?? 0) - (a.size_bytes ?? 0);
135
+ if (s !== 0)
136
+ return s;
137
+ return a._i - b._i;
138
+ })
139
+ .map(({ _i, ...rest }) => rest);
140
+ }
141
+ /** The combo option list for an input spec, or null when it isn't a combo. */
142
+ function comboOptions(spec) {
143
+ if (!Array.isArray(spec) || spec.length === 0)
144
+ return null;
145
+ const first = spec[0];
146
+ if (!Array.isArray(first))
147
+ return null;
148
+ return first.filter((o) => typeof o === "string");
149
+ }
150
+ /**
151
+ * Find every model a workflow references that this server does not have.
152
+ *
153
+ * A value counts as a missing model when its input is a COMBO (so the server
154
+ * published the set it actually has) and the value is a model-looking filename
155
+ * absent from that set. Connections (`[nodeId, slot]` arrays) and non-model
156
+ * enums are ignored.
157
+ *
158
+ * `directory` is a best-effort hint for where a download should land; it is
159
+ * never required, so an unrecognised widget still reports its missing model.
160
+ */
161
+ export function findMissingModels(workflow, objectInfo) {
162
+ const missing = [];
163
+ const seen = new Set();
164
+ for (const [nodeId, rawNode] of Object.entries(workflow)) {
165
+ if (!rawNode || typeof rawNode !== "object")
166
+ continue;
167
+ const node = rawNode;
168
+ const classType = node.class_type;
169
+ if (!classType || !node.inputs)
170
+ continue;
171
+ const def = objectInfo[classType];
172
+ if (!def?.input)
173
+ continue;
174
+ const specs = { ...(def.input.required ?? {}), ...(def.input.optional ?? {}) };
175
+ for (const [widget, value] of Object.entries(node.inputs)) {
176
+ // A wired connection, not a widget value.
177
+ if (Array.isArray(value))
178
+ continue;
179
+ if (typeof value !== "string" || value.length === 0)
180
+ continue;
181
+ const options = comboOptions(specs[widget]);
182
+ if (!options)
183
+ continue; // not a combo → not a model selector
184
+ if (options.includes(value))
185
+ continue; // present on this server
186
+ // Only claim "missing MODEL" when it looks like a weight file — otherwise
187
+ // it's an ordinary enum drift and not ours to fix.
188
+ if (!hasModelExt(value) && !options.some(hasModelExt))
189
+ continue;
190
+ const key = `${value.toLowerCase()}|${widget}`;
191
+ if (seen.has(key))
192
+ continue;
193
+ seen.add(key);
194
+ missing.push({
195
+ node_id: nodeId,
196
+ node_type: classType,
197
+ widget,
198
+ name: value,
199
+ directory: DIR_BY_WIDGET[widget],
200
+ });
201
+ }
202
+ }
203
+ return missing;
204
+ }
205
+ /** models/ subdir → CivitAI `types` filter, so a LoRA hunt can't return checkpoints. */
206
+ const CIVITAI_TYPE_BY_DIR = {
207
+ checkpoints: ["Checkpoint"],
208
+ loras: ["LORA", "LoCon"],
209
+ vae: ["VAE"],
210
+ controlnet: ["Controlnet"],
211
+ embeddings: ["TextualInversion"],
212
+ upscale_models: ["Upscaler"],
213
+ };
214
+ const MB = 1024 * 1024;
215
+ /**
216
+ * Find installable candidates for ONE missing model, annotated with precision,
217
+ * size and whether it fits this GPU, best first.
218
+ *
219
+ * Deliberately does NOT auto-pick: the same filename ships across quants and
220
+ * base models, so we return a ranked, annotated list and let the caller decide.
221
+ * Network failures degrade to fewer candidates rather than failing the lookup —
222
+ * a partial answer beats none when one provider is down.
223
+ */
224
+ export async function resolveCandidates(missing, deps, opts = {}) {
225
+ const limit = opts.limit ?? 8;
226
+ const query = fileStem(missing.name);
227
+ const vram = await deps.vramBytes().catch(() => undefined);
228
+ const out = [];
229
+ const civitaiTypes = missing.directory ? CIVITAI_TYPE_BY_DIR[missing.directory] : undefined;
230
+ const hits = await deps.searchCivitai(query, civitaiTypes).catch(() => []);
231
+ for (const h of hits) {
232
+ const size = typeof h.size_mb === "number" ? Math.round(h.size_mb * MB) : undefined;
233
+ const p = classifyPrecision(h.name);
234
+ out.push({
235
+ filename: h.name,
236
+ source: "civitai",
237
+ civitai_model_id: h.model_id,
238
+ civitai_version_id: h.version_id,
239
+ size_bytes: size,
240
+ precision: p.precision,
241
+ quant: p.quant,
242
+ requires_pack: p.requiresPack,
243
+ base_model: h.base_model,
244
+ fit: fitVerdict(size, vram),
245
+ });
246
+ }
247
+ // Expand generously: the QUANTISED repo (e.g. city96/FLUX.1-dev-gguf) is
248
+ // routinely ranked below the official one, and on a constrained GPU it is the
249
+ // only candidate that actually helps — slicing too tightly drops exactly the
250
+ // answer the user needs.
251
+ const repos = await deps.searchHf(query).catch(() => []);
252
+ for (const repo of repos.slice(0, 6)) {
253
+ const files = await deps.hfRepoFiles(repo.id).catch(() => []);
254
+ for (const f of files) {
255
+ const p = classifyPrecision(f.filename);
256
+ out.push({
257
+ filename: f.filename,
258
+ source: "huggingface",
259
+ url: `https://huggingface.co/${repo.id}/resolve/main/${f.filename}`,
260
+ size_bytes: f.size_bytes,
261
+ precision: p.precision,
262
+ quant: p.quant,
263
+ requires_pack: p.requiresPack,
264
+ fit: fitVerdict(f.size_bytes, vram),
265
+ });
266
+ }
267
+ }
268
+ return rankCandidates(missing.name, dedupeCandidates(out)).slice(0, limit);
269
+ }
270
+ /**
271
+ * Collapse the same file offered by several repos/providers into one row.
272
+ *
273
+ * Popular weights are mirrored widely, so an un-deduped list wastes most of its
274
+ * slots showing `flux1-dev.safetensors` three times instead of the fp8 and GGUF
275
+ * variants that are the actual reason to look. Keyed on filename + precision +
276
+ * quant so genuinely different builds stay distinct; the entry that knows its
277
+ * size wins, since size drives the fit verdict.
278
+ */
279
+ export function dedupeCandidates(candidates) {
280
+ const best = new Map();
281
+ for (const c of candidates) {
282
+ const key = `${(c.filename.split(/[/\\]/).pop() ?? c.filename).toLowerCase()}|${c.precision}|${c.quant ?? ""}`;
283
+ const prev = best.get(key);
284
+ if (!prev) {
285
+ best.set(key, c);
286
+ continue;
287
+ }
288
+ const prevKnows = typeof prev.size_bytes === "number" && prev.size_bytes > 0;
289
+ const nextKnows = typeof c.size_bytes === "number" && c.size_bytes > 0;
290
+ if (!prevKnows && nextKnows)
291
+ best.set(key, c);
292
+ }
293
+ return [...best.values()];
294
+ }
295
+ //# sourceMappingURL=missing-models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"missing-models.js","sourceRoot":"","sources":["../../src/services/missing-models.ts"],"names":[],"mappings":"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"}
@@ -31,7 +31,7 @@ export const OPENAI_KEY_PROVIDERS = [
31
31
  {
32
32
  id: "glm",
33
33
  slotLabel: "GLM / Zhipu",
34
- slotHelp: "GLM provider",
34
+ slotHelp: "Z.AI Coding Plan (GLM / Zhipu)",
35
35
  envKeys: ["GLM_API_KEY", "ZHIPU_API_KEY", "ZHIPUAI_API_KEY", "ZAI_API_KEY"],
36
36
  modelEnv: "COMFYUI_MCP_GLM_MODEL",
37
37
  defaultModel: process.env.COMFYUI_MCP_GLM_MODEL?.trim() || "glm-4.7",
@@ -84,4 +84,23 @@ export function simpleKeyProvider(id) {
84
84
  export function openAiKeyProviderModel(p) {
85
85
  return process.env[p.modelEnv] ?? p.defaultModel;
86
86
  }
87
+ /**
88
+ * One-line "which model am I on, and how do I change it?" hint for the panel's
89
+ * API Keys card.
90
+ *
91
+ * These providers ship a pinned default (glm-4.7, kimi-for-coding, kimi-k3) and
92
+ * a `modelEnv` override, but NOTHING in the UI ever said the override existed —
93
+ * so a user on a newer model (e.g. GLM 5.2) had no way to discover they could
94
+ * point at it without reading the source. Generated from the registry rather
95
+ * than hand-written per provider, so it can never drift from the real default.
96
+ *
97
+ * Reports the ACTIVE model (env override if set, else the default) and names the
98
+ * env var either way, so the card also answers "why am I not on the model I set?".
99
+ */
100
+ export function providerModelHint(p) {
101
+ const active = openAiKeyProviderModel(p);
102
+ return active === p.defaultModel
103
+ ? `Model ${active} (default) — set ${p.modelEnv} to use another.`
104
+ : `Model ${active} (via ${p.modelEnv}; default ${p.defaultModel}).`;
105
+ }
87
106
  //# sourceMappingURL=openai-provider-registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"openai-provider-registry.js","sourceRoot":"","sources":["../../src/services/openai-provider-registry.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,EAAE;AACF,8EAA8E;AAC9E,4EAA4E;AAC5E,iFAAiF;AACjF,kFAAkF;AAClF,+EAA+E;AAC/E,iFAAiF;AACjF,0EAA0E;AAC1E,6EAA6E;AAC7E,kBAAkB;AAClB,EAAE;AACF,4EAA4E;AAC5E,2EAA2E;AAC3E,+EAA+E;AAC/E,2EAA2E;AAC3E,iFAAiF;AACjF,6EAA6E;AAC7E,0DAA0D;AAC1D,EAAE;AACF,0EAA0E;AAC1E,0EAA0E;AAC1E,gFAAgF;AAChF,iFAAiF;AACjF,qEAAqE;AACrE,+EAA+E;AAC/E,gDAAgD;AA6ChD;8EAC8E;AAC9E,MAAM,CAAC,MAAM,oBAAoB,GAAwB;IACvD;QACE,EAAE,EAAE,KAAK;QACT,SAAS,EAAE,aAAa;QACxB,QAAQ,EAAE,cAAc;QACxB,OAAO,EAAE,CAAC,aAAa,EAAE,eAAe,EAAE,iBAAiB,EAAE,aAAa,CAAC;QAC3E,QAAQ,EAAE,uBAAuB;QACjC,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,IAAI,EAAE,IAAI,SAAS;QACpE,gBAAgB,EAAE,KAAK;QACvB,YAAY,EAAE,CAAC,UAAU,EAAE,EAAE,CAC3B,gCAAgC,UAAU,0CAA0C;QACtF,eAAe,EACb,iJAAiJ;QACnJ,aAAa,EAAE,IAAI;KACpB;IACD;QACE,EAAE,EAAE,MAAM;QACV,SAAS,EAAE,YAAY;QACvB,QAAQ,EAAE,iCAAiC;QAC3C,OAAO,EAAE,CAAC,cAAc,CAAC;QACzB,QAAQ,EAAE,wBAAwB;QAClC,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,IAAI,EAAE,IAAI,iBAAiB;QAC7E,gBAAgB,EAAE,MAAM;QACxB,YAAY,EAAE,CAAC,UAAU,EAAE,EAAE,CAC3B,gCAAgC,UAAU,4CAA4C;QACxF,eAAe,EACb,wLAAwL;QAC1L,iFAAiF;QACjF,aAAa,EAAE,KAAK;KACrB;IACD;QACE,EAAE,EAAE,UAAU;QACd,SAAS,EAAE,oBAAoB;QAC/B,QAAQ,EAAE,2CAA2C;QACrD,OAAO,EAAE,CAAC,kBAAkB,CAAC;QAC7B,QAAQ,EAAE,4BAA4B;QACtC,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,IAAI,EAAE,IAAI,SAAS;QACzE,gBAAgB,EAAE,SAAS;QAC3B,YAAY,EAAE,CAAC,UAAU,EAAE,EAAE,CAC3B,gCAAgC,UAAU,yDAAyD;QACrG,eAAe,EACb,+JAA+J;QACjK,aAAa,EAAE,IAAI;KACpB;CACF,CAAC;AAEF,qEAAqE;AACrE,MAAM,CAAC,MAAM,uBAAuB,GAA0B,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAEpG,MAAM,KAAK,GAAG,IAAI,GAAG,CAA4B,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAE7F,4EAA4E;AAC5E,MAAM,UAAU,iBAAiB,CAAC,EAAU;IAC1C,OAAO,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AACvB,CAAC;AAED;2EAC2E;AAC3E,MAAM,UAAU,iBAAiB,CAAC,EAAU;IAC1C,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACxB,OAAO,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9C,CAAC;AAED;8EAC8E;AAC9E,MAAM,UAAU,sBAAsB,CAAC,CAAoB;IACzD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC;AACnD,CAAC"}
1
+ {"version":3,"file":"openai-provider-registry.js","sourceRoot":"","sources":["../../src/services/openai-provider-registry.ts"],"names":[],"mappings":"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"}
@@ -20,7 +20,7 @@ import { chmodSync, existsSync, mkdirSync, readFileSync, writeFileSync } from "n
20
20
  import { homedir } from "node:os";
21
21
  import { dirname, join } from "node:path";
22
22
  import { logger } from "../utils/logger.js";
23
- import { OPENAI_KEY_PROVIDERS } from "./openai-provider-registry.js";
23
+ import { OPENAI_KEY_PROVIDERS, providerModelHint } from "./openai-provider-registry.js";
24
24
  // STRICT ALLOWLIST of env keys a panel-collected secret may set on the comfyui
25
25
  // MCP child process. The child is a Node subprocess (process.execPath), so an
26
26
  // arbitrary key (NODE_OPTIONS, PATH, COMFYUI_PATH, LD_PRELOAD, …) could hijack or
@@ -198,21 +198,43 @@ export function setEnvSecret(key, value) {
198
198
  }
199
199
  upsertEnvFile(trimmed, value);
200
200
  process.env[trimmed] = value; // live in-process effect (env wins over the file)
201
- emitter.emit("change"); // comfyui tool secret → re-inject/respawn agent on idle
201
+ // Only a COMFYUI tool secret should restart the comfyui MCP child + inject the
202
+ // "retry the download that needed this token" nudge (#269): saving an
203
+ // agent-ONLY provider key (OPENROUTER/GLM/KIMI…) previously restarted every
204
+ // agent with that nonsensical download-retry message. Agent-only keys fire
205
+ // just "agentChange" (readiness/model refresh) below.
206
+ if (isAllowedComfyuiSecretKey(trimmed))
207
+ emitter.emit("change");
202
208
  if (isAllowedAgentSecretKey(trimmed))
203
209
  emitter.emit("agentChange"); // flip provider readiness live
204
210
  }
205
- /** Canonical remover: drop a token from .env + process.env + emit. */
211
+ /** Canonical remover: drop a token from .env + process.env + emit. Also PURGES
212
+ * the legacy panel-secrets.json maps (#269): without this a key revoked from
213
+ * .env would RESURRECT on the next boot, because migrateSecretsToEnv() re-adds
214
+ * any key still present in the JSON store that .env no longer provides. */
206
215
  export function removeEnvSecret(key) {
207
216
  const removed = removeEnvFileKey(key);
208
217
  if (process.env[key] !== undefined)
209
218
  delete process.env[key];
210
- if (removed) {
211
- emitter.emit("change");
219
+ // Purge the legacy JSON maps so a revoked key can't resurrect via migration.
220
+ const s = read();
221
+ let purgedJson = false;
222
+ for (const map of [s.comfyuiEnv, s.agentEnv]) {
223
+ if (map && Object.prototype.hasOwnProperty.call(map, key)) {
224
+ delete map[key];
225
+ purgedJson = true;
226
+ }
227
+ }
228
+ if (purgedJson)
229
+ write(s);
230
+ const changed = removed || purgedJson;
231
+ if (changed) {
232
+ if (isAllowedComfyuiSecretKey(key))
233
+ emitter.emit("change"); // comfyui-only restart (#269)
212
234
  if (isAllowedAgentSecretKey(key))
213
235
  emitter.emit("agentChange");
214
236
  }
215
- return removed;
237
+ return changed;
216
238
  }
217
239
  /**
218
240
  * One-time migration to the canonical .env: any flat token still living in the
@@ -391,6 +413,32 @@ export function removeAgentSecret(key) {
391
413
  export function buildComfyuiMcpEnv(base) {
392
414
  return { ...base, ...loadComfyuiSecretEnv() };
393
415
  }
416
+ // ── Agent-provider spawn env (tool-secret scoping) ───────────────────────────
417
+ // Tool secrets (RunPod/HF/CivitAI/RunComfy/Registry tokens…) live in process.env
418
+ // because config.ts loads ~/.comfyui-mcp/.env at boot and setEnvSecret applies
419
+ // live. That is CORRECT for the comfyui tool child (buildComfyuiMcpEnv), but the
420
+ // agent-provider subprocesses (Codex app-server, Gemini/Grok CLI…) must NEVER
421
+ // inherit them — a tool credential has no business in an LLM vendor's process.
422
+ // buildAgentSpawnEnv is the single spawn-env builder those backends use: a copy
423
+ // of process.env with every TOOL-ONLY secret key stripped.
424
+ /** Secret env keys that are TOOL-only (comfyui allowlist minus agent allowlist)
425
+ * — these must never reach an agent-provider subprocess's env. */
426
+ export const TOOL_ONLY_SECRET_ENV_KEYS = COMFYUI_SECRET_ENV_ALLOWLIST.filter((k) => !AGENT_ALLOWLIST_SET.has(k));
427
+ /**
428
+ * Build the env an AGENT-PROVIDER subprocess (Codex/Gemini/Grok CLI…) spawns
429
+ * with: `base` (default process.env) with all tool-only secret keys removed.
430
+ * `keep` re-admits specific keys when they double as the provider's OWN
431
+ * credential (e.g. GEMINI_API_KEY for the Gemini CLI — same vendor, not a leak).
432
+ */
433
+ export function buildAgentSpawnEnv(base = process.env, opts = {}) {
434
+ const keep = new Set(opts.keep ?? []);
435
+ const out = { ...base };
436
+ for (const k of TOOL_ONLY_SECRET_ENV_KEYS) {
437
+ if (!keep.has(k))
438
+ delete out[k];
439
+ }
440
+ return out;
441
+ }
394
442
  /** UI credential slots. Each slot writes ALL its envKeys (alias fan-out) into its
395
443
  * store. `store` decides which allowlist/setter applies. */
396
444
  export const CREDENTIAL_SLOTS = [
@@ -402,7 +450,10 @@ export const CREDENTIAL_SLOTS = [
402
450
  label: p.slotLabel,
403
451
  envKeys: p.envKeys,
404
452
  store: "agent",
405
- help: p.slotHelp,
453
+ // Append the generated model hint so the card says which model the
454
+ // provider is actually on and how to change it — the override env var
455
+ // existed but was invisible outside the source.
456
+ help: `${p.slotHelp} · ${providerModelHint(p)}`,
406
457
  })),
407
458
  { id: "civitai", label: "Civitai", envKeys: ["CIVITAI_API_TOKEN"], store: "comfyui", help: "Model downloads" },
408
459
  { id: "huggingface", label: "HuggingFace", envKeys: ["HF_TOKEN", "HUGGINGFACE_TOKEN"], store: "comfyui", help: "Model downloads" },
@@ -1 +1 @@
1
- {"version":3,"file":"panel-secrets.js","sourceRoot":"","sources":["../../src/services/panel-secrets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"panel-secrets.js","sourceRoot":"","sources":["../../src/services/panel-secrets.ts"],"names":[],"mappings":"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"}