agent-ide 0.8.1 → 0.8.2

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 (311) hide show
  1. package/dist/application/index.d.ts +1 -12
  2. package/dist/application/index.d.ts.map +1 -1
  3. package/dist/application/index.js +0 -16
  4. package/dist/application/index.js.map +1 -1
  5. package/dist/application/services/cache-coordinator.service.d.ts.map +1 -1
  6. package/dist/application/services/cache-coordinator.service.js.map +1 -1
  7. package/dist/application/services/module-coordinator.service.d.ts +3 -8
  8. package/dist/application/services/module-coordinator.service.d.ts.map +1 -1
  9. package/dist/application/services/module-coordinator.service.js +5 -139
  10. package/dist/application/services/module-coordinator.service.js.map +1 -1
  11. package/dist/application/types.d.ts +0 -63
  12. package/dist/application/types.d.ts.map +1 -1
  13. package/dist/application/types.js +1 -9
  14. package/dist/application/types.js.map +1 -1
  15. package/dist/core/call-hierarchy/call-hierarchy-analyzer.d.ts.map +1 -1
  16. package/dist/core/call-hierarchy/call-hierarchy-analyzer.js +3 -5
  17. package/dist/core/call-hierarchy/call-hierarchy-analyzer.js.map +1 -1
  18. package/dist/core/change-signature/change-signature-service.d.ts +9 -0
  19. package/dist/core/change-signature/change-signature-service.d.ts.map +1 -1
  20. package/dist/core/change-signature/change-signature-service.js +86 -4
  21. package/dist/core/change-signature/change-signature-service.js.map +1 -1
  22. package/dist/core/change-signature/signature-parser.d.ts +46 -4
  23. package/dist/core/change-signature/signature-parser.d.ts.map +1 -1
  24. package/dist/core/change-signature/signature-parser.js +180 -9
  25. package/dist/core/change-signature/signature-parser.js.map +1 -1
  26. package/dist/core/deadcode/dead-code-detector.d.ts +22 -1
  27. package/dist/core/deadcode/dead-code-detector.d.ts.map +1 -1
  28. package/dist/core/deadcode/dead-code-detector.js +134 -61
  29. package/dist/core/deadcode/dead-code-detector.js.map +1 -1
  30. package/dist/core/deadcode/dead-code-remover.d.ts +11 -93
  31. package/dist/core/deadcode/dead-code-remover.d.ts.map +1 -1
  32. package/dist/core/deadcode/dead-code-remover.js +71 -690
  33. package/dist/core/deadcode/dead-code-remover.js.map +1 -1
  34. package/dist/core/deadcode/file-operations.d.ts +85 -0
  35. package/dist/core/deadcode/file-operations.d.ts.map +1 -0
  36. package/dist/core/deadcode/file-operations.js +263 -0
  37. package/dist/core/deadcode/file-operations.js.map +1 -0
  38. package/dist/core/deadcode/import-cleaner.d.ts +63 -0
  39. package/dist/core/deadcode/import-cleaner.d.ts.map +1 -0
  40. package/dist/core/deadcode/import-cleaner.js +229 -0
  41. package/dist/core/deadcode/import-cleaner.js.map +1 -0
  42. package/dist/core/deadcode/import-parser.d.ts +79 -0
  43. package/dist/core/deadcode/import-parser.d.ts.map +1 -0
  44. package/dist/core/deadcode/import-parser.js +229 -0
  45. package/dist/core/deadcode/import-parser.js.map +1 -0
  46. package/dist/core/deadcode/range-expander.d.ts +38 -0
  47. package/dist/core/deadcode/range-expander.d.ts.map +1 -0
  48. package/dist/core/deadcode/range-expander.js +175 -0
  49. package/dist/core/deadcode/range-expander.js.map +1 -0
  50. package/dist/core/deadcode/types.d.ts +2 -0
  51. package/dist/core/deadcode/types.d.ts.map +1 -1
  52. package/dist/core/deadcode/types.js.map +1 -1
  53. package/dist/core/find-references/index.d.ts +2 -2
  54. package/dist/core/find-references/index.d.ts.map +1 -1
  55. package/dist/core/find-references/index.js +1 -1
  56. package/dist/core/find-references/index.js.map +1 -1
  57. package/dist/core/move/import-resolver.d.ts +5 -0
  58. package/dist/core/move/import-resolver.d.ts.map +1 -1
  59. package/dist/core/move/import-resolver.js +7 -0
  60. package/dist/core/move/import-resolver.js.map +1 -1
  61. package/dist/core/move/move-service.d.ts +39 -1
  62. package/dist/core/move/move-service.d.ts.map +1 -1
  63. package/dist/core/move/move-service.js +230 -63
  64. package/dist/core/move/move-service.js.map +1 -1
  65. package/dist/core/move/types.d.ts.map +1 -1
  66. package/dist/core/move-member/member-extractor.d.ts.map +1 -1
  67. package/dist/core/move-member/member-extractor.js +2 -2
  68. package/dist/core/move-member/member-extractor.js.map +1 -1
  69. package/dist/core/move-member/move-member-service.d.ts +6 -0
  70. package/dist/core/move-member/move-member-service.d.ts.map +1 -1
  71. package/dist/core/move-member/move-member-service.js +60 -3
  72. package/dist/core/move-member/move-member-service.js.map +1 -1
  73. package/dist/core/move-member/types.d.ts.map +1 -1
  74. package/dist/core/rename/reference-updater.d.ts +1 -35
  75. package/dist/core/rename/reference-updater.d.ts.map +1 -1
  76. package/dist/core/rename/reference-updater.js +4 -250
  77. package/dist/core/rename/reference-updater.js.map +1 -1
  78. package/dist/core/rename/rename-engine.d.ts +14 -22
  79. package/dist/core/rename/rename-engine.d.ts.map +1 -1
  80. package/dist/core/rename/rename-engine.js +37 -207
  81. package/dist/core/rename/rename-engine.js.map +1 -1
  82. package/dist/core/rename/scope-analyzer.d.ts.map +1 -1
  83. package/dist/core/shared/index.d.ts +1 -1
  84. package/dist/core/shared/index.d.ts.map +1 -1
  85. package/dist/core/shared/index.js +1 -1
  86. package/dist/core/shared/index.js.map +1 -1
  87. package/dist/core/shared/indexing/index-engine.d.ts +1 -1
  88. package/dist/core/shared/indexing/index-engine.d.ts.map +1 -1
  89. package/dist/core/shared/indexing/index-engine.js +1 -1
  90. package/dist/core/shared/indexing/index-engine.js.map +1 -1
  91. package/dist/core/shared/symbol-finder/call-site-parser.d.ts +71 -0
  92. package/dist/core/shared/symbol-finder/call-site-parser.d.ts.map +1 -0
  93. package/dist/core/shared/symbol-finder/call-site-parser.js +369 -0
  94. package/dist/core/shared/symbol-finder/call-site-parser.js.map +1 -0
  95. package/dist/core/shared/symbol-finder/index.d.ts +9 -0
  96. package/dist/core/shared/symbol-finder/index.d.ts.map +1 -0
  97. package/dist/core/shared/symbol-finder/index.js +12 -0
  98. package/dist/core/shared/symbol-finder/index.js.map +1 -0
  99. package/dist/core/shared/{symbol-finder.d.ts → symbol-finder/symbol-finder.d.ts} +27 -133
  100. package/dist/core/shared/symbol-finder/symbol-finder.d.ts.map +1 -0
  101. package/dist/core/shared/symbol-finder/symbol-finder.js +544 -0
  102. package/dist/core/shared/symbol-finder/symbol-finder.js.map +1 -0
  103. package/dist/core/shared/symbol-finder/text-matcher.d.ts +45 -0
  104. package/dist/core/shared/symbol-finder/text-matcher.d.ts.map +1 -0
  105. package/dist/core/shared/symbol-finder/text-matcher.js +195 -0
  106. package/dist/core/shared/symbol-finder/text-matcher.js.map +1 -0
  107. package/dist/core/shared/symbol-finder/types.d.ts +108 -0
  108. package/dist/core/shared/symbol-finder/types.d.ts.map +1 -0
  109. package/dist/core/shared/symbol-finder/types.js +71 -0
  110. package/dist/core/shared/symbol-finder/types.js.map +1 -0
  111. package/dist/core/snapshot/snapshot-generator.d.ts +16 -4
  112. package/dist/core/snapshot/snapshot-generator.d.ts.map +1 -1
  113. package/dist/core/snapshot/snapshot-generator.js +91 -18
  114. package/dist/core/snapshot/snapshot-generator.js.map +1 -1
  115. package/dist/infrastructure/cache/cache-manager.d.ts.map +1 -1
  116. package/dist/infrastructure/cache/cache-manager.js +4 -0
  117. package/dist/infrastructure/cache/cache-manager.js.map +1 -1
  118. package/dist/infrastructure/cache/index.d.ts +15 -9
  119. package/dist/infrastructure/cache/index.d.ts.map +1 -1
  120. package/dist/infrastructure/cache/index.js +5 -5
  121. package/dist/infrastructure/cache/index.js.map +1 -1
  122. package/dist/infrastructure/cache/memory-cache.d.ts.map +1 -1
  123. package/dist/infrastructure/cache/memory-cache.js.map +1 -1
  124. package/dist/infrastructure/cache/strategies.d.ts.map +1 -1
  125. package/dist/infrastructure/cache/strategies.js +2 -1
  126. package/dist/infrastructure/cache/strategies.js.map +1 -1
  127. package/dist/infrastructure/cache/types.d.ts +4 -4
  128. package/dist/infrastructure/cache/types.d.ts.map +1 -1
  129. package/dist/infrastructure/changeset/change-applicator.d.ts +95 -0
  130. package/dist/infrastructure/changeset/change-applicator.d.ts.map +1 -0
  131. package/dist/infrastructure/changeset/change-applicator.js +466 -0
  132. package/dist/infrastructure/changeset/change-applicator.js.map +1 -0
  133. package/dist/infrastructure/changeset/changeset-builder.d.ts +107 -0
  134. package/dist/infrastructure/changeset/changeset-builder.d.ts.map +1 -0
  135. package/dist/infrastructure/changeset/changeset-builder.js +183 -0
  136. package/dist/infrastructure/changeset/changeset-builder.js.map +1 -0
  137. package/dist/infrastructure/changeset/changeset-converter.d.ts +15 -0
  138. package/dist/infrastructure/changeset/changeset-converter.d.ts.map +1 -0
  139. package/dist/infrastructure/changeset/changeset-converter.js +369 -0
  140. package/dist/infrastructure/changeset/changeset-converter.js.map +1 -0
  141. package/dist/infrastructure/changeset/index.d.ts +9 -0
  142. package/dist/infrastructure/changeset/index.d.ts.map +1 -0
  143. package/dist/infrastructure/changeset/index.js +11 -0
  144. package/dist/infrastructure/changeset/index.js.map +1 -0
  145. package/dist/infrastructure/changeset/types.d.ts +110 -0
  146. package/dist/infrastructure/changeset/types.d.ts.map +1 -0
  147. package/dist/infrastructure/changeset/types.js +6 -0
  148. package/dist/infrastructure/changeset/types.js.map +1 -0
  149. package/dist/infrastructure/parser/base.d.ts.map +1 -1
  150. package/dist/infrastructure/parser/base.js +4 -3
  151. package/dist/infrastructure/parser/base.js.map +1 -1
  152. package/dist/infrastructure/parser/interface.d.ts +4 -2
  153. package/dist/infrastructure/parser/interface.d.ts.map +1 -1
  154. package/dist/infrastructure/parser/interface.js.map +1 -1
  155. package/dist/infrastructure/storage/file-system.d.ts.map +1 -1
  156. package/dist/infrastructure/storage/file-system.js +61 -54
  157. package/dist/infrastructure/storage/file-system.js.map +1 -1
  158. package/dist/interfaces/cli/commands/change-signature.command.d.ts.map +1 -1
  159. package/dist/interfaces/cli/commands/change-signature.command.js +31 -107
  160. package/dist/interfaces/cli/commands/change-signature.command.js.map +1 -1
  161. package/dist/interfaces/cli/commands/deadcode.command.js +51 -46
  162. package/dist/interfaces/cli/commands/deadcode.command.js.map +1 -1
  163. package/dist/interfaces/cli/commands/find-references.command.d.ts.map +1 -1
  164. package/dist/interfaces/cli/commands/find-references.command.js +18 -3
  165. package/dist/interfaces/cli/commands/find-references.command.js.map +1 -1
  166. package/dist/interfaces/cli/commands/move-member.command.d.ts.map +1 -1
  167. package/dist/interfaces/cli/commands/move-member.command.js +32 -103
  168. package/dist/interfaces/cli/commands/move-member.command.js.map +1 -1
  169. package/dist/interfaces/cli/commands/move.command.js +43 -54
  170. package/dist/interfaces/cli/commands/move.command.js.map +1 -1
  171. package/dist/interfaces/cli/commands/rename.command.js +27 -61
  172. package/dist/interfaces/cli/commands/rename.command.js.map +1 -1
  173. package/dist/interfaces/cli/output-formatter.d.ts +2 -2
  174. package/dist/interfaces/cli/output-formatter.d.ts.map +1 -1
  175. package/dist/interfaces/cli/output-formatter.js.map +1 -1
  176. package/dist/plugins/javascript/parser.d.ts +11 -10
  177. package/dist/plugins/javascript/parser.d.ts.map +1 -1
  178. package/dist/plugins/javascript/parser.js +57 -53
  179. package/dist/plugins/javascript/parser.js.map +1 -1
  180. package/dist/plugins/javascript/pattern-analyzer.d.ts.map +1 -1
  181. package/dist/plugins/javascript/pattern-analyzer.js +4 -3
  182. package/dist/plugins/javascript/pattern-analyzer.js.map +1 -1
  183. package/dist/plugins/javascript/reference-finder.d.ts +21 -0
  184. package/dist/plugins/javascript/reference-finder.d.ts.map +1 -1
  185. package/dist/plugins/javascript/reference-finder.js +119 -76
  186. package/dist/plugins/javascript/reference-finder.js.map +1 -1
  187. package/dist/plugins/javascript/types.d.ts +4 -7
  188. package/dist/plugins/javascript/types.d.ts.map +1 -1
  189. package/dist/plugins/javascript/types.js +9 -9
  190. package/dist/plugins/javascript/types.js.map +1 -1
  191. package/dist/plugins/shared/parser-helpers.js.map +1 -1
  192. package/dist/{shared → plugins/shared}/utils/array.d.ts +6 -1
  193. package/dist/plugins/shared/utils/array.d.ts.map +1 -0
  194. package/dist/plugins/shared/utils/array.js.map +1 -0
  195. package/dist/{shared → plugins/shared}/utils/async.d.ts +1 -1
  196. package/dist/plugins/shared/utils/async.d.ts.map +1 -0
  197. package/dist/{shared → plugins/shared}/utils/async.js +2 -0
  198. package/dist/plugins/shared/utils/async.js.map +1 -0
  199. package/dist/{shared → plugins/shared}/utils/index.d.ts +0 -20
  200. package/dist/plugins/shared/utils/index.d.ts.map +1 -0
  201. package/dist/{shared → plugins/shared}/utils/index.js +0 -20
  202. package/dist/plugins/shared/utils/index.js.map +1 -0
  203. package/dist/plugins/shared/utils/memory-monitor.d.ts.map +1 -0
  204. package/dist/plugins/shared/utils/memory-monitor.js.map +1 -0
  205. package/dist/{shared → plugins/shared}/utils/object.d.ts +6 -6
  206. package/dist/plugins/shared/utils/object.d.ts.map +1 -0
  207. package/dist/{shared → plugins/shared}/utils/object.js +21 -3
  208. package/dist/plugins/shared/utils/object.js.map +1 -0
  209. package/dist/plugins/shared/utils/path.d.ts.map +1 -0
  210. package/dist/plugins/shared/utils/path.js.map +1 -0
  211. package/dist/{shared → plugins/shared}/utils/string.d.ts +1 -1
  212. package/dist/plugins/shared/utils/string.d.ts.map +1 -0
  213. package/dist/{shared → plugins/shared}/utils/string.js +7 -4
  214. package/dist/plugins/shared/utils/string.js.map +1 -0
  215. package/dist/plugins/typescript/declaration-analyzer.d.ts +4 -4
  216. package/dist/plugins/typescript/declaration-analyzer.d.ts.map +1 -1
  217. package/dist/plugins/typescript/declaration-analyzer.js +9 -6
  218. package/dist/plugins/typescript/declaration-analyzer.js.map +1 -1
  219. package/dist/plugins/typescript/language-service.d.ts +1 -1
  220. package/dist/plugins/typescript/language-service.d.ts.map +1 -1
  221. package/dist/plugins/typescript/parser.d.ts +3 -2
  222. package/dist/plugins/typescript/parser.d.ts.map +1 -1
  223. package/dist/plugins/typescript/parser.js +18 -13
  224. package/dist/plugins/typescript/parser.js.map +1 -1
  225. package/dist/plugins/typescript/reference-finder.d.ts +3 -0
  226. package/dist/plugins/typescript/reference-finder.d.ts.map +1 -1
  227. package/dist/plugins/typescript/reference-finder.js +5 -2
  228. package/dist/plugins/typescript/reference-finder.js.map +1 -1
  229. package/dist/plugins/typescript/symbol-extractor.d.ts +4 -0
  230. package/dist/plugins/typescript/symbol-extractor.d.ts.map +1 -1
  231. package/dist/plugins/typescript/symbol-extractor.js +18 -4
  232. package/dist/plugins/typescript/symbol-extractor.js.map +1 -1
  233. package/dist/plugins/typescript/types.d.ts +0 -3
  234. package/dist/plugins/typescript/types.d.ts.map +1 -1
  235. package/dist/plugins/typescript/types.js +6 -9
  236. package/dist/plugins/typescript/types.js.map +1 -1
  237. package/dist/shared/errors/index.d.ts +1 -1
  238. package/dist/shared/errors/index.d.ts.map +1 -1
  239. package/dist/shared/errors/parser-error.js +5 -5
  240. package/dist/shared/errors/parser-error.js.map +1 -1
  241. package/dist/shared/errors/validation-error.d.ts +2 -2
  242. package/dist/shared/errors/validation-error.d.ts.map +1 -1
  243. package/dist/shared/errors/validation-error.js.map +1 -1
  244. package/dist/shared/types/ast.d.ts +4 -4
  245. package/dist/shared/types/ast.d.ts.map +1 -1
  246. package/dist/shared/types/ast.js.map +1 -1
  247. package/dist/shared/types/core.d.ts +1 -1
  248. package/dist/shared/types/core.d.ts.map +1 -1
  249. package/dist/shared/types/index.d.ts +1 -0
  250. package/dist/shared/types/index.d.ts.map +1 -1
  251. package/dist/shared/types/index.js +2 -0
  252. package/dist/shared/types/index.js.map +1 -1
  253. package/dist/shared/types/line-number.d.ts +22 -0
  254. package/dist/shared/types/line-number.d.ts.map +1 -0
  255. package/dist/shared/types/line-number.js +28 -0
  256. package/dist/shared/types/line-number.js.map +1 -0
  257. package/package.json +2 -2
  258. package/dist/application/services/workflow-engine.service.d.ts +0 -76
  259. package/dist/application/services/workflow-engine.service.d.ts.map +0 -1
  260. package/dist/application/services/workflow-engine.service.js +0 -405
  261. package/dist/application/services/workflow-engine.service.js.map +0 -1
  262. package/dist/application/workflows/analysis-workflow.d.ts +0 -239
  263. package/dist/application/workflows/analysis-workflow.d.ts.map +0 -1
  264. package/dist/application/workflows/analysis-workflow.js +0 -395
  265. package/dist/application/workflows/analysis-workflow.js.map +0 -1
  266. package/dist/application/workflows/base-workflow.d.ts +0 -108
  267. package/dist/application/workflows/base-workflow.d.ts.map +0 -1
  268. package/dist/application/workflows/base-workflow.js +0 -236
  269. package/dist/application/workflows/base-workflow.js.map +0 -1
  270. package/dist/application/workflows/index.d.ts +0 -115
  271. package/dist/application/workflows/index.d.ts.map +0 -1
  272. package/dist/application/workflows/index.js +0 -218
  273. package/dist/application/workflows/index.js.map +0 -1
  274. package/dist/application/workflows/refactor-workflow.d.ts +0 -107
  275. package/dist/application/workflows/refactor-workflow.d.ts.map +0 -1
  276. package/dist/application/workflows/refactor-workflow.js +0 -310
  277. package/dist/application/workflows/refactor-workflow.js.map +0 -1
  278. package/dist/core/shared/symbol-finder.d.ts.map +0 -1
  279. package/dist/core/shared/symbol-finder.js +0 -882
  280. package/dist/core/shared/symbol-finder.js.map +0 -1
  281. package/dist/plugins/javascript/code-analyzer.d.ts +0 -68
  282. package/dist/plugins/javascript/code-analyzer.d.ts.map +0 -1
  283. package/dist/plugins/javascript/code-analyzer.js +0 -302
  284. package/dist/plugins/javascript/code-analyzer.js.map +0 -1
  285. package/dist/plugins/javascript/index.d.ts +0 -12
  286. package/dist/plugins/javascript/index.d.ts.map +0 -1
  287. package/dist/plugins/javascript/index.js +0 -16
  288. package/dist/plugins/javascript/index.js.map +0 -1
  289. package/dist/plugins/typescript/index.d.ts +0 -14
  290. package/dist/plugins/typescript/index.d.ts.map +0 -1
  291. package/dist/plugins/typescript/index.js +0 -13
  292. package/dist/plugins/typescript/index.js.map +0 -1
  293. package/dist/shared/utils/array.d.ts.map +0 -1
  294. package/dist/shared/utils/array.js.map +0 -1
  295. package/dist/shared/utils/async.d.ts.map +0 -1
  296. package/dist/shared/utils/async.js.map +0 -1
  297. package/dist/shared/utils/index.d.ts.map +0 -1
  298. package/dist/shared/utils/index.js.map +0 -1
  299. package/dist/shared/utils/memory-monitor.d.ts.map +0 -1
  300. package/dist/shared/utils/memory-monitor.js.map +0 -1
  301. package/dist/shared/utils/object.d.ts.map +0 -1
  302. package/dist/shared/utils/object.js.map +0 -1
  303. package/dist/shared/utils/path.d.ts.map +0 -1
  304. package/dist/shared/utils/path.js.map +0 -1
  305. package/dist/shared/utils/string.d.ts.map +0 -1
  306. package/dist/shared/utils/string.js.map +0 -1
  307. /package/dist/{shared → plugins/shared}/utils/array.js +0 -0
  308. /package/dist/{shared → plugins/shared}/utils/memory-monitor.d.ts +0 -0
  309. /package/dist/{shared → plugins/shared}/utils/memory-monitor.js +0 -0
  310. /package/dist/{shared → plugins/shared}/utils/path.d.ts +0 -0
  311. /package/dist/{shared → plugins/shared}/utils/path.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../src/shared/types/core.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;CACvB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,CAgBtF;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,GAAG,KAAK,CASjE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,QAAQ,CASvE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,QAAQ,CAc5D;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,KAAK,CAYtD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,QAAQ,CAY5D;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAKxE;AASD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAK3E"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../src/shared/types/core.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;CACvB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,CAgBtF;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,GAAG,KAAK,CASjE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,QAAQ,CASvE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,QAAQ,CAc5D;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,KAAK,CAYtD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,QAAQ,CAY5D;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAKxE;AASD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAK3E"}
