@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.
Files changed (306) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +24 -0
  3. package/dist/actions/communication.d.ts +201 -0
  4. package/dist/actions/communication.d.ts.map +1 -0
  5. package/dist/actions/communication.js +515 -0
  6. package/dist/actions/communication.js.map +1 -0
  7. package/dist/actions/decorator.d.ts +22 -0
  8. package/dist/actions/decorator.d.ts.map +1 -0
  9. package/dist/actions/decorator.js +110 -0
  10. package/dist/actions/decorator.js.map +1 -0
  11. package/dist/actions/executor.d.ts +85 -0
  12. package/dist/actions/executor.d.ts.map +1 -0
  13. package/dist/actions/executor.js +289 -0
  14. package/dist/actions/executor.js.map +1 -0
  15. package/dist/actions/index.d.ts +14 -0
  16. package/dist/actions/index.d.ts.map +1 -0
  17. package/dist/actions/index.js +15 -0
  18. package/dist/actions/index.js.map +1 -0
  19. package/dist/actions/parameter-resolver.d.ts +54 -0
  20. package/dist/actions/parameter-resolver.d.ts.map +1 -0
  21. package/dist/actions/parameter-resolver.js +300 -0
  22. package/dist/actions/parameter-resolver.js.map +1 -0
  23. package/dist/actions/registry.d.ts +78 -0
  24. package/dist/actions/registry.d.ts.map +1 -0
  25. package/dist/actions/registry.js +221 -0
  26. package/dist/actions/registry.js.map +1 -0
  27. package/dist/actions/types.d.ts +109 -0
  28. package/dist/actions/types.d.ts.map +1 -0
  29. package/dist/actions/types.js +31 -0
  30. package/dist/actions/types.js.map +1 -0
  31. package/dist/actions/utils.d.ts +42 -0
  32. package/dist/actions/utils.d.ts.map +1 -0
  33. package/dist/actions/utils.js +144 -0
  34. package/dist/actions/utils.js.map +1 -0
  35. package/dist/ai/ai-collector.d.ts +52 -0
  36. package/dist/ai/ai-collector.d.ts.map +1 -0
  37. package/dist/ai/ai-collector.js +64 -0
  38. package/dist/ai/ai-collector.js.map +1 -0
  39. package/dist/ai/ai-config.d.ts +230 -0
  40. package/dist/ai/ai-config.d.ts.map +1 -0
  41. package/dist/ai/ai-config.js +8 -0
  42. package/dist/ai/ai-config.js.map +1 -0
  43. package/dist/ai/ai-service.d.ts +66 -0
  44. package/dist/ai/ai-service.d.ts.map +1 -0
  45. package/dist/ai/ai-service.js +198 -0
  46. package/dist/ai/ai-service.js.map +1 -0
  47. package/dist/ai/ai-variable-resolver.d.ts +59 -0
  48. package/dist/ai/ai-variable-resolver.d.ts.map +1 -0
  49. package/dist/ai/ai-variable-resolver.js +219 -0
  50. package/dist/ai/ai-variable-resolver.js.map +1 -0
  51. package/dist/ai/context-collector.d.ts +30 -0
  52. package/dist/ai/context-collector.d.ts.map +1 -0
  53. package/dist/ai/context-collector.js +158 -0
  54. package/dist/ai/context-collector.js.map +1 -0
  55. package/dist/ai/cost-tracker.d.ts +41 -0
  56. package/dist/ai/cost-tracker.d.ts.map +1 -0
  57. package/dist/ai/cost-tracker.js +131 -0
  58. package/dist/ai/cost-tracker.js.map +1 -0
  59. package/dist/ai/env.d.ts +36 -0
  60. package/dist/ai/env.d.ts.map +1 -0
  61. package/dist/ai/env.js +100 -0
  62. package/dist/ai/env.js.map +1 -0
  63. package/dist/ai/index.d.ts +17 -0
  64. package/dist/ai/index.d.ts.map +1 -0
  65. package/dist/ai/index.js +25 -0
  66. package/dist/ai/index.js.map +1 -0
  67. package/dist/ai/model-router.d.ts +32 -0
  68. package/dist/ai/model-router.d.ts.map +1 -0
  69. package/dist/ai/model-router.js +113 -0
  70. package/dist/ai/model-router.js.map +1 -0
  71. package/dist/ai/output-validator.d.ts +24 -0
  72. package/dist/ai/output-validator.d.ts.map +1 -0
  73. package/dist/ai/output-validator.js +279 -0
  74. package/dist/ai/output-validator.js.map +1 -0
  75. package/dist/ai/prompt-assembler.d.ts +30 -0
  76. package/dist/ai/prompt-assembler.d.ts.map +1 -0
  77. package/dist/ai/prompt-assembler.js +93 -0
  78. package/dist/ai/prompt-assembler.js.map +1 -0
  79. package/dist/ai/prompt-pipeline.d.ts +63 -0
  80. package/dist/ai/prompt-pipeline.d.ts.map +1 -0
  81. package/dist/ai/prompt-pipeline.js +119 -0
  82. package/dist/ai/prompt-pipeline.js.map +1 -0
  83. package/dist/ai/prompt-template.jig +88 -0
  84. package/dist/ai/transports/api-transport.d.ts +12 -0
  85. package/dist/ai/transports/api-transport.d.ts.map +1 -0
  86. package/dist/ai/transports/api-transport.js +86 -0
  87. package/dist/ai/transports/api-transport.js.map +1 -0
  88. package/dist/ai/transports/command-transport.d.ts +20 -0
  89. package/dist/ai/transports/command-transport.d.ts.map +1 -0
  90. package/dist/ai/transports/command-transport.js +203 -0
  91. package/dist/ai/transports/command-transport.js.map +1 -0
  92. package/dist/ai/transports/index.d.ts +11 -0
  93. package/dist/ai/transports/index.d.ts.map +1 -0
  94. package/dist/ai/transports/index.js +10 -0
  95. package/dist/ai/transports/index.js.map +1 -0
  96. package/dist/ai/transports/resolve-transport.d.ts +15 -0
  97. package/dist/ai/transports/resolve-transport.d.ts.map +1 -0
  98. package/dist/ai/transports/resolve-transport.js +96 -0
  99. package/dist/ai/transports/resolve-transport.js.map +1 -0
  100. package/dist/ai/transports/stdout-transport.d.ts +14 -0
  101. package/dist/ai/transports/stdout-transport.d.ts.map +1 -0
  102. package/dist/ai/transports/stdout-transport.js +27 -0
  103. package/dist/ai/transports/stdout-transport.js.map +1 -0
  104. package/dist/ai/transports/types.d.ts +77 -0
  105. package/dist/ai/transports/types.d.ts.map +1 -0
  106. package/dist/ai/transports/types.js +8 -0
  107. package/dist/ai/transports/types.js.map +1 -0
  108. package/dist/commands/cookbook/info.d.ts +22 -0
  109. package/dist/commands/cookbook/info.d.ts.map +1 -0
  110. package/dist/commands/cookbook/info.js +217 -0
  111. package/dist/commands/cookbook/info.js.map +1 -0
  112. package/dist/commands/cookbook/list.d.ts +20 -0
  113. package/dist/commands/cookbook/list.d.ts.map +1 -0
  114. package/dist/commands/cookbook/list.js +133 -0
  115. package/dist/commands/cookbook/list.js.map +1 -0
  116. package/dist/commands/gen.d.ts +65 -0
  117. package/dist/commands/gen.d.ts.map +1 -0
  118. package/dist/commands/gen.js +478 -0
  119. package/dist/commands/gen.js.map +1 -0
  120. package/dist/commands/recipe/info.d.ts +18 -0
  121. package/dist/commands/recipe/info.d.ts.map +1 -0
  122. package/dist/commands/recipe/info.js +89 -0
  123. package/dist/commands/recipe/info.js.map +1 -0
  124. package/dist/commands/recipe/list.d.ts +29 -0
  125. package/dist/commands/recipe/list.d.ts.map +1 -0
  126. package/dist/commands/recipe/list.js +215 -0
  127. package/dist/commands/recipe/list.js.map +1 -0
  128. package/dist/commands/recipe/run.d.ts +44 -0
  129. package/dist/commands/recipe/run.d.ts.map +1 -0
  130. package/dist/commands/recipe/run.js +239 -0
  131. package/dist/commands/recipe/run.js.map +1 -0
  132. package/dist/commands/recipe/validate.d.ts +19 -0
  133. package/dist/commands/recipe/validate.d.ts.map +1 -0
  134. package/dist/commands/recipe/validate.js +66 -0
  135. package/dist/commands/recipe/validate.js.map +1 -0
  136. package/dist/discovery/generator-discovery.d.ts +130 -0
  137. package/dist/discovery/generator-discovery.d.ts.map +1 -0
  138. package/dist/discovery/generator-discovery.js +674 -0
  139. package/dist/discovery/generator-discovery.js.map +1 -0
  140. package/dist/discovery/index.d.ts +8 -0
  141. package/dist/discovery/index.d.ts.map +1 -0
  142. package/dist/discovery/index.js +7 -0
  143. package/dist/discovery/index.js.map +1 -0
  144. package/dist/hooks/command-not-found.d.ts +18 -0
  145. package/dist/hooks/command-not-found.d.ts.map +1 -0
  146. package/dist/hooks/command-not-found.js +182 -0
  147. package/dist/hooks/command-not-found.js.map +1 -0
  148. package/dist/hooks/suggest.d.ts +13 -0
  149. package/dist/hooks/suggest.d.ts.map +1 -0
  150. package/dist/hooks/suggest.js +28 -0
  151. package/dist/hooks/suggest.js.map +1 -0
  152. package/dist/index.d.ts +2 -0
  153. package/dist/index.d.ts.map +1 -0
  154. package/dist/index.js +3 -0
  155. package/dist/index.js.map +1 -0
  156. package/dist/lib/base-command.d.ts +26 -0
  157. package/dist/lib/base-command.d.ts.map +1 -0
  158. package/dist/lib/base-command.js +24 -0
  159. package/dist/lib/base-command.js.map +1 -0
  160. package/dist/lib/flags.d.ts +33 -0
  161. package/dist/lib/flags.d.ts.map +1 -0
  162. package/dist/lib/flags.js +64 -0
  163. package/dist/lib/flags.js.map +1 -0
  164. package/dist/ops/add.d.ts +4 -0
  165. package/dist/ops/add.d.ts.map +1 -0
  166. package/dist/ops/add.js +85 -0
  167. package/dist/ops/add.js.map +1 -0
  168. package/dist/ops/inject.d.ts +4 -0
  169. package/dist/ops/inject.d.ts.map +1 -0
  170. package/dist/ops/inject.js +28 -0
  171. package/dist/ops/inject.js.map +1 -0
  172. package/dist/ops/injector.d.ts +4 -0
  173. package/dist/ops/injector.d.ts.map +1 -0
  174. package/dist/ops/injector.js +68 -0
  175. package/dist/ops/injector.js.map +1 -0
  176. package/dist/ops/result.d.ts +3 -0
  177. package/dist/ops/result.d.ts.map +1 -0
  178. package/dist/ops/result.js +8 -0
  179. package/dist/ops/result.js.map +1 -0
  180. package/dist/prompts/interactive-prompts.d.ts +152 -0
  181. package/dist/prompts/interactive-prompts.d.ts.map +1 -0
  182. package/dist/prompts/interactive-prompts.js +574 -0
  183. package/dist/prompts/interactive-prompts.js.map +1 -0
  184. package/dist/recipe-engine/group-executor.d.ts +97 -0
  185. package/dist/recipe-engine/group-executor.d.ts.map +1 -0
  186. package/dist/recipe-engine/group-executor.js +293 -0
  187. package/dist/recipe-engine/group-executor.js.map +1 -0
  188. package/dist/recipe-engine/index.d.ts +112 -0
  189. package/dist/recipe-engine/index.d.ts.map +1 -0
  190. package/dist/recipe-engine/index.js +223 -0
  191. package/dist/recipe-engine/index.js.map +1 -0
  192. package/dist/recipe-engine/output-evaluator.d.ts +28 -0
  193. package/dist/recipe-engine/output-evaluator.d.ts.map +1 -0
  194. package/dist/recipe-engine/output-evaluator.js +78 -0
  195. package/dist/recipe-engine/output-evaluator.js.map +1 -0
  196. package/dist/recipe-engine/recipe-engine.d.ts +227 -0
  197. package/dist/recipe-engine/recipe-engine.d.ts.map +1 -0
  198. package/dist/recipe-engine/recipe-engine.js +1036 -0
  199. package/dist/recipe-engine/recipe-engine.js.map +1 -0
  200. package/dist/recipe-engine/step-executor.d.ts +172 -0
  201. package/dist/recipe-engine/step-executor.d.ts.map +1 -0
  202. package/dist/recipe-engine/step-executor.js +802 -0
  203. package/dist/recipe-engine/step-executor.js.map +1 -0
  204. package/dist/recipe-engine/tools/action-tool.d.ts +103 -0
  205. package/dist/recipe-engine/tools/action-tool.d.ts.map +1 -0
  206. package/dist/recipe-engine/tools/action-tool.js +473 -0
  207. package/dist/recipe-engine/tools/action-tool.js.map +1 -0
  208. package/dist/recipe-engine/tools/ai-tool.d.ts +26 -0
  209. package/dist/recipe-engine/tools/ai-tool.d.ts.map +1 -0
  210. package/dist/recipe-engine/tools/ai-tool.js +233 -0
  211. package/dist/recipe-engine/tools/ai-tool.js.map +1 -0
  212. package/dist/recipe-engine/tools/base.d.ts +214 -0
  213. package/dist/recipe-engine/tools/base.d.ts.map +1 -0
  214. package/dist/recipe-engine/tools/base.js +397 -0
  215. package/dist/recipe-engine/tools/base.js.map +1 -0
  216. package/dist/recipe-engine/tools/codemod-tool.d.ts +130 -0
  217. package/dist/recipe-engine/tools/codemod-tool.d.ts.map +1 -0
  218. package/dist/recipe-engine/tools/codemod-tool.js +786 -0
  219. package/dist/recipe-engine/tools/codemod-tool.js.map +1 -0
  220. package/dist/recipe-engine/tools/ensure-dirs-tool.d.ts +21 -0
  221. package/dist/recipe-engine/tools/ensure-dirs-tool.d.ts.map +1 -0
  222. package/dist/recipe-engine/tools/ensure-dirs-tool.js +130 -0
  223. package/dist/recipe-engine/tools/ensure-dirs-tool.js.map +1 -0
  224. package/dist/recipe-engine/tools/index.d.ts +126 -0
  225. package/dist/recipe-engine/tools/index.d.ts.map +1 -0
  226. package/dist/recipe-engine/tools/index.js +290 -0
  227. package/dist/recipe-engine/tools/index.js.map +1 -0
  228. package/dist/recipe-engine/tools/install-tool.d.ts +20 -0
  229. package/dist/recipe-engine/tools/install-tool.d.ts.map +1 -0
  230. package/dist/recipe-engine/tools/install-tool.js +194 -0
  231. package/dist/recipe-engine/tools/install-tool.js.map +1 -0
  232. package/dist/recipe-engine/tools/parallel-tool.d.ts +21 -0
  233. package/dist/recipe-engine/tools/parallel-tool.d.ts.map +1 -0
  234. package/dist/recipe-engine/tools/parallel-tool.js +134 -0
  235. package/dist/recipe-engine/tools/parallel-tool.js.map +1 -0
  236. package/dist/recipe-engine/tools/patch-tool.d.ts +21 -0
  237. package/dist/recipe-engine/tools/patch-tool.d.ts.map +1 -0
  238. package/dist/recipe-engine/tools/patch-tool.js +248 -0
  239. package/dist/recipe-engine/tools/patch-tool.js.map +1 -0
  240. package/dist/recipe-engine/tools/prompt-tool.d.ts +25 -0
  241. package/dist/recipe-engine/tools/prompt-tool.d.ts.map +1 -0
  242. package/dist/recipe-engine/tools/prompt-tool.js +162 -0
  243. package/dist/recipe-engine/tools/prompt-tool.js.map +1 -0
  244. package/dist/recipe-engine/tools/query-tool.d.ts +21 -0
  245. package/dist/recipe-engine/tools/query-tool.d.ts.map +1 -0
  246. package/dist/recipe-engine/tools/query-tool.js +249 -0
  247. package/dist/recipe-engine/tools/query-tool.js.map +1 -0
  248. package/dist/recipe-engine/tools/recipe-tool.d.ts +103 -0
  249. package/dist/recipe-engine/tools/recipe-tool.d.ts.map +1 -0
  250. package/dist/recipe-engine/tools/recipe-tool.js +617 -0
  251. package/dist/recipe-engine/tools/recipe-tool.js.map +1 -0
  252. package/dist/recipe-engine/tools/registry.d.ts +151 -0
  253. package/dist/recipe-engine/tools/registry.d.ts.map +1 -0
  254. package/dist/recipe-engine/tools/registry.js +244 -0
  255. package/dist/recipe-engine/tools/registry.js.map +1 -0
  256. package/dist/recipe-engine/tools/sequence-tool.d.ts +22 -0
  257. package/dist/recipe-engine/tools/sequence-tool.d.ts.map +1 -0
  258. package/dist/recipe-engine/tools/sequence-tool.js +122 -0
  259. package/dist/recipe-engine/tools/sequence-tool.js.map +1 -0
  260. package/dist/recipe-engine/tools/shell-tool.d.ts +25 -0
  261. package/dist/recipe-engine/tools/shell-tool.d.ts.map +1 -0
  262. package/dist/recipe-engine/tools/shell-tool.js +149 -0
  263. package/dist/recipe-engine/tools/shell-tool.js.map +1 -0
  264. package/dist/recipe-engine/tools/template-tool.d.ts +88 -0
  265. package/dist/recipe-engine/tools/template-tool.d.ts.map +1 -0
  266. package/dist/recipe-engine/tools/template-tool.js +613 -0
  267. package/dist/recipe-engine/tools/template-tool.js.map +1 -0
  268. package/dist/recipe-engine/types.d.ts +963 -0
  269. package/dist/recipe-engine/types.d.ts.map +1 -0
  270. package/dist/recipe-engine/types.js +94 -0
  271. package/dist/recipe-engine/types.js.map +1 -0
  272. package/dist/template-engines/ai-tags.d.ts +26 -0
  273. package/dist/template-engines/ai-tags.d.ts.map +1 -0
  274. package/dist/template-engines/ai-tags.js +233 -0
  275. package/dist/template-engines/ai-tags.js.map +1 -0
  276. package/dist/template-engines/index.d.ts +8 -0
  277. package/dist/template-engines/index.d.ts.map +1 -0
  278. package/dist/template-engines/index.js +8 -0
  279. package/dist/template-engines/index.js.map +1 -0
  280. package/dist/template-engines/jig-engine.d.ts +47 -0
  281. package/dist/template-engines/jig-engine.d.ts.map +1 -0
  282. package/dist/template-engines/jig-engine.js +173 -0
  283. package/dist/template-engines/jig-engine.js.map +1 -0
  284. package/dist/utils/coerce-value.d.ts +7 -0
  285. package/dist/utils/coerce-value.d.ts.map +1 -0
  286. package/dist/utils/coerce-value.js +18 -0
  287. package/dist/utils/coerce-value.js.map +1 -0
  288. package/dist/utils/diff.d.ts +8 -0
  289. package/dist/utils/diff.d.ts.map +1 -0
  290. package/dist/utils/diff.js +10 -0
  291. package/dist/utils/diff.js.map +1 -0
  292. package/dist/utils/global-packages.d.ts +11 -0
  293. package/dist/utils/global-packages.d.ts.map +1 -0
  294. package/dist/utils/global-packages.js +88 -0
  295. package/dist/utils/global-packages.js.map +1 -0
  296. package/dist/utils/pager.d.ts +6 -0
  297. package/dist/utils/pager.d.ts.map +1 -0
  298. package/dist/utils/pager.js +41 -0
  299. package/dist/utils/pager.js.map +1 -0
  300. package/help/cookbook/info.md +35 -0
  301. package/help/cookbook/list.md +37 -0
  302. package/help/gen.md +26 -0
  303. package/help/recipe/run.md +52 -0
  304. package/help/recipe/validate.md +51 -0
  305. package/oclif.manifest.json +580 -0
  306. 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