comfyui-mcp 0.48.21 → 0.48.23

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.
Files changed (252) hide show
  1. package/README.md +2 -2
  2. package/dist/comfyui/client.js +46 -6
  3. package/dist/comfyui/client.js.map +1 -1
  4. package/dist/config.js +15 -0
  5. package/dist/config.js.map +1 -1
  6. package/dist/orchestrator/error-text.js +29 -1
  7. package/dist/orchestrator/error-text.js.map +1 -1
  8. package/dist/orchestrator/error-text.test.js +28 -0
  9. package/dist/orchestrator/error-text.test.js.map +1 -1
  10. package/dist/orchestrator/index.js +331 -56
  11. package/dist/orchestrator/index.js.map +1 -1
  12. package/dist/orchestrator/panel-agent.js +122 -31
  13. package/dist/orchestrator/panel-agent.js.map +1 -1
  14. package/dist/orchestrator/panel-tools.js +1256 -198
  15. package/dist/orchestrator/panel-tools.js.map +1 -1
  16. package/dist/orchestrator/ready-banner.js +70 -0
  17. package/dist/orchestrator/ready-banner.js.map +1 -0
  18. package/dist/orchestrator/session-store.js +163 -28
  19. package/dist/orchestrator/session-store.js.map +1 -1
  20. package/dist/services/api-nodes.js +5 -7
  21. package/dist/services/api-nodes.js.map +1 -1
  22. package/dist/services/download-cache.js +126 -18
  23. package/dist/services/download-cache.js.map +1 -1
  24. package/dist/services/download-jobs.js +463 -14
  25. package/dist/services/download-jobs.js.map +1 -1
  26. package/dist/services/download-progress.js +252 -3
  27. package/dist/services/download-progress.js.map +1 -1
  28. package/dist/services/env-capabilities.js +80 -9
  29. package/dist/services/env-capabilities.js.map +1 -1
  30. package/dist/services/generate-audio.js +16 -0
  31. package/dist/services/generate-audio.js.map +1 -1
  32. package/dist/services/local-models-fallback.js +7 -3
  33. package/dist/services/local-models-fallback.js.map +1 -1
  34. package/dist/services/manifest.js +180 -65
  35. package/dist/services/manifest.js.map +1 -1
  36. package/dist/services/model-resolver.js +267 -11
  37. package/dist/services/model-resolver.js.map +1 -1
  38. package/dist/services/node-management.js +179 -45
  39. package/dist/services/node-management.js.map +1 -1
  40. package/dist/services/output-dir.js +33 -3
  41. package/dist/services/output-dir.js.map +1 -1
  42. package/dist/services/panel-secrets.js +19 -7
  43. package/dist/services/panel-secrets.js.map +1 -1
  44. package/dist/services/process-control.js +107 -8
  45. package/dist/services/process-control.js.map +1 -1
  46. package/dist/services/queue-monitor.js +45 -2
  47. package/dist/services/queue-monitor.js.map +1 -1
  48. package/dist/services/queue-monitor.stall.test.js +78 -0
  49. package/dist/services/queue-monitor.stall.test.js.map +1 -0
  50. package/dist/services/secure-bridge.js +84 -0
  51. package/dist/services/secure-bridge.js.map +1 -1
  52. package/dist/services/storage/azure-blob.js +8 -3
  53. package/dist/services/storage/azure-blob.js.map +1 -1
  54. package/dist/services/storage/index.js +3 -3
  55. package/dist/services/storage/index.js.map +1 -1
  56. package/dist/services/storage/s3.js +9 -3
  57. package/dist/services/storage/s3.js.map +1 -1
  58. package/dist/services/ui-bridge.js +341 -24
  59. package/dist/services/ui-bridge.js.map +1 -1
  60. package/dist/services/workflow-converter.js +767 -72
  61. package/dist/services/workflow-converter.js.map +1 -1
  62. package/dist/services/workflow-deps.js +20 -1
  63. package/dist/services/workflow-deps.js.map +1 -1
  64. package/dist/services/workflow-lock.js +127 -27
  65. package/dist/services/workflow-lock.js.map +1 -1
  66. package/dist/services/workflow-target-store.js +7 -3
  67. package/dist/services/workflow-target-store.js.map +1 -1
  68. package/dist/services/workspace-env.js +48 -0
  69. package/dist/services/workspace-env.js.map +1 -1
  70. package/dist/tools/diagnostics.js +10 -1
  71. package/dist/tools/diagnostics.js.map +1 -1
  72. package/dist/tools/generate-audio.js +44 -0
  73. package/dist/tools/generate-audio.js.map +1 -1
  74. package/dist/tools/model-explorer.js +85 -5
  75. package/dist/tools/model-explorer.js.map +1 -1
  76. package/dist/tools/model-extras.js +24 -4
  77. package/dist/tools/model-extras.js.map +1 -1
  78. package/dist/tools/model-management.js +124 -14
  79. package/dist/tools/model-management.js.map +1 -1
  80. package/dist/tools/report-issue.js +220 -66
  81. package/dist/tools/report-issue.js.map +1 -1
  82. package/dist/tools/report-issue.test.js +223 -83
  83. package/dist/tools/report-issue.test.js.map +1 -1
  84. package/dist/tools/skills-access.js +7 -2
  85. package/dist/tools/skills-access.js.map +1 -1
  86. package/dist/tools/template-schema.js +5 -5
  87. package/dist/tools/template-schema.js.map +1 -1
  88. package/dist/tools/workflow-compose.js +18 -3
  89. package/dist/tools/workflow-compose.js.map +1 -1
  90. package/dist/tools/workflow-visualize.js +1 -1
  91. package/dist/tools/workflow-visualize.js.map +1 -1
  92. package/package.json +1 -1
  93. package/packs/anima/install-runpod.sh +0 -1
  94. package/packs/anima/install-windows.bat +0 -1
  95. package/packs/anima/manifest.yaml +0 -1
  96. package/packs/anima-img2img/install-runpod.sh +0 -1
  97. package/packs/anima-img2img/install-windows.bat +0 -1
  98. package/packs/anima-img2img/manifest.yaml +0 -1
  99. package/packs/anima-inpaint/install-runpod.sh +0 -1
  100. package/packs/anima-inpaint/install-windows.bat +0 -1
  101. package/packs/anima-inpaint/manifest.yaml +0 -1
  102. package/packs/anima-txt2img/install-runpod.sh +0 -1
  103. package/packs/anima-txt2img/install-windows.bat +0 -1
  104. package/packs/anima-txt2img/manifest.yaml +0 -1
  105. package/packs/artokun-flow/install-runpod.sh +0 -1
  106. package/packs/artokun-flow/install-windows.bat +0 -1
  107. package/packs/artokun-flow/manifest.yaml +0 -1
  108. package/packs/ernie/install-runpod.sh +0 -1
  109. package/packs/ernie/install-windows.bat +0 -1
  110. package/packs/ernie/manifest.yaml +0 -1
  111. package/packs/ernie-combo/install-runpod.sh +0 -1
  112. package/packs/ernie-combo/install-windows.bat +0 -1
  113. package/packs/ernie-combo/manifest.yaml +0 -1
  114. package/packs/ernie-img2img/install-runpod.sh +0 -1
  115. package/packs/ernie-img2img/install-windows.bat +0 -1
  116. package/packs/ernie-img2img/manifest.yaml +0 -1
  117. package/packs/ernie-txt2img/install-runpod.sh +0 -1
  118. package/packs/ernie-txt2img/install-windows.bat +0 -1
  119. package/packs/ernie-txt2img/manifest.yaml +0 -1
  120. package/packs/ideogram/install-runpod.sh +0 -1
  121. package/packs/ideogram/install-windows.bat +0 -1
  122. package/packs/ideogram/manifest.yaml +0 -1
  123. package/packs/ideogram-img2img/install-runpod.sh +0 -1
  124. package/packs/ideogram-img2img/install-windows.bat +0 -1
  125. package/packs/ideogram-img2img/manifest.yaml +0 -1
  126. package/packs/ideogram-txt2img/install-runpod.sh +0 -1
  127. package/packs/ideogram-txt2img/install-windows.bat +0 -1
  128. package/packs/ideogram-txt2img/manifest.yaml +0 -1
  129. package/packs/ltx-2.3/install-runpod.sh +0 -1
  130. package/packs/ltx-2.3/install-windows.bat +0 -1
  131. package/packs/ltx-2.3/manifest.yaml +0 -1
  132. package/packs/ltx-2.3-extender/install-runpod.sh +0 -1
  133. package/packs/ltx-2.3-extender/install-windows.bat +0 -1
  134. package/packs/ltx-2.3-extender/manifest.yaml +0 -1
  135. package/packs/ltx-2.3-extender-no-audio/install-runpod.sh +0 -1
  136. package/packs/ltx-2.3-extender-no-audio/install-windows.bat +0 -1
  137. package/packs/ltx-2.3-extender-no-audio/manifest.yaml +0 -1
  138. package/packs/ltx-2.3-flf/install-runpod.sh +0 -1
  139. package/packs/ltx-2.3-flf/install-windows.bat +0 -1
  140. package/packs/ltx-2.3-flf/manifest.yaml +0 -1
  141. package/packs/ltx-2.3-img2vid/install-runpod.sh +0 -1
  142. package/packs/ltx-2.3-img2vid/install-windows.bat +0 -1
  143. package/packs/ltx-2.3-img2vid/manifest.yaml +3 -4
  144. package/packs/ltx-2.3-txt2vid/install-runpod.sh +0 -1
  145. package/packs/ltx-2.3-txt2vid/install-windows.bat +0 -1
  146. package/packs/ltx-2.3-txt2vid/manifest.yaml +3 -4
  147. package/packs/ltx-2.3-xy-plot/install-runpod.sh +0 -1
  148. package/packs/ltx-2.3-xy-plot/install-windows.bat +0 -1
  149. package/packs/ltx-2.3-xy-plot/manifest.yaml +0 -1
  150. package/packs/ltx23-distill-3stage/install-runpod.sh +0 -1
  151. package/packs/ltx23-distill-3stage/install-windows.bat +0 -1
  152. package/packs/ltx23-distill-3stage/manifest.yaml +0 -1
  153. package/packs/qwen-image/install-runpod.sh +0 -1
  154. package/packs/qwen-image/install-windows.bat +0 -1
  155. package/packs/qwen-image/manifest.yaml +0 -1
  156. package/packs/qwen-image-edit/install-runpod.sh +0 -1
  157. package/packs/qwen-image-edit/install-windows.bat +0 -1
  158. package/packs/qwen-image-edit/manifest.yaml +0 -1
  159. package/packs/qwen-image-edit-edit/install-runpod.sh +0 -1
  160. package/packs/qwen-image-edit-edit/install-windows.bat +0 -1
  161. package/packs/qwen-image-edit-edit/manifest.yaml +0 -1
  162. package/packs/wan-animate/install-runpod.sh +0 -1
  163. package/packs/wan-animate/install-windows.bat +0 -1
  164. package/packs/wan-animate/manifest.yaml +0 -1
  165. package/packs/wan-animate-character/install-runpod.sh +0 -1
  166. package/packs/wan-animate-character/install-windows.bat +0 -1
  167. package/packs/wan-animate-character/manifest.yaml +0 -1
  168. package/packs/wan-animate-ofm/install-runpod.sh +0 -1
  169. package/packs/wan-animate-ofm/install-windows.bat +0 -1
  170. package/packs/wan-animate-ofm/manifest.yaml +0 -1
  171. package/packs/wan-longer-videos/install-runpod.sh +0 -1
  172. package/packs/wan-longer-videos/install-windows.bat +0 -1
  173. package/packs/wan-longer-videos/manifest.yaml +0 -1
  174. package/packs/wan-longer-videos-i2v/install-runpod.sh +0 -1
  175. package/packs/wan-longer-videos-i2v/install-windows.bat +0 -1
  176. package/packs/wan-longer-videos-i2v/manifest.yaml +0 -1
  177. package/packs/wan-longer-videos-i2v-96gb/install-runpod.sh +0 -1
  178. package/packs/wan-longer-videos-i2v-96gb/install-windows.bat +0 -1
  179. package/packs/wan-longer-videos-i2v-96gb/manifest.yaml +0 -1
  180. package/packs/wan-longer-videos-t2v/install-runpod.sh +0 -1
  181. package/packs/wan-longer-videos-t2v/install-windows.bat +0 -1
  182. package/packs/wan-longer-videos-t2v/manifest.yaml +0 -1
  183. package/packs/wan-longer-videos-t2v-96gb/install-runpod.sh +0 -1
  184. package/packs/wan-longer-videos-t2v-96gb/install-windows.bat +0 -1
  185. package/packs/wan-longer-videos-t2v-96gb/manifest.yaml +0 -1
  186. package/packs/wan-longer-videos-v2v/install-runpod.sh +0 -1
  187. package/packs/wan-longer-videos-v2v/install-windows.bat +0 -1
  188. package/packs/wan-longer-videos-v2v/manifest.yaml +0 -1
  189. package/packs/wan-longer-videos-v2v-96gb/install-runpod.sh +0 -1
  190. package/packs/wan-longer-videos-v2v-96gb/install-windows.bat +0 -1
  191. package/packs/wan-longer-videos-v2v-96gb/manifest.yaml +0 -1
  192. package/packs/wan-multitalk/install-runpod.sh +0 -1
  193. package/packs/wan-multitalk/install-windows.bat +0 -1
  194. package/packs/wan-multitalk/manifest.yaml +0 -1
  195. package/packs/wan-pusa-extend/install-runpod.sh +0 -1
  196. package/packs/wan-pusa-extend/install-windows.bat +0 -1
  197. package/packs/wan-pusa-extend/manifest.yaml +0 -1
  198. package/packs/wan-transparent/install-runpod.sh +0 -1
  199. package/packs/wan-transparent/install-windows.bat +0 -1
  200. package/packs/wan-transparent/manifest.yaml +0 -1
  201. package/packs/wan-transparent-img2vid/install-runpod.sh +0 -1
  202. package/packs/wan-transparent-img2vid/install-windows.bat +0 -1
  203. package/packs/wan-transparent-img2vid/manifest.yaml +0 -1
  204. package/packs/wan-transparent-img2vid-96gb/install-runpod.sh +0 -1
  205. package/packs/wan-transparent-img2vid-96gb/install-windows.bat +0 -1
  206. package/packs/wan-transparent-img2vid-96gb/manifest.yaml +0 -1
  207. package/packs/z-image-base/install-runpod.sh +0 -1
  208. package/packs/z-image-base/install-windows.bat +0 -1
  209. package/packs/z-image-base/manifest.yaml +0 -1
  210. package/packs/z-image-base-combo/install-runpod.sh +0 -1
  211. package/packs/z-image-base-combo/install-windows.bat +0 -1
  212. package/packs/z-image-base-combo/manifest.yaml +0 -1
  213. package/packs/z-image-base-controlnet/install-runpod.sh +0 -1
  214. package/packs/z-image-base-controlnet/install-windows.bat +0 -1
  215. package/packs/z-image-base-controlnet/manifest.yaml +0 -1
  216. package/packs/z-image-base-img2img/install-runpod.sh +0 -1
  217. package/packs/z-image-base-img2img/install-windows.bat +0 -1
  218. package/packs/z-image-base-img2img/manifest.yaml +0 -1
  219. package/packs/z-image-base-inpaint/install-runpod.sh +0 -1
  220. package/packs/z-image-base-inpaint/install-windows.bat +0 -1
  221. package/packs/z-image-base-inpaint/manifest.yaml +0 -1
  222. package/packs/z-image-base-txt2img/install-runpod.sh +0 -1
  223. package/packs/z-image-base-txt2img/install-windows.bat +0 -1
  224. package/packs/z-image-base-txt2img/manifest.yaml +0 -1
  225. package/packs/z-image-turbo/install-runpod.sh +0 -1
  226. package/packs/z-image-turbo/install-windows.bat +0 -1
  227. package/packs/z-image-turbo/manifest.yaml +0 -1
  228. package/packs/z-image-turbo-combo/install-runpod.sh +0 -1
  229. package/packs/z-image-turbo-combo/install-windows.bat +0 -1
  230. package/packs/z-image-turbo-combo/manifest.yaml +0 -1
  231. package/packs/z-image-turbo-controlnet/install-runpod.sh +0 -1
  232. package/packs/z-image-turbo-controlnet/install-windows.bat +0 -1
  233. package/packs/z-image-turbo-controlnet/manifest.yaml +0 -1
  234. package/packs/z-image-turbo-detail-daemon/install-runpod.sh +0 -1
  235. package/packs/z-image-turbo-detail-daemon/install-windows.bat +0 -1
  236. package/packs/z-image-turbo-detail-daemon/manifest.yaml +0 -1
  237. package/packs/z-image-turbo-img2img/install-runpod.sh +0 -1
  238. package/packs/z-image-turbo-img2img/install-windows.bat +0 -1
  239. package/packs/z-image-turbo-img2img/manifest.yaml +0 -1
  240. package/packs/z-image-turbo-inpainting/install-runpod.sh +0 -1
  241. package/packs/z-image-turbo-inpainting/install-windows.bat +0 -1
  242. package/packs/z-image-turbo-inpainting/manifest.yaml +0 -1
  243. package/packs/z-image-turbo-txt2img/install-runpod.sh +0 -1
  244. package/packs/z-image-turbo-txt2img/install-windows.bat +0 -1
  245. package/packs/z-image-turbo-txt2img/manifest.yaml +0 -1
  246. package/packs/z-image-xy-plot/install-runpod.sh +0 -1
  247. package/packs/z-image-xy-plot/install-windows.bat +0 -1
  248. package/packs/z-image-xy-plot/manifest.yaml +0 -1
  249. package/plugin/skills/flux-txt2img/SKILL.md +9 -4
  250. package/plugin/skills/wan-scail-replacement/SKILL.md +95 -0
  251. package/scripts/sync-agents.mjs +18 -8
  252. package/scripts/test-packs.sh +8 -3
