comfyui-mcp 0.12.0 → 0.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.beads/hooks/post-checkout +24 -0
- package/.beads/hooks/post-merge +24 -0
- package/.beads/hooks/pre-commit +24 -0
- package/.beads/hooks/pre-push +24 -0
- package/.beads/hooks/prepare-commit-msg +24 -0
- package/.gitattributes +4 -0
- package/CHANGELOG.md +131 -0
- package/README.md +15 -7
- package/dist/comfyui/client.js +20 -1
- package/dist/comfyui/client.js.map +1 -1
- package/dist/config.js +9 -1
- package/dist/config.js.map +1 -1
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -1
- package/dist/orchestrator/index.js +132 -0
- package/dist/orchestrator/index.js.map +1 -0
- package/dist/orchestrator/panel-agent.js +227 -0
- package/dist/orchestrator/panel-agent.js.map +1 -0
- package/dist/services/generate-audio.js +106 -0
- package/dist/services/generate-audio.js.map +1 -0
- package/dist/services/process-control.js +13 -1
- package/dist/services/process-control.js.map +1 -1
- package/dist/services/ui-bridge.js +137 -76
- package/dist/services/ui-bridge.js.map +1 -1
- package/dist/services/workflow-composer.js +147 -0
- package/dist/services/workflow-composer.js.map +1 -1
- package/dist/tools/generate-audio.js +114 -0
- package/dist/tools/generate-audio.js.map +1 -0
- package/dist/tools/index.js +2 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/install-comfyui.js +6 -1
- package/dist/tools/install-comfyui.js.map +1 -1
- package/dist/tools/workflow-compose.js +4 -4
- package/dist/tools/workflow-compose.js.map +1 -1
- package/dist/tools/workflow-deps.js +2 -2
- package/dist/tools/workflow-deps.js.map +1 -1
- package/dist/tools/workflow-library.js +1 -1
- package/dist/tools/workflow-library.js.map +1 -1
- package/dist/tools/workflow-validate.js +1 -1
- package/dist/tools/workflow-validate.js.map +1 -1
- package/dist/tools/workflow-visualize.js +2 -2
- package/dist/tools/workflow-visualize.js.map +1 -1
- package/dist/transport/cli.js +6 -1
- package/dist/transport/cli.js.map +1 -1
- package/dist/utils/errors.js +6 -0
- package/dist/utils/errors.js.map +1 -1
- package/package.json +9 -5
- package/packs/README.md +65 -0
- package/packs/anima/install-runpod.sh +49 -0
- package/packs/anima/install-windows.bat +55 -0
- package/packs/anima/manifest.yaml +72 -0
- package/packs/anima/pack.yaml +25 -0
- package/packs/anima/workflow.json +16026 -0
- package/packs/cozy-flow/install-runpod.sh +35 -0
- package/packs/cozy-flow/install-windows.bat +41 -0
- package/packs/cozy-flow/manifest.yaml +60 -0
- package/packs/cozy-flow/pack.yaml +69 -0
- package/packs/cozy-flow/workflow.json +2552 -0
- package/packs/ernie/install-runpod.sh +35 -0
- package/packs/ernie/install-windows.bat +41 -0
- package/packs/ernie/manifest.yaml +47 -0
- package/packs/ernie/pack.yaml +46 -0
- package/packs/ernie/workflow.json +16050 -0
- package/packs/ideogram/install-runpod.sh +29 -0
- package/packs/ideogram/install-windows.bat +35 -0
- package/packs/ideogram/manifest.yaml +29 -0
- package/packs/ideogram/pack.yaml +38 -0
- package/packs/ideogram/templates/01_Film_Poster.json +71 -0
- package/packs/ideogram/templates/02_TShirt_Graphic_Print.json +34 -0
- package/packs/ideogram/templates/03_Fantasy_Book_Cover.json +69 -0
- package/packs/ideogram/templates/04_Event_Flyer_Poster.json +82 -0
- package/packs/ideogram/templates/05_Comic_Book_Cover.json +84 -0
- package/packs/ideogram/templates/06_Company_Logo_Concept_Board.json +114 -0
- package/packs/ideogram/templates/07_Personal_Branding_Sheet.json +75 -0
- package/packs/ideogram/templates/08_Social_Media_Branding_Kit.json +92 -0
- package/packs/ideogram/templates/09_Mascot_Brand_Kit.json +89 -0
- package/packs/ideogram/templates/10_Luxury_Brand_Identity.json +120 -0
- package/packs/ideogram/templates/11_Food_Promo_Poster.json +156 -0
- package/packs/ideogram/templates/12_Real_Estate_Promotion.json +117 -0
- package/packs/ideogram/templates/13_Restaurant_Fast_Food_Menu.json +123 -0
- package/packs/ideogram/templates/14_Product_Advertisement.json +114 -0
- package/packs/ideogram/templates/15_Tech_Service_Promotion.json +132 -0
- package/packs/ideogram/templates/16_2D_Character_Sheet.json +71 -0
- package/packs/ideogram/templates/17_3D_Character_Sheet.json +63 -0
- package/packs/ideogram/templates/18_Game_Item_Asset_Sheet.json +135 -0
- package/packs/ideogram/templates/19_Magazine_Cover_Design.json +108 -0
- package/packs/ideogram/templates/20_Trading_Card_Design.json +108 -0
- package/packs/ideogram/templates/21_Painting_Style_Scene.json +51 -0
- package/packs/ideogram/templates/22_Anime_Magazine_Cover.json +114 -0
- package/packs/ideogram/templates/23_Anime_Poster.json +127 -0
- package/packs/ideogram/templates/24_Realistic_Photoshoot_Scene.json +18 -0
- package/packs/ideogram/templates/25_Cross_Style_Group_Photo.json +28 -0
- package/packs/ideogram/templates/README_IDEOGRAM4_TEMPLATE_PACK.txt +470 -0
- package/packs/ideogram/workflow.json +6472 -0
- package/packs/ltx-2.3/fix-ltxvideo-kornia.bat +122 -0
- package/packs/ltx-2.3/fix-ltxvideo-kornia.sh +91 -0
- package/packs/ltx-2.3/install-runpod.sh +44 -0
- package/packs/ltx-2.3/install-windows.bat +50 -0
- package/packs/ltx-2.3/manifest.yaml +58 -0
- package/packs/ltx-2.3/pack.yaml +48 -0
- package/packs/qwen-image/install-runpod.sh +42 -0
- package/packs/qwen-image/install-windows.bat +48 -0
- package/packs/qwen-image/manifest.yaml +77 -0
- package/packs/qwen-image/pack.yaml +45 -0
- package/packs/qwen-image-edit/install-runpod.sh +39 -0
- package/packs/qwen-image-edit/install-windows.bat +45 -0
- package/packs/qwen-image-edit/manifest.yaml +74 -0
- package/packs/qwen-image-edit/pack.yaml +45 -0
- package/packs/qwen-image-edit/workflow-inpainting.json +2351 -0
- package/packs/qwen-image-edit/workflow.json +2089 -0
- package/packs/wan-animate/install-runpod.sh +39 -0
- package/packs/wan-animate/install-windows.bat +45 -0
- package/packs/wan-animate/manifest.yaml +57 -0
- package/packs/wan-animate/pack.yaml +49 -0
- package/packs/wan-animate/workflow.json +6993 -0
- package/packs/wan-longer-videos/install-runpod.sh +39 -0
- package/packs/wan-longer-videos/install-windows.bat +45 -0
- package/packs/wan-longer-videos/manifest.yaml +71 -0
- package/packs/wan-longer-videos/pack.yaml +42 -0
- package/packs/wan-longer-videos/workflow.json +22538 -0
- package/packs/wan-transparent/expression-renamer.bat +21 -0
- package/packs/wan-transparent/install-runpod.sh +35 -0
- package/packs/wan-transparent/install-windows.bat +41 -0
- package/packs/wan-transparent/manifest.yaml +49 -0
- package/packs/wan-transparent/pack.yaml +49 -0
- package/packs/wan-transparent/workflow.json +2194 -0
- package/packs/z-image-base/install-runpod.sh +40 -0
- package/packs/z-image-base/install-windows.bat +46 -0
- package/packs/z-image-base/manifest.yaml +75 -0
- package/packs/z-image-base/pack.yaml +39 -0
- package/packs/z-image-base/workflow.json +15198 -0
- package/packs/z-image-turbo/install-runpod.sh +39 -0
- package/packs/z-image-turbo/install-windows.bat +45 -0
- package/packs/z-image-turbo/manifest.yaml +61 -0
- package/packs/z-image-turbo/pack.yaml +40 -0
- package/packs/z-image-turbo/workflow.json +12120 -0
- package/packs/z-image-xy-plot/install-runpod.sh +33 -0
- package/packs/z-image-xy-plot/install-windows.bat +39 -0
- package/packs/z-image-xy-plot/manifest.yaml +61 -0
- package/packs/z-image-xy-plot/pack.yaml +49 -0
- package/packs/z-image-xy-plot/workflow.json +5302 -0
- package/plugin/.claude-plugin/plugin.json +10 -0
- package/plugin/.mcp.json +7 -0
- package/plugin/agents/debugger.md +171 -0
- package/plugin/agents/explorer.md +65 -0
- package/plugin/agents/optimizer.md +196 -0
- package/plugin/agents/researcher.md +56 -0
- package/plugin/commands/batch.md +90 -0
- package/plugin/commands/compare.md +83 -0
- package/plugin/commands/convert.md +78 -0
- package/plugin/commands/debug.md +72 -0
- package/plugin/commands/director.md +134 -0
- package/plugin/commands/gallery.md +61 -0
- package/plugin/commands/gen.md +110 -0
- package/plugin/commands/install.md +68 -0
- package/plugin/commands/node-skill.md +39 -0
- package/plugin/commands/recipe.md +125 -0
- package/plugin/commands/viz.md +39 -0
- package/plugin/hooks/hooks.json +36 -0
- package/plugin/hooks/job-complete-notify.mjs +110 -0
- package/plugin/hooks/open-latest-image.mjs +82 -0
- package/plugin/hooks/save-warning.mjs +21 -0
- package/plugin/hooks/vram-check.mjs +72 -0
- package/plugin/skills/ai-toolkit-trainer/SKILL.md +145 -0
- package/plugin/skills/anima-base/SKILL.md +240 -0
- package/plugin/skills/anima-lora-trainer/SKILL.md +162 -0
- package/plugin/skills/civitai/SKILL.md +107 -0
- package/plugin/skills/comfyui-core/SKILL.md +264 -0
- package/plugin/skills/comfyui-core/references/common-nodes.md +149 -0
- package/plugin/skills/comfyui-frontend-extensions/SKILL.md +502 -0
- package/plugin/skills/comfyui-frontend-extensions/references/migrate-v1-to-v2.md +222 -0
- package/plugin/skills/comfyui-node-registry/SKILL.md +218 -0
- package/plugin/skills/comfyui-node-registry/references/pyproject.toml +65 -0
- package/plugin/skills/director/SKILL.md +321 -0
- package/plugin/skills/ernie-image/SKILL.md +225 -0
- package/plugin/skills/flux-txt2img/SKILL.md +285 -0
- package/plugin/skills/ideogram-ultra/SKILL.md +337 -0
- package/plugin/skills/installer-packs/SKILL.md +74 -0
- package/plugin/skills/ltxv2-video/SKILL.md +515 -0
- package/plugin/skills/model-compatibility/SKILL.md +434 -0
- package/plugin/skills/model-registry/SKILL.md +101 -0
- package/plugin/skills/prompt-engineering/SKILL.md +304 -0
- package/plugin/skills/qwen-image-edit/SKILL.md +282 -0
- package/plugin/skills/qwen-txt2img/SKILL.md +332 -0
- package/plugin/skills/troubleshooting/SKILL.md +424 -0
- package/plugin/skills/wan-flf-video/SKILL.md +514 -0
- package/plugin/skills/wan-t2v-video/SKILL.md +322 -0
- package/plugin/skills/z-image-txt2img/SKILL.md +294 -0
- package/scripts/check-model-urls.mjs +160 -0
- package/scripts/gen-pack-installers.mjs +133 -0
- package/scripts/gen-tool-docs.ts +13 -11
- package/scripts/panel-sim.mjs +56 -0
- package/scripts/test-packs.sh +87 -0
- package/scripts/validate-manifests.mjs +29 -0
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
// Panel orchestrator — a standalone, long-lived process that drives the ComfyUI
|
|
2
|
+
// sidebar panel with autonomous BACKGROUND agents, so the user's interactive
|
|
3
|
+
// Claude session stays free. Launch with `comfyui-mcp --panel-orchestrator`
|
|
4
|
+
// (or COMFYUI_MCP_PANEL_ORCHESTRATOR=1).
|
|
5
|
+
//
|
|
6
|
+
// It owns the UI bridge (port 9101) directly — so it SEES panel messages instead
|
|
7
|
+
// of relying on an idle interactive session to notice a channel push — and spawns
|
|
8
|
+
// one Claude Agent SDK streaming session per panel tab (src/orchestrator/
|
|
9
|
+
// panel-agent.ts). Each agent runs on the user's Claude SUBSCRIPTION with no API
|
|
10
|
+
// key. See docs/design/panel-orchestrator.md.
|
|
11
|
+
import { existsSync } from "node:fs";
|
|
12
|
+
import { fileURLToPath } from "node:url";
|
|
13
|
+
import { startUiBridge } from "../services/ui-bridge.js";
|
|
14
|
+
import { logger } from "../utils/logger.js";
|
|
15
|
+
import { PanelAgentManager } from "./panel-agent.js";
|
|
16
|
+
const PANEL_SYSTEM_APPEND = `You are the autonomous assistant embedded directly in a ComfyUI sidebar panel. The person is working in ComfyUI and talks to you through that panel: their messages arrive as your prompts, and everything you write is shown to them in the panel chat. Write for that reader — lead with the result, keep replies short and concrete, and don't narrate routine internal steps.
|
|
17
|
+
|
|
18
|
+
You have the comfyui MCP tools to generate images, video, and audio and to inspect and manage their ComfyUI instance. Use them to actually do what's asked, then tell them what you did and name or link any output. If a request is ambiguous, make a sensible choice and say what you chose rather than stalling.
|
|
19
|
+
|
|
20
|
+
You are running in the background on the user's own machine. For routine, reversible actions that follow from the request, act without asking permission.`;
|
|
21
|
+
/**
|
|
22
|
+
* Tie the orchestrator's lifetime to ComfyUI's. The launcher (the panel pack)
|
|
23
|
+
* passes its own PID as COMFYUI_MCP_PARENT_PID; we poll whether that process is
|
|
24
|
+
* still alive and shut down when it's gone. Unlike an atexit/signal handler on
|
|
25
|
+
* the parent, this also covers a ComfyUI crash or hard kill — the child notices
|
|
26
|
+
* the parent disappeared and exits on its own. No-op when no parent PID is set
|
|
27
|
+
* (e.g. when run manually from a terminal).
|
|
28
|
+
*/
|
|
29
|
+
function startParentWatchdog(onParentGone) {
|
|
30
|
+
const raw = process.env.COMFYUI_MCP_PARENT_PID;
|
|
31
|
+
const ppid = raw ? Number(raw) : NaN;
|
|
32
|
+
if (!Number.isInteger(ppid) || ppid <= 0)
|
|
33
|
+
return;
|
|
34
|
+
const timer = setInterval(() => {
|
|
35
|
+
let alive = true;
|
|
36
|
+
try {
|
|
37
|
+
process.kill(ppid, 0); // signal 0 = existence probe, doesn't actually signal
|
|
38
|
+
}
|
|
39
|
+
catch (err) {
|
|
40
|
+
// ESRCH = gone; EPERM = exists but not ours to signal (treat as alive).
|
|
41
|
+
alive = err.code === "EPERM";
|
|
42
|
+
}
|
|
43
|
+
if (!alive) {
|
|
44
|
+
clearInterval(timer);
|
|
45
|
+
onParentGone();
|
|
46
|
+
}
|
|
47
|
+
}, 5000);
|
|
48
|
+
// Don't let the watchdog alone keep the process alive — the bridge does that.
|
|
49
|
+
timer.unref?.();
|
|
50
|
+
logger.info(`[panel-orchestrator] watching parent process ${ppid}; will shut down when it exits`);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Run the panel orchestrator. Never resolves — the bridge and agents keep the
|
|
54
|
+
* process alive until SIGINT/SIGTERM or the parent (ComfyUI) exits.
|
|
55
|
+
*/
|
|
56
|
+
export async function runPanelOrchestrator() {
|
|
57
|
+
// Subscription lane: the background agent must authenticate against the user's
|
|
58
|
+
// claude.ai login, never an API key. Unset the key for the SDK subprocess.
|
|
59
|
+
delete process.env.ANTHROPIC_API_KEY;
|
|
60
|
+
const bridge = startUiBridge();
|
|
61
|
+
// Owning the bridge port is the orchestrator's whole job — if another process
|
|
62
|
+
// holds it (e.g. an interactive comfyui-mcp running with --channels), fail
|
|
63
|
+
// loudly instead of running uselessly. (This also avoids the case where a
|
|
64
|
+
// failed bind leaves the process with no live handles and it exits silently.)
|
|
65
|
+
const bound = await bridge.whenReady();
|
|
66
|
+
if (!bound) {
|
|
67
|
+
logger.error(`[panel-orchestrator] could not bind the panel bridge port — another process owns it (often an interactive comfyui-mcp started with --channels). Free that port (or stop the --channels session) and restart the orchestrator. Override the port with COMFYUI_MCP_BRIDGE_PORT.`);
|
|
68
|
+
process.exit(1);
|
|
69
|
+
}
|
|
70
|
+
// The spawned agent runs THIS comfyui-mcp build as its MCP server, in normal
|
|
71
|
+
// (non-channels) mode — so it generates against the live ComfyUI over
|
|
72
|
+
// COMFYUI_URL and never tries to bind the bridge port we own here.
|
|
73
|
+
const mcpEntry = fileURLToPath(new URL("../index.js", import.meta.url));
|
|
74
|
+
const comfyuiUrl = process.env.COMFYUI_URL ?? "http://127.0.0.1:8188";
|
|
75
|
+
const model = process.env.COMFYUI_MCP_PANEL_MODEL ?? "claude-opus-4-8";
|
|
76
|
+
// The bundled plugin (skills) ships alongside dist/ in the package root. Load
|
|
77
|
+
// it so the background agents are ComfyUI experts out of the box.
|
|
78
|
+
const pluginPath = fileURLToPath(new URL("../../plugin", import.meta.url));
|
|
79
|
+
const pluginAvailable = existsSync(pluginPath);
|
|
80
|
+
if (!pluginAvailable) {
|
|
81
|
+
logger.warn(`[panel-orchestrator] bundled plugin not found at ${pluginPath} — agents run without model-expertise skills.`);
|
|
82
|
+
}
|
|
83
|
+
const manager = new PanelAgentManager({
|
|
84
|
+
model,
|
|
85
|
+
systemAppend: PANEL_SYSTEM_APPEND,
|
|
86
|
+
pluginPath: pluginAvailable ? pluginPath : undefined,
|
|
87
|
+
mcpServers: {
|
|
88
|
+
comfyui: {
|
|
89
|
+
type: "stdio",
|
|
90
|
+
command: process.execPath, // node
|
|
91
|
+
args: [mcpEntry], // dist/index.js, no --channels
|
|
92
|
+
env: { COMFYUI_URL: comfyuiUrl },
|
|
93
|
+
},
|
|
94
|
+
},
|
|
95
|
+
onSay: (tabId, text) => {
|
|
96
|
+
bridge.push({ type: "say", text }, tabId);
|
|
97
|
+
},
|
|
98
|
+
});
|
|
99
|
+
bridge.onPanelMessage = (event) => {
|
|
100
|
+
if (event.type !== "user_message" ||
|
|
101
|
+
typeof event.text !== "string" ||
|
|
102
|
+
!event.tab_id) {
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
// Echo so the user immediately sees their own message land in the chat.
|
|
106
|
+
bridge.push({ type: "echo", text: event.text }, event.tab_id);
|
|
107
|
+
logger.info(`[panel-orchestrator] tab ${event.tab_id.slice(0, 8)} → agent: ${event.text.slice(0, 80)}`);
|
|
108
|
+
manager.send(event.tab_id, event.text, { title: event.title });
|
|
109
|
+
};
|
|
110
|
+
logger.info(`[panel-orchestrator] ready — bridge on ws://127.0.0.1:9101; an agent spawns per ComfyUI tab on its first message (model=${model}, comfyui=${comfyuiUrl})`);
|
|
111
|
+
let shuttingDown = false;
|
|
112
|
+
const shutdown = async () => {
|
|
113
|
+
if (shuttingDown)
|
|
114
|
+
return;
|
|
115
|
+
shuttingDown = true;
|
|
116
|
+
logger.info("[panel-orchestrator] shutting down — stopping agents…");
|
|
117
|
+
await manager.stopAll();
|
|
118
|
+
await bridge.stop();
|
|
119
|
+
process.exit(0);
|
|
120
|
+
};
|
|
121
|
+
process.on("SIGINT", shutdown);
|
|
122
|
+
process.on("SIGTERM", shutdown);
|
|
123
|
+
// Beacon: when ComfyUI (the launcher) exits — cleanly or by crash/kill —
|
|
124
|
+
// shut down rather than linger as an orphan holding the bridge port.
|
|
125
|
+
startParentWatchdog(() => {
|
|
126
|
+
logger.info("[panel-orchestrator] parent (ComfyUI) process exited — shutting down.");
|
|
127
|
+
void shutdown();
|
|
128
|
+
});
|
|
129
|
+
// Keep the process alive; the bridge + agents drive everything from here.
|
|
130
|
+
await new Promise(() => { });
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/orchestrator/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
// Panel agent — one persistent Claude Agent SDK streaming session per ComfyUI
|
|
2
|
+
// panel tab. This is the autonomous background driver for the sidebar panel: the
|
|
3
|
+
// orchestrator (src/orchestrator/index.ts) owns the UI bridge and feeds each
|
|
4
|
+
// tab's user messages into that tab's session here; the agent's replies flow
|
|
5
|
+
// back out to the panel chat.
|
|
6
|
+
//
|
|
7
|
+
// Why the Agent SDK (not --sdk-url / CCR-v2): we need a persistent background
|
|
8
|
+
// agent with a live "channel in" (push messages over time), interrupt/inject,
|
|
9
|
+
// and SUBSCRIPTION auth with no API key — without patching the claude binary.
|
|
10
|
+
// `query({ prompt: <async generator> })` is exactly that: the generator stays
|
|
11
|
+
// open (the channel in), `Query.interrupt()` stops a live turn, and with
|
|
12
|
+
// ANTHROPIC_API_KEY unset the SDK reads the on-disk claude.ai OAuth login
|
|
13
|
+
// (verified: the session reports apiKeySource=none on this machine).
|
|
14
|
+
//
|
|
15
|
+
// The spawned agent runs THIS comfyui-mcp build as its MCP server in normal
|
|
16
|
+
// (non-channels) mode, so it talks to the live ComfyUI over COMFYUI_URL and
|
|
17
|
+
// never contends for the bridge port the orchestrator owns.
|
|
18
|
+
import { logger } from "../utils/logger.js";
|
|
19
|
+
// The Agent SDK is an OPTIONAL dependency (it pulls in ~100 packages and is only
|
|
20
|
+
// needed for the panel orchestrator), so load it lazily and fail with a clear
|
|
21
|
+
// message rather than at import time for everyone.
|
|
22
|
+
let queryFn = null;
|
|
23
|
+
async function loadQuery() {
|
|
24
|
+
if (queryFn)
|
|
25
|
+
return queryFn;
|
|
26
|
+
try {
|
|
27
|
+
const mod = await import("@anthropic-ai/claude-agent-sdk");
|
|
28
|
+
queryFn = mod.query;
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
throw new Error("The panel orchestrator requires the optional dependency @anthropic-ai/claude-agent-sdk. Install it with: npm i @anthropic-ai/claude-agent-sdk");
|
|
32
|
+
}
|
|
33
|
+
return queryFn;
|
|
34
|
+
}
|
|
35
|
+
function msgOf(err) {
|
|
36
|
+
return err instanceof Error ? err.message : String(err);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* One persistent streaming session for a single panel tab. Messages typed in
|
|
40
|
+
* the panel are queued via `send()` and yielded into the live `query()` session
|
|
41
|
+
* as user turns; the session never closes until `stop()`.
|
|
42
|
+
*/
|
|
43
|
+
export class PanelAgent {
|
|
44
|
+
tabId;
|
|
45
|
+
deps;
|
|
46
|
+
q = null;
|
|
47
|
+
queue = [];
|
|
48
|
+
waiting = null;
|
|
49
|
+
closed = false;
|
|
50
|
+
/** Captured from the session's init message; enables resume across restarts. */
|
|
51
|
+
sessionId = null;
|
|
52
|
+
title;
|
|
53
|
+
constructor(tabId, deps) {
|
|
54
|
+
this.tabId = tabId;
|
|
55
|
+
this.deps = deps;
|
|
56
|
+
}
|
|
57
|
+
short() {
|
|
58
|
+
return this.tabId.slice(0, 8);
|
|
59
|
+
}
|
|
60
|
+
/** Queue a panel message and wake the streaming generator (the "channel in"). */
|
|
61
|
+
send(text, title) {
|
|
62
|
+
if (title)
|
|
63
|
+
this.title = title;
|
|
64
|
+
this.queue.push(text);
|
|
65
|
+
const wake = this.waiting;
|
|
66
|
+
this.waiting = null;
|
|
67
|
+
wake?.();
|
|
68
|
+
}
|
|
69
|
+
/** Stop the current turn without ending the session (a "stop" button). */
|
|
70
|
+
async interrupt() {
|
|
71
|
+
try {
|
|
72
|
+
await this.q?.interrupt();
|
|
73
|
+
}
|
|
74
|
+
catch (err) {
|
|
75
|
+
logger.debug(`[panel-agent ${this.short()}] interrupt: ${msgOf(err)}`);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
/** End the session and release the agent (tab closed / orchestrator shutdown). */
|
|
79
|
+
async stop() {
|
|
80
|
+
this.closed = true;
|
|
81
|
+
const wake = this.waiting;
|
|
82
|
+
this.waiting = null;
|
|
83
|
+
wake?.(); // let the generator observe `closed` and return
|
|
84
|
+
try {
|
|
85
|
+
await this.q?.interrupt();
|
|
86
|
+
}
|
|
87
|
+
catch {
|
|
88
|
+
// already winding down
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
// The streaming "channel in": an async generator that stays open and yields a
|
|
92
|
+
// user turn whenever the panel sends one. The session idles between messages
|
|
93
|
+
// and wakes the moment send() pushes — solving "can't wake an idle session".
|
|
94
|
+
async *channel() {
|
|
95
|
+
while (!this.closed) {
|
|
96
|
+
if (this.queue.length === 0) {
|
|
97
|
+
await new Promise((resolve) => {
|
|
98
|
+
this.waiting = resolve;
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
if (this.closed)
|
|
102
|
+
return;
|
|
103
|
+
const text = this.queue.shift();
|
|
104
|
+
if (text === undefined)
|
|
105
|
+
continue;
|
|
106
|
+
yield {
|
|
107
|
+
type: "user",
|
|
108
|
+
message: { role: "user", content: text },
|
|
109
|
+
parent_tool_use_id: null,
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Start the persistent session. Resolves only when the session ends. Safe to
|
|
115
|
+
* call once; `send()` may be called before this resolves (messages queue).
|
|
116
|
+
*/
|
|
117
|
+
async start(resumeSessionId) {
|
|
118
|
+
const query = await loadQuery();
|
|
119
|
+
const options = {
|
|
120
|
+
model: this.deps.model,
|
|
121
|
+
permissionMode: "bypassPermissions",
|
|
122
|
+
// Required alongside bypassPermissions (intentional, isolated background agent).
|
|
123
|
+
allowDangerouslySkipPermissions: true,
|
|
124
|
+
mcpServers: this.deps.mcpServers,
|
|
125
|
+
// Only our comfyui MCP — never inherit the user's project/user MCP config
|
|
126
|
+
// (which may run a second comfyui in --channels mode that grabs the port).
|
|
127
|
+
strictMcpConfig: true,
|
|
128
|
+
systemPrompt: {
|
|
129
|
+
type: "preset",
|
|
130
|
+
preset: "claude_code",
|
|
131
|
+
append: this.deps.systemAppend,
|
|
132
|
+
},
|
|
133
|
+
// Load the bundled comfyui-mcp plugin so the agent has model expertise
|
|
134
|
+
// (IDEOGRAM/WAN/LTX/Qwen/… skills) out of the box — "install the package
|
|
135
|
+
// = expert agent". Omitted if the plugin dir can't be found.
|
|
136
|
+
...(this.deps.pluginPath
|
|
137
|
+
? {
|
|
138
|
+
plugins: [{ type: "local", path: this.deps.pluginPath }],
|
|
139
|
+
skills: "all",
|
|
140
|
+
}
|
|
141
|
+
: {}),
|
|
142
|
+
...(resumeSessionId ? { resume: resumeSessionId } : {}),
|
|
143
|
+
};
|
|
144
|
+
this.q = query({ prompt: this.channel(), options });
|
|
145
|
+
try {
|
|
146
|
+
for await (const message of this.q)
|
|
147
|
+
this.route(message);
|
|
148
|
+
}
|
|
149
|
+
catch (err) {
|
|
150
|
+
if (!this.closed) {
|
|
151
|
+
logger.error(`[panel-agent ${this.short()}] stream error: ${msgOf(err)}`);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
finally {
|
|
155
|
+
logger.info(`[panel-agent ${this.short()}] session ended`);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
route(message) {
|
|
159
|
+
switch (message.type) {
|
|
160
|
+
case "system":
|
|
161
|
+
if (message.subtype === "init") {
|
|
162
|
+
this.sessionId = message.session_id;
|
|
163
|
+
logger.info(`[panel-agent ${this.short()}] init model=${message.model} session=${message.session_id.slice(0, 8)} apiKeySource=${message.apiKeySource} skills=${message.skills?.length ?? 0}`);
|
|
164
|
+
}
|
|
165
|
+
break;
|
|
166
|
+
case "assistant": {
|
|
167
|
+
// Relay each text block into the panel chat — progress and final reply.
|
|
168
|
+
const content = (message.message?.content ?? []);
|
|
169
|
+
for (const block of content) {
|
|
170
|
+
if (block.type === "text" && typeof block.text === "string") {
|
|
171
|
+
const text = block.text.trim();
|
|
172
|
+
if (text)
|
|
173
|
+
this.deps.onSay(this.tabId, text);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
break;
|
|
177
|
+
}
|
|
178
|
+
case "result":
|
|
179
|
+
logger.info(`[panel-agent ${this.short()}] turn done (subtype=${message.subtype})`);
|
|
180
|
+
break;
|
|
181
|
+
default:
|
|
182
|
+
break;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
/** Owns one PanelAgent per tab id, spawned lazily on the tab's first message. */
|
|
187
|
+
export class PanelAgentManager {
|
|
188
|
+
agents = new Map();
|
|
189
|
+
opts;
|
|
190
|
+
constructor(opts) {
|
|
191
|
+
this.opts = opts;
|
|
192
|
+
}
|
|
193
|
+
/** Route a panel message to its tab's agent, creating the agent if needed. */
|
|
194
|
+
send(tabId, text, meta) {
|
|
195
|
+
let agent = this.agents.get(tabId);
|
|
196
|
+
if (!agent) {
|
|
197
|
+
agent = new PanelAgent(tabId, {
|
|
198
|
+
mcpServers: this.opts.mcpServers,
|
|
199
|
+
systemAppend: this.opts.systemAppend,
|
|
200
|
+
model: this.opts.model,
|
|
201
|
+
onSay: this.opts.onSay,
|
|
202
|
+
pluginPath: this.opts.pluginPath,
|
|
203
|
+
});
|
|
204
|
+
this.agents.set(tabId, agent);
|
|
205
|
+
logger.info(`[panel-orchestrator] spawning agent for tab ${tabId.slice(0, 8)} (${this.agents.size} active)`);
|
|
206
|
+
// Fire-and-forget: start() resolves only when the session ends.
|
|
207
|
+
void agent.start().catch((err) => {
|
|
208
|
+
this.agents.delete(tabId);
|
|
209
|
+
const m = msgOf(err);
|
|
210
|
+
logger.error(`[panel-agent ${tabId.slice(0, 8)}] failed to start: ${m}`);
|
|
211
|
+
this.opts.onSay(tabId, `⚠️ The panel agent could not start: ${m}`);
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
agent.send(text, meta?.title);
|
|
215
|
+
}
|
|
216
|
+
async interrupt(tabId) {
|
|
217
|
+
await this.agents.get(tabId)?.interrupt();
|
|
218
|
+
}
|
|
219
|
+
async stopAll() {
|
|
220
|
+
await Promise.all([...this.agents.values()].map((a) => a.stop()));
|
|
221
|
+
this.agents.clear();
|
|
222
|
+
}
|
|
223
|
+
count() {
|
|
224
|
+
return this.agents.size;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
//# sourceMappingURL=panel-agent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"panel-agent.js","sourceRoot":"","sources":["../../src/orchestrator/panel-agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { createWorkflow } from "./workflow-composer.js";
|
|
2
|
+
import { DefaultsManager } from "./defaults-manager.js";
|
|
3
|
+
import { ValidationError } from "../utils/errors.js";
|
|
4
|
+
const DEFAULTABLE_KEYS = [
|
|
5
|
+
"seed",
|
|
6
|
+
"steps",
|
|
7
|
+
"cfg",
|
|
8
|
+
"sampler",
|
|
9
|
+
"scheduler",
|
|
10
|
+
"filename_prefix",
|
|
11
|
+
"unet",
|
|
12
|
+
"vae",
|
|
13
|
+
"clip_a",
|
|
14
|
+
"clip_b",
|
|
15
|
+
"lyrics",
|
|
16
|
+
"language",
|
|
17
|
+
"musical_key",
|
|
18
|
+
"shift",
|
|
19
|
+
"guidance_scale",
|
|
20
|
+
"checkpoint",
|
|
21
|
+
"clip",
|
|
22
|
+
"negative_prompt",
|
|
23
|
+
];
|
|
24
|
+
export async function generateAudio(args, deps) {
|
|
25
|
+
if (!args.prompt) {
|
|
26
|
+
throw new ValidationError("prompt is required for audio generation");
|
|
27
|
+
}
|
|
28
|
+
if (!args.duration || args.duration <= 0) {
|
|
29
|
+
throw new ValidationError("duration must be a positive number (in seconds)");
|
|
30
|
+
}
|
|
31
|
+
const argsRecord = args;
|
|
32
|
+
const seed = {};
|
|
33
|
+
for (const key of DEFAULTABLE_KEYS) {
|
|
34
|
+
const v = argsRecord[key];
|
|
35
|
+
if (v !== undefined)
|
|
36
|
+
seed[key] = v;
|
|
37
|
+
}
|
|
38
|
+
const resolved = DefaultsManager.apply(seed);
|
|
39
|
+
let checkpoint = resolved.checkpoint;
|
|
40
|
+
let unet = resolved.unet;
|
|
41
|
+
let vae = resolved.vae;
|
|
42
|
+
let clip = resolved.clip;
|
|
43
|
+
let clipA = resolved.clip_a;
|
|
44
|
+
let clipB = resolved.clip_b;
|
|
45
|
+
if (args.model_family === "ace_step_1.5") {
|
|
46
|
+
if (!unet)
|
|
47
|
+
unet = await deps.resolveFirstModel("diffusion_models");
|
|
48
|
+
if (!vae)
|
|
49
|
+
vae = await deps.resolveFirstModel("vae");
|
|
50
|
+
if (!clipA)
|
|
51
|
+
clipA = await deps.resolveFirstModel("text_encoders");
|
|
52
|
+
if (!unet) {
|
|
53
|
+
throw new ValidationError("No UNet model specified or found locally for ACE Step 1.5. " +
|
|
54
|
+
"Pass `unet` or download one via download_model.");
|
|
55
|
+
}
|
|
56
|
+
const workflow = createWorkflow("ace_step_15", {
|
|
57
|
+
unet,
|
|
58
|
+
vae: vae ?? "ace_1.5_vae.safetensors",
|
|
59
|
+
clip_a: clipA ?? "qwen_0.6b_ace15.safetensors",
|
|
60
|
+
clip_b: clipB ?? "qwen_4b_ace15.safetensors",
|
|
61
|
+
prompt: args.prompt,
|
|
62
|
+
lyrics: resolved.lyrics,
|
|
63
|
+
duration: args.duration,
|
|
64
|
+
seed: resolved.seed,
|
|
65
|
+
steps: resolved.steps,
|
|
66
|
+
cfg: resolved.cfg,
|
|
67
|
+
sampler_name: resolved.sampler,
|
|
68
|
+
scheduler: resolved.scheduler,
|
|
69
|
+
shift: resolved.shift,
|
|
70
|
+
language: resolved.language,
|
|
71
|
+
musical_key: resolved.musical_key,
|
|
72
|
+
guidance_scale: resolved.guidance_scale,
|
|
73
|
+
filename_prefix: resolved.filename_prefix,
|
|
74
|
+
});
|
|
75
|
+
const { prompt_id, queue_remaining } = await deps.enqueue(workflow);
|
|
76
|
+
return { prompt_id, queue_remaining, model_family: "ace_step_1.5" };
|
|
77
|
+
}
|
|
78
|
+
// Stable Audio 3
|
|
79
|
+
if (!checkpoint) {
|
|
80
|
+
const models = await deps.resolveFirstModel("checkpoints");
|
|
81
|
+
if (models)
|
|
82
|
+
checkpoint = models;
|
|
83
|
+
}
|
|
84
|
+
if (!clip)
|
|
85
|
+
clip = await deps.resolveFirstModel("text_encoders");
|
|
86
|
+
if (!checkpoint) {
|
|
87
|
+
throw new ValidationError("No checkpoint specified or found locally for Stable Audio 3. " +
|
|
88
|
+
"Pass `checkpoint` or download one via download_model.");
|
|
89
|
+
}
|
|
90
|
+
const workflow = createWorkflow("stable_audio_3", {
|
|
91
|
+
checkpoint,
|
|
92
|
+
clip: clip ?? "t5gemma_b_b_ul2.safetensors",
|
|
93
|
+
prompt: args.prompt,
|
|
94
|
+
negative_prompt: resolved.negative_prompt,
|
|
95
|
+
duration: args.duration,
|
|
96
|
+
seed: resolved.seed,
|
|
97
|
+
steps: resolved.steps,
|
|
98
|
+
cfg: resolved.cfg,
|
|
99
|
+
sampler_name: resolved.sampler,
|
|
100
|
+
scheduler: resolved.scheduler,
|
|
101
|
+
filename_prefix: resolved.filename_prefix,
|
|
102
|
+
});
|
|
103
|
+
const { prompt_id, queue_remaining } = await deps.enqueue(workflow);
|
|
104
|
+
return { prompt_id, queue_remaining, model_family: "stable_audio_3" };
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=generate-audio.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-audio.js","sourceRoot":"","sources":["../../src/services/generate-audio.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { execSync, spawn } from "node:child_process";
|
|
2
2
|
import { platform } from "node:os";
|
|
3
3
|
import { getSystemStats, resetClient, resetObjectInfoCache } from "../comfyui/client.js";
|
|
4
|
-
import { config, getComfyUIApiHost, getComfyUIProtocol } from "../config.js";
|
|
4
|
+
import { config, getComfyUIApiHost, getComfyUIProtocol, isRemoteMode } from "../config.js";
|
|
5
5
|
import { ProcessControlError } from "../utils/errors.js";
|
|
6
6
|
import { logger } from "../utils/logger.js";
|
|
7
7
|
// ---------------------------------------------------------------------------
|
|
@@ -454,6 +454,10 @@ async function gatherProcessInfo() {
|
|
|
454
454
|
// Public API
|
|
455
455
|
// ---------------------------------------------------------------------------
|
|
456
456
|
export async function stopComfyUI() {
|
|
457
|
+
if (isRemoteMode()) {
|
|
458
|
+
throw new ProcessControlError("stop_comfyui operates on the local machine's ComfyUI process and is not " +
|
|
459
|
+
"available when targeting a remote instance via --comfyui-url.");
|
|
460
|
+
}
|
|
457
461
|
logger.info("Stopping ComfyUI...");
|
|
458
462
|
detachSupervisor();
|
|
459
463
|
// Gather info before we kill it
|
|
@@ -519,6 +523,10 @@ export async function stopComfyUI() {
|
|
|
519
523
|
};
|
|
520
524
|
}
|
|
521
525
|
export async function startComfyUI() {
|
|
526
|
+
if (isRemoteMode()) {
|
|
527
|
+
throw new ProcessControlError("start_comfyui launches ComfyUI on the local machine and is not " +
|
|
528
|
+
"available when targeting a remote instance via --comfyui-url.");
|
|
529
|
+
}
|
|
522
530
|
const port = config.resolvedPort;
|
|
523
531
|
// Check if already running
|
|
524
532
|
const existingPid = findPidByPort(port);
|
|
@@ -603,6 +611,10 @@ export async function startComfyUI() {
|
|
|
603
611
|
};
|
|
604
612
|
}
|
|
605
613
|
export async function restartComfyUI() {
|
|
614
|
+
if (isRemoteMode()) {
|
|
615
|
+
throw new ProcessControlError("restart_comfyUI operates on the local machine's ComfyUI process and is not " +
|
|
616
|
+
"available when targeting a remote instance via --comfyui-url.");
|
|
617
|
+
}
|
|
606
618
|
logger.info("Restarting ComfyUI...");
|
|
607
619
|
// Stop
|
|
608
620
|
const stopResult = await stopComfyUI();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process-control.js","sourceRoot":"","sources":["../../src/services/process-control.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"process-control.js","sourceRoot":"","sources":["../../src/services/process-control.ts"],"names":[],"mappings":"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"}
|