comfyui-mcp 0.51.37 → 0.51.39

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/config.js CHANGED
@@ -2,7 +2,7 @@ import { z } from "zod";
2
2
  import { fileURLToPath } from "url";
3
3
  import { dirname, resolve, join } from "path";
4
4
  import { chmodSync, copyFileSync, existsSync, mkdirSync, readdirSync, readFileSync, rmSync, writeFileSync } from "node:fs";
5
- import { homedir } from "node:os";
5
+ import { homedir, networkInterfaces } from "node:os";
6
6
  import { isIP } from "node:net";
7
7
  import { normalizeInstallPathEnv } from "./utils/install-path-env.js";
8
8
  import { parseComfyUIUrl } from "./transport/comfyui-url.js";
@@ -222,6 +222,108 @@ const LOOPBACK_HOSTS = new Set([
222
222
  "::", // IPv6 wildcard bind — reachable on loopback (::1)
223
223
  "0000:0000:0000:0000:0000:0000:0000:0000",
224
224
  ]);
225
+ /**
226
+ * True when `host` is an address THIS machine answers on — loopback, or any
227
+ * literal IP currently bound to one of its own interfaces (#742).
228
+ *
229
+ * `isLoopbackHost` answers a narrower question than most of its callers need.
230
+ * Loopback proves the ROUTE is local; it does not follow that a non-loopback
231
+ * address is a different machine. A ComfyUI on this very host addressed as
232
+ * `http://192.168.1.50:8188` — which is how anyone reaches it from a phone, or
233
+ * how Pinokio and several launchers advertise it — is not loopback and is not
234
+ * remote either. The recurrence on #742 is exactly that: the restart guard read
235
+ * "not loopback" as "not ours", skipped its refuse-safe check, and stopped a
236
+ * server it then could not bring back.
237
+ *
238
+ * NO DNS. A hostname is compared as a string against the literal addresses the
239
+ * interfaces report, so it simply never matches — `comfy.lan` returns false even
240
+ * if it resolves here. That is deliberate, not a gap: resolving would mean a DNS
241
+ * round trip on a path that must not block, and a name can resolve differently —
242
+ * or be made to — between this check and the action it authorizes. This gates a
243
+ * REFUSAL, so "cannot prove it is ours" is the safe answer; it leaves today's
244
+ * behaviour exactly as it was.
245
+ *
246
+ * (An earlier version guarded the comparison with an explicit is-this-a-literal-IP
247
+ * test. Mutation testing showed removing it changed no outcome — the equality
248
+ * below already refuses names — so it was a check that could never fire, next to
249
+ * a comment claiming it was what enforced the rule.)
250
+ *
251
+ * Not cached. `networkInterfaces()` is a cheap syscall, and a laptop that
252
+ * changes networks would keep answering from a stale snapshot — wrong in the
253
+ * direction that matters, since the whole point is to be right about which
254
+ * machine we are talking to right now.
255
+ */
256
+ export function isOwnHostAddress(host) {
257
+ if (isLoopbackHost(host))
258
+ return true;
259
+ const h = canonicalHostForCompare(host);
260
+ // An empty host must never fall through to the comparison: an interface that
261
+ // reported an empty address would then match it.
262
+ if (!h)
263
+ return false;
264
+ try {
265
+ for (const addrs of Object.values(networkInterfaces())) {
266
+ for (const a of addrs ?? []) {
267
+ if (canonicalHostForCompare(a.address) === h)
268
+ return true;
269
+ }
270
+ }
271
+ }
272
+ catch {
273
+ // Enumerating interfaces can fail in a locked-down container. Unknown is
274
+ // not proof, and this gates a refusal — fall through to false.
275
+ }
276
+ return false;
277
+ }
278
+ /**
279
+ * One canonical spelling for an address, so equality means "same address"
280
+ * rather than "same characters" (#742 review).
281
+ *
282
+ * Textual comparison alone is wrong in the direction that keeps the bug: an
283
+ * interface reports `2600:1700:5892:bc10::22` while a config may carry the same
284
+ * address written `2600:1700:5892:BC10:0:0:0:22`, and a plain `===` calls those
285
+ * different machines. `URL` already implements the canonicalization — it
286
+ * lowercases, collapses to the `::` form, and rewrites IPv4-mapped addresses —
287
+ * so both sides are run through it rather than hand-rolling the rules.
288
+ *
289
+ * IPv4-mapped IPv6 (`::ffff:192.168.1.179`) is folded to its dotted IPv4 form
290
+ * FIRST, because that is the form `networkInterfaces()` reports; left alone,
291
+ * `URL` canonicalizes it to `::ffff:c0a8:1b3` and it still would not match.
292
+ *
293
+ * No zone-suffix handling: `new URL("http://[fe80::1%eth0]/")` throws, so a
294
+ * scoped address cannot reach here through a configured target at all. An
295
+ * earlier version stripped `%eth0` and had a test for it — which passed while
296
+ * exercising something production could never deliver.
297
+ */
298
+ function canonicalHostForCompare(host) {
299
+ const raw = (host ?? "").trim().toLowerCase().replace(/^\[|\]$/g, "");
300
+ if (!raw)
301
+ return "";
302
+ if (!raw.includes(":"))
303
+ return raw; // IPv4 or a name — already canonical
304
+ let canon;
305
+ try {
306
+ // URL canonicalizes IPv6 and re-brackets it; strip the brackets back off.
307
+ canon = new URL(`http://[${raw}]/`).hostname.replace(/^\[|\]$/g, "");
308
+ }
309
+ catch {
310
+ return raw; // not a valid IPv6 literal — compare as written
311
+ }
312
+ // The IPv4-mapped fold happens AFTER canonicalization, not before, and that
313
+ // ordering is the whole point (round-2 review). URL rewrites EVERY mapped
314
+ // spelling to the same hex form — `::ffff:192.168.1.179`,
315
+ // `0:0:0:0:0:ffff:c0a8:1b3` and `::FFFF:C0A8:1B3` all become
316
+ // `::ffff:c0a8:1b3` — so folding here catches all of them with one rule.
317
+ // Folding beforehand caught only the dotted spelling and left the rest
318
+ // classified as somebody else's machine.
319
+ const m = /^::ffff:([0-9a-f]{1,4}):([0-9a-f]{1,4})$/.exec(canon);
320
+ if (m) {
321
+ const hi = parseInt(m[1], 16);
322
+ const lo = parseInt(m[2], 16);
323
+ return `${hi >> 8}.${hi & 255}.${lo >> 8}.${lo & 255}`;
324
+ }
325
+ return canon;
326
+ }
225
327
  /** True when a hostname is loopback (or absent → assume local). Bracketed IPv6
226
328
  * (`[::1]`, as URL parsing stores it) is normalized first so every consumer
227
329
  * classifies it the same (codex finding: is_local frame vs FS gating split). */
