comfyui-mcp 0.52.14 → 0.52.16
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/orchestrator/agent-backend.js +17 -0
- package/dist/orchestrator/agent-backend.js.map +1 -1
- package/dist/orchestrator/backend-readiness.js +43 -0
- package/dist/orchestrator/backend-readiness.js.map +1 -1
- package/dist/orchestrator/index.js +136 -39
- package/dist/orchestrator/index.js.map +1 -1
- package/dist/orchestrator/panel-tools.js +228 -75
- package/dist/orchestrator/panel-tools.js.map +1 -1
- package/dist/orchestrator/qwen-backend.js +1029 -0
- package/dist/orchestrator/qwen-backend.js.map +1 -0
- package/dist/orchestrator/rgthree-fast-groups-property.js +53 -0
- package/dist/orchestrator/rgthree-fast-groups-property.js.map +1 -0
- package/dist/services/api-nodes.js +24 -4
- package/dist/services/api-nodes.js.map +1 -1
- package/dist/services/comfy-view-ref.js +236 -4
- package/dist/services/comfy-view-ref.js.map +1 -1
- package/dist/services/frontend-virtual-types.js +178 -0
- package/dist/services/frontend-virtual-types.js.map +1 -0
- package/dist/services/node-management.js +98 -21
- package/dist/services/node-management.js.map +1 -1
- package/dist/services/panel-origin-channel.js +71 -53
- package/dist/services/panel-origin-channel.js.map +1 -1
- package/dist/services/ui-bridge.js +53 -7
- package/dist/services/ui-bridge.js.map +1 -1
- package/dist/tools/vocabulary.js +1 -1
- package/docs/design/panel-surface.txt +1 -0
- package/locales/ar/main.json +2 -1
- package/locales/en/main.json +2 -1
- package/locales/es/main.json +2 -1
- package/locales/fa/main.json +2 -1
- package/locales/fr/main.json +2 -1
- package/locales/ja/main.json +2 -1
- package/locales/ko/main.json +2 -1
- package/locales/pt-BR/main.json +2 -1
- package/locales/ru/main.json +2 -1
- package/locales/tr/main.json +2 -1
- package/locales/zh/main.json +2 -1
- package/locales/zh-TW/main.json +2 -1
- package/package.json +1 -1
- package/plugin/skills/rgthree/SKILL.md +26 -1
- package/scripts/codex-knowledge-parity-smoke.mjs +1 -1
- package/scripts/knowledge-parity-mock-graph.mjs +6 -0
|
@@ -134,6 +134,23 @@ export const GROK_CAPABILITIES = {
|
|
|
134
134
|
audio: false,
|
|
135
135
|
turnMarkers: true, // stampTurn() wraps each per-turn stream
|
|
136
136
|
};
|
|
137
|
+
/** Capability descriptor for the Qwen Code CLI ACP backend (`qwen --acp`,
|
|
138
|
+
* issue #1417). Same ACP posture as Gemini: persistent session, streaming
|
|
139
|
+
* deltas, interrupt via session/cancel, config-declared MCP servers, static
|
|
140
|
+
* model catalog pinned at spawn. */
|
|
141
|
+
export const QWEN_CAPABILITIES = {
|
|
142
|
+
persistentChannel: true, // session/new + repeated session/prompt
|
|
143
|
+
streamingDeltas: true, // session/update agent_message_chunk / agent_thought_chunk
|
|
144
|
+
interruptMidTurn: true, // session/cancel
|
|
145
|
+
forkAtAnchor: false, // session/load is whole-session only (no anchor fork)
|
|
146
|
+
inProcessMcp: false, // ACP session/new declares config MCP servers only
|
|
147
|
+
modelEnumeration: true, // static catalog — ACP exposes no catalog
|
|
148
|
+
slashCommands: false,
|
|
149
|
+
hooks: false,
|
|
150
|
+
vision: true, // delivered as inline base64 image ContentBlocks (when the agent advertises image input)
|
|
151
|
+
audio: false, // same overclaim rationale as GEMINI_CAPABILITIES.audio (#790)
|
|
152
|
+
turnMarkers: true, // stampTurn() wraps each per-turn stream
|
|
153
|
+
};
|
|
137
154
|
/** Capability descriptor for the Ollama local-LLM backend (issue #97's panel
|
|
138
155
|
* phase). Ollama is a stateless HTTP daemon, so the backend owns the whole
|
|
139
156
|
* agentic loop itself (stream /api/chat, dispatch tool calls, repeat) and
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-backend.js","sourceRoot":"","sources":["../../src/orchestrator/agent-backend.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,mFAAmF;AACnF,+DAA+D;AAC/D,EAAE;AACF,mFAAmF;AACnF,+EAA+E;AAC/E,+EAA+E;AAC/E,mFAAmF;
|
|
1
|
+
{"version":3,"file":"agent-backend.js","sourceRoot":"","sources":["../../src/orchestrator/agent-backend.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,mFAAmF;AACnF,+DAA+D;AAC/D,EAAE;AACF,mFAAmF;AACnF,+EAA+E;AAC/E,+EAA+E;AAC/E,mFAAmF;AAuKnF;;;8EAG8E;AAC9E,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,SAAS,CAC9B,MAAiC,EACjC,IAAY;IAEZ,IAAI,KAAK,EAAE,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;QAC9B,MAAM,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC;IACrD,CAAC;AACH,CAAC;AAyHD,8DAA8D;AAC9D,MAAM,CAAC,MAAM,mBAAmB,GAAsB;IACpD,iBAAiB,EAAE,IAAI;IACvB,eAAe,EAAE,IAAI;IACrB,gBAAgB,EAAE,IAAI;IACtB,YAAY,EAAE,IAAI;IAClB,YAAY,EAAE,IAAI;IAClB,gBAAgB,EAAE,IAAI;IACtB,aAAa,EAAE,IAAI;IACnB,KAAK,EAAE,IAAI;IACX,MAAM,EAAE,IAAI,EAAE,0DAA0D;IACxE,KAAK,EAAE,KAAK,EAAE,6DAA6D;IAC3E,WAAW,EAAE,IAAI,EAAE,sEAAsE;CAC1F,CAAC;AAEF,wEAAwE;AACxE,MAAM,CAAC,MAAM,kBAAkB,GAAsB;IACnD,iBAAiB,EAAE,IAAI,EAAE,2CAA2C;IACpE,eAAe,EAAE,IAAI;IACrB,gBAAgB,EAAE,IAAI,EAAE,iBAAiB;IACzC,YAAY,EAAE,KAAK,EAAE,+CAA+C;IACpE,YAAY,EAAE,KAAK,EAAE,mCAAmC;IACxD,gBAAgB,EAAE,IAAI,EAAE,cAAc;IACtC,aAAa,EAAE,KAAK;IACpB,KAAK,EAAE,KAAK;IACZ,MAAM,EAAE,IAAI,EAAE,kEAAkE;IAChF,KAAK,EAAE,KAAK,EAAE,oEAAoE;IAClF,WAAW,EAAE,IAAI,EAAE,yCAAyC;CAC7D,CAAC;AAEF;;;;gFAIgF;AAChF,MAAM,CAAC,MAAM,mBAAmB,GAAsB;IACpD,iBAAiB,EAAE,IAAI,EAAE,wCAAwC;IACjE,eAAe,EAAE,IAAI,EAAE,2DAA2D;IAClF,gBAAgB,EAAE,IAAI,EAAE,iBAAiB;IACzC,YAAY,EAAE,KAAK,EAAE,sDAAsD;IAC3E,YAAY,EAAE,KAAK,EAAE,mDAAmD;IACxE,gBAAgB,EAAE,IAAI,EAAE,oEAAoE;IAC5F,aAAa,EAAE,KAAK;IACpB,KAAK,EAAE,KAAK;IACZ,MAAM,EAAE,IAAI,EAAE,yEAAyE;IACvF,8EAA8E;IAC9E,+EAA+E;IAC/E,+EAA+E;IAC/E,8EAA8E;IAC9E,gFAAgF;IAChF,iFAAiF;IACjF,qEAAqE;IACrE,KAAK,EAAE,KAAK;IACZ,WAAW,EAAE,IAAI,EAAE,yCAAyC;CAC7D,CAAC;AAEF;;;;;;;sEAOsE;AACtE,MAAM,CAAC,MAAM,wBAAwB,GAAsB;IACzD,iBAAiB,EAAE,IAAI,EAAE,kDAAkD;IAC3E,eAAe,EAAE,IAAI,EAAE,yCAAyC;IAChE,gBAAgB,EAAE,IAAI,EAAE,qDAAqD;IAC7E,YAAY,EAAE,KAAK,EAAE,oDAAoD;IACzE,YAAY,EAAE,KAAK,EAAE,yCAAyC;IAC9D,gBAAgB,EAAE,IAAI,EAAE,sCAAsC;IAC9D,aAAa,EAAE,KAAK;IACpB,KAAK,EAAE,KAAK;IACZ,MAAM,EAAE,KAAK,EAAE,uCAAuC;IACtD,KAAK,EAAE,KAAK,EAAE,uDAAuD;IACrE,WAAW,EAAE,IAAI,EAAE,yCAAyC;CAC7D,CAAC;AAEF;;;;;;;;iFAQiF;AACjF,MAAM,CAAC,MAAM,eAAe,GAAsB;IAChD,iBAAiB,EAAE,IAAI,EAAE,qDAAqD;IAC9E,eAAe,EAAE,IAAI,EAAE,kCAAkC;IACzD,gBAAgB,EAAE,IAAI,EAAE,qDAAqD;IAC7E,YAAY,EAAE,KAAK,EAAE,uDAAuD;IAC5E,YAAY,EAAE,KAAK,EAAE,4DAA4D;IACjF,gBAAgB,EAAE,IAAI,EAAE,qBAAqB;IAC7C,aAAa,EAAE,KAAK;IACpB,KAAK,EAAE,KAAK;IACZ,MAAM,EAAE,KAAK,EAAE,qCAAqC;IACpD,KAAK,EAAE,KAAK,EAAE,sDAAsD;IACpE,WAAW,EAAE,IAAI,EAAE,yCAAyC;CAC7D,CAAC;AAEF;;kEAEkE;AAClE,MAAM,CAAC,MAAM,iBAAiB,GAAsB;IAClD,iBAAiB,EAAE,IAAI;IACvB,eAAe,EAAE,IAAI;IACrB,gBAAgB,EAAE,IAAI;IACtB,YAAY,EAAE,KAAK;IACnB,YAAY,EAAE,KAAK;IACnB,gBAAgB,EAAE,IAAI,EAAE,+DAA+D;IACvF,aAAa,EAAE,KAAK;IACpB,KAAK,EAAE,KAAK;IACZ,MAAM,EAAE,IAAI;IACZ,8EAA8E;IAC9E,+EAA+E;IAC/E,+EAA+E;IAC/E,8EAA8E;IAC9E,gFAAgF;IAChF,iFAAiF;IACjF,qEAAqE;IACrE,KAAK,EAAE,KAAK;IACZ,WAAW,EAAE,IAAI,EAAE,yCAAyC;CAC7D,CAAC;AAEF;;;qCAGqC;AACrC,MAAM,CAAC,MAAM,iBAAiB,GAAsB;IAClD,iBAAiB,EAAE,IAAI,EAAE,wCAAwC;IACjE,eAAe,EAAE,IAAI,EAAE,2DAA2D;IAClF,gBAAgB,EAAE,IAAI,EAAE,iBAAiB;IACzC,YAAY,EAAE,KAAK,EAAE,sDAAsD;IAC3E,YAAY,EAAE,KAAK,EAAE,mDAAmD;IACxE,gBAAgB,EAAE,IAAI,EAAE,0CAA0C;IAClE,aAAa,EAAE,KAAK;IACpB,KAAK,EAAE,KAAK;IACZ,MAAM,EAAE,IAAI,EAAE,yFAAyF;IACvG,KAAK,EAAE,KAAK,EAAE,+DAA+D;IAC7E,WAAW,EAAE,IAAI,EAAE,yCAAyC;CAC7D,CAAC;AAEF;;;;;;;;;2CAS2C;AAC3C,MAAM,CAAC,MAAM,mBAAmB,GAAsB;IACpD,iBAAiB,EAAE,IAAI,EAAE,yCAAyC;IAClE,eAAe,EAAE,IAAI,EAAE,sBAAsB;IAC7C,gBAAgB,EAAE,IAAI,EAAE,yCAAyC;IACjE,YAAY,EAAE,KAAK;IACnB,YAAY,EAAE,KAAK,EAAE,2DAA2D;IAChF,gBAAgB,EAAE,IAAI,EAAE,wCAAwC;IAChE,aAAa,EAAE,KAAK;IACpB,KAAK,EAAE,KAAK;IACZ,MAAM,EAAE,IAAI,EAAE,mEAAmE;IACjF,KAAK,EAAE,IAAI,EAAE,4GAA4G;IACzH,WAAW,EAAE,IAAI,EAAE,yCAAyC;CAC7D,CAAC;AAEF;iFACiF;AACjF,MAAM,CAAC,MAAM,oBAAoB,GAAsB;IACrD,iBAAiB,EAAE,IAAI;IACvB,eAAe,EAAE,IAAI;IACrB,gBAAgB,EAAE,IAAI;IACtB,YAAY,EAAE,KAAK;IACnB,YAAY,EAAE,KAAK;IACnB,gBAAgB,EAAE,IAAI,EAAE,kDAAkD;IAC1E,aAAa,EAAE,KAAK;IACpB,KAAK,EAAE,KAAK;IACZ,MAAM,EAAE,IAAI,EAAE,uEAAuE;IACrF,KAAK,EAAE,KAAK,EAAE,qEAAqE;IACnF,WAAW,EAAE,IAAI,EAAE,yCAAyC;CAC7D,CAAC;AAEF,mFAAmF;AACnF,MAAM,CAAC,MAAM,iBAAiB,GAAsB;IAClD,GAAG,mBAAmB;CACvB,CAAC;AAEF,kFAAkF;AAClF,+EAA+E;AAC/E,6EAA6E;AAC7E,gFAAgF;AAChF,sEAAsE;AAEtE;;;gEAGgE;AAChE,MAAM,CAAC,MAAM,oBAAoB,GAAsB;IACrD,GAAG,mBAAmB;CACvB,CAAC"}
|
|
@@ -27,6 +27,7 @@ const CLI_NAMES = {
|
|
|
27
27
|
codex: ["codex", "codex.cmd", "codex.exe"],
|
|
28
28
|
gemini: ["gemini", "gemini.cmd", "gemini.exe"],
|
|
29
29
|
grok: ["grok", "grok.cmd", "grok.exe"],
|
|
30
|
+
qwen: ["qwen", "qwen.cmd", "qwen.exe"],
|
|
30
31
|
pi: ["pi", "pi.exe"], // no .cmd — Node can't shell-lessly spawn it (see resolvePiBin)
|
|
31
32
|
ollama: ["ollama", "ollama.exe"],
|
|
32
33
|
lmstudio: ["lms", "lms.exe"],
|
|
@@ -103,6 +104,25 @@ function geminiSettingsUsesApiKey(geminiHome) {
|
|
|
103
104
|
return false;
|
|
104
105
|
}
|
|
105
106
|
}
|
|
107
|
+
/** True if <home>/.qwen/settings.json selects an auth type
|
|
108
|
+
* (security.auth.selectedType is a non-empty string) — the env-independent
|
|
109
|
+
* "configured" signal for Qwen Code, mirroring geminiSettingsUsesApiKey. `/auth`
|
|
110
|
+
* writes it and it persists across processes, unlike DASHSCOPE_API_KEY which
|
|
111
|
+
* the orchestrator only inherits if set before launch. A stale or keyless
|
|
112
|
+
* selection still surfaces via the connect ack's model probe (degraded), same
|
|
113
|
+
* as every other provider. Never throws — a missing/corrupt file just means
|
|
114
|
+
* "no signal". */
|
|
115
|
+
function qwenSettingsConfigured(home) {
|
|
116
|
+
try {
|
|
117
|
+
const raw = readFileSync(join(home, ".qwen", "settings.json"), "utf8");
|
|
118
|
+
const parsed = JSON.parse(raw);
|
|
119
|
+
const t = parsed?.security?.auth?.selectedType;
|
|
120
|
+
return typeof t === "string" && t.trim().length > 0;
|
|
121
|
+
}
|
|
122
|
+
catch {
|
|
123
|
+
return false;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
106
126
|
function fileExists(...parts) {
|
|
107
127
|
try {
|
|
108
128
|
return existsSync(join(...parts));
|
|
@@ -333,6 +353,29 @@ export function backendReadiness(backend, opts) {
|
|
|
333
353
|
hasValidPanelOAuth("grok", panelOAuthRecords(opts), nowMs);
|
|
334
354
|
return { backend: "grok", cli, auth, ready: cli && auth };
|
|
335
355
|
}
|
|
356
|
+
if (b === "qwen") {
|
|
357
|
+
// Qwen Code CLI (`qwen --acp`, issue #1417). `.cmd` IS probed — unlike pi,
|
|
358
|
+
// we spawn through the shell on Windows (see qwen-backend resolveSpawn), so
|
|
359
|
+
// a `qwen.cmd` shim is genuinely runnable. Auth (the CLI owns it) reads as
|
|
360
|
+
// present when ANY of: a Qwen-side key is in the orchestrator's env
|
|
361
|
+
// (DASHSCOPE_API_KEY / BAILIAN_CODING_PLAN_API_KEY / OPENAI_API_KEY), cached
|
|
362
|
+
// OAuth creds exist at <home>/.qwen/oauth_creds.json (the free tier ended
|
|
363
|
+
// 2026-04-15, but a Coding Plan key configured via /auth lands in
|
|
364
|
+
// settings.json — covered by the next signal), or ~/.qwen/settings.json
|
|
365
|
+
// selects an auth type (the env-independent "configured" signal, mirroring
|
|
366
|
+
// the gemini branch's settings check — this also covers the generic
|
|
367
|
+
// OPENAI_API_KEY + selectedType:"openai" setup, which a bare env probe
|
|
368
|
+
// can't distinguish from an unrelated OPENAI_API_KEY the user set for
|
|
369
|
+
// something else). A stale/bad credential still surfaces via the connect
|
|
370
|
+
// ack's model probe → degraded, same as every other provider.
|
|
371
|
+
const cli = onPath(CLI_NAMES.qwen);
|
|
372
|
+
const envKey = !!(process.env.DASHSCOPE_API_KEY?.trim() ||
|
|
373
|
+
process.env.BAILIAN_CODING_PLAN_API_KEY?.trim());
|
|
374
|
+
const auth = envKey ||
|
|
375
|
+
fileExists(home, ".qwen", "oauth_creds.json") ||
|
|
376
|
+
qwenSettingsConfigured(home);
|
|
377
|
+
return { backend: "qwen", cli, auth, ready: cli && auth };
|
|
378
|
+
}
|
|
336
379
|
if (b === "copilot") {
|
|
337
380
|
// No external CLI/native-file concept for Copilot — the in-panel device-
|
|
338
381
|
// code OAuth (experimental, gated behind allow_experimental in
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backend-readiness.js","sourceRoot":"","sources":["../../src/orchestrator/backend-readiness.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"backend-readiness.js","sourceRoot":"","sources":["../../src/orchestrator/backend-readiness.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,7 +15,9 @@ import { dirname, join } from "node:path";
|
|
|
15
15
|
import { fileURLToPath } from "node:url";
|
|
16
16
|
import { randomBytes } from "node:crypto";
|
|
17
17
|
import readline from "node:readline";
|
|
18
|
-
import { startUiBridge, isLoopbackBindHost, isMirrorSafeFrameType, SESSION_EPOCH, } from "../services/ui-bridge.js";
|
|
18
|
+
import { startUiBridge, isLoopbackBindHost, isMirrorSafeFrameType, isUnknownCommandReply, isPanelCmdUnsupportedError, SESSION_EPOCH, } from "../services/ui-bridge.js";
|
|
19
|
+
import { canonicalOrigin } from "../utils/origin.js";
|
|
20
|
+
import { publishFrontendVirtualTypes, } from "../services/frontend-virtual-types.js";
|
|
19
21
|
import { setupSecureBridge, resolveComfyuiPathForTarget } from "../services/secure-bridge.js";
|
|
20
22
|
import { judgeHelloRetarget, canonComfyuiTargetUrl } from "../services/hello-retarget.js";
|
|
21
23
|
import { startQuickTunnel } from "../services/tunnel.js";
|
|
@@ -93,6 +95,7 @@ import { GeminiBackend, GEMINI_DEFAULT_MODEL } from "./gemini-backend.js";
|
|
|
93
95
|
import { AntigravityBackend } from "./antigravity-backend.js";
|
|
94
96
|
import { PiBackend } from "./pi-backend.js";
|
|
95
97
|
import { GrokBackend, GROK_DEFAULT_MODEL } from "./grok-backend.js";
|
|
98
|
+
import { QwenBackend, QWEN_DEFAULT_MODEL } from "./qwen-backend.js";
|
|
96
99
|
import { OllamaBackend, OLLAMA_SYSTEM_PROMPT } from "./ollama-backend.js";
|
|
97
100
|
import { ChatGptOAuthBackend, CHATGPT_DEFAULT_MODEL } from "./chatgpt-oauth-backend.js";
|
|
98
101
|
import { KimiBackend } from "./kimi-backend.js";
|
|
@@ -192,7 +195,7 @@ OPENING A STAGED / DOWNLOADED WORKFLOW. When you've saved or downloaded a workfl
|
|
|
192
195
|
|
|
193
196
|
RESOLVING A TANGLED / TOGGLE-HEAVY WORKFLOW (Get/Set buses + rgthree-bypassed pipelines). Expert and community graphs are often thick with VIRTUAL WIRING — GetNode/SetNode buses and Reroutes that hide the real connections — and rgthree "Fast Groups Bypasser/Muter" TOGGLED PIPELINES (one graph holding several pipelines, only one active at a time). Do NOT hand-trace GetNode→SetNode links or guess which branches are live. To get the REAL wiring: call panel_strip_workflow(path:<file> | pack:<name> | graph:<json>) — it resolves Get/Set buses, Reroutes, subgraph definitions, and bypassed/muted nodes into REAL connections and returns the flat, runnable graph (read server-side, never shuttled through chat). If the file is a MULTI-PIPELINE monolith and you only want ONE pipeline, FIRST panel_slice_workflow(path:<file>, groups:[<group-title substrings>]) to carve that pipeline into a standalone activated graph (it seeds from the output nodes in those groups, takes their backward closure through links + Set/Get buses, and un-bypasses the kept nodes), THEN panel_strip_workflow to flatten the buses. Reach for panel_strip_workflow whenever a graph is too tangled to read directly or you need to UNDERSTAND or REBUILD its actual wiring (e.g. a staged expert example full of GetNode/SetNode/Reroute); reach for panel_slice_workflow when an ULTRA-style monolith bundles several toggled pipelines and you want just one. (The same two tools exist as the MCP get_workflow (action:"strip") / get_workflow (action:"slice") for non-panel sessions.)
|
|
194
197
|
|
|
195
|
-
AUTHORING rgthree TOGGLES (the counterpart to reading them, above). Fast Groups Bypasser/Muter are FRONTEND-ONLY — registered by the pack's JS and absent from /object_info BY DESIGN, so their absence there is NOT evidence they're unavailable; panel_add_node adds them (it exempts a small allowlist of genuinely frontend-only types, which covers the Fast (Groups) Bypasser/Muter, Label, Reroute and Node Collector — but NOT Bookmark, the Mute/Bypass Relay/Repeater, Fast Actions Button or Random Unmuter, which it refuses fail-closed). They are configured with panel_set_property, NOT panel_set_widget (matchTitle/matchColors/sort/toggleRestriction are node PROPERTIES; panel_set_widget refuses them). They take no wiring and enumerate GROUPS by title, so create and NAME the groups FIRST, and always set matchTitle or the node lists every group in the workflow. Group membership is GEOMETRIC (any node whose centre lands in the box) — when panel_create_group returns extra_node_ids/missing_node_ids and a warning, FIX IT before toggling, or a toggle disables part of the wrong stage. Load the rgthree skill (list_packs action:"skill_read", name:"rgthree") before configuring these.
|
|
198
|
+
AUTHORING rgthree TOGGLES (the counterpart to reading them, above). Fast Groups Bypasser/Muter are FRONTEND-ONLY — registered by the pack's JS and absent from /object_info BY DESIGN, so their absence there is NOT evidence they're unavailable; panel_add_node adds them (it exempts a small allowlist of genuinely frontend-only types, which covers the Fast (Groups) Bypasser/Muter, Label, Reroute and Node Collector — but NOT Bookmark, the Mute/Bypass Relay/Repeater, Fast Actions Button or Random Unmuter, which it refuses fail-closed). They are configured with panel_set_property, NOT panel_set_widget (matchTitle/matchColors/sort/toggleRestriction are node PROPERTIES; panel_set_widget refuses them). They take no wiring and enumerate GROUPS by title, so create and NAME the groups FIRST, and always set matchTitle or the node lists every group in the workflow. Set matchTitle immediately after add_node, then re-read the node: Fast Groups do NOT implement onPropertyChanged, so the first write stores the filter but may leave leftover Enable rows or widgets:{} (unbuilt, not 'no matches'). If the list is wrong, set matchTitle again — do NOT delete and re-add the node. Group membership is GEOMETRIC (any node whose centre lands in the box) — when panel_create_group returns extra_node_ids/missing_node_ids and a warning, FIX IT before toggling, or a toggle disables part of the wrong stage. Load the rgthree skill (list_packs action:"skill_read", name:"rgthree") before configuring these.
|
|
196
199
|
|
|
197
200
|
LORA MANAGER AUTOCOMPLETE NODES. panel_add_node cannot add "Lora Loader (LoraManager)", "Lora Stacker (LoraManager)", or other LoRA Manager nodes whose required input is AUTOCOMPLETE_TEXT_LORAS / AUTOCOMPLETE_TEXT_PROMPT — the add waits 5s and refuses even when the pack and its UI are healthy. That is not a missing extension: reload, panel_refresh_nodes, and retry will keep failing. Use "LoRA Text Loader (LoraManager)" (lora_syntax is a STRING socket you can drive) or core LoraLoader. Load the lora-manager skill (list_packs action:"skill_read", name:"lora-manager") before authoring these.
|
|
198
201
|
|
|
@@ -1402,6 +1405,10 @@ export async function runPanelOrchestrator() {
|
|
|
1402
1405
|
const piModel = process.env.COMFYUI_MCP_PI_MODEL;
|
|
1403
1406
|
const piProvider = process.env.COMFYUI_MCP_PI_PROVIDER;
|
|
1404
1407
|
const grokModel = process.env.COMFYUI_MCP_GROK_MODEL ?? GROK_DEFAULT_MODEL;
|
|
1408
|
+
// Qwen Code (issue #1417): same spawn-pinned posture as Gemini — the panel
|
|
1409
|
+
// model is a Claude id, so the Qwen model comes from COMFYUI_MCP_QWEN_MODEL
|
|
1410
|
+
// (default qwen3-coder-plus), applied at spawn via the CLI `--model` flag.
|
|
1411
|
+
const qwenModel = process.env.COMFYUI_MCP_QWEN_MODEL ?? QWEN_DEFAULT_MODEL;
|
|
1405
1412
|
// Ollama (local LLMs, issue #97): the model is a local tag applied PER
|
|
1406
1413
|
// REQUEST — switching live is free. Default = OUR FINE-TUNE,
|
|
1407
1414
|
// artokun/gemma4-comfyui-mcp:e4b — gemma4 QLoRA-trained on 1055
|
|
@@ -1539,6 +1546,7 @@ export async function runPanelOrchestrator() {
|
|
|
1539
1546
|
"antigravity",
|
|
1540
1547
|
"pi",
|
|
1541
1548
|
"grok",
|
|
1549
|
+
"qwen",
|
|
1542
1550
|
// Simple api-key providers (glm/kimi/moonshot) come from the registry.
|
|
1543
1551
|
...OPENAI_KEY_PROVIDER_IDS,
|
|
1544
1552
|
"ollama",
|
|
@@ -1755,6 +1763,58 @@ export async function runPanelOrchestrator() {
|
|
|
1755
1763
|
// mirror-image lie: claiming to be a build we are not running.
|
|
1756
1764
|
const mcpVersionRunning = MCP_VERSION_RUNNING;
|
|
1757
1765
|
let latestPanelVersion;
|
|
1766
|
+
// #1400 — the frontend VIRTUAL-node registry each connected canvas-owning tab
|
|
1767
|
+
// has PROVEN (its `graph_get_virtual_types` answer: the registered classes that
|
|
1768
|
+
// set `isVirtualNode === true`, the flag ComfyUI's own serializer reads to keep
|
|
1769
|
+
// a node out of the prompt). The headless `check_runtime` in the spawned tool
|
|
1770
|
+
// servers cannot see a browser registry, so each hello pulls this and the poll
|
|
1771
|
+
// tick republishes it through the progress-dir channel the children read
|
|
1772
|
+
// (services/frontend-virtual-types.ts).
|
|
1773
|
+
//
|
|
1774
|
+
// Keyed by the tab's SERVER-OBSERVED handshake origin (bridge.tabServerOrigin),
|
|
1775
|
+
// NEVER the hello's client-supplied comfyui_url claim — page JS can write the
|
|
1776
|
+
// claim but cannot forge the browser's Origin header (the #756 trust model), so
|
|
1777
|
+
// a tab can only annotate the server it provably fronts. A failed or refused
|
|
1778
|
+
// pull keeps the PREVIOUS answer for the origin; only an ok:true reply
|
|
1779
|
+
// replaces it, so a transient error never erases known-good proof.
|
|
1780
|
+
const frontendVirtualTypesByOrigin = new Map();
|
|
1781
|
+
// Panel versions that PROVED they lack the command (an Unknown-command reply or
|
|
1782
|
+
// the proactive too-old refusal), so an old panel is asked once per process,
|
|
1783
|
+
// not once per hello. Keyed by version, not tab: a panel UPDATE keeps the tab
|
|
1784
|
+
// but moves the version, and must be asked again.
|
|
1785
|
+
const virtualTypesUnsupportedPanelVersions = new Set();
|
|
1786
|
+
async function pullFrontendVirtualTypes(tabId, panelVersion) {
|
|
1787
|
+
// A headless (mobile/mirror) client fronts no canvas registry.
|
|
1788
|
+
if (bridge.isCurrentHeadless(tabId))
|
|
1789
|
+
return;
|
|
1790
|
+
if (panelVersion && virtualTypesUnsupportedPanelVersions.has(panelVersion))
|
|
1791
|
+
return;
|
|
1792
|
+
const origin = bridge.tabServerOrigin(tabId);
|
|
1793
|
+
// No proven handshake origin → the answer would be keyed on a claim. Skip:
|
|
1794
|
+
// an unkeyed registry is not evidence about any server.
|
|
1795
|
+
if (!origin)
|
|
1796
|
+
return;
|
|
1797
|
+
try {
|
|
1798
|
+
const reply = (await bridge.send({ cmd: "graph_get_virtual_types" }, { tabId }));
|
|
1799
|
+
// ok:false (the panel could not read its own registry) or a malformed
|
|
1800
|
+
// answer keeps the previous entry rather than replacing it with nothing.
|
|
1801
|
+
if (reply?.ok !== true || !Array.isArray(reply.virtual_types))
|
|
1802
|
+
return;
|
|
1803
|
+
const types = reply.virtual_types.filter((t) => typeof t === "string" && t !== "");
|
|
1804
|
+
frontendVirtualTypesByOrigin.set(canonicalOrigin(origin) ?? origin, types);
|
|
1805
|
+
}
|
|
1806
|
+
catch (err) {
|
|
1807
|
+
// A panel that predates the command is a STABLE fact for this process —
|
|
1808
|
+
// remember the version and stop re-asking on every hello. Any other
|
|
1809
|
+
// failure (timeout, mid-restart socket drop) is transient: the previous
|
|
1810
|
+
// answer stands and the next hello retries.
|
|
1811
|
+
if (isPanelCmdUnsupportedError(err, "graph_get_virtual_types") ||
|
|
1812
|
+
isUnknownCommandReply(err instanceof Error ? err.message : String(err))) {
|
|
1813
|
+
if (panelVersion)
|
|
1814
|
+
virtualTypesUnsupportedPanelVersions.add(panelVersion);
|
|
1815
|
+
}
|
|
1816
|
+
}
|
|
1817
|
+
}
|
|
1758
1818
|
let panelSystemAppend = resolvePanelPersona();
|
|
1759
1819
|
// Set once the manager exists so a later refresh (after a ComfyUI restart) feeds
|
|
1760
1820
|
// the freshly-gathered env into newly-spawned agents too — Claude reads
|
|
@@ -2052,6 +2112,15 @@ export async function runPanelOrchestrator() {
|
|
|
2052
2112
|
mcpServers: makeHttpBackendMcpServers(key),
|
|
2053
2113
|
});
|
|
2054
2114
|
}
|
|
2115
|
+
if (backend === "qwen") {
|
|
2116
|
+
return new QwenBackend({
|
|
2117
|
+
cwd: comfyuiPath ?? process.cwd(),
|
|
2118
|
+
model: qwenModel,
|
|
2119
|
+
systemAppend: sysAppend,
|
|
2120
|
+
comfyuiUrl,
|
|
2121
|
+
mcpServers: makeHttpBackendMcpServers(key),
|
|
2122
|
+
});
|
|
2123
|
+
}
|
|
2055
2124
|
if (backend === "ollama") {
|
|
2056
2125
|
return new OllamaBackend({
|
|
2057
2126
|
cwd: comfyuiPath ?? process.cwd(),
|
|
@@ -2151,7 +2220,7 @@ export async function runPanelOrchestrator() {
|
|
|
2151
2220
|
}
|
|
2152
2221
|
};
|
|
2153
2222
|
logger.info(`[panel-orchestrator] single-port multi-provider: default backend=${defaultBackend}; ` +
|
|
2154
|
-
`codex/gemini/grok panel_* live-graph tools via loopback HTTP MCP${panelMcpHttp ? ` on :${panelMcpHttp.port}` : " UNAVAILABLE"} + headless comfyui MCP`);
|
|
2223
|
+
`codex/gemini/grok/qwen panel_* live-graph tools via loopback HTTP MCP${panelMcpHttp ? ` on :${panelMcpHttp.port}` : " UNAVAILABLE"} + headless comfyui MCP`);
|
|
2155
2224
|
// Readiness/model probing routes through the SELECTED backend PER TAB — a
|
|
2156
2225
|
// codex/gemini tab's "ready" must NOT depend on Claude SDK/login health. Claude
|
|
2157
2226
|
// uses fetchSupportedModels(); codex/gemini spin up a throwaway probe backend
|
|
@@ -2188,17 +2257,19 @@ export async function runPanelOrchestrator() {
|
|
|
2188
2257
|
})
|
|
2189
2258
|
: backend === "grok"
|
|
2190
2259
|
? new GrokBackend({ cwd: comfyuiPath ?? process.cwd(), model: grokModel })
|
|
2191
|
-
: backend === "
|
|
2192
|
-
? new
|
|
2193
|
-
: backend === "
|
|
2194
|
-
? new OllamaBackend({ cwd: comfyuiPath ?? process.cwd(), model:
|
|
2195
|
-
: backend === "
|
|
2196
|
-
? new OllamaBackend({ cwd: comfyuiPath ?? process.cwd(), model:
|
|
2197
|
-
: backend === "
|
|
2198
|
-
? new OllamaBackend({ cwd: comfyuiPath ?? process.cwd(), model:
|
|
2199
|
-
: backend === "
|
|
2200
|
-
? new
|
|
2201
|
-
:
|
|
2260
|
+
: backend === "qwen"
|
|
2261
|
+
? new QwenBackend({ cwd: comfyuiPath ?? process.cwd(), model: qwenModel })
|
|
2262
|
+
: backend === "openrouter"
|
|
2263
|
+
? new OllamaBackend({ cwd: comfyuiPath ?? process.cwd(), model: openrouterModel, ...openrouterDeps() })
|
|
2264
|
+
: backend === "lmstudio"
|
|
2265
|
+
? new OllamaBackend({ cwd: comfyuiPath ?? process.cwd(), model: lmstudioModel, ...lmstudioDeps() })
|
|
2266
|
+
: backend === "llamacpp"
|
|
2267
|
+
? new OllamaBackend({ cwd: comfyuiPath ?? process.cwd(), model: llamacppModel, ...llamacppDeps() })
|
|
2268
|
+
: backend === "custom"
|
|
2269
|
+
? new OllamaBackend({ cwd: comfyuiPath ?? process.cwd(), model: customModel, ...customDeps() })
|
|
2270
|
+
: backend === "copilot"
|
|
2271
|
+
? new CopilotBackend({ cwd: comfyuiPath ?? process.cwd(), model: copilotModel })
|
|
2272
|
+
: new GeminiBackend({ cwd: comfyuiPath ?? process.cwd(), model: geminiModel });
|
|
2202
2273
|
probeBackends.set(backend, pb);
|
|
2203
2274
|
}
|
|
2204
2275
|
catch (err) {
|
|
@@ -3237,6 +3308,8 @@ export async function runPanelOrchestrator() {
|
|
|
3237
3308
|
return piModel;
|
|
3238
3309
|
if (backend === "grok")
|
|
3239
3310
|
return grokModel;
|
|
3311
|
+
if (backend === "qwen")
|
|
3312
|
+
return qwenModel;
|
|
3240
3313
|
if (backend === "ollama")
|
|
3241
3314
|
return ollamaModel;
|
|
3242
3315
|
if (backend === "openrouter")
|
|
@@ -3412,6 +3485,10 @@ export async function runPanelOrchestrator() {
|
|
|
3412
3485
|
latestPanelVersion = helloPanelVer;
|
|
3413
3486
|
void refreshEnvCapabilities();
|
|
3414
3487
|
}
|
|
3488
|
+
// #1400 — pull this tab's proven frontend-virtual registry for the
|
|
3489
|
+
// check_runtime channel. On EVERY hello, not just the first: a page reload
|
|
3490
|
+
// is how a pack's frontend JS arrives or leaves, and the reload re-hellos.
|
|
3491
|
+
void pullFrontendVirtualTypes(panelTab, typeof helloPanelVer === "string" && helloPanelVer ? helloPanelVer : undefined);
|
|
3415
3492
|
// #236 — THE VOCABULARY HANDSHAKE, at the handshake.
|
|
3416
3493
|
//
|
|
3417
3494
|
// `describeVocabularySkew` and the hash it compares have existed, fully
|
|
@@ -3863,6 +3940,7 @@ export async function runPanelOrchestrator() {
|
|
|
3863
3940
|
const isAg = backend === "antigravity";
|
|
3864
3941
|
const isPi = backend === "pi";
|
|
3865
3942
|
const isGk = backend === "grok";
|
|
3943
|
+
const isQw = backend === "qwen";
|
|
3866
3944
|
// glm/kimi/moonshot share one registry-driven ack (label + ready + degraded).
|
|
3867
3945
|
const reg = openAiKeyProvider(backend);
|
|
3868
3946
|
const isOl = backend === "ollama";
|
|
@@ -3941,19 +4019,21 @@ export async function runPanelOrchestrator() {
|
|
|
3941
4019
|
? (piModel ?? models[0].value ?? "Pi")
|
|
3942
4020
|
: isGk
|
|
3943
4021
|
? (grokModel ?? models[0].value ?? "Grok")
|
|
3944
|
-
:
|
|
3945
|
-
? (
|
|
3946
|
-
:
|
|
3947
|
-
? (
|
|
3948
|
-
:
|
|
3949
|
-
? (
|
|
3950
|
-
:
|
|
3951
|
-
? (
|
|
3952
|
-
:
|
|
3953
|
-
? (
|
|
3954
|
-
:
|
|
3955
|
-
? (
|
|
3956
|
-
:
|
|
4022
|
+
: isQw
|
|
4023
|
+
? (qwenModel ?? models[0].value ?? "Qwen Code")
|
|
4024
|
+
: isOl
|
|
4025
|
+
? (ollamaModel ?? models[0].value ?? "Ollama")
|
|
4026
|
+
: isLs
|
|
4027
|
+
? (lmstudioModel || (models[0].value ?? "LM Studio"))
|
|
4028
|
+
: isLc
|
|
4029
|
+
? (llamacppModel || (models[0].value ?? "llama.cpp"))
|
|
4030
|
+
: isCu
|
|
4031
|
+
? (customModel || (models[0].value ?? "Custom endpoint"))
|
|
4032
|
+
: isOr
|
|
4033
|
+
? (openrouterModel ?? models[0].value ?? "OpenRouter")
|
|
4034
|
+
: isCp
|
|
4035
|
+
? (copilotModel ?? models[0].value ?? "Copilot")
|
|
4036
|
+
: model;
|
|
3957
4037
|
// llama.cpp launch gotchas (issue #161): a reachable server can still
|
|
3958
4038
|
// be useless for us — tool calling needs --jinja (rejected requests),
|
|
3959
4039
|
// and a launch-time -c under ~16K silently truncates the tool payload.
|
|
@@ -4028,17 +4108,19 @@ export async function runPanelOrchestrator() {
|
|
|
4028
4108
|
? dtr("pi", "The background agent isn't responding — the pi CLI couldn't run `pi --list-models`. Install it from https://pi.dev (`curl -fsSL https://pi.dev/install.sh | sh`), configure a provider (set a provider API key or run `pi` once and `/login`), then Disconnect → Connect to retry.")
|
|
4029
4109
|
: isGk
|
|
4030
4110
|
? dtr("grok", "The background agent isn't responding — the Grok CLI couldn't start. Make sure Grok is installed and signed in (run `grok` once and complete the xAI sign-in), then Disconnect → Connect to retry.")
|
|
4031
|
-
:
|
|
4032
|
-
? dtr("
|
|
4033
|
-
:
|
|
4034
|
-
? dtr("
|
|
4035
|
-
:
|
|
4036
|
-
? dtr("
|
|
4037
|
-
:
|
|
4038
|
-
? dtr("
|
|
4039
|
-
:
|
|
4040
|
-
? dtr("
|
|
4041
|
-
:
|
|
4111
|
+
: isQw
|
|
4112
|
+
? dtr("qwen", "The background agent isn't responding — the Qwen Code CLI couldn't start. Make sure Qwen Code is installed (npm i -g @qwen-code/qwen-code) and signed in (run `qwen` once and complete /auth, or set DASHSCOPE_API_KEY), then Disconnect → Connect to retry.")
|
|
4113
|
+
: isOl
|
|
4114
|
+
? dtr("ollama", "The background agent isn't responding — Ollama isn't reachable. Start it with `ollama serve` and pull our fine-tuned model (`ollama pull artokun/gemma4-comfyui-mcp:e4b` — gemma4 trained on the comfyui-mcp tool suite — arena-best local model; `:12b` for ~8 GB VRAM), then Disconnect → Connect to retry.")
|
|
4115
|
+
: isLs
|
|
4116
|
+
? dtr("lmstudio", "The background agent isn't responding — LM Studio isn't reachable at {url}. Open LM Studio → Developer → Start Server and load a tool-calling model (our gemma4-comfyui-mcp GGUFs from Hugging Face work great), or set COMFYUI_MCP_LMSTUDIO_HOST if it serves elsewhere — then Disconnect → Connect to retry.", { url: LMSTUDIO_BASE_URL })
|
|
4117
|
+
: isLc
|
|
4118
|
+
? dtr("llamacpp", "The background agent isn't responding — llama-server isn't reachable at {url}. Start it with `llama-server -m <model>.gguf -c 16384` (our gemma4-comfyui-mcp GGUFs work great; add --jinja on older builds — required there for tool calling), or set COMFYUI_MCP_LLAMACPP_HOST — then Disconnect → Connect to retry.", { url: LLAMACPP_BASE_URL })
|
|
4119
|
+
: isCu
|
|
4120
|
+
? dtr("custom", "The background agent isn't responding — your custom endpoint isn't answering at {url}. Check the base URL in Settings → Custom endpoint (it must be OpenAI-compatible and include the /v1) and the API key if the server requires one — then Connect to retry.", { url: customBaseUrl })
|
|
4121
|
+
: isCp
|
|
4122
|
+
? dtr("copilot", "The background agent isn't responding — GitHub Copilot (experimental) couldn't start. Sign in from the panel's experimental row, then Disconnect → Connect to retry.")
|
|
4123
|
+
: dtr("claude", "The background agent isn't responding — the Claude Agent SDK couldn't start. Make sure you're signed in (run `claude` once), then Disconnect → Connect to retry.");
|
|
4042
4124
|
bridge.push({ type: "say", text: degradedText }, panelTab);
|
|
4043
4125
|
bridge.push({ type: "ack", ok: false, kind: "degraded" }, panelTab);
|
|
4044
4126
|
logger.warn(`[panel-orchestrator] tab ${panelTab.slice(0, 8)} connected (${backend}) but model probe empty — degraded ack`);
|
|
@@ -4614,7 +4696,7 @@ export async function runPanelOrchestrator() {
|
|
|
4614
4696
|
// cannot hook in-process — a promise we can't enforce must say so out
|
|
4615
4697
|
// loud, exactly like the old-orchestrator ack warning. API/local lanes
|
|
4616
4698
|
// (ollama/glm/kimi/…) carry only our tool surface, so they get no scare.
|
|
4617
|
-
const CLI_NATIVE_TOOL_BACKENDS = new Set(["codex", "gemini", "grok", "antigravity", "pi", "copilot"]);
|
|
4699
|
+
const CLI_NATIVE_TOOL_BACKENDS = new Set(["codex", "gemini", "grok", "qwen", "antigravity", "pi", "copilot"]);
|
|
4618
4700
|
const tabBackend = backendForTab(tabId);
|
|
4619
4701
|
if (changed && nextBlind && CLI_NATIVE_TOOL_BACKENDS.has(tabBackend)) {
|
|
4620
4702
|
bridge.push({
|
|
@@ -5308,6 +5390,21 @@ export async function runPanelOrchestrator() {
|
|
|
5308
5390
|
// the child must never quote a panel that has since disconnected. Writes only
|
|
5309
5391
|
// when the set changed.
|
|
5310
5392
|
publishConnectedPanelOrigins(progressDir, bridge.connectedServerOrigins());
|
|
5393
|
+
// #1400 — the same level-triggered discipline for the frontend-virtual
|
|
5394
|
+
// registry: republish the CURRENT map, scoped to origins a connected tab
|
|
5395
|
+
// actually fronts, so a disconnected tab's entry drops out of the channel
|
|
5396
|
+
// within one tick rather than exempting types for a page that is gone.
|
|
5397
|
+
{
|
|
5398
|
+
const fronted = new Set(bridge
|
|
5399
|
+
.connectedServerOrigins()
|
|
5400
|
+
.map((o) => canonicalOrigin(o) ?? o));
|
|
5401
|
+
const virtualEntries = [];
|
|
5402
|
+
for (const [origin, types] of frontendVirtualTypesByOrigin) {
|
|
5403
|
+
if (fronted.has(origin))
|
|
5404
|
+
virtualEntries.push({ origin, types });
|
|
5405
|
+
}
|
|
5406
|
+
publishFrontendVirtualTypes(progressDir, virtualEntries);
|
|
5407
|
+
}
|
|
5311
5408
|
let files = [];
|
|
5312
5409
|
try {
|
|
5313
5410
|
files = readdirSync(progressDir).filter((f) => f.endsWith(".json"));
|