agent-ide 0.8.1 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (418) 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/call-site-updater.d.ts +108 -0
  19. package/dist/core/change-signature/call-site-updater.d.ts.map +1 -0
  20. package/dist/core/change-signature/call-site-updater.js +347 -0
  21. package/dist/core/change-signature/call-site-updater.js.map +1 -0
  22. package/dist/core/change-signature/change-signature-service.d.ts +11 -53
  23. package/dist/core/change-signature/change-signature-service.d.ts.map +1 -1
  24. package/dist/core/change-signature/change-signature-service.js +91 -475
  25. package/dist/core/change-signature/change-signature-service.js.map +1 -1
  26. package/dist/core/change-signature/index.d.ts +4 -0
  27. package/dist/core/change-signature/index.d.ts.map +1 -1
  28. package/dist/core/change-signature/index.js +5 -0
  29. package/dist/core/change-signature/index.js.map +1 -1
  30. package/dist/core/change-signature/signature-parser.d.ts +46 -4
  31. package/dist/core/change-signature/signature-parser.d.ts.map +1 -1
  32. package/dist/core/change-signature/signature-parser.js +180 -9
  33. package/dist/core/change-signature/signature-parser.js.map +1 -1
  34. package/dist/core/change-signature/signature-transformer.d.ts +20 -0
  35. package/dist/core/change-signature/signature-transformer.d.ts.map +1 -0
  36. package/dist/core/change-signature/signature-transformer.js +91 -0
  37. package/dist/core/change-signature/signature-transformer.js.map +1 -0
  38. package/dist/core/change-signature/signature-validator.d.ts +30 -0
  39. package/dist/core/change-signature/signature-validator.d.ts.map +1 -0
  40. package/dist/core/change-signature/signature-validator.js +152 -0
  41. package/dist/core/change-signature/signature-validator.js.map +1 -0
  42. package/dist/core/change-signature/utils.d.ts +19 -0
  43. package/dist/core/change-signature/utils.d.ts.map +1 -0
  44. package/dist/core/change-signature/utils.js +23 -0
  45. package/dist/core/change-signature/utils.js.map +1 -0
  46. package/dist/core/cycles/cycle-detector.d.ts.map +1 -1
  47. package/dist/core/cycles/cycle-detector.js +16 -8
  48. package/dist/core/cycles/cycle-detector.js.map +1 -1
  49. package/dist/core/cycles/index.d.ts +1 -1
  50. package/dist/core/cycles/index.d.ts.map +1 -1
  51. package/dist/core/cycles/index.js +1 -1
  52. package/dist/core/cycles/index.js.map +1 -1
  53. package/dist/core/cycles/types.d.ts +20 -4
  54. package/dist/core/cycles/types.d.ts.map +1 -1
  55. package/dist/core/cycles/types.js +22 -4
  56. package/dist/core/cycles/types.js.map +1 -1
  57. package/dist/core/deadcode/dead-code-detector.d.ts +22 -1
  58. package/dist/core/deadcode/dead-code-detector.d.ts.map +1 -1
  59. package/dist/core/deadcode/dead-code-detector.js +134 -61
  60. package/dist/core/deadcode/dead-code-detector.js.map +1 -1
  61. package/dist/core/deadcode/dead-code-remover.d.ts +11 -93
  62. package/dist/core/deadcode/dead-code-remover.d.ts.map +1 -1
  63. package/dist/core/deadcode/dead-code-remover.js +71 -690
  64. package/dist/core/deadcode/dead-code-remover.js.map +1 -1
  65. package/dist/core/deadcode/file-operations.d.ts +85 -0
  66. package/dist/core/deadcode/file-operations.d.ts.map +1 -0
  67. package/dist/core/deadcode/file-operations.js +263 -0
  68. package/dist/core/deadcode/file-operations.js.map +1 -0
  69. package/dist/core/deadcode/import-cleaner.d.ts +63 -0
  70. package/dist/core/deadcode/import-cleaner.d.ts.map +1 -0
  71. package/dist/core/deadcode/import-cleaner.js +229 -0
  72. package/dist/core/deadcode/import-cleaner.js.map +1 -0
  73. package/dist/core/deadcode/import-parser.d.ts +79 -0
  74. package/dist/core/deadcode/import-parser.d.ts.map +1 -0
  75. package/dist/core/deadcode/import-parser.js +229 -0
  76. package/dist/core/deadcode/import-parser.js.map +1 -0
  77. package/dist/core/deadcode/range-expander.d.ts +38 -0
  78. package/dist/core/deadcode/range-expander.d.ts.map +1 -0
  79. package/dist/core/deadcode/range-expander.js +175 -0
  80. package/dist/core/deadcode/range-expander.js.map +1 -0
  81. package/dist/core/deadcode/types.d.ts +2 -0
  82. package/dist/core/deadcode/types.d.ts.map +1 -1
  83. package/dist/core/deadcode/types.js.map +1 -1
  84. package/dist/core/find-references/index.d.ts +2 -2
  85. package/dist/core/find-references/index.d.ts.map +1 -1
  86. package/dist/core/find-references/index.js +1 -1
  87. package/dist/core/find-references/index.js.map +1 -1
  88. package/dist/core/impact/dependency-extractor.d.ts +25 -0
  89. package/dist/core/impact/dependency-extractor.d.ts.map +1 -0
  90. package/dist/core/impact/dependency-extractor.js +65 -0
  91. package/dist/core/impact/dependency-extractor.js.map +1 -0
  92. package/dist/core/impact/file-scanner.d.ts +52 -0
  93. package/dist/core/impact/file-scanner.d.ts.map +1 -0
  94. package/dist/core/impact/file-scanner.js +131 -0
  95. package/dist/core/impact/file-scanner.js.map +1 -0
  96. package/dist/core/impact/impact-analyzer.d.ts +3 -64
  97. package/dist/core/impact/impact-analyzer.d.ts.map +1 -1
  98. package/dist/core/impact/impact-analyzer.js +13 -312
  99. package/dist/core/impact/impact-analyzer.js.map +1 -1
  100. package/dist/core/impact/index.d.ts +3 -0
  101. package/dist/core/impact/index.d.ts.map +1 -1
  102. package/dist/core/impact/index.js +3 -0
  103. package/dist/core/impact/index.js.map +1 -1
  104. package/dist/core/impact/path-resolver.d.ts +35 -0
  105. package/dist/core/impact/path-resolver.d.ts.map +1 -0
  106. package/dist/core/impact/path-resolver.js +166 -0
  107. package/dist/core/impact/path-resolver.js.map +1 -0
  108. package/dist/core/move/file-scanner.d.ts +48 -0
  109. package/dist/core/move/file-scanner.d.ts.map +1 -0
  110. package/dist/core/move/file-scanner.js +137 -0
  111. package/dist/core/move/file-scanner.js.map +1 -0
  112. package/dist/core/move/import-resolver.d.ts +10 -0
  113. package/dist/core/move/import-resolver.d.ts.map +1 -1
  114. package/dist/core/move/import-resolver.js +31 -6
  115. package/dist/core/move/import-resolver.js.map +1 -1
  116. package/dist/core/move/index.d.ts +7 -3
  117. package/dist/core/move/index.d.ts.map +1 -1
  118. package/dist/core/move/index.js +7 -2
  119. package/dist/core/move/index.js.map +1 -1
  120. package/dist/core/move/move-service.d.ts +41 -52
  121. package/dist/core/move/move-service.d.ts.map +1 -1
  122. package/dist/core/move/move-service.js +189 -358
  123. package/dist/core/move/move-service.js.map +1 -1
  124. package/dist/core/move/path-calculator.d.ts +49 -0
  125. package/dist/core/move/path-calculator.d.ts.map +1 -0
  126. package/dist/core/move/path-calculator.js +158 -0
  127. package/dist/core/move/path-calculator.js.map +1 -0
  128. package/dist/core/move/path-parser.d.ts +33 -0
  129. package/dist/core/move/path-parser.d.ts.map +1 -0
  130. package/dist/core/move/path-parser.js +53 -0
  131. package/dist/core/move/path-parser.js.map +1 -0
  132. package/dist/core/move/path-utils.d.ts +70 -0
  133. package/dist/core/move/path-utils.d.ts.map +1 -0
  134. package/dist/core/move/path-utils.js +201 -0
  135. package/dist/core/move/path-utils.js.map +1 -0
  136. package/dist/core/move/types.d.ts +81 -18
  137. package/dist/core/move/types.d.ts.map +1 -1
  138. package/dist/core/move/types.js +73 -5
  139. package/dist/core/move/types.js.map +1 -1
  140. package/dist/core/move-member/change-applier.d.ts +23 -0
  141. package/dist/core/move-member/change-applier.d.ts.map +1 -0
  142. package/dist/core/move-member/change-applier.js +51 -0
  143. package/dist/core/move-member/change-applier.js.map +1 -0
  144. package/dist/core/move-member/file-change-preparer.d.ts +49 -0
  145. package/dist/core/move-member/file-change-preparer.d.ts.map +1 -0
  146. package/dist/core/move-member/file-change-preparer.js +340 -0
  147. package/dist/core/move-member/file-change-preparer.js.map +1 -0
  148. package/dist/core/move-member/index.d.ts +4 -1
  149. package/dist/core/move-member/index.d.ts.map +1 -1
  150. package/dist/core/move-member/index.js +3 -0
  151. package/dist/core/move-member/index.js.map +1 -1
  152. package/dist/core/move-member/member-extractor.d.ts +11 -0
  153. package/dist/core/move-member/member-extractor.d.ts.map +1 -1
  154. package/dist/core/move-member/member-extractor.js +116 -24
  155. package/dist/core/move-member/member-extractor.js.map +1 -1
  156. package/dist/core/move-member/move-member-service.d.ts +9 -78
  157. package/dist/core/move-member/move-member-service.d.ts.map +1 -1
  158. package/dist/core/move-member/move-member-service.js +86 -413
  159. package/dist/core/move-member/move-member-service.js.map +1 -1
  160. package/dist/core/move-member/reference-updater.d.ts +73 -0
  161. package/dist/core/move-member/reference-updater.d.ts.map +1 -0
  162. package/dist/core/move-member/reference-updater.js +286 -0
  163. package/dist/core/move-member/reference-updater.js.map +1 -0
  164. package/dist/core/move-member/types.d.ts +17 -2
  165. package/dist/core/move-member/types.d.ts.map +1 -1
  166. package/dist/core/move-member/types.js.map +1 -1
  167. package/dist/core/rename/reference-updater.d.ts +1 -35
  168. package/dist/core/rename/reference-updater.d.ts.map +1 -1
  169. package/dist/core/rename/reference-updater.js +8 -251
  170. package/dist/core/rename/reference-updater.js.map +1 -1
  171. package/dist/core/rename/rename-engine.d.ts +16 -22
  172. package/dist/core/rename/rename-engine.d.ts.map +1 -1
  173. package/dist/core/rename/rename-engine.js +59 -208
  174. package/dist/core/rename/rename-engine.js.map +1 -1
  175. package/dist/core/rename/scope-analyzer.d.ts.map +1 -1
  176. package/dist/core/shared/index.d.ts +1 -1
  177. package/dist/core/shared/index.d.ts.map +1 -1
  178. package/dist/core/shared/index.js +1 -1
  179. package/dist/core/shared/index.js.map +1 -1
  180. package/dist/core/shared/indexing/index-engine.d.ts +1 -1
  181. package/dist/core/shared/indexing/index-engine.d.ts.map +1 -1
  182. package/dist/core/shared/indexing/index-engine.js +1 -1
  183. package/dist/core/shared/indexing/index-engine.js.map +1 -1
  184. package/dist/core/shared/symbol-finder/call-site-parser.d.ts +71 -0
  185. package/dist/core/shared/symbol-finder/call-site-parser.d.ts.map +1 -0
  186. package/dist/core/shared/symbol-finder/call-site-parser.js +369 -0
  187. package/dist/core/shared/symbol-finder/call-site-parser.js.map +1 -0
  188. package/dist/core/shared/symbol-finder/index.d.ts +9 -0
  189. package/dist/core/shared/symbol-finder/index.d.ts.map +1 -0
  190. package/dist/core/shared/symbol-finder/index.js +12 -0
  191. package/dist/core/shared/symbol-finder/index.js.map +1 -0
  192. package/dist/core/shared/{symbol-finder.d.ts → symbol-finder/symbol-finder.d.ts} +27 -133
  193. package/dist/core/shared/symbol-finder/symbol-finder.d.ts.map +1 -0
  194. package/dist/core/shared/symbol-finder/symbol-finder.js +552 -0
  195. package/dist/core/shared/symbol-finder/symbol-finder.js.map +1 -0
  196. package/dist/core/shared/symbol-finder/text-matcher.d.ts +45 -0
  197. package/dist/core/shared/symbol-finder/text-matcher.d.ts.map +1 -0
  198. package/dist/core/shared/symbol-finder/text-matcher.js +195 -0
  199. package/dist/core/shared/symbol-finder/text-matcher.js.map +1 -0
  200. package/dist/core/shared/symbol-finder/types.d.ts +108 -0
  201. package/dist/core/shared/symbol-finder/types.d.ts.map +1 -0
  202. package/dist/core/shared/symbol-finder/types.js +71 -0
  203. package/dist/core/shared/symbol-finder/types.js.map +1 -0
  204. package/dist/core/snapshot/snapshot-generator.d.ts +16 -4
  205. package/dist/core/snapshot/snapshot-generator.d.ts.map +1 -1
  206. package/dist/core/snapshot/snapshot-generator.js +91 -18
  207. package/dist/core/snapshot/snapshot-generator.js.map +1 -1
  208. package/dist/infrastructure/cache/cache-manager.d.ts.map +1 -1
  209. package/dist/infrastructure/cache/cache-manager.js +4 -0
  210. package/dist/infrastructure/cache/cache-manager.js.map +1 -1
  211. package/dist/infrastructure/cache/index.d.ts +15 -9
  212. package/dist/infrastructure/cache/index.d.ts.map +1 -1
  213. package/dist/infrastructure/cache/index.js +5 -5
  214. package/dist/infrastructure/cache/index.js.map +1 -1
  215. package/dist/infrastructure/cache/memory-cache.d.ts.map +1 -1
  216. package/dist/infrastructure/cache/memory-cache.js.map +1 -1
  217. package/dist/infrastructure/cache/strategies.d.ts.map +1 -1
  218. package/dist/infrastructure/cache/strategies.js +2 -1
  219. package/dist/infrastructure/cache/strategies.js.map +1 -1
  220. package/dist/infrastructure/cache/types.d.ts +4 -4
  221. package/dist/infrastructure/cache/types.d.ts.map +1 -1
  222. package/dist/infrastructure/changeset/change-applicator.d.ts +95 -0
  223. package/dist/infrastructure/changeset/change-applicator.d.ts.map +1 -0
  224. package/dist/infrastructure/changeset/change-applicator.js +467 -0
  225. package/dist/infrastructure/changeset/change-applicator.js.map +1 -0
  226. package/dist/infrastructure/changeset/changeset-builder.d.ts +107 -0
  227. package/dist/infrastructure/changeset/changeset-builder.d.ts.map +1 -0
  228. package/dist/infrastructure/changeset/changeset-builder.js +188 -0
  229. package/dist/infrastructure/changeset/changeset-builder.js.map +1 -0
  230. package/dist/infrastructure/changeset/changeset-converter.d.ts +15 -0
  231. package/dist/infrastructure/changeset/changeset-converter.d.ts.map +1 -0
  232. package/dist/infrastructure/changeset/changeset-converter.js +370 -0
  233. package/dist/infrastructure/changeset/changeset-converter.js.map +1 -0
  234. package/dist/infrastructure/changeset/index.d.ts +10 -0
  235. package/dist/infrastructure/changeset/index.d.ts.map +1 -0
  236. package/dist/infrastructure/changeset/index.js +13 -0
  237. package/dist/infrastructure/changeset/index.js.map +1 -0
  238. package/dist/infrastructure/changeset/types.d.ts +147 -0
  239. package/dist/infrastructure/changeset/types.d.ts.map +1 -0
  240. package/dist/infrastructure/changeset/types.js +46 -0
  241. package/dist/infrastructure/changeset/types.js.map +1 -0
  242. package/dist/infrastructure/parser/base.d.ts.map +1 -1
  243. package/dist/infrastructure/parser/base.js +4 -3
  244. package/dist/infrastructure/parser/base.js.map +1 -1
  245. package/dist/infrastructure/parser/interface.d.ts +4 -2
  246. package/dist/infrastructure/parser/interface.d.ts.map +1 -1
  247. package/dist/infrastructure/parser/interface.js.map +1 -1
  248. package/dist/infrastructure/storage/file-system.d.ts.map +1 -1
  249. package/dist/infrastructure/storage/file-system.js +61 -54
  250. package/dist/infrastructure/storage/file-system.js.map +1 -1
  251. package/dist/interfaces/cli/cli.d.ts.map +1 -1
  252. package/dist/interfaces/cli/cli.js +1 -2
  253. package/dist/interfaces/cli/cli.js.map +1 -1
  254. package/dist/interfaces/cli/commands/change-signature.command.d.ts.map +1 -1
  255. package/dist/interfaces/cli/commands/change-signature.command.js +31 -107
  256. package/dist/interfaces/cli/commands/change-signature.command.js.map +1 -1
  257. package/dist/interfaces/cli/commands/deadcode.command.js +51 -46
  258. package/dist/interfaces/cli/commands/deadcode.command.js.map +1 -1
  259. package/dist/interfaces/cli/commands/find-references.command.d.ts.map +1 -1
  260. package/dist/interfaces/cli/commands/find-references.command.js +18 -3
  261. package/dist/interfaces/cli/commands/find-references.command.js.map +1 -1
  262. package/dist/interfaces/cli/commands/index.d.ts +0 -1
  263. package/dist/interfaces/cli/commands/index.d.ts.map +1 -1
  264. package/dist/interfaces/cli/commands/index.js +0 -1
  265. package/dist/interfaces/cli/commands/index.js.map +1 -1
  266. package/dist/interfaces/cli/commands/move.command.d.ts +1 -0
  267. package/dist/interfaces/cli/commands/move.command.d.ts.map +1 -1
  268. package/dist/interfaces/cli/commands/move.command.js +170 -65
  269. package/dist/interfaces/cli/commands/move.command.js.map +1 -1
  270. package/dist/interfaces/cli/commands/rename.command.d.ts.map +1 -1
  271. package/dist/interfaces/cli/commands/rename.command.js +133 -59
  272. package/dist/interfaces/cli/commands/rename.command.js.map +1 -1
  273. package/dist/interfaces/cli/output-formatter.d.ts +2 -2
  274. package/dist/interfaces/cli/output-formatter.d.ts.map +1 -1
  275. package/dist/interfaces/cli/output-formatter.js.map +1 -1
  276. package/dist/plugins/javascript/declaration-analyzer.d.ts.map +1 -1
  277. package/dist/plugins/javascript/declaration-analyzer.js +9 -0
  278. package/dist/plugins/javascript/declaration-analyzer.js.map +1 -1
  279. package/dist/plugins/javascript/parser.d.ts +11 -10
  280. package/dist/plugins/javascript/parser.d.ts.map +1 -1
  281. package/dist/plugins/javascript/parser.js +57 -53
  282. package/dist/plugins/javascript/parser.js.map +1 -1
  283. package/dist/plugins/javascript/pattern-analyzer.d.ts.map +1 -1
  284. package/dist/plugins/javascript/pattern-analyzer.js +4 -3
  285. package/dist/plugins/javascript/pattern-analyzer.js.map +1 -1
  286. package/dist/plugins/javascript/reference-finder.d.ts +21 -0
  287. package/dist/plugins/javascript/reference-finder.d.ts.map +1 -1
  288. package/dist/plugins/javascript/reference-finder.js +119 -76
  289. package/dist/plugins/javascript/reference-finder.js.map +1 -1
  290. package/dist/plugins/javascript/types.d.ts +4 -7
  291. package/dist/plugins/javascript/types.d.ts.map +1 -1
  292. package/dist/plugins/javascript/types.js +9 -9
  293. package/dist/plugins/javascript/types.js.map +1 -1
  294. package/dist/plugins/shared/parser-helpers.js.map +1 -1
  295. package/dist/{shared → plugins/shared}/utils/array.d.ts +6 -1
  296. package/dist/plugins/shared/utils/array.d.ts.map +1 -0
  297. package/dist/plugins/shared/utils/array.js.map +1 -0
  298. package/dist/{shared → plugins/shared}/utils/async.d.ts +1 -1
  299. package/dist/plugins/shared/utils/async.d.ts.map +1 -0
  300. package/dist/{shared → plugins/shared}/utils/async.js +2 -0
  301. package/dist/plugins/shared/utils/async.js.map +1 -0
  302. package/dist/{shared → plugins/shared}/utils/index.d.ts +0 -20
  303. package/dist/plugins/shared/utils/index.d.ts.map +1 -0
  304. package/dist/{shared → plugins/shared}/utils/index.js +0 -20
  305. package/dist/plugins/shared/utils/index.js.map +1 -0
  306. package/dist/plugins/shared/utils/memory-monitor.d.ts.map +1 -0
  307. package/dist/plugins/shared/utils/memory-monitor.js.map +1 -0
  308. package/dist/{shared → plugins/shared}/utils/object.d.ts +6 -6
  309. package/dist/plugins/shared/utils/object.d.ts.map +1 -0
  310. package/dist/{shared → plugins/shared}/utils/object.js +21 -3
  311. package/dist/plugins/shared/utils/object.js.map +1 -0
  312. package/dist/plugins/shared/utils/path.d.ts.map +1 -0
  313. package/dist/plugins/shared/utils/path.js.map +1 -0
  314. package/dist/{shared → plugins/shared}/utils/string.d.ts +1 -1
  315. package/dist/plugins/shared/utils/string.d.ts.map +1 -0
  316. package/dist/{shared → plugins/shared}/utils/string.js +7 -4
  317. package/dist/plugins/shared/utils/string.js.map +1 -0
  318. package/dist/plugins/typescript/declaration-analyzer.d.ts +4 -4
  319. package/dist/plugins/typescript/declaration-analyzer.d.ts.map +1 -1
  320. package/dist/plugins/typescript/declaration-analyzer.js +13 -6
  321. package/dist/plugins/typescript/declaration-analyzer.js.map +1 -1
  322. package/dist/plugins/typescript/language-service.d.ts +1 -1
  323. package/dist/plugins/typescript/language-service.d.ts.map +1 -1
  324. package/dist/plugins/typescript/parser.d.ts +3 -2
  325. package/dist/plugins/typescript/parser.d.ts.map +1 -1
  326. package/dist/plugins/typescript/parser.js +18 -13
  327. package/dist/plugins/typescript/parser.js.map +1 -1
  328. package/dist/plugins/typescript/reference-finder.d.ts +3 -0
  329. package/dist/plugins/typescript/reference-finder.d.ts.map +1 -1
  330. package/dist/plugins/typescript/reference-finder.js +16 -4
  331. package/dist/plugins/typescript/reference-finder.js.map +1 -1
  332. package/dist/plugins/typescript/symbol-extractor.d.ts +4 -0
  333. package/dist/plugins/typescript/symbol-extractor.d.ts.map +1 -1
  334. package/dist/plugins/typescript/symbol-extractor.js +24 -6
  335. package/dist/plugins/typescript/symbol-extractor.js.map +1 -1
  336. package/dist/plugins/typescript/types.d.ts +0 -3
  337. package/dist/plugins/typescript/types.d.ts.map +1 -1
  338. package/dist/plugins/typescript/types.js +6 -9
  339. package/dist/plugins/typescript/types.js.map +1 -1
  340. package/dist/shared/errors/index.d.ts +1 -1
  341. package/dist/shared/errors/index.d.ts.map +1 -1
  342. package/dist/shared/errors/parser-error.js +5 -5
  343. package/dist/shared/errors/parser-error.js.map +1 -1
  344. package/dist/shared/errors/validation-error.d.ts +2 -2
  345. package/dist/shared/errors/validation-error.d.ts.map +1 -1
  346. package/dist/shared/errors/validation-error.js.map +1 -1
  347. package/dist/shared/types/ast.d.ts +4 -4
  348. package/dist/shared/types/ast.d.ts.map +1 -1
  349. package/dist/shared/types/ast.js.map +1 -1
  350. package/dist/shared/types/core.d.ts +1 -1
  351. package/dist/shared/types/core.d.ts.map +1 -1
  352. package/dist/shared/types/index.d.ts +1 -0
  353. package/dist/shared/types/index.d.ts.map +1 -1
  354. package/dist/shared/types/index.js +2 -0
  355. package/dist/shared/types/index.js.map +1 -1
  356. package/dist/shared/types/line-number.d.ts +22 -0
  357. package/dist/shared/types/line-number.d.ts.map +1 -0
  358. package/dist/shared/types/line-number.js +28 -0
  359. package/dist/shared/types/line-number.js.map +1 -0
  360. package/package.json +2 -2
  361. package/dist/application/services/workflow-engine.service.d.ts +0 -76
  362. package/dist/application/services/workflow-engine.service.d.ts.map +0 -1
  363. package/dist/application/services/workflow-engine.service.js +0 -405
  364. package/dist/application/services/workflow-engine.service.js.map +0 -1
  365. package/dist/application/workflows/analysis-workflow.d.ts +0 -239
  366. package/dist/application/workflows/analysis-workflow.d.ts.map +0 -1
  367. package/dist/application/workflows/analysis-workflow.js +0 -395
  368. package/dist/application/workflows/analysis-workflow.js.map +0 -1
  369. package/dist/application/workflows/base-workflow.d.ts +0 -108
  370. package/dist/application/workflows/base-workflow.d.ts.map +0 -1
  371. package/dist/application/workflows/base-workflow.js +0 -236
  372. package/dist/application/workflows/base-workflow.js.map +0 -1
  373. package/dist/application/workflows/index.d.ts +0 -115
  374. package/dist/application/workflows/index.d.ts.map +0 -1
  375. package/dist/application/workflows/index.js +0 -218
  376. package/dist/application/workflows/index.js.map +0 -1
  377. package/dist/application/workflows/refactor-workflow.d.ts +0 -107
  378. package/dist/application/workflows/refactor-workflow.d.ts.map +0 -1
  379. package/dist/application/workflows/refactor-workflow.js +0 -310
  380. package/dist/application/workflows/refactor-workflow.js.map +0 -1
  381. package/dist/core/shared/symbol-finder.d.ts.map +0 -1
  382. package/dist/core/shared/symbol-finder.js +0 -882
  383. package/dist/core/shared/symbol-finder.js.map +0 -1
  384. package/dist/interfaces/cli/commands/move-member.command.d.ts +0 -11
  385. package/dist/interfaces/cli/commands/move-member.command.d.ts.map +0 -1
  386. package/dist/interfaces/cli/commands/move-member.command.js +0 -211
  387. package/dist/interfaces/cli/commands/move-member.command.js.map +0 -1
  388. package/dist/plugins/javascript/code-analyzer.d.ts +0 -68
  389. package/dist/plugins/javascript/code-analyzer.d.ts.map +0 -1
  390. package/dist/plugins/javascript/code-analyzer.js +0 -302
  391. package/dist/plugins/javascript/code-analyzer.js.map +0 -1
  392. package/dist/plugins/javascript/index.d.ts +0 -12
  393. package/dist/plugins/javascript/index.d.ts.map +0 -1
  394. package/dist/plugins/javascript/index.js +0 -16
  395. package/dist/plugins/javascript/index.js.map +0 -1
  396. package/dist/plugins/typescript/index.d.ts +0 -14
  397. package/dist/plugins/typescript/index.d.ts.map +0 -1
  398. package/dist/plugins/typescript/index.js +0 -13
  399. package/dist/plugins/typescript/index.js.map +0 -1
  400. package/dist/shared/utils/array.d.ts.map +0 -1
  401. package/dist/shared/utils/array.js.map +0 -1
  402. package/dist/shared/utils/async.d.ts.map +0 -1
  403. package/dist/shared/utils/async.js.map +0 -1
  404. package/dist/shared/utils/index.d.ts.map +0 -1
  405. package/dist/shared/utils/index.js.map +0 -1
  406. package/dist/shared/utils/memory-monitor.d.ts.map +0 -1
  407. package/dist/shared/utils/memory-monitor.js.map +0 -1
  408. package/dist/shared/utils/object.d.ts.map +0 -1
  409. package/dist/shared/utils/object.js.map +0 -1
  410. package/dist/shared/utils/path.d.ts.map +0 -1
  411. package/dist/shared/utils/path.js.map +0 -1
  412. package/dist/shared/utils/string.d.ts.map +0 -1
  413. package/dist/shared/utils/string.js.map +0 -1
  414. /package/dist/{shared → plugins/shared}/utils/array.js +0 -0
  415. /package/dist/{shared → plugins/shared}/utils/memory-monitor.d.ts +0 -0
  416. /package/dist/{shared → plugins/shared}/utils/memory-monitor.js +0 -0
  417. /package/dist/{shared → plugins/shared}/utils/path.d.ts +0 -0
  418. /package/dist/{shared → plugins/shared}/utils/path.js +0 -0
