comfyui-mcp 0.50.75 → 0.50.77
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.
|
@@ -63,9 +63,14 @@ function cleanUserText(raw) {
|
|
|
63
63
|
return t;
|
|
64
64
|
}
|
|
65
65
|
/**
|
|
66
|
-
* List the agent's saved sessions for [cwd], newest first.
|
|
67
|
-
*
|
|
68
|
-
*
|
|
66
|
+
* List the agent's saved sessions for [cwd], newest first. [limit] caps how many
|
|
67
|
+
* are returned.
|
|
68
|
+
*
|
|
69
|
+
* Best-effort about CONTENT: an unparseable file is skipped rather than failing
|
|
70
|
+
* the list. NOT best-effort about the DIRECTORY (#796): a missing directory is an
|
|
71
|
+
* empty list (a first run looks exactly like that), but one that exists and
|
|
72
|
+
* cannot be read THROWS — reporting "no saved sessions" for a permission or IO
|
|
73
|
+
* error is a wrong answer that reads as data loss.
|
|
69
74
|
*/
|
|
70
75
|
export async function listSessions(cwd, limit = 50) {
|
|
71
76
|
const dir = projectDir(cwd);
|
|
@@ -73,8 +78,25 @@ export async function listSessions(cwd, limit = 50) {
|
|
|
73
78
|
try {
|
|
74
79
|
files = (await readdir(dir)).filter((f) => f.endsWith(".jsonl"));
|
|
75
80
|
}
|
|
76
|
-
catch {
|
|
77
|
-
|
|
81
|
+
catch (err) {
|
|
82
|
+
// #796 — "you have no saved sessions" and "your sessions could not be read"
|
|
83
|
+
// are different answers, and this returned the first for both.
|
|
84
|
+
//
|
|
85
|
+
// ENOENT/ENOTDIR is genuine: the directory has not been created yet, which is
|
|
86
|
+
// what a first run looks like, and an empty list is the truth. A permission
|
|
87
|
+
// error, an IO error or a network path that went away is NOT — and telling
|
|
88
|
+
// someone their history is empty is the one wrong answer that reads as data
|
|
89
|
+
// loss. They go looking for conversations they think they lost.
|
|
90
|
+
//
|
|
91
|
+
// Thrown rather than returned-with-a-flag because the ONE caller already
|
|
92
|
+
// wraps this in a `.catch` that pushes `{ sessions: [], error }` to the
|
|
93
|
+
// panel — plumbing that could never fire for a read failure, because this
|
|
94
|
+
// swallowed every one of them.
|
|
95
|
+
const code = err?.code;
|
|
96
|
+
if (code === "ENOENT" || code === "ENOTDIR")
|
|
97
|
+
return [];
|
|
98
|
+
throw new Error(`Could not read the saved-session directory (${dir}): ${err instanceof Error ? err.message : String(err)}. This is NOT the same as having no saved sessions — none could be listed, ` +
|
|
99
|
+
`so nothing about their existence is known.`);
|
|
78
100
|
}
|
|
79
101
|
const summaries = await Promise.all(files.map(async (file) => {
|
|
80
102
|
const path = join(dir, file);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"history.js","sourceRoot":"","sources":["../../src/orchestrator/history.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,+EAA+E;AAC/E,8DAA8D;AAC9D,EAAE;AACF,sDAAsD;AACtD,wDAAwD;AACxD,iFAAiF;AACjF,iFAAiF;AACjF,6EAA6E;AAC7E,EAAE;AACF,gFAAgF;AAChF,qDAAqD;AAErD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAiB5C;qFACqF;AACrF,SAAS,UAAU,CAAC,GAAW;IAC7B,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAC5C,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;AACzD,CAAC;AAED;yFACyF;AACzF,SAAS,MAAM,CAAC,OAAgB;IAC9B,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC;IAChD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,CAAC;IACvC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAK,CAAuB,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC3E,MAAM,CAAC,GAAI,CAAwB,CAAC,IAAI,CAAC;YACzC,IAAI,OAAO,CAAC,KAAK,QAAQ;gBAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AAC/B,CAAC;AAED,kFAAkF;AAClF,SAAS,cAAc,CAAC,OAAgB;IACtC,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;IAClE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1C,sDAAsD;IACtD,OAAO,OAAO,CAAC,IAAI,CACjB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAK,CAAuB,CAAC,IAAI,KAAK,MAAM,CAC9E,CAAC;AACJ,CAAC;AAED;;;qEAGqE;AACrE,SAAS,aAAa,CAAC,GAAW;IAChC,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IACnB,IAAI,CAAC,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACtC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1C,CAAC;IACD,uEAAuE;IACvE,+BAA+B;IAC/B,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,sBAAsB,CAAC;QAAE,OAAO,EAAE,CAAC;IACzE,OAAO,CAAC,CAAC;AACX,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"history.js","sourceRoot":"","sources":["../../src/orchestrator/history.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,28 @@
|
|
|
6
6
|
// clear "install <pkg>" error instead of crashing on import.
|
|
7
7
|
import { ModelError } from "./errors.js";
|
|
8
8
|
const cache = new Map();
|
|
9
|
+
export function classifyImportFailure(spec, err) {
|
|
10
|
+
const e = err;
|
|
11
|
+
const message = typeof e?.message === "string" ? e.message : String(err);
|
|
12
|
+
const notFound = e?.code === "ERR_MODULE_NOT_FOUND" || e?.code === "MODULE_NOT_FOUND";
|
|
13
|
+
if (!notFound)
|
|
14
|
+
return { kind: "unloadable", detail: message };
|
|
15
|
+
// "Cannot find package 'x' imported from …" / "Cannot find module 'x'".
|
|
16
|
+
const named = /Cannot find (?:package|module) ['"]([^'"]+)['"]/.exec(message)?.[1];
|
|
17
|
+
if (named === undefined) {
|
|
18
|
+
// A not-found we cannot attribute. Treat it as the requested package rather
|
|
19
|
+
// than inventing a transitive one — this is the pre-existing behaviour and
|
|
20
|
+
// the common case.
|
|
21
|
+
return { kind: "missing" };
|
|
22
|
+
}
|
|
23
|
+
// SUBPATHS RUN BOTH WAYS, and only one direction is obvious. Requesting
|
|
24
|
+
// "pkg/sub" makes Node report `Cannot find package 'pkg'` — it names the bare
|
|
25
|
+
// PACKAGE, not what was asked for — so a `named === spec` test fails and the
|
|
26
|
+
// package gets blamed as its own dependency. Found by a surviving mutant and
|
|
27
|
+
// confirmed against real Node before fixing.
|
|
28
|
+
const isSelf = named === spec || named.startsWith(`${spec}/`) || spec.startsWith(`${named}/`);
|
|
29
|
+
return isSelf ? { kind: "missing" } : { kind: "missing-transitive", detail: named };
|
|
30
|
+
}
|
|
9
31
|
export async function requireOptionalDep(spec, options) {
|
|
10
32
|
const cached = cache.get(spec);
|
|
11
33
|
if (cached !== undefined)
|
|
@@ -18,9 +40,21 @@ export async function requireOptionalDep(spec, options) {
|
|
|
18
40
|
catch (err) {
|
|
19
41
|
const feature = options?.feature ?? spec;
|
|
20
42
|
const installHint = options?.installHint ?? `npm install ${spec}`;
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
43
|
+
const why = classifyImportFailure(spec, err);
|
|
44
|
+
throw new ModelError(why.kind === "missing"
|
|
45
|
+
? `Optional dependency for ${feature} is not installed. To enable it, run: ${installHint}`
|
|
46
|
+
: why.kind === "missing-transitive"
|
|
47
|
+
? `Optional dependency for ${feature} IS installed, but it could not load because ` +
|
|
48
|
+
`${why.detail} is missing — one of its own dependencies, not this package. ` +
|
|
49
|
+
`Running "${installHint}" will report nothing to do. Reinstall it so its ` +
|
|
50
|
+
`dependency tree is resolved (npm install --force ${spec}), or install ${why.detail} directly.`
|
|
51
|
+
: `Optional dependency for ${feature} IS installed, but it failed to LOAD: ${why.detail}. ` +
|
|
52
|
+
`Running "${installHint}" will report nothing to do — the package is present and ` +
|
|
53
|
+
`broken, which is usually a native binary built for a different Node/ABI or platform. ` +
|
|
54
|
+
`Reinstall it (npm install --force ${spec}), or check that binary's own requirements.`, {
|
|
55
|
+
// The code still distinguishes the two for programmatic callers: only a
|
|
56
|
+
// genuinely absent package is MISSING.
|
|
57
|
+
code: why.kind === "missing" ? "OPTIONAL_DEP_MISSING" : "OPTIONAL_DEP_UNLOADABLE",
|
|
24
58
|
package: spec,
|
|
25
59
|
cause: err instanceof Error ? err.message : String(err),
|
|
26
60
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"optional-dep.js","sourceRoot":"","sources":["../../src/utils/optional-dep.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,EAAE;AACF,6EAA6E;AAC7E,8EAA8E;AAC9E,6EAA6E;AAC7E,6DAA6D;AAE7D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"optional-dep.js","sourceRoot":"","sources":["../../src/utils/optional-dep.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "comfyui-mcp",
|
|
3
|
-
"version": "0.50.
|
|
3
|
+
"version": "0.50.77",
|
|
4
4
|
"mcpName": "io.github.artokun/comfyui-mcp",
|
|
5
5
|
"description": "Local-first, agent-native control plane for ComfyUI — MCP server + autonomous sidebar agent that drives your live graph in natural language on ANY LLM: Claude/ChatGPT/Gemini on your subscription (no API key), free local models via Ollama (fully offline), or any hosted model via an OpenAI-compatible endpoint (DeepSeek, GLM, MiMo, OpenRouter). Generate images, video & audio, author and run workflows, manage models and custom nodes; a compact tool-router mode keeps even 4B models effective, and a built-in LLM Arena benchmarks them on real ComfyUI tasks. Also a Claude Code plugin with skills, slash commands, and installer packs. Local, LAN, VPS, or Comfy Cloud.",
|
|
6
6
|
"homepage": "https://comfyui-mcp.artokun.io/docs",
|