comfyui-mcp 0.31.0 → 0.32.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.
@@ -43,6 +43,18 @@ function toOpenAiMessages(messages) {
43
43
  if (m.role === "tool") {
44
44
  return { role: "tool", tool_call_id: m.tool_call_id ?? "call_0", content: m.content };
45
45
  }
46
+ if (m.role === "user" && m.images?.length) {
47
+ return {
48
+ role: "user",
49
+ content: [
50
+ { type: "text", text: m.content },
51
+ ...m.images.map((b64, i) => ({
52
+ type: "image_url",
53
+ image_url: { url: `data:${m.imageMimes?.[i] ?? "image/png"};base64,${b64}` },
54
+ })),
55
+ ],
56
+ };
57
+ }
46
58
  return { role: m.role, content: m.content };
47
59
  });
48
60
  }
@@ -81,7 +93,7 @@ export const RECOMMENDED_OPENROUTER_MODELS = [
81
93
  { id: "minimax/minimax-m3", label: "MiniMax M3 (1M · SOTA · open)", context1m: true },
82
94
  { id: "moonshotai/kimi-k2.5", label: "Kimi K2.5 (SOTA · open)" },
83
95
  { id: "z-ai/glm-5.1", label: "GLM 5.1 (SOTA · open)" },
84
- { id: "deepseek/deepseek-v3.2", label: "DeepSeek v3.2 (open)" },
96
+ { id: "deepseek/deepseek-v4-pro", label: "DeepSeek v4 Pro (open)" },
85
97
  ];
86
98
  function msgOf(err) {
87
99
  return err instanceof Error ? err.message : String(err);
@@ -160,6 +172,36 @@ export class OllamaBackend {
160
172
  contextWindow() {
161
173
  return this.effectiveNumCtx() || 65536;
162
174
  }
175
+ /** Sampling options for /api/chat. The fine-tune tags bake `temperature 0`
176
+ * into their Modelfile — fully greedy decoding, which on a small model is
177
+ * the classic repetition-loop trap ("goes in circles" — Discord #help), and
178
+ * contradicts the Gemma team's recommended sampling (temp 1.0, top_k 64,
179
+ * top_p 0.95). Request options override the Modelfile, so we send explicit
180
+ * sampling for the fine-tune (env-overridable for experiments); stock
181
+ * models keep their own tuned defaults unless the env says otherwise. */
182
+ samplingOptions() {
183
+ const envNum = (name) => {
184
+ const raw = process.env[name];
185
+ if (raw === undefined || raw === "")
186
+ return null;
187
+ const n = Number(raw);
188
+ return Number.isFinite(n) ? n : null;
189
+ };
190
+ const t = envNum("COMFYUI_MCP_OLLAMA_TEMPERATURE");
191
+ const k = envNum("COMFYUI_MCP_OLLAMA_TOP_K");
192
+ const p = envNum("COMFYUI_MCP_OLLAMA_TOP_P");
193
+ const out = {};
194
+ if (t !== null)
195
+ out.temperature = t;
196
+ if (k !== null)
197
+ out.top_k = k;
198
+ if (p !== null)
199
+ out.top_p = p;
200
+ if (Object.keys(out).length)
201
+ return out;
202
+ // Fine-tune default: un-bake the Modelfile's temperature 0.
203
+ return this.isFinetune() ? { temperature: 1.0, top_k: 64, top_p: 0.95 } : {};
204
+ }
163
205
  async prepare() {
164
206
  if (this.disposed)
165
207
  throw new Error("ollama backend is closed.");
@@ -418,7 +460,11 @@ export class OllamaBackend {
418
460
  stream: true,
419
461
  // See OllamaBackendDeps.numCtx: omit for our fine-tune so the
420
462
  // tag's baked 65536 window governs instead of clamping it.
421
- options: this.effectiveNumCtx() ? { num_ctx: this.effectiveNumCtx() } : {},
463
+ // samplingOptions un-bakes the fine-tune's Modelfile temp 0.
464
+ options: {
465
+ ...(this.effectiveNumCtx() ? { num_ctx: this.effectiveNumCtx() } : {}),
466
+ ...this.samplingOptions(),
467
+ },
422
468
  }),
423
469
  signal,
424
470
  });
@@ -601,11 +647,68 @@ export class OllamaBackend {
601
647
  yield* this.runTurn(turn, opts);
602
648
  }
603
649
  }