@@ -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":"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"}
@@ -1,239 +0,0 @@
1
- /**
2
- * AnalysisWorkflow 程式碼分析工作流程實作
3
- * 實作程式碼分析的完整工作流程:索引 → 複雜度分析 → 依賴分析 → 生成報告
4
- */
5
- import { BaseWorkflow } from '../workflows/base-workflow.js';
6
- import { BaseError } from '../../shared/errors/base-error.js';
7
- import type { IModuleCoordinatorService } from '../types.js';
8
- /**
9
- * 分析類型枚舉
10
- */
11
- export declare enum AnalysisType {
12
- COMPLEXITY = "complexity",
13
- DEPENDENCY = "dependency",
14
- QUALITY = "quality",
15
- DEAD_CODE = "dead-code",
16
- DUPLICATION = "duplication",
17
- COMPREHENSIVE = "comprehensive"
18
- }
19
- /**
20
- * 分析工作流程輸入
21
- */
22
- export interface AnalysisWorkflowInput {
23
- target: string;
24
- analysisTypes: AnalysisType[];
25
- options?: {
26
- includeTests?: boolean;
27
- excludePatterns?: string[];
28
- outputFormat?: 'json' | 'markdown' | 'html';
29
- includeRecommendations?: boolean;
30
- detailLevel?: 'basic' | 'detailed' | 'comprehensive';
31
- };
32
- }
33
- /**
34
- * 分析工作流程上下文
35
- */
36
- export interface AnalysisWorkflowContext {
37
- target: string;
38
- analysisTypes: AnalysisType[];
39
- options: Required<AnalysisWorkflowInput['options']>;
40
- indexResult?: {
41
- totalFiles: number;
42
- indexedFiles: string[];
43
- symbols: unknown[];
44
- dependencies: unknown[];
45
- };
46
- complexityResult?: {
47
- overallComplexity: number;
48
- fileComplexities: Map<string, number>;
49
- hotspots: Array<{
50
- file: string;
51
- complexity: number;
52
- line?: number;
53
- }>;
54
- };
55
- dependencyResult?: {
56
- dependencies: unknown[];
57
- circularDependencies: unknown[];
58
- dependencyGraph: unknown;
59
- metrics: unknown;
60
- };
61
- qualityResult?: {
62
- codeSmells: unknown[];
63
- suggestions: string[];
64
- metrics: unknown;
65
- };
66
- deadCodeResult?: {
67
- deadFunctions: unknown[];
68
- deadVariables: unknown[];
69
- deadImports: unknown[];
70
- };
71
- duplicationResult?: {
72
- duplicatedBlocks: unknown[];
73
- duplicationRate: number;
74
- suggestions: string[];
75
- };
76
- }
77
- /**
78
- * 分析報告
79
- */
80
- export interface AnalysisReport {
81
- summary: {
82
- target: string;
83
- analysisTypes: AnalysisType[];
84
- totalFiles: number;
85
- analysisDate: string;
86
- duration: number;
87
- };
88
- complexity?: {
89
- overallScore: number;
90
- averageComplexity: number;
91
- highComplexityFiles: Array<{
92
- file: string;
93
- score: number;
94
- }>;
95
- recommendations: string[];
96
- };
97
- dependencies?: {
98
- totalDependencies: number;
99
- circularDependencies: number;
100
- dependencyDepth: number;
101
- recommendations: string[];
102
- };
103
- quality?: {
104
- overallQuality: number;
105
- codeSmellCount: number;
106
- maintainabilityIndex: number;
107
- recommendations: string[];
108
- };
109
- deadCode?: {
110
- deadCodePercentage: number;
111
- functionsToRemove: number;
112
- variablesToRemove: number;
113
- importsToRemove: number;
114
- recommendations: string[];
115
- };
116
- duplication?: {
117
- duplicationRate: number;
118
- duplicatedLinesCount: number;
119
- blocksToRefactor: number;
120
- recommendations: string[];
121
- };
122
- recommendations: string[];
123
- actionItems: Array<{
124
- priority: 'high' | 'medium' | 'low';
125
- category: string;
126
- description: string;
127
- effort: 'low' | 'medium' | 'high';
128
- }>;
129
- }
130
- /**
131
- * 分析工作流程結果
132
- */
133
- export interface AnalysisWorkflowResult {
134
- success: boolean;
135
- report: AnalysisReport;
136
- rawData?: {
137
- complexity?: unknown;
138
- dependencies?: unknown;
139
- quality?: unknown;
140
- deadCode?: unknown;
141
- duplication?: unknown;
142
- };
143
- error?: BaseError;
144
- }
145
- /**
146
- * AnalysisWorkflow 實作
147
- */
148
- export declare class AnalysisWorkflow extends BaseWorkflow<AnalysisWorkflowContext, AnalysisWorkflowResult> {
149
- constructor(moduleCoordinator: IModuleCoordinatorService);
150
- /**
151
- * 定義分析工作流程步驟
152
- */
153
- protected defineSteps(): void;
154
- /**
155
- * 初始化工作流程上下文
156
- */
157
- protected initializeContext(input: unknown): Promise<AnalysisWorkflowContext>;
158
- /**
159
- * 處理工作流程結果
160
- */
161
- protected processResult(context: AnalysisWorkflowContext): Promise<AnalysisWorkflowResult>;
162
- /**
163
- * 步驟 1: 建立索引
164
- */
165
- private createIndex;
166
- /**
167
- * 步驟 2: 複雜度分析
168
- */
169
- private analyzeComplexity;
170
- /**
171
- * 步驟 3: 依賴分析
172
- */
173
- private analyzeDependencies;
174
- /**
175
- * 步驟 4: 品質分析
176
- */
177
- private analyzeQuality;
178
- /**
179
- * 步驟 5: 死代碼檢測
180
- */
181
- private detectDeadCode;
182
- /**
183
- * 步驟 6: 重複代碼檢測
184
- */
185
- private detectDuplication;
186
- /**
187
- * 步驟 7: 生成報告
188
- */
189
- private generateReport;
190
- /**
191
- * 驗證輸入格式
192
- */
193
- private isValidInput;
194
- /**
195
- * 從元數據獲取上下文
196
- */
197
- private getContextFromMetadata;
198
- /**
199
- * 檢查是否應該執行特定分析
200
- */
201
- private shouldRunAnalysis;
202
- /**
203
- * 執行索引建立
204
- */
205
- private performIndexing;
206
- /**
207
- * 執行複雜度分析
208
- */
209
- private performComplexityAnalysis;
210
- /**
211
- * 執行依賴分析
212
- */
213
- private performDependencyAnalysis;
214
- /**
215
- * 執行品質分析
216
- */
217
- private performQualityAnalysis;
218
- /**
219
- * 執行死代碼檢測
220
- */
221
- private performDeadCodeDetection;
222
- /**
223
- * 執行重複代碼檢測
224
- */
225
- private performDuplicationDetection;
226
- /**
227
- * 建立分析報告
228
- */
229
- private createAnalysisReport;
230
- /**
231
- * 生成整體建議
232
- */
233
- private generateOverallRecommendations;
234
- /**
235
- * 生成行動項目
236
- */
237
- private generateActionItems;
238
- }
239
- //# sourceMappingURL=analysis-workflow.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"analysis-workflow.d.ts","sourceRoot":"","sources":["../../../src/application/workflows/analysis-workflow.ts"],"names":[],"mappings":"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"}