@hypercli/gen 0.1.1
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/LICENSE +21 -0
- package/README.md +24 -0
- package/dist/actions/communication.d.ts +201 -0
- package/dist/actions/communication.d.ts.map +1 -0
- package/dist/actions/communication.js +515 -0
- package/dist/actions/communication.js.map +1 -0
- package/dist/actions/decorator.d.ts +22 -0
- package/dist/actions/decorator.d.ts.map +1 -0
- package/dist/actions/decorator.js +110 -0
- package/dist/actions/decorator.js.map +1 -0
- package/dist/actions/executor.d.ts +85 -0
- package/dist/actions/executor.d.ts.map +1 -0
- package/dist/actions/executor.js +289 -0
- package/dist/actions/executor.js.map +1 -0
- package/dist/actions/index.d.ts +14 -0
- package/dist/actions/index.d.ts.map +1 -0
- package/dist/actions/index.js +15 -0
- package/dist/actions/index.js.map +1 -0
- package/dist/actions/parameter-resolver.d.ts +54 -0
- package/dist/actions/parameter-resolver.d.ts.map +1 -0
- package/dist/actions/parameter-resolver.js +300 -0
- package/dist/actions/parameter-resolver.js.map +1 -0
- package/dist/actions/registry.d.ts +78 -0
- package/dist/actions/registry.d.ts.map +1 -0
- package/dist/actions/registry.js +221 -0
- package/dist/actions/registry.js.map +1 -0
- package/dist/actions/types.d.ts +109 -0
- package/dist/actions/types.d.ts.map +1 -0
- package/dist/actions/types.js +31 -0
- package/dist/actions/types.js.map +1 -0
- package/dist/actions/utils.d.ts +42 -0
- package/dist/actions/utils.d.ts.map +1 -0
- package/dist/actions/utils.js +144 -0
- package/dist/actions/utils.js.map +1 -0
- package/dist/ai/ai-collector.d.ts +52 -0
- package/dist/ai/ai-collector.d.ts.map +1 -0
- package/dist/ai/ai-collector.js +64 -0
- package/dist/ai/ai-collector.js.map +1 -0
- package/dist/ai/ai-config.d.ts +230 -0
- package/dist/ai/ai-config.d.ts.map +1 -0
- package/dist/ai/ai-config.js +8 -0
- package/dist/ai/ai-config.js.map +1 -0
- package/dist/ai/ai-service.d.ts +66 -0
- package/dist/ai/ai-service.d.ts.map +1 -0
- package/dist/ai/ai-service.js +198 -0
- package/dist/ai/ai-service.js.map +1 -0
- package/dist/ai/ai-variable-resolver.d.ts +59 -0
- package/dist/ai/ai-variable-resolver.d.ts.map +1 -0
- package/dist/ai/ai-variable-resolver.js +219 -0
- package/dist/ai/ai-variable-resolver.js.map +1 -0
- package/dist/ai/context-collector.d.ts +30 -0
- package/dist/ai/context-collector.d.ts.map +1 -0
- package/dist/ai/context-collector.js +158 -0
- package/dist/ai/context-collector.js.map +1 -0
- package/dist/ai/cost-tracker.d.ts +41 -0
- package/dist/ai/cost-tracker.d.ts.map +1 -0
- package/dist/ai/cost-tracker.js +131 -0
- package/dist/ai/cost-tracker.js.map +1 -0
- package/dist/ai/env.d.ts +36 -0
- package/dist/ai/env.d.ts.map +1 -0
- package/dist/ai/env.js +100 -0
- package/dist/ai/env.js.map +1 -0
- package/dist/ai/index.d.ts +17 -0
- package/dist/ai/index.d.ts.map +1 -0
- package/dist/ai/index.js +25 -0
- package/dist/ai/index.js.map +1 -0
- package/dist/ai/model-router.d.ts +32 -0
- package/dist/ai/model-router.d.ts.map +1 -0
- package/dist/ai/model-router.js +113 -0
- package/dist/ai/model-router.js.map +1 -0
- package/dist/ai/output-validator.d.ts +24 -0
- package/dist/ai/output-validator.d.ts.map +1 -0
- package/dist/ai/output-validator.js +279 -0
- package/dist/ai/output-validator.js.map +1 -0
- package/dist/ai/prompt-assembler.d.ts +30 -0
- package/dist/ai/prompt-assembler.d.ts.map +1 -0
- package/dist/ai/prompt-assembler.js +93 -0
- package/dist/ai/prompt-assembler.js.map +1 -0
- package/dist/ai/prompt-pipeline.d.ts +63 -0
- package/dist/ai/prompt-pipeline.d.ts.map +1 -0
- package/dist/ai/prompt-pipeline.js +119 -0
- package/dist/ai/prompt-pipeline.js.map +1 -0
- package/dist/ai/prompt-template.jig +88 -0
- package/dist/ai/transports/api-transport.d.ts +12 -0
- package/dist/ai/transports/api-transport.d.ts.map +1 -0
- package/dist/ai/transports/api-transport.js +86 -0
- package/dist/ai/transports/api-transport.js.map +1 -0
- package/dist/ai/transports/command-transport.d.ts +20 -0
- package/dist/ai/transports/command-transport.d.ts.map +1 -0
- package/dist/ai/transports/command-transport.js +203 -0
- package/dist/ai/transports/command-transport.js.map +1 -0
- package/dist/ai/transports/index.d.ts +11 -0
- package/dist/ai/transports/index.d.ts.map +1 -0
- package/dist/ai/transports/index.js +10 -0
- package/dist/ai/transports/index.js.map +1 -0
- package/dist/ai/transports/resolve-transport.d.ts +15 -0
- package/dist/ai/transports/resolve-transport.d.ts.map +1 -0
- package/dist/ai/transports/resolve-transport.js +96 -0
- package/dist/ai/transports/resolve-transport.js.map +1 -0
- package/dist/ai/transports/stdout-transport.d.ts +14 -0
- package/dist/ai/transports/stdout-transport.d.ts.map +1 -0
- package/dist/ai/transports/stdout-transport.js +27 -0
- package/dist/ai/transports/stdout-transport.js.map +1 -0
- package/dist/ai/transports/types.d.ts +77 -0
- package/dist/ai/transports/types.d.ts.map +1 -0
- package/dist/ai/transports/types.js +8 -0
- package/dist/ai/transports/types.js.map +1 -0
- package/dist/commands/cookbook/info.d.ts +22 -0
- package/dist/commands/cookbook/info.d.ts.map +1 -0
- package/dist/commands/cookbook/info.js +217 -0
- package/dist/commands/cookbook/info.js.map +1 -0
- package/dist/commands/cookbook/list.d.ts +20 -0
- package/dist/commands/cookbook/list.d.ts.map +1 -0
- package/dist/commands/cookbook/list.js +133 -0
- package/dist/commands/cookbook/list.js.map +1 -0
- package/dist/commands/gen.d.ts +65 -0
- package/dist/commands/gen.d.ts.map +1 -0
- package/dist/commands/gen.js +478 -0
- package/dist/commands/gen.js.map +1 -0
- package/dist/commands/recipe/info.d.ts +18 -0
- package/dist/commands/recipe/info.d.ts.map +1 -0
- package/dist/commands/recipe/info.js +89 -0
- package/dist/commands/recipe/info.js.map +1 -0
- package/dist/commands/recipe/list.d.ts +29 -0
- package/dist/commands/recipe/list.d.ts.map +1 -0
- package/dist/commands/recipe/list.js +215 -0
- package/dist/commands/recipe/list.js.map +1 -0
- package/dist/commands/recipe/run.d.ts +44 -0
- package/dist/commands/recipe/run.d.ts.map +1 -0
- package/dist/commands/recipe/run.js +239 -0
- package/dist/commands/recipe/run.js.map +1 -0
- package/dist/commands/recipe/validate.d.ts +19 -0
- package/dist/commands/recipe/validate.d.ts.map +1 -0
- package/dist/commands/recipe/validate.js +66 -0
- package/dist/commands/recipe/validate.js.map +1 -0
- package/dist/discovery/generator-discovery.d.ts +130 -0
- package/dist/discovery/generator-discovery.d.ts.map +1 -0
- package/dist/discovery/generator-discovery.js +674 -0
- package/dist/discovery/generator-discovery.js.map +1 -0
- package/dist/discovery/index.d.ts +8 -0
- package/dist/discovery/index.d.ts.map +1 -0
- package/dist/discovery/index.js +7 -0
- package/dist/discovery/index.js.map +1 -0
- package/dist/hooks/command-not-found.d.ts +18 -0
- package/dist/hooks/command-not-found.d.ts.map +1 -0
- package/dist/hooks/command-not-found.js +182 -0
- package/dist/hooks/command-not-found.js.map +1 -0
- package/dist/hooks/suggest.d.ts +13 -0
- package/dist/hooks/suggest.d.ts.map +1 -0
- package/dist/hooks/suggest.js +28 -0
- package/dist/hooks/suggest.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/base-command.d.ts +26 -0
- package/dist/lib/base-command.d.ts.map +1 -0
- package/dist/lib/base-command.js +24 -0
- package/dist/lib/base-command.js.map +1 -0
- package/dist/lib/flags.d.ts +33 -0
- package/dist/lib/flags.d.ts.map +1 -0
- package/dist/lib/flags.js +64 -0
- package/dist/lib/flags.js.map +1 -0
- package/dist/ops/add.d.ts +4 -0
- package/dist/ops/add.d.ts.map +1 -0
- package/dist/ops/add.js +85 -0
- package/dist/ops/add.js.map +1 -0
- package/dist/ops/inject.d.ts +4 -0
- package/dist/ops/inject.d.ts.map +1 -0
- package/dist/ops/inject.js +28 -0
- package/dist/ops/inject.js.map +1 -0
- package/dist/ops/injector.d.ts +4 -0
- package/dist/ops/injector.d.ts.map +1 -0
- package/dist/ops/injector.js +68 -0
- package/dist/ops/injector.js.map +1 -0
- package/dist/ops/result.d.ts +3 -0
- package/dist/ops/result.d.ts.map +1 -0
- package/dist/ops/result.js +8 -0
- package/dist/ops/result.js.map +1 -0
- package/dist/prompts/interactive-prompts.d.ts +152 -0
- package/dist/prompts/interactive-prompts.d.ts.map +1 -0
- package/dist/prompts/interactive-prompts.js +574 -0
- package/dist/prompts/interactive-prompts.js.map +1 -0
- package/dist/recipe-engine/group-executor.d.ts +97 -0
- package/dist/recipe-engine/group-executor.d.ts.map +1 -0
- package/dist/recipe-engine/group-executor.js +293 -0
- package/dist/recipe-engine/group-executor.js.map +1 -0
- package/dist/recipe-engine/index.d.ts +112 -0
- package/dist/recipe-engine/index.d.ts.map +1 -0
- package/dist/recipe-engine/index.js +223 -0
- package/dist/recipe-engine/index.js.map +1 -0
- package/dist/recipe-engine/output-evaluator.d.ts +28 -0
- package/dist/recipe-engine/output-evaluator.d.ts.map +1 -0
- package/dist/recipe-engine/output-evaluator.js +78 -0
- package/dist/recipe-engine/output-evaluator.js.map +1 -0
- package/dist/recipe-engine/recipe-engine.d.ts +227 -0
- package/dist/recipe-engine/recipe-engine.d.ts.map +1 -0
- package/dist/recipe-engine/recipe-engine.js +1036 -0
- package/dist/recipe-engine/recipe-engine.js.map +1 -0
- package/dist/recipe-engine/step-executor.d.ts +172 -0
- package/dist/recipe-engine/step-executor.d.ts.map +1 -0
- package/dist/recipe-engine/step-executor.js +802 -0
- package/dist/recipe-engine/step-executor.js.map +1 -0
- package/dist/recipe-engine/tools/action-tool.d.ts +103 -0
- package/dist/recipe-engine/tools/action-tool.d.ts.map +1 -0
- package/dist/recipe-engine/tools/action-tool.js +473 -0
- package/dist/recipe-engine/tools/action-tool.js.map +1 -0
- package/dist/recipe-engine/tools/ai-tool.d.ts +26 -0
- package/dist/recipe-engine/tools/ai-tool.d.ts.map +1 -0
- package/dist/recipe-engine/tools/ai-tool.js +233 -0
- package/dist/recipe-engine/tools/ai-tool.js.map +1 -0
- package/dist/recipe-engine/tools/base.d.ts +214 -0
- package/dist/recipe-engine/tools/base.d.ts.map +1 -0
- package/dist/recipe-engine/tools/base.js +397 -0
- package/dist/recipe-engine/tools/base.js.map +1 -0
- package/dist/recipe-engine/tools/codemod-tool.d.ts +130 -0
- package/dist/recipe-engine/tools/codemod-tool.d.ts.map +1 -0
- package/dist/recipe-engine/tools/codemod-tool.js +786 -0
- package/dist/recipe-engine/tools/codemod-tool.js.map +1 -0
- package/dist/recipe-engine/tools/ensure-dirs-tool.d.ts +21 -0
- package/dist/recipe-engine/tools/ensure-dirs-tool.d.ts.map +1 -0
- package/dist/recipe-engine/tools/ensure-dirs-tool.js +130 -0
- package/dist/recipe-engine/tools/ensure-dirs-tool.js.map +1 -0
- package/dist/recipe-engine/tools/index.d.ts +126 -0
- package/dist/recipe-engine/tools/index.d.ts.map +1 -0
- package/dist/recipe-engine/tools/index.js +290 -0
- package/dist/recipe-engine/tools/index.js.map +1 -0
- package/dist/recipe-engine/tools/install-tool.d.ts +20 -0
- package/dist/recipe-engine/tools/install-tool.d.ts.map +1 -0
- package/dist/recipe-engine/tools/install-tool.js +194 -0
- package/dist/recipe-engine/tools/install-tool.js.map +1 -0
- package/dist/recipe-engine/tools/parallel-tool.d.ts +21 -0
- package/dist/recipe-engine/tools/parallel-tool.d.ts.map +1 -0
- package/dist/recipe-engine/tools/parallel-tool.js +134 -0
- package/dist/recipe-engine/tools/parallel-tool.js.map +1 -0
- package/dist/recipe-engine/tools/patch-tool.d.ts +21 -0
- package/dist/recipe-engine/tools/patch-tool.d.ts.map +1 -0
- package/dist/recipe-engine/tools/patch-tool.js +248 -0
- package/dist/recipe-engine/tools/patch-tool.js.map +1 -0
- package/dist/recipe-engine/tools/prompt-tool.d.ts +25 -0
- package/dist/recipe-engine/tools/prompt-tool.d.ts.map +1 -0
- package/dist/recipe-engine/tools/prompt-tool.js +162 -0
- package/dist/recipe-engine/tools/prompt-tool.js.map +1 -0
- package/dist/recipe-engine/tools/query-tool.d.ts +21 -0
- package/dist/recipe-engine/tools/query-tool.d.ts.map +1 -0
- package/dist/recipe-engine/tools/query-tool.js +249 -0
- package/dist/recipe-engine/tools/query-tool.js.map +1 -0
- package/dist/recipe-engine/tools/recipe-tool.d.ts +103 -0
- package/dist/recipe-engine/tools/recipe-tool.d.ts.map +1 -0
- package/dist/recipe-engine/tools/recipe-tool.js +617 -0
- package/dist/recipe-engine/tools/recipe-tool.js.map +1 -0
- package/dist/recipe-engine/tools/registry.d.ts +151 -0
- package/dist/recipe-engine/tools/registry.d.ts.map +1 -0
- package/dist/recipe-engine/tools/registry.js +244 -0
- package/dist/recipe-engine/tools/registry.js.map +1 -0
- package/dist/recipe-engine/tools/sequence-tool.d.ts +22 -0
- package/dist/recipe-engine/tools/sequence-tool.d.ts.map +1 -0
- package/dist/recipe-engine/tools/sequence-tool.js +122 -0
- package/dist/recipe-engine/tools/sequence-tool.js.map +1 -0
- package/dist/recipe-engine/tools/shell-tool.d.ts +25 -0
- package/dist/recipe-engine/tools/shell-tool.d.ts.map +1 -0
- package/dist/recipe-engine/tools/shell-tool.js +149 -0
- package/dist/recipe-engine/tools/shell-tool.js.map +1 -0
- package/dist/recipe-engine/tools/template-tool.d.ts +88 -0
- package/dist/recipe-engine/tools/template-tool.d.ts.map +1 -0
- package/dist/recipe-engine/tools/template-tool.js +613 -0
- package/dist/recipe-engine/tools/template-tool.js.map +1 -0
- package/dist/recipe-engine/types.d.ts +963 -0
- package/dist/recipe-engine/types.d.ts.map +1 -0
- package/dist/recipe-engine/types.js +94 -0
- package/dist/recipe-engine/types.js.map +1 -0
- package/dist/template-engines/ai-tags.d.ts +26 -0
- package/dist/template-engines/ai-tags.d.ts.map +1 -0
- package/dist/template-engines/ai-tags.js +233 -0
- package/dist/template-engines/ai-tags.js.map +1 -0
- package/dist/template-engines/index.d.ts +8 -0
- package/dist/template-engines/index.d.ts.map +1 -0
- package/dist/template-engines/index.js +8 -0
- package/dist/template-engines/index.js.map +1 -0
- package/dist/template-engines/jig-engine.d.ts +47 -0
- package/dist/template-engines/jig-engine.d.ts.map +1 -0
- package/dist/template-engines/jig-engine.js +173 -0
- package/dist/template-engines/jig-engine.js.map +1 -0
- package/dist/utils/coerce-value.d.ts +7 -0
- package/dist/utils/coerce-value.d.ts.map +1 -0
- package/dist/utils/coerce-value.js +18 -0
- package/dist/utils/coerce-value.js.map +1 -0
- package/dist/utils/diff.d.ts +8 -0
- package/dist/utils/diff.d.ts.map +1 -0
- package/dist/utils/diff.js +10 -0
- package/dist/utils/diff.js.map +1 -0
- package/dist/utils/global-packages.d.ts +11 -0
- package/dist/utils/global-packages.d.ts.map +1 -0
- package/dist/utils/global-packages.js +88 -0
- package/dist/utils/global-packages.js.map +1 -0
- package/dist/utils/pager.d.ts +6 -0
- package/dist/utils/pager.d.ts.map +1 -0
- package/dist/utils/pager.js +41 -0
- package/dist/utils/pager.js.map +1 -0
- package/help/cookbook/info.md +35 -0
- package/help/cookbook/list.md +37 -0
- package/help/gen.md +26 -0
- package/help/recipe/run.md +52 -0
- package/help/recipe/validate.md +51 -0
- package/oclif.manifest.json +580 -0
- package/package.json +120 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"step-executor.js","sourceRoot":"","sources":["../../src/recipe-engine/step-executor.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,WAAW,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAqB,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EACN,uBAAuB,EAKvB,kBAAkB,EAIlB,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,WAAW,EACX,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,cAAc,EACd,WAAW,EACX,cAAc,GACd,MAAM,YAAY,CAAC;AAyHpB;;GAEG;AACH,MAAM,cAAc,GAAuB;IAC1C,cAAc,EAAE,EAAE;IAClB,cAAc,EAAE,KAAK,EAAE,aAAa;IACpC,cAAc,EAAE,CAAC;IACjB,eAAe,EAAE,KAAK;IACtB,uBAAuB,EAAE,IAAI;IAC7B,cAAc,EAAE,IAAI;IACpB,sBAAsB,EAAE,IAAI;IAC5B,sBAAsB,EAAE,IAAI,EAAE,MAAM;IACpC,mBAAmB,EAAE,GAAG;CACxB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,OAAO,YAAa,SAAQ,YAAY;IAC5B,YAAY,CAAe;IAC3B,KAAK,CAAiC;IACtC,MAAM,CAAqB;IAE5C,kBAAkB;IACD,gBAAgB,GAAG,IAAI,GAAG,EAAiC,CAAC;IAC5D,YAAY,GAAG,IAAI,GAAG,EAGpC,CAAC;IACI,gBAAgB,GAAG,CAAC,CAAC;IAE7B,gCAAgC;IACxB,OAAO,CAAwB;IAC/B,QAAQ,CAAyB;IAEzC,YAAY,YAA2B,EAAE,SAAsC,EAAE;QAChF,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,YAAY,GAAG,YAAY,IAAI,eAAe,EAAE,CAAC;QACtD,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,4BAA4B,CAAC,CAAC;QACvD,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,MAAM,EAAE,CAAC;QAE/C,IAAI,CAAC,KAAK,CAAC,2CAA2C,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACtE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CACjB,KAAwB,EACxB,OAAoB,EACpB,UAAgC,EAAE;QAElC,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,IAAI,CAAC,KAAK,CAAC,4CAA4C,EAAE,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACpF,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QAErE,IAAI,CAAC;YACJ,2CAA2C;YAC3C,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;gBAChC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC1B,CAAC;YAED,IAAI,IAAI,CAAC,MAAM,CAAC,sBAAsB,EAAE,CAAC;gBACxC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACvC,CAAC;YAED,6BAA6B;YAC7B,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC1B,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAE9B,mDAAmD;YACnD,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAErE,IAAI,CAAC,KAAK,CAAC,mCAAmC,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC7E,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC;YAE1E,2EAA2E;YAC3E,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;YAE9F,mBAAmB;YACnB,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBAChD,IAAI,CAAC,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;gBACzD,IAAI,CAAC,eAAe,EAAE,CAAC;YACxB,CAAC;YAED,IAAI,CAAC,KAAK,CAAC,uCAAuC,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC;YACzF,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE;gBAChC,WAAW;gBACX,OAAO;gBACP,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;gBAChC,OAAO,EAAE,IAAI,CAAC,OAAO;aACrB,CAAC,CAAC;YAEH,OAAO,OAAO,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,KAAK,CACT,gCAAgC,EAChC,WAAW,EACX,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACtD,CAAC;YAEF,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;gBAC7B,WAAW;gBACX,KAAK;gBACL,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;aAChC,CAAC,CAAC;YAEH,IAAI,KAAK,YAAY,aAAa,EAAE,CAAC;gBACpC,MAAM,KAAK,CAAC;YACb,CAAC;YAED,MAAM,YAAY,CAAC,WAAW,CAC7B,SAAS,CAAC,cAAc,EACxB,0BAA0B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAClF,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,CACpC,CAAC;QACH,CAAC;gBAAS,CAAC;YACV,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC3C,CAAC;IACF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAChB,IAAqB,EACrB,OAAoB,EACpB,UAAgC,EAAE;QAElC,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACjC,MAAM,UAAU,GAAe;YAC9B,MAAM,EAAE,SAAS;YACjB,QAAQ,EAAE,IAAI,CAAC,IAAI;YACnB,QAAQ,EAAE,IAAI,CAAC,IAAI;YACnB,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,UAAU,EAAE,CAAC;YACb,qBAAqB,EAAE,IAAI,EAAE,mDAAmD;YAChF,eAAe,EAAE,IAAI;SACrB,CAAC;QAEF,IAAI,CAAC,KAAK,CAAC,gCAAgC,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACnE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAEpE,IAAI,CAAC;YACJ,UAAU,CAAC,MAAM,GAAG,SAAS,CAAC;YAE9B,gCAAgC;YAChC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACf,UAAU,CAAC,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;gBAErF,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC;oBACjC,IAAI,CAAC,KAAK,CAAC,sCAAsC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC9D,UAAU,CAAC,MAAM,GAAG,SAAS,CAAC;oBAC9B,UAAU,CAAC,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;oBAChC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,aAAa,CAAC;oBAEjD,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;oBACrE,OAAO,UAAU,CAAC;gBACnB,CAAC;YACF,CAAC;YAED,4DAA4D;YAC5D,yEAAyE;YACzE,kFAAkF;YAClF,IACC,OAAO,CAAC,WAAW;gBACnB,IAAI,CAAC,IAAI,KAAK,UAAU;gBACxB,IAAI,CAAC,IAAI,KAAK,UAAU;gBACxB,IAAI,CAAC,IAAI,KAAK,UAAU,EACvB,CAAC;gBACF,IAAI,CAAC,KAAK,CAAC,qDAAqD,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxF,UAAU,CAAC,MAAM,GAAG,SAAS,CAAC;gBAC9B,UAAU,CAAC,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;gBAChC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,aAAa,CAAC;gBAEjD,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;gBACvE,OAAO,UAAU,CAAC;YACnB,CAAC;YAED,4BAA4B;YAC5B,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;YACjF,IAAI,SAA4B,CAAC;YAEjC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;gBACxD,IAAI,CAAC;oBACJ,UAAU,CAAC,UAAU,GAAG,OAAO,CAAC;oBAEhC,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;wBACjB,IAAI,CAAC,KAAK,CAAC,mCAAmC,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,GAAG,CAAC,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC;wBACxF,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC;oBACrD,CAAC;oBAED,wCAAwC;oBACxC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;oBAE1E,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC;oBAEnC,8CAA8C;oBAC9C,IAAI,UAAU,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;wBACpC,UAAU,CAAC,MAAM,GAAG,QAAQ,CAAC;wBAC7B,UAAU,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;wBACpC,UAAU,CAAC,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;wBAChC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,aAAa,CAAC;wBACjD,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,IAAI,SAAS,IAAI,CAAC,IAAI,UAAU,CAAC,CAAC;oBAC5E,CAAC;oBAED,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC;oBAChC,UAAU,CAAC,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;oBAChC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,aAAa,CAAC;oBAEjD,wCAAwC;oBACxC,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;oBAEhD,gEAAgE;oBAChE,IAAI,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC1D,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;wBAC7E,UAAU,CAAC,MAAM,GAAG,EAAE,GAAG,UAAU,CAAC,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC;wBACzD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;oBAC3C,CAAC;oBAED,IAAI,CAAC,KAAK,CAAC,yCAAyC,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;oBACtF,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;wBAC3B,IAAI,EAAE,IAAI,CAAC,IAAI;wBACf,QAAQ,EAAE,IAAI,CAAC,IAAI;wBACnB,QAAQ,EAAE,UAAU,CAAC,QAAQ;wBAC7B,OAAO,EAAE,OAAO;qBAChB,CAAC,CAAC;oBAEH,OAAO,UAAU,CAAC;gBACnB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBAChB,SAAS,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;oBAEtE,IAAI,OAAO,GAAG,UAAU,EAAE,CAAC;wBAC1B,IAAI,CAAC,KAAK,CAAC,kCAAkC,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;wBAC7E,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;4BACvB,IAAI,EAAE,IAAI,CAAC,IAAI;4BACf,OAAO,EAAE,OAAO,GAAG,CAAC;4BACpB,KAAK,EAAE,SAAS;yBAChB,CAAC,CAAC;oBACJ,CAAC;gBACF,CAAC;YACF,CAAC;YAED,wBAAwB;YACxB,UAAU,CAAC,MAAM,GAAG,QAAQ,CAAC;YAC7B,UAAU,CAAC,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;YAChC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,aAAa,CAAC;YACjD,UAAU,CAAC,KAAK,GAAG;gBAClB,OAAO,EAAE,SAAS,EAAE,OAAO,IAAI,uBAAuB;gBACtD,KAAK,EAAE,SAAS,EAAE,KAAK;gBACvB,KAAK,EAAE,SAAS;aAChB,CAAC;YAEF,IAAI,CAAC,KAAK,CAAC,8CAA8C,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAClF,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;gBACxB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,QAAQ,EAAE,IAAI,CAAC,IAAI;gBACnB,KAAK,EAAE,SAAS;gBAChB,OAAO,EAAE,UAAU;aACnB,CAAC,CAAC;YAEH,MAAM,IAAI,kBAAkB,CAC3B,SAAS,IAAI,CAAC,IAAI,kBAAkB,UAAU,aAAa,SAAS,EAAE,OAAO,EAAE,EAC/E,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,IAAI,EACT,SAAS,CACT,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,UAAU,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACpC,UAAU,CAAC,MAAM,GAAG,QAAQ,CAAC;gBAC7B,UAAU,CAAC,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;gBAChC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,aAAa,CAAC;gBACjD,UAAU,CAAC,KAAK,GAAG;oBAClB,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;oBAC/D,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;oBACvD,KAAK,EAAE,KAAK;iBACZ,CAAC;YACH,CAAC;YAED,MAAM,KAAK,CAAC;QACb,CAAC;IACF,CAAC;IAED;;OAEG;IACH,UAAU;QACT,OAAO,IAAI,CAAC,OAAO,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,WAAW;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,mBAAmB;QACxB,IAAI,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;QAEhD,MAAM,QAAQ,GAAoB,EAAE,CAAC;QAErC,KAAK,MAAM,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACnD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CAAC,WAAmB;QACxC,IAAI,CAAC,KAAK,CAAC,0BAA0B,EAAE,WAAW,CAAC,CAAC;QAEpD,8CAA8C;QAC9C,KAAK,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtD,IAAI,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;gBACtC,IAAI,CAAC;oBACJ,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC/B,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBAChB,IAAI,CAAC,KAAK,CACT,qDAAqD,EACrD,QAAQ,EACR,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACtD,CAAC;gBACH,CAAC;YACF,CAAC;QACF,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,iCAAiC;IAEzB,KAAK,CAAC,mBAAmB,CAChC,KAAwB,EACxB,OAAoB;QAEpB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,yBAAyB;QACzB,MAAM,eAAe,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAEzD,+BAA+B;QAC/B,IAAI,CAAC,0BAA0B,CAAC,eAAe,CAAC,CAAC;QAEjD,iDAAiD;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;QAElE,MAAM,IAAI,GAAwB;YACjC,MAAM,EAAE;gBACP,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI;gBACzB,WAAW,EAAE,uBAAuB;gBACpC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO;gBAC/B,MAAM,EAAE,SAAS;gBACjB,QAAQ,EAAE,SAAS;gBACnB,IAAI,EAAE,EAAE;gBACR,SAAS,EAAE,OAAO,CAAC,eAAe;gBAClC,KAAK;gBACL,QAAQ,EAAE,EAAE;gBACZ,YAAY,EAAE,EAAE;gBAChB,OAAO,EAAE,EAAE;aACX;YACD,MAAM;YACN,eAAe;YACf,iBAAiB,EAAE,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC;SACxD,CAAC;QAEF,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAChD,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACnE,CAAC;QAED,OAAO,IAAI,CAAC;IACb,CAAC;IAEO,oBAAoB,CAAC,KAAwB;QACpD,MAAM,KAAK,GAAG,IAAI,GAAG,EAA8B,CAAC;QAEpD,4EAA4E;QAC5E,8DAA8D;QAC9D,2EAA2E;QAC3E,wEAAwE;QACxE,4BAA4B;QAC5B,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAEjF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,IAAI,YAAsB,CAAC;YAE3B,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACjD,oCAAoC;gBACpC,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;YACpC,CAAC;iBAAM,IAAI,CAAC,eAAe,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACtC,sEAAsE;gBACtE,YAAY,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACpC,CAAC;iBAAM,CAAC;gBACP,YAAY,GAAG,EAAE,CAAC;YACnB,CAAC;YAED,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE;gBACpB,QAAQ,EAAE,IAAI,CAAC,IAAI;gBACnB,YAAY;gBACZ,UAAU,EAAE,EAAE;gBACd,QAAQ,EAAE,CAAC;gBACX,cAAc,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI;aACrC,CAAC,CAAC;QACJ,CAAC;QAED,gCAAgC;QAChC,KAAK,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC;YACtC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACzC,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACnC,IAAI,OAAO,EAAE,CAAC;oBACb,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACnC,CAAC;YACF,CAAC;QACF,CAAC;QAED,+CAA+C;QAC/C,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAEhC,OAAO,KAAK,CAAC;IACd,CAAC;IAEO,mBAAmB,CAAC,KAAsC;QACjE,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAElC,MAAM,iBAAiB,GAAG,CAAC,QAAgB,EAAU,EAAE;YACtD,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC3B,OAAO,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,QAAQ,IAAI,CAAC,CAAC;YAC3C,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACtB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC;YAElC,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACpC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;gBAClB,OAAO,CAAC,CAAC;YACV,CAAC;YAED,IAAI,cAAc,GAAG,CAAC,CAAC,CAAC;YACxB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACzC,MAAM,WAAW,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;gBAC/C,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;YACxD,CAAC;YAED,IAAI,CAAC,QAAQ,GAAG,cAAc,GAAG,CAAC,CAAC;YACnC,OAAO,IAAI,CAAC,QAAQ,CAAC;QACtB,CAAC,CAAC;QAEF,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;YACrC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAC7B,CAAC;IACF,CAAC;IAEO,0BAA0B,CAAC,KAAsC;QACxE,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAClC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;QAEnC,MAAM,KAAK,GAAG,CAAC,QAAgB,EAAE,OAAiB,EAAE,EAAQ,EAAE;YAC7D,IAAI,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5B,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,EAAE,QAAQ,CAAC,CAAC;gBAClC,MAAM,IAAI,uBAAuB,CAChC,iCAAiC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EACrD,KAAK,CACL,CAAC;YACH,CAAC;YAED,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC3B,OAAO;YACR,CAAC;YAED,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACvB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC;YAElC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACzC,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;YACrC,CAAC;YAED,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACvB,CAAC,CAAC;QAEF,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;YACrC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACjB,CAAC;IACF,CAAC;IAEO,qBAAqB,CAC5B,KAAwB,EACxB,KAAsC;QAEtC,MAAM,MAAM,GAAkC,EAAE,CAAC;QACjD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;QACnC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QAEhE,OAAO,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YACrC,MAAM,UAAU,GAAa,EAAE,CAAC;YAEhC,wCAAwC;YACxC,KAAK,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC;gBACtC,IAAI,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC;oBAAE,SAAS;gBAErC,0CAA0C;gBAC1C,MAAM,qBAAqB,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gBAElF,IAAI,qBAAqB,EAAE,CAAC;oBAC3B,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC3B,CAAC;YACF,CAAC;YAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC7B,MAAM,YAAY,CAAC,WAAW,CAC7B,SAAS,CAAC,cAAc,EACxB,qDAAqD,EACrD,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,CACvD,CAAC;YACH,CAAC;YAED,8CAA8C;YAC9C,MAAM,gBAAgB,GACrB,IAAI,CAAC,MAAM,CAAC,uBAAuB;gBACnC,UAAU,CAAC,MAAM,GAAG,CAAC;gBACrB,UAAU,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,EAAE;oBAC7B,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC;oBACpC,OAAO,IAAI,CAAC,QAAQ,KAAK,KAAK,CAAC;gBAChC,CAAC,CAAC,CAAC;YAEJ,MAAM,CAAC,IAAI,CAAC;gBACX,KAAK,EAAE,MAAM,CAAC,MAAM;gBACpB,KAAK,EAAE,UAAU;gBACjB,QAAQ,EAAE,gBAAgB;aAC1B,CAAC,CAAC;YAEH,yBAAyB;YACzB,UAAU,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC1D,CAAC;QAED,OAAO,MAAM,CAAC;IACf,CAAC;IAEO,KAAK,CAAC,oBAAoB,CACjC,IAAyB,EACzB,OAAoB,EACpB,OAA6B,EAC7B,WAAmB;QAEnB,MAAM,OAAO,GAAiB,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QAE5E,IAAI,IAAI,CAAC,MAAM,CAAC,sBAAsB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACzD,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QAChD,CAAC;QAED,KAAK,IAAI,UAAU,GAAG,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC;YACxE,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAEtC,IAAI,CAAC,KAAK,CACT,iDAAiD,EACjD,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,KAAK,CAAC,MAAM,EAClB,KAAK,CAAC,QAAQ,CACd,CAAC;YAEF,IAAI,IAAI,CAAC,MAAM,CAAC,sBAAsB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACzD,IAAI,CAAC,QAAQ,CAAC,YAAY,GAAG,UAAU,GAAG,CAAC,CAAC;gBAC5C,IAAI,CAAC,QAAQ,CAAC,gBAAgB,GAAG,SAAS,KAAK,CAAC,KAAK,GAAG,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACxF,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;gBAC1B,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;aACxB,CAAC,CAAC;YAEH,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,YAAY,CAC3C,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC,EACrD,OAAO,EACP,OAAO,EACP,KAAK,CAAC,QAAQ,EACd,WAAW,CACX,CAAC;YAEF,OAAO,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;YAE9B,gDAAgD;YAChD,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC/B,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAClD,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;gBAC5B,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,OAAO,EAAE,YAAY;aACrB,CAAC,CAAC;YAEH,wCAAwC;YACxC,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;YACjE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;gBACnF,MAAM,IAAI,kBAAkB,CAC3B,SAAS,KAAK,CAAC,KAAK,kBAAkB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAChF,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,EAClB,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAClB,CAAC;YACH,CAAC;QACF,CAAC;QAED,OAAO,OAAO,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,YAAY,CACzB,KAAwB,EACxB,OAAoB,EACpB,OAA6B,EAC7B,QAAiB,EACjB,WAAmB;QAEnB,IAAI,CAAC,QAAQ,EAAE,CAAC;YACf,6BAA6B;YAC7B,MAAM,OAAO,GAAiB,EAAE,CAAC;YAEjC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBAC1B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;gBAC9D,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAErB,kBAAkB;gBAClB,IAAI,IAAI,CAAC,MAAM,CAAC,sBAAsB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACzD,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;wBACnC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC9C,CAAC;yBAAM,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;wBACvC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC3C,CAAC;yBAAM,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;wBACxC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC5C,CAAC;oBACD,IAAI,CAAC,wBAAwB,EAAE,CAAC;gBACjC,CAAC;YACF,CAAC;YAED,OAAO,OAAO,CAAC;QAChB,CAAC;QAED,mDAAmD;QACnD,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QACvE,MAAM,OAAO,GAAiB,EAAE,CAAC;QAEjC,MAAM,sBAAsB,GAAG,KAAK,EAAE,QAA2B,EAAiB,EAAE;YACnF,MAAM,QAAQ,GAAoB,EAAE,CAAC;YACrC,IAAI,KAAK,GAAG,CAAC,CAAC;YAEd,MAAM,WAAW,GAAG,KAAK,IAAmB,EAAE;gBAC7C,IAAI,KAAK,IAAI,QAAQ,CAAC,MAAM;oBAAE,OAAO;gBAErC,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC/B,MAAM,OAAO,GAAG,GAAG,WAAW,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBAE9C,IAAI,CAAC;oBACJ,qBAAqB;oBACrB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;oBAChF,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;oBAEtE,IAAI,IAAI,CAAC,MAAM,CAAC,sBAAsB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;wBACzD,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC5C,CAAC;oBAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;oBAC9D,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAErB,kBAAkB;oBAClB,IAAI,IAAI,CAAC,MAAM,CAAC,sBAAsB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;wBACzD,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBACnE,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE,CAAC;4BACzB,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;wBACpD,CAAC;wBAED,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;4BACnC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBAC9C,CAAC;6BAAM,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;4BACvC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBAC3C,CAAC;6BAAM,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;4BACxC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBAC5C,CAAC;wBACD,IAAI,CAAC,wBAAwB,EAAE,CAAC;oBACjC,CAAC;gBACF,CAAC;wBAAS,CAAC;oBACV,iDAAiD;oBACjD,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBACnD,IAAI,WAAW,EAAE,CAAC;wBACjB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;oBAChF,CAAC;oBACD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACnC,CAAC;gBAED,oBAAoB;gBACpB,OAAO,WAAW,EAAE,CAAC;YACtB,CAAC,CAAC;YAEF,8BAA8B;YAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7D,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;YAC9B,CAAC;YAED,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7B,CAAC,CAAC;QAEF,MAAM,sBAAsB,CAAC,KAAK,CAAC,CAAC;QAEpC,iCAAiC;QACjC,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAChD,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,kBAAkB,GAAG,IAAI,CAAC,GAAG,CACzD,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,kBAAkB,EAC/C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,CACnC,CAAC;YACF,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,cAAc,EAAE,CAAC;QAC/C,CAAC;QAED,OAAO,OAAO,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAChC,IAAqB,EACrB,OAAoB,EACpB,OAA6B;QAE7B,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAElE,IAAI,CAAC,KAAK,CAAC,mCAAmC,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAEhF,IAAI,CAAC;YACJ,4BAA4B;YAC5B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;gBAC3B,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YACzB,CAAC;YAED,8BAA8B;YAC9B,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACtD,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;gBACzB,MAAM,YAAY,CAAC,WAAW,CAC7B,SAAS,CAAC,gBAAgB,EAC1B,2BAA2B,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EACzD,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAC/D,CAAC;YACH,CAAC;YAED,4BAA4B;YAC5B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAEjD,IAAI,CAAC,KAAK,CAAC,8BAA8B,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YACtD,OAAO,MAAM,CAAC;QACf,CAAC;gBAAS,CAAC;YACV,gCAAgC;YAChC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QACtD,CAAC;IACF,CAAC;IAEO,WAAW,CAAC,IAAqB;QACxC,+CAA+C;QAC/C,uFAAuF;QACvF,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,MAAM,CAAC;QACpB,CAAC;QACD,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC,OAAO,CAAC;QACrB,CAAC;QACD,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACpB,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,OAAO,SAAS,CAAC;QAClB,CAAC;QAED,iDAAiD;QACjD,MAAM,QAAQ,GAAI,IAAY,CAAC,IAAgB,CAAC;QAChD,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC;YACzF,OAAO,SAAS,CAAC;QAClB,CAAC;QAED,MAAM,YAAY,CAAC,WAAW,CAC7B,SAAS,CAAC,gBAAgB,EAC1B,sBAAuB,IAAY,CAAC,IAAI,EAAE,EAC1C,EAAE,IAAI,EAAG,IAAY,CAAC,IAAI,EAAE,CAC5B,CAAC;IACH,CAAC;IAEO,kBAAkB,CAAC,MAAkB,EAAE,UAAe;QAC7D,6DAA6D;QAC7D,IAAI,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;YAClD,IAAI,UAAU,CAAC,cAAc,EAAE,CAAC;gBAC/B,MAAM,CAAC,YAAY,GAAG,UAAU,CAAC,cAAc,CAAC;YACjD,CAAC;YACD,IAAI,UAAU,CAAC,cAAc,EAAE,CAAC;gBAC/B,MAAM,CAAC,aAAa,GAAG,UAAU,CAAC,cAAc,CAAC;YAClD,CAAC;YACD,IAAI,UAAU,CAAC,YAAY,EAAE,CAAC;gBAC7B,MAAM,CAAC,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC;YAC/C,CAAC;YACD,IAAI,UAAU,CAAC,aAAa,EAAE,CAAC;gBAC9B,MAAM,CAAC,aAAa,GAAG,UAAU,CAAC,aAAa,CAAC;YACjD,CAAC;YACD,IAAI,UAAU,CAAC,YAAY,EAAE,CAAC;gBAC7B,MAAM,CAAC,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC;YAC/C,CAAC;QACF,CAAC;IACF,CAAC;IAEO,aAAa,CAAC,KAAwB;QAC7C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,MAAM,YAAY,CAAC,WAAW,CAAC,SAAS,CAAC,gBAAgB,EAAE,wBAAwB,CAAC,CAAC;QACtF,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,YAAY,CAAC,WAAW,CAAC,SAAS,CAAC,gBAAgB,EAAE,+BAA+B,CAAC,CAAC;QAC7F,CAAC;QAED,iCAAiC;QACjC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;QACpC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBAChB,MAAM,YAAY,CAAC,WAAW,CAAC,SAAS,CAAC,gBAAgB,EAAE,uBAAuB,CAAC,CAAC;YACrF,CAAC;YAED,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9B,MAAM,YAAY,CAAC,WAAW,CAC7B,SAAS,CAAC,gBAAgB,EAC1B,wBAAwB,IAAI,CAAC,IAAI,EAAE,CACnC,CAAC;YACH,CAAC;YACD,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEzB,IAAI,CAAE,IAAY,CAAC,IAAI,EAAE,CAAC;gBACzB,MAAM,YAAY,CAAC,WAAW,CAC7B,SAAS,CAAC,gBAAgB,EAC1B,QAAS,IAAY,CAAC,IAAI,sBAAsB,CAChD,CAAC;YACH,CAAC;QACF,CAAC;QAED,iDAAiD;QACjD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YAC1B,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACpB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;oBACtC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;wBAC7B,MAAM,YAAY,CAAC,WAAW,CAC7B,SAAS,CAAC,gBAAgB,EAC1B,QAAQ,IAAI,CAAC,IAAI,6BAA6B,OAAO,EAAE,CACvD,CAAC;oBACH,CAAC;gBACF,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;IAEO,eAAe,CAAC,OAAoB;QAC3C,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,MAAM,YAAY,CAAC,WAAW,CAAC,SAAS,CAAC,gBAAgB,EAAE,0BAA0B,CAAC,CAAC;QACxF,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;YAChC,MAAM,YAAY,CAAC,WAAW,CAC7B,SAAS,CAAC,gBAAgB,EAC1B,iDAAiD,CACjD,CAAC;QACH,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACrB,MAAM,YAAY,CAAC,WAAW,CAC7B,SAAS,CAAC,gBAAgB,EAC1B,yCAAyC,CACzC,CAAC;QACH,CAAC;IACF,CAAC;IAEO,mBAAmB,CAAC,OAAe;QAC1C,kCAAkC;QAClC,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,WAAW;QACnC,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,aAAa;QAErC,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,IAAI,OAAO,EAAE,QAAQ,CAAC,CAAC;QAEzD,oBAAoB;QACpB,MAAM,MAAM,GAAG,KAAK,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;QACpD,KAAK,IAAI,MAAM,CAAC;QAEhB,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,sBAAsB;IACpD,CAAC;IAEO,yBAAyB,CAAC,KAAwB;QACzD,4DAA4D;QAC5D,MAAM,WAAW,GAA6B;YAC7C,QAAQ,EAAE,IAAI,EAAE,oBAAoB;YACpC,MAAM,EAAE,IAAI,EAAE,oBAAoB;YAClC,OAAO,EAAE,KAAK,EAAE,qBAAqB;YACrC,MAAM,EAAE,KAAK,EAAE,mCAAmC;YAClD,KAAK,EAAE,IAAI,EAAE,oBAAoB;YACjC,MAAM,EAAE,KAAK,EAAE,mCAAmC;YAClD,QAAQ,EAAE,CAAC,EAAE,kCAAkC;YAC/C,QAAQ,EAAE,CAAC,EAAE,kCAAkC;YAC/C,EAAE,EAAE,KAAK,EAAE,qCAAqC;YAChD,OAAO,EAAE,KAAK,EAAE,uCAAuC;YACvD,KAAK,EAAE,GAAG,EAAE,oCAAoC;YAChD,KAAK,EAAE,GAAG,EAAE,uCAAuC;YACnD,aAAa,EAAE,EAAE,EAAE,0BAA0B;SAC7C,CAAC;QAEF,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YAC1B,aAAa,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;QACjD,CAAC;QAED,OAAO,aAAa,CAAC;IACtB,CAAC;IAEO,KAAK,CAAC,EAAU;QACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IAC1D,CAAC;IAEO,mBAAmB;QAC1B,OAAO,QAAQ,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACxD,CAAC;IAEO,iBAAiB;QACxB,IAAI,CAAC,OAAO,GAAG;YACd,kBAAkB,EAAE,CAAC;YACrB,kBAAkB,EAAE,IAAI,GAAG,EAAE;YAC7B,WAAW,EAAE;gBACZ,IAAI,EAAE,CAAC;gBACP,OAAO,EAAE,CAAC;gBACV,KAAK,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ;gBACrC,GAAG,EAAE,CAAC;aACN;YACD,eAAe,EAAE;gBAChB,kBAAkB,EAAE,CAAC;gBACrB,sBAAsB,EAAE,CAAC;gBACzB,cAAc,EAAE,CAAC;aACjB;YACD,MAAM,EAAE;gBACP,aAAa,EAAE,CAAC;gBAChB,YAAY,EAAE,CAAC;gBACf,iBAAiB,EAAE,EAAE;gBACrB,qBAAqB,EAAE,EAAE;aACzB;YACD,YAAY,EAAE;gBACb,cAAc,EAAE,CAAC;gBACjB,cAAc,EAAE,CAAC;gBACjB,QAAQ,EAAE,CAAC;aACX;SACD,CAAC;IACH,CAAC;IAEO,kBAAkB,CAAC,UAAkB;QAC5C,IAAI,CAAC,QAAQ,GAAG;YACf,YAAY,EAAE,CAAC;YACf,WAAW,EAAE,CAAC;YACd,YAAY,EAAE,EAAE;YAChB,cAAc,EAAE,EAAE;YAClB,WAAW,EAAE,EAAE;YACf,YAAY,EAAE,EAAE;YAChB,kBAAkB,EAAE,CAAC;YACrB,gBAAgB,EAAE,iBAAiB;SACnC,CAAC;IACH,CAAC;IAEO,wBAAwB;QAC/B,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAE3B,MAAM,UAAU,GACf,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM;YACnC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM;YAChC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM;YACjC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC;QAEnC,IAAI,UAAU,KAAK,CAAC;YAAE,OAAO;QAE7B,MAAM,SAAS,GACd,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM;YACnC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM;YAChC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC;QAEnC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC;IAC/E,CAAC;IAEO,eAAe;QACtB,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAE1B,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC;QAE9D,8CAA8C;QAC9C,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO;YAC/B,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAErE,0EAA0E;QAC1E,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CACvC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,EAC9B,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAC5B,CAAC;IACH,CAAC;CACD"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Action Tool Implementation for Recipe Step System
|
|
3
|
+
*
|
|
4
|
+
* This tool executes TypeScript decorator-based actions using the existing
|
|
5
|
+
* action system infrastructure. It integrates with the ActionExecutor,
|
|
6
|
+
* ActionRegistry, and ActionParameterResolver to provide seamless action
|
|
7
|
+
* execution within the Recipe Step System.
|
|
8
|
+
*/
|
|
9
|
+
import { type ActionStep, type StepContext, type StepExecutionOptions, type StepResult } from "#recipe-engine/types";
|
|
10
|
+
import { Tool, type ToolValidationResult } from "./base.js";
|
|
11
|
+
/**
|
|
12
|
+
* Action Tool for executing TypeScript decorator-based actions in the Recipe Step System
|
|
13
|
+
*
|
|
14
|
+
* Features:
|
|
15
|
+
* - Integration with existing ActionExecutor and ActionRegistry
|
|
16
|
+
* - Parameter resolution using ActionParameterResolver
|
|
17
|
+
* - Context preparation from StepContext to ActionContext
|
|
18
|
+
* - Action communication and lifecycle management
|
|
19
|
+
* - Rich error handling and retry logic
|
|
20
|
+
* - Performance tracking and resource management
|
|
21
|
+
*/
|
|
22
|
+
export declare class ActionTool extends Tool<ActionStep> {
|
|
23
|
+
private executor;
|
|
24
|
+
private registry;
|
|
25
|
+
private parameterResolver;
|
|
26
|
+
private defaultUtils;
|
|
27
|
+
private defaultLogger;
|
|
28
|
+
private executorInitialized;
|
|
29
|
+
constructor(name?: string, options?: Record<string, any>);
|
|
30
|
+
/**
|
|
31
|
+
* Initialize action tool and ensure action registry is populated
|
|
32
|
+
*/
|
|
33
|
+
protected onInitialize(): Promise<void>;
|
|
34
|
+
/**
|
|
35
|
+
* Validate action step configuration
|
|
36
|
+
*/
|
|
37
|
+
protected onValidate(step: ActionStep, context: StepContext): Promise<ToolValidationResult>;
|
|
38
|
+
/**
|
|
39
|
+
* Execute the action tool
|
|
40
|
+
*/
|
|
41
|
+
protected onExecute(step: ActionStep, context: StepContext, options?: StepExecutionOptions): Promise<StepResult>;
|
|
42
|
+
/**
|
|
43
|
+
* Tool-specific cleanup logic
|
|
44
|
+
*/
|
|
45
|
+
protected onCleanup(): Promise<void>;
|
|
46
|
+
/**
|
|
47
|
+
* Prepare ActionContext from StepContext
|
|
48
|
+
*/
|
|
49
|
+
private prepareActionContext;
|
|
50
|
+
/**
|
|
51
|
+
* Execute action with full lifecycle management
|
|
52
|
+
*/
|
|
53
|
+
private executeActionWithLifecycle;
|
|
54
|
+
/**
|
|
55
|
+
* Create StepResult from ActionResult
|
|
56
|
+
*/
|
|
57
|
+
private createStepResult;
|
|
58
|
+
/**
|
|
59
|
+
* Get action execution statistics
|
|
60
|
+
*/
|
|
61
|
+
getExecutionStats(): {
|
|
62
|
+
totalActions: number;
|
|
63
|
+
activeActions: number;
|
|
64
|
+
completedActions: number;
|
|
65
|
+
failedActions: number;
|
|
66
|
+
communicationStats: any;
|
|
67
|
+
};
|
|
68
|
+
/**
|
|
69
|
+
* Get available actions for this tool
|
|
70
|
+
*/
|
|
71
|
+
getAvailableActions(): Array<{
|
|
72
|
+
name: string;
|
|
73
|
+
description?: string;
|
|
74
|
+
category?: string;
|
|
75
|
+
parameterCount: number;
|
|
76
|
+
requiredParameters: string[];
|
|
77
|
+
}>;
|
|
78
|
+
/**
|
|
79
|
+
* Search actions by query
|
|
80
|
+
*/
|
|
81
|
+
searchActions(query: string): string[];
|
|
82
|
+
/**
|
|
83
|
+
* Get actions by category
|
|
84
|
+
*/
|
|
85
|
+
getActionsByCategory(category: string): string[];
|
|
86
|
+
/**
|
|
87
|
+
* Validate action parameters without execution
|
|
88
|
+
*/
|
|
89
|
+
validateActionParameters(actionName: string, parameters: Record<string, any>): Promise<{
|
|
90
|
+
valid: boolean;
|
|
91
|
+
errors: string[];
|
|
92
|
+
}>;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Action Tool Factory
|
|
96
|
+
*/
|
|
97
|
+
export declare class ActionToolFactory {
|
|
98
|
+
create(name?: string, options?: Record<string, any>): ActionTool;
|
|
99
|
+
getToolType(): "action";
|
|
100
|
+
validateConfig(config: Record<string, any>): ToolValidationResult;
|
|
101
|
+
}
|
|
102
|
+
export declare const actionToolFactory: ActionToolFactory;
|
|
103
|
+
//# sourceMappingURL=action-tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action-tool.d.ts","sourceRoot":"","sources":["../../../src/recipe-engine/tools/action-tool.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAQH,OAAO,EACN,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,oBAAoB,EACzB,KAAK,UAAU,EAEf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,IAAI,EAAE,KAAK,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAwB5D;;;;;;;;;;GAUG;AACH,qBAAa,UAAW,SAAQ,IAAI,CAAC,UAAU,CAAC;IAC/C,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,iBAAiB,CAA0B;IACnD,OAAO,CAAC,YAAY,CAAc;IAClC,OAAO,CAAC,aAAa,CAAe;IACpC,OAAO,CAAC,mBAAmB,CAAS;gBAExB,IAAI,SAAgB,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM;IAWnE;;OAEG;cACsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAmCtD;;OAEG;cACa,UAAU,CACzB,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,WAAW,GAClB,OAAO,CAAC,oBAAoB,CAAC;IAqIhC;;OAEG;cACa,SAAS,CACxB,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,WAAW,EACpB,OAAO,CAAC,EAAE,oBAAoB,GAC5B,OAAO,CAAC,UAAU,CAAC;IAqFtB;;OAEG;cACsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IASnD;;OAEG;YACW,oBAAoB;IAoElC;;OAEG;YACW,0BAA0B;IAqBxC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAwDxB;;OAEG;IACH,iBAAiB,IAAI;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,aAAa,EAAE,MAAM,CAAC;QACtB,gBAAgB,EAAE,MAAM,CAAC;QACzB,aAAa,EAAE,MAAM,CAAC;QACtB,kBAAkB,EAAE,GAAG,CAAC;KACxB;IAgBD;;OAEG;IACH,mBAAmB,IAAI,KAAK,CAAC;QAC5B,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,MAAM,CAAC;QACvB,kBAAkB,EAAE,MAAM,EAAE,CAAC;KAC7B,CAAC;IAaF;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;IAItC;;OAEG;IACH,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE;IAIhD;;OAEG;IACG,wBAAwB,CAC7B,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC7B,OAAO,CAAC;QACV,KAAK,EAAE,OAAO,CAAC;QACf,MAAM,EAAE,MAAM,EAAE,CAAC;KACjB,CAAC;CAGF;AAED;;GAEG;AACH,qBAAa,iBAAiB;IAC7B,MAAM,CAAC,IAAI,SAAgB,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAAG,UAAU;IAI3E,WAAW,IAAI,QAAQ;IAIvB,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,oBAAoB;CA+CjE;AAGD,eAAO,MAAM,iBAAiB,mBAA0B,CAAC"}
|
|
@@ -0,0 +1,473 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Action Tool Implementation for Recipe Step System
|
|
3
|
+
*
|
|
4
|
+
* This tool executes TypeScript decorator-based actions using the existing
|
|
5
|
+
* action system infrastructure. It integrates with the ActionExecutor,
|
|
6
|
+
* ActionRegistry, and ActionParameterResolver to provide seamless action
|
|
7
|
+
* execution within the Recipe Step System.
|
|
8
|
+
*/
|
|
9
|
+
import { ErrorCode, ErrorHandler, HypergenError } from "@hypercli/core";
|
|
10
|
+
import { ActionExecutor } from "#actions/executor";
|
|
11
|
+
import { ActionParameterResolver } from "#actions/parameter-resolver";
|
|
12
|
+
import { ActionRegistry } from "#actions/registry";
|
|
13
|
+
import { ConsoleActionLogger, DefaultActionUtils } from "#actions/utils";
|
|
14
|
+
import { isActionStep, } from "#recipe-engine/types";
|
|
15
|
+
import { Tool } from "./base.js";
|
|
16
|
+
/**
|
|
17
|
+
* Action Tool for executing TypeScript decorator-based actions in the Recipe Step System
|
|
18
|
+
*
|
|
19
|
+
* Features:
|
|
20
|
+
* - Integration with existing ActionExecutor and ActionRegistry
|
|
21
|
+
* - Parameter resolution using ActionParameterResolver
|
|
22
|
+
* - Context preparation from StepContext to ActionContext
|
|
23
|
+
* - Action communication and lifecycle management
|
|
24
|
+
* - Rich error handling and retry logic
|
|
25
|
+
* - Performance tracking and resource management
|
|
26
|
+
*/
|
|
27
|
+
export class ActionTool extends Tool {
|
|
28
|
+
executor;
|
|
29
|
+
registry;
|
|
30
|
+
parameterResolver;
|
|
31
|
+
defaultUtils;
|
|
32
|
+
defaultLogger;
|
|
33
|
+
executorInitialized = false;
|
|
34
|
+
constructor(name = "action-tool", options = {}) {
|
|
35
|
+
super("action", name, options);
|
|
36
|
+
// Initialize action system components
|
|
37
|
+
this.registry = ActionRegistry.getInstance();
|
|
38
|
+
this.parameterResolver = new ActionParameterResolver();
|
|
39
|
+
this.defaultUtils = new DefaultActionUtils();
|
|
40
|
+
this.defaultLogger = new ConsoleActionLogger();
|
|
41
|
+
this.executor = new ActionExecutor(options.communicationConfig);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Initialize action tool and ensure action registry is populated
|
|
45
|
+
*/
|
|
46
|
+
async onInitialize() {
|
|
47
|
+
this.debug("Initializing action tool and action system");
|
|
48
|
+
try {
|
|
49
|
+
// Register cleanup resource for communication manager
|
|
50
|
+
this.registerResource({
|
|
51
|
+
id: "action-communication",
|
|
52
|
+
type: "memory",
|
|
53
|
+
cleanup: () => {
|
|
54
|
+
this.executor.clearCommunicationState();
|
|
55
|
+
},
|
|
56
|
+
metadata: { communicationManager: true },
|
|
57
|
+
});
|
|
58
|
+
// Register resource for tracking active actions
|
|
59
|
+
this.registerResource({
|
|
60
|
+
id: "active-actions",
|
|
61
|
+
type: "memory",
|
|
62
|
+
cleanup: () => {
|
|
63
|
+
// Any active actions will be cleaned up by the executor
|
|
64
|
+
},
|
|
65
|
+
metadata: { activeActions: new Set() },
|
|
66
|
+
});
|
|
67
|
+
this.executorInitialized = true;
|
|
68
|
+
this.debug("Action tool initialized successfully");
|
|
69
|
+
}
|
|
70
|
+
catch (error) {
|
|
71
|
+
throw ErrorHandler.createError(ErrorCode.INTERNAL_ERROR, `Failed to initialize action tool: ${error instanceof Error ? error.message : String(error)}`, { phase: "initialize", cause: error });
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Validate action step configuration
|
|
76
|
+
*/
|
|
77
|
+
async onValidate(step, context) {
|
|
78
|
+
const errors = [];
|
|
79
|
+
const warnings = [];
|
|
80
|
+
const suggestions = [];
|
|
81
|
+
// Validate step is an action step
|
|
82
|
+
if (!isActionStep(step)) {
|
|
83
|
+
errors.push("Step is not a valid ActionStep");
|
|
84
|
+
return { isValid: false, errors, warnings, suggestions };
|
|
85
|
+
}
|
|
86
|
+
// Validate required fields
|
|
87
|
+
if (!step.action) {
|
|
88
|
+
errors.push("Action name is required");
|
|
89
|
+
return { isValid: false, errors, warnings, suggestions };
|
|
90
|
+
}
|
|
91
|
+
// Validate action exists in registry
|
|
92
|
+
const actionInfo = this.executor.getActionInfo(step.action);
|
|
93
|
+
if (!actionInfo.exists) {
|
|
94
|
+
errors.push(`Action '${step.action}' not found in registry`);
|
|
95
|
+
// Suggest similar action names
|
|
96
|
+
const availableActions = this.executor.getAvailableActionNames();
|
|
97
|
+
const similarActions = availableActions
|
|
98
|
+
.filter((name) => name.toLowerCase().includes(step.action.toLowerCase()) ||
|
|
99
|
+
step.action.toLowerCase().includes(name.toLowerCase()))
|
|
100
|
+
.slice(0, 3);
|
|
101
|
+
if (similarActions.length > 0) {
|
|
102
|
+
suggestions.push(`Similar actions available: ${similarActions.join(", ")}`);
|
|
103
|
+
}
|
|
104
|
+
return { isValid: false, errors, warnings, suggestions };
|
|
105
|
+
}
|
|
106
|
+
// Validate action parameters - for recipe steps, we're more lenient
|
|
107
|
+
// since missing required parameters can be prompted interactively
|
|
108
|
+
if (step.parameters) {
|
|
109
|
+
try {
|
|
110
|
+
const paramValidation = await this.executor.validateParameters(step.action, step.parameters);
|
|
111
|
+
if (!paramValidation.valid) {
|
|
112
|
+
// Convert parameter errors to warnings for recipe steps, unless they're type validation errors
|
|
113
|
+
for (const error of paramValidation.errors) {
|
|
114
|
+
if (error.includes("not provided") || error.includes("Required parameter")) {
|
|
115
|
+
// Missing parameter - this is fine for recipes, will be prompted
|
|
116
|
+
warnings.push(`Parameter will be prompted: ${error}`);
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
// Type validation or other errors - these are real errors
|
|
120
|
+
errors.push(error);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
catch (error) {
|
|
126
|
+
// If validation fails, it might be due to action not found, which we handle separately
|
|
127
|
+
this.debug("Parameter validation failed: %s", error instanceof Error ? error.message : String(error));
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
// Check for missing required parameters
|
|
131
|
+
if (actionInfo.requiredParameters && actionInfo.requiredParameters.length > 0) {
|
|
132
|
+
const providedParams = Object.keys(step.parameters || {});
|
|
133
|
+
const missingRequired = actionInfo.requiredParameters.filter((param) => !providedParams.includes(param));
|
|
134
|
+
if (missingRequired.length > 0) {
|
|
135
|
+
warnings.push(`Missing required parameters: ${missingRequired.join(", ")}`);
|
|
136
|
+
suggestions.push("These will be prompted interactively during execution");
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
// Validate communication configuration
|
|
140
|
+
if (step.actionConfig?.communication) {
|
|
141
|
+
const comm = step.actionConfig.communication;
|
|
142
|
+
if (comm.actionId && typeof comm.actionId !== "string") {
|
|
143
|
+
errors.push("actionId must be a string");
|
|
144
|
+
}
|
|
145
|
+
if (comm.subscribeTo && !Array.isArray(comm.subscribeTo)) {
|
|
146
|
+
errors.push("subscribeTo must be an array");
|
|
147
|
+
}
|
|
148
|
+
if (comm.reads && !Array.isArray(comm.reads)) {
|
|
149
|
+
errors.push("reads must be an array");
|
|
150
|
+
}
|
|
151
|
+
if (comm.writes && !Array.isArray(comm.writes)) {
|
|
152
|
+
errors.push("writes must be an array");
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
// Performance and complexity warnings
|
|
156
|
+
if (actionInfo.parameterCount && actionInfo.parameterCount > 10) {
|
|
157
|
+
warnings.push("Action has many parameters, consider using configuration file");
|
|
158
|
+
}
|
|
159
|
+
// Estimate execution time (basic heuristic)
|
|
160
|
+
let estimatedTime = 500; // Base time in ms
|
|
161
|
+
if (actionInfo.parameterCount) {
|
|
162
|
+
estimatedTime += actionInfo.parameterCount * 100; // Add time per parameter
|
|
163
|
+
}
|
|
164
|
+
if (step.parameters && Object.keys(step.parameters).length > 5) {
|
|
165
|
+
estimatedTime += 200; // Additional time for complex parameter resolution
|
|
166
|
+
}
|
|
167
|
+
const resourceRequirements = {
|
|
168
|
+
memory: 5 * 1024 * 1024, // 5MB base memory
|
|
169
|
+
disk: 0, // Actions typically don't use disk directly
|
|
170
|
+
network: false, // Actions may use network, but we can't predict
|
|
171
|
+
processes: 1,
|
|
172
|
+
};
|
|
173
|
+
return {
|
|
174
|
+
isValid: errors.length === 0,
|
|
175
|
+
errors,
|
|
176
|
+
warnings,
|
|
177
|
+
suggestions,
|
|
178
|
+
estimatedExecutionTime: estimatedTime,
|
|
179
|
+
resourceRequirements,
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Execute the action tool
|
|
184
|
+
*/
|
|
185
|
+
async onExecute(step, context, options) {
|
|
186
|
+
this.debug("Executing action step: %s -> %s", step.name, step.action);
|
|
187
|
+
const startTime = new Date();
|
|
188
|
+
const activeActionsResource = this.resources.get("active-actions");
|
|
189
|
+
try {
|
|
190
|
+
// Ensure executor is initialized
|
|
191
|
+
if (!this.executorInitialized) {
|
|
192
|
+
await this.onInitialize();
|
|
193
|
+
}
|
|
194
|
+
// Prepare action context from step context
|
|
195
|
+
const contextPrep = await this.prepareActionContext(step, context, options);
|
|
196
|
+
// Track active action
|
|
197
|
+
if (activeActionsResource?.metadata?.activeActions) {
|
|
198
|
+
activeActionsResource.metadata.activeActions.add(contextPrep.communication?.actionId || step.name);
|
|
199
|
+
}
|
|
200
|
+
this.debug("Action context prepared for %s: actionId=%s, params=%d", step.action, contextPrep.communication?.actionId, Object.keys(contextPrep.parameters).length);
|
|
201
|
+
// Execute action using the ActionExecutor
|
|
202
|
+
const actionResult = await this.executeActionWithLifecycle(step, contextPrep, options);
|
|
203
|
+
const endTime = new Date();
|
|
204
|
+
const duration = endTime.getTime() - startTime.getTime();
|
|
205
|
+
this.debug("Action %s completed successfully: %s (duration: %dms)", step.action, actionResult.success ? "SUCCESS" : "FAILED", duration);
|
|
206
|
+
// Create step result from action result
|
|
207
|
+
return this.createStepResult(step, actionResult, startTime, endTime, duration, contextPrep);
|
|
208
|
+
}
|
|
209
|
+
catch (error) {
|
|
210
|
+
const endTime = new Date();
|
|
211
|
+
const duration = endTime.getTime() - startTime.getTime();
|
|
212
|
+
this.debug("Action execution failed: %s", error instanceof Error ? error.message : String(error));
|
|
213
|
+
return {
|
|
214
|
+
status: "failed",
|
|
215
|
+
stepName: step.name,
|
|
216
|
+
toolType: "action",
|
|
217
|
+
startTime,
|
|
218
|
+
endTime,
|
|
219
|
+
duration,
|
|
220
|
+
retryCount: 0,
|
|
221
|
+
dependenciesSatisfied: true,
|
|
222
|
+
filesCreated: [],
|
|
223
|
+
filesModified: [],
|
|
224
|
+
filesDeleted: [],
|
|
225
|
+
error: {
|
|
226
|
+
message: error instanceof Error ? error.message : String(error),
|
|
227
|
+
code: error instanceof HypergenError ? error.code : "ACTION_EXECUTION_ERROR",
|
|
228
|
+
stack: error instanceof Error ? error.stack : undefined,
|
|
229
|
+
cause: error,
|
|
230
|
+
},
|
|
231
|
+
metadata: {
|
|
232
|
+
actionName: step.action,
|
|
233
|
+
executionPhase: "execution",
|
|
234
|
+
},
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
finally {
|
|
238
|
+
// Clean up active action tracking
|
|
239
|
+
if (activeActionsResource?.metadata?.activeActions) {
|
|
240
|
+
const actionId = step.actionConfig?.communication?.actionId || step.name;
|
|
241
|
+
activeActionsResource.metadata.activeActions.delete(actionId);
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Tool-specific cleanup logic
|
|
247
|
+
*/
|
|
248
|
+
async onCleanup() {
|
|
249
|
+
this.debug("Cleaning up action tool resources");
|
|
250
|
+
// Clear any remaining communication state
|
|
251
|
+
if (this.executorInitialized) {
|
|
252
|
+
this.executor.clearCommunicationState();
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Prepare ActionContext from StepContext
|
|
257
|
+
*/
|
|
258
|
+
async prepareActionContext(step, context, options) {
|
|
259
|
+
// Get action metadata from registry
|
|
260
|
+
const actionInfo = this.executor.getActionInfo(step.action);
|
|
261
|
+
if (!actionInfo.exists || !actionInfo.metadata) {
|
|
262
|
+
throw ErrorHandler.createError(ErrorCode.ACTION_NOT_FOUND, `Action '${step.action}' not found or has no metadata`, { action: step.action });
|
|
263
|
+
}
|
|
264
|
+
// Resolve parameters using ActionParameterResolver
|
|
265
|
+
const resolvedParameters = await this.parameterResolver.resolveParametersInteractively(actionInfo.metadata, {
|
|
266
|
+
...step.parameters,
|
|
267
|
+
// Merge step and recipe variables
|
|
268
|
+
...context.recipeVariables,
|
|
269
|
+
...step.variables,
|
|
270
|
+
...context.variables,
|
|
271
|
+
}, {
|
|
272
|
+
useDefaults: true, // Use defaults for recipe step execution
|
|
273
|
+
dryRun: options?.dryRun || context.dryRun || false,
|
|
274
|
+
force: step.force || context.force || false,
|
|
275
|
+
skipOptional: false, // Don't skip optional in recipes
|
|
276
|
+
timeout: step.timeout || options?.timeout,
|
|
277
|
+
intro: `🎯 Configuring action: ${step.action}`,
|
|
278
|
+
outro: `✅ Action ${step.action} configured`,
|
|
279
|
+
});
|
|
280
|
+
// Prepare communication configuration
|
|
281
|
+
let communication;
|
|
282
|
+
if (step.actionConfig?.communication) {
|
|
283
|
+
communication = {
|
|
284
|
+
actionId: step.actionConfig.communication.actionId ||
|
|
285
|
+
`${step.name}_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`,
|
|
286
|
+
subscribeTo: step.actionConfig.communication.subscribeTo,
|
|
287
|
+
reads: step.actionConfig.communication.reads,
|
|
288
|
+
writes: step.actionConfig.communication.writes,
|
|
289
|
+
};
|
|
290
|
+
}
|
|
291
|
+
// Build ActionContext compatible with existing action system
|
|
292
|
+
const actionContext = {
|
|
293
|
+
variables: resolvedParameters,
|
|
294
|
+
projectRoot: context.projectRoot,
|
|
295
|
+
templatePath: context.templatePath,
|
|
296
|
+
logger: context.logger || this.defaultLogger,
|
|
297
|
+
utils: context.utils || this.defaultUtils,
|
|
298
|
+
dryRun: options?.dryRun || context.dryRun || false,
|
|
299
|
+
force: step.force || context.force || false,
|
|
300
|
+
};
|
|
301
|
+
return {
|
|
302
|
+
context: actionContext,
|
|
303
|
+
metadata: actionInfo.metadata,
|
|
304
|
+
parameters: resolvedParameters,
|
|
305
|
+
communication,
|
|
306
|
+
};
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* Execute action with full lifecycle management
|
|
310
|
+
*/
|
|
311
|
+
async executeActionWithLifecycle(step, contextPrep, options) {
|
|
312
|
+
// Use ActionExecutor's interactive execution for full feature support
|
|
313
|
+
return await this.executor.executeInteractively(step.action, contextPrep.parameters, contextPrep.context, {
|
|
314
|
+
useDefaults: true,
|
|
315
|
+
dryRun: options?.dryRun || contextPrep.context.dryRun,
|
|
316
|
+
force: contextPrep.context.force,
|
|
317
|
+
skipOptional: false,
|
|
318
|
+
timeout: step.timeout || options?.timeout,
|
|
319
|
+
actionId: contextPrep.communication?.actionId,
|
|
320
|
+
});
|
|
321
|
+
}
|
|
322
|
+
/**
|
|
323
|
+
* Create StepResult from ActionResult
|
|
324
|
+
*/
|
|
325
|
+
createStepResult(step, actionResult, startTime, endTime, duration, contextPrep) {
|
|
326
|
+
const result = {
|
|
327
|
+
status: actionResult.success ? "completed" : "failed",
|
|
328
|
+
stepName: step.name,
|
|
329
|
+
toolType: "action",
|
|
330
|
+
startTime,
|
|
331
|
+
endTime,
|
|
332
|
+
duration,
|
|
333
|
+
retryCount: 0,
|
|
334
|
+
dependenciesSatisfied: true,
|
|
335
|
+
toolResult: actionResult,
|
|
336
|
+
filesCreated: actionResult.filesCreated || [],
|
|
337
|
+
filesModified: actionResult.filesModified || [],
|
|
338
|
+
filesDeleted: actionResult.filesDeleted || [],
|
|
339
|
+
output: {
|
|
340
|
+
actionName: step.action,
|
|
341
|
+
actionResult: actionResult.success,
|
|
342
|
+
message: actionResult.message,
|
|
343
|
+
data: actionResult.data,
|
|
344
|
+
// Communication information
|
|
345
|
+
...(contextPrep.communication && {
|
|
346
|
+
communication: {
|
|
347
|
+
actionId: contextPrep.communication.actionId,
|
|
348
|
+
subscribeTo: contextPrep.communication.subscribeTo,
|
|
349
|
+
reads: contextPrep.communication.reads,
|
|
350
|
+
writes: contextPrep.communication.writes,
|
|
351
|
+
},
|
|
352
|
+
}),
|
|
353
|
+
},
|
|
354
|
+
metadata: {
|
|
355
|
+
actionMetadata: contextPrep.metadata,
|
|
356
|
+
resolvedParameters: Object.keys(contextPrep.parameters),
|
|
357
|
+
parameterCount: Object.keys(contextPrep.parameters).length,
|
|
358
|
+
communicationEnabled: !!contextPrep.communication,
|
|
359
|
+
executorStats: this.executor.getWorkflowStatus(),
|
|
360
|
+
},
|
|
361
|
+
};
|
|
362
|
+
// Add error information if action failed
|
|
363
|
+
if (!actionResult.success) {
|
|
364
|
+
result.error = {
|
|
365
|
+
message: actionResult.message || "Action execution failed",
|
|
366
|
+
code: "ACTION_EXECUTION_FAILED",
|
|
367
|
+
};
|
|
368
|
+
}
|
|
369
|
+
return result;
|
|
370
|
+
}
|
|
371
|
+
/**
|
|
372
|
+
* Get action execution statistics
|
|
373
|
+
*/
|
|
374
|
+
getExecutionStats() {
|
|
375
|
+
const workflowStatus = this.executor.getWorkflowStatus();
|
|
376
|
+
const activeActionsResource = this.resources.get("active-actions");
|
|
377
|
+
const activeCount = activeActionsResource?.metadata?.activeActions
|
|
378
|
+
? activeActionsResource.metadata.activeActions.size
|
|
379
|
+
: 0;
|
|
380
|
+
return {
|
|
381
|
+
totalActions: this.registry.getAll().length,
|
|
382
|
+
activeActions: activeCount,
|
|
383
|
+
completedActions: workflowStatus.completedActions,
|
|
384
|
+
failedActions: workflowStatus.failedActions,
|
|
385
|
+
communicationStats: workflowStatus,
|
|
386
|
+
};
|
|
387
|
+
}
|
|
388
|
+
/**
|
|
389
|
+
* Get available actions for this tool
|
|
390
|
+
*/
|
|
391
|
+
getAvailableActions() {
|
|
392
|
+
return this.executor.getAvailableActionNames().map((name) => {
|
|
393
|
+
const info = this.executor.getActionInfo(name);
|
|
394
|
+
return {
|
|
395
|
+
name,
|
|
396
|
+
description: info.metadata?.description,
|
|
397
|
+
category: info.metadata?.category,
|
|
398
|
+
parameterCount: info.parameterCount || 0,
|
|
399
|
+
requiredParameters: info.requiredParameters || [],
|
|
400
|
+
};
|
|
401
|
+
});
|
|
402
|
+
}
|
|
403
|
+
/**
|
|
404
|
+
* Search actions by query
|
|
405
|
+
*/
|
|
406
|
+
searchActions(query) {
|
|
407
|
+
return this.executor.searchActions(query);
|
|
408
|
+
}
|
|
409
|
+
/**
|
|
410
|
+
* Get actions by category
|
|
411
|
+
*/
|
|
412
|
+
getActionsByCategory(category) {
|
|
413
|
+
return this.executor.getActionsByCategory(category);
|
|
414
|
+
}
|
|
415
|
+
/**
|
|
416
|
+
* Validate action parameters without execution
|
|
417
|
+
*/
|
|
418
|
+
async validateActionParameters(actionName, parameters) {
|
|
419
|
+
return this.executor.validateParameters(actionName, parameters);
|
|
420
|
+
}
|
|
421
|
+
}
|
|
422
|
+
/**
|
|
423
|
+
* Action Tool Factory
|
|
424
|
+
*/
|
|
425
|
+
export class ActionToolFactory {
|
|
426
|
+
create(name = "action-tool", options = {}) {
|
|
427
|
+
return new ActionTool(name, options);
|
|
428
|
+
}
|
|
429
|
+
getToolType() {
|
|
430
|
+
return "action";
|
|
431
|
+
}
|
|
432
|
+
validateConfig(config) {
|
|
433
|
+
const errors = [];
|
|
434
|
+
const warnings = [];
|
|
435
|
+
const suggestions = [];
|
|
436
|
+
// Validate communication configuration
|
|
437
|
+
if (config.communicationConfig) {
|
|
438
|
+
if (typeof config.communicationConfig !== "object") {
|
|
439
|
+
errors.push("communicationConfig must be an object");
|
|
440
|
+
}
|
|
441
|
+
else {
|
|
442
|
+
const commConfig = config.communicationConfig;
|
|
443
|
+
if (commConfig.maxMessages !== undefined &&
|
|
444
|
+
(typeof commConfig.maxMessages !== "number" || commConfig.maxMessages < 0)) {
|
|
445
|
+
warnings.push("maxMessages should be a positive number");
|
|
446
|
+
}
|
|
447
|
+
if (commConfig.ttl !== undefined &&
|
|
448
|
+
(typeof commConfig.ttl !== "number" || commConfig.ttl < 0)) {
|
|
449
|
+
warnings.push("ttl should be a positive number");
|
|
450
|
+
}
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
// Validate timeout settings
|
|
454
|
+
if (config.defaultTimeout !== undefined) {
|
|
455
|
+
if (typeof config.defaultTimeout !== "number" || config.defaultTimeout < 0) {
|
|
456
|
+
warnings.push("defaultTimeout should be a positive number");
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
// Performance suggestions
|
|
460
|
+
if (config.enableProfiling === undefined) {
|
|
461
|
+
suggestions.push("Consider enabling profiling for performance monitoring");
|
|
462
|
+
}
|
|
463
|
+
return {
|
|
464
|
+
isValid: errors.length === 0,
|
|
465
|
+
errors,
|
|
466
|
+
warnings,
|
|
467
|
+
suggestions,
|
|
468
|
+
};
|
|
469
|
+
}
|
|
470
|
+
}
|
|
471
|
+
// Export default instance
|
|
472
|
+
export const actionToolFactory = new ActionToolFactory();
|
|
473
|
+
//# sourceMappingURL=action-tool.js.map
|