comfyui-mcp 0.46.0 → 0.47.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/dist/config.js +30 -9
- package/dist/config.js.map +1 -1
- package/dist/orchestrator/codex-backend.js +195 -53
- package/dist/orchestrator/codex-backend.js.map +1 -1
- package/dist/orchestrator/index.js +33 -3
- package/dist/orchestrator/index.js.map +1 -1
- package/dist/orchestrator/panel-tools.js +2 -1
- package/dist/orchestrator/panel-tools.js.map +1 -1
- package/dist/services/ai-toolkit.js +11 -1
- package/dist/services/ai-toolkit.js.map +1 -1
- package/dist/services/download-jobs.js +92 -0
- package/dist/services/download-jobs.js.map +1 -0
- package/dist/services/download-progress.js +36 -0
- package/dist/services/download-progress.js.map +1 -1
- package/dist/services/env-capabilities.js +3 -2
- package/dist/services/env-capabilities.js.map +1 -1
- package/dist/services/generate-conditioned.js +1 -0
- package/dist/services/generate-conditioned.js.map +1 -1
- package/dist/services/queue-monitor.js +8 -2
- package/dist/services/queue-monitor.js.map +1 -1
- package/dist/services/runpod-client.js +146 -6
- package/dist/services/runpod-client.js.map +1 -1
- package/dist/services/runpod-ssh.js +3 -1
- package/dist/services/runpod-ssh.js.map +1 -1
- package/dist/services/runpod-watch.js +69 -10
- package/dist/services/runpod-watch.js.map +1 -1
- package/dist/services/secure-bridge.js +2 -11
- package/dist/services/secure-bridge.js.map +1 -1
- package/dist/services/training-datasets.js +168 -0
- package/dist/services/training-datasets.js.map +1 -0
- package/dist/services/workflow-composer.js +3 -0
- package/dist/services/workflow-composer.js.map +1 -1
- package/dist/tools/generate-conditioned.js +4 -0
- package/dist/tools/generate-conditioned.js.map +1 -1
- package/dist/tools/image-management.js +24 -0
- package/dist/tools/image-management.js.map +1 -1
- package/dist/tools/model-extras.js +73 -42
- package/dist/tools/model-extras.js.map +1 -1
- package/dist/tools/model-management.js +90 -4
- package/dist/tools/model-management.js.map +1 -1
- package/dist/tools/prompt-director.js +2 -1
- package/dist/tools/prompt-director.js.map +1 -1
- package/dist/tools/runpod.js +12 -3
- package/dist/tools/runpod.js.map +1 -1
- package/dist/tools/train.js +104 -10
- package/dist/tools/train.js.map +1 -1
- package/docker/runpod/Dockerfile +15 -2
- package/docker/runpod/README.md +23 -0
- package/docker/runpod/deadman_server.py +71 -0
- package/docker/runpod/deadman_watch.sh +106 -0
- package/docker/runpod/post_start.sh +17 -0
- package/docker/runpod/test_deadman_harness.py +206 -0
- package/package.json +1 -1
- package/scripts/asset-counts.mjs +129 -0
package/README.md
CHANGED
|
@@ -16,7 +16,7 @@ Works on **macOS**, **Linux**, and **Windows**. Auto-detects your ComfyUI instal
|
|
|
16
16
|
|
|
17
17
|
**Stuck or have a question? [Join the Discord](https://discord.gg/cW9arBhzCu)** — help, model tips, and release announcements.
|
|
18
18
|
|
|
19
|
-
**
|
|
19
|
+
**168 MCP tools** | **35 AI skills** (Flux · WAN · LTX 2.3 video · Qwen · Z-Image · Ideogram 4 · ERNIE · ANIMA · model registry · Civitai · node authoring · launch/perf flags) | **55 installer packs** | **11 slash commands** | **4 autonomous agents** | **3 hooks**
|
|
20
20
|
|
|
21
21
|
The plugin ships **expert skills that grow with every release** — model-specific generation guides with curated download URLs, workflow recipes, troubleshooting, and custom-node authoring — so Claude knows the right sampler, CFG, resolution, and model files for each architecture without trial and error.
|
|
22
22
|
|
|
@@ -119,7 +119,7 @@ This package also ships as a **Claude Code plugin**, providing slash commands, s
|
|
|
119
119
|
|
|
120
120
|
### Built-in skills
|
|
121
121
|
|
|
122
|
-
|
|
122
|
+
35 skills total — model-family guides (Flux, WAN, LTX 2.3, Qwen, Z-Image, Ideogram 4, ERNIE, ANIMA + anime / WAN / Z-Image LoRA training), the **model-registry** (curated download URLs), the **civitai** pairing skill, node authoring, the **launch/performance-flags** matrix, and the core four below. Full list on the [plugin docs page](https://comfyui-mcp.artokun.io/docs/plugin).
|
|
123
123
|
|
|
124
124
|
> **Installer packs.** [`packs/`](packs/) bundles 13 one-command ComfyUI setups — ANIMA, Ideogram 4, LTX-2.3, ERNIE, WAN (animate / longer-videos / transparent), Qwen (image / image-edit), Z-Image (turbo / base / xy-plot) and artokun-flow (WAN Animate — replace / animate). Each is a manifest of custom nodes + model URLs + workflow that drives both `apply_manifest` and generated `install-windows.bat` / `install-runpod.sh`, with CI that validates every model link + payload size. See [`packs/README.md`](packs/README.md).
|
|
125
125
|
|
|
@@ -244,7 +244,7 @@ for the port, the capability matrix, and the per-provider "clink" points, and th
|
|
|
244
244
|
|
|
245
245
|
## MCP Tools
|
|
246
246
|
|
|
247
|
-
|
|
247
|
+
168 tools across workflow execution, generation, iteration, composition, models, and more:
|
|
248
248
|
|
|
249
249
|
### Image Generation (high-level)
|
|
250
250
|
|
package/dist/config.js
CHANGED
|
@@ -353,6 +353,13 @@ const configSchema = z.object({
|
|
|
353
353
|
comfyuiAuthHeader: z.string().optional(),
|
|
354
354
|
comfyuiAuthScheme: z.string().optional(),
|
|
355
355
|
comfyuiAuthToken: z.string().optional(),
|
|
356
|
+
// Cloudflare Access service token (a Client ID + Client Secret PAIR). When both
|
|
357
|
+
// are set, every ComfyUI request carries CF-Access-Client-Id / -Secret so a
|
|
358
|
+
// ComfyUI endpoint fronted by Cloudflare Access lets the connector through
|
|
359
|
+
// instead of returning the interactive sign-in page. Independent of, and
|
|
360
|
+
// additive to, COMFYUI_AUTH_TOKEN.
|
|
361
|
+
cfAccessClientId: z.string().optional(),
|
|
362
|
+
cfAccessClientSecret: z.string().optional(),
|
|
356
363
|
huggingfaceToken: z.string().optional(),
|
|
357
364
|
githubToken: z.string().optional(),
|
|
358
365
|
civitaiApiToken: z.string().optional(),
|
|
@@ -413,6 +420,8 @@ const parsedConfig = configSchema.parse({
|
|
|
413
420
|
comfyuiAuthHeader: process.env.COMFYUI_AUTH_HEADER,
|
|
414
421
|
comfyuiAuthScheme: process.env.COMFYUI_AUTH_SCHEME,
|
|
415
422
|
comfyuiAuthToken: process.env.COMFYUI_AUTH_TOKEN,
|
|
423
|
+
cfAccessClientId: process.env.CF_ACCESS_CLIENT_ID,
|
|
424
|
+
cfAccessClientSecret: process.env.CF_ACCESS_CLIENT_SECRET,
|
|
416
425
|
// HF_TOKEN is the canonical var the huggingface_hub libs read; HUGGINGFACE_TOKEN
|
|
417
426
|
// is a legacy alias we still honor as a fallback.
|
|
418
427
|
huggingfaceToken: process.env.HF_TOKEN || process.env.HUGGINGFACE_TOKEN,
|
|
@@ -722,15 +731,27 @@ export function getComfyUIBaseUrl() {
|
|
|
722
731
|
* This is independent of Comfy Cloud mode (COMFYUI_API_KEY / X-API-Key).
|
|
723
732
|
*/
|
|
724
733
|
export function getComfyUIAuthHeaders() {
|
|
734
|
+
const headers = {};
|
|
725
735
|
const token = config.comfyuiAuthToken?.trim();
|
|
726
|
-
if (
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
736
|
+
if (token) {
|
|
737
|
+
const header = config.comfyuiAuthHeader?.trim() || "Authorization";
|
|
738
|
+
// An unset/empty scheme defaults to "Bearer" for the Authorization header and
|
|
739
|
+
// to none (raw token) for any custom header. Set COMFYUI_AUTH_SCHEME to force
|
|
740
|
+
// a specific scheme (e.g. "Token").
|
|
741
|
+
const scheme = config.comfyuiAuthScheme?.trim() ||
|
|
742
|
+
(header.toLowerCase() === "authorization" ? "Bearer" : "");
|
|
743
|
+
headers[header] = scheme ? `${scheme} ${token}` : token;
|
|
744
|
+
}
|
|
745
|
+
// Cloudflare Access service token — sent as a PAIR (both headers) or not at all,
|
|
746
|
+
// so a half-configured token never produces a broken request. Additive: works
|
|
747
|
+
// alongside or instead of COMFYUI_AUTH_TOKEN, and applies to every ComfyUI
|
|
748
|
+
// endpoint (harmless on endpoints not behind Cloudflare Access — they ignore it).
|
|
749
|
+
const cfId = config.cfAccessClientId?.trim();
|
|
750
|
+
const cfSecret = config.cfAccessClientSecret?.trim();
|
|
751
|
+
if (cfId && cfSecret) {
|
|
752
|
+
headers["CF-Access-Client-Id"] = cfId;
|
|
753
|
+
headers["CF-Access-Client-Secret"] = cfSecret;
|
|
754
|
+
}
|
|
755
|
+
return headers;
|
|
735
756
|
}
|
|
736
757
|
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC3H,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,eAAe,EAAsB,MAAM,4BAA4B,CAAC;AAEjF,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACtC,MAAM,WAAW,GAAG,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAC7C,8EAA8E;AAC9E,wEAAwE;AACxE,gFAAgF;AAChF,+EAA+E;AAC/E,4EAA4E;AAC5E,6EAA6E;AAC7E,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;AAC5D,MAAM,aAAa,GAAG,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AACnD,IAAI,CAAC;IACH,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAC1D,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACrD,YAAY,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;QACzC,kEAAkE;QAClE,IAAI,CAAC;YACH,SAAS,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAChC,CAAC;QAAC,MAAM,CAAC;YACP,YAAY;QACd,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,aAAa,OAAO,WAAW,yCAAyC,CAAC,CAAC;IAC3H,CAAC;AACH,CAAC;AAAC,MAAM,CAAC;IACP,4EAA4E;AAC9E,CAAC;AACD,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;AAErC;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,CAAS;IAC5C,IAAI,CAAC;QACH,OAAO,CACL,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;YAC9B,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;YAC7B,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;YACnC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAC9B,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,CAAS,EAAE,KAAK,GAAG,cAAc;IACnE,IAAI,CAAC;QACH,IAAI,oBAAoB,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QAClC,IAAI,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;YACjC,OAAO,CAAC,KAAK,CACX,iBAAiB,KAAK,KAAK,CAAC,2CAA2C;gBACrE,uEAAuE,MAAM,IAAI,CACpF,CAAC;YACF,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,mDAAmD;IACrD,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,2BAA2B;IAClC,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,MAAM,UAAU,GAAG;QACjB,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,CAAC,EAAE,UAAU;QAC7D,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,qBAAqB,EAAE,eAAe,CAAC,EAAE,QAAQ;QACvE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,eAAe,CAAC,EAAE,QAAQ;KACjD,CAAC;IACF,MAAM,OAAO,GAA8C,EAAE,CAAC;IAC9D,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC;YAC7C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,SAAS;YAChC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;YACvD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;gBAAE,SAAS;YACrC,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;gBAC1B,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;oBAAE,SAAS;gBAChD,MAAM,GAAG,GAAG,IAA+B,CAAC;gBAC5C,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ;oBAAE,SAAS;gBACxC,IAAI,OAAO,GAAG,CAAC,WAAW,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE;oBAAE,SAAS;gBAC7E,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,GAAG,CAAC,WAAW;oBACrB,QAAQ,EAAE,OAAO,GAAG,CAAC,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;iBAC1E,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,iEAAiE;QACnE,CAAC;IACH,CAAC;IACD,OAAO,CACL,OAAO;SACJ,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;SACvC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACnB,uEAAuE;QACvE,sEAAsE;QACtE,wEAAwE;QACxE,uEAAuE;QACvE,sEAAsE;QACtE,kDAAkD;SACjD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CACtF,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAS,kBAAkB;IACzB,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,4DAA4D;IAC5D,MAAM,UAAU,GAAa,CAAC,GAAG,2BAA2B,EAAE,CAAC,CAAC;IAEhE,8CAA8C;IAC9C,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;IAEpD,6BAA6B;IAC7B,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,qBAAqB,EAAE,SAAS,CAAC,CAAC,CAAC;IAEzE,kCAAkC;IAClC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;IACvC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;IAC/C,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;IACnD,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;IAE9C,qBAAqB;IACrB,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAChC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;IAE1D,uBAAuB;IACvB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;IAC3D,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;IAElD,6CAA6C;IAC7C,UAAU,CAAC,IAAI,CACb,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC,CAC9E,CAAC;IAEF,wEAAwE;IACxE,MAAM,aAAa,GAAG;QACpB,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC;QACvB,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC;KAC3B,CAAC;IACF,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;QAChC,IAAI,CAAC;YACH,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,SAAS;YAC/B,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,IAAI,KAAK,CAAC,WAAW,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;oBACxE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;oBACvC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;wBACnC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAC5B,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,2BAA2B;QAC7B,CAAC;IACH,CAAC;IAED,wEAAwE;IACxE,kFAAkF;IAClF,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QACpC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QACjC,uDAAuD;QACvD,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;YAAE,OAAO,IAAI,CAAC;QAC1C,8DAA8D;QAC9D,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;IAEH,6EAA6E;IAC7E,+EAA+E;IAC/E,mDAAmD;IACnD,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,MAAM,IAAI,GAAG,mBAAmB,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC;QAC7D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,8EAA8E;AAC9E,yEAAyE;AACzE,4EAA4E;AAC5E,2EAA2E;AAC3E,wBAAwB;AACxB,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;IAC7B,WAAW;IACX,KAAK;IACL,WAAW;IACX,SAAS;CACV,CAAC,CAAC;AAEH;;iFAEiF;AACjF,MAAM,UAAU,cAAc,CAAC,IAAwB;IACrD,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC,CAAC,wBAAwB;IAChD,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IACrD,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC/B,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,kBAAkB,CACzB,OAA2B,EAC3B,IAAiE;IAEjE,IAAI,OAAO,EAAE,CAAC;QACZ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,OAAO,CAAC,KAAK,CACX,8DAA8D,IAAI,CAAC,UAAU,GAAG;gBAChF,sBAAsB,OAAO,cAAc;gBAC3C,oCAAoC,OAAO,0BAA0B,IAAI,CAAC,UAAU,KAAK;gBACzF,0EAA0E,CAC3E,CAAC;QACJ,CAAC;QACD,8EAA8E;QAC9E,iFAAiF;QACjF,OAAO,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;IAC5D,CAAC;IACD,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACjC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;IACtC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAE5C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,KAAK,CACX,0DAA0D;YACxD,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YACrD,YAAY,QAAQ,CAAC,CAAC,CAAC,IAAI;YAC3B,+BAA+B,CAClC,CAAC;IACJ,CAAC;IAED,0EAA0E;IAC1E,8DAA8D;IAC9D,OAAO,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC;AACnE,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB;IACpC,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;IACtC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC5C,OAAO,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC;AACnE,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,iBAAiB,CAAC,IAAY;IAC3C,MAAM,KAAK,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAE3B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,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,MAAM,QAAQ,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;YAC5D,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,QAAQ,MAAM,IAAI,IAAI,IAAI,eAAe,EAAE;gBACpE,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC,CAAC;YACH,YAAY,CAAC,OAAO,CAAC,CAAC;YACtB,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CAAC,uCAAuC,IAAI,EAAE,CAAC,CAAC;gBAC7D,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,gCAAgC;QAClC,CAAC;IACH,CAAC;IAED,OAAO,CAAC,KAAK,CACX,+CAA+C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CACvF,CAAC;IACF,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,SAAS,kBAAkB;IACzB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,GAAuB,CAAC;IAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,IAAI,CAAC,KAAK,eAAe,EAAE,CAAC;YAC1B,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAClB,MAAM;QACR,CAAC;QACD,IAAI,CAAC,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACnC,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;YACvC,MAAM;QACR,CAAC;IACH,CAAC;IACD,GAAG,GAAG,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;IACrC,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,IAAI,CAAC;QACH,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CACX,6DAA6D,GAAG,MAC9D,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GACvC,EAAE,CACH,CAAC;QACF,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,8FAA8F;AAC9F,SAAS,kBAAkB;IACzB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAAE,OAAO,IAAI,CAAC;IACjD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC;IACjD,OAAO,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,MAAM,CAAC;AACvC,CAAC;AAED,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC;IAC5C,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC1D,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAC7C,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACvC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,yBAAyB,CAAC;IAC9D,4EAA4E;IAC5E,0EAA0E;IAC1E,0DAA0D;IAC1D,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACxC,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACxC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACvC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACvC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACtC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACnC,CAAC,CAAC;AAIH,MAAM,WAAW,GAAG,kBAAkB,EAAE,CAAC;AACzC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC;AACrE,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;AACzC,MAAM,WAAW,GAAG,kBAAkB,EAAE,CAAC;AACzC,0EAA0E;AAC1E,8EAA8E;AAC9E,IAAI,eAAe,GACjB,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;AAE9E,IAAI,WAAW,EAAE,CAAC;IAChB,OAAO,CAAC,KAAK,CACX,mGAAmG,CACpG,CAAC;AACJ,CAAC;AAED,IAAI,WAAW,IAAI,CAAC,WAAW,EAAE,CAAC;IAChC,OAAO,CAAC,KAAK,CACX,4EAA4E;QAC1E,6FAA6F,CAChG,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,kBAAkB;IACzB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IACtC,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE;QAAE,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;IACzC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,gBAAgB,CAAC,CAAC;QAClD,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACxB,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;YAClD,IAAI,GAAG;gBAAE,OAAO,GAAG,CAAC;QACtB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,uDAAuD;IACzD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC;IACtC,WAAW,EAAE,WAAW,EAAE,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY;IAC1D,WAAW,EAAE,WAAW,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,SAAS,CAAC;IACzE,UAAU,EAAE,WAAW,EAAE,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW;IACvD,eAAe,EAAE,WAAW,EAAE,QAAQ,IAAI,EAAE;IAC5C,WAAW,EAAE,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE;QACxD,SAAS,EAAE,eAAe;QAC1B,KAAK,EAAE,WAAW;QAClB,UAAU,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,IAAI,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS;KACtF,CAAC;IACF,aAAa,EAAE,WAAW;IAC1B,eAAe,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB;IAC9C,iBAAiB,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB;IAClD,iBAAiB,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB;IAClD,gBAAgB,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB;IAChD,iFAAiF;IACjF,kDAAkD;IAClD,gBAAgB,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB;IACvE,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY;IACrC,eAAe,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB;IAC9C,WAAW,EAAE,kBAAkB,EAAE;CAClC,CAAC,CAAC;AAEH,gBAAgB;AAChB,mFAAmF;AACnF,6EAA6E;AAC7E,yEAAyE;AACzE,IAAI,YAAoB,CAAC;AACzB,IAAI,WAAW,EAAE,CAAC;IAChB,YAAY,GAAG,YAAY,CAAC,WAAW,IAAI,CAAC,CAAC;AAC/C,CAAC;KAAM,CAAC;IACN,YAAY,GAAG,YAAY,CAAC,WAAW;WAClC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,iBAAiB,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC;AAC5F,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAW,EAAE,GAAG,YAAY,EAAE,YAAY,EAAE,CAAC;AAEhE,6EAA6E;AAC7E,+EAA+E;AAC/E,0EAA0E;AAC1E,gFAAgF;AAChF,MAAM,WAAW,GAAG;IAClB,IAAI,EAAE,MAAM,CAAC,WAAW;IACxB,IAAI,EAAE,MAAM,CAAC,YAAY;IACzB,GAAG,EAAE,MAAM,CAAC,UAAU;IACtB,QAAQ,EAAE,MAAM,CAAC,eAAe;CACjC,CAAC;AAEF;mDACmD;AACnD,SAAS,iBAAiB,CAAC,IAAY;IACrC,OAAO,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7C,CAAC;AAED;;;;gFAIgF;AAChF,SAAS,gBAAgB,CAAC,IAAY;IACpC,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,sBAAsB;IAC5E,IAAI,cAAc,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,4EAA4E;IAC5E,6EAA6E;IAC7E,yDAAyD;IACzD,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACnD,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC;QAAE,OAAO,IAAI,CAAC;IACnH,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,CAAC,sDAAsD;IACvF,OAAO,CACL,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC;QACnB,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC;QACxB,4BAA4B,CAAC,IAAI,CAAC,CAAC,CAAC;QACpC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,gCAAgC;QACpD,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,wCAAwC;KACtE,CAAC;AACJ,CAAC;AAED,4CAA4C;AAC5C,MAAM,UAAU,cAAc;IAC5B,OAAO,iBAAiB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AAC/C,CAAC;AAED;;;8EAG8E;AAC9E,MAAM,UAAU,qBAAqB;IACnC,OAAO,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;;4EAM4E;AAC5E;;;2EAG2E;AAC3E,SAAS,eAAe;IACtB,OAAO,OAAO,CAAC,GAAG,CAAC,6BAA6B,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,cAAc,EAAE,mBAAmB,CAAC,CAAC;AAC3G,CAAC;AAED,SAAS,oBAAoB;IAC3B,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,EAAE,OAAO,CAAC,CAAsB,CAAC;QACpF,OAAO,OAAO,CAAC,EAAE,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,eAAe,GACnB,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,IAAI,GAAG,CAAC;IACxD,CAAC,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,MAAM,WAAW,CAAC,IAAI,IAAI,WAAW,CAAC,IAAI,GAAG,WAAW,CAAC,QAAQ,EAAE;IAC1G,CAAC,CAAC,IAAI,CAAC;AACX,yEAAyE;AACzE,8EAA8E;AAC9E,yEAAyE;AACzE,IAAI,gBAAgB,GAAkB,eAAe,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC/H,+EAA+E;AAC/E,0EAA0E;AAC1E,+EAA+E;AAC/E,yDAAyD;AACzD,IAAI,CAAC,eAAe,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;IACrI,IAAI,CAAC;QACH,MAAM,CAAC,eAAe,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,mBAAmB;IACrB,CAAC;AACH,CAAC;AAED;;;mFAGmF;AACnF,MAAM,UAAU,kBAAkB;IAChC,OAAO,gBAAgB,IAAI,uBAAuB,CAAC;AACrD,CAAC;AAED;;;iDAGiD;AACjD,MAAM,UAAU,sBAAsB,CAAC,IAAY;IACjD,OAAO,CAAC,GAAG,CAAC,6BAA6B,GAAG,IAAI,CAAC;IACjD,2EAA2E;IAC3E,6EAA6E;IAC7E,6EAA6E;IAC7E,IAAI,CAAC,eAAe,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;QACrI,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAChC,CAAC;QAAC,MAAM,CAAC;YACP,mBAAmB;QACrB,CAAC;QACD,gBAAgB,GAAG,IAAI,CAAC;QACxB,OAAO;IACT,CAAC;IACD,IAAI,iBAAiB,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,yEAAyE;QACzE,yEAAyE;QACzE,0EAA0E;QAC1E,gBAAgB,GAAG,oBAAoB,EAAE,CAAC;IAC5C,CAAC;IACD,IAAI,gBAAgB,KAAK,IAAI,EAAE,CAAC;QAC9B,0EAA0E;QAC1E,wEAAwE;QACxE,2CAA2C;QAC3C,IAAI,CAAC;YACH,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9C,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC;QACjE,CAAC;QAAC,MAAM,CAAC;YACP,iBAAiB;QACnB,CAAC;IACH,CAAC;AACH,CAAC;AAED;uEACuE;AACvE,MAAM,UAAU,gBAAgB;IAC9B,OAAO,cAAc,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AAC5C,CAAC;AAOD,MAAM,sBAAsB,GAAG,IAAI,GAAG,EAAyB,CAAC;AAChE,MAAM,UAAU,sBAAsB,CAAC,EAAyB;IAC9D,sBAAsB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC/B,OAAO,GAAG,EAAE,CAAC,sBAAsB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AACjD,CAAC;AACD,SAAS,wBAAwB;IAC/B,MAAM,GAAG,GAAG,iBAAiB,EAAE,CAAC;IAChC,4EAA4E;IAC5E,0EAA0E;IAC1E,qCAAqC;IACrC,MAAM,KAAK,GAAG,qBAAqB,EAAE,CAAC;IACtC,KAAK,MAAM,EAAE,IAAI,sBAAsB,EAAE,CAAC;QACxC,IAAI,CAAC;YACH,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACjB,CAAC;QAAC,MAAM,CAAC;YACP,4CAA4C;QAC9C,CAAC;IACH,CAAC;AACH,CAAC;AAED,6EAA6E;AAC7E,+CAA+C;AAC/C,6EAA6E;AAC7E,2EAA2E;AAC3E,2DAA2D;AAC3D,8BAA8B;AAC9B,4EAA4E;AAC5E,0EAA0E;AAC1E,2EAA2E;AAC3E,8BAA8B;AAE9B,MAAM,UAAU,WAAW;IACzB,OAAO,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO,CAAC,WAAW,EAAE,IAAI,eAAe,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;AAC3C,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,oBAAoB;IAClC,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,mGAAmG;AACnG,MAAM,UAAU,eAAe;IAC7B,IAAI,WAAW,EAAE;QAAE,OAAO,aAAa,CAAC;IACxC,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;IACnF,MAAM,GAAG,GAAG,GAAG,IAAI,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;IAC7C,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC1E,OAAO,IAAI,IAAI,SAAS,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO,MAAM,CAAC,eAAe,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO,MAAM,CAAC,aAAa,CAAC;AAC9B,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,IAAI,CAAgB,CAAC;IACrB,IAAI,CAAC;QACH,CAAC,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC;IAC5B,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC;IAC5B,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC;IAC7B,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC;IAC1B,MAAM,CAAC,eAAe,GAAG,CAAC,CAAC,QAAQ,CAAC;IACpC,6EAA6E;IAC7E,6EAA6E;IAC7E,+EAA+E;IAC/E,eAAe,GAAG,WAAW,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACzD,6EAA6E;IAC7E,4EAA4E;IAC5E,gFAAgF;IAChF,4EAA4E;IAC5E,MAAM,CAAC,WAAW,GAAG,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE;QAChE,SAAS,EAAE,eAAe;QAC1B,KAAK,EAAE,WAAW,EAAE;QACpB,UAAU,EAAE,CAAC,CAAC,IAAI;KACnB,CAAC,CAAC;IACH,4EAA4E;IAC5E,4EAA4E;IAC5E,uEAAuE;IACvE,wEAAwE;IACxE,+DAA+D;IAC/D,IAAI,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,gBAAgB,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;QACpF,IAAI,CAAC;YACH,SAAS,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3D,aAAa,CAAC,eAAe,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC;QAC9E,CAAC;QAAC,MAAM,CAAC;YACP,iBAAiB;QACnB,CAAC;IACH,CAAC;IACD,0EAA0E;IAC1E,2EAA2E;IAC3E,sCAAsC;IACtC,OAAO,CAAC,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC;IAC9B,+DAA+D;IAC/D,wBAAwB,EAAE,CAAC;IAC3B,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,OAAO,GAAG,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,OAAO,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;AAC9C,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,kBAAkB;IAChC,OAAO,MAAM,CAAC,eAAe,CAAC;AAChC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO,GAAG,kBAAkB,EAAE,MAAM,iBAAiB,EAAE,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;AACrF,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB;IACnC,MAAM,KAAK,GAAG,MAAM,CAAC,gBAAgB,EAAE,IAAI,EAAE,CAAC;IAC9C,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,MAAM,MAAM,GAAG,MAAM,CAAC,iBAAiB,EAAE,IAAI,EAAE,IAAI,eAAe,CAAC;IACnE,8EAA8E;IAC9E,8EAA8E;IAC9E,oCAAoC;IACpC,MAAM,MAAM,GACV,MAAM,CAAC,iBAAiB,EAAE,IAAI,EAAE;QAChC,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC7D,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;AAC7D,CAAC"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -46,6 +46,34 @@ import { CODEX_CAPABILITIES, } from "./agent-backend.js";
|
|
|
46
46
|
function msgOf(err) {
|
|
47
47
|
return err instanceof Error ? err.message : String(err);
|
|
48
48
|
}
|
|
49
|
+
const configuredInterruptTimeoutMs = Number(process.env.COMFYUI_MCP_CODEX_INTERRUPT_TIMEOUT_MS);
|
|
50
|
+
const CODEX_INTERRUPT_TIMEOUT_MS = Number.isFinite(configuredInterruptTimeoutMs) && configuredInterruptTimeoutMs > 0
|
|
51
|
+
? configuredInterruptTimeoutMs
|
|
52
|
+
: 1500;
|
|
53
|
+
const configuredCloseTimeoutMs = Number(process.env.COMFYUI_MCP_CODEX_CLOSE_TIMEOUT_MS);
|
|
54
|
+
const CODEX_CLOSE_TIMEOUT_MS = Number.isFinite(configuredCloseTimeoutMs) && configuredCloseTimeoutMs > 0
|
|
55
|
+
? configuredCloseTimeoutMs
|
|
56
|
+
: 2000;
|
|
57
|
+
const configuredForceKillGraceMs = Number(process.env.COMFYUI_MCP_CODEX_FORCE_KILL_GRACE_MS);
|
|
58
|
+
const CODEX_FORCE_KILL_GRACE_MS = Number.isFinite(configuredForceKillGraceMs) && configuredForceKillGraceMs > 0
|
|
59
|
+
? configuredForceKillGraceMs
|
|
60
|
+
: 500;
|
|
61
|
+
const CODEX_CLIENT_CLOSE_BUDGET_MS = CODEX_CLOSE_TIMEOUT_MS * 2 + CODEX_FORCE_KILL_GRACE_MS + 100;
|
|
62
|
+
async function settlesWithin(promise, timeoutMs) {
|
|
63
|
+
let timer;
|
|
64
|
+
try {
|
|
65
|
+
return await Promise.race([
|
|
66
|
+
promise.then(() => true, () => true),
|
|
67
|
+
new Promise((resolve) => {
|
|
68
|
+
timer = setTimeout(() => resolve(false), timeoutMs);
|
|
69
|
+
}),
|
|
70
|
+
]);
|
|
71
|
+
}
|
|
72
|
+
finally {
|
|
73
|
+
if (timer)
|
|
74
|
+
clearTimeout(timer);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
49
77
|
/**
|
|
50
78
|
* Kill an entire process tree, not just the direct child. On the Windows
|
|
51
79
|
* PATH/shell fallback the direct child is a cmd.exe/shim whose grandchild is the
|
|
@@ -55,33 +83,42 @@ function msgOf(err) {
|
|
|
55
83
|
* falling back to the single pid. Best-effort + swallows errors: it runs during
|
|
56
84
|
* teardown and must never throw into the host process.
|
|
57
85
|
*/
|
|
58
|
-
function killProcessTree(pid) {
|
|
86
|
+
function killProcessTree(pid, force = false) {
|
|
59
87
|
if (!Number.isFinite(pid))
|
|
60
|
-
return;
|
|
88
|
+
return false;
|
|
61
89
|
const p = pid;
|
|
62
90
|
if (process.platform === "win32") {
|
|
63
91
|
try {
|
|
64
|
-
spawnSync("taskkill", ["/PID", String(p), "/T", "/F"], {
|
|
92
|
+
const result = spawnSync("taskkill", ["/PID", String(p), "/T", "/F"], {
|
|
93
|
+
windowsHide: true,
|
|
94
|
+
timeout: CODEX_CLOSE_TIMEOUT_MS,
|
|
95
|
+
});
|
|
96
|
+
if (!result.error && result.status === 0)
|
|
97
|
+
return true;
|
|
65
98
|
}
|
|
66
99
|
catch {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
100
|
+
// Fall through to the direct-pid kill below.
|
|
101
|
+
}
|
|
102
|
+
try {
|
|
103
|
+
process.kill(p, "SIGKILL");
|
|
104
|
+
return true;
|
|
105
|
+
}
|
|
106
|
+
catch {
|
|
107
|
+
return false; // already gone or inaccessible
|
|
73
108
|
}
|
|
74
|
-
return;
|
|
75
109
|
}
|
|
110
|
+
const signal = force ? "SIGKILL" : "SIGTERM";
|
|
76
111
|
try {
|
|
77
|
-
process.kill(-p,
|
|
112
|
+
process.kill(-p, signal); // process group (we spawn detached on POSIX)
|
|
113
|
+
return true;
|
|
78
114
|
}
|
|
79
115
|
catch {
|
|
80
116
|
try {
|
|
81
|
-
process.kill(p,
|
|
117
|
+
process.kill(p, signal);
|
|
118
|
+
return true;
|
|
82
119
|
}
|
|
83
120
|
catch {
|
|
84
|
-
// already gone
|
|
121
|
+
return false; // already gone or inaccessible
|
|
85
122
|
}
|
|
86
123
|
}
|
|
87
124
|
}
|
|
@@ -95,6 +132,7 @@ class AppServerClient {
|
|
|
95
132
|
pending = new Map();
|
|
96
133
|
nextId = 1;
|
|
97
134
|
closed = false;
|
|
135
|
+
closePromise = null;
|
|
98
136
|
exitResolved = false;
|
|
99
137
|
/** The error that ended the connection (null = clean exit). Readable so a turn
|
|
100
138
|
* can surface a meaningful message when the child dies mid-turn. */
|
|
@@ -302,34 +340,56 @@ class AppServerClient {
|
|
|
302
340
|
this.resolveExit();
|
|
303
341
|
}
|
|
304
342
|
async close() {
|
|
305
|
-
if (this.
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
343
|
+
if (!this.closePromise) {
|
|
344
|
+
this.closePromise = (async () => {
|
|
345
|
+
this.closed = true;
|
|
346
|
+
// Drop the notification handler so a late notification can't re-enter a
|
|
347
|
+
// torn-down turn during shutdown.
|
|
348
|
+
this.notificationHandler = null;
|
|
349
|
+
this.rl?.close();
|
|
350
|
+
this.rl = null;
|
|
351
|
+
const proc = this.proc;
|
|
352
|
+
let softKillTimer;
|
|
353
|
+
if (proc && proc.exitCode === null) {
|
|
354
|
+
try {
|
|
355
|
+
proc.stdin.end();
|
|
356
|
+
}
|
|
357
|
+
catch {
|
|
358
|
+
// already gone
|
|
359
|
+
}
|
|
360
|
+
// Give a graceful stdin-EOF shutdown a beat, then kill the whole tree.
|
|
361
|
+
softKillTimer = setTimeout(() => {
|
|
362
|
+
if (proc.exitCode === null)
|
|
363
|
+
killProcessTree(proc.pid, false);
|
|
364
|
+
}, 50);
|
|
365
|
+
softKillTimer.unref?.();
|
|
366
|
+
}
|
|
367
|
+
let exited = await settlesWithin(this.exitPromise, CODEX_CLOSE_TIMEOUT_MS);
|
|
368
|
+
if (softKillTimer)
|
|
369
|
+
clearTimeout(softKillTimer);
|
|
370
|
+
if (!exited && proc && proc.exitCode === null) {
|
|
371
|
+
logger.warn(`[codex-backend] app-server did not exit within ${CODEX_CLOSE_TIMEOUT_MS}ms -- forcing process-tree termination`);
|
|
372
|
+
killProcessTree(proc.pid, true);
|
|
373
|
+
exited = await settlesWithin(this.exitPromise, CODEX_FORCE_KILL_GRACE_MS);
|
|
374
|
+
}
|
|
375
|
+
if (!exited) {
|
|
376
|
+
// Queue recovery must not depend on an OS exit event. Detach the pipes
|
|
377
|
+
// and resolve the logical connection even if both tree-kill attempts failed.
|
|
378
|
+
try {
|
|
379
|
+
proc?.stdin.destroy();
|
|
380
|
+
proc?.stdout.destroy();
|
|
381
|
+
proc?.stderr.destroy();
|
|
382
|
+
proc?.unref?.();
|
|
383
|
+
}
|
|
384
|
+
catch {
|
|
385
|
+
// best-effort final detach
|
|
386
|
+
}
|
|
387
|
+
this.handleExit(new Error("codex app-server teardown timed out after forced termination."));
|
|
388
|
+
}
|
|
389
|
+
this.proc = null;
|
|
390
|
+
})();
|
|
330
391
|
}
|
|
331
|
-
await this.
|
|
332
|
-
this.proc = null;
|
|
392
|
+
await this.closePromise;
|
|
333
393
|
}
|
|
334
394
|
}
|
|
335
395
|
// ---- reasoning-effort scale (advertised + applied) ----
|
|
@@ -511,6 +571,10 @@ export class CodexBackend {
|
|
|
511
571
|
* concurrent close() can tear it down even before it's published to
|
|
512
572
|
* this.client (P0-A: close() racing prepare() must never leak the child). */
|
|
513
573
|
preparingClient = null;
|
|
574
|
+
/** Detached clients whose bounded teardown is still in flight. */
|
|
575
|
+
closingClients = new Map();
|
|
576
|
+
/** Per-turn escape hatch used when the app-server ignores turn/interrupt. */
|
|
577
|
+
abortActiveTurn = null;
|
|
514
578
|
/** Set once close() runs — a hard tripwire so an in-flight prepare() that wakes
|
|
515
579
|
* up after close() disposes its local client instead of publishing it (P0-A). */
|
|
516
580
|
disposed = false;
|
|
@@ -547,6 +611,28 @@ export class CodexBackend {
|
|
|
547
611
|
this.deps = deps;
|
|
548
612
|
this.model = deps.model;
|
|
549
613
|
}
|
|
614
|
+
beginClientClose(client, reason) {
|
|
615
|
+
const existing = this.closingClients.get(client);
|
|
616
|
+
if (existing)
|
|
617
|
+
return existing;
|
|
618
|
+
const closeOperation = Promise.resolve()
|
|
619
|
+
.then(() => client.close())
|
|
620
|
+
.catch((err) => {
|
|
621
|
+
logger.warn(`[codex-backend] ${reason}: ${msgOf(err)}`);
|
|
622
|
+
});
|
|
623
|
+
const closing = settlesWithin(closeOperation, CODEX_CLIENT_CLOSE_BUDGET_MS)
|
|
624
|
+
.then((settled) => {
|
|
625
|
+
if (!settled) {
|
|
626
|
+
logger.warn(`[codex-backend] ${reason}: close did not settle within ${CODEX_CLIENT_CLOSE_BUDGET_MS}ms; detaching`);
|
|
627
|
+
}
|
|
628
|
+
})
|
|
629
|
+
.finally(() => {
|
|
630
|
+
if (this.closingClients.get(client) === closing)
|
|
631
|
+
this.closingClients.delete(client);
|
|
632
|
+
});
|
|
633
|
+
this.closingClients.set(client, closing);
|
|
634
|
+
return closing;
|
|
635
|
+
}
|
|
550
636
|
/**
|
|
551
637
|
* Resolve the codex binary: prefer the bundled `@openai/codex` launcher (via
|
|
552
638
|
* require.resolve of its package bin) so no separate install is needed; fall
|
|
@@ -801,6 +887,10 @@ export class CodexBackend {
|
|
|
801
887
|
// PanelAgent's idle watchdog so a long, quiet generation doesn't falsely trip.
|
|
802
888
|
for await (const turn of opts.channel) {
|
|
803
889
|
yield* this.runTurn(client, turn, opts.onActivity);
|
|
890
|
+
// A timed-out interrupt detaches this client. End the old run before it can
|
|
891
|
+
// consume another queued turn; PanelAgent will start a fresh app-server.
|
|
892
|
+
if (this.client !== client)
|
|
893
|
+
return;
|
|
804
894
|
}
|
|
805
895
|
}
|
|
806
896
|
/** Run ONE turn: turn/start + stream its notifications → AgentEvents, resolving
|
|
@@ -884,6 +974,18 @@ export class CodexBackend {
|
|
|
884
974
|
streamKind = null;
|
|
885
975
|
}
|
|
886
976
|
};
|
|
977
|
+
const abortActiveTurn = () => {
|
|
978
|
+
interrupted = true;
|
|
979
|
+
if (finishedResult)
|
|
980
|
+
return;
|
|
981
|
+
finishedResult = true;
|
|
982
|
+
closeStream();
|
|
983
|
+
// This is controlled recovery, not a provider failure. `ok: true` also
|
|
984
|
+
// prevents the watchdog path from painting a duplicate failure banner.
|
|
985
|
+
push({ type: "result", ok: true, subtype: "interrupted" });
|
|
986
|
+
finish();
|
|
987
|
+
};
|
|
988
|
+
this.abortActiveTurn = abortActiveTurn;
|
|
887
989
|
// Normalize ONE notification (already confirmed to belong to this turn) into
|
|
888
990
|
// canonical AgentEvents. Pulled out so it can be applied to both live and
|
|
889
991
|
// buffered (replayed) notifications.
|
|
@@ -966,11 +1068,19 @@ export class CodexBackend {
|
|
|
966
1068
|
break;
|
|
967
1069
|
}
|
|
968
1070
|
case "error": {
|
|
969
|
-
//
|
|
970
|
-
//
|
|
971
|
-
//
|
|
972
|
-
//
|
|
1071
|
+
// App-server uses the same notification for transient provider failures
|
|
1072
|
+
// and terminal errors. `willRetry: true` means Codex is still owning the
|
|
1073
|
+
// turn and will continue it after reconnecting; completing our iterator
|
|
1074
|
+
// here would abort that recovery and make the panel report e.g.
|
|
1075
|
+
// "Reconnecting... 2/5" as the final failure. The notification already
|
|
1076
|
+
// bumped onActivity above, so keep waiting for either a later terminal
|
|
1077
|
+
// error or turn/completed.
|
|
973
1078
|
const e = (params.error ?? {});
|
|
1079
|
+
if (params.willRetry === true)
|
|
1080
|
+
break;
|
|
1081
|
+
// A non-retrying `error` ends the turn: emit it AND finish, so a turn that
|
|
1082
|
+
// errors out (no following turn/completed) doesn't hang (P0-2). Route it
|
|
1083
|
+
// through the idempotent helper to avoid racing another terminal path.
|
|
974
1084
|
emitTerminalError(e.message ?? "Codex error");
|
|
975
1085
|
break;
|
|
976
1086
|
}
|
|
@@ -1106,7 +1216,7 @@ export class CodexBackend {
|
|
|
1106
1216
|
if (interrupted) {
|
|
1107
1217
|
// Deliberate teardown (interrupt restored/closed the turn): still end
|
|
1108
1218
|
// with a result so the gate advances, but no user-facing error.
|
|
1109
|
-
|
|
1219
|
+
abortActiveTurn();
|
|
1110
1220
|
}
|
|
1111
1221
|
else {
|
|
1112
1222
|
emitTerminalError(msgOf(err));
|
|
@@ -1131,6 +1241,8 @@ export class CodexBackend {
|
|
|
1131
1241
|
// Mark interrupted so a late turn/start rejection / exit doesn't surface as
|
|
1132
1242
|
// a spurious error after we've already torn the turn down.
|
|
1133
1243
|
interrupted = true;
|
|
1244
|
+
if (this.abortActiveTurn === abortActiveTurn)
|
|
1245
|
+
this.abortActiveTurn = null;
|
|
1134
1246
|
// Restore the prior handler ONLY if it's still ours (close() may have nulled
|
|
1135
1247
|
// it during shutdown — don't resurrect a stale handler onto a dead client).
|
|
1136
1248
|
if (client.notificationHandler && !client.exitError)
|
|
@@ -1148,12 +1260,37 @@ export class CodexBackend {
|
|
|
1148
1260
|
const client = this.client;
|
|
1149
1261
|
if (!client || !this.threadId || !this.turnId)
|
|
1150
1262
|
return;
|
|
1263
|
+
let timer;
|
|
1264
|
+
let timedOut = false;
|
|
1151
1265
|
try {
|
|
1152
|
-
await
|
|
1266
|
+
await Promise.race([
|
|
1267
|
+
client.request("turn/interrupt", { threadId: this.threadId, turnId: this.turnId }),
|
|
1268
|
+
new Promise((_, reject) => {
|
|
1269
|
+
timer = setTimeout(() => {
|
|
1270
|
+
timedOut = true;
|
|
1271
|
+
reject(new Error(`turn/interrupt timed out after ${CODEX_INTERRUPT_TIMEOUT_MS}ms`));
|
|
1272
|
+
}, CODEX_INTERRUPT_TIMEOUT_MS);
|
|
1273
|
+
}),
|
|
1274
|
+
]);
|
|
1153
1275
|
}
|
|
1154
1276
|
catch (err) {
|
|
1277
|
+
if (timedOut) {
|
|
1278
|
+
logger.warn(`[codex-backend] interrupt timed out after ${CODEX_INTERRUPT_TIMEOUT_MS}ms -- recycling app-server`);
|
|
1279
|
+
if (this.client === client) {
|
|
1280
|
+
this.client = null;
|
|
1281
|
+
this.threadId = null;
|
|
1282
|
+
this.turnId = null;
|
|
1283
|
+
this.abortActiveTurn?.();
|
|
1284
|
+
}
|
|
1285
|
+
void this.beginClientClose(client, "interrupt recycle teardown failed");
|
|
1286
|
+
return;
|
|
1287
|
+
}
|
|
1155
1288
|
logger.debug(`[codex-backend] interrupt: ${msgOf(err)}`);
|
|
1156
1289
|
}
|
|
1290
|
+
finally {
|
|
1291
|
+
if (timer)
|
|
1292
|
+
clearTimeout(timer);
|
|
1293
|
+
}
|
|
1157
1294
|
}
|
|
1158
1295
|
/**
|
|
1159
1296
|
* Codex model enumeration — LIVE via the app-server's `model/list` (codex-cli
|
|
@@ -1242,18 +1379,23 @@ export class CodexBackend {
|
|
|
1242
1379
|
// published yet — without this, close() would return while that child is still
|
|
1243
1380
|
// coming up and orphan it (P0-A).
|
|
1244
1381
|
const preparing = this.preparingClient;
|
|
1382
|
+
const closing = [...this.closingClients.keys()];
|
|
1383
|
+
const abortActiveTurn = this.abortActiveTurn;
|
|
1245
1384
|
this.client = null;
|
|
1246
1385
|
this.preparingClient = null;
|
|
1247
1386
|
this.threadId = null;
|
|
1248
1387
|
this.turnId = null;
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1388
|
+
abortActiveTurn?.();
|
|
1389
|
+
if (this.abortActiveTurn === abortActiveTurn)
|
|
1390
|
+
this.abortActiveTurn = null;
|
|
1391
|
+
const clients = new Set();
|
|
1392
|
+
for (const candidate of [...closing, client, preparing]) {
|
|
1393
|
+
if (candidate)
|
|
1394
|
+
clients.add(candidate);
|
|
1256
1395
|
}
|
|
1396
|
+
for (const candidate of clients)
|
|
1397
|
+
candidate.notificationHandler = null;
|
|
1398
|
+
await Promise.all([...clients].map((candidate) => this.beginClientClose(candidate, "backend close teardown failed")));
|
|
1257
1399
|
// Sweep any temp image files a turn didn't get to clean up (e.g. close() raced
|
|
1258
1400
|
// an in-flight turn). Snapshot first — cleanupTempImages mutates the set.
|
|
1259
1401
|
if (this.tempImageFiles.size) {
|