@@ -1 +1 @@
1
- {"version":3,"file":"report-issue.js","sourceRoot":"","sources":["../../src/tools/report-issue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"report-issue.js","sourceRoot":"","sources":["../../src/tools/report-issue.ts"],"names":[],"mappings":"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"}
@@ -39,7 +39,6 @@ describe("normalizeRepo / buildIssueUrl / isOurRepo", () => {
39
39
  it("recognizes our repos only, case-insensitively", () => {
40
40
  expect(isOurRepo("artokun/comfyui-mcp")).toBe(true);
41
41
  expect(isOurRepo("artokun/comfyui-mcp-panel")).toBe(true);
42
- // git config / this repo use a capital A — must still be ours.
43
42
  expect(isOurRepo("Artokun/comfyui-mcp")).toBe(true);
44
43
  expect(isOurRepo("ARTOKUN/ComfyUI-MCP-Panel")).toBe(true);
45
44
  expect(isOurRepo("artokun/other")).toBe(false);
@@ -52,80 +51,171 @@ describe("normalizeRepo / buildIssueUrl / isOurRepo", () => {
52
51
  expect(u.searchParams.get("labels")).toBe("x,y");
53
52
  });
54
53
  });
55
- describe("submitAndPoll", () => {
56
- it("returns the issue link inline when the fast path already filed", async () => {
57
- const fetchImpl = (async () => res({ ok: true, job_id: "j1", status: "done", url: "https://gh/10", number: 10 }));
58
- const r = await submitAndPoll({ workerUrl: "https://w", clientKey: "k", repoName: "comfyui-mcp", title: "t", body: "b", fetchImpl, sleep: noSleep });
59
- expect(r).toMatchObject({ status: "done", url: "https://gh/10", number: 10 });
54
+ describe("submitAndPoll — async triage contract", () => {
55
+ it("sends X-Triage-Async + reporter_versions on submit", async () => {
56
+ let sentHeaders = {};
57
+ let sentBody = {};
58
+ const fetchImpl = (async (_url, init) => {
59
+ sentHeaders = init.headers;
60
+ sentBody = JSON.parse(init.body);
61
+ return res({ state: "CLOSED", payload: { issue: { number: 1, url: "https://gh/1" }, agent_message: "done" }, url: "https://gh/1", number: 1 });
62
+ });
63
+ await submitAndPoll({
64
+ workerUrl: "https://w",
65
+ clientKey: "k",
66
+ repoName: "comfyui-mcp",
67
+ title: "t",
68
+ body: "b",
69
+ reporterVersions: { mcp: "0.48.10", panel: "0.11.0" },
70
+ fetchImpl,
71
+ sleep: noSleep,
72
+ });
73
+ expect(sentHeaders["X-Triage-Async"]).toBe("1");
74
+ expect(sentHeaders["X-Client-Key"]).toBe("k");
75
+ expect(sentBody.reporter_versions).toEqual({ mcp: "0.48.10", panel: "0.11.0" });
76
+ });
77
+ it("CLOSED payload → kind:closed with the flattened rich result", async () => {
78
+ const fetchImpl = (async () => res({
79
+ state: "CLOSED",
80
+ payload: {
81
+ classification: "duplicate_closed",
82
+ action_taken: "advised_upgrade",
83
+ issue: { number: 505, url: "https://gh/505", state: "closed" },
84
+ fixed_in_version: "0.48.19",
85
+ fix_pr_url: "https://gh/pull/507",
86
+ recommend_upgrade: true,
87
+ agent_message: "upgrade to 0.48.21",
88
+ possible_duplicate: false,
89
+ },
90
+ }));
91
+ const out = await submitAndPoll({ workerUrl: "https://w", clientKey: "k", repoName: "comfyui-mcp", title: "t", body: "b", fetchImpl, sleep: noSleep });
92
+ expect(out.kind).toBe("closed");
93
+ if (out.kind !== "closed")
94
+ throw new Error("expected closed");
95
+ expect(out.result).toMatchObject({
96
+ url: "https://gh/505",
97
+ number: 505,
98
+ classification: "duplicate_closed",
99
+ action_taken: "advised_upgrade",
100
+ fixed_in_version: "0.48.19",
101
+ fix_pr_url: "https://gh/pull/507",
102
+ recommend_upgrade: true,
103
+ agent_message: "upgrade to 0.48.21",
104
+ });
60
105
  });
61
- it("OLD-SYNC fixture: { ok, url, number } with NO job_id/status returns immediately (no poll)", async () => {
106
+ it("returns the version-ack from submit on every outcome", async () => {
107
+ const fetchImpl = (async () => res({
108
+ job_id: "ja",
109
+ state: "PENDING",
110
+ status: "PENDING",
111
+ versions: { mcp: { reporter: "0.48.10", latest: "0.48.21", up_to_date: false } },
112
+ up_to_date: false,
113
+ upgrade_hint: "comfyui-mcp is behind (0.48.10 → 0.48.21)",
114
+ }));
115
+ const out = await submitAndPoll({ workerUrl: "https://w", clientKey: "k", repoName: "comfyui-mcp", title: "t", body: "b", fetchImpl, sleep: noSleep, maxPolls: 1, pollDelayMs: 0 });
116
+ expect(out.kind).toBe("pending"); // still PENDING at budget
117
+ expect(out.ack.up_to_date).toBe(false);
118
+ expect(out.ack.upgrade_hint).toContain("behind");
119
+ });
120
+ it("legacy SYNC fixture: { ok, url, number } (no lifecycle field) → closed inline, no poll", async () => {
62
121
  let calls = 0;
63
122
  const fetchImpl = (async () => {
64
123
  calls++;
65
124
  return res({ ok: true, url: "https://gh/3", number: 3 });
66
125
  });
67
- const r = await submitAndPoll({ workerUrl: "https://w", clientKey: "k", repoName: "comfyui-mcp", title: "t", body: "b", fetchImpl, sleep: noSleep });
68
- expect(r).toMatchObject({ status: "done", url: "https://gh/3", number: 3 });
126
+ const out = await submitAndPoll({ workerUrl: "https://w", clientKey: "k", repoName: "comfyui-mcp", title: "t", body: "b", fetchImpl, sleep: noSleep });
127
+ expect(out.kind).toBe("closed");
128
+ if (out.kind !== "closed")
129
+ throw new Error("expected closed");
130
+ expect(out.result).toMatchObject({ url: "https://gh/3", number: 3 });
69
131
  expect(calls).toBe(1); // submit only — never polled
70
132
  });
71
- it("polls /status until done when the submit is queued", async () => {
133
+ it("polls /status until CLOSED when the submit is PENDING", async () => {
72
134
  const calls = [];
73
135
  let polls = 0;
74
136
  const fetchImpl = (async (url) => {
75
137
  calls.push(url);
76
138
  if (url === "https://w")
77
- return res({ ok: true, job_id: "j2", status: "queued" });
78
- // /status/j2 — queued twice, then done
139
+ return res({ job_id: "j2", state: "PENDING", status: "PENDING" });
79
140
  polls++;
80
141
  if (polls < 3)
81
- return res({ status: "queued" });
82
- return res({ status: "done", url: "https://gh/22", number: 22, deduped: true });
142
+ return res({ state: "INVESTIGATING", status: "queued" });
143
+ return res({ state: "CLOSED", payload: { issue: { number: 22, url: "https://gh/22" }, deduped: true, agent_message: "filed" }, url: "https://gh/22", number: 22 });
83
144
  });
84
- const r = await submitAndPoll({ workerUrl: "https://w", clientKey: "k", repoName: "comfyui-mcp", title: "t", body: "b", fetchImpl, sleep: noSleep, pollDelayMs: 0 });
85
- expect(r).toMatchObject({ status: "done", url: "https://gh/22", number: 22, deduped: true, job_id: "j2" });
145
+ const out = await submitAndPoll({ workerUrl: "https://w", clientKey: "k", repoName: "comfyui-mcp", title: "t", body: "b", fetchImpl, sleep: noSleep, pollDelayMs: 0 });
146
+ expect(out.kind).toBe("closed");
147
+ if (out.kind !== "closed")
148
+ throw new Error("expected closed");
149
+ expect(out.result).toMatchObject({ url: "https://gh/22", number: 22, deduped: true });
86
150
  expect(calls.filter((c) => c.includes("/status/j2")).length).toBe(3);
87
151
  });
88
152
  it("throws on a non-OK submit so the caller can fall back", async () => {
89
153
  const fetchImpl = (async () => res({ error: "unauthorized" }, 401));
90
154
  await expect(submitAndPoll({ workerUrl: "https://w", clientKey: "k", repoName: "comfyui-mcp", title: "t", body: "b", fetchImpl, sleep: noSleep })).rejects.toThrow(/401/);
91
155
  });
92
- it("THROWS on a server-side error status from polling ( caller falls back)", async () => {
156
+ it("a 2xx submit whose body STALLS pending (worker took it) — does NOT throw/prefill", async () => {
157
+ const fetchImpl = (async (_url, init) => ({
158
+ ok: true, // 2xx = accepted
159
+ json: () => new Promise((_resolve, reject) => {
160
+ init.signal?.addEventListener("abort", () => reject(new Error("aborted")));
161
+ }),
162
+ }));
163
+ const out = await submitAndPoll({ workerUrl: "https://w", clientKey: "k", repoName: "comfyui-mcp", title: "t", body: "b", fetchImpl, sleep: noSleep, timeoutMs: 10 });
164
+ expect(out.kind).toBe("pending"); // NOT a throw → the tool won't prefill
165
+ });
166
+ it("a 2xx submit with no job_id and no inline result → pending (accepted, cannot poll, no prefill)", async () => {
167
+ const fetchImpl = (async () => res({ ok: true, versions: {}, up_to_date: true }));
168
+ const out = await submitAndPoll({ workerUrl: "https://w", clientKey: "k", repoName: "comfyui-mcp", title: "t", body: "b", fetchImpl, sleep: noSleep });
169
+ expect(out.kind).toBe("pending");
170
+ });
171
+ it("CLOSED unfiled_needs_manual (agent_message but NO issue) → unfiled (not a false success)", async () => {
172
+ const fetchImpl = (async () => res({ state: "CLOSED", payload: { action_taken: "unfiled_needs_manual", issue: null, agent_message: "filing failed" } }));
173
+ const out = await submitAndPoll({ workerUrl: "https://w", clientKey: "k", repoName: "comfyui-mcp", title: "t", body: "b", fetchImpl, sleep: noSleep });
174
+ expect(out.kind).toBe("unfiled"); // agent_message alone must NOT count as filed
175
+ });
176
+ it("a terminal job ERROR without an issue → kind:unfiled (worker gave up, caller prefills)", async () => {
93
177
  const fetchImpl = (async (url) => {
94
178
  if (url === "https://w")
95
- return res({ ok: true, job_id: "j3", status: "queued" });
179
+ return res({ job_id: "j3", state: "PENDING", status: "PENDING" });
96
180
  return res({ status: "error", error: "GitHub API error" });
97
181
  });
98
- await expect(submitAndPoll({ workerUrl: "https://w", clientKey: "k", repoName: "comfyui-mcp", title: "t", body: "b", fetchImpl, sleep: noSleep, pollDelayMs: 0 })).rejects.toThrow(/errored/);
182
+ const out = await submitAndPoll({ workerUrl: "https://w", clientKey: "k", repoName: "comfyui-mcp", title: "t", body: "b", fetchImpl, sleep: noSleep, pollDelayMs: 0 });
183
+ expect(out.kind).toBe("unfiled");
99
184
  });
100
- it("THROWS when polling never resolves (exhausts retries) instead of claiming queued success", async () => {
185
+ it("still running at the budget → kind:pending (NOT prefill worker finishes async)", async () => {
101
186
  const fetchImpl = (async (url) => {
102
187
  if (url === "https://w")
103
- return res({ ok: true, job_id: "j4", status: "queued" });
104
- return res({ status: "queued" });
188
+ return res({ job_id: "j4", state: "PENDING", status: "PENDING" });
189
+ return res({ state: "INVESTIGATING", status: "queued" });
105
190
  });
106
- await expect(submitAndPoll({ workerUrl: "https://w", clientKey: "k", repoName: "comfyui-mcp", title: "t", body: "b", fetchImpl, sleep: noSleep, pollDelayMs: 0, maxPolls: 3 })).rejects.toThrow(/did not complete/);
191
+ const out = await submitAndPoll({ workerUrl: "https://w", clientKey: "k", repoName: "comfyui-mcp", title: "t", body: "b", fetchImpl, sleep: noSleep, pollDelayMs: 0, maxPolls: 3 });
192
+ expect(out.kind).toBe("pending");
193
+ if (out.kind !== "pending")
194
+ throw new Error("expected pending");
195
+ expect(out.job_id).toBe("j4");
107
196
  });
108
- it("THROWS on a poll transport failure (HTTP error) caller falls back", async () => {
197
+ it("a transient POLL transport error does NOT end the job — keeps polling, then pending", async () => {
198
+ let polls = 0;
109
199
  const fetchImpl = (async (url) => {
110
200
  if (url === "https://w")
111
- return res({ ok: true, job_id: "j5", status: "queued" });
112
- return res({ error: "boom" }, 503);
201
+ return res({ job_id: "j5", state: "PENDING", status: "PENDING" });
202
+ polls++;
203
+ return res({ error: "boom" }, 503); // every poll a transport error
113
204
  });
114
- await expect(submitAndPoll({ workerUrl: "https://w", clientKey: "k", repoName: "comfyui-mcp", title: "t", body: "b", fetchImpl, sleep: noSleep, pollDelayMs: 0 })).rejects.toThrow(/poll failed/);
205
+ const out = await submitAndPoll({ workerUrl: "https://w", clientKey: "k", repoName: "comfyui-mcp", title: "t", body: "b", fetchImpl, sleep: noSleep, pollDelayMs: 0, maxPolls: 3 });
206
+ expect(out.kind).toBe("pending"); // transient errors did not throw
207
+ expect(polls).toBe(3); // it kept trying
115
208
  });
116
- it("timeout: a SUBMIT whose .json() stalls until the AbortController fires → throws", async () => {
117
- const fetchImpl = (async (_url, init) => ({
118
- ok: true,
119
- json: () => new Promise((_resolve, reject) => {
120
- init.signal?.addEventListener("abort", () => reject(new Error("aborted")));
121
- }),
122
- }));
123
- await expect(submitAndPoll({ workerUrl: "https://w", clientKey: "k", repoName: "comfyui-mcp", title: "t", body: "b", fetchImpl, sleep: noSleep, timeoutMs: 10 })).rejects.toThrow();
209
+ it("a network failure BEFORE any 2xx (fetch rejects) throws so the caller prefills", async () => {
210
+ const fetchImpl = (async () => {
211
+ throw new Error("ECONNREFUSED");
212
+ });
213
+ await expect(submitAndPoll({ workerUrl: "https://w", clientKey: "k", repoName: "comfyui-mcp", title: "t", body: "b", fetchImpl, sleep: noSleep })).rejects.toThrow(/ECONNREFUSED/);
124
214
  });
125
- it("timeout: a POLL whose .json() stalls until the AbortController firesthrows", async () => {
215
+ it("timeout: a POLL whose .json() stalls is transient keeps polling pending", async () => {
126
216
  const fetchImpl = (async (url, init) => {
127
217
  if (url === "https://w")
128
- return res({ ok: true, job_id: "j6", status: "queued" });
218
+ return res({ job_id: "j6", state: "PENDING", status: "PENDING" });
129
219
  return {
130
220
  ok: true,
131
221
  json: () => new Promise((_resolve, reject) => {
@@ -133,7 +223,8 @@ describe("submitAndPoll", () => {
133
223
  }),
134
224
  };
135
225
  });
136
- await expect(submitAndPoll({ workerUrl: "https://w", clientKey: "k", repoName: "comfyui-mcp", title: "t", body: "b", fetchImpl, sleep: noSleep, pollDelayMs: 0, timeoutMs: 10 })).rejects.toThrow();
226
+ const out = await submitAndPoll({ workerUrl: "https://w", clientKey: "k", repoName: "comfyui-mcp", title: "t", body: "b", fetchImpl, sleep: noSleep, pollDelayMs: 0, timeoutMs: 10, maxPolls: 2 });
227
+ expect(out.kind).toBe("pending");
137
228
  });
138
229
  });
139
230
  describe("report_issue tool (registered handler)", () => {
@@ -144,6 +235,8 @@ describe("report_issue tool (registered handler)", () => {
144
235
  delete process.env.COMFYUI_MCP_ISSUE_TIMEOUT_MS;
145
236
  else
146
237
  process.env.COMFYUI_MCP_ISSUE_TIMEOUT_MS = savedTimeout;
238
+ delete process.env.COMFYUI_MCP_ISSUE_MAX_POLLS;
239
+ delete process.env.COMFYUI_MCP_ISSUE_POLL_MS;
147
240
  });
148
241
  it("third-party repo → prefilled URL, filed:false, no network", async () => {
149
242
  const spy = vi.fn();
@@ -161,59 +254,117 @@ describe("report_issue tool (registered handler)", () => {
161
254
  expect(json.url).toContain("https://github.com/artokun/comfyui-mcp/issues/new");
162
255
  expect(spy).not.toHaveBeenCalled();
163
256
  });
164
- it("our repo, Worker filesreturns the real issue link, filed:true", async () => {
165
- vi.stubGlobal("fetch", vi.fn(async () => res({ ok: true, url: "https://github.com/artokun/comfyui-mcp/issues/50", number: 50, job_id: "jx" })));
166
- const { json } = await callTool({ title: "t", body: "b" }); // default our repo
167
- expect(json).toMatchObject({ filed: true, number: 50 });
257
+ it("our repo, worker CLOSED (created) filed:true with the real issue link + agent_message", async () => {
258
+ vi.stubGlobal("fetch", vi.fn(async () => res({
259
+ state: "CLOSED",
260
+ payload: { classification: "new", action_taken: "created", issue: { number: 50, url: "https://github.com/artokun/comfyui-mcp/issues/50" }, agent_message: "Filed as #50" },
261
+ url: "https://github.com/artokun/comfyui-mcp/issues/50",
262
+ number: 50,
263
+ })));
264
+ const { json } = await callTool({ title: "t", body: "b" });
265
+ expect(json).toMatchObject({ filed: true, number: 50, action_taken: "created", agent_message: "Filed as #50" });
168
266
  expect(json.url).toBe("https://github.com/artokun/comfyui-mcp/issues/50");
169
267
  });
170
- it("mixed-case owner (Artokun/comfyui-mcp) is treated as OURS and files via the Worker", async () => {
171
- const spy = vi.fn(async () => res({ ok: true, url: "https://github.com/Artokun/comfyui-mcp/issues/60", number: 60, job_id: "jm" }));
268
+ it("our repo, worker CLOSED (advised_upgrade) filed:false, surfaces fix PR + version + upgrade advice", async () => {
269
+ vi.stubGlobal("fetch", vi.fn(async () => res({
270
+ state: "CLOSED",
271
+ payload: {
272
+ classification: "duplicate_closed",
273
+ action_taken: "advised_upgrade",
274
+ issue: { number: 505, url: "https://github.com/artokun/comfyui-mcp/issues/505", state: "closed" },
275
+ fixed_in_version: "0.48.19",
276
+ fix_pr_url: "https://github.com/artokun/comfyui-mcp/pull/507",
277
+ recommend_upgrade: true,
278
+ agent_message: "Duplicate of closed #505 — upgrade to 0.48.21 (fixed in 0.48.19 via PR #507).",
279
+ },
280
+ })));
281
+ const { json } = await callTool({ title: "t", body: "b", mcp_version: "0.48.10" });
282
+ expect(json).toMatchObject({
283
+ filed: false, // advised_upgrade files nothing
284
+ action_taken: "advised_upgrade",
285
+ fixed_in_version: "0.48.19",
286
+ fix_pr_url: "https://github.com/artokun/comfyui-mcp/pull/507",
287
+ recommend_upgrade: true,
288
+ });
289
+ expect(json.agent_message).toContain("upgrade");
290
+ });
291
+ it("passes mcp_version/panel_version through as reporter_versions", async () => {
292
+ let sentBody = {};
293
+ vi.stubGlobal("fetch", vi.fn(async (_url, init) => {
294
+ sentBody = JSON.parse(init.body);
295
+ return res({ state: "CLOSED", payload: { action_taken: "created", issue: { number: 9, url: "https://github.com/artokun/comfyui-mcp/issues/9" }, agent_message: "ok" }, url: "https://github.com/artokun/comfyui-mcp/issues/9", number: 9 });
296
+ }));
297
+ await callTool({ title: "t", body: "b", mcp_version: "0.48.10", panel_version: "0.11.3" });
298
+ expect(sentBody.reporter_versions).toEqual({ mcp: "0.48.10", panel: "0.11.3" });
299
+ });
300
+ it("our repo, still triaging at budget → filed:false, pending:true, NO prefill", async () => {
301
+ vi.stubGlobal("fetch", vi.fn(async (url) => {
302
+ if (!String(url).includes("/status/"))
303
+ return res({ job_id: "jq", state: "PENDING", status: "PENDING", up_to_date: false, upgrade_hint: "behind" });
304
+ return res({ state: "INVESTIGATING", status: "queued" });
305
+ }));
306
+ process.env.COMFYUI_MCP_ISSUE_TIMEOUT_MS = "50";
307
+ process.env.COMFYUI_MCP_ISSUE_MAX_POLLS = "2";
308
+ process.env.COMFYUI_MCP_ISSUE_POLL_MS = "0";
309
+ const { json } = await callTool({ title: "t", body: "b" });
310
+ expect(json).toMatchObject({ filed: false, pending: true, job_id: "jq" });
311
+ expect(String(json.url ?? "")).not.toContain("/issues/new"); // did NOT prefill
312
+ });
313
+ it("our repo, worker terminally couldn't file (unfiled) → prefilled fallback", async () => {
314
+ vi.stubGlobal("fetch", vi.fn(async (url) => {
315
+ if (!String(url).includes("/status/"))
316
+ return res({ job_id: "ju", state: "PENDING", status: "PENDING" });
317
+ return res({ status: "error", error: "GitHub API error" });
318
+ }));
319
+ const { json } = await callTool({ title: "t", body: "b" });
320
+ expect(json).toMatchObject({ filed: false });
321
+ expect(json.url).toContain("/issues/new");
322
+ });
323
+ it("our repo, CLOSED unfiled_needs_manual (no issue) → prefilled fallback, not a lost report", async () => {
324
+ vi.stubGlobal("fetch", vi.fn(async () => res({ state: "CLOSED", payload: { action_taken: "unfiled_needs_manual", issue: null, agent_message: "filing failed" } })));
325
+ const { json } = await callTool({ title: "t", body: "b" });
326
+ expect(json).toMatchObject({ filed: false });
327
+ expect(json.url).toContain("/issues/new");
328
+ });
329
+ it("a huge MAX_POLLS env is clamped so a running job still returns pending promptly", async () => {
330
+ let polls = 0;
331
+ vi.stubGlobal("fetch", vi.fn(async (url) => {
332
+ if (!String(url).includes("/status/"))
333
+ return res({ job_id: "jc", state: "PENDING", status: "PENDING" });
334
+ polls++;
335
+ return res({ state: "INVESTIGATING", status: "queued" });
336
+ }));
337
+ process.env.COMFYUI_MCP_ISSUE_MAX_POLLS = "1000000000"; // absurd
338
+ process.env.COMFYUI_MCP_ISSUE_POLL_MS = "0";
339
+ const { json } = await callTool({ title: "t", body: "b" });
340
+ expect(json).toMatchObject({ filed: false, pending: true });
341
+ expect(polls).toBeLessThanOrEqual(200); // clamped, not a billion
342
+ });
343
+ it("mixed-case owner (Artokun/comfyui-mcp) is treated as OURS and hits the worker", async () => {
344
+ const spy = vi.fn(async () => res({ state: "CLOSED", payload: { action_taken: "created", issue: { number: 60, url: "https://github.com/Artokun/comfyui-mcp/issues/60" }, agent_message: "ok" }, url: "https://github.com/Artokun/comfyui-mcp/issues/60", number: 60 }));
172
345
  vi.stubGlobal("fetch", spy);
173
346
  const { json } = await callTool({ title: "t", body: "b", repo: "Artokun/comfyui-mcp" });
174
- expect(spy).toHaveBeenCalled(); // hit the Worker, not the prefilled path
347
+ expect(spy).toHaveBeenCalled();
175
348
  expect(json).toMatchObject({ filed: true, number: 60 });
176
349
  });
177
- it("timeout regression (SUBMIT .json() stalls)prefilled fallback", async () => {
350
+ it("SUBMIT 2xx then body stalls → pending (worker took it), NOT a prefill/double-file", async () => {
178
351
  process.env.COMFYUI_MCP_ISSUE_TIMEOUT_MS = "15";
179
352
  vi.stubGlobal("fetch", vi.fn(async (_url, init) => ({
180
- ok: true,
353
+ ok: true, // 2xx = accepted
181
354
  json: () => new Promise((_resolve, reject) => {
182
355
  init.signal?.addEventListener("abort", () => reject(new Error("aborted")));
183
356
  }),
184
357
  })));
185
358
  const { json } = await callTool({ title: "t", body: "b" });
186
- expect(json).toMatchObject({ filed: false });
187
- expect(json.url).toContain("/issues/new");
188
- });
189
- it("timeout regression (POLL .json() stalls) → prefilled fallback", async () => {
190
- process.env.COMFYUI_MCP_ISSUE_TIMEOUT_MS = "15";
191
- vi.stubGlobal("fetch", vi.fn(async (url, init) => {
192
- if (!String(url).includes("/status/"))
193
- return res({ ok: true, job_id: "jp2", status: "queued" });
194
- return {
195
- ok: true,
196
- json: () => new Promise((_resolve, reject) => {
197
- init.signal?.addEventListener("abort", () => reject(new Error("aborted")));
198
- }),
199
- };
200
- }));
201
- const { json } = await callTool({ title: "t", body: "b" });
202
- expect(json).toMatchObject({ filed: false });
203
- expect(json.url).toContain("/issues/new");
359
+ expect(json).toMatchObject({ filed: false, pending: true });
360
+ expect(String(json.url ?? "")).not.toContain("/issues/new"); // did NOT prefill
204
361
  });
205
- it("our repo, Worker returns non-OK (500) → falls back to prefilled URL (generic, not just 401)", async () => {
362
+ it("our repo, worker returns non-OK (500) → falls back to prefilled URL", async () => {
206
363
  vi.stubGlobal("fetch", vi.fn(async () => res({ error: "boom" }, 500)));
207
364
  const { json } = await callTool({ title: "t", body: "b" });
208
365
  expect(json).toMatchObject({ filed: false });
209
366
  expect(json.url).toContain("https://github.com/artokun/comfyui-mcp/issues/new");
210
367
  });
211
- it("our repo, Worker returns 401 → falls back to prefilled URL", async () => {
212
- vi.stubGlobal("fetch", vi.fn(async () => res({ error: "unauthorized" }, 401)));
213
- const { json } = await callTool({ title: "t", body: "b" });
214
- expect(json).toMatchObject({ filed: false });
215
- expect(json.url).toContain("/issues/new");
216
- });
217
368
  it("our repo, network failure (fetch rejects) → falls back to prefilled URL", async () => {
218
369
  vi.stubGlobal("fetch", vi.fn(async () => {
219
370
  throw new Error("ECONNREFUSED");
@@ -222,17 +373,6 @@ describe("report_issue tool (registered handler)", () => {
222
373
  expect(json).toMatchObject({ filed: false });
223
374
  expect(json.url).toContain("/issues/new");
224
375
  });
225
- it("our repo, submit ok but polling errors → surfaces prefilled fallback (filed:false)", async () => {
226
- vi.stubGlobal("fetch", vi.fn(async (url) => {
227
- if (String(url).endsWith("/status/" + "jp"))
228
- return res({ status: "error", error: "GitHub API error" });
229
- // submit: queued with a job_id but no url → forces a poll
230
- return res({ ok: true, job_id: "jp", status: "queued" });
231
- }));
232
- const { json } = await callTool({ title: "t", body: "b" });
233
- expect(json).toMatchObject({ filed: false });
234
- expect(json.url).toContain("/issues/new");
235
- });
236
376
  it("invalid repo → isError", async () => {
237
377
  const { isError } = await callTool({ title: "t", body: "b", repo: "not-a-repo" });
238
378
  expect(isError).toBe(true);
@@ -1 +1 @@
1
- {"version":3,"file":"report-issue.test.js","sourceRoot":"","sources":["../../src/tools/report-issue.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"report-issue.test.js","sourceRoot":"","sources":["../../src/tools/report-issue.test.ts"],"names":[],"mappings":"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"}
@@ -290,7 +290,7 @@ export function registerSkillsAccessTools(server) {
290
290
  return errorToToolResult(err);
291
291
  }
292
292
  });
293
- server.tool("list_workflow_templates", "List the OFFICIAL ComfyUI workflow templates available on the connected ComfyUI (the comfyui-workflow-templates package + any custom-node-provided templates), grouped by source. Hits the live server's /api/workflow_templates index. When asked to 'set up / build a <model-family> workflow', check here for a matching official starter template AFTER checking the bundled skills + installer packs (list_skills / list_packs). NOTE: this lists what's available; loading a template onto the canvas is done in the ComfyUI frontend's Templates browser (the panel agent cannot load a template graph headlessly yet) — surface the matching template name to the user.", {}, async () => {
293
+ server.tool("list_workflow_templates", "List CUSTOM-NODE-contributed ComfyUI workflow templates on the connected ComfyUI, grouped by source (each pack's own example_workflows/*.json). Hits the live server's /api/workflow_templates index. SCOPE LIMIT: this endpoint does NOT include ComfyUI's own core bundled templates from the comfyui-workflow-templates package (e.g. 'Flux.1 Inpaint') — those are served to the frontend as static assets via a separate code path this tool cannot see, so a small/empty result here does NOT mean no official template exists, only that no custom-node pack contributed one. When asked to 'set up / build a <model-family> workflow', check here for a custom-node-contributed starter AFTER checking the bundled skills + installer packs (list_skills / list_packs), and also tell the user to check the ComfyUI frontend's own Templates browser directly for core templates, since this tool cannot enumerate those. NOTE: this lists what's available; loading a template onto the canvas is done in the ComfyUI frontend's Templates browser (the panel agent cannot load a template graph headlessly yet) — surface the matching template name to the user.", {}, async () => {
294
294
  try {
295
295
  traceToolCall("list_workflow_templates", {});
296
296
  // Canonical base URL + auth headers — same connected-ComfyUI path
@@ -410,6 +410,7 @@ export function registerSkillsAccessTools(server) {
410
410
  try {
411
411
  traceToolCall("check_workflow_runtime", { pack: args.pack });
412
412
  let graph;
413
+ let bundledLocalPack = false;
413
414
  if (args.pack) {
414
415
  const wfFile = resolvePackWorkflowFile(args.pack);
415
416
  if (!wfFile) {
@@ -425,6 +426,10 @@ export function registerSkillsAccessTools(server) {
425
426
  };
426
427
  }
427
428
  graph = JSON.parse(readFileSync(wfFile, "utf8"));
429
+ // Bundled packs are guaranteed local/free (list_packs contract). Trust
430
+ // that so an uninstalled custom node doesn't read back as "unknown" and
431
+ // wrongly demand a paid-credits confirmation (#464).
432
+ bundledLocalPack = true;
428
433
  }
429
434
  else if (args.graph != null) {
430
435
  graph = typeof args.graph === "string" ? JSON.parse(args.graph) : args.graph;
@@ -444,7 +449,7 @@ export function registerSkillsAccessTools(server) {
444
449
  // return SOMETHING useful even if the live /object_info is unreachable.
445
450
  const classTypes = extractWorkflowClassTypes(graph);
446
451
  try {
447
- const runtime = await checkWorkflowRuntime(graph);
452
+ const runtime = await checkWorkflowRuntime(graph, undefined, { bundledLocalPack });
448
453
  const guidance = runtime.runtime === "local"
449
454
  ? "Local-GPU / free — every node runs on the user's own GPU, no paid credits."
450
455
  : runtime.runtime === "unknown"