@@ -715,6 +817,31 @@ export function isLocalMode() {
715
817
  export function isForceRemoteFlagSet() {
716
818
  return forceRemote;
717
819
  }
820
+ /**
821
+ * True when the configured ComfyUI target is provably on THIS machine (#742).
822
+ *
823
+ * Distinct from `isLocalMode()`, which reports the classification. This reports
824
+ * the physical question that classification stands in for, and the two disagree
825
+ * for exactly one case: a local instance addressed by one of this host's own
826
+ * non-loopback addresses. That case is `isRemoteMode() === true` and
827
+ * `targetIsOnThisMachine() === true`, and it is the #742 recurrence.
828
+ *
829
+ * `--force-remote` / `COMFYUI_MCP_FORCE_REMOTE` wins outright. A tunnel or
830
+ * port-forward makes the address say "here" about an instance that is
831
+ * elsewhere, and the flag exists for the user to say so; an inference must not
832
+ * overrule it. (This is the mirror of the note in panel-tools about a cloud pod
833
+ * fronted at 127.0.0.1.)
834
+ */
835
+ export function targetIsOnThisMachine() {
836
+ if (forceRemote)
837
+ return false;
838
+ try {
839
+ return isOwnHostAddress(new URL(getComfyUIBaseUrl()).hostname);
840
+ }
841
+ catch {
842
+ return false; // unparseable target — cannot prove it is ours
843
+ }
844
+ }
718
845
  /** Filesystem-safe id for the target instance — scopes per-instance data (e.g. generations DB). */
719
846
  export function getInstanceSlug() {
720
847
  if (isCloudMode())
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -3977,47 +3977,73 @@ async function updateViaRegistryZipReinstall(opts) {
3977
3977
  deps.syncDir?.(join(comfyuiPath, "custom_nodes"));
3978
3978
  // STEP 2 — move the old panel OUT, to a sibling of custom_nodes. Leaving it
3979
3979
  // beside the new one would shadow it in the browser (#641).
3980
- try {
3981
- ops.rename(dir, backupDir);
3982
- }
3983
- catch (err) {
3984
- // The old panel is still in place and serving; get the staged copy OUT of
3985
- // custom_nodes so it cannot shadow it, and leave the install exactly as we
3986
- // found it.
3987
- //
3988
- // MOVE FIRST, DELETE SECOND. A plain recursive delete can fail partway (a
3989
- // locked file, a permission fault) and leave a half-deleted directory still
3990
- // sitting in custom_nodes still served, still shadowing, and now damaged.
3991
- // A rename back out to the staging path is a single atomic metadata
3992
- // operation on the same volume, so it either fully succeeds or changes
3993
- // nothing; only then is the deletion attempted, where a failure is harmless
3994
- // because the directory is no longer under custom_nodes.
3995
- let cleared = true;
3980
+ //
3981
+ // #771 r2 — there may be NO old panel to move. When ComfyUI-Manager unlinks
3982
+ // the pack and then fails to put it back, this fallback is reached with
3983
+ // `dir` already gone, and `rename` fails ENOENT. That failure was then
3984
+ // reported as "could not move the existing panel out of custom_nodes your
3985
+ // panel at <dir> is untouched", which is false twice over: there is no panel
3986
+ // there, and it is precisely the case where a clean install is the only
3987
+ // remedy.
3988
+ //
3989
+ // Skipping the move is not a relaxation of the #641 guard. That guard exists
3990
+ // so an OLD copy cannot shadow the new one, and here there is no old copy.
3991
+ //
3992
+ // The question is "is there a directory ENTRY in the way", not "does a panel
3993
+ // resolve there", and those differ for a DANGLING SYMLINK (review finding):
3994
+ // `existsSync` follows the link and reports false, while the entry is still
3995
+ // very much present — so skipping the move on `existsSync` alone would leave
3996
+ // it sitting there and STEP 3's rename onto it would fail. That is milder
3997
+ // than the bug it replaces (a safe failure, not a shadow) but it would defeat
3998
+ // this very recovery on a real filesystem shape. `isSymlink` lstats, so it
3999
+ // sees the link itself.
4000
+ //
4001
+ // Requires PROVEN absence in BOTH senses — no resolvable target and no link
4002
+ // entry — so a probe that merely failed still takes the careful path below.
4003
+ const hadExistingPanel = deps.existsSync(dir) || deps.isSymlink(dir) === true;
4004
+ if (hadExistingPanel) {
3996
4005
  try {
3997
- ops.rename(incomingDir, staging);
4006
+ ops.rename(dir, backupDir);
4007
+ }
4008
+ catch (err) {
4009
+ // The old panel is still in place and serving; get the staged copy OUT of
4010
+ // custom_nodes so it cannot shadow it, and leave the install exactly as we
4011
+ // found it.
4012
+ //
4013
+ // MOVE FIRST, DELETE SECOND. A plain recursive delete can fail partway (a
4014
+ // locked file, a permission fault) and leave a half-deleted directory still
4015
+ // sitting in custom_nodes — still served, still shadowing, and now damaged.
4016
+ // A rename back out to the staging path is a single atomic metadata
4017
+ // operation on the same volume, so it either fully succeeds or changes
4018
+ // nothing; only then is the deletion attempted, where a failure is harmless
4019
+ // because the directory is no longer under custom_nodes.
4020
+ let cleared = true;
3998
4021
  try {
3999
- ops.removeDir(staging);
4022
+ ops.rename(incomingDir, staging);
4023
+ try {
4024
+ ops.removeDir(staging);
4025
+ }
4026
+ catch {
4027
+ // Outside custom_nodes now — leftover bytes, not a shadow.
4028
+ }
4000
4029
  }
4001
4030
  catch {
4002
- // Outside custom_nodes now — leftover bytes, not a shadow.
4031
+ cleared = false;
4003
4032
  }
4033
+ if (cleared)
4034
+ ops.removeDir(journalPath);
4035
+ throw new PanelInstallError(`Panel update did NOT apply: ${managerReason}, and the reinstall-from-source ` +
4036
+ `fallback could not move the existing panel out of custom_nodes ` +
4037
+ `(${dir} → ${backupDir}: ${err instanceof Error ? err.message : String(err)}). ` +
4038
+ `Your panel at ${dir} is untouched — nothing was moved out from under it.` +
4039
+ servingQualifier(deps, comfyuiPath, `that panel`) +
4040
+ (cleared
4041
+ ? ` The staged replacement was discarded.`
4042
+ : ` The staged replacement at ${incomingDir} could NOT be discarded and may ` +
4043
+ `shadow it — remove that directory, then restart ComfyUI.`) +
4044
+ ` Check permissions / that ComfyUI does not hold the directory open (stop ` +
4045
+ `ComfyUI and retry).`);
4004
4046
  }
4005
- catch {
4006
- cleared = false;
4007
- }
4008
- if (cleared)
4009
- ops.removeDir(journalPath);
4010
- throw new PanelInstallError(`Panel update did NOT apply: ${managerReason}, and the reinstall-from-source ` +
4011
- `fallback could not move the existing panel out of custom_nodes ` +
4012
- `(${dir} → ${backupDir}: ${err instanceof Error ? err.message : String(err)}). ` +
4013
- `Your panel at ${dir} is untouched — nothing was moved out from under it.` +
4014
- servingQualifier(deps, comfyuiPath, `that panel`) +
4015
- (cleared
4016
- ? ` The staged replacement was discarded.`
4017
- : ` The staged replacement at ${incomingDir} could NOT be discarded and may ` +
4018
- `shadow it — remove that directory, then restart ComfyUI.`) +
4019
- ` Check permissions / that ComfyUI does not hold the directory open (stop ` +
4020
- `ComfyUI and retry).`);
4021
4047
  }
4022
4048
  // STEP 3 — put the new panel under its proper name. Until this lands the
4023
4049
  // incoming directory is what ComfyUI serves, so the panel is never absent.
@@ -4518,6 +4544,45 @@ async function runPanelActionCore(action, depsIn, opts, carried) {
4518
4544
  // cannot verify the applied version (fail closed; never trust a HEAD move
4519
4545
  // alone when the pyproject version can't be read).
4520
4546
  if (!post.installed || !post.version) {
4547
+ // #771 r2 — REACHABILITY, not a missing remedy. The verified reinstall
4548
+ // ~200 lines below (`zipSwapOps` → updateViaRegistryZipReinstall) exists
4549
+ // for exactly this situation: "Manager drained its queue without moving
4550
+ // the pack, and this is a registry-zip install with no .git to
4551
+ // fast-forward". But it is gated on `post.dir`, and THIS throw fires
4552
+ // first whenever the post-op reading is unusable.
4553
+ //
4554
+ // So the one state where a fresh clone is the ONLY possible remedy — the
4555
+ // pack is GONE after a drained queue — was the state routed to a bare
4556
+ // throw, whose own text tells the reader to "reinstall the panel from
4557
+ // source": an operation this file already implements and had just
4558
+ // decided not to run. That is the #771 self-blocking loop, one install
4559
+ // shape over from the one it was filed about.
4560
+ //
4561
+ // The asymmetry made it easy to miss: when Manager THROWS, the sibling
4562
+ // path substitutes `detection.dir` for a missing post-op dir and the
4563
+ // rescue fires. When Manager LIES with a drained queue — the more common
4564
+ // failure, and the reporter's case — it did not.
4565
+ //
4566
+ // Same substitution as that sibling path rather than a second rule, and
4567
+ // the same shape gate: a registry zip (`!previousRev`) that WAS installed
4568
+ // before. A checkout keeps the throw — it has a git history, so a
4569
+ // destructive re-clone is not the right answer for it.
4570
+ const rescueDir = post.dir ?? detection.dir;
4571
+ const rescueOps = !previousRev && detection.installed && rescueDir ? resolveSwapOps(deps) : undefined;
4572
+ if (rescueOps && rescueDir) {
4573
+ return updateViaRegistryZipReinstall({
4574
+ deps,
4575
+ ops: rescueOps,
4576
+ dir: rescueDir,
4577
+ comfyuiPath: comfyPath,
4578
+ previousVersion,
4579
+ result,
4580
+ assertSameTarget,
4581
+ managerReason: post.installed
4582
+ ? `ComfyUI-Manager reported the queue drained but the pack's version is unreadable at ${rescueDir}`
4583
+ : `ComfyUI-Manager reported the queue drained and the pack is no longer present at ${rescueDir}`,
4584
+ });
4585
+ }
4521
4586
  throw new PanelInstallError(`Could not verify the panel update applied: the pack is ${post.installed ? "present but its version is unreadable" : "not present"} after ComfyUI-Manager reported the queue drained. NOT reporting success. ` +
4522
4587
  `Re-check the pack and retry, or reinstall the panel from source, then ` +
4523
4588
  `RESTART ComfyUI.`);