agent-ide 0.8.0 → 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 (314) 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/declaration-analyzer.d.ts.map +1 -1
  177. package/dist/plugins/javascript/declaration-analyzer.js +7 -0
  178. package/dist/plugins/javascript/declaration-analyzer.js.map +1 -1
  179. package/dist/plugins/javascript/parser.d.ts +11 -10
  180. package/dist/plugins/javascript/parser.d.ts.map +1 -1
  181. package/dist/plugins/javascript/parser.js +57 -53
  182. package/dist/plugins/javascript/parser.js.map +1 -1
  183. package/dist/plugins/javascript/pattern-analyzer.d.ts.map +1 -1
  184. package/dist/plugins/javascript/pattern-analyzer.js +4 -3
  185. package/dist/plugins/javascript/pattern-analyzer.js.map +1 -1
  186. package/dist/plugins/javascript/reference-finder.d.ts +21 -0
  187. package/dist/plugins/javascript/reference-finder.d.ts.map +1 -1
  188. package/dist/plugins/javascript/reference-finder.js +119 -76
  189. package/dist/plugins/javascript/reference-finder.js.map +1 -1
  190. package/dist/plugins/javascript/types.d.ts +4 -7
  191. package/dist/plugins/javascript/types.d.ts.map +1 -1
  192. package/dist/plugins/javascript/types.js +9 -9
  193. package/dist/plugins/javascript/types.js.map +1 -1
  194. package/dist/plugins/shared/parser-helpers.js.map +1 -1
  195. package/dist/{shared → plugins/shared}/utils/array.d.ts +6 -1
  196. package/dist/plugins/shared/utils/array.d.ts.map +1 -0
  197. package/dist/plugins/shared/utils/array.js.map +1 -0
  198. package/dist/{shared → plugins/shared}/utils/async.d.ts +1 -1
  199. package/dist/plugins/shared/utils/async.d.ts.map +1 -0
  200. package/dist/{shared → plugins/shared}/utils/async.js +2 -0
  201. package/dist/plugins/shared/utils/async.js.map +1 -0
  202. package/dist/{shared → plugins/shared}/utils/index.d.ts +0 -20
  203. package/dist/plugins/shared/utils/index.d.ts.map +1 -0
  204. package/dist/{shared → plugins/shared}/utils/index.js +0 -20
  205. package/dist/plugins/shared/utils/index.js.map +1 -0
  206. package/dist/plugins/shared/utils/memory-monitor.d.ts.map +1 -0
  207. package/dist/plugins/shared/utils/memory-monitor.js.map +1 -0
  208. package/dist/{shared → plugins/shared}/utils/object.d.ts +6 -6
  209. package/dist/plugins/shared/utils/object.d.ts.map +1 -0
  210. package/dist/{shared → plugins/shared}/utils/object.js +21 -3
  211. package/dist/plugins/shared/utils/object.js.map +1 -0
  212. package/dist/plugins/shared/utils/path.d.ts.map +1 -0
  213. package/dist/plugins/shared/utils/path.js.map +1 -0
  214. package/dist/{shared → plugins/shared}/utils/string.d.ts +1 -1
  215. package/dist/plugins/shared/utils/string.d.ts.map +1 -0
  216. package/dist/{shared → plugins/shared}/utils/string.js +7 -4
  217. package/dist/plugins/shared/utils/string.js.map +1 -0
  218. package/dist/plugins/typescript/declaration-analyzer.d.ts +4 -4
  219. package/dist/plugins/typescript/declaration-analyzer.d.ts.map +1 -1
  220. package/dist/plugins/typescript/declaration-analyzer.js +21 -8
  221. package/dist/plugins/typescript/declaration-analyzer.js.map +1 -1
  222. package/dist/plugins/typescript/language-service.d.ts +1 -1
  223. package/dist/plugins/typescript/language-service.d.ts.map +1 -1
  224. package/dist/plugins/typescript/parser.d.ts +3 -2
  225. package/dist/plugins/typescript/parser.d.ts.map +1 -1
  226. package/dist/plugins/typescript/parser.js +18 -13
  227. package/dist/plugins/typescript/parser.js.map +1 -1
  228. package/dist/plugins/typescript/reference-finder.d.ts +3 -0
  229. package/dist/plugins/typescript/reference-finder.d.ts.map +1 -1
  230. package/dist/plugins/typescript/reference-finder.js +5 -2
  231. package/dist/plugins/typescript/reference-finder.js.map +1 -1
  232. package/dist/plugins/typescript/symbol-extractor.d.ts +4 -0
  233. package/dist/plugins/typescript/symbol-extractor.d.ts.map +1 -1
  234. package/dist/plugins/typescript/symbol-extractor.js +18 -4
  235. package/dist/plugins/typescript/symbol-extractor.js.map +1 -1
  236. package/dist/plugins/typescript/types.d.ts +0 -3
  237. package/dist/plugins/typescript/types.d.ts.map +1 -1
  238. package/dist/plugins/typescript/types.js +6 -9
  239. package/dist/plugins/typescript/types.js.map +1 -1
  240. package/dist/shared/errors/index.d.ts +1 -1
  241. package/dist/shared/errors/index.d.ts.map +1 -1
  242. package/dist/shared/errors/parser-error.js +5 -5
  243. package/dist/shared/errors/parser-error.js.map +1 -1
  244. package/dist/shared/errors/validation-error.d.ts +2 -2
  245. package/dist/shared/errors/validation-error.d.ts.map +1 -1
  246. package/dist/shared/errors/validation-error.js.map +1 -1
  247. package/dist/shared/types/ast.d.ts +4 -4
  248. package/dist/shared/types/ast.d.ts.map +1 -1
  249. package/dist/shared/types/ast.js.map +1 -1
  250. package/dist/shared/types/core.d.ts +1 -1
  251. package/dist/shared/types/core.d.ts.map +1 -1
  252. package/dist/shared/types/index.d.ts +1 -0
  253. package/dist/shared/types/index.d.ts.map +1 -1
  254. package/dist/shared/types/index.js +2 -0
  255. package/dist/shared/types/index.js.map +1 -1
  256. package/dist/shared/types/line-number.d.ts +22 -0
  257. package/dist/shared/types/line-number.d.ts.map +1 -0
  258. package/dist/shared/types/line-number.js +28 -0
  259. package/dist/shared/types/line-number.js.map +1 -0
  260. package/package.json +2 -2
  261. package/dist/application/services/workflow-engine.service.d.ts +0 -76
  262. package/dist/application/services/workflow-engine.service.d.ts.map +0 -1
  263. package/dist/application/services/workflow-engine.service.js +0 -405
  264. package/dist/application/services/workflow-engine.service.js.map +0 -1
  265. package/dist/application/workflows/analysis-workflow.d.ts +0 -239
  266. package/dist/application/workflows/analysis-workflow.d.ts.map +0 -1
  267. package/dist/application/workflows/analysis-workflow.js +0 -395
  268. package/dist/application/workflows/analysis-workflow.js.map +0 -1
  269. package/dist/application/workflows/base-workflow.d.ts +0 -108
  270. package/dist/application/workflows/base-workflow.d.ts.map +0 -1
  271. package/dist/application/workflows/base-workflow.js +0 -236
  272. package/dist/application/workflows/base-workflow.js.map +0 -1
  273. package/dist/application/workflows/index.d.ts +0 -115
  274. package/dist/application/workflows/index.d.ts.map +0 -1
  275. package/dist/application/workflows/index.js +0 -218
  276. package/dist/application/workflows/index.js.map +0 -1
  277. package/dist/application/workflows/refactor-workflow.d.ts +0 -107
  278. package/dist/application/workflows/refactor-workflow.d.ts.map +0 -1
  279. package/dist/application/workflows/refactor-workflow.js +0 -310
  280. package/dist/application/workflows/refactor-workflow.js.map +0 -1
  281. package/dist/core/shared/symbol-finder.d.ts.map +0 -1
  282. package/dist/core/shared/symbol-finder.js +0 -882
  283. package/dist/core/shared/symbol-finder.js.map +0 -1
  284. package/dist/plugins/javascript/code-analyzer.d.ts +0 -68
  285. package/dist/plugins/javascript/code-analyzer.d.ts.map +0 -1
  286. package/dist/plugins/javascript/code-analyzer.js +0 -302
  287. package/dist/plugins/javascript/code-analyzer.js.map +0 -1
  288. package/dist/plugins/javascript/index.d.ts +0 -12
  289. package/dist/plugins/javascript/index.d.ts.map +0 -1
  290. package/dist/plugins/javascript/index.js +0 -16
  291. package/dist/plugins/javascript/index.js.map +0 -1
  292. package/dist/plugins/typescript/index.d.ts +0 -14
  293. package/dist/plugins/typescript/index.d.ts.map +0 -1
  294. package/dist/plugins/typescript/index.js +0 -13
  295. package/dist/plugins/typescript/index.js.map +0 -1
  296. package/dist/shared/utils/array.d.ts.map +0 -1
  297. package/dist/shared/utils/array.js.map +0 -1
  298. package/dist/shared/utils/async.d.ts.map +0 -1
  299. package/dist/shared/utils/async.js.map +0 -1
  300. package/dist/shared/utils/index.d.ts.map +0 -1
  301. package/dist/shared/utils/index.js.map +0 -1
  302. package/dist/shared/utils/memory-monitor.d.ts.map +0 -1
  303. package/dist/shared/utils/memory-monitor.js.map +0 -1
  304. package/dist/shared/utils/object.d.ts.map +0 -1
  305. package/dist/shared/utils/object.js.map +0 -1
  306. package/dist/shared/utils/path.d.ts.map +0 -1
  307. package/dist/shared/utils/path.js.map +0 -1
  308. package/dist/shared/utils/string.d.ts.map +0 -1
  309. package/dist/shared/utils/string.js.map +0 -1
  310. /package/dist/{shared → plugins/shared}/utils/array.js +0 -0
  311. /package/dist/{shared → plugins/shared}/utils/memory-monitor.d.ts +0 -0
  312. /package/dist/{shared → plugins/shared}/utils/memory-monitor.js +0 -0
  313. /package/dist/{shared → plugins/shared}/utils/path.d.ts +0 -0
  314. /package/dist/{shared → plugins/shared}/utils/path.js +0 -0