650
+ /** Fetch a ComfyUI image ref as raw base64 + mime, or null on any failure
651
+ * (mirrors ClaudeBackend.fetchImageBlock; the text reference still names the
652
+ * file as a fallback). */
653
+ async fetchImageB64(ref) {
654
+ if (!this.deps.comfyuiUrl || !ref?.filename)
655
+ return null;
656
+ try {
657
+ const u = new URL("/view", this.deps.comfyuiUrl);
658
+ u.searchParams.set("filename", ref.filename);
659
+ u.searchParams.set("type", ref.type || "input");
660
+ if (ref.subfolder)
661
+ u.searchParams.set("subfolder", ref.subfolder);
662
+ const res = await fetch(u, { signal: AbortSignal.timeout(15000) });
663
+ if (!res.ok) {
664
+ logger.warn(`[ollama-backend] image ref fetch failed (${ref.filename}): http ${res.status}`);
665
+ return null;
666
+ }
667
+ let mime = (res.headers.get("content-type") || "").split(";")[0].trim().toLowerCase();
668
+ if (!["image/png", "image/jpeg", "image/gif", "image/webp"].includes(mime))
669
+ mime = "image/png";
670
+ const buf = Buffer.from(await res.arrayBuffer());
671
+ if (buf.length > 12 * 1024 * 1024) {
672
+ logger.warn(`[ollama-backend] image ref too large to inline (${ref.filename}: ${buf.length} bytes)`);
673
+ return null;
674
+ }
675
+ return { b64: buf.toString("base64"), mime };
676
+ }
677
+ catch (err) {
678
+ logger.warn(`[ollama-backend] image ref fetch failed (${ref?.filename ?? "?"}): ${msgOf(err)}`);
679
+ return null;
680
+ }
681
+ }
682
+ /** Remove every inline image from history after an endpoint rejected image
683
+ * input, leaving an honest note in the affected user messages so the model
684
+ * never pretends it saw them. One-shot per turn (see runTurn). */
685
+ stripImagesFromHistory() {
686
+ for (const m of this.history) {
687
+ if (m.images?.length) {
688
+ delete m.images;
689
+ delete m.imageMimes;
690
+ m.content +=
691
+ "\n[note: the attached image(s) were removed — this model/endpoint rejected image input. You did NOT see them; tell the user so if it matters.]";
692
+ }
693
+ }
694
+ }
604
695
  async *runTurn(turn, opts) {
605
696
  const abort = new AbortController();
606
697
  this.turnAbort = abort;
607
698
  const tools = this.buildModelTools();
608
- this.history.push({ role: "user", content: turn.text });
699
+ // Vision is a per-MODEL property (gemma4 sees images, qwen3 doesn't;
700
+ // DeepSeek's API rejects image parts outright), so ALWAYS attempt delivery:
701
+ // resolve the ComfyUI refs inline and let the strip-and-retry below handle
702
+ // endpoints that reject them.
703
+ const userMsg = { role: "user", content: turn.text };
704
+ if (turn.images?.length) {
705
+ const resolved = (await Promise.all(turn.images.slice(0, 4).map((r) => this.fetchImageB64(r)))).filter((r) => r !== null);
706
+ if (resolved.length) {
707
+ userMsg.images = resolved.map((r) => r.b64);
708
+ userMsg.imageMimes = resolved.map((r) => r.mime);
709
+ }
710
+ }
711
+ this.history.push(userMsg);
609
712
  let resultEmitted = false;
610
713
  // Loop-breaker: small models (especially stock ones) can wedge into
611
714
  // re-issuing the SAME tool call verbatim for dozens of rounds (field:
@@ -626,6 +729,7 @@ export class OllamaBackend {
626
729
  const DISCOVERY_TOOLS = new Set(["list_tools", "panel_list_tools", "search_models", "search_custom_nodes"]);
627
730
  const discoveryCounts = new Map();
628
731
  let emptyFinalRetried = false;
732
+ let imagesStripped = false;
629
733
  try {
630
734
  for (let round = 0; round < MAX_TOOL_ROUNDS; round++) {
631
735
  // Drain the chat stream manually: yield each delta event as it arrives,
@@ -635,13 +739,34 @@ export class OllamaBackend {
635
739
  let toolCalls = [];
636
740
  let usage;
637
741
  let streamId = null;
638
- for (;;) {
639
- const r = await stream.next();
640
- if (r.done) {
641
- ({ content, toolCalls, usage, streamId } = r.value);
642
- break;
742
+ try {
743
+ for (;;) {
744
+ const r = await stream.next();
745
+ if (r.done) {
746
+ ({ content, toolCalls, usage, streamId } = r.value);
747
+ break;
748
+ }
749
+ yield r.value;
750
+ }
751
+ }
752
+ catch (err) {
753
+ // GRACEFUL IMAGE DEGRADATION: if the request carried inline images
754
+ // and the endpoint rejected it (text-only model — e.g. DeepSeek 400s
755
+ // on image parts; a non-vision Ollama model can error at prompt
756
+ // build), retry ONCE with the images stripped and an honest note in
757
+ // both directions. Any other failure re-throws to the normal handler.
758
+ if (!abort.signal.aborted && !imagesStripped && this.history.some((m) => m.images?.length)) {
759
+ imagesStripped = true;
760
+ logger.warn(`[ollama-backend] image input rejected (${msgOf(err).slice(0, 200)}) — retrying without images`);
761
+ this.stripImagesFromHistory();
762
+ yield {
763
+ type: "assistant",
764
+ text: `📎 ${this.model} rejected image input, so I'm continuing without the attachment — I can't see the image. Describe it in words, or switch to a vision-capable model.`,
765
+ };
766
+ round--; // the rejected request didn't count as a tool round
767
+ continue;
643
768
  }
644
- yield r.value;
769
+ throw err;
645
770
  }
646
771
  if (!toolCalls.length) {
647
772
  // EMPTY-FINAL recovery (live E2E, native dialect, temp 0): after a
@@ -782,7 +907,12 @@ export class OllamaBackend {
782
907
  return;
783
908
  try {
784
909
  mkdirSync(dir, { recursive: true });
785
- writeFileSync(join(dir, `${this.sessionId ?? "session"}.json`), JSON.stringify({ model: this.model, messages: this.history }, null, 2));
910
+ writeFileSync(join(dir, `${this.sessionId ?? "session"}.json`), JSON.stringify({
911
+ model: this.model,
912
+ // Inline image payloads are elided — a single screenshot would
913
+ // dwarf the whole conversation in the datagen transcript.
914
+ messages: this.history.map((m) => m.images?.length ? { ...m, images: m.images.map(() => "[inline image omitted]") } : m),
915
+ }, null, 2));
786
916
  }
787
917
  catch (err) {
788
918
  logger.warn(`[ollama-backend] transcript dump failed: ${msgOf(err)}`);
@@ -813,7 +943,15 @@ export class OllamaBackend {
813
943
  // bounded slice of the rest — OpenRouter's 300+ catalog isn't a browser.
814
944
  const recommended = RECOMMENDED_OPENROUTER_MODELS.filter((m) => available.has(m.id));
815
945
  const recIds = new Set(recommended.map((m) => m.id));
816
- const rest = ids.filter((id) => id !== this.model && !recIds.has(id)).slice(0, 40);
946
+ // Sort the overflow alphabetically so a vendor's models CLUSTER (all
947
+ // deepseek/* together, findable), and widen the cap — the old unsorted
948
+ // 40-slice made newer models effectively invisible ("the list is very
949
+ // old" — Discord #help: deepseek-v4-pro existed upstream but never
950
+ // showed because it sat past the cut in OpenRouter's arrival order).
951
+ const rest = ids
952
+ .filter((id) => id !== this.model && !recIds.has(id))
953
+ .sort((a, b) => a.localeCompare(b))
954
+ .slice(0, 150);
817
955
  // llama-server reports its single model as the GGUF's FILE PATH —
818
956
  // keep the id verbatim (the server echoes it) but label by basename
819
957
  // so the picker isn't a wall of C:\...\model.gguf.
@@ -1 +1 @@
1
- {"version":3,"file":"ollama-backend.js","sourceRoot":"","sources":["../../src/orchestrator/ollama-backend.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ollama-backend.js","sourceRoot":"","sources":["../../src/orchestrator/ollama-backend.ts"],"names":[],"mappings":"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"}
@@ -64,6 +64,10 @@ export class PanelAgent {
64
64
  * session-restarting option change (effort) until the turn finishes, instead
65
65
  * of interrupting and silently dropping the in-flight reply. */
66
66
  busy = false;
67
+ /** True once THIS turn's failure has been surfaced to the user — set by the
68
+ * `error` event case so an error-subtype `result` right behind it doesn't
69
+ * paint a second failure line. Reset when a turn starts (busy = true). */
70
+ errorSurfaced = false;
67
71
  // ---- turn idle watchdog (freeze safety net) ----
68
72
  // A stalled turn (the backend stops emitting ANY events — e.g. a wedged Codex
69
73
  // app-server) would otherwise leave the panel "working" forever. This is an
@@ -217,11 +221,19 @@ export class PanelAgent {
217
221
  ? `${note} `
218
222
  : `A run on the user's canvas just finished and produced ${imgs.length} output image(s): ${names}. `) +
219
223
  // Only claim images are attached when some actually are (a note-only event —
220
- // e.g. a video that produced no storyboard — has none).
221
- (imgs.length ? `The image(s) are attached below and already shown to the user in the panel. ` : ``) +
224
+ // e.g. a video that produced no storyboard — has none), and only when this
225
+ // backend can actually see them a text-only backend told "attached below"
226
+ // would confabulate having viewed the render.
227
+ (imgs.length
228
+ ? this.backend.capabilities.vision
229
+ ? `The image(s) are attached below and already shown to the user in the panel. `
230
+ : `You cannot view images on this provider, but they are already shown to the user in the panel. `
231
+ : ``) +
222
232
  `Reply with ONE short sentence acknowledging the result and suggesting a sensible next step — you do NOT need to call any tools. Don't repeat an earlier comment.`;
223
233
  // Attach the outputs inline so the agent SEES the render (no fetch needed).
224
- images = imgs.filter((i) => i.filename).map((i) => ({ ...i, type: i.type ?? "output" }));
234
+ if (this.backend.capabilities.vision) {
235
+ images = imgs.filter((i) => i.filename).map((i) => ({ ...i, type: i.type ?? "output" }));
236
+ }
225
237
  }
226
238
  else if (ev.kind === "run_error") {
227
239
  text =
@@ -470,8 +482,19 @@ export class PanelAgent {
470
482
  if (it.mid)
471
483
  this.deps.onSeen?.(this.tabId, it.mid);
472
484
  }
473
- const text = batch.map((it) => it.text).join("\n\n");
474
- const images = batch.flatMap((it) => it.images ?? []);
485
+ let text = batch.map((it) => it.text).join("\n\n");
486
+ let images = batch.flatMap((it) => it.images ?? []);
487
+ if (images.length && !this.backend.capabilities.vision) {
488
+ // Text-only backend: every non-vision adapter silently ignores image
489
+ // refs, which reads to the user as "it ignored my screenshot". Say so
490
+ // visibly, and tell the MODEL too so it can't pretend it saw them.
491
+ this.deps.onSay(this.tabId, `📎 This provider is text-only, so I can't see the ${images.length > 1 ? "images" : "image"} you attached. ` +
492
+ `Describe what's in it, or switch to a vision-capable provider (Claude, Codex, or Gemini) and re-send.`);
493
+ text +=
494
+ `\n\n[panel note: the user attached ${images.length} image(s), but this provider is text-only and you CANNOT see them. ` +
495
+ `Do not claim or imply you saw them — if the content matters, ask the user to describe it or switch to a vision-capable provider.]`;
496
+ images = [];
497
+ }
475
498
  if (this.closed)
476
499
  return;
477
500
  // Remember the in-flight turn's user text so an interrupt mid-reply can
@@ -482,6 +505,7 @@ export class PanelAgent {
482
505
  // the watchdog's `busy` guard would be false for the exact zero-event freeze
483
506
  // it's meant to catch, so onTurnStalled() would no-op. (handleEvent's later
484
507
  // `busy = true` becomes a harmless no-op.) Also shows "working" immediately.
508
+ this.errorSurfaced = false; // fresh turn → its failure (if any) is unreported
485
509
  this.busy = true;
486
510
  this.deps.onTurn?.(this.tabId, "working");
487
511
  // Arm the freeze watchdog AT DISPATCH: a turn that produces NO events at all
@@ -755,6 +779,19 @@ export class PanelAgent {
755
779
  }
756
780
  break;
757
781
  }
782
+ case "error": {
783
+ // A backend-reported turn error (codex/gemini/grok emit these before
784
+ // their error result). Without this case the message fell through
785
+ // `default` and the user watched a turn end in TOTAL silence — the
786
+ // exact "three Hellos into the void" failure from the support thread.
787
+ // Surface it as a visible chat line; the follow-up `result` event still
788
+ // advances the turn gate normally.
789
+ const detail = typeof ev.message === "string" && ev.message.trim() ? ev.message.trim() : "unknown error";
790
+ this.errorSurfaced = true;
791
+ this.deps.onSay(this.tabId, `⚠️ The ${this.model} turn failed: ${detail}\n\nNothing was lost — try again, switch models from the composer picker, or check the terminal running the orchestrator for more detail.`);
792
+ logger.warn(`[panel-agent ${this.short()}] backend error: ${detail}`);
793
+ break;
794
+ }
758
795
  case "result": {
759
796
  // Cache the context window + cost from the result, then re-report using
760
797
  // the last assistant usage (the true current context).
@@ -776,6 +813,15 @@ export class PanelAgent {
776
813
  if (this.lastAssistantUuid)
777
814
  this.deps.onTurnAnchor?.(this.tabId, this.lastAssistantUuid);
778
815
  this.deps.onTurn?.(this.tabId, "done");
816
+ // Failed turn that never produced a visible error (the claude SDK path
817
+ // reports failures only via the result subtype; the `error` event case
818
+ // covers codex/gemini/grok) → say SOMETHING. A turn must never end in
819
+ // silence, error turns included.
820
+ if ((ev.ok === false || /error/i.test(ev.subtype ?? "")) && !this.errorSurfaced) {
821
+ this.errorSurfaced = true;
822
+ this.deps.onSay(this.tabId, `⚠️ That turn failed (${ev.subtype ?? "error"}) without a reply. ` +
823
+ `Nothing was lost — try again, switch models from the composer picker, or check the orchestrator terminal for detail.`);
824
+ }
779
825
  logger.info(`[panel-agent ${this.short()}] turn done (subtype=${ev.subtype})`);
780
826
  break;
781
827
  }
@@ -1059,6 +1105,61 @@ export class PanelAgentManager {
1059
1105
  return; // a live agent already owns the session
1060
1106
  this.pendingResume.set(tabId, sessionId);
1061
1107
  }
1108
+ /**
1109
+ * Rebind an agent from its current (stale) tabId to a new tabId — recovers
1110
+ * from a panel tab-id scheme migration (e.g. random UUID → deterministic
1111
+ * tmp:/wf: prefixed ids) without losing the conversation. The agent's panel
1112
+ * tools still carry the old tabId; the UiBridge's tabMigrations map (see
1113
+ * ui-bridge.ts resolveTarget) redirects those calls to the new connection.
1114
+ * Returns true if an agent was rebound.
1115
+ */
1116
+ rebindAgent(oldKey, newKey) {
1117
+ if (oldKey === newKey)
1118
+ return false;
1119
+ if (this.agents.has(newKey))
1120
+ return false;
1121
+ // DURABLE state migrates even when no live agent exists (codex review:
1122
+ // the agent may have been reaped while its persisted session survives —
1123
+ // skipping this meant the rebound tab started a fresh conversation).
1124
+ const moveDurable = () => {
1125
+ if (this.pendingResume.has(oldKey)) {
1126
+ this.pendingResume.set(newKey, this.pendingResume.get(oldKey));
1127
+ this.pendingResume.delete(oldKey);
1128
+ }
1129
+ const persisted = this.opts.sessionStore?.get(oldKey);
1130
+ if (persisted)
1131
+ this.opts.sessionStore?.set(newKey, persisted);
1132
+ this.opts.sessionStore?.clear(oldKey);
1133
+ };
1134
+ const agent = this.agents.get(oldKey);
1135
+ if (!agent || agent.isStopped) {
1136
+ moveDurable();
1137
+ return false;
1138
+ }
1139
+ this.agents.delete(oldKey);
1140
+ this.agents.set(newKey, agent);
1141
+ // has()-based moves throughout (codex review): truthy checks dropped
1142
+ // legitimate null/undefined sentinels (e.g. restart-without-nudge, an
1143
+ // explicit effort-override clear).
1144
+ if (this.pendingEffortRestart.has(oldKey)) {
1145
+ this.pendingEffortRestart.delete(oldKey);
1146
+ this.pendingEffortRestart.add(newKey);
1147
+ }
1148
+ if (this.pendingMcpRestart.has(oldKey)) {
1149
+ this.pendingMcpRestart.set(newKey, this.pendingMcpRestart.get(oldKey));
1150
+ this.pendingMcpRestart.delete(oldKey);
1151
+ }
1152
+ if (this.modelByKey.has(oldKey)) {
1153
+ this.modelByKey.set(newKey, this.modelByKey.get(oldKey));
1154
+ this.modelByKey.delete(oldKey);
1155
+ }
1156
+ if (this.effortByKey.has(oldKey)) {
1157
+ this.effortByKey.set(newKey, this.effortByKey.get(oldKey));
1158
+ this.effortByKey.delete(oldKey);
1159
+ }
1160
+ moveDurable();
1161
+ return true;
1162
+ }
1062
1163
  /** Route a panel message to its tab's agent, creating the agent if needed.
1063
1164
  * Never routes into a stopped agent (whose channel is closed) — respawns so
1064
1165
  * the message reaches a live session. */