@@ -4,6 +4,7 @@
4
4
  export * from './core.js';
5
5
  export * from './symbol.js';
6
6
  export * from './ast.js';
7
+ export { isSameLine, toOneBased, toZeroBased } from './line-number.js';
7
8
  export type { Position, Range, Location } from './core.js';
8
9
  export { SymbolType, ReferenceType, DependencyType } from './symbol.js';
9
10
  export type { Scope, Symbol, Reference, Dependency } from './symbol.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shared/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,cAAc,WAAW,CAAC;AAG1B,cAAc,aAAa,CAAC;AAG5B,cAAc,UAAU,CAAC;AAGzB,YAAY,EACV,QAAQ,EACR,KAAK,EACL,QAAQ,EACT,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,UAAU,EACV,aAAa,EACb,cAAc,EACf,MAAM,aAAa,CAAC;AAErB,YAAY,EACV,KAAK,EACL,MAAM,EACN,SAAS,EACT,UAAU,EACX,MAAM,aAAa,CAAC;AAErB,YAAY,EACV,OAAO,EACP,WAAW,EACX,GAAG,EACJ,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shared/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,cAAc,WAAW,CAAC;AAG1B,cAAc,aAAa,CAAC;AAG5B,cAAc,UAAU,CAAC;AAGzB,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAGvE,YAAY,EACV,QAAQ,EACR,KAAK,EACL,QAAQ,EACT,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,UAAU,EACV,aAAa,EACb,cAAc,EACf,MAAM,aAAa,CAAC;AAErB,YAAY,EACV,KAAK,EACL,MAAM,EACN,SAAS,EACT,UAAU,EACX,MAAM,aAAa,CAAC;AAErB,YAAY,EACV,OAAO,EACP,WAAW,EACX,GAAG,EACJ,MAAM,UAAU,CAAC"}