@@ -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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"}
@@ -1,395 +0,0 @@
1
- /**
2
- * AnalysisWorkflow 程式碼分析工作流程實作
3
- * 實作程式碼分析的完整工作流程:索引 → 複雜度分析 → 依賴分析 → 生成報告
4
- */
5
- import { BaseWorkflow, WorkflowError } from '../workflows/base-workflow.js';
6
- /**
7
- * 分析類型枚舉
8
- */
9
- export var AnalysisType;
10
- (function (AnalysisType) {
11
- AnalysisType["COMPLEXITY"] = "complexity";
12
- AnalysisType["DEPENDENCY"] = "dependency";
13
- AnalysisType["QUALITY"] = "quality";
14
- AnalysisType["DEAD_CODE"] = "dead-code";
15
- AnalysisType["DUPLICATION"] = "duplication";
16
- AnalysisType["COMPREHENSIVE"] = "comprehensive";
17
- })(AnalysisType || (AnalysisType = {}));
18
- /**
19
- * AnalysisWorkflow 實作
20
- */
21
- export class AnalysisWorkflow extends BaseWorkflow {
22
- constructor(moduleCoordinator) {
23
- super({
24
- id: 'analysis-workflow',
25
- name: 'analysis',
26
- description: '程式碼分析工作流程',
27
- timeout: 60000, // 60 秒
28
- maxRetries: 1,
29
- enableRollback: false // 分析操作不需要回滾
30
- }, moduleCoordinator);
31
- }
32
- /**
33
- * 定義分析工作流程步驟
34
- */
35
- defineSteps() {
36
- // 步驟 1: 建立索引
37
- this.addStep(this.createStep('create-index', '建立程式碼索引', this.createIndex.bind(this), {
38
- canRetry: true,
39
- maxRetries: 2
40
- }));
41
- // 步驟 2: 複雜度分析
42
- this.addStep(this.createStep('analyze-complexity', '分析程式碼複雜度', this.analyzeComplexity.bind(this), {
43
- canRetry: true,
44
- maxRetries: 1
45
- }));
46
- // 步驟 3: 依賴分析
47
- this.addStep(this.createStep('analyze-dependencies', '分析依賴關係', this.analyzeDependencies.bind(this), {
48
- canRetry: true,
49
- maxRetries: 1
50
- }));
51
- // 步驟 4: 品質分析
52
- this.addStep(this.createStep('analyze-quality', '分析程式碼品質', this.analyzeQuality.bind(this), {
53
- canRetry: true,
54
- maxRetries: 1
55
- }));
56
- // 步驟 5: 死代碼檢測
57
- this.addStep(this.createStep('detect-dead-code', '檢測死代碼', this.detectDeadCode.bind(this), {
58
- canRetry: true,
59
- maxRetries: 1
60
- }));
61
- // 步驟 6: 重複代碼檢測
62
- this.addStep(this.createStep('detect-duplication', '檢測重複代碼', this.detectDuplication.bind(this), {
63
- canRetry: true,
64
- maxRetries: 1
65
- }));
66
- // 步驟 7: 生成報告
67
- this.addStep(this.createStep('generate-report', '生成分析報告', this.generateReport.bind(this), {
68
- canRetry: false // 報告生成不重試
69
- }));
70
- }
71
- /**
72
- * 初始化工作流程上下文
73
- */
74
- async initializeContext(input) {
75
- if (!this.isValidInput(input)) {
76
- throw new WorkflowError('無效的分析工作流程輸入', { input });
77
- }
78
- const analysisInput = input;
79
- // 設定預設選項
80
- const defaultOptions = {
81
- includeTests: false,
82
- excludePatterns: ['node_modules', '.git', 'dist', 'build'],
83
- outputFormat: 'json',
84
- includeRecommendations: true,
85
- detailLevel: 'detailed'
86
- };
87
- return {
88
- target: analysisInput.target,
89
- analysisTypes: analysisInput.analysisTypes,
90
- options: { ...defaultOptions, ...analysisInput.options }
91
- };
92
- }
93
- /**
94
- * 處理工作流程結果
95
- */
96
- async processResult(context) {
97
- // 從上下文獲取報告(應該在 generate-report 步驟中設定)
98
- const report = this.createAnalysisReport(context);
99
- return {
100
- success: true,
101
- report,
102
- rawData: {
103
- complexity: context.complexityResult,
104
- dependencies: context.dependencyResult,
105
- quality: context.qualityResult,
106
- deadCode: context.deadCodeResult,
107
- duplication: context.duplicationResult
108
- }
109
- };
110
- }
111
- /**
112
- * 步驟 1: 建立索引
113
- */
114
- async createIndex(context) {
115
- try {
116
- const workflowContext = await this.getContextFromMetadata(context);
117
- // 模擬索引建立過程
118
- const indexResult = await this.performIndexing(workflowContext.target, workflowContext.options);
119
- workflowContext.indexResult = indexResult;
120
- return this.createSuccessResult(indexResult);
121
- }
122
- catch (error) {
123
- return this.createFailureResult(new WorkflowError(`索引建立失敗: ${error.message}`, { stepId: context.stepId }, error));
124
- }
125
- }
126
- /**
127
- * 步驟 2: 複雜度分析
128
- */
129
- async analyzeComplexity(context) {
130
- try {
131
- const workflowContext = await this.getContextFromMetadata(context);
132
- if (!this.shouldRunAnalysis(AnalysisType.COMPLEXITY, workflowContext.analysisTypes)) {
133
- return this.createSuccessResult({ skipped: true });
134
- }
135
- const complexityResult = await this.performComplexityAnalysis(workflowContext.target, workflowContext.indexResult);
136
- workflowContext.complexityResult = complexityResult;
137
- return this.createSuccessResult(complexityResult);
138
- }
139
- catch (error) {
140
- return this.createFailureResult(new WorkflowError(`複雜度分析失敗: ${error.message}`, { stepId: context.stepId }, error));
141
- }
142
- }
143
- /**
144
- * 步驟 3: 依賴分析
145
- */
146
- async analyzeDependencies(context) {
147
- try {
148
- const workflowContext = await this.getContextFromMetadata(context);
149
- if (!this.shouldRunAnalysis(AnalysisType.DEPENDENCY, workflowContext.analysisTypes)) {
150
- return this.createSuccessResult({ skipped: true });
151
- }
152
- const dependencyResult = await this.performDependencyAnalysis(workflowContext.target, workflowContext.indexResult);
153
- workflowContext.dependencyResult = dependencyResult;
154
- return this.createSuccessResult(dependencyResult);
155
- }
156
- catch (error) {
157
- return this.createFailureResult(new WorkflowError(`依賴分析失敗: ${error.message}`, { stepId: context.stepId }, error));
158
- }
159
- }
160
- /**
161
- * 步驟 4: 品質分析
162
- */
163
- async analyzeQuality(context) {
164
- try {
165
- const workflowContext = await this.getContextFromMetadata(context);
166
- if (!this.shouldRunAnalysis(AnalysisType.QUALITY, workflowContext.analysisTypes)) {
167
- return this.createSuccessResult({ skipped: true });
168
- }
169
- const qualityResult = await this.performQualityAnalysis(workflowContext.target, workflowContext.indexResult);
170
- workflowContext.qualityResult = qualityResult;
171
- return this.createSuccessResult(qualityResult);
172
- }
173
- catch (error) {
174
- return this.createFailureResult(new WorkflowError(`品質分析失敗: ${error.message}`, { stepId: context.stepId }, error));
175
- }
176
- }
177
- /**
178
- * 步驟 5: 死代碼檢測
179
- */
180
- async detectDeadCode(context) {
181
- try {
182
- const workflowContext = await this.getContextFromMetadata(context);
183
- if (!this.shouldRunAnalysis(AnalysisType.DEAD_CODE, workflowContext.analysisTypes)) {
184
- return this.createSuccessResult({ skipped: true });
185
- }
186
- const deadCodeResult = await this.performDeadCodeDetection(workflowContext.target, workflowContext.indexResult);
187
- workflowContext.deadCodeResult = deadCodeResult;
188
- return this.createSuccessResult(deadCodeResult);
189
- }
190
- catch (error) {
191
- return this.createFailureResult(new WorkflowError(`死代碼檢測失敗: ${error.message}`, { stepId: context.stepId }, error));
192
- }
193
- }
194
- /**
195
- * 步驟 6: 重複代碼檢測
196
- */
197
- async detectDuplication(context) {
198
- try {
199
- const workflowContext = await this.getContextFromMetadata(context);
200
- if (!this.shouldRunAnalysis(AnalysisType.DUPLICATION, workflowContext.analysisTypes)) {
201
- return this.createSuccessResult({ skipped: true });
202
- }
203
- const duplicationResult = await this.performDuplicationDetection(workflowContext.target, workflowContext.indexResult);
204
- workflowContext.duplicationResult = duplicationResult;
205
- return this.createSuccessResult(duplicationResult);
206
- }
207
- catch (error) {
208
- return this.createFailureResult(new WorkflowError(`重複代碼檢測失敗: ${error.message}`, { stepId: context.stepId }, error));
209
- }
210
- }
211
- /**
212
- * 步驟 7: 生成報告
213
- */
214
- async generateReport(context) {
215
- try {
216
- const workflowContext = await this.getContextFromMetadata(context);
217
- const report = this.createAnalysisReport(workflowContext);
218
- return this.createSuccessResult(report);
219
- }
220
- catch (error) {
221
- return this.createFailureResult(new WorkflowError(`報告生成失敗: ${error.message}`, { stepId: context.stepId }, error));
222
- }
223
- }
224
- /**
225
- * 驗證輸入格式
226
- */
227
- isValidInput(input) {
228
- return (typeof input === 'object' &&
229
- input !== null &&
230
- 'target' in input &&
231
- 'analysisTypes' in input &&
232
- typeof input.target === 'string' &&
233
- Array.isArray(input.analysisTypes));
234
- }
235
- /**
236
- * 從元數據獲取上下文
237
- */
238
- async getContextFromMetadata(context) {
239
- return context.metadata.workflowContext;
240
- }
241
- /**
242
- * 檢查是否應該執行特定分析
243
- */
244
- shouldRunAnalysis(analysisType, requestedTypes) {
245
- return requestedTypes.includes(analysisType) || requestedTypes.includes(AnalysisType.COMPREHENSIVE);
246
- }
247
- /**
248
- * 執行索引建立
249
- */
250
- async performIndexing(target, options) {
251
- // 模擬索引建立
252
- await this.sleep(100);
253
- return {
254
- totalFiles: 50,
255
- indexedFiles: [`${target}/file1.ts`, `${target}/file2.ts`],
256
- symbols: [],
257
- dependencies: []
258
- };
259
- }
260
- /**
261
- * 執行複雜度分析
262
- */
263
- async performComplexityAnalysis(target, indexResult) {
264
- await this.sleep(200);
265
- return {
266
- overallComplexity: 7.5,
267
- fileComplexities: new Map([
268
- [`${target}/file1.ts`, 5.2],
269
- [`${target}/file2.ts`, 9.8]
270
- ]),
271
- hotspots: [
272
- { file: `${target}/file2.ts`, complexity: 9.8, line: 45 }
273
- ]
274
- };
275
- }
276
- /**
277
- * 執行依賴分析
278
- */
279
- async performDependencyAnalysis(target, indexResult) {
280
- await this.sleep(150);
281
- return {
282
- dependencies: [],
283
- circularDependencies: [],
284
- dependencyGraph: {},
285
- metrics: { depth: 3, breadth: 12 }
286
- };
287
- }
288
- /**
289
- * 執行品質分析
290
- */
291
- async performQualityAnalysis(target, indexResult) {
292
- await this.sleep(250);
293
- return {
294
- codeSmells: [],
295
- suggestions: ['Consider extracting large functions', 'Reduce complexity'],
296
- metrics: { maintainabilityIndex: 78 }
297
- };
298
- }
299
- /**
300
- * 執行死代碼檢測
301
- */
302
- async performDeadCodeDetection(target, indexResult) {
303
- await this.sleep(180);
304
- return {
305
- deadFunctions: [],
306
- deadVariables: [],
307
- deadImports: []
308
- };
309
- }
310
- /**
311
- * 執行重複代碼檢測
312
- */
313
- async performDuplicationDetection(target, indexResult) {
314
- await this.sleep(220);
315
- return {
316
- duplicatedBlocks: [],
317
- duplicationRate: 0.15,
318
- suggestions: ['Extract common functionality']
319
- };
320
- }
321
- /**
322
- * 建立分析報告
323
- */
324
- createAnalysisReport(context) {
325
- const summary = {
326
- target: context.target,
327
- analysisTypes: context.analysisTypes,
328
- totalFiles: context.indexResult?.totalFiles || 0,
329
- analysisDate: new Date().toISOString(),
330
- duration: 0 // 實際實作中會計算
331
- };
332
- const report = {
333
- summary,
334
- recommendations: [],
335
- actionItems: []
336
- };
337
- // 根據執行的分析添加對應的報告部分
338
- if (context.complexityResult) {
339
- report.complexity = {
340
- overallScore: context.complexityResult.overallComplexity,
341
- averageComplexity: context.complexityResult.overallComplexity,
342
- highComplexityFiles: context.complexityResult.hotspots.map(h => ({
343
- file: h.file,
344
- score: h.complexity
345
- })),
346
- recommendations: ['重構高複雜度函式', '考慮拆分大型類別']
347
- };
348
- }
349
- if (context.dependencyResult) {
350
- report.dependencies = {
351
- totalDependencies: 0,
352
- circularDependencies: 0,
353
- dependencyDepth: 3,
354
- recommendations: ['解決循環依賴', '減少依賴深度']
355
- };
356
- }
357
- // 生成總體建議和行動項目
358
- report.recommendations = this.generateOverallRecommendations(context);
359
- report.actionItems = this.generateActionItems(context);
360
- return report;
361
- }
362
- /**
363
- * 生成整體建議
364
- */
365
- generateOverallRecommendations(context) {
366
- const recommendations = [];
367
- if (context.complexityResult?.overallComplexity && context.complexityResult.overallComplexity > 8) {
368
- recommendations.push('整體程式碼複雜度偏高,建議進行重構');
369
- }
370
- if (context.duplicationResult?.duplicationRate && context.duplicationResult.duplicationRate > 0.1) {
371
- recommendations.push('重複程式碼比率偏高,建議提取共用功能');
372
- }
373
- return recommendations;
374
- }
375
- /**
376
- * 生成行動項目
377
- */
378
- generateActionItems(context) {
379
- return [
380
- {
381
- priority: 'high',
382
- category: 'complexity',
383
- description: '重構高複雜度函式',
384
- effort: 'medium'
385
- },
386
- {
387
- priority: 'medium',
388
- category: 'duplication',
389
- description: '提取重複程式碼',
390
- effort: 'low'
391
- }
392
- ];
393
- }
394
- }
395
- //# sourceMappingURL=analysis-workflow.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"analysis-workflow.js","sourceRoot":"","sources":["../../../src/application/workflows/analysis-workflow.ts"],"names":[],"mappings":"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"}