@springbrand/cli 0.1.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 +167 -0
- package/dist/commands/auth.d.ts +4 -0
- package/dist/commands/auth.d.ts.map +1 -0
- package/dist/commands/auth.js +241 -0
- package/dist/commands/auth.js.map +1 -0
- package/dist/commands/check-version.d.ts +3 -0
- package/dist/commands/check-version.d.ts.map +1 -0
- package/dist/commands/check-version.js +112 -0
- package/dist/commands/check-version.js.map +1 -0
- package/dist/commands/config-claude.d.ts +4 -0
- package/dist/commands/config-claude.d.ts.map +1 -0
- package/dist/commands/config-claude.js +78 -0
- package/dist/commands/config-claude.js.map +1 -0
- package/dist/commands/connect.d.ts +41 -0
- package/dist/commands/connect.d.ts.map +1 -0
- package/dist/commands/connect.js +901 -0
- package/dist/commands/connect.js.map +1 -0
- package/dist/commands/doctor.d.ts +6 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +124 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/upgrade.d.ts +9 -0
- package/dist/commands/upgrade.d.ts.map +1 -0
- package/dist/commands/upgrade.js +133 -0
- package/dist/commands/upgrade.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/agent-detect.d.ts +33 -0
- package/dist/lib/agent-detect.d.ts.map +1 -0
- package/dist/lib/agent-detect.js +81 -0
- package/dist/lib/agent-detect.js.map +1 -0
- package/dist/lib/agent-launcher.d.ts +22 -0
- package/dist/lib/agent-launcher.d.ts.map +1 -0
- package/dist/lib/agent-launcher.js +67 -0
- package/dist/lib/agent-launcher.js.map +1 -0
- package/dist/lib/auth.d.ts +90 -0
- package/dist/lib/auth.d.ts.map +1 -0
- package/dist/lib/auth.js +327 -0
- package/dist/lib/auth.js.map +1 -0
- package/dist/lib/bundled-skill.d.ts +5 -0
- package/dist/lib/bundled-skill.d.ts.map +1 -0
- package/dist/lib/bundled-skill.js +13 -0
- package/dist/lib/bundled-skill.js.map +1 -0
- package/dist/lib/claude-config.d.ts +19 -0
- package/dist/lib/claude-config.d.ts.map +1 -0
- package/dist/lib/claude-config.js +202 -0
- package/dist/lib/claude-config.js.map +1 -0
- package/dist/lib/cli-install.d.ts +40 -0
- package/dist/lib/cli-install.d.ts.map +1 -0
- package/dist/lib/cli-install.js +42 -0
- package/dist/lib/cli-install.js.map +1 -0
- package/dist/lib/command-code-config.d.ts +5 -0
- package/dist/lib/command-code-config.d.ts.map +1 -0
- package/dist/lib/command-code-config.js +16 -0
- package/dist/lib/command-code-config.js.map +1 -0
- package/dist/lib/connect-all-auth.d.ts +21 -0
- package/dist/lib/connect-all-auth.d.ts.map +1 -0
- package/dist/lib/connect-all-auth.js +113 -0
- package/dist/lib/connect-all-auth.js.map +1 -0
- package/dist/lib/connect-all-summary.d.ts +10 -0
- package/dist/lib/connect-all-summary.d.ts.map +1 -0
- package/dist/lib/connect-all-summary.js +153 -0
- package/dist/lib/connect-all-summary.js.map +1 -0
- package/dist/lib/connect-all-uninstall.d.ts +7 -0
- package/dist/lib/connect-all-uninstall.d.ts.map +1 -0
- package/dist/lib/connect-all-uninstall.js +249 -0
- package/dist/lib/connect-all-uninstall.js.map +1 -0
- package/dist/lib/connect-all.d.ts +42 -0
- package/dist/lib/connect-all.d.ts.map +1 -0
- package/dist/lib/connect-all.js +438 -0
- package/dist/lib/connect-all.js.map +1 -0
- package/dist/lib/connect-auth.d.ts +7 -0
- package/dist/lib/connect-auth.d.ts.map +1 -0
- package/dist/lib/connect-auth.js +50 -0
- package/dist/lib/connect-auth.js.map +1 -0
- package/dist/lib/connect-clients.d.ts +108 -0
- package/dist/lib/connect-clients.d.ts.map +1 -0
- package/dist/lib/connect-clients.js +358 -0
- package/dist/lib/connect-clients.js.map +1 -0
- package/dist/lib/connect-fallback.d.ts +27 -0
- package/dist/lib/connect-fallback.d.ts.map +1 -0
- package/dist/lib/connect-fallback.js +166 -0
- package/dist/lib/connect-fallback.js.map +1 -0
- package/dist/lib/connect-picker.d.ts +19 -0
- package/dist/lib/connect-picker.d.ts.map +1 -0
- package/dist/lib/connect-picker.js +155 -0
- package/dist/lib/connect-picker.js.map +1 -0
- package/dist/lib/connect-preflight.d.ts +17 -0
- package/dist/lib/connect-preflight.d.ts.map +1 -0
- package/dist/lib/connect-preflight.js +81 -0
- package/dist/lib/connect-preflight.js.map +1 -0
- package/dist/lib/connect-runtime.d.ts +109 -0
- package/dist/lib/connect-runtime.d.ts.map +1 -0
- package/dist/lib/connect-runtime.js +360 -0
- package/dist/lib/connect-runtime.js.map +1 -0
- package/dist/lib/constants.d.ts +23 -0
- package/dist/lib/constants.d.ts.map +1 -0
- package/dist/lib/constants.js +87 -0
- package/dist/lib/constants.js.map +1 -0
- package/dist/lib/cursor-config.d.ts +16 -0
- package/dist/lib/cursor-config.d.ts.map +1 -0
- package/dist/lib/cursor-config.js +34 -0
- package/dist/lib/cursor-config.js.map +1 -0
- package/dist/lib/doctor-checks.d.ts +21 -0
- package/dist/lib/doctor-checks.d.ts.map +1 -0
- package/dist/lib/doctor-checks.js +312 -0
- package/dist/lib/doctor-checks.js.map +1 -0
- package/dist/lib/doctor-repairs.d.ts +11 -0
- package/dist/lib/doctor-repairs.d.ts.map +1 -0
- package/dist/lib/doctor-repairs.js +130 -0
- package/dist/lib/doctor-repairs.js.map +1 -0
- package/dist/lib/doctor-report.d.ts +195 -0
- package/dist/lib/doctor-report.d.ts.map +1 -0
- package/dist/lib/doctor-report.js +102 -0
- package/dist/lib/doctor-report.js.map +1 -0
- package/dist/lib/doctor-telemetry.d.ts +9 -0
- package/dist/lib/doctor-telemetry.d.ts.map +1 -0
- package/dist/lib/doctor-telemetry.js +63 -0
- package/dist/lib/doctor-telemetry.js.map +1 -0
- package/dist/lib/harness-detect.d.ts +33 -0
- package/dist/lib/harness-detect.d.ts.map +1 -0
- package/dist/lib/harness-detect.js +70 -0
- package/dist/lib/harness-detect.js.map +1 -0
- package/dist/lib/harness-spec.d.ts +285 -0
- package/dist/lib/harness-spec.d.ts.map +1 -0
- package/dist/lib/harness-spec.js +268 -0
- package/dist/lib/harness-spec.js.map +1 -0
- package/dist/lib/harness.d.ts +27 -0
- package/dist/lib/harness.d.ts.map +1 -0
- package/dist/lib/harness.js +125 -0
- package/dist/lib/harness.js.map +1 -0
- package/dist/lib/hermes-config.d.ts +22 -0
- package/dist/lib/hermes-config.d.ts.map +1 -0
- package/dist/lib/hermes-config.js +76 -0
- package/dist/lib/hermes-config.js.map +1 -0
- package/dist/lib/hermes-env.d.ts +19 -0
- package/dist/lib/hermes-env.d.ts.map +1 -0
- package/dist/lib/hermes-env.js +169 -0
- package/dist/lib/hermes-env.js.map +1 -0
- package/dist/lib/hermes-plugin.d.ts +40 -0
- package/dist/lib/hermes-plugin.d.ts.map +1 -0
- package/dist/lib/hermes-plugin.js +168 -0
- package/dist/lib/hermes-plugin.js.map +1 -0
- package/dist/lib/install-root.d.ts +18 -0
- package/dist/lib/install-root.d.ts.map +1 -0
- package/dist/lib/install-root.js +55 -0
- package/dist/lib/install-root.js.map +1 -0
- package/dist/lib/mcp-config.d.ts +36 -0
- package/dist/lib/mcp-config.d.ts.map +1 -0
- package/dist/lib/mcp-config.js +90 -0
- package/dist/lib/mcp-config.js.map +1 -0
- package/dist/lib/mcp-endpoint.d.ts +16 -0
- package/dist/lib/mcp-endpoint.d.ts.map +1 -0
- package/dist/lib/mcp-endpoint.js +41 -0
- package/dist/lib/mcp-endpoint.js.map +1 -0
- package/dist/lib/mcp-json-config.d.ts +43 -0
- package/dist/lib/mcp-json-config.d.ts.map +1 -0
- package/dist/lib/mcp-json-config.js +164 -0
- package/dist/lib/mcp-json-config.js.map +1 -0
- package/dist/lib/notice.d.ts +13 -0
- package/dist/lib/notice.d.ts.map +1 -0
- package/dist/lib/notice.js +73 -0
- package/dist/lib/notice.js.map +1 -0
- package/dist/lib/omp-config.d.ts +18 -0
- package/dist/lib/omp-config.d.ts.map +1 -0
- package/dist/lib/omp-config.js +73 -0
- package/dist/lib/omp-config.js.map +1 -0
- package/dist/lib/output.d.ts +22 -0
- package/dist/lib/output.d.ts.map +1 -0
- package/dist/lib/output.js +92 -0
- package/dist/lib/output.js.map +1 -0
- package/dist/lib/pi-config.d.ts +27 -0
- package/dist/lib/pi-config.d.ts.map +1 -0
- package/dist/lib/pi-config.js +113 -0
- package/dist/lib/pi-config.js.map +1 -0
- package/dist/lib/registration-detect.d.ts +28 -0
- package/dist/lib/registration-detect.d.ts.map +1 -0
- package/dist/lib/registration-detect.js +563 -0
- package/dist/lib/registration-detect.js.map +1 -0
- package/dist/lib/setup-telemetry.d.ts +273 -0
- package/dist/lib/setup-telemetry.d.ts.map +1 -0
- package/dist/lib/setup-telemetry.js +309 -0
- package/dist/lib/setup-telemetry.js.map +1 -0
- package/dist/lib/signals.d.ts +14 -0
- package/dist/lib/signals.d.ts.map +1 -0
- package/dist/lib/signals.js +29 -0
- package/dist/lib/signals.js.map +1 -0
- package/dist/lib/skill-install.d.ts +10 -0
- package/dist/lib/skill-install.d.ts.map +1 -0
- package/dist/lib/skill-install.js +94 -0
- package/dist/lib/skill-install.js.map +1 -0
- package/dist/lib/skill-paths.d.ts +7 -0
- package/dist/lib/skill-paths.d.ts.map +1 -0
- package/dist/lib/skill-paths.js +37 -0
- package/dist/lib/skill-paths.js.map +1 -0
- package/dist/lib/skill-vendor.d.ts +20 -0
- package/dist/lib/skill-vendor.d.ts.map +1 -0
- package/dist/lib/skill-vendor.js +215 -0
- package/dist/lib/skill-vendor.js.map +1 -0
- package/dist/lib/skill.d.ts +14 -0
- package/dist/lib/skill.d.ts.map +1 -0
- package/dist/lib/skill.js +87 -0
- package/dist/lib/skill.js.map +1 -0
- package/dist/lib/verify.d.ts +35 -0
- package/dist/lib/verify.d.ts.map +1 -0
- package/dist/lib/verify.js +169 -0
- package/dist/lib/verify.js.map +1 -0
- package/dist/program.d.ts +8 -0
- package/dist/program.d.ts.map +1 -0
- package/dist/program.js +54 -0
- package/dist/program.js.map +1 -0
- package/package.json +55 -0
- package/skill/springbrand-action-api/SKILL.md +49 -0
- package/skill/springbrand-action-api/references/action-aliases.md +156 -0
- package/skill/springbrand-action-api/references/action-discovery.md +95 -0
- package/skill/springbrand-connector/SKILL.md +49 -0
- package/skill/springbrand-gtm/SKILL.md +34 -0
- package/skill/springbrand-platform/SKILL.md +55 -0
- package/skill/springbrand-platform/references/plugin-discovery.md +94 -0
- package/skill/use-springbrand/SKILL.md +70 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../../src/commands/connect.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAO5D,OAAO,KAAK,MAAM,aAAa,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,eAAe,GAAG,MAAM,gBAAgB,CAAC;AACrI,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,eAAe,GAAyB,MAAM,2BAA2B,CAAC;AAC5P,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,EAAE,wBAAwB,EAAE,eAAe,GAAG,MAAM,uBAAuB,CAAC;AAChJ,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,UAAU,EAAE,MAAM,EAAE,kBAAkB,EAAE,cAAc,EAAE,eAAe,EAAE,iBAAiB,EAAE,YAAY,GAAG,MAAM,2BAA2B,CAAC;AACjS,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,0BAA0B,EAAE,oBAAoB,GAAG,MAAM,yBAAyB,CAAC;AAClI,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9F,OAAO,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,SAAS,EAAE,sBAAsB,EAAE,gBAAgB,GAAG,MAAM,qBAAqB,CAAC;AAC9J,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,qBAAqB,EAAE,aAAa,GAAG,MAAM,0BAA0B,CAAC;AAC1G,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAM5E,SAAS,0BAA0B,CAAC,MAAuB,EAAE,OAA4C,EAAE,OAAgB;IACvH,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QACnB,OAAO;IACX,oFAAoF;IACpF,IAAI,CAAC,OAAO;QACR,OAAO;IACX,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,MAAM,CAAC,KAAK,EAAE,OAAO,IAAI,eAAe,CAAC;IAClF,QAAQ,CAAC,6BAA6B,OAAO,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC,CAAC;AACvE,CAAC;AACD,2FAA2F;AAC3F,SAAS,YAAY,CAAC,MAAc,EAAE,WAAmB,EAAE,UAAmC;IAC1F,IAAI,CAAC;QACD,0BAA0B,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,yCAAyC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK;YACxG,qBAAqB,CAAC,CAAC;QAC3B,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,GAAG,MAAM,CAAC;IAC9C,IAAI,UAAU,EAAE,CAAC;QACb,UAAU,CAAC,0FAA0F;YACjG,uBAAuB,CAAC,CAAC;IACjC,CAAC;SACI,CAAC;QACF,OAAO,CAAC,wDAAwD,WAAW,6BAA6B;YACpG,oDAAoD,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AACD,+DAA+D;AAC/D,SAAS,eAAe,CAAC,MAAuB,EAAE,SAA6B,EAAE,gBAAyB,EAAE,UAAmC;IAC3I,IAAI,CAAC,SAAS,IAAI,CAAC,gBAAgB,IAAI,CAAC,MAAM,CAAC,OAAO;QAClD,OAAO,SAAS,CAAC;IACrB,MAAM,KAAK,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;IACvD,6EAA6E;IAC7E,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC,EAAE,CAAC;QAChF,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AACD,sDAAsD;AACtD,SAAS,oBAAoB,CAAC,MAAuB,EAAE,gBAAyB,EAAE,QAAQ,GAAG,KAAK;IAC9F,MAAM,QAAQ,GAAG,QAAQ;QACrB,CAAC,CAAC,6BAA6B;QAC/B,CAAC,CAAC,mCAAmC,MAAM,CAAC,WAAW,gBAAgB,CAAC;IAC5E,MAAM,KAAK,GAAG,sBAAsB,MAAM,CAAC,aAAa,EAAE,CAAC;IAC3D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAClB,MAAM,IAAI,gBAAgB,CAAC,GAAG,MAAM,CAAC,WAAW,2CAA2C,QAAQ,IAAI;YACnG,mBAAmB,MAAM,CAAC,aAAa,EAAE,EAAE,sBAAsB,CAAC,CAAC;IAC3E,CAAC;IACD,IAAI,CAAC,gBAAgB,IAAI,QAAQ,EAAE,CAAC;QAChC,MAAM,IAAI,gBAAgB,CAAC,QAAQ,MAAM,CAAC,WAAW,mDAAmD,QAAQ,IAAI;YAChH,mBAAmB,KAAK,EAAE,EAAE,iBAAiB,CAAC,CAAC;IACvD,CAAC;IACD,MAAM,IAAI,gBAAgB,CAAC,cAAc,MAAM,CAAC,WAAW,qCAAqC,QAAQ,IAAI;QACxG,4BAA4B,KAAK,EAAE,EAAE,gBAAgB,EAAE,EAAE,aAAa,EAAE,yBAAyB,EAAE,CAAC,CAAC;AAC7G,CAAC;AACD,0EAA0E;AAC1E,SAAS,cAAc,CAAC,MAAuB,EAAE,gBAAyB;IACtE,IAAI,CAAC,MAAM,CAAC,OAAO;QACf,oBAAoB,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACnD,OAAO,MAAM,CAAC,OAAO,CAAC;AAC1B,CAAC;AACD,4DAA4D;AAC5D,KAAK,UAAU,sBAAsB,CAAC,MAAc,EAAE,WAAmB,EAAE,MAAc;IACrF,iFAAiF;IACjF,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;IACxE,IAAI,QAAQ,CAAC,EAAE;QACX,OAAO;IACX,+FAA+F;IAC/F,IAAI,QAAQ,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;QAC1C,MAAM,IAAI,gBAAgB,CAAC,sDAAsD,QAAQ,CAAC,IAAI,IAAI,SAAS,QAAQ;YAC/G,0BAA0B,WAAW,oCAAoC,EAAE,SAAS,CAAC,CAAC;IAC9F,CAAC;IACD,sEAAsE;IACtE,MAAM,IAAI,gBAAgB,CAAC,0CAA0C,QAAQ,CAAC,IAAI,IAAI,SAAS,mBAAmB;QAC9G,cAAc,WAAW,sBAAsB,EAAE,gBAAgB,EAAE,EAAE,aAAa,EAAE,uBAAuB,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACxI,CAAC;AACD,kEAAkE;AAClE,SAAS,eAAe,CAAC,OAAe,EAAE,MAAuB,EAAE,OAAgB;IAC/E,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC9C,OAAO,OAAO,IAAI,KAAK,CAAC,aAAa,KAAK,SAAS;QAC/C,CAAC,CAAC,IAAI,kBAAkB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC;QACpD,CAAC,CAAC,KAAK,CAAC;AAChB,CAAC;AACD,SAAS,gBAAgB,CAAC,KAAc;IACpC,OAAO,KAAK,YAAY,gBAAgB,IAAI,KAAK,CAAC,aAAa,KAAK,uBAAuB,CAAC;AAChG,CAAC;AACD,sEAAsE;AACtE,KAAK,UAAU,sBAAsB,CAAC,MAA0C,EAAE,aAA0B,EAAE,KAAsB,EAAE,SAA2B,EAAE,OAA6B;IAC5L,IAAI,CAAC;QACD,OAAO,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,KAAK,EAAE,CAAC;QACX,IAAI,CAAC,OAAO,CAAC,mBAAmB,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;YACxD,MAAM,KAAK,CAAC;QAChB,MAAM,yBAAyB,CAAC,MAAM,CAAC,WAAW,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAC9F,OAAO,SAAS,CAAC;IACrB,CAAC;AACL,CAAC;AACD,iFAAiF;AACjF,KAAK,UAAU,yBAAyB,CAAC,WAAmB,EAAE,aAA0B,EAAE,KAAsB,EAAE,SAA2B,EAAE,OAA6B;IACxK,oEAAoE;IACpE,SAAS,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,WAAW,iEAAiE,CAAC,CAAC;IACzF,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC;QACjC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,KAAK;QACjC,MAAM,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,SAAS;QAChE,YAAY,EAAE,gCAAgC,aAAa,EAAE;QAC7D,KAAK,EAAE;YACH,qEAAqE;YACrE,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE;gBACnB,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;YACxB,CAAC;YACD,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,CAAC;SAClE;KACJ,CAAC,CAAC;IACH,SAAS,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACtC,2EAA2E;IAC3E,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE;QAC/B,WAAW,EAAE,oBAAoB;QACjC,aAAa,EAAE,uBAAuB;KACzC,CAAC,CAAC;IACH,IAAI,OAAO,KAAK,cAAc,EAAE,CAAC;QAC7B,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACX,CAAC;IACD,OAAO,CAAC,+CAA+C,CAAC,CAAC;IACzD,OAAO,CAAC,gDAAgD,CAAC,CAAC;AAC9D,CAAC;AACD,0EAA0E;AAC1E,KAAK,UAAU,kBAAkB,CAAC,MAAuB,EAAE,OAA6B,EAAE,gBAAyB;IAC/G,qGAAqG;IACrG,MAAM,SAAS,GAAG,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAC1F,gEAAgE;IAChE,MAAM,YAAY,GAAG,QAAQ;QACzB,CAAC,CAAC,CAAC,MAAc,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC;QACjE,CAAC,CAAC,cAAc,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC/C,IAAI,OAAO,CAAC,WAAW,IAAI,CAAC,QAAQ;QAChC,oBAAoB,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,CAAC,CAAC;IACzD,kEAAkE;IAClE,IAAI,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;QACzB,MAAM,sBAAsB,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACnF,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;AACtC,CAAC;AACD,sFAAsF;AACtF,SAAS,eAAe,CAAC,OAA6B,EAAE,cAAuB,EAAE,MAAoE;IACjJ,IAAI,cAAc;QACd,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC;IAChE,IAAI,CAAC,MAAM;QACP,OAAO,YAAY,CAAC,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC;IAClD,OAAO;QACH,QAAQ,EAAE,MAAM;QAChB,iEAAiE;QACjE,SAAS,EAAE,eAAe;QAC1B,+EAA+E;QAC/E,OAAO,EAAE,OAAO,CAAC,aAAa,IAAI,wBAAwB;QAC1D,KAAK,EAAE,MAAM,CAAC,UAAU;QACxB,GAAG,EAAE,MAAM,CAAC,GAAG;KAClB,CAAC;AACN,CAAC;AACD,wFAAwF;AACxF,SAAS,aAAa,CAAC,MAAuB,EAAE,OAA6B,EAAE,IAAqB,EAAE,SAAiB;IACnH,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;IACxC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IAClD,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;IACxD,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAAC;IACzD,OAAO,CAAC,yBAAyB,MAAM,CAAC,WAAW,KAAK,CAAC,CAAC;IAC1D,qFAAqF;IACrF,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAChD,iEAAiE;IACjE,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC,iBAAiB,IAAI,QAAQ,CAAC,CAAC;IAC/D,+DAA+D;IAC/D,MAAM,MAAM,GAAG,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACtD,8EAA8E;IAC9E,IAAI,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;QACtC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;IAC1D,CAAC;IACD,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,eAAe,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;IACxG,wDAAwD;IACxD,MAAM,OAAO,GAAG,CAAC,KAAkB,EAAE,EAAE;QACnC,MAAM,EAAE,QAAQ,EAAE,CAAC;QACnB,MAAM,KAAK,GAAG,KAAK,EAAE,CAAC;QACtB,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC;QAClC,MAAM,KAAK,CAAC;IAChB,CAAC,CAAC;IACF,IAAI,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5C,OAAO,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,gCAAgC,MAAM,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,cAAc,IAAI,OAAO,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC;IAC3J,CAAC;IACD,MAAM,YAAY,GAAG,MAAM,EAAE,iBAAiB,EAAE,CAAC;IACjD,IAAI,YAAY,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;QACnC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,gBAAgB,CAAC,GAAG,MAAM,CAAC,WAAW,wDAAwD;YAC5G,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,gBAAgB;QACjF,yDAAyD;QACzD,EAAE,aAAa,EAAE,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAC5D,CAAC;AACD,SAAS,gBAAgB,CAAC,MAAuB,EAAE,YAAsB,EAAE,OAA6B;IACpG,OAAO,CAAC,8BAA8B,CAAC,CAAC;IACxC,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,GAAG,YAAY,CAAC,EAAE;QAC9D,KAAK,EAAE,SAAS;QAChB,OAAO,EAAE,OAAO,CAAC,aAAa;KACjC,CAAC,CAAC;IACH,IAAI,WAAW,CAAC,KAAK,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChD,MAAM,eAAe,CAAC,yCAAyC,MAAM,CAAC,WAAW,EAAE,EAAE,WAAW,EAAE,OAAO,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC;IAC3I,CAAC;AACL,CAAC;AACD,SAAS,iBAAiB,CAAC,UAAmB,EAAE,aAAmD,EAAE,UAA8B;IAC/H,IAAI,UAAU,EAAE,CAAC;QACb,OAAO,CAAC,aAAa,EAAE,KAAK,IAAI,oEAAoE,CAAC,CAAC;QACtG,4EAA4E;QAC5E,IAAI,UAAU;YACV,OAAO,CAAC,UAAU,CAAC,CAAC;IAC5B,CAAC;SACI,IAAI,aAAa,EAAE,CAAC;QACrB,4FAA4F;QAC5F,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;AACL,CAAC;AACD,SAAS,gBAAgB,CAAC,MAAuB,EAAE,OAA6B,EAAE,KAAsB,EAAE,SAAoD,EAAE,GAM/J;IACG,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,kBAAkB,EAAE,GAAG,GAAG,CAAC;IACzE,0FAA0F;IAC1F,kFAAkF;IAClF,MAAM,WAAW,GAAG,kBAAkB,EAAE,EAAE,CAAC;IAC3C,IAAI,WAAW;QACX,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;IAC3D,iBAAiB,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;IACpG,6FAA6F;IAC7F,MAAM,UAAU,GAAG,kBAAkB,CAAC,CAAC,CAAC,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IACrE,MAAM,YAAY,GAAG,CAAC,UAAU,IAAI,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IACvE,IAAI,cAAc,GAAG,CAAC,UAAU,IAAI,CAAC,WAAW,IAAI,CAAC,YAAY,CAAC;IAClE,IAAI,YAAY,EAAE,CAAC;QACf,KAAK,CAAC,KAAK,GAAG,cAAc,CAAC;QAC7B,gBAAgB,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;QAChD,IAAI,kBAAkB,EAAE,EAAE,KAAK,KAAK;YAChC,cAAc,GAAG,IAAI,CAAC;;YAEtB,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,MAAM,QAAQ,GAAG,UAAU;QACvB,CAAC,CAAC,QAAQ,CAAC,MAAM;QACjB,CAAC,CAAC,cAAc;YACZ,CAAC,CAAC,UAAU;YACZ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;IACzB,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC;AACxC,CAAC;AACD,KAAK,UAAU,sBAAsB,CAAC,MAAuB,EAAE,OAA6B;IACxF,MAAM,SAAS,GAAG,sBAAsB,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IACxF,MAAM,KAAK,GAAoB,EAAE,KAAK,EAAE,oBAAoB,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC/E,MAAM,kBAAkB,GAAG,cAAc,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAChE,MAAM,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,IAAI,EAAE;QAC1C,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC3B,MAAM,OAAO,GAAG,MAAM,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QACtG,IAAI,CAAC,OAAO;YACR,OAAO;QACX,MAAM,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;QACxE,SAAS,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;QAC5C,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,iBAAiB,CAAC;QACjE,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC;QACzE,MAAM,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;QACnC,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAC;QAC5D,KAAK,CAAC,KAAK,GAAG,sBAAsB,CAAC;QACrC,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ;YACjC,0BAA0B,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC;QAC1E,kFAAkF;QAClF,MAAM,aAAa,GAAG,KAAK,CAAC,eAAe,KAAK,IAAI,CAAC;QACrD,MAAM,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC;QAC/D,oFAAoF;QACpF,KAAK,CAAC,KAAK;YACP,SAAS,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,gCAAgC,CAAC;QACzF,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QACnG,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;QACvD,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE;YACrF,UAAU;YACV,aAAa;YACb,SAAS;YACT,kBAAkB;YAClB,UAAU;SACb,CAAC,CAAC;QACH,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC1B,4FAA4F;QAC5F,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QACpD,MAAM,mBAAmB,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC;IAC7F,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC,QAAQ,CAAC;AAC1B,CAAC;AACD,SAAS,aAAa,CAAC,MAAuB,EAAE,cAAuB;IACnE,oEAAoE;IACpE,IAAI,cAAc,EAAE,CAAC;QACjB,IAAI,MAAM,CAAC,UAAU;YACjB,OAAO,MAAM,CAAC,UAAU,CAAC;QAC7B,OAAO,CAAC,gCAAgC,MAAM,CAAC,WAAW,KAAK,MAAM,CAAC,WAAW,gBAAgB;YAC7F,sDAAsD,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,CAAC,kCAAkC,MAAM,CAAC,WAAW,8BAA8B;QACtF,GAAG,aAAa,CAAC,MAAM,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC;AACxE,CAAC;AACD,wEAAwE;AACxE,KAAK,UAAU,mBAAmB,CAAC,MAAuB,EAAE,OAA6B,EAAE,KAAsB,EAAE,SAA2B,EAAE,cAAuB,EAAE,UAA8B;IACnM,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,mFAAmF;IACnF,MAAM,OAAO,GAAG,KAAK,EAAE,KAA+B,EAAE,GAA+B,EAAE,EAAE;QACvF,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC;YACD,MAAM,GAAG,EAAE,CAAC;QAChB,CAAC;QACD,OAAO,KAAK,EAAE,CAAC;YACX,IAAI,KAAK,YAAY,uBAAuB;gBACxC,MAAM,KAAK,CAAC;YAChB,MAAM,GAAG,IAAI,CAAC;YACd,uBAAuB,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QACzE,CAAC;IACL,CAAC,CAAC;IACF,IAAI,CAAC;QACD,IAAI,OAAO,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;YAC/B,MAAM,OAAO,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;QAC9E,CAAC;QACD,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,OAAO,CAAC,eAAe,EAAE,GAAG,EAAE;gBAChC,eAAe,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,KAAK,EAAE,CAAC,CAAC;gBAC/D,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAC;YAChE,CAAC,CAAC,CAAC;QACP,CAAC;QACD,MAAM,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;QACjD,IAAI,gBAAgB,EAAE,CAAC;YACnB,MAAM,OAAO,CAAC,gBAAgB,EAAE,GAAG,EAAE;gBACjC,gBAAgB,CAAC;oBACb,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC;oBACvC,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,KAAK;oBACjC,UAAU;iBACb,CAAC,CAAC;gBACH,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE;oBAC1B,KAAK,EAAE,kBAAkB;oBACzB,aAAa,EAAE,MAAM,CAAC,aAAa;iBACtC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC;QACD,kEAAkE;QAClE,kBAAkB,CAAC,MAAM,CAAC,aAAa,EAAE,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC9E,MAAM,OAAO,CAAC,gBAAgB,EAAE,GAAG,EAAE;YACjC,kEAAkE;YAClE,sBAAsB,CAAC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,EAAE;gBACzD,gBAAgB,EAAE,OAAO,CAAC,aAAa,KAAK,SAAS;aACxD,CAAC,CAAC;YACH,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,eAAe;YACtB,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QACpC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAClB,oEAAoE;YACpE,IAAI,cAAc,IAAI,CAAC,OAAO,CAAC,UAAU;gBACrC,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;QACvD,CAAC;aACI,CAAC;YACF,MAAM,OAAO,CAAC,oBAAoB,EAAE,KAAK,IAAI,EAAE;gBAC3C,qFAAqF;gBACrF,IAAI,cAAc,IAAI,MAAM,CAAC,UAAU;oBACnC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBAC/B,MAAM,qBAAqB,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;oBAClD,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;oBACpE,0EAA0E;oBAC1E,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC;gBAC5B,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IACD,OAAO,KAAK,EAAE,CAAC;QACX,gEAAgE;QAChE,IAAI,CAAC,CAAC,KAAK,YAAY,uBAAuB,CAAC;YAC3C,MAAM,KAAK,CAAC;QAChB,MAAM,GAAG,IAAI,CAAC;IAClB,CAAC;IACD,IAAI,MAAM,EAAE,CAAC;QACT,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;QAC/C,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC;IACpC,CAAC;AACL,CAAC;AACD,wEAAwE;AACxE,SAAS,qBAAqB,CAAC,IAA2B,EAAE,SAA2B;IACnF,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,CAAC;IACtC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;QACd,4DAA4D;QAC5D,IAAI,CAAC,SAAS;YACV,MAAM,IAAI,2BAA2B,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACjE,MAAM,iBAAiB,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAC/D,CAAC;IACD,IAAI,SAAS,EAAE,CAAC;QACZ,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE;YAC1B,KAAK,EAAE,eAAe;YACtB,eAAe,EAAE,OAAO,CAAC,UAAU;SACtC,CAAC,CAAC;IACP,CAAC;AACL,CAAC;AACD,0EAA0E;AAC1E,SAAS,iBAAiB,CAAC,OAA6B,EAAE,SAA2B;IACjF,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAC5B,qBAAqB,CAAC,OAAO,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;QAC5D,OAAO;IACX,CAAC;IACD,qBAAqB,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7E,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC;AAC9D,CAAC;AACD,SAAS,gBAAgB,CAAC,OAA2B;IACjD,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,sBAAsB,CAAC;AACzF,CAAC;AACD,SAAS,eAAe,CAAC,aAA0B;IAC/C,OAAO,sBAAsB,kBAAkB,CAAC,aAAa,CAAC,EAAE,CAAC;AACrE,CAAC;AACD,kFAAkF;AAClF,SAAS,uBAAuB,CAAC,WAAmB,EAAE,KAAsB,EAAE,SAA2B,EAAE,KAAc;IACrH,IAAI,KAAK,YAAY,uBAAuB;QACxC,OAAO;IACX,uEAAuE;IACvE,IAAI,CAAC,CAAC,KAAK,YAAY,2BAA2B,CAAC,EAAE,CAAC;QAClD,SAAS,CAAC,KAAK,CAAC,qBAAqB,EAAE;YACnC,WAAW,EAAE,KAAK,CAAC,KAAK;YACxB,aAAa,EAAE,KAAK,YAAY,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,kBAAkB;YAC3F,aAAa,EAAE,KAAK,YAAY,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;YACrG,eAAe,EAAE,eAAe,CAAC,KAAK,CAAC;SAC1C,CAAC,CAAC;IACP,CAAC;IACD,OAAO,CAAC,OAAO,WAAW,kDAAkD;QACxE,IAAI,KAAK,CAAC,KAAK,aAAa,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAC9F,CAAC;AACD,6EAA6E;AAC7E,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAA0E;IAC5G,MAAM,SAAS,GAAG,sBAAsB,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IAC9E,+FAA+F;IAC/F,MAAM,KAAK,GAAoB;QAC3B,KAAK,EAAE,oBAAoB;QAC3B,OAAO,EAAE,KAAK;QACd,eAAe,EAAE,KAAK;KACzB,CAAC;IACF,MAAM,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,IAAI,EAAE;QAC1C,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC3B,MAAM,OAAO,GAAG,MAAM,sBAAsB,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAC9F,IAAI,CAAC,OAAO;YACR,OAAO;QACX,SAAS,CAAC,iBAAiB,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QACpD,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAC;QAC5D,IAAI,OAAO,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;YAC/B,KAAK,CAAC,KAAK,GAAG,aAAa,CAAC;YAC5B,iBAAiB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAC1C,CAAC;QACD,KAAK,CAAC,KAAK,GAAG,eAAe,CAAC;QAC9B,OAAO,CAAC,iDAAiD,CAAC,CAAC;QAC3D,MAAM,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,wBAAwB,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC;QAC5I,IAAI,kBAAkB,CAAC,KAAK,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9D,+DAA+D;YAC/D,MAAM,KAAK,GAAG,cAAc,CAAC,qDAAqD,EAAE,kBAAkB,CAAC,CAAC;YACxG,MAAM,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC,CAAC;YAC3C,MAAM,KAAK,CAAC;QAChB,CAAC;QACD,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAC;QAC5D,2FAA2F;QAC3F,KAAK,CAAC,KAAK,GAAG,gBAAgB,CAAC;QAC/B,kEAAkE;QAClE,sBAAsB,CAAC,UAAU,EAAE,OAAO,CAAC,MAAM,EAAE;YAC/C,gBAAgB,EAAE,OAAO,CAAC,aAAa,KAAK,SAAS;SACxD,CAAC,CAAC;QACH,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC;QAC1D,kBAAkB,CAAC,UAAU,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QACpD,4FAA4F;QAC5F,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QACtC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAClB,kDAAkD;YAClD,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;gBACtB,OAAO,CAAC,qEAAqE;oBACzE,GAAG,aAAa,CAAC,QAAQ,wBAAwB,CAAC,CAAC;YAC3D,CAAC;YACD,OAAO;QACX,CAAC;QACD,KAAK,CAAC,KAAK,GAAG,oBAAoB,CAAC;QACnC,IAAI,CAAC;YACD,MAAM,yBAAyB,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;gBAC9C,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACpE,0EAA0E;gBAC1E,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC;YAC5B,CAAC,CAAC,CAAC;QACP,CAAC;QACD,OAAO,KAAK,EAAE,CAAC;YACX,uBAAuB,CAAC,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;YAC7D,OAAO,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC;QACzC,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC;AACD,MAAM,cAAc,GAAG,qGAAqG;IACxH,aAAa,CAAC;AAClB,oFAAoF;AACpF,MAAM,uBAAuB,GAAG,6FAA6F;IACzH,SAAS,0BAA0B,6CAA6C,CAAC;AACrF,8EAA8E;AAC9E,MAAM,oBAAoB,GAAG,+FAA+F;IACxH,iBAAiB,CAAC;AACtB,SAAS,aAAa;IAClB,MAAM,KAAK,GAAG,iBAAiB,EAAE,CAAC;IAClC,IAAI,KAAK,KAAK,WAAW;QACrB,OAAO,oBAAoB,CAAC;IAChC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,SAAS,CAAC;AACpE,CAAC;AACD,6EAA6E;AAC7E,SAAS,kBAAkB;IACvB,MAAM,KAAK,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAC;IACpC,IAAI,MAAM,EAAE,CAAC;QACT,KAAK,CAAC,IAAI,CAAC,0CAA0C,MAAM,CAAC,QAAQ,8BAA8B;YAC9F,gBAAgB,MAAM,CAAC,WAAW,gDAAgD,CAAC,CAAC;IAC5F,CAAC;IACD,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACxC,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACnE,CAAC;AACD,yEAAyE;AACzE,MAAM,gBAAgB,GAAG,8FAA8F;IACnH,kCAAkC,CAAC;AAyBvC,MAAM,qBAAqB,GAA2D;IAClF,MAAM,EAAE;QACJ,WAAW,EAAE,mBAAmB;QAChC,aAAa,EAAE,GAAG,EAAE,CAAC,0BAA0B,EAAE,CAAC,GAAG;QACrD,KAAK,EAAE,oBAAoB;QAC3B,UAAU,EAAE,aAAa;QACzB,SAAS,EAAE,oBAAoB;QAC/B,IAAI,EAAE;YACF,QAAQ,EAAE,wHAAwH;YAClI,UAAU,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,kEAAkE,MAAM,KAAK;gBACzG,oFAAoF;YACxF,QAAQ,EAAE,gGAAgG;YAC1G,MAAM,EAAE,gGAAgG;SAC3G;KACJ;IACD,GAAG,EAAE;QACD,gEAAgE;QAChE,WAAW,EAAE,EAAE,WAAW,EAAE,qBAAqB,CAAC,GAAG,EAAE;QACvD,aAAa,EAAE,GAAG,EAAE,CAAC,uBAAuB,EAAE,EAAE,GAAG;QACnD,KAAK,EAAE,iBAAiB;QACxB,UAAU,EAAE,UAAU;QACtB,oEAAoE;QACpE,SAAS,EAAE,GAAG,EAAE,CAAC,KAAK;QACtB,IAAI,EAAE;YACF,QAAQ,EAAE,iFAAiF;YAC3F,UAAU,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,kEAAkE,MAAM,KAAK;gBACzG,iFAAiF;YACrF,QAAQ,EAAE,gBAAgB;YAC1B,MAAM,EAAE,gBAAgB;SAC3B;KACJ;IACD,EAAE,EAAE;QACA,WAAW,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,qBAAqB,CAAC,EAAE,EAAE;QACxE,aAAa,EAAE,GAAG,EAAE,CAAC,sBAAsB,EAAE,CAAC,GAAG;QACjD,KAAK,EAAE,gBAAgB;QACvB,UAAU,EAAE,SAAS;QACrB,oEAAoE;QACpE,SAAS,EAAE,GAAG,EAAE,CAAC,KAAK;QACtB,eAAe,EAAE,kBAAkB;QACnC,IAAI,EAAE;YACF,QAAQ,EAAE,gFAAgF;YAC1F,UAAU,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,kEAAkE,MAAM,KAAK;gBACzG,gFAAgF;YACpF,QAAQ,EAAE,cAAc;YACxB,MAAM,EAAE,cAAc;SACzB;KACJ;CACJ,CAAC;AACF,8EAA8E;AAC9E,SAAS,sBAAsB,CAAC,IAA2B,EAAE,WAAmB,EAAE,KAAsB,EAAE,SAA2B,EAAE,OAA8C;IACjL,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU;QAC5B,OAAO,KAAK,CAAC;IACjB,KAAK,CAAC,KAAK,GAAG,eAAe,CAAC;IAC9B,IAAI,CAAC;QACD,eAAe,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,KAAK,EAAE,CAAC,CAAC;QACzE,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAC;QAC5D,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,OAAO,KAAK,EAAE,CAAC;QACX,uBAAuB,CAAC,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC;IAChB,CAAC;AACL,CAAC;AACD,sDAAsD;AACtD,SAAS,wBAAwB,CAAC,OAAoB,EAAE,MAAe,EAAE,mBAAgC;IACrG,IAAI,CAAC,MAAM;QACP,OAAO;IACX,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;IAClC,mBAAmB,EAAE,EAAE,CAAC;AAC5B,CAAC;AACD,wEAAwE;AACxE,KAAK,UAAU,wBAAwB,CAAC,OAA2C,EAAE,OAAiC;IAClH,MAAM,IAAI,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,WAAW,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;IACnD,IAAI,iBAAiB,CAAC;IACtB,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;IAC3C,IAAI,aAAa,EAAE,CAAC;QAChB,IAAI,CAAC;YACD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC;YAC1C,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC1C,MAAM,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YACvE,MAAM,gBAAgB,GAAG,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC/D,MAAM,gBAAgB,GAAG,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC/D,KAAK,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,oBAAoB,CAAC,EAAE,CAAC;gBAC3D,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACpC,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACvC,CAAC;YACD,UAAU,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;YAC/B,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;YAC9B,IAAI,UAAU,CAAC,QAAQ,EAAE,KAAK,SAAS,CAAC,QAAQ,EAAE;gBAC9C,gBAAgB,KAAK,cAAc;gBACnC,gBAAgB,KAAK,OAAO;gBAC5B,CAAC,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC;gBAC3C,iBAAiB,GAAG,YAAY,IAAI,SAAS,CAAC;YAClD,CAAC;QACL,CAAC;QACD,MAAM,CAAC;YACH,uEAAuE;QAC3E,CAAC;IACL,CAAC;IACD,MAAM,SAAS,GAAG,sBAAsB,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE;QAC9D,GAAG,OAAO;QACV,iBAAiB;KACpB,CAAC,CAAC;IACH,sFAAsF;IACtF,wCAAwC;IACxC,MAAM,KAAK,GAAoB;QAC3B,KAAK,EAAE,oBAAoB;QAC3B,OAAO,EAAE,KAAK;QACd,eAAe,EAAE,KAAK;KACzB,CAAC;IACF,MAAM,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,IAAI,EAAE;QAC1C,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC3B,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAC;QAC5D,mGAAmG;QACnG,KAAK,CAAC,KAAK,GAAG,gBAAgB,CAAC;QAC/B,kEAAkE;QAClE,sBAAsB,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE;YAC5C,gBAAgB,EAAE,OAAO,CAAC,aAAa,KAAK,SAAS;SACxD,CAAC,CAAC;QACH,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC;QAC1D,MAAM,WAAW,GAAG,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACpD,4FAA4F;QAC5F,IAAI,CAAC,WAAW,EAAE,CAAC;YACf,OAAO,CAAC,iEAAiE,CAAC,CAAC;QAC/E,CAAC;QACD,KAAK,CAAC,KAAK,GAAG,cAAc,CAAC;QAC7B,OAAO,CAAC,yBAAyB,WAAW,KAAK,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACvC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;QAClD,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC3C,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,oBAAoB,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QACnE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,WAAW,CAAC,CAAC;QAC1D,IAAI,MAAM,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;YACnC,gEAAgE;YAChE,MAAM,IAAI,gBAAgB,CAAC,oBAAoB,IAAI,CAAC,UAAU,EAAE,2DAA2D,MAAM,CAAC,KAAK,KAAK;gBACxI,yCAAyC,OAAO,EAAE,EAAE,gBAAgB,EAAE,EAAE,aAAa,EAAE,GAAG,OAAO,mBAAmB,EAAE,CAAC,CAAC;QAChI,CAAC;QACD,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACpB,OAAO,CAAC,sBAAsB,WAAW,kBAAkB,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;QACpF,CAAC;QACD,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YAClB,OAAO,CAAC,2EAA2E,CAAC,CAAC;QACzF,CAAC;QACD,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;QACvD,kBAAkB,CAAC,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QACjD,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;QAChG,MAAM,iBAAiB,GAAG,sBAAsB,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAC/F,IAAI,WAAW,EAAE,CAAC;YACd,8FAA8F;YAC9F,2FAA2F;YAC3F,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,WAAW,EAAE,iBAAiB,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YACtF,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAChC,CAAC;iBACI,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC;YAC9D,CAAC;QACL,CAAC;aACI,IAAI,oBAAoB,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;YACnE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChC,CAAC;aACI,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9B,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;QACtC,IAAI,IAAI;YACJ,OAAO,CAAC,IAAI,CAAC,CAAC;QAClB,wBAAwB,CAAC,OAAO,EAAE,iBAAiB,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACtF,CAAC,CAAC,CAAC;AACP,CAAC;AACD,6DAA6D;AAC7D,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAOnC;IACG,MAAM,wBAAwB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AACtD,CAAC;AACD,wFAAwF;AACxF,SAAS,oBAAoB,CAAC,MAAc;IACxC,MAAM,MAAM,GAAG,eAAe,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9D,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;AAChD,CAAC;AACD,wFAAwF;AACxF,MAAM,gBAAgB,GAAG;IACrB,GAAG,EAAE,oBAAoB;IACzB,EAAE,EAAE,mBAAmB;IACvB,QAAQ,EAAE,yBAAyB;IACnC,oCAAoC;IACpC,MAAM,EAAE,GAAG,EAAE;QACT,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;IAC7F,CAAC;CACJ,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,OAAoB,EAA+B,EAAE,CAAC,OAAO,IAAI,gBAAgB,CAAC;AACvG,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,MAAmB;IACjD,IAAI,WAAW,CAAC,MAAM,CAAC;QACnB,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACnD,MAAM,qBAAqB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;AACvD,CAAC;AACD,uFAAuF;AACvF,MAAM,mBAAmB,GAAsG;IAC3H,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC;QAC/B,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QACtB,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;QAC7B,yEAAyE;QACzE,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO,CAAC,uEAAuE,CAAC,CAAC;QACrF,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QACnB,MAAM,wBAAwB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC/C,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC;gBACD,MAAM,oBAAoB,EAAE,CAAC;YACjC,CAAC;YACD,OAAO,KAAK,EAAE,CAAC;gBACX,yEAAyE;gBACzE,OAAO,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBAChE,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;YACpC,CAAC;QACL,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAClB,MAAM,wBAAwB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC9C,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC;gBACD,MAAM,mBAAmB,EAAE,CAAC;YAChC,CAAC;YACD,OAAO,KAAK,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBAChE,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;YACnC,CAAC;QACL,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;CACJ,CAAC;AACF,SAAS,aAAa,CAAC,OAAoB;IACvC,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC9C,IAAI,CAAC,MAAM;QACP,MAAM,IAAI,KAAK,CAAC,gCAAgC,OAAO,EAAE,CAAC,CAAC;IAC/D,OAAO,MAAM,CAAC;AAClB,CAAC;AACD,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAAoB,EAAE,OAA6B;IACpF,IAAI,WAAW,CAAC,OAAO,CAAC;QACpB,OAAO,mBAAmB,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC;IACjD,OAAO,sBAAsB,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;AACnE,CAAC;AACD,SAAS,iBAAiB,CAAC,OAAyB;IAChD,IAAI,MAAM,GAAG,OAAO,CAAC,GAAG,IAAI,eAAe,CAAC;IAC5C,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACpC,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5F,MAAM,IAAI,KAAK,CAAC,wBAAwB,MAAM,EAAE,CAAC,CAAC;IACtD,CAAC;IACD,iFAAiF;IACjF,mEAAmE;IACnE,MAAM,aAAa,GAAG,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IACvE,IAAI,SAAS,CAAC;IACd,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;QACzB,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;QACpD,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;QAC9B,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,OAAO;YACzC,SAAS,GAAG,aAAa,CAAC;IAClC,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AACjC,CAAC;AACD,+FAA+F;AAC/F,KAAK,UAAU,eAAe,CAAC,OAA0B,EAAE,MAAc,EAAE,SAA6B;IACpG,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC,CAAC;IACnG,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC;IAC1B,MAAM,cAAc,GAAG,IAAI,IAAI,oBAAoB,EAAE,CAAC;IACtD,IAAI,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1B,OAAO,CAAC,qFAAqF,CAAC,CAAC;IACnG,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC;QACjC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,MAAM;QACN,SAAS;QACT,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK;QAC/B,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,KAAK;QACrC,QAAQ,EAAE,OAAO,CAAC,UAAU,KAAK,IAAI;QACrC,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,KAAK;KACpC,CAAC,CAAC;IACH,6CAA6C;IAC7C,IAAI,CAAC,OAAO,CAAC,QAAQ;QACjB,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACpC,CAAC;AACD,KAAK,UAAU,mBAAmB,CAAC,MAAmB,EAAE,OAA0B,EAAE,MAAc,EAAE,SAA6B;IAC7H,MAAM,cAAc,GAAG;QACnB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,MAAM;QACN,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK;QAC/B,SAAS;QACT,mFAAmF;QACnF,WAAW,EAAE,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC;QACzE,8DAA8D;QAC9D,mBAAmB,EAAE,IAAI;QACzB,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,KAAK;KACpC,CAAC;IACF,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,sBAAsB,GAAG,MAAM,GAAG,uBAAuB,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1G,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC;QAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,MAAM;QACN,YAAY,EAAE,cAAc,MAAM,EAAE;QACpC,IAAI,EAAE,QAAQ;QACd,SAAS;KACZ,CAAC,CAAC;IACH,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACrB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACX,CAAC;IACD,MAAM,cAAc,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AACjD,CAAC;AACD,MAAM,UAAU,eAAe,CAAC,OAAgB;IAC5C,OAAO;SACF,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,oCAAoC,CAAC;SACjD,QAAQ,CAAC,UAAU,EAAE,4BAA4B,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,0DAA0D,CAAC;SACpI,MAAM,CAAC,OAAO,EAAE,kEAAkE,CAAC;SACnF,MAAM,CAAC,WAAW,EAAE,yEAAyE,CAAC;SAC9F,MAAM,CAAC,aAAa,EAAE,qDAAqD,CAAC;SAC5E,MAAM,CAAC,eAAe,EAAE,mDAAmD,CAAC;SAC5E,MAAM,CAAC,oBAAoB,EAAE,wDAAwD,CAAC;SACtF,MAAM,CAAC,UAAU,EAAE,wDAAwD,CAAC;SAC5E,MAAM,CAAC,gBAAgB,EAAE,uBAAuB,CAAC;SACjD,MAAM,CAAC,WAAW,EAAE,iEAAiE,CAAC;SACtF,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;QAClC,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACvD,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC/C,CAAC;QACD,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACzD,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,IAAI,MAAM,EAAE,CAAC;gBACT,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;YAChE,CAAC;YACD,MAAM,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;YAClD,OAAO;QACX,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YAC5D,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC;QAC/F,CAAC;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,MAAM,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;YAClD,OAAO;QACX,CAAC;QACD,MAAM,mBAAmB,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QAC9D,sFAAsF;QACtF,UAAU,EAAE,CAAC;IACjB,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/** 复刻自 tiny-fish CLI 编译产物:doctor.d.ts + doctor.impl.js */
|
|
2
|
+
import type { Command } from 'commander';
|
|
3
|
+
import type { DoctorOptions, DoctorReport } from '../lib/doctor-report.js';
|
|
4
|
+
export declare function runDoctor(options: DoctorOptions): Promise<DoctorReport>;
|
|
5
|
+
export declare function registerDoctor(program: Command): void;
|
|
6
|
+
//# sourceMappingURL=doctor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAE1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAuB3E,wBAAsB,SAAS,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAyC7E;AACD,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0DrD"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/** 复刻自 tiny-fish CLI 编译产物:doctor.d.ts + doctor.impl.js */
|
|
2
|
+
import { CLI_VERSION } from '../lib/constants.js';
|
|
3
|
+
import { checkAuthCall, checkCliVersion, checkConnectivity, checkCredential, checkHermesPlugin, checkPiAdapter, checkRegistration, provesHarnessReach, verifyHarnessKey, } from '../lib/doctor-checks.js';
|
|
4
|
+
import { DOCTOR_COULD_NOT_RUN, DOCTOR_INVALID_INPUT, DOCTOR_SCHEMA_VERSION, doctorReportSchema, exitCodeFor, renderPretty, verdictFor, } from '../lib/doctor-report.js';
|
|
5
|
+
import { applyRepairs, repairsFor } from '../lib/doctor-repairs.js';
|
|
6
|
+
import { couldNotRunPayload, telemetryPayload } from '../lib/doctor-telemetry.js';
|
|
7
|
+
import { ALL_HARNESSES } from '../lib/harness-detect.js';
|
|
8
|
+
import { err, errLine, out, outLine } from '../lib/output.js';
|
|
9
|
+
import { detectRegistrations } from '../lib/registration-detect.js';
|
|
10
|
+
import { sendDoctorCompleted } from '../lib/setup-telemetry.js';
|
|
11
|
+
import { verifyMcpAuth } from '../lib/verify.js';
|
|
12
|
+
import { HERMES_PLUGIN_VERSION } from '../lib/hermes-plugin.js';
|
|
13
|
+
import { DEFAULT_MCP_URL } from '../lib/mcp-endpoint.js';
|
|
14
|
+
/** Skips mean no Hermes; stamping those buries the drift share. */
|
|
15
|
+
function hermesPluginVersions(result) {
|
|
16
|
+
if (!result || result.check.status === 'skip')
|
|
17
|
+
return {};
|
|
18
|
+
return {
|
|
19
|
+
hermes_plugin_expected_version: HERMES_PLUGIN_VERSION,
|
|
20
|
+
...(result.observedVersion ? { hermes_plugin_version: result.observedVersion } : {}),
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
export async function runDoctor(options) {
|
|
24
|
+
const statuses = detectRegistrations(options.harness ? [options.harness] : undefined);
|
|
25
|
+
const credential = checkCredential();
|
|
26
|
+
const cliAuth = credential.key ? verifyMcpAuth(credential.key) : undefined;
|
|
27
|
+
const [connectivity, cliAuthResult, keyAuths] = await Promise.all([
|
|
28
|
+
checkConnectivity(options.mcpUrl),
|
|
29
|
+
cliAuth,
|
|
30
|
+
Promise.all(statuses.map((status) => verifyHarnessKey(status, cliAuth, options.mcpUrl))),
|
|
31
|
+
]);
|
|
32
|
+
const hermesStatus = statuses.find((status) => status.harness === 'hermes');
|
|
33
|
+
const hermesPlugin = hermesStatus ? checkHermesPlugin(hermesStatus) : undefined;
|
|
34
|
+
const piStatus = statuses.find((status) => status.harness === 'pi');
|
|
35
|
+
const checks = [
|
|
36
|
+
checkCliVersion(),
|
|
37
|
+
connectivity,
|
|
38
|
+
...statuses.map((status, i) => checkRegistration(status, options.mcpUrl, keyAuths[i], !credential.key)),
|
|
39
|
+
...(hermesPlugin ? [hermesPlugin.check] : []),
|
|
40
|
+
...(piStatus ? [checkPiAdapter(piStatus)] : []),
|
|
41
|
+
credential.check,
|
|
42
|
+
checkAuthCall(cliAuthResult),
|
|
43
|
+
];
|
|
44
|
+
const healthOk = checks.some((c) => c.id === 'mcp-connectivity' && c.status === 'pass');
|
|
45
|
+
const harnesses = statuses.map((status, i) => ({
|
|
46
|
+
harness: status.harness,
|
|
47
|
+
detected: status.detected,
|
|
48
|
+
registered: status.registered,
|
|
49
|
+
auth_mode: status.authMode,
|
|
50
|
+
...(status.recordedAuthMode ? { recorded_auth_mode: status.recordedAuthMode } : {}),
|
|
51
|
+
proves_harness_reach: provesHarnessReach(status, keyAuths[i], healthOk, options.mcpUrl),
|
|
52
|
+
}));
|
|
53
|
+
const body = {
|
|
54
|
+
schema_version: DOCTOR_SCHEMA_VERSION,
|
|
55
|
+
cli_version: CLI_VERSION,
|
|
56
|
+
...verdictFor(checks),
|
|
57
|
+
checks,
|
|
58
|
+
harnesses,
|
|
59
|
+
repairs: repairsFor(checks, statuses),
|
|
60
|
+
...hermesPluginVersions(hermesPlugin),
|
|
61
|
+
};
|
|
62
|
+
// The one unauthored string is bounded before it lands here.
|
|
63
|
+
return doctorReportSchema.parse(body);
|
|
64
|
+
}
|
|
65
|
+
export function registerDoctor(program) {
|
|
66
|
+
program
|
|
67
|
+
.command('doctor')
|
|
68
|
+
.description('Diagnose your SpringBrand setup')
|
|
69
|
+
.option('--pretty', 'Human-readable check list instead of JSON')
|
|
70
|
+
.option('--harness <name>', `Restrict to one harness (${ALL_HARNESSES.join(', ')})`)
|
|
71
|
+
.option('--url <mcpUrl>', 'MCP endpoint override')
|
|
72
|
+
.option('--fix', 'Repair what can be repaired by re-running sp connect')
|
|
73
|
+
.option('--yes', 'Allow --fix to run without a terminal (unattended-safe repairs only)')
|
|
74
|
+
.action(async (options) => {
|
|
75
|
+
if (options.harness && !ALL_HARNESSES.includes(options.harness)) {
|
|
76
|
+
err({ error: `Unknown --harness value: ${options.harness}`, valid: ALL_HARNESSES });
|
|
77
|
+
process.exitCode = DOCTOR_INVALID_INPUT;
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
const doctorOptions = {
|
|
81
|
+
mcpUrl: options.url ?? DEFAULT_MCP_URL,
|
|
82
|
+
fix: Boolean(options.fix),
|
|
83
|
+
yes: Boolean(options.yes),
|
|
84
|
+
...(options.harness ? { harness: options.harness } : {}),
|
|
85
|
+
};
|
|
86
|
+
let report;
|
|
87
|
+
let offered;
|
|
88
|
+
let outcomes = [];
|
|
89
|
+
const startedAt = performance.now();
|
|
90
|
+
try {
|
|
91
|
+
report = await runDoctor(doctorOptions);
|
|
92
|
+
offered = report.repairs;
|
|
93
|
+
if (doctorOptions.fix && report.repairs.length > 0) {
|
|
94
|
+
outcomes = await applyRepairs(report.repairs, doctorOptions);
|
|
95
|
+
for (const outcome of outcomes) {
|
|
96
|
+
const reason = outcome.reason ? ` (${outcome.reason})` : '';
|
|
97
|
+
errLine(`${outcome.status}: ${outcome.repair.command}${reason}`);
|
|
98
|
+
}
|
|
99
|
+
// Re-diagnose so the emitted report describes the machine after repair, not before.
|
|
100
|
+
report = await runDoctor(doctorOptions);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
catch (e) {
|
|
104
|
+
// Exit 2 means doctor itself broke, a different claim from "your setup is broken".
|
|
105
|
+
// Authored, like every other string a user might paste; raw text is behind --debug.
|
|
106
|
+
if (process.env['SPRINGBRAND_DEBUG']) {
|
|
107
|
+
errLine(e instanceof Error ? (e.stack ?? e.message) : String(e));
|
|
108
|
+
}
|
|
109
|
+
err({ error: 'doctor could not complete; re-run with --debug for the raw error' });
|
|
110
|
+
process.exitCode = DOCTOR_COULD_NOT_RUN;
|
|
111
|
+
// After the exit code is set: telemetry never decides how doctor exits.
|
|
112
|
+
await sendDoctorCompleted(doctorOptions.mcpUrl, couldNotRunPayload(e, doctorOptions, Math.round(performance.now() - startedAt)));
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
if (options.pretty)
|
|
116
|
+
outLine(renderPretty(report));
|
|
117
|
+
else
|
|
118
|
+
out(report);
|
|
119
|
+
process.exitCode = exitCodeFor(report.checks);
|
|
120
|
+
// After the exit code is set: telemetry never decides how doctor exits.
|
|
121
|
+
await sendDoctorCompleted(doctorOptions.mcpUrl, telemetryPayload(report, offered, outcomes, doctorOptions, Math.round(performance.now() - startedAt)));
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=doctor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** 复刻自 tiny-fish CLI 编译产物:upgrade.d.ts + upgrade.impl.js */
|
|
2
|
+
import type { Command } from 'commander';
|
|
3
|
+
import type { UpgradeScope } from '../lib/setup-telemetry.js';
|
|
4
|
+
/** Returns the version now installed, so the caller reports exactly what the user was told. */
|
|
5
|
+
export declare function runUpgrade(verbose?: boolean, scope?: UpgradeScope): string | null;
|
|
6
|
+
/** `runUpgrade` plus its outcome telemetry, which must never change what the upgrade does. */
|
|
7
|
+
export declare function runUpgradeCommand(verbose?: boolean, scope?: UpgradeScope): Promise<void>;
|
|
8
|
+
export declare function registerUpgrade(program: Command): void;
|
|
9
|
+
//# sourceMappingURL=upgrade.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../../src/commands/upgrade.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAE5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAkB,YAAY,EAAE,MAAM,2BAA2B,CAAC;AA4B9E,+FAA+F;AAC/F,wBAAgB,UAAU,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,YAAY,GAAG,MAAM,GAAG,IAAI,CAkCjF;AAiBD,8FAA8F;AAC9F,wBAAsB,iBAAiB,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAoC9F;AACD,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CActD"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
/** 复刻自 tiny-fish CLI 编译产物:upgrade.d.ts + upgrade.impl.js */
|
|
2
|
+
import spawn from 'cross-spawn';
|
|
3
|
+
import { CLI_VERSION, SPRINGBRAND_CLI_PACKAGE } from '../lib/constants.js';
|
|
4
|
+
import { installRoot, readInstalledVersion } from '../lib/install-root.js';
|
|
5
|
+
import { suppressNotice } from '../lib/notice.js';
|
|
6
|
+
import { errLine } from '../lib/output.js';
|
|
7
|
+
import { sendUpgradeCompleted, telemetryDisabled, } from '../lib/setup-telemetry.js';
|
|
8
|
+
import { installSignalGuard, SIGNAL_EXIT_CODES } from '../lib/signals.js';
|
|
9
|
+
import { installSpringBrandCli } from '../lib/cli-install.js';
|
|
10
|
+
import { updateWebSkill } from '../lib/skill-install.js';
|
|
11
|
+
import { ConnectInterruptedError } from '../lib/connect-runtime.js';
|
|
12
|
+
const VERSION_READ_TIMEOUT_MS = 2_000;
|
|
13
|
+
const INTERRUPTED_MESSAGE = 'Upgrade interrupted — run `sp upgrade` again to finish.';
|
|
14
|
+
function attempt(label, run) {
|
|
15
|
+
try {
|
|
16
|
+
run();
|
|
17
|
+
errLine(`✓ ${label}: done`);
|
|
18
|
+
return undefined;
|
|
19
|
+
}
|
|
20
|
+
catch (error) {
|
|
21
|
+
// Ctrl+C is abandonment, not failure — neither step should be reported as broken.
|
|
22
|
+
if (error instanceof ConnectInterruptedError)
|
|
23
|
+
throw error;
|
|
24
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
25
|
+
errLine(`✗ ${label}: ${message}`);
|
|
26
|
+
return message;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
/** Returns the version now installed, so the caller reports exactly what the user was told. */
|
|
30
|
+
export function runUpgrade(verbose, scope) {
|
|
31
|
+
errLine('Upgrading SpringBrand...');
|
|
32
|
+
let refreshed = false;
|
|
33
|
+
try {
|
|
34
|
+
// Every selected step runs: one failing must not stall the other.
|
|
35
|
+
const failures = [
|
|
36
|
+
scope === 'skill'
|
|
37
|
+
? undefined
|
|
38
|
+
: attempt('update the SpringBrand CLI', () => installSpringBrandCli({ verbose: verbose ?? false, announce: verbose ?? false })),
|
|
39
|
+
scope === 'cli'
|
|
40
|
+
? undefined
|
|
41
|
+
: attempt('refresh the SpringBrand web skill', () => {
|
|
42
|
+
refreshed = updateWebSkill({ verbose: verbose ?? false });
|
|
43
|
+
}),
|
|
44
|
+
].filter((failure) => failure !== undefined);
|
|
45
|
+
if (failures.length > 0)
|
|
46
|
+
throw new Error(`sp upgrade failed: ${failures.join('; ')}`);
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
if (!(error instanceof ConnectInterruptedError))
|
|
50
|
+
throw error;
|
|
51
|
+
errLine(INTERRUPTED_MESSAGE);
|
|
52
|
+
process.exitCode = SIGNAL_EXIT_CODES.SIGINT;
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
55
|
+
const version = installedCliVersion();
|
|
56
|
+
// --skill-only never checked the CLI, so no versioned claim.
|
|
57
|
+
const upToDate = version && scope !== 'skill'
|
|
58
|
+
? `SpringBrand CLI ${version} is up to date.`
|
|
59
|
+
: 'SpringBrand is up to date.';
|
|
60
|
+
// Only a rewritten skill needs an agent restart.
|
|
61
|
+
errLine(refreshed ? `${upToDate} Restart your agent to pick up the refreshed skill.` : upToDate);
|
|
62
|
+
return version;
|
|
63
|
+
}
|
|
64
|
+
/** The version now on disk. Only the upgrade's own npm call knows what "latest" resolved to. */
|
|
65
|
+
function installedCliVersion() {
|
|
66
|
+
const root = installRoot();
|
|
67
|
+
return (root ? readInstalledVersion(root.nodeModules) : null) ?? globalCliVersion();
|
|
68
|
+
}
|
|
69
|
+
/** Fallback when no prefix was detected: npm's own global tree is the only place left to look. */
|
|
70
|
+
function globalCliVersion() {
|
|
71
|
+
try {
|
|
72
|
+
const result = spawn.sync('npm', ['ls', '--global', '--depth=0', '--json', SPRINGBRAND_CLI_PACKAGE], { encoding: 'utf8', timeout: VERSION_READ_TIMEOUT_MS });
|
|
73
|
+
const parsed = JSON.parse(result.stdout ?? '');
|
|
74
|
+
return parsed.dependencies?.[SPRINGBRAND_CLI_PACKAGE]?.version ?? null;
|
|
75
|
+
}
|
|
76
|
+
catch {
|
|
77
|
+
return null;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
/** `runUpgrade` plus its outcome telemetry, which must never change what the upgrade does. */
|
|
81
|
+
export async function runUpgradeCommand(verbose, scope) {
|
|
82
|
+
// This command is the upgrade, so a trailing "an update is available" would be noise.
|
|
83
|
+
suppressNotice();
|
|
84
|
+
let reported = false;
|
|
85
|
+
let printedVersion = null;
|
|
86
|
+
// Read on the failed path too: a failed skill refresh still leaves an upgraded CLI, so
|
|
87
|
+
// `outcome` reports whether every step ran and `to_version` whether the binary moved.
|
|
88
|
+
const report = async (outcome) => {
|
|
89
|
+
if (reported)
|
|
90
|
+
return;
|
|
91
|
+
reported = true;
|
|
92
|
+
if (telemetryDisabled())
|
|
93
|
+
return;
|
|
94
|
+
// Interrupted skips the read — racing the exit. Undercounts; see posthog-events.md.
|
|
95
|
+
const toVersion = outcome === 'interrupted' ? null : (printedVersion ?? installedCliVersion());
|
|
96
|
+
await sendUpgradeCompleted(CLI_VERSION, toVersion, outcome, scope ?? 'both');
|
|
97
|
+
};
|
|
98
|
+
const uninstallSignalGuard = installSignalGuard(async () => {
|
|
99
|
+
errLine(INTERRUPTED_MESSAGE);
|
|
100
|
+
await report('interrupted');
|
|
101
|
+
});
|
|
102
|
+
let outcome = 'updated';
|
|
103
|
+
try {
|
|
104
|
+
printedVersion = runUpgrade(verbose, scope);
|
|
105
|
+
if (process.exitCode === SIGNAL_EXIT_CODES.SIGINT)
|
|
106
|
+
outcome = 'interrupted';
|
|
107
|
+
}
|
|
108
|
+
catch (error) {
|
|
109
|
+
outcome = 'failed';
|
|
110
|
+
throw error;
|
|
111
|
+
}
|
|
112
|
+
finally {
|
|
113
|
+
uninstallSignalGuard();
|
|
114
|
+
// Swallowed: a throw here would replace the upgrade's own error, or fail a good upgrade.
|
|
115
|
+
await report(outcome).catch(() => { });
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
export function registerUpgrade(program) {
|
|
119
|
+
program
|
|
120
|
+
.command('upgrade')
|
|
121
|
+
.description('Update the SpringBrand CLI and refresh its bundled SpringBrand Skill set')
|
|
122
|
+
.option('--verbose', 'Print the full npm output instead of only on failure')
|
|
123
|
+
.option('--cli-only', 'Update only the SpringBrand CLI, leaving the skill untouched')
|
|
124
|
+
.option('--skill-only', "Rewrite the skill from the installed CLI's bundle, skipping npm")
|
|
125
|
+
.action(async (options) => {
|
|
126
|
+
if (options.cliOnly && options.skillOnly) {
|
|
127
|
+
throw new Error('Pass either --cli-only or --skill-only, not both.');
|
|
128
|
+
}
|
|
129
|
+
const scope = options.cliOnly ? 'cli' : options.skillOnly ? 'skill' : 'both';
|
|
130
|
+
await runUpgradeCommand(Boolean(options.verbose), scope);
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=upgrade.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../src/commands/upgrade.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,wDAAwD"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/** 复刻自 tiny-fish CLI 编译产物:index.d.ts + index.impl.js */
|
|
3
|
+
import { buildProgram } from './program.js';
|
|
4
|
+
// Await parseAsync so async command handlers complete before the process exits
|
|
5
|
+
buildProgram()
|
|
6
|
+
.then(({ program }) => program.parseAsync(process.argv))
|
|
7
|
+
.catch((e) => {
|
|
8
|
+
process.stderr.write(JSON.stringify({ error: e instanceof Error ? e.message : String(e) }) + '\n');
|
|
9
|
+
// A failed command import reads as a bare message; the stack names the module.
|
|
10
|
+
if (process.env['SPRINGBRAND_DEBUG'] && e instanceof Error && e.stack) {
|
|
11
|
+
process.stderr.write(e.stack + '\n');
|
|
12
|
+
}
|
|
13
|
+
process.exit(1);
|
|
14
|
+
});
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,wDAAwD;AAExD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,+EAA+E;AAC/E,YAAY,EAAE;KACT,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;KACvD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;IACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IACnG,+EAA+E;IAC/E,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QACpE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Supported agents and their detection/config
|
|
3
|
+
*/
|
|
4
|
+
export type AgentType = 'claude-code' | 'cursor' | 'windsurf' | 'cline';
|
|
5
|
+
export interface AgentInfo {
|
|
6
|
+
type: AgentType;
|
|
7
|
+
displayName: string;
|
|
8
|
+
detected: boolean;
|
|
9
|
+
configPath?: string;
|
|
10
|
+
version?: string;
|
|
11
|
+
command?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface AgentConfig {
|
|
14
|
+
type: AgentType;
|
|
15
|
+
displayName: string;
|
|
16
|
+
configPaths: string[];
|
|
17
|
+
skillPath: string;
|
|
18
|
+
command?: string;
|
|
19
|
+
launchCommand?: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Detect installed agents on this system
|
|
23
|
+
*/
|
|
24
|
+
export declare function detectAgents(): AgentInfo[];
|
|
25
|
+
/**
|
|
26
|
+
* Get config for a specific agent type
|
|
27
|
+
*/
|
|
28
|
+
export declare function getAgentConfig(type: AgentType): AgentConfig;
|
|
29
|
+
/**
|
|
30
|
+
* Detect specific agent
|
|
31
|
+
*/
|
|
32
|
+
export declare function detectAgent(type: AgentType): AgentInfo;
|
|
33
|
+
//# sourceMappingURL=agent-detect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-detect.d.ts","sourceRoot":"","sources":["../../src/lib/agent-detect.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,MAAM,MAAM,SAAS,GAAG,aAAa,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;AAExE,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,SAAS,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,SAAS,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAyCD;;GAEG;AACH,wBAAgB,YAAY,IAAI,SAAS,EAAE,CAiB1C;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,GAAG,WAAW,CAE3D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,CAYtD"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { existsSync } from 'fs';
|
|
2
|
+
import { homedir } from 'os';
|
|
3
|
+
import { join } from 'path';
|
|
4
|
+
const AGENT_CONFIGS = {
|
|
5
|
+
'claude-code': {
|
|
6
|
+
type: 'claude-code',
|
|
7
|
+
displayName: 'Claude Code',
|
|
8
|
+
configPaths: [
|
|
9
|
+
join(homedir(), '.claude', 'mcp.json'),
|
|
10
|
+
join(homedir(), '.claude', 'config.json'),
|
|
11
|
+
],
|
|
12
|
+
skillPath: join(homedir(), '.claude', 'skills', 'use-mcp-gateway'),
|
|
13
|
+
command: 'claude',
|
|
14
|
+
launchCommand: 'claude',
|
|
15
|
+
},
|
|
16
|
+
'cursor': {
|
|
17
|
+
type: 'cursor',
|
|
18
|
+
displayName: 'Cursor',
|
|
19
|
+
configPaths: [
|
|
20
|
+
join(homedir(), '.cursor', 'mcp.json'),
|
|
21
|
+
join(homedir(), 'Library', 'Application Support', 'Cursor', 'User', 'globalStorage', 'rooveterinaryinc.roo-cline', 'settings', 'cline_mcp_settings.json'),
|
|
22
|
+
],
|
|
23
|
+
skillPath: join(homedir(), '.cursor', 'skills', 'use-mcp-gateway'),
|
|
24
|
+
},
|
|
25
|
+
'windsurf': {
|
|
26
|
+
type: 'windsurf',
|
|
27
|
+
displayName: 'Windsurf',
|
|
28
|
+
configPaths: [
|
|
29
|
+
join(homedir(), '.windsurf', 'mcp.json'),
|
|
30
|
+
],
|
|
31
|
+
skillPath: join(homedir(), '.windsurf', 'skills', 'use-mcp-gateway'),
|
|
32
|
+
},
|
|
33
|
+
'cline': {
|
|
34
|
+
type: 'cline',
|
|
35
|
+
displayName: 'Cline',
|
|
36
|
+
configPaths: [
|
|
37
|
+
join(homedir(), 'Library', 'Application Support', 'Code', 'User', 'globalStorage', 'saoudrizwan.claude-dev', 'settings', 'cline_mcp_settings.json'),
|
|
38
|
+
],
|
|
39
|
+
skillPath: join(homedir(), '.vscode', 'skills', 'use-mcp-gateway'),
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* Detect installed agents on this system
|
|
44
|
+
*/
|
|
45
|
+
export function detectAgents() {
|
|
46
|
+
const results = [];
|
|
47
|
+
for (const [type, config] of Object.entries(AGENT_CONFIGS)) {
|
|
48
|
+
const detected = config.configPaths.some(p => existsSync(p));
|
|
49
|
+
const configPath = config.configPaths.find(p => existsSync(p));
|
|
50
|
+
results.push({
|
|
51
|
+
type: type,
|
|
52
|
+
displayName: config.displayName,
|
|
53
|
+
detected,
|
|
54
|
+
configPath,
|
|
55
|
+
command: config.command,
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
return results;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Get config for a specific agent type
|
|
62
|
+
*/
|
|
63
|
+
export function getAgentConfig(type) {
|
|
64
|
+
return AGENT_CONFIGS[type];
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Detect specific agent
|
|
68
|
+
*/
|
|
69
|
+
export function detectAgent(type) {
|
|
70
|
+
const config = AGENT_CONFIGS[type];
|
|
71
|
+
const detected = config.configPaths.some(p => existsSync(p));
|
|
72
|
+
const configPath = config.configPaths.find(p => existsSync(p));
|
|
73
|
+
return {
|
|
74
|
+
type,
|
|
75
|
+
displayName: config.displayName,
|
|
76
|
+
detected,
|
|
77
|
+
configPath,
|
|
78
|
+
command: config.command,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=agent-detect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-detect.js","sourceRoot":"","sources":["../../src/lib/agent-detect.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { AgentType } from './agent-detect';
|
|
2
|
+
/**
|
|
3
|
+
* Agent launcher - start agent with optional prompt
|
|
4
|
+
*/
|
|
5
|
+
export interface LaunchOptions {
|
|
6
|
+
agent: AgentType;
|
|
7
|
+
prompt?: string;
|
|
8
|
+
cwd?: string;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Launch an agent with optional onboarding prompt
|
|
12
|
+
*/
|
|
13
|
+
export declare function launchAgent(options: LaunchOptions): Promise<void>;
|
|
14
|
+
/**
|
|
15
|
+
* Check if agent command is available
|
|
16
|
+
*/
|
|
17
|
+
export declare function isAgentAvailable(agent: AgentType): boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Default onboarding prompts for each agent
|
|
20
|
+
*/
|
|
21
|
+
export declare const ONBOARDING_PROMPTS: Record<AgentType, string>;
|
|
22
|
+
//# sourceMappingURL=agent-launcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-launcher.d.ts","sourceRoot":"","sources":["../../src/lib/agent-launcher.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD;;GAEG;AAEH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,SAAS,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAkCvE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAqB1D;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAKxD,CAAC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { spawn } from 'child_process';
|
|
2
|
+
/**
|
|
3
|
+
* Launch an agent with optional onboarding prompt
|
|
4
|
+
*/
|
|
5
|
+
export async function launchAgent(options) {
|
|
6
|
+
const { agent, prompt, cwd } = options;
|
|
7
|
+
// Agent-specific launch commands
|
|
8
|
+
const launchCommands = {
|
|
9
|
+
'claude-code': ['claude', prompt ? ['--prompt', prompt] : []].flat(),
|
|
10
|
+
'cursor': ['cursor', cwd || '.'],
|
|
11
|
+
'windsurf': ['windsurf', cwd || '.'],
|
|
12
|
+
'cline': ['code', cwd || '.'],
|
|
13
|
+
};
|
|
14
|
+
const command = launchCommands[agent];
|
|
15
|
+
if (!command || command.length === 0) {
|
|
16
|
+
throw new Error(`No launch command configured for ${agent}`);
|
|
17
|
+
}
|
|
18
|
+
const [cmd, ...args] = command;
|
|
19
|
+
return new Promise((resolve, reject) => {
|
|
20
|
+
const child = spawn(cmd, args, {
|
|
21
|
+
detached: true,
|
|
22
|
+
stdio: 'ignore',
|
|
23
|
+
});
|
|
24
|
+
child.on('error', (error) => {
|
|
25
|
+
reject(new Error(`Failed to launch ${agent}: ${error.message}`));
|
|
26
|
+
});
|
|
27
|
+
// Detach and let it run independently
|
|
28
|
+
child.unref();
|
|
29
|
+
// Give it a moment to start
|
|
30
|
+
setTimeout(() => resolve(), 1000);
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Check if agent command is available
|
|
35
|
+
*/
|
|
36
|
+
export function isAgentAvailable(agent) {
|
|
37
|
+
const commands = {
|
|
38
|
+
'claude-code': 'claude',
|
|
39
|
+
'cursor': 'cursor',
|
|
40
|
+
'windsurf': 'windsurf',
|
|
41
|
+
'cline': 'code',
|
|
42
|
+
};
|
|
43
|
+
const cmd = commands[agent];
|
|
44
|
+
if (!cmd)
|
|
45
|
+
return false;
|
|
46
|
+
try {
|
|
47
|
+
const { spawnSync } = require('child_process');
|
|
48
|
+
const result = spawnSync(cmd, ['--version'], {
|
|
49
|
+
stdio: 'ignore',
|
|
50
|
+
timeout: 5000,
|
|
51
|
+
});
|
|
52
|
+
return result.status === 0;
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Default onboarding prompts for each agent
|
|
60
|
+
*/
|
|
61
|
+
export const ONBOARDING_PROMPTS = {
|
|
62
|
+
'claude-code': 'Show me how to use MCP Gateway to search and execute tools',
|
|
63
|
+
'cursor': 'Help me get started with MCP Gateway',
|
|
64
|
+
'windsurf': 'What can I do with MCP Gateway?',
|
|
65
|
+
'cline': 'Guide me through using MCP Gateway',
|
|
66
|
+
};
|
|
67
|
+
//# sourceMappingURL=agent-launcher.js.map
|