@@ -7,6 +7,8 @@ export * from './core.js';
7
7
  export * from './symbol.js';
8
8
  // AST 相關型別
9
9
  export * from './ast.js';
10
+ // 行號工具函數
11
+ export { isSameLine, toOneBased, toZeroBased } from './line-number.js';
10
12
  // enum 需要正常匯出
11
13
  export { SymbolType, ReferenceType, DependencyType } from './symbol.js';
12
14
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/shared/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO;AACP,cAAc,WAAW,CAAC;AAE1B,cAAc;AACd,cAAc,aAAa,CAAC;AAE5B,WAAW;AACX,cAAc,UAAU,CAAC;AASzB,cAAc;AACd,OAAO,EACL,UAAU,EACV,aAAa,EACb,cAAc,EACf,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/shared/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO;AACP,cAAc,WAAW,CAAC;AAE1B,cAAc;AACd,cAAc,aAAa,CAAC;AAE5B,WAAW;AACX,cAAc,UAAU,CAAC;AAEzB,SAAS;AACT,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AASvE,cAAc;AACd,OAAO,EACL,UAAU,EACV,aAAa,EACb,cAAc,EACf,MAAM,aAAa,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * 行號工具函數
3
+ * 確保所有模組使用一致的行號表示(專案標準:1-based)
4
+ */
5
+ /**
6
+ * 判斷兩個位置是否在同一行
7
+ * 處理可能的 0/1-indexed 差異
8
+ *
9
+ * @param line1 第一個行號
10
+ * @param line2 第二個行號
11
+ * @param tolerance 允許的行號差異(預設 1,處理不同來源的行號差異)
12
+ */
13
+ export declare function isSameLine(line1: number, line2: number, tolerance?: 0 | 1): boolean;
14
+ /**
15
+ * 將 0-based 行號轉換為 1-based
16
+ */
17
+ export declare function toOneBased(zeroBasedLine: number): number;
18
+ /**
19
+ * 將 1-based 行號轉換為 0-based
20
+ */
21
+ export declare function toZeroBased(oneBasedLine: number): number;
22
+ //# sourceMappingURL=line-number.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"line-number.d.ts","sourceRoot":"","sources":["../../../src/shared/types/line-number.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;GAOG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,SAAS,GAAE,CAAC,GAAG,CAAK,GACnB,OAAO,CAET;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAExD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAExD"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * 行號工具函數
3
+ * 確保所有模組使用一致的行號表示(專案標準:1-based)
4
+ */
5
+ /**
6
+ * 判斷兩個位置是否在同一行
7
+ * 處理可能的 0/1-indexed 差異
8
+ *
9
+ * @param line1 第一個行號
10
+ * @param line2 第二個行號
11
+ * @param tolerance 允許的行號差異(預設 1,處理不同來源的行號差異)
12
+ */
13
+ export function isSameLine(line1, line2, tolerance = 1) {
14
+ return Math.abs(line1 - line2) <= tolerance;
15
+ }
16
+ /**
17
+ * 將 0-based 行號轉換為 1-based
18
+ */
19
+ export function toOneBased(zeroBasedLine) {
20
+ return zeroBasedLine + 1;
21
+ }
22
+ /**
23
+ * 將 1-based 行號轉換為 0-based
24
+ */
25
+ export function toZeroBased(oneBasedLine) {
26
+ return oneBasedLine - 1;
27
+ }
28
+ //# sourceMappingURL=line-number.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"line-number.js","sourceRoot":"","sources":["../../../src/shared/types/line-number.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU,CACxB,KAAa,EACb,KAAa,EACb,YAAmB,CAAC;IAEpB,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,SAAS,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,aAAqB;IAC9C,OAAO,aAAa,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,YAAoB;IAC9C,OAAO,YAAY,GAAG,CAAC,CAAC;AAC1B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-ide",
3
- "version": "0.8.1",
3
+ "version": "0.8.2",
4
4
  "description": "程式碼智能工具集 for AI Agents",
5
5
  "type": "module",
6
6
  "main": "dist/shared/index.js",
@@ -55,7 +55,7 @@
55
55
  "@types/babel__generator": "^7.27.0",
56
56
  "@types/babel__traverse": "^7.28.0",
57
57
  "@types/minimatch": "^6.0.0",
58
- "@types/node": "^24.3.1",
58
+ "@types/node": "^25.0.0",
59
59
  "@typescript-eslint/eslint-plugin": "^8.44.1",
60
60
  "@typescript-eslint/parser": "^8.44.1",
61
61
  "@vitest/coverage-v8": "^4.0.0",
@@ -1,76 +0,0 @@
1
- /**
2
- * WorkflowEngine 服務實作
3
- * 提供工作流程執行、暫停、恢復、回滾等功能
4
- */
5
- import { BaseError } from '../../shared/errors/base-error.js';
6
- import { EventBus } from '../events/event-bus.js';
7
- import { ErrorHandlerService } from '../services/error-handler.service.js';
8
- import { StateManager } from '../state/state-manager.js';
9
- import { WorkflowStatus, type IWorkflowEngine, type Workflow, type WorkflowResult } from '../types.js';
10
- /**
11
- * 工作流程執行錯誤
12
- */
13
- export declare class WorkflowError extends BaseError {
14
- constructor(message: string, details?: Record<string, any>, cause?: Error);
15
- }
16
- /**
17
- * 工作流程引擎服務
18
- */
19
- export declare class WorkflowEngineService implements IWorkflowEngine {
20
- private readonly eventBus;
21
- private readonly errorHandler;
22
- private readonly stateManager;
23
- private readonly activeWorkflows;
24
- private readonly executionPromises;
25
- private readonly workflowRegistry;
26
- constructor(eventBus: EventBus, errorHandler: ErrorHandlerService, stateManager: StateManager);
27
- /**
28
- * 執行工作流程
29
- */
30
- execute<T>(workflow: Workflow<T>): Promise<WorkflowResult<T>>;
31
- /**
32
- * 暫停工作流程
33
- */
34
- pause(workflowId: string): Promise<void>;
35
- /**
36
- * 恢復工作流程
37
- */
38
- resume<T>(workflowId: string): Promise<WorkflowResult<T>>;
39
- /**
40
- * 回滾工作流程
41
- */
42
- rollback(workflowId: string, stepId?: string): Promise<void>;
43
- /**
44
- * 取得工作流程狀態
45
- */
46
- getStatus(workflowId: string): Promise<WorkflowStatus>;
47
- /**
48
- * 執行工作流程的核心邏輯
49
- */
50
- private executeWorkflow;
51
- /**
52
- * 繼續執行暫停的工作流程
53
- */
54
- private continueExecution;
55
- /**
56
- * 執行單個步驟
57
- */
58
- private executeStep;
59
- /**
60
- * 執行回滾
61
- */
62
- private performRollback;
63
- /**
64
- * 發布工作流程事件
65
- */
66
- private publishWorkflowEvent;
67
- /**
68
- * 驗證工作流程定義
69
- */
70
- private validateWorkflow;
71
- /**
72
- * 驗證工作流程步驟
73
- */
74
- private validateStep;
75
- }
76
- //# sourceMappingURL=workflow-engine.service.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workflow-engine.service.d.ts","sourceRoot":"","sources":["../../../src/application/services/workflow-engine.service.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAE5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAC;AACrF,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACnE,OAAO,EACL,cAAc,EACd,KAAK,eAAe,EACpB,KAAK,QAAQ,EAEb,KAAK,cAAc,EAIpB,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,qBAAa,aAAc,SAAQ,SAAS;gBAC9B,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK;CAG1E;AAED;;GAEG;AACH,qBAAa,qBAAsB,YAAW,eAAe;IAC3D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;IACpC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsB;IACnD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA6B;IAC7D,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAuC;IACzE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAwB;gBAGvD,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,mBAAmB,EACjC,YAAY,EAAE,YAAY;IAU5B;;OAEG;IACG,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAqCnE;;OAEG;IACG,KAAK,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY9C;;OAEG;IACG,MAAM,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAqB/D;;OAEG;IACG,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BlE;;OAEG;IACG,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAU5D;;OAEG;YACW,eAAe;IA4I7B;;OAEG;YACW,iBAAiB;IAkB/B;;OAEG;YACW,WAAW;IAyCzB;;OAEG;YACW,eAAe;IAoC7B;;OAEG;YACW,oBAAoB;IAyBlC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA8BxB;;OAEG;IACH,OAAO,CAAC,YAAY;CAyBrB"}
@@ -1,405 +0,0 @@
1
- /**
2
- * WorkflowEngine 服務實作
3
- * 提供工作流程執行、暫停、恢復、回滾等功能
4
- */
5
- import { BaseError } from '../../shared/errors/base-error.js';
6
- import { EventPriority } from '../events/event-types.js';
7
- import { WorkflowStatus } from '../types.js';
8
- /**
9
- * 工作流程執行錯誤
10
- */
11
- export class WorkflowError extends BaseError {
12
- constructor(message, details, cause) {
13
- super('WORKFLOW_ERROR', message, details, cause);
14
- }
15
- }
16
- /**
17
- * 工作流程引擎服務
18
- */
19
- export class WorkflowEngineService {
20
- eventBus;
21
- errorHandler;
22
- stateManager;
23
- activeWorkflows;
24
- executionPromises;
25
- workflowRegistry;
26
- constructor(eventBus, errorHandler, stateManager) {
27
- this.eventBus = eventBus;
28
- this.errorHandler = errorHandler;
29
- this.stateManager = stateManager;
30
- this.activeWorkflows = new Map();
31
- this.executionPromises = new Map();
32
- this.workflowRegistry = new Map();
33
- }
34
- /**
35
- * 執行工作流程
36
- */
37
- async execute(workflow) {
38
- this.validateWorkflow(workflow);
39
- // 檢查是否已經在執行中
40
- if (this.activeWorkflows.has(workflow.id)) {
41
- throw new WorkflowError(`Workflow with ID ${workflow.id} is already running`);
42
- }
43
- // 註冊工作流程定義以供後續回滾使用
44
- this.workflowRegistry.set(workflow.id, workflow);
45
- // 建立工作流程狀態
46
- const workflowState = {
47
- workflowId: workflow.id,
48
- status: WorkflowStatus.Pending,
49
- executedSteps: [],
50
- context: workflow.context,
51
- startTime: new Date()
52
- };
53
- this.activeWorkflows.set(workflow.id, workflowState);
54
- // 發布開始事件
55
- await this.publishWorkflowEvent(workflow.id, 'started');
56
- // 建立執行 Promise
57
- const executionPromise = this.executeWorkflow(workflow, workflowState);
58
- this.executionPromises.set(workflow.id, executionPromise);
59
- try {
60
- const result = await executionPromise;
61
- return result;
62
- }
63
- finally {
64
- this.executionPromises.delete(workflow.id);
65
- }
66
- }
67
- /**
68
- * 暫停工作流程
69
- */
70
- async pause(workflowId) {
71
- const workflowState = this.activeWorkflows.get(workflowId);
72
- if (!workflowState) {
73
- throw new WorkflowError(`Workflow not found: ${workflowId}`);
74
- }
75
- if (workflowState.status === WorkflowStatus.Running) {
76
- workflowState.status = WorkflowStatus.Paused;
77
- await this.publishWorkflowEvent(workflowId, 'paused');
78
- }
79
- }
80
- /**
81
- * 恢復工作流程
82
- */
83
- async resume(workflowId) {
84
- const workflowState = this.activeWorkflows.get(workflowId);
85
- if (!workflowState) {
86
- throw new WorkflowError(`Workflow not found: ${workflowId}`);
87
- }
88
- if (workflowState.status !== WorkflowStatus.Paused) {
89
- throw new WorkflowError(`Workflow ${workflowId} is not paused`);
90
- }
91
- workflowState.status = WorkflowStatus.Running;
92
- await this.publishWorkflowEvent(workflowId, 'resumed');
93
- // 重新開始執行(從當前步驟繼續)
94
- const workflow = this.workflowRegistry.get(workflowState.workflowId);
95
- if (!workflow) {
96
- throw new WorkflowError(`Workflow definition not found: ${workflowState.workflowId}`);
97
- }
98
- return await this.continueExecution(workflow, workflowState);
99
- }
100
- /**
101
- * 回滾工作流程
102
- */
103
- async rollback(workflowId, stepId) {
104
- const workflowState = this.activeWorkflows.get(workflowId);
105
- if (!workflowState) {
106
- throw new WorkflowError(`Workflow not found: ${workflowId}`);
107
- }
108
- // 從已執行的步驟中獲取工作流程定義
109
- const originalWorkflow = this.workflowRegistry.get(workflowId);
110
- if (!originalWorkflow) {
111
- throw new WorkflowError(`Original workflow definition not found: ${workflowId}`);
112
- }
113
- await this.performRollback(originalWorkflow, workflowState, stepId);
114
- // 重置狀態
115
- if (stepId) {
116
- // 回滾到指定步驟
117
- const stepIndex = workflowState.executedSteps.indexOf(stepId);
118
- if (stepIndex !== -1) {
119
- workflowState.executedSteps = workflowState.executedSteps.slice(0, stepIndex);
120
- workflowState.currentStepId = stepId;
121
- }
122
- }
123
- else {
124
- // 完全回滾
125
- workflowState.executedSteps = [];
126
- workflowState.currentStepId = undefined;
127
- }
128
- workflowState.status = WorkflowStatus.Pending;
129
- }
130
- /**
131
- * 取得工作流程狀態
132
- */
133
- async getStatus(workflowId) {
134
- const workflowState = this.activeWorkflows.get(workflowId);
135
- if (!workflowState) {
136
- // 如果工作流程不存在,可能還沒開始,返回 Pending
137
- return WorkflowStatus.Pending;
138
- }
139
- return workflowState.status;
140
- }
141
- /**
142
- * 執行工作流程的核心邏輯
143
- */
144
- async executeWorkflow(workflow, workflowState) {
145
- const startTime = Date.now();
146
- let lastResult = workflow.context;
147
- try {
148
- workflowState.status = WorkflowStatus.Running;
149
- // 執行步驟
150
- for (let i = 0; i < workflow.steps.length; i++) {
151
- const step = workflow.steps[i];
152
- // 執行前檢查是否被暫停
153
- const currentState = this.activeWorkflows.get(workflow.id);
154
- if (currentState?.status === WorkflowStatus.Paused) {
155
- workflowState.currentStepId = step.id;
156
- return {
157
- workflowId: workflow.id,
158
- status: WorkflowStatus.Paused,
159
- executedSteps: [...workflowState.executedSteps],
160
- duration: Date.now() - startTime
161
- };
162
- }
163
- // 執行步驟
164
- const stepResult = await this.executeStep(step, lastResult, workflow.id);
165
- if (stepResult.success) {
166
- workflowState.executedSteps.push(step.id);
167
- lastResult = stepResult.data || lastResult; // 確保有資料時才更新上下文
168
- await this.publishWorkflowEvent(workflow.id, 'step-completed', step.id, stepResult);
169
- // 步驟完成後再次檢查是否被暫停
170
- const updatedState = this.activeWorkflows.get(workflow.id);
171
- if (updatedState?.status === WorkflowStatus.Paused) {
172
- return {
173
- workflowId: workflow.id,
174
- status: WorkflowStatus.Paused,
175
- executedSteps: [...workflowState.executedSteps],
176
- duration: Date.now() - startTime
177
- };
178
- }
179
- // 檢查是否有條件跳轉
180
- if (stepResult.nextStepId) {
181
- const nextStepIndex = workflow.steps.findIndex(s => s.id === stepResult.nextStepId);
182
- if (nextStepIndex !== -1) {
183
- i = nextStepIndex - 1; // -1 因為 for 迴圈會 +1
184
- continue;
185
- }
186
- }
187
- }
188
- else {
189
- // 步驟失敗
190
- workflowState.status = WorkflowStatus.Failed;
191
- workflowState.error = stepResult.error;
192
- workflowState.endTime = new Date();
193
- await this.publishWorkflowEvent(workflow.id, 'failed', step.id);
194
- // 處理步驟失敗的錯誤
195
- if (stepResult.error) {
196
- const errorContext = {
197
- module: 'workflow-engine',
198
- operation: 'executeStep',
199
- parameters: { workflowId: workflow.id, stepId: step.id },
200
- timestamp: new Date()
201
- };
202
- const handledError = await this.errorHandler.handle(stepResult.error, errorContext);
203
- return {
204
- workflowId: workflow.id,
205
- status: WorkflowStatus.Failed,
206
- error: handledError,
207
- executedSteps: [...workflowState.executedSteps],
208
- duration: Date.now() - startTime
209
- };
210
- }
211
- return {
212
- workflowId: workflow.id,
213
- status: WorkflowStatus.Failed,
214
- error: stepResult.error,
215
- executedSteps: [...workflowState.executedSteps],
216
- duration: Date.now() - startTime
217
- };
218
- }
219
- }
220
- // 工作流程完成
221
- workflowState.status = WorkflowStatus.Completed;
222
- workflowState.endTime = new Date();
223
- await this.publishWorkflowEvent(workflow.id, 'completed');
224
- // 保留已完成的工作流程狀態,供後續查詢使用
225
- // this.activeWorkflows.delete(workflow.id);
226
- return {
227
- workflowId: workflow.id,
228
- status: WorkflowStatus.Completed,
229
- result: lastResult,
230
- executedSteps: [...workflowState.executedSteps],
231
- duration: Date.now() - startTime
232
- };
233
- }
234
- catch (error) {
235
- workflowState.status = WorkflowStatus.Failed;
236
- workflowState.error = error instanceof BaseError ? error : new WorkflowError('Workflow execution failed', { workflowId: workflow.id }, error);
237
- workflowState.endTime = new Date();
238
- await this.publishWorkflowEvent(workflow.id, 'failed');
239
- // 處理錯誤
240
- const errorContext = {
241
- module: 'workflow-engine',
242
- operation: 'execute',
243
- parameters: { workflowId: workflow.id },
244
- timestamp: new Date()
245
- };
246
- const handledError = await this.errorHandler.handle(error, errorContext);
247
- return {
248
- workflowId: workflow.id,
249
- status: WorkflowStatus.Failed,
250
- error: handledError,
251
- executedSteps: [...workflowState.executedSteps],
252
- duration: Date.now() - startTime
253
- };
254
- }
255
- }
256
- /**
257
- * 繼續執行暫停的工作流程
258
- */
259
- async continueExecution(workflow, workflowState) {
260
- // 找到當前應該執行的步驟
261
- const currentStepIndex = workflowState.currentStepId ?
262
- workflow.steps.findIndex(s => s.id === workflowState.currentStepId) :
263
- workflowState.executedSteps.length;
264
- // 建立修改後的工作流程,從當前步驟開始
265
- const remainingWorkflow = {
266
- ...workflow,
267
- steps: workflow.steps.slice(currentStepIndex)
268
- };
269
- return this.executeWorkflow(remainingWorkflow, workflowState);
270
- }
271
- /**
272
- * 執行單個步驟
273
- */
274
- async executeStep(step, context, workflowId) {
275
- let attemptCount = 0;
276
- const maxRetries = step.maxRetries || 0;
277
- while (attemptCount <= maxRetries) {
278
- try {
279
- const result = await step.execute(context);
280
- return result;
281
- }
282
- catch (error) {
283
- attemptCount++;
284
- // 如果步驟不可重試或達到最大重試次數
285
- if (!step.canRetry || attemptCount > maxRetries) {
286
- const stepError = error instanceof BaseError ? error : new WorkflowError(`Step ${step.id} failed`, { stepId: step.id, workflowId, attempt: attemptCount }, error);
287
- return {
288
- success: false,
289
- error: stepError
290
- };
291
- }
292
- // 短暫等待後重試
293
- await new Promise(resolve => setTimeout(resolve, 1000 * attemptCount));
294
- }
295
- }
296
- // 這行理論上不會執行到,但為了 TypeScript 類型檢查
297
- return {
298
- success: false,
299
- error: new WorkflowError(`Step ${step.id} failed after ${attemptCount} attempts`)
300
- };
301
- }
302
- /**
303
- * 執行回滾
304
- */
305
- async performRollback(workflow, workflowState, targetStepId) {
306
- const executedSteps = [...workflowState.executedSteps];
307
- // 確定回滾範圍
308
- let rollbackSteps;
309
- if (targetStepId) {
310
- const targetIndex = executedSteps.indexOf(targetStepId);
311
- if (targetIndex === -1) {
312
- throw new WorkflowError(`Target step ${targetStepId} not found in executed steps`);
313
- }
314
- rollbackSteps = executedSteps.slice(targetIndex + 1).reverse();
315
- }
316
- else {
317
- rollbackSteps = executedSteps.reverse();
318
- }
319
- // 執行回滾
320
- for (const stepId of rollbackSteps) {
321
- const step = workflow.steps.find(s => s.id === stepId);
322
- if (step?.rollback) {
323
- try {
324
- await step.rollback(workflowState.context);
325
- }
326
- catch (error) {
327
- throw new WorkflowError(`Rollback failed for step ${stepId}`, { stepId, workflowId: workflow.id }, error);
328
- }
329
- }
330
- }
331
- }
332
- /**
333
- * 發布工作流程事件
334
- */
335
- async publishWorkflowEvent(workflowId, eventType, stepId, data) {
336
- try {
337
- await this.eventBus.emit({
338
- type: 'workflow-event',
339
- timestamp: new Date(),
340
- priority: EventPriority.NORMAL,
341
- payload: {
342
- workflowId,
343
- eventType,
344
- stepId,
345
- data
346
- }
347
- });
348
- }
349
- catch (error) {
350
- // 記錄錯誤但不中斷工作流程執行
351
- console.error('Failed to publish workflow event:', error);
352
- }
353
- }
354
- /**
355
- * 驗證工作流程定義
356
- */
357
- validateWorkflow(workflow) {
358
- if (!workflow) {
359
- throw new WorkflowError('Workflow cannot be null or undefined');
360
- }
361
- if (!workflow.id || typeof workflow.id !== 'string') {
362
- throw new WorkflowError('Workflow must have a valid ID');
363
- }
364
- if (!workflow.name || typeof workflow.name !== 'string') {
365
- throw new WorkflowError('Workflow must have a valid name');
366
- }
367
- if (!Array.isArray(workflow.steps) || workflow.steps.length === 0) {
368
- throw new WorkflowError('Workflow must have at least one step');
369
- }
370
- // 驗證步驟
371
- for (const step of workflow.steps) {
372
- this.validateStep(step);
373
- }
374
- // 檢查步驟 ID 唯一性
375
- const stepIds = workflow.steps.map(s => s.id);
376
- const uniqueStepIds = new Set(stepIds);
377
- if (stepIds.length !== uniqueStepIds.size) {
378
- throw new WorkflowError('Workflow steps must have unique IDs');
379
- }
380
- }
381
- /**
382
- * 驗證工作流程步驟
383
- */
384
- validateStep(step) {
385
- if (!step) {
386
- throw new WorkflowError('Step cannot be null or undefined');
387
- }
388
- if (!step.id || typeof step.id !== 'string') {
389
- throw new WorkflowError('Step must have a valid ID');
390
- }
391
- if (!step.name || typeof step.name !== 'string') {
392
- throw new WorkflowError('Step must have a valid name');
393
- }
394
- if (!step.execute || typeof step.execute !== 'function') {
395
- throw new WorkflowError('Step must have a valid execute function');
396
- }
397
- if (step.rollback && typeof step.rollback !== 'function') {
398
- throw new WorkflowError('Step rollback must be a function if provided');
399
- }
400
- if (step.maxRetries !== undefined && (typeof step.maxRetries !== 'number' || step.maxRetries < 0)) {
401
- throw new WorkflowError('Step maxRetries must be a non-negative number if provided');
402
- }
403
- }
404
- }
405
- //# sourceMappingURL=workflow-engine.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workflow-engine.service.js","sourceRoot":"","sources":["../../../src/application/services/workflow-engine.service.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAGnE,OAAO,EACL,cAAc,EAQf,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,MAAM,OAAO,aAAc,SAAQ,SAAS;IAC1C,YAAY,OAAe,EAAE,OAA6B,EAAE,KAAa;QACvE,KAAK,CAAC,gBAAgB,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IACnD,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,qBAAqB;IACf,QAAQ,CAAW;IACnB,YAAY,CAAsB;IAClC,YAAY,CAAe;IAC3B,eAAe,CAA6B;IAC5C,iBAAiB,CAAuC;IACxD,gBAAgB,CAAwB;IAEzD,YACE,QAAkB,EAClB,YAAiC,EACjC,YAA0B;QAE1B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,eAAe,GAAG,IAAI,GAAG,EAAE,CAAC;QACjC,IAAI,CAAC,iBAAiB,GAAG,IAAI,GAAG,EAAE,CAAC;QACnC,IAAI,CAAC,gBAAgB,GAAG,IAAI,GAAG,EAAE,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAI,QAAqB;QACpC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAEhC,aAAa;QACb,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,aAAa,CAAC,oBAAoB,QAAQ,CAAC,EAAE,qBAAqB,CAAC,CAAC;QAChF,CAAC;QAED,mBAAmB;QACnB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QAEjD,WAAW;QACX,MAAM,aAAa,GAAkB;YACnC,UAAU,EAAE,QAAQ,CAAC,EAAE;YACvB,MAAM,EAAE,cAAc,CAAC,OAAO;YAC9B,aAAa,EAAE,EAAE;YACjB,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB,CAAC;QAEF,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;QAErD,SAAS;QACT,MAAM,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QAExD,eAAe;QACf,MAAM,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QACvE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC;QAE1D,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC;YACtC,OAAO,MAAM,CAAC;QAChB,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK,CAAC,UAAkB;QAC5B,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC3D,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,IAAI,aAAa,CAAC,uBAAuB,UAAU,EAAE,CAAC,CAAC;QAC/D,CAAC;QAED,IAAI,aAAa,CAAC,MAAM,KAAK,cAAc,CAAC,OAAO,EAAE,CAAC;YACpD,aAAa,CAAC,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC;YAC7C,MAAM,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAI,UAAkB;QAChC,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC3D,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,IAAI,aAAa,CAAC,uBAAuB,UAAU,EAAE,CAAC,CAAC;QAC/D,CAAC;QAED,IAAI,aAAa,CAAC,MAAM,KAAK,cAAc,CAAC,MAAM,EAAE,CAAC;YACnD,MAAM,IAAI,aAAa,CAAC,YAAY,UAAU,gBAAgB,CAAC,CAAC;QAClE,CAAC;QAED,aAAa,CAAC,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC;QAC9C,MAAM,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAEvD,kBAAkB;QAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QACrE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,aAAa,CAAC,kCAAkC,aAAa,CAAC,UAAU,EAAE,CAAC,CAAC;QACxF,CAAC;QACD,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAI,QAAuB,EAAE,aAAa,CAAC,CAAC;IACjF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,UAAkB,EAAE,MAAe;QAChD,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC3D,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,IAAI,aAAa,CAAC,uBAAuB,UAAU,EAAE,CAAC,CAAC;QAC/D,CAAC;QAED,mBAAmB;QACnB,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC/D,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,MAAM,IAAI,aAAa,CAAC,2CAA2C,UAAU,EAAE,CAAC,CAAC;QACnF,CAAC;QAED,MAAM,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;QAEpE,OAAO;QACP,IAAI,MAAM,EAAE,CAAC;YACX,UAAU;YACV,MAAM,SAAS,GAAG,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC9D,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;gBACrB,aAAa,CAAC,aAAa,GAAG,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;gBAC9E,aAAa,CAAC,aAAa,GAAG,MAAM,CAAC;YACvC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO;YACP,aAAa,CAAC,aAAa,GAAG,EAAE,CAAC;YACjC,aAAa,CAAC,aAAa,GAAG,SAAS,CAAC;QAC1C,CAAC;QAED,aAAa,CAAC,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,UAAkB;QAChC,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC3D,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,8BAA8B;YAC9B,OAAO,cAAc,CAAC,OAAO,CAAC;QAChC,CAAC;QAED,OAAO,aAAa,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,eAAe,CAC3B,QAAqB,EACrB,aAA4B;QAE5B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,IAAI,UAAU,GAAQ,QAAQ,CAAC,OAAO,CAAC;QAEvC,IAAI,CAAC;YACH,aAAa,CAAC,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC;YAE9C,OAAO;YACP,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC/C,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAE/B,aAAa;gBACb,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAC3D,IAAI,YAAY,EAAE,MAAM,KAAK,cAAc,CAAC,MAAM,EAAE,CAAC;oBACnD,aAAa,CAAC,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC;oBACtC,OAAO;wBACL,UAAU,EAAE,QAAQ,CAAC,EAAE;wBACvB,MAAM,EAAE,cAAc,CAAC,MAAM;wBAC7B,aAAa,EAAE,CAAC,GAAG,aAAa,CAAC,aAAa,CAAC;wBAC/C,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;qBACjC,CAAC;gBACJ,CAAC;gBAED,OAAO;gBACP,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAEzE,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;oBACvB,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBAC1C,UAAU,GAAG,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,CAAC,eAAe;oBAE3D,MAAM,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,EAAE,EAAE,gBAAgB,EAAE,IAAI,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;oBAEpF,iBAAiB;oBACjB,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;oBAC3D,IAAI,YAAY,EAAE,MAAM,KAAK,cAAc,CAAC,MAAM,EAAE,CAAC;wBACnD,OAAO;4BACL,UAAU,EAAE,QAAQ,CAAC,EAAE;4BACvB,MAAM,EAAE,cAAc,CAAC,MAAM;4BAC7B,aAAa,EAAE,CAAC,GAAG,aAAa,CAAC,aAAa,CAAC;4BAC/C,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;yBACjC,CAAC;oBACJ,CAAC;oBAED,YAAY;oBACZ,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;wBAC1B,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,UAAU,CAAC,UAAU,CAAC,CAAC;wBACpF,IAAI,aAAa,KAAK,CAAC,CAAC,EAAE,CAAC;4BACzB,CAAC,GAAG,aAAa,GAAG,CAAC,CAAC,CAAC,mBAAmB;4BAC1C,SAAS;wBACX,CAAC;oBACH,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,OAAO;oBACP,aAAa,CAAC,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC;oBAC7C,aAAa,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;oBACvC,aAAa,CAAC,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;oBAEnC,MAAM,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;oBAEhE,YAAY;oBACZ,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;wBACrB,MAAM,YAAY,GAAiB;4BACjC,MAAM,EAAE,iBAAiB;4BACzB,SAAS,EAAE,aAAa;4BACxB,UAAU,EAAE,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE;4BACxD,SAAS,EAAE,IAAI,IAAI,EAAE;yBACtB,CAAC;wBAEF,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;wBAEpF,OAAO;4BACL,UAAU,EAAE,QAAQ,CAAC,EAAE;4BACvB,MAAM,EAAE,cAAc,CAAC,MAAM;4BAC7B,KAAK,EAAE,YAAY;4BACnB,aAAa,EAAE,CAAC,GAAG,aAAa,CAAC,aAAa,CAAC;4BAC/C,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;yBACjC,CAAC;oBACJ,CAAC;oBAED,OAAO;wBACL,UAAU,EAAE,QAAQ,CAAC,EAAE;wBACvB,MAAM,EAAE,cAAc,CAAC,MAAM;wBAC7B,KAAK,EAAE,UAAU,CAAC,KAAK;wBACvB,aAAa,EAAE,CAAC,GAAG,aAAa,CAAC,aAAa,CAAC;wBAC/C,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;qBACjC,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,SAAS;YACT,aAAa,CAAC,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC;YAChD,aAAa,CAAC,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;YAEnC,MAAM,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;YAE1D,uBAAuB;YACvB,4CAA4C;YAE5C,OAAO;gBACL,UAAU,EAAE,QAAQ,CAAC,EAAE;gBACvB,MAAM,EAAE,cAAc,CAAC,SAAS;gBAChC,MAAM,EAAE,UAAU;gBAClB,aAAa,EAAE,CAAC,GAAG,aAAa,CAAC,aAAa,CAAC;gBAC/C,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;aACjC,CAAC;QAEJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,aAAa,CAAC,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC;YAC7C,aAAa,CAAC,KAAK,GAAG,KAAK,YAAY,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,aAAa,CAC1E,2BAA2B,EAC3B,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE,EAC3B,KAAc,CACf,CAAC;YACF,aAAa,CAAC,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;YAEnC,MAAM,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;YAEvD,OAAO;YACP,MAAM,YAAY,GAAiB;gBACjC,MAAM,EAAE,iBAAiB;gBACzB,SAAS,EAAE,SAAS;gBACpB,UAAU,EAAE,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE;gBACvC,SAAS,EAAE,IAAI,IAAI,EAAE;aACtB,CAAC;YAEF,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAc,EAAE,YAAY,CAAC,CAAC;YAElF,OAAO;gBACL,UAAU,EAAE,QAAQ,CAAC,EAAE;gBACvB,MAAM,EAAE,cAAc,CAAC,MAAM;gBAC7B,KAAK,EAAE,YAAY;gBACnB,aAAa,EAAE,CAAC,GAAG,aAAa,CAAC,aAAa,CAAC;gBAC/C,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;aACjC,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,iBAAiB,CAC7B,QAAqB,EACrB,aAA4B;QAE5B,cAAc;QACd,MAAM,gBAAgB,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC;YACpD,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC;YACrE,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC;QAErC,qBAAqB;QACrB,MAAM,iBAAiB,GAAgB;YACrC,GAAG,QAAQ;YACX,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC;SAC9C,CAAC;QAEF,OAAO,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC;IAChE,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,WAAW,CACvB,IAAkB,EAClB,OAAY,EACZ,UAAkB;QAElB,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC;QAExC,OAAO,YAAY,IAAI,UAAU,EAAE,CAAC;YAClC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC3C,OAAO,MAAM,CAAC;YAChB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,YAAY,EAAE,CAAC;gBAEf,oBAAoB;gBACpB,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,YAAY,GAAG,UAAU,EAAE,CAAC;oBAChD,MAAM,SAAS,GAAG,KAAK,YAAY,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,aAAa,CACtE,QAAQ,IAAI,CAAC,EAAE,SAAS,EACxB,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,EACtD,KAAc,CACf,CAAC;oBAEF,OAAO;wBACL,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,SAAS;qBACjB,CAAC;gBACJ,CAAC;gBAED,UAAU;gBACV,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC;YACzE,CAAC;QACH,CAAC;QAED,iCAAiC;QACjC,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,IAAI,aAAa,CAAC,QAAQ,IAAI,CAAC,EAAE,iBAAiB,YAAY,WAAW,CAAC;SAClF,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,eAAe,CAC3B,QAAkB,EAClB,aAA4B,EAC5B,YAAqB;QAErB,MAAM,aAAa,GAAG,CAAC,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC;QAEvD,SAAS;QACT,IAAI,aAAuB,CAAC;QAC5B,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YACxD,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE,CAAC;gBACvB,MAAM,IAAI,aAAa,CAAC,eAAe,YAAY,8BAA8B,CAAC,CAAC;YACrF,CAAC;YACD,aAAa,GAAG,aAAa,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QACjE,CAAC;aAAM,CAAC;YACN,aAAa,GAAG,aAAa,CAAC,OAAO,EAAE,CAAC;QAC1C,CAAC;QAED,OAAO;QACP,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;YACnC,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;YACvD,IAAI,IAAI,EAAE,QAAQ,EAAE,CAAC;gBACnB,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBAC7C,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,IAAI,aAAa,CACrB,4BAA4B,MAAM,EAAE,EACpC,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE,EACnC,KAAc,CACf,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,oBAAoB,CAChC,UAAkB,EAClB,SAAuF,EACvF,MAAe,EACf,IAAU;QAEV,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACvB,IAAI,EAAE,gBAAgB;gBACtB,SAAS,EAAE,IAAI,IAAI,EAAE;gBACrB,QAAQ,EAAE,aAAa,CAAC,MAAM;gBAC9B,OAAO,EAAE;oBACP,UAAU;oBACV,SAAS;oBACT,MAAM;oBACN,IAAI;iBACL;aACF,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,iBAAiB;YACjB,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAGD;;OAEG;IACK,gBAAgB,CAAC,QAAkB;QACzC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,aAAa,CAAC,sCAAsC,CAAC,CAAC;QAClE,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,OAAO,QAAQ,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;YACpD,MAAM,IAAI,aAAa,CAAC,+BAA+B,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACxD,MAAM,IAAI,aAAa,CAAC,iCAAiC,CAAC,CAAC;QAC7D,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClE,MAAM,IAAI,aAAa,CAAC,sCAAsC,CAAC,CAAC;QAClE,CAAC;QAED,OAAO;QACP,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YAClC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QAED,cAAc;QACd,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC9C,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;QACvC,IAAI,OAAO,CAAC,MAAM,KAAK,aAAa,CAAC,IAAI,EAAE,CAAC;YAC1C,MAAM,IAAI,aAAa,CAAC,qCAAqC,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED;;OAEG;IACK,YAAY,CAAC,IAAkB;QACrC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,aAAa,CAAC,kCAAkC,CAAC,CAAC;QAC9D,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;YAC5C,MAAM,IAAI,aAAa,CAAC,2BAA2B,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAChD,MAAM,IAAI,aAAa,CAAC,6BAA6B,CAAC,CAAC;QACzD,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;YACxD,MAAM,IAAI,aAAa,CAAC,yCAAyC,CAAC,CAAC;QACrE,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;YACzD,MAAM,IAAI,aAAa,CAAC,8CAA8C,CAAC,CAAC;QAC1E,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,CAAC,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,EAAE,CAAC;YAClG,MAAM,IAAI,aAAa,CAAC,2DAA2D,CAAC,CAAC;QACvF,CAAC;IACH,CAAC;CACF"}