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.
Files changed (194) hide show
  1. package/.beads/hooks/post-checkout +24 -0
  2. package/.beads/hooks/post-merge +24 -0
  3. package/.beads/hooks/pre-commit +24 -0
  4. package/.beads/hooks/pre-push +24 -0
  5. package/.beads/hooks/prepare-commit-msg +24 -0
  6. package/.gitattributes +4 -0
  7. package/CHANGELOG.md +131 -0
  8. package/README.md +15 -7
  9. package/dist/comfyui/client.js +20 -1
  10. package/dist/comfyui/client.js.map +1 -1
  11. package/dist/config.js +9 -1
  12. package/dist/config.js.map +1 -1
  13. package/dist/index.js +7 -0
  14. package/dist/index.js.map +1 -1
  15. package/dist/orchestrator/index.js +132 -0
  16. package/dist/orchestrator/index.js.map +1 -0
  17. package/dist/orchestrator/panel-agent.js +227 -0
  18. package/dist/orchestrator/panel-agent.js.map +1 -0
  19. package/dist/services/generate-audio.js +106 -0
  20. package/dist/services/generate-audio.js.map +1 -0
  21. package/dist/services/process-control.js +13 -1
  22. package/dist/services/process-control.js.map +1 -1
  23. package/dist/services/ui-bridge.js +137 -76
  24. package/dist/services/ui-bridge.js.map +1 -1
  25. package/dist/services/workflow-composer.js +147 -0
  26. package/dist/services/workflow-composer.js.map +1 -1
  27. package/dist/tools/generate-audio.js +114 -0
  28. package/dist/tools/generate-audio.js.map +1 -0
  29. package/dist/tools/index.js +2 -0
  30. package/dist/tools/index.js.map +1 -1
  31. package/dist/tools/install-comfyui.js +6 -1
  32. package/dist/tools/install-comfyui.js.map +1 -1
  33. package/dist/tools/workflow-compose.js +4 -4
  34. package/dist/tools/workflow-compose.js.map +1 -1
  35. package/dist/tools/workflow-deps.js +2 -2
  36. package/dist/tools/workflow-deps.js.map +1 -1
  37. package/dist/tools/workflow-library.js +1 -1
  38. package/dist/tools/workflow-library.js.map +1 -1
  39. package/dist/tools/workflow-validate.js +1 -1
  40. package/dist/tools/workflow-validate.js.map +1 -1
  41. package/dist/tools/workflow-visualize.js +2 -2
  42. package/dist/tools/workflow-visualize.js.map +1 -1
  43. package/dist/transport/cli.js +6 -1
  44. package/dist/transport/cli.js.map +1 -1
  45. package/dist/utils/errors.js +6 -0
  46. package/dist/utils/errors.js.map +1 -1
  47. package/package.json +9 -5
  48. package/packs/README.md +65 -0
  49. package/packs/anima/install-runpod.sh +49 -0
  50. package/packs/anima/install-windows.bat +55 -0
  51. package/packs/anima/manifest.yaml +72 -0
  52. package/packs/anima/pack.yaml +25 -0
  53. package/packs/anima/workflow.json +16026 -0
  54. package/packs/cozy-flow/install-runpod.sh +35 -0
  55. package/packs/cozy-flow/install-windows.bat +41 -0
  56. package/packs/cozy-flow/manifest.yaml +60 -0
  57. package/packs/cozy-flow/pack.yaml +69 -0
  58. package/packs/cozy-flow/workflow.json +2552 -0
  59. package/packs/ernie/install-runpod.sh +35 -0
  60. package/packs/ernie/install-windows.bat +41 -0
  61. package/packs/ernie/manifest.yaml +47 -0
  62. package/packs/ernie/pack.yaml +46 -0
  63. package/packs/ernie/workflow.json +16050 -0
  64. package/packs/ideogram/install-runpod.sh +29 -0
  65. package/packs/ideogram/install-windows.bat +35 -0
  66. package/packs/ideogram/manifest.yaml +29 -0
  67. package/packs/ideogram/pack.yaml +38 -0
  68. package/packs/ideogram/templates/01_Film_Poster.json +71 -0
  69. package/packs/ideogram/templates/02_TShirt_Graphic_Print.json +34 -0
  70. package/packs/ideogram/templates/03_Fantasy_Book_Cover.json +69 -0
  71. package/packs/ideogram/templates/04_Event_Flyer_Poster.json +82 -0
  72. package/packs/ideogram/templates/05_Comic_Book_Cover.json +84 -0
  73. package/packs/ideogram/templates/06_Company_Logo_Concept_Board.json +114 -0
  74. package/packs/ideogram/templates/07_Personal_Branding_Sheet.json +75 -0
  75. package/packs/ideogram/templates/08_Social_Media_Branding_Kit.json +92 -0
  76. package/packs/ideogram/templates/09_Mascot_Brand_Kit.json +89 -0
  77. package/packs/ideogram/templates/10_Luxury_Brand_Identity.json +120 -0
  78. package/packs/ideogram/templates/11_Food_Promo_Poster.json +156 -0
  79. package/packs/ideogram/templates/12_Real_Estate_Promotion.json +117 -0
  80. package/packs/ideogram/templates/13_Restaurant_Fast_Food_Menu.json +123 -0
  81. package/packs/ideogram/templates/14_Product_Advertisement.json +114 -0
  82. package/packs/ideogram/templates/15_Tech_Service_Promotion.json +132 -0
  83. package/packs/ideogram/templates/16_2D_Character_Sheet.json +71 -0
  84. package/packs/ideogram/templates/17_3D_Character_Sheet.json +63 -0
  85. package/packs/ideogram/templates/18_Game_Item_Asset_Sheet.json +135 -0
  86. package/packs/ideogram/templates/19_Magazine_Cover_Design.json +108 -0
  87. package/packs/ideogram/templates/20_Trading_Card_Design.json +108 -0
  88. package/packs/ideogram/templates/21_Painting_Style_Scene.json +51 -0
  89. package/packs/ideogram/templates/22_Anime_Magazine_Cover.json +114 -0
  90. package/packs/ideogram/templates/23_Anime_Poster.json +127 -0
  91. package/packs/ideogram/templates/24_Realistic_Photoshoot_Scene.json +18 -0
  92. package/packs/ideogram/templates/25_Cross_Style_Group_Photo.json +28 -0
  93. package/packs/ideogram/templates/README_IDEOGRAM4_TEMPLATE_PACK.txt +470 -0
  94. package/packs/ideogram/workflow.json +6472 -0
  95. package/packs/ltx-2.3/fix-ltxvideo-kornia.bat +122 -0
  96. package/packs/ltx-2.3/fix-ltxvideo-kornia.sh +91 -0
  97. package/packs/ltx-2.3/install-runpod.sh +44 -0
  98. package/packs/ltx-2.3/install-windows.bat +50 -0
  99. package/packs/ltx-2.3/manifest.yaml +58 -0
  100. package/packs/ltx-2.3/pack.yaml +48 -0
  101. package/packs/qwen-image/install-runpod.sh +42 -0
  102. package/packs/qwen-image/install-windows.bat +48 -0
  103. package/packs/qwen-image/manifest.yaml +77 -0
  104. package/packs/qwen-image/pack.yaml +45 -0
  105. package/packs/qwen-image-edit/install-runpod.sh +39 -0
  106. package/packs/qwen-image-edit/install-windows.bat +45 -0
  107. package/packs/qwen-image-edit/manifest.yaml +74 -0
  108. package/packs/qwen-image-edit/pack.yaml +45 -0
  109. package/packs/qwen-image-edit/workflow-inpainting.json +2351 -0
  110. package/packs/qwen-image-edit/workflow.json +2089 -0
  111. package/packs/wan-animate/install-runpod.sh +39 -0
  112. package/packs/wan-animate/install-windows.bat +45 -0
  113. package/packs/wan-animate/manifest.yaml +57 -0
  114. package/packs/wan-animate/pack.yaml +49 -0
  115. package/packs/wan-animate/workflow.json +6993 -0
  116. package/packs/wan-longer-videos/install-runpod.sh +39 -0
  117. package/packs/wan-longer-videos/install-windows.bat +45 -0
  118. package/packs/wan-longer-videos/manifest.yaml +71 -0
  119. package/packs/wan-longer-videos/pack.yaml +42 -0
  120. package/packs/wan-longer-videos/workflow.json +22538 -0
  121. package/packs/wan-transparent/expression-renamer.bat +21 -0
  122. package/packs/wan-transparent/install-runpod.sh +35 -0
  123. package/packs/wan-transparent/install-windows.bat +41 -0
  124. package/packs/wan-transparent/manifest.yaml +49 -0
  125. package/packs/wan-transparent/pack.yaml +49 -0
  126. package/packs/wan-transparent/workflow.json +2194 -0
  127. package/packs/z-image-base/install-runpod.sh +40 -0
  128. package/packs/z-image-base/install-windows.bat +46 -0
  129. package/packs/z-image-base/manifest.yaml +75 -0
  130. package/packs/z-image-base/pack.yaml +39 -0
  131. package/packs/z-image-base/workflow.json +15198 -0
  132. package/packs/z-image-turbo/install-runpod.sh +39 -0
  133. package/packs/z-image-turbo/install-windows.bat +45 -0
  134. package/packs/z-image-turbo/manifest.yaml +61 -0
  135. package/packs/z-image-turbo/pack.yaml +40 -0
  136. package/packs/z-image-turbo/workflow.json +12120 -0
  137. package/packs/z-image-xy-plot/install-runpod.sh +33 -0
  138. package/packs/z-image-xy-plot/install-windows.bat +39 -0
  139. package/packs/z-image-xy-plot/manifest.yaml +61 -0
  140. package/packs/z-image-xy-plot/pack.yaml +49 -0
  141. package/packs/z-image-xy-plot/workflow.json +5302 -0
  142. package/plugin/.claude-plugin/plugin.json +10 -0
  143. package/plugin/.mcp.json +7 -0
  144. package/plugin/agents/debugger.md +171 -0
  145. package/plugin/agents/explorer.md +65 -0
  146. package/plugin/agents/optimizer.md +196 -0
  147. package/plugin/agents/researcher.md +56 -0
  148. package/plugin/commands/batch.md +90 -0
  149. package/plugin/commands/compare.md +83 -0
  150. package/plugin/commands/convert.md +78 -0
  151. package/plugin/commands/debug.md +72 -0
  152. package/plugin/commands/director.md +134 -0
  153. package/plugin/commands/gallery.md +61 -0
  154. package/plugin/commands/gen.md +110 -0
  155. package/plugin/commands/install.md +68 -0
  156. package/plugin/commands/node-skill.md +39 -0
  157. package/plugin/commands/recipe.md +125 -0
  158. package/plugin/commands/viz.md +39 -0
  159. package/plugin/hooks/hooks.json +36 -0
  160. package/plugin/hooks/job-complete-notify.mjs +110 -0
  161. package/plugin/hooks/open-latest-image.mjs +82 -0
  162. package/plugin/hooks/save-warning.mjs +21 -0
  163. package/plugin/hooks/vram-check.mjs +72 -0
  164. package/plugin/skills/ai-toolkit-trainer/SKILL.md +145 -0
  165. package/plugin/skills/anima-base/SKILL.md +240 -0
  166. package/plugin/skills/anima-lora-trainer/SKILL.md +162 -0
  167. package/plugin/skills/civitai/SKILL.md +107 -0
  168. package/plugin/skills/comfyui-core/SKILL.md +264 -0
  169. package/plugin/skills/comfyui-core/references/common-nodes.md +149 -0
  170. package/plugin/skills/comfyui-frontend-extensions/SKILL.md +502 -0
  171. package/plugin/skills/comfyui-frontend-extensions/references/migrate-v1-to-v2.md +222 -0
  172. package/plugin/skills/comfyui-node-registry/SKILL.md +218 -0
  173. package/plugin/skills/comfyui-node-registry/references/pyproject.toml +65 -0
  174. package/plugin/skills/director/SKILL.md +321 -0
  175. package/plugin/skills/ernie-image/SKILL.md +225 -0
  176. package/plugin/skills/flux-txt2img/SKILL.md +285 -0
  177. package/plugin/skills/ideogram-ultra/SKILL.md +337 -0
  178. package/plugin/skills/installer-packs/SKILL.md +74 -0
  179. package/plugin/skills/ltxv2-video/SKILL.md +515 -0
  180. package/plugin/skills/model-compatibility/SKILL.md +434 -0
  181. package/plugin/skills/model-registry/SKILL.md +101 -0
  182. package/plugin/skills/prompt-engineering/SKILL.md +304 -0
  183. package/plugin/skills/qwen-image-edit/SKILL.md +282 -0
  184. package/plugin/skills/qwen-txt2img/SKILL.md +332 -0
  185. package/plugin/skills/troubleshooting/SKILL.md +424 -0
  186. package/plugin/skills/wan-flf-video/SKILL.md +514 -0
  187. package/plugin/skills/wan-t2v-video/SKILL.md +322 -0
  188. package/plugin/skills/z-image-txt2img/SKILL.md +294 -0
  189. package/scripts/check-model-urls.mjs +160 -0
  190. package/scripts/gen-pack-installers.mjs +133 -0
  191. package/scripts/gen-tool-docs.ts +13 -11
  192. package/scripts/panel-sim.mjs +56 -0
  193. package/scripts/test-packs.sh +87 -0
  194. 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":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAqB,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACzF,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AA2E5C,8EAA8E;AAC9E,wEAAwE;AACxE,8EAA8E;AAE9E,IAAI,eAAe,GAAuB,IAAI,CAAC;AAC/C,IAAI,eAAe,GAAwB,IAAI,CAAC;AAChD,IAAI,qBAAqB,GAA0E,IAAI,CAAC;AACxG,IAAI,sBAAsB,GAAkC,IAAI,CAAC;AACjE,IAAI,sBAAsB,GAAG,CAAC,CAAC;AAC/B,IAAI,yBAAyB,GAAG,CAAC,CAAC;AAClC,IAAI,gBAAgB,GAAG,KAAK,CAAC;AAE7B,8EAA8E;AAC9E,yBAAyB;AACzB,8EAA8E;AAE9E,MAAM,MAAM,GAAG,QAAQ,EAAE,KAAK,OAAO,CAAC;AAEtC,SAAS,aAAa,CAAC,IAAY;IACjC,IAAI,CAAC;QACH,IAAI,MAAM,EAAE,CAAC;YACX,mDAAmD;YACnD,MAAM,GAAG,GAAG,QAAQ,CAClB,2BAA2B,IAAI,sBAAsB,EACrD,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CACrC,CAAC,IAAI,EAAE,CAAC;YACT,kEAAkE;YAClE,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACvC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;oBACtB,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAClD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC;wBAAE,OAAO,GAAG,CAAC;gBACzC,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,IAAI,EAAE,EAAE;gBACxC,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,IAAI;aACd,CAAC,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC7C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC;gBAAE,OAAO,GAAG,CAAC;QACzC,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,2CAA2C;IAC7C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,SAAS,kBAAkB;IACzB,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,IAAI,CAAC;QACH,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,GAAG,GAAG,QAAQ,CAClB,qDAAqD,EACrD,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CACrC,CAAC,IAAI,EAAE,CAAC;YACT,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnC,8DAA8D;gBAC9D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;gBACpD,IAAI,KAAK;oBAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,GAAG,QAAQ,CAAC,wBAAwB,EAAE;gBAC7C,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,IAAI;aACd,CAAC,CAAC,IAAI,EAAE,CAAC;YACV,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnC,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC/B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC;oBAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,iCAAiC;IACnC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,eAAe,CAAC,GAAW;IAClC,IAAI,CAAC;QACH,IAAI,MAAM,EAAE,CAAC;YACX,QAAQ,CAAC,iBAAiB,GAAG,QAAQ,EAAE;gBACrC,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,qDAAqD;YACrD,IAAI,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YAChC,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YAC/B,CAAC;YACD,oCAAoC;YACpC,IAAI,CAAC;gBACH,QAAQ,CAAC,sBAAsB,GAAG,cAAc,EAAE;oBAChD,QAAQ,EAAE,OAAO;oBACjB,OAAO,EAAE,IAAI;iBACd,CAAC,CAAC;YACL,CAAC;YAAC,MAAM,CAAC;gBACP,6BAA6B;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,kEAAkE;QAClE,IAAI,CAAC,2CAA2C,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3D,MAAM,IAAI,mBAAmB,CAAC,0BAA0B,GAAG,KAAK,GAAG,EAAE,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,cAAc,CAAC,OAAe;IACrC,MAAM,WAAW,GAAG,kBAAkB,EAAE,CAAC;IACzC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,CAAC,IAAI,CAAC,kCAAkC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxE,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;YAC9B,eAAe,CAAC,GAAG,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;SAAM,CAAC;QACN,wCAAwC;QACxC,eAAe,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,IAAc;IAClC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IAC5C,OAAO,CACL,MAAM,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QAC7C,MAAM,CAAC,QAAQ,CAAC,8BAA8B,CAAC;QAC/C,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAC/B,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,6BAA6B;IACpC,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC;QACvE,MAAM,UAAU,GAAG;YACjB,GAAG,IAAI,kCAAkC;YACzC,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,kCAAkC;YAC7D,yCAAyC;SAC1C,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;YAC3B,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC5F,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;oBAAE,OAAO,CAAC,CAAC;YACzC,CAAC;YAAC,MAAM,CAAC;gBACP,YAAY;YACd,CAAC;QACH,CAAC;IACH,CAAC;SAAM,CAAC;QACN,QAAQ;QACR,MAAM,UAAU,GAAG;YACjB,2BAA2B;YAC3B,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,2BAA2B;SAC/C,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;YAC3B,IAAI,CAAC;gBACH,QAAQ,CAAC,YAAY,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC9C,OAAO,CAAC,CAAC;YACX,CAAC;YAAC,MAAM,CAAC;gBACP,YAAY;YACd,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAc;IACxC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE9B,IAAI,MAAM,EAAE,CAAC;QACX,mFAAmF;QACnF,+EAA+E;QAC/E,qEAAqE;QACrE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CACxB,iEAAiE,CAClE,CAAC;QACF,IAAI,KAAK;YAAE,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC;IAC/C,CAAC;SAAM,CAAC;QACN,uCAAuC;QACvC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAClD,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,IAAY,EAAE,SAAS,GAAG,KAAK;IAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,SAAS,EAAE,CAAC;QACtC,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,IAAI;YAAE,OAAO;QACzC,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;IACD,MAAM,IAAI,mBAAmB,CAC3B,QAAQ,IAAI,uBAAuB,SAAS,GAAG,IAAI,GAAG,CACvD,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAY,EAAE,QAAgB;IAC5D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,QAAQ,CAAC;IAC5D,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;AACpE,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAY,EAAE,QAAgB;IACzD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,QAAQ,CAAC;IAC5D,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AAChF,CAAC;AAED,SAAS,yBAAyB;IAChC,OAAO;QACL,UAAU,EAAE,IAAI,CAAC,KAAK,CACpB,sBAAsB,CAAC,kCAAkC,EAAE,CAAC,CAAC,GAAG,IAAI,CACrE;QACD,QAAQ,EAAE,mBAAmB,CAAC,iCAAiC,EAAE,EAAE,CAAC;KACrE,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB;IACvB,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAC;IACjF,OAAO;QACL,OAAO;QACP,WAAW,EAAE,mBAAmB,CAAC,8BAA8B,EAAE,CAAC,CAAC;QACnE,QAAQ,EAAE,IAAI,CAAC,KAAK,CAClB,sBAAsB,CAAC,0BAA0B,EAAE,EAAE,CAAC,GAAG,IAAI,CAC9D;KACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,eAAe;IAC5B,MAAM,IAAI,GAAG,iBAAiB,EAAE,CAAC;IACjC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,yBAAyB,EAAE,CAAC;IAC7D,MAAM,QAAQ,GAAG,GAAG,kBAAkB,EAAE,MAAM,IAAI,eAAe,CAAC;IAClE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,IAAI,QAAQ,GAAG,CAAC,CAAC;IAEjB,OAAO,QAAQ,GAAG,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC;QACvC,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;YAC3D,IAAI,GAAa,CAAC;YAClB,IAAI,CAAC;gBACH,GAAG,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;YAC7D,CAAC;oBAAS,CAAC;gBACT,YAAY,CAAC,OAAO,CAAC,CAAC;YACxB,CAAC;YACD,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;gBACX,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;gBACpC,OAAO;oBACL,KAAK,EAAE,IAAI;oBACX,SAAS,EAAE,KAAK;oBAChB,QAAQ,EAAE,QAAQ,GAAG,CAAC;oBACtB,SAAS,EAAE,QAAQ;oBACnB,WAAW,EAAE,UAAU;oBACvB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;oBAC7B,SAAS,EAAE,QAAQ;iBACpB,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,gBAAgB;QAClB,CAAC;QACD,IAAI,QAAQ,GAAG,QAAQ,GAAG,CAAC;YAAE,MAAM,KAAK,CAAC,UAAU,CAAC,CAAC;IACvD,CAAC;IAED,OAAO;QACL,KAAK,EAAE,KAAK;QACZ,SAAS,EAAE,IAAI;QACf,QAAQ;QACR,SAAS,EAAE,QAAQ;QACnB,WAAW,EAAE,UAAU;QACvB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;QAC7B,SAAS,EAAE,QAAQ;KACpB,CAAC;AACJ,CAAC;AAED,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,gBAAgB;IACvB,IAAI,eAAe,IAAI,qBAAqB,EAAE,CAAC;QAC7C,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IACrD,CAAC;IACD,IAAI,eAAe,IAAI,sBAAsB,EAAE,CAAC;QAC9C,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAC;IACvD,CAAC;IACD,eAAe,GAAG,IAAI,CAAC;IACvB,qBAAqB,GAAG,IAAI,CAAC;IAC7B,sBAAsB,GAAG,IAAI,CAAC;AAChC,CAAC;AAED,SAAS,wBAAwB,CAAC,GAAY;IAC5C,IAAI,CAAC,CAAC,GAAG,YAAY,KAAK,CAAC;QAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;IAC7D,MAAM,OAAO,GAAG,GAA4B,CAAC;IAC7C,OAAO;QACL,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,IAAI,EAAE,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;QACjE,KAAK,EAAE,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;QACpE,OAAO,EAAE,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;QAC1E,IAAI,EAAE,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;KAClE,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAkB;IAC1C,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;IAClC,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,SAAS,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;QAC9C,YAAY,EAAE,MAAM,CAAC,WAAW;QAChC,SAAS,EAAE,MAAM,CAAC,QAAQ;QAC1B,aAAa,EAAE,sBAAsB;QACrC,OAAO,EAAE,gBAAgB;QACzB,OAAO,EAAE,CAAC,MAAM,CAAC,OAAO;YACtB,CAAC,CAAC,2BAA2B;YAC7B,CAAC,CAAC,IAAI,EAAE,YAAY;gBAClB,CAAC,CAAC,2FAA2F;gBAC7F,CAAC,CAAC,SAAS;KAChB,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,MAAqB;IACnD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,IAAI,yBAAyB,KAAK,CAAC,IAAI,GAAG,GAAG,yBAAyB,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QACzF,yBAAyB,GAAG,GAAG,CAAC;QAChC,sBAAsB,GAAG,CAAC,CAAC;QAC3B,gBAAgB,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED,IAAI,sBAAsB,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACjD,gBAAgB,GAAG,IAAI,CAAC;QACxB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,sBAAsB,IAAI,CAAC,CAAC;IAC5B,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAiB;IAC7C,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC;YAChC,IAAI,CAAC,GAAG;gBAAE,OAAO,IAAI,CAAC;YACtB,OAAO,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE;gBACpB,QAAQ,EAAE,IAAI;gBACd,KAAK,EAAE,QAAQ;gBACf,KAAK,EAAE,KAAK;aACb,CAAC,CAAC;QACL,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,IAAI,SAAS,CAAC;QACjD,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;YACpC,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,QAAQ;SAChB,CAAC,CAAC;IACL,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACxC,MAAM,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;IACvC,OAAO,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE;QAC5B,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,QAAQ;QACf,GAAG,EAAE,MAAM,CAAC,WAAW,IAAI,SAAS;QACpC,KAAK,EAAE,KAAK;KACb,CAAC,CAAC;AACL,CAAC;AAED,SAAS,yBAAyB,CAChC,KAAmB,EACnB,MAIC;IAED,IAAI,eAAe,KAAK,KAAK;QAAE,OAAO;IACtC,gBAAgB,EAAE,CAAC;IAEnB,IAAI,CAAC,eAAe;QAAE,OAAO;IAC7B,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;IACzC,IAAI,CAAC,aAAa,CAAC,OAAO;QAAE,OAAO;IAEnC,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC,EAAE,CAAC;QAC3C,MAAM,CAAC,IAAI,CAAC,yDAAyD,EAAE;YACrE,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,WAAW,EAAE,aAAa,CAAC,WAAW;YACtC,QAAQ,EAAE,aAAa,CAAC,QAAQ;SACjC,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,yCAAyC,EAAE;QACrD,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,YAAY,EAAE,sBAAsB;QACpC,WAAW,EAAE,aAAa,CAAC,WAAW;KACvC,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,oBAAoB,CAAC,eAAe,CAAC,CAAC;IACxD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;QACjF,OAAO;IACT,CAAC;IACD,SAAS,CAAC,KAAK,EAAE,CAAC;IAClB,cAAc,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,wBAAwB,CAC/B,KAAmB;IAEnB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YAC1B,MAAM,KAAK,GAAG,wBAAwB,CAAC,GAAG,CAAC,CAAC;YAC5C,MAAM,CAAC,KAAK,CAAC,wCAAwC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YAClE,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,cAAc,CAAC,KAAmB,EAAE,IAAiB;IAC5D,gBAAgB,EAAE,CAAC;IACnB,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;IAClC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,YAAY;QAAE,OAAO;IAEjD,eAAe,GAAG,KAAK,CAAC;IACxB,qBAAqB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;QACvC,yBAAyB,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IACrD,CAAC,CAAC;IACF,sBAAsB,GAAG,CAAC,GAAG,EAAE,EAAE;QAC/B,MAAM,KAAK,GAAG,wBAAwB,CAAC,GAAG,CAAC,CAAC;QAC5C,MAAM,CAAC,KAAK,CAAC,wCAAwC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAClE,yBAAyB,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IAC9C,CAAC,CAAC;IACF,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IACxC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAC;AAC9C,CAAC;AAED,8EAA8E;AAC9E,2CAA2C;AAC3C,8EAA8E;AAE9E,KAAK,UAAU,iBAAiB;IAC9B,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC;IAEjC,iCAAiC;IACjC,IAAI,IAAI,GAAa,EAAE,CAAC;IACxB,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,cAAc,EAAE,CAAC;QACrC,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;IAC3E,CAAC;IAED,sBAAsB;IACtB,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,mBAAmB,CAC3B,sCAAsC,IAAI,uBAAuB,CAClE,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAElE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC;AAChF,CAAC;AAED,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IACnC,gBAAgB,EAAE,CAAC;IAEnB,gCAAgC;IAChC,IAAI,IAAiB,CAAC;IACtB,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,iBAAiB,EAAE,CAAC;IACnC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,6DAA6D;QAC7D,MAAM,WAAW,GAAG,kBAAkB,EAAE,CAAC;QACzC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC,+CAA+C,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACrF,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC;YACjC,IAAI,GAAG;gBACL,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC;gBACnB,IAAI;gBACJ,IAAI,EAAE,EAAE;gBACR,YAAY,EAAE,IAAI;gBAClB,cAAc,EAAE,6BAA6B,EAAE;aAChD,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,OAAO,EACL,GAAG,YAAY,mBAAmB;oBAChC,CAAC,CAAC,GAAG,CAAC,OAAO;oBACb,CAAC,CAAC,mCAAmC,GAAG,EAAE;gBAC9C,gBAAgB,EAAE,KAAK;aACxB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,uBAAuB;IACvB,eAAe,GAAG,IAAI,CAAC;IACvB,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE;QACnC,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;KAC1B,CAAC,CAAC;IAEH,mEAAmE;IACnE,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;SAAM,CAAC;QACN,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,qEAAqE;IACrE,2DAA2D;IAC3D,WAAW,EAAE,CAAC;IACd,oBAAoB,EAAE,CAAC;IAEvB,iCAAiC;IACjC,IAAI,CAAC;QACH,MAAM,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC;IACtE,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,gBAAgB,IAAI,CAAC,GAAG,qBAAqB,IAAI,CAAC,IAAI,EAAE;QACjE,gBAAgB,EAAE,IAAI;QACtB,YAAY,EAAE,gBAAgB,CAAC,IAAI,CAAC;KACrC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC;IAEjC,2BAA2B;IAC3B,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO;YACL,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,sCAAsC,IAAI,SAAS,WAAW,GAAG;YAC1E,GAAG,EAAE,WAAW;SACjB,CAAC;IACJ,CAAC;IAED,IAAI,IAAI,GAAG,eAAe,CAAC;IAC3B,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,2DAA2D;QAC3D,MAAM,UAAU,GAAG,6BAA6B,EAAE,CAAC;QACnD,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,oDAAoD,UAAU,EAAE,CAAC,CAAC;YAC9E,IAAI,GAAG;gBACL,GAAG,EAAE,CAAC;gBACN,IAAI;gBACJ,IAAI,EAAE,EAAE;gBACR,YAAY,EAAE,IAAI;gBAClB,cAAc,EAAE,UAAU;aAC3B,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,OAAO,EACL,0FAA0F;aAC7F,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE;QACjC,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;KAC1B,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC5C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO;YACL,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,IAAI,CAAC,YAAY;gBACxB,CAAC,CAAC,gFAAgF;gBAClF,CAAC,CAAC,0EAA0E;YAC9E,YAAY,EAAE,gBAAgB,CAAC,IAAI,CAAC;SACrC,CAAC;IACJ,CAAC;IACD,MAAM,UAAU,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAC;IACtD,QAAQ,CAAC,KAAK,EAAE,CAAC;IACjB,eAAe,GAAG,IAAI,CAAC;IACvB,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAE/B,+BAA+B;IAC/B,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;QACvC,eAAe,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;QACtD,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;KACrD,CAAC,CAAC;IACH,IAAI,aAAa,IAAI,aAAa,EAAE,CAAC;QACnC,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,KAAK;YACZ,OAAO,EACL,qCAAqC,aAAa,CAAC,WAAW,CAAC,OAAO,EAAE;YAC1E,WAAW,EAAE,aAAa,CAAC,WAAW;YACtC,YAAY,EAAE,gBAAgB,CAAC,IAAI,CAAC;SACrC,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC;IAC1C,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACrB,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,KAAK;YACZ,SAAS;YACT,OAAO,EACL,uEAAuE,SAAS,CAAC,SAAS,OAAO,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,SAAS,mCAAmC;YAC/K,YAAY,EAAE,gBAAgB,CAAC,IAAI,CAAC;SACrC,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACnC,OAAO;QACL,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,IAAI;QACX,SAAS;QACT,OAAO,EAAE,2BAA2B,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAC7E,GAAG,EAAE,MAAM,IAAI,SAAS;QACxB,YAAY,EAAE,gBAAgB,CAAC,IAAI,CAAC;KACrC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IAErC,OAAO;IACP,MAAM,UAAU,GAAG,MAAM,WAAW,EAAE,CAAC;IACvC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QACxB,OAAO;YACL,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,2BAA2B,UAAU,CAAC,OAAO,EAAE;SACzD,CAAC;IACJ,CAAC;IAED,gDAAgD;IAChD,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;IAElB,QAAQ;IACR,MAAM,WAAW,GAAG,MAAM,YAAY,EAAE,CAAC;IACzC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;QACzB,OAAO;YACL,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,WAAW,CAAC,KAAK;YACxB,SAAS,EAAE,WAAW,CAAC,SAAS;YAChC,OAAO,EAAE,iDAAiD,WAAW,CAAC,OAAO,EAAE;YAC/E,YAAY,EAAE,WAAW,CAAC,YAAY;YACtC,WAAW,EAAE,WAAW,CAAC,WAAW;SACrC,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,WAAW,CAAC,KAAK;QACxB,SAAS,EAAE,WAAW,CAAC,SAAS;QAChC,OAAO,EAAE,mCAAmC,WAAW,CAAC,OAAO,EAAE;QACjE,YAAY,EAAE,WAAW,CAAC,YAAY;KACvC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,KAAK;QACH,gBAAgB,EAAE,CAAC;QACnB,eAAe,GAAG,IAAI,CAAC;QACvB,sBAAsB,GAAG,CAAC,CAAC;QAC3B,yBAAyB,GAAG,CAAC,CAAC;QAC9B,gBAAgB,GAAG,KAAK,CAAC;IAC3B,CAAC;IACD,kBAAkB,CAAC,IAAiB;QAClC,eAAe,GAAG,IAAI,CAAC;IACzB,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"process-control.js","sourceRoot":"","sources":["../../src/services/process-control.ts"],"names":[],"mappings":"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"}