agent-ide 0.13.6 → 0.13.7

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 (450) hide show
  1. package/README.md +14 -7
  2. package/dist/core/call-hierarchy/call-hierarchy-analyzer.d.ts +11 -2
  3. package/dist/core/call-hierarchy/call-hierarchy-analyzer.d.ts.map +1 -1
  4. package/dist/core/call-hierarchy/call-hierarchy-analyzer.js +233 -25
  5. package/dist/core/call-hierarchy/call-hierarchy-analyzer.js.map +1 -1
  6. package/dist/core/change-signature/call-site-updater.d.ts +0 -1
  7. package/dist/core/change-signature/call-site-updater.d.ts.map +1 -1
  8. package/dist/core/change-signature/call-site-updater.js +0 -2
  9. package/dist/core/change-signature/call-site-updater.js.map +1 -1
  10. package/dist/core/change-signature/change-signature-engine.d.ts +9 -1
  11. package/dist/core/change-signature/change-signature-engine.d.ts.map +1 -1
  12. package/dist/core/change-signature/change-signature-engine.js +190 -5
  13. package/dist/core/change-signature/change-signature-engine.js.map +1 -1
  14. package/dist/core/change-signature/signature-parser.d.ts +0 -5
  15. package/dist/core/change-signature/signature-parser.d.ts.map +1 -1
  16. package/dist/core/change-signature/signature-parser.js +6 -34
  17. package/dist/core/change-signature/signature-parser.js.map +1 -1
  18. package/dist/core/deadcode/file-operations.d.ts.map +1 -1
  19. package/dist/core/deadcode/file-operations.js +3 -1
  20. package/dist/core/deadcode/file-operations.js.map +1 -1
  21. package/dist/core/deadcode/import-cleaner.d.ts.map +1 -1
  22. package/dist/core/deadcode/import-cleaner.js +3 -1
  23. package/dist/core/deadcode/import-cleaner.js.map +1 -1
  24. package/dist/core/deadcode/range-expander.d.ts +9 -1
  25. package/dist/core/deadcode/range-expander.d.ts.map +1 -1
  26. package/dist/core/deadcode/range-expander.js +115 -41
  27. package/dist/core/deadcode/range-expander.js.map +1 -1
  28. package/dist/core/foundations/file-utils.d.ts.map +1 -1
  29. package/dist/core/foundations/file-utils.js +6 -3
  30. package/dist/core/foundations/file-utils.js.map +1 -1
  31. package/dist/core/foundations/indexing/file-index.d.ts +5 -2
  32. package/dist/core/foundations/indexing/file-index.d.ts.map +1 -1
  33. package/dist/core/foundations/indexing/file-index.js +11 -3
  34. package/dist/core/foundations/indexing/file-index.js.map +1 -1
  35. package/dist/core/foundations/indexing/index-cache-serializer.d.ts +133 -0
  36. package/dist/core/foundations/indexing/index-cache-serializer.d.ts.map +1 -0
  37. package/dist/core/foundations/indexing/index-cache-serializer.js +217 -0
  38. package/dist/core/foundations/indexing/index-cache-serializer.js.map +1 -0
  39. package/dist/core/foundations/indexing/index-engine.d.ts +11 -5
  40. package/dist/core/foundations/indexing/index-engine.d.ts.map +1 -1
  41. package/dist/core/foundations/indexing/index-engine.js +31 -22
  42. package/dist/core/foundations/indexing/index-engine.js.map +1 -1
  43. package/dist/core/foundations/indexing/index.d.ts +4 -1
  44. package/dist/core/foundations/indexing/index.d.ts.map +1 -1
  45. package/dist/core/foundations/indexing/index.js +2 -1
  46. package/dist/core/foundations/indexing/index.js.map +1 -1
  47. package/dist/core/foundations/indexing/symbol-index.d.ts +7 -1
  48. package/dist/core/foundations/indexing/symbol-index.d.ts.map +1 -1
  49. package/dist/core/foundations/indexing/symbol-index.js +54 -3
  50. package/dist/core/foundations/indexing/symbol-index.js.map +1 -1
  51. package/dist/core/foundations/indexing/types.d.ts +3 -2
  52. package/dist/core/foundations/indexing/types.d.ts.map +1 -1
  53. package/dist/core/foundations/indexing/types.js +8 -6
  54. package/dist/core/foundations/indexing/types.js.map +1 -1
  55. package/dist/core/foundations/symbol-finder/call-site-parser.d.ts.map +1 -1
  56. package/dist/core/foundations/symbol-finder/call-site-parser.js +3 -1
  57. package/dist/core/foundations/symbol-finder/call-site-parser.js.map +1 -1
  58. package/dist/core/foundations/symbol-finder/symbol-finder.d.ts +0 -2
  59. package/dist/core/foundations/symbol-finder/symbol-finder.d.ts.map +1 -1
  60. package/dist/core/foundations/symbol-finder/symbol-finder.js +15 -11
  61. package/dist/core/foundations/symbol-finder/symbol-finder.js.map +1 -1
  62. package/dist/core/impact/dependency-extractor.d.ts +11 -3
  63. package/dist/core/impact/dependency-extractor.d.ts.map +1 -1
  64. package/dist/core/impact/dependency-extractor.js +149 -34
  65. package/dist/core/impact/dependency-extractor.js.map +1 -1
  66. package/dist/core/impact/file-scanner.d.ts.map +1 -1
  67. package/dist/core/impact/file-scanner.js +3 -2
  68. package/dist/core/impact/file-scanner.js.map +1 -1
  69. package/dist/core/impact/impact-analyzer.d.ts +8 -1
  70. package/dist/core/impact/impact-analyzer.d.ts.map +1 -1
  71. package/dist/core/impact/impact-analyzer.js +27 -8
  72. package/dist/core/impact/impact-analyzer.js.map +1 -1
  73. package/dist/core/impact/path-resolver.d.ts.map +1 -1
  74. package/dist/core/impact/path-resolver.js +11 -10
  75. package/dist/core/impact/path-resolver.js.map +1 -1
  76. package/dist/core/impact/types.d.ts.map +1 -1
  77. package/dist/core/impact/types.js +2 -1
  78. package/dist/core/impact/types.js.map +1 -1
  79. package/dist/core/move/file-scanner.d.ts +12 -0
  80. package/dist/core/move/file-scanner.d.ts.map +1 -1
  81. package/dist/core/move/file-scanner.js +58 -30
  82. package/dist/core/move/file-scanner.js.map +1 -1
  83. package/dist/core/move/glob-move-planner.d.ts +29 -0
  84. package/dist/core/move/glob-move-planner.d.ts.map +1 -0
  85. package/dist/core/move/glob-move-planner.js +48 -0
  86. package/dist/core/move/glob-move-planner.js.map +1 -0
  87. package/dist/core/move/index.d.ts +2 -0
  88. package/dist/core/move/index.d.ts.map +1 -1
  89. package/dist/core/move/index.js +1 -0
  90. package/dist/core/move/index.js.map +1 -1
  91. package/dist/core/move/move-engine.js +2 -2
  92. package/dist/core/move/move-engine.js.map +1 -1
  93. package/dist/core/move/path-calculator.d.ts +2 -0
  94. package/dist/core/move/path-calculator.d.ts.map +1 -1
  95. package/dist/core/move/path-calculator.js +36 -16
  96. package/dist/core/move/path-calculator.js.map +1 -1
  97. package/dist/core/move/path-utils.d.ts +2 -1
  98. package/dist/core/move/path-utils.d.ts.map +1 -1
  99. package/dist/core/move/path-utils.js +18 -28
  100. package/dist/core/move/path-utils.js.map +1 -1
  101. package/dist/core/move-member/change-applier.d.ts.map +1 -1
  102. package/dist/core/move-member/change-applier.js +3 -1
  103. package/dist/core/move-member/change-applier.js.map +1 -1
  104. package/dist/core/move-member/extractors/typescript-extractor.d.ts.map +1 -1
  105. package/dist/core/move-member/extractors/typescript-extractor.js +32 -28
  106. package/dist/core/move-member/extractors/typescript-extractor.js.map +1 -1
  107. package/dist/core/move-member/file-change-preparer.d.ts +5 -0
  108. package/dist/core/move-member/file-change-preparer.d.ts.map +1 -1
  109. package/dist/core/move-member/file-change-preparer.js +51 -11
  110. package/dist/core/move-member/file-change-preparer.js.map +1 -1
  111. package/dist/core/move-member/member-extractor.d.ts +0 -2
  112. package/dist/core/move-member/member-extractor.d.ts.map +1 -1
  113. package/dist/core/move-member/member-extractor.js +13 -22
  114. package/dist/core/move-member/member-extractor.js.map +1 -1
  115. package/dist/core/move-member/move-member-engine.d.ts +0 -1
  116. package/dist/core/move-member/move-member-engine.d.ts.map +1 -1
  117. package/dist/core/move-member/move-member-engine.js +0 -2
  118. package/dist/core/move-member/move-member-engine.js.map +1 -1
  119. package/dist/core/move-member/reference-updater.d.ts.map +1 -1
  120. package/dist/core/move-member/reference-updater.js +7 -10
  121. package/dist/core/move-member/reference-updater.js.map +1 -1
  122. package/dist/core/rename/reference-updater.d.ts +1 -0
  123. package/dist/core/rename/reference-updater.d.ts.map +1 -1
  124. package/dist/core/rename/reference-updater.js +48 -46
  125. package/dist/core/rename/reference-updater.js.map +1 -1
  126. package/dist/core/rename/rename-engine.d.ts +0 -1
  127. package/dist/core/rename/rename-engine.d.ts.map +1 -1
  128. package/dist/core/rename/rename-engine.js +9 -22
  129. package/dist/core/rename/rename-engine.js.map +1 -1
  130. package/dist/infrastructure/cache/cache-manager.d.ts.map +1 -1
  131. package/dist/infrastructure/cache/cache-manager.js +4 -5
  132. package/dist/infrastructure/cache/cache-manager.js.map +1 -1
  133. package/dist/infrastructure/cache/index-disk-cache.d.ts +46 -0
  134. package/dist/infrastructure/cache/index-disk-cache.d.ts.map +1 -0
  135. package/dist/infrastructure/cache/index-disk-cache.js +150 -0
  136. package/dist/infrastructure/cache/index-disk-cache.js.map +1 -0
  137. package/dist/infrastructure/cache/index.d.ts.map +1 -1
  138. package/dist/infrastructure/cache/index.js +1 -0
  139. package/dist/infrastructure/cache/index.js.map +1 -1
  140. package/dist/infrastructure/cache/memory-cache.d.ts.map +1 -1
  141. package/dist/infrastructure/cache/memory-cache.js +3 -1
  142. package/dist/infrastructure/cache/memory-cache.js.map +1 -1
  143. package/dist/infrastructure/formatters/index.d.ts +1 -2
  144. package/dist/infrastructure/formatters/index.d.ts.map +1 -1
  145. package/dist/infrastructure/formatters/index.js +1 -2
  146. package/dist/infrastructure/formatters/index.js.map +1 -1
  147. package/dist/infrastructure/formatters/query-formatter.d.ts.map +1 -1
  148. package/dist/infrastructure/formatters/query-formatter.js +9 -18
  149. package/dist/infrastructure/formatters/query-formatter.js.map +1 -1
  150. package/dist/infrastructure/formatters/query-types.d.ts +15 -145
  151. package/dist/infrastructure/formatters/query-types.d.ts.map +1 -1
  152. package/dist/infrastructure/formatters/query-types.js +3 -18
  153. package/dist/infrastructure/formatters/query-types.js.map +1 -1
  154. package/dist/infrastructure/formatters/strategies/base-formatter.d.ts +1 -20
  155. package/dist/infrastructure/formatters/strategies/base-formatter.d.ts.map +1 -1
  156. package/dist/infrastructure/formatters/strategies/base-formatter.js +0 -8
  157. package/dist/infrastructure/formatters/strategies/base-formatter.js.map +1 -1
  158. package/dist/infrastructure/formatters/strategies/call-hierarchy-formatter.d.ts.map +1 -1
  159. package/dist/infrastructure/formatters/strategies/call-hierarchy-formatter.js +7 -0
  160. package/dist/infrastructure/formatters/strategies/call-hierarchy-formatter.js.map +1 -1
  161. package/dist/infrastructure/formatters/strategies/cycles-formatter.d.ts +15 -0
  162. package/dist/infrastructure/formatters/strategies/cycles-formatter.d.ts.map +1 -0
  163. package/dist/infrastructure/formatters/strategies/cycles-formatter.js +29 -0
  164. package/dist/infrastructure/formatters/strategies/cycles-formatter.js.map +1 -0
  165. package/dist/infrastructure/formatters/strategies/impact-formatter.d.ts +15 -0
  166. package/dist/infrastructure/formatters/strategies/impact-formatter.d.ts.map +1 -0
  167. package/dist/infrastructure/formatters/strategies/impact-formatter.js +31 -0
  168. package/dist/infrastructure/formatters/strategies/impact-formatter.js.map +1 -0
  169. package/dist/infrastructure/formatters/strategies/index.d.ts +3 -4
  170. package/dist/infrastructure/formatters/strategies/index.d.ts.map +1 -1
  171. package/dist/infrastructure/formatters/strategies/index.js +3 -4
  172. package/dist/infrastructure/formatters/strategies/index.js.map +1 -1
  173. package/dist/infrastructure/logging/index.d.ts +2 -0
  174. package/dist/infrastructure/logging/index.d.ts.map +1 -0
  175. package/dist/infrastructure/logging/index.js +2 -0
  176. package/dist/infrastructure/logging/index.js.map +1 -0
  177. package/dist/infrastructure/logging/logger.d.ts +25 -0
  178. package/dist/infrastructure/logging/logger.d.ts.map +1 -0
  179. package/dist/infrastructure/logging/logger.js +54 -0
  180. package/dist/infrastructure/logging/logger.js.map +1 -0
  181. package/dist/infrastructure/parser/analysis-types.d.ts.map +1 -1
  182. package/dist/infrastructure/parser/base.d.ts +1 -6
  183. package/dist/infrastructure/parser/base.d.ts.map +1 -1
  184. package/dist/infrastructure/parser/base.js +4 -16
  185. package/dist/infrastructure/parser/base.js.map +1 -1
  186. package/dist/infrastructure/parser/index.d.ts +2 -2
  187. package/dist/infrastructure/parser/index.d.ts.map +1 -1
  188. package/dist/infrastructure/parser/index.js +1 -1
  189. package/dist/infrastructure/parser/index.js.map +1 -1
  190. package/dist/infrastructure/parser/interface.d.ts +0 -7
  191. package/dist/infrastructure/parser/interface.d.ts.map +1 -1
  192. package/dist/infrastructure/parser/interface.js +0 -1
  193. package/dist/infrastructure/parser/interface.js.map +1 -1
  194. package/dist/infrastructure/parser/registry.d.ts.map +1 -1
  195. package/dist/infrastructure/parser/registry.js +2 -1
  196. package/dist/infrastructure/parser/registry.js.map +1 -1
  197. package/dist/infrastructure/parser/types.d.ts +12 -3
  198. package/dist/infrastructure/parser/types.d.ts.map +1 -1
  199. package/dist/infrastructure/parser/types.js +7 -2
  200. package/dist/infrastructure/parser/types.js.map +1 -1
  201. package/dist/infrastructure/storage/file-system.d.ts.map +1 -1
  202. package/dist/infrastructure/storage/file-system.js +5 -1
  203. package/dist/infrastructure/storage/file-system.js.map +1 -1
  204. package/dist/interfaces/cli/cached-index-engine.d.ts +25 -0
  205. package/dist/interfaces/cli/cached-index-engine.d.ts.map +1 -0
  206. package/dist/interfaces/cli/cached-index-engine.js +59 -0
  207. package/dist/interfaces/cli/cached-index-engine.js.map +1 -0
  208. package/dist/interfaces/cli/cli.d.ts +1 -0
  209. package/dist/interfaces/cli/cli.d.ts.map +1 -1
  210. package/dist/interfaces/cli/cli.js +33 -19
  211. package/dist/interfaces/cli/cli.js.map +1 -1
  212. package/dist/interfaces/cli/command-utils.d.ts +17 -1
  213. package/dist/interfaces/cli/command-utils.d.ts.map +1 -1
  214. package/dist/interfaces/cli/command-utils.js +53 -3
  215. package/dist/interfaces/cli/command-utils.js.map +1 -1
  216. package/dist/interfaces/cli/commands/call-hierarchy.command.d.ts.map +1 -1
  217. package/dist/interfaces/cli/commands/call-hierarchy.command.js +57 -17
  218. package/dist/interfaces/cli/commands/call-hierarchy.command.js.map +1 -1
  219. package/dist/interfaces/cli/commands/change-signature.command.d.ts +12 -0
  220. package/dist/interfaces/cli/commands/change-signature.command.d.ts.map +1 -1
  221. package/dist/interfaces/cli/commands/change-signature.command.js +131 -12
  222. package/dist/interfaces/cli/commands/change-signature.command.js.map +1 -1
  223. package/dist/interfaces/cli/commands/cycles.command.d.ts +1 -1
  224. package/dist/interfaces/cli/commands/cycles.command.d.ts.map +1 -1
  225. package/dist/interfaces/cli/commands/cycles.command.js +13 -11
  226. package/dist/interfaces/cli/commands/cycles.command.js.map +1 -1
  227. package/dist/interfaces/cli/commands/deadcode.command.d.ts.map +1 -1
  228. package/dist/interfaces/cli/commands/deadcode.command.js +18 -19
  229. package/dist/interfaces/cli/commands/deadcode.command.js.map +1 -1
  230. package/dist/interfaces/cli/commands/find-references.command.d.ts.map +1 -1
  231. package/dist/interfaces/cli/commands/find-references.command.js +35 -11
  232. package/dist/interfaces/cli/commands/find-references.command.js.map +1 -1
  233. package/dist/interfaces/cli/commands/impact.command.d.ts +1 -1
  234. package/dist/interfaces/cli/commands/impact.command.js +6 -13
  235. package/dist/interfaces/cli/commands/impact.command.js.map +1 -1
  236. package/dist/interfaces/cli/commands/index.d.ts +1 -1
  237. package/dist/interfaces/cli/commands/index.d.ts.map +1 -1
  238. package/dist/interfaces/cli/commands/index.js +1 -1
  239. package/dist/interfaces/cli/commands/index.js.map +1 -1
  240. package/dist/interfaces/cli/commands/move-command-options.d.ts +14 -0
  241. package/dist/interfaces/cli/commands/move-command-options.d.ts.map +1 -0
  242. package/dist/interfaces/cli/commands/move-command-options.js +2 -0
  243. package/dist/interfaces/cli/commands/move-command-options.js.map +1 -0
  244. package/dist/interfaces/cli/commands/move-glob-command-handler.d.ts +8 -0
  245. package/dist/interfaces/cli/commands/move-glob-command-handler.d.ts.map +1 -0
  246. package/dist/interfaces/cli/commands/move-glob-command-handler.js +186 -0
  247. package/dist/interfaces/cli/commands/move-glob-command-handler.js.map +1 -0
  248. package/dist/interfaces/cli/commands/move.command.d.ts.map +1 -1
  249. package/dist/interfaces/cli/commands/move.command.js +62 -241
  250. package/dist/interfaces/cli/commands/move.command.js.map +1 -1
  251. package/dist/interfaces/cli/commands/rename.command.d.ts.map +1 -1
  252. package/dist/interfaces/cli/commands/rename.command.js +40 -26
  253. package/dist/interfaces/cli/commands/rename.command.js.map +1 -1
  254. package/dist/interfaces/cli/commands/search.command.d.ts +11 -0
  255. package/dist/interfaces/cli/commands/search.command.d.ts.map +1 -0
  256. package/dist/interfaces/cli/commands/search.command.js +110 -0
  257. package/dist/interfaces/cli/commands/search.command.js.map +1 -0
  258. package/dist/interfaces/cli/unified-output-handler.d.ts +5 -0
  259. package/dist/interfaces/cli/unified-output-handler.d.ts.map +1 -1
  260. package/dist/interfaces/cli/unified-output-handler.js +8 -1
  261. package/dist/interfaces/cli/unified-output-handler.js.map +1 -1
  262. package/dist/plugins/javascript/declaration-analyzer.d.ts.map +1 -1
  263. package/dist/plugins/javascript/declaration-analyzer.js +5 -2
  264. package/dist/plugins/javascript/declaration-analyzer.js.map +1 -1
  265. package/dist/plugins/javascript/parser.d.ts +6 -4
  266. package/dist/plugins/javascript/parser.d.ts.map +1 -1
  267. package/dist/plugins/javascript/parser.js +97 -15
  268. package/dist/plugins/javascript/parser.js.map +1 -1
  269. package/dist/plugins/javascript/reference-finder.d.ts.map +1 -1
  270. package/dist/plugins/javascript/reference-finder.js +3 -1
  271. package/dist/plugins/javascript/reference-finder.js.map +1 -1
  272. package/dist/plugins/javascript/types.js +10 -10
  273. package/dist/plugins/javascript/types.js.map +1 -1
  274. package/dist/plugins/shared/constants.d.ts +1 -1
  275. package/dist/plugins/shared/constants.d.ts.map +1 -1
  276. package/dist/plugins/shared/constants.js +7 -1
  277. package/dist/plugins/shared/constants.js.map +1 -1
  278. package/dist/plugins/shared/parser-helpers.d.ts.map +1 -1
  279. package/dist/plugins/shared/parser-helpers.js +1 -0
  280. package/dist/plugins/shared/parser-helpers.js.map +1 -1
  281. package/dist/plugins/shared/utils/memory-monitor.d.ts.map +1 -1
  282. package/dist/plugins/shared/utils/memory-monitor.js +3 -2
  283. package/dist/plugins/shared/utils/memory-monitor.js.map +1 -1
  284. package/dist/plugins/shared/utils/object.d.ts.map +1 -1
  285. package/dist/plugins/shared/utils/object.js +8 -12
  286. package/dist/plugins/shared/utils/object.js.map +1 -1
  287. package/dist/plugins/typescript/declaration-analyzer.d.ts.map +1 -1
  288. package/dist/plugins/typescript/declaration-analyzer.js +9 -4
  289. package/dist/plugins/typescript/declaration-analyzer.js.map +1 -1
  290. package/dist/plugins/typescript/language-service.js +1 -1
  291. package/dist/plugins/typescript/language-service.js.map +1 -1
  292. package/dist/plugins/typescript/parser.d.ts +1 -6
  293. package/dist/plugins/typescript/parser.d.ts.map +1 -1
  294. package/dist/plugins/typescript/parser.js +7 -33
  295. package/dist/plugins/typescript/parser.js.map +1 -1
  296. package/dist/plugins/typescript/pattern-analyzer.d.ts.map +1 -1
  297. package/dist/plugins/typescript/pattern-analyzer.js +3 -1
  298. package/dist/plugins/typescript/pattern-analyzer.js.map +1 -1
  299. package/dist/plugins/typescript/reference-finder.d.ts.map +1 -1
  300. package/dist/plugins/typescript/reference-finder.js +3 -1
  301. package/dist/plugins/typescript/reference-finder.js.map +1 -1
  302. package/dist/plugins/typescript/tsconfig-loader.d.ts.map +1 -1
  303. package/dist/plugins/typescript/tsconfig-loader.js +162 -24
  304. package/dist/plugins/typescript/tsconfig-loader.js.map +1 -1
  305. package/dist/plugins/typescript/types.js +3 -3
  306. package/dist/plugins/typescript/types.js.map +1 -1
  307. package/dist/shared/errors/diagnostic-collector.d.ts +47 -0
  308. package/dist/shared/errors/diagnostic-collector.d.ts.map +1 -0
  309. package/dist/shared/errors/diagnostic-collector.js +89 -0
  310. package/dist/shared/errors/diagnostic-collector.js.map +1 -0
  311. package/dist/shared/errors/index.d.ts +3 -0
  312. package/dist/shared/errors/index.d.ts.map +1 -1
  313. package/dist/shared/errors/index.js +5 -1
  314. package/dist/shared/errors/index.js.map +1 -1
  315. package/dist/shared/types/index.d.ts +1 -0
  316. package/dist/shared/types/index.d.ts.map +1 -1
  317. package/dist/shared/types/index.js +2 -0
  318. package/dist/shared/types/index.js.map +1 -1
  319. package/dist/shared/types/source-file-extensions.d.ts +14 -0
  320. package/dist/shared/types/source-file-extensions.d.ts.map +1 -0
  321. package/dist/shared/types/source-file-extensions.js +42 -0
  322. package/dist/shared/types/source-file-extensions.js.map +1 -0
  323. package/dist/shared/types/symbol.d.ts +1 -0
  324. package/dist/shared/types/symbol.d.ts.map +1 -1
  325. package/dist/shared/types/symbol.js.map +1 -1
  326. package/package.json +18 -12
  327. package/dist/application/events/event-bus.d.ts +0 -107
  328. package/dist/application/events/event-bus.d.ts.map +0 -1
  329. package/dist/application/events/event-bus.js +0 -369
  330. package/dist/application/events/event-bus.js.map +0 -1
  331. package/dist/application/events/event-types.d.ts +0 -195
  332. package/dist/application/events/event-types.d.ts.map +0 -1
  333. package/dist/application/events/event-types.js +0 -36
  334. package/dist/application/events/event-types.js.map +0 -1
  335. package/dist/application/events/index.d.ts +0 -6
  336. package/dist/application/events/index.d.ts.map +0 -1
  337. package/dist/application/events/index.js +0 -6
  338. package/dist/application/events/index.js.map +0 -1
  339. package/dist/application/index.d.ts +0 -76
  340. package/dist/application/index.d.ts.map +0 -1
  341. package/dist/application/index.js +0 -127
  342. package/dist/application/index.js.map +0 -1
  343. package/dist/application/services/cache-coordinator.service.d.ts +0 -69
  344. package/dist/application/services/cache-coordinator.service.d.ts.map +0 -1
  345. package/dist/application/services/cache-coordinator.service.js +0 -251
  346. package/dist/application/services/cache-coordinator.service.js.map +0 -1
  347. package/dist/application/services/error-handler.service.d.ts +0 -56
  348. package/dist/application/services/error-handler.service.d.ts.map +0 -1
  349. package/dist/application/services/error-handler.service.js +0 -273
  350. package/dist/application/services/error-handler.service.js.map +0 -1
  351. package/dist/application/services/index.d.ts +0 -8
  352. package/dist/application/services/index.d.ts.map +0 -1
  353. package/dist/application/services/index.js +0 -8
  354. package/dist/application/services/index.js.map +0 -1
  355. package/dist/application/services/module-coordinator.service.d.ts +0 -55
  356. package/dist/application/services/module-coordinator.service.d.ts.map +0 -1
  357. package/dist/application/services/module-coordinator.service.js +0 -185
  358. package/dist/application/services/module-coordinator.service.js.map +0 -1
  359. package/dist/application/services/session-manager.service.d.ts +0 -86
  360. package/dist/application/services/session-manager.service.d.ts.map +0 -1
  361. package/dist/application/services/session-manager.service.js +0 -321
  362. package/dist/application/services/session-manager.service.js.map +0 -1
  363. package/dist/application/state/application-state.d.ts +0 -164
  364. package/dist/application/state/application-state.d.ts.map +0 -1
  365. package/dist/application/state/application-state.js +0 -290
  366. package/dist/application/state/application-state.js.map +0 -1
  367. package/dist/application/state/index.d.ts +0 -15
  368. package/dist/application/state/index.d.ts.map +0 -1
  369. package/dist/application/state/index.js +0 -15
  370. package/dist/application/state/index.js.map +0 -1
  371. package/dist/application/state/session-state.d.ts +0 -114
  372. package/dist/application/state/session-state.d.ts.map +0 -1
  373. package/dist/application/state/session-state.js +0 -188
  374. package/dist/application/state/session-state.js.map +0 -1
  375. package/dist/application/state/state-manager.d.ts +0 -122
  376. package/dist/application/state/state-manager.d.ts.map +0 -1
  377. package/dist/application/state/state-manager.js +0 -234
  378. package/dist/application/state/state-manager.js.map +0 -1
  379. package/dist/application/types.d.ts +0 -217
  380. package/dist/application/types.d.ts.map +0 -1
  381. package/dist/application/types.js +0 -5
  382. package/dist/application/types.js.map +0 -1
  383. package/dist/core/find-references/index.d.ts +0 -12
  384. package/dist/core/find-references/index.d.ts.map +0 -1
  385. package/dist/core/find-references/index.js +0 -14
  386. package/dist/core/find-references/index.js.map +0 -1
  387. package/dist/core/find-references/reference-finder-engine.d.ts +0 -75
  388. package/dist/core/find-references/reference-finder-engine.d.ts.map +0 -1
  389. package/dist/core/find-references/reference-finder-engine.js +0 -87
  390. package/dist/core/find-references/reference-finder-engine.js.map +0 -1
  391. package/dist/core/find-references/types.d.ts +0 -6
  392. package/dist/core/find-references/types.d.ts.map +0 -1
  393. package/dist/core/find-references/types.js +0 -7
  394. package/dist/core/find-references/types.js.map +0 -1
  395. package/dist/core/snapshot/index.d.ts +0 -9
  396. package/dist/core/snapshot/index.d.ts.map +0 -1
  397. package/dist/core/snapshot/index.js +0 -7
  398. package/dist/core/snapshot/index.js.map +0 -1
  399. package/dist/core/snapshot/snapshot-cache.d.ts +0 -103
  400. package/dist/core/snapshot/snapshot-cache.d.ts.map +0 -1
  401. package/dist/core/snapshot/snapshot-cache.js +0 -249
  402. package/dist/core/snapshot/snapshot-cache.js.map +0 -1
  403. package/dist/core/snapshot/snapshot-generator.d.ts +0 -79
  404. package/dist/core/snapshot/snapshot-generator.d.ts.map +0 -1
  405. package/dist/core/snapshot/snapshot-generator.js +0 -381
  406. package/dist/core/snapshot/snapshot-generator.js.map +0 -1
  407. package/dist/core/snapshot/types.d.ts +0 -67
  408. package/dist/core/snapshot/types.d.ts.map +0 -1
  409. package/dist/core/snapshot/types.js +0 -25
  410. package/dist/core/snapshot/types.js.map +0 -1
  411. package/dist/core/snapshot/utils/bracket-balancer.d.ts +0 -27
  412. package/dist/core/snapshot/utils/bracket-balancer.d.ts.map +0 -1
  413. package/dist/core/snapshot/utils/bracket-balancer.js +0 -70
  414. package/dist/core/snapshot/utils/bracket-balancer.js.map +0 -1
  415. package/dist/core/snapshot/utils/factory-pattern-detector.d.ts +0 -22
  416. package/dist/core/snapshot/utils/factory-pattern-detector.d.ts.map +0 -1
  417. package/dist/core/snapshot/utils/factory-pattern-detector.js +0 -70
  418. package/dist/core/snapshot/utils/factory-pattern-detector.js.map +0 -1
  419. package/dist/core/snapshot/utils/index.d.ts +0 -7
  420. package/dist/core/snapshot/utils/index.d.ts.map +0 -1
  421. package/dist/core/snapshot/utils/index.js +0 -7
  422. package/dist/core/snapshot/utils/index.js.map +0 -1
  423. package/dist/core/snapshot/utils/symbol-formatter.d.ts +0 -37
  424. package/dist/core/snapshot/utils/symbol-formatter.d.ts.map +0 -1
  425. package/dist/core/snapshot/utils/symbol-formatter.js +0 -89
  426. package/dist/core/snapshot/utils/symbol-formatter.js.map +0 -1
  427. package/dist/infrastructure/formatters/diff-utils.d.ts +0 -24
  428. package/dist/infrastructure/formatters/diff-utils.d.ts.map +0 -1
  429. package/dist/infrastructure/formatters/diff-utils.js +0 -104
  430. package/dist/infrastructure/formatters/diff-utils.js.map +0 -1
  431. package/dist/infrastructure/formatters/preview-converter.d.ts +0 -148
  432. package/dist/infrastructure/formatters/preview-converter.d.ts.map +0 -1
  433. package/dist/infrastructure/formatters/preview-converter.js +0 -329
  434. package/dist/infrastructure/formatters/preview-converter.js.map +0 -1
  435. package/dist/infrastructure/formatters/strategies/analyze-formatter.d.ts +0 -24
  436. package/dist/infrastructure/formatters/strategies/analyze-formatter.d.ts.map +0 -1
  437. package/dist/infrastructure/formatters/strategies/analyze-formatter.js +0 -102
  438. package/dist/infrastructure/formatters/strategies/analyze-formatter.js.map +0 -1
  439. package/dist/infrastructure/formatters/strategies/deps-formatter.d.ts +0 -15
  440. package/dist/infrastructure/formatters/strategies/deps-formatter.d.ts.map +0 -1
  441. package/dist/infrastructure/formatters/strategies/deps-formatter.js +0 -47
  442. package/dist/infrastructure/formatters/strategies/deps-formatter.js.map +0 -1
  443. package/dist/infrastructure/formatters/strategies/snapshot-formatter.d.ts +0 -20
  444. package/dist/infrastructure/formatters/strategies/snapshot-formatter.d.ts.map +0 -1
  445. package/dist/infrastructure/formatters/strategies/snapshot-formatter.js +0 -101
  446. package/dist/infrastructure/formatters/strategies/snapshot-formatter.js.map +0 -1
  447. package/dist/interfaces/cli/commands/snapshot.command.d.ts +0 -11
  448. package/dist/interfaces/cli/commands/snapshot.command.d.ts.map +0 -1
  449. package/dist/interfaces/cli/commands/snapshot.command.js +0 -86
  450. package/dist/interfaces/cli/commands/snapshot.command.js.map +0 -1
@@ -0,0 +1,59 @@
1
+ /**
2
+ * createAndIndexWithCache
3
+ * 建立 IndexEngine 並嘗試從磁碟快取載入(hit 時跳過 indexProject)
4
+ */
5
+ import { createHash } from 'crypto';
6
+ import { IndexEngine, createIndexConfig } from '../../core/foundations/indexing/index.js';
7
+ import { IndexDiskCache } from '../../infrastructure/cache/index-disk-cache.js';
8
+ import { logger } from '../../infrastructure/logging/index.js';
9
+ /**
10
+ * 建立並索引 IndexEngine,支援磁碟持久化快取
11
+ *
12
+ * 流程:
13
+ * 1. 建立 IndexEngine
14
+ * 2. noCache → 直接 indexProject
15
+ * 3. 計算 cache key → 嘗試載入快取
16
+ * 4. hit → hydrate(跳過 indexProject)
17
+ * 5. miss → indexProject → save cache
18
+ */
19
+ export async function createAndIndexWithCache(projectPath, fileSystem, configDefaults, options) {
20
+ const indexConfig = createIndexConfig(projectPath, configDefaults);
21
+ const indexEngine = new IndexEngine(indexConfig, fileSystem);
22
+ // 測試環境自動 noCache(避免污染 ~/.cache)
23
+ const isTestEnv = process.env.NODE_ENV === 'test' || process.env.VITEST === 'true';
24
+ const effectiveNoCache = options.noCache || isTestEnv;
25
+ if (effectiveNoCache) {
26
+ logger.verbose('cache', `Cache disabled, indexing ${projectPath}`);
27
+ await indexEngine.indexProject(projectPath);
28
+ return indexEngine;
29
+ }
30
+ // configDefaults hash(前 8 碼),不同命令設定不同快取目錄隔離
31
+ const configKey = createHash('sha256')
32
+ .update(JSON.stringify(Object.fromEntries(Object.entries(configDefaults).sort())))
33
+ .digest('hex')
34
+ .slice(0, 8);
35
+ const diskCache = new IndexDiskCache(projectPath, configKey, options.cacheDir);
36
+ // 計算當前 cache key
37
+ const currentKey = await diskCache.computeCacheKey(projectPath, fileSystem);
38
+ // 嘗試載入快取
39
+ const cached = await diskCache.load();
40
+ if (cached && cached.cacheKey === currentKey) {
41
+ // cache hit → hydrate(跳過 indexProject)
42
+ const hydrated = diskCache.hydrateEngine(indexEngine, cached);
43
+ if (hydrated) {
44
+ logger.verbose('cache', 'Cache HIT — hydrating index');
45
+ return indexEngine;
46
+ }
47
+ // hydrate 失敗 → fallthrough 重新 index
48
+ logger.verbose('cache', 'Cache hydrate failed, re-indexing');
49
+ }
50
+ else {
51
+ logger.verbose('cache', 'Cache MISS — full index');
52
+ }
53
+ // cache miss 或 hydrate 失敗 → 完整索引 + 儲存快取
54
+ await indexEngine.indexProject(projectPath);
55
+ await diskCache.save(indexEngine, currentKey);
56
+ logger.verbose('cache', 'Cache saved');
57
+ return indexEngine;
58
+ }
59
+ //# sourceMappingURL=cached-index-engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cached-index-engine.js","sourceRoot":"","sources":["../../../src/interfaces/cli/cached-index-engine.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC,OAAO,EACL,WAAW,EACX,iBAAiB,EAElB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAC3E,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAU1D;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,WAAmB,EACnB,UAAuB,EACvB,cAAoC,EACpC,OAAqB;IAErB,MAAM,WAAW,GAAG,iBAAiB,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IACnE,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAE7D,gCAAgC;IAChC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC;IACnF,MAAM,gBAAgB,GAAG,OAAO,CAAC,OAAO,IAAI,SAAS,CAAC;IAEtD,IAAI,gBAAgB,EAAE,CAAC;QACrB,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,4BAA4B,WAAW,EAAE,CAAC,CAAC;QACnE,MAAM,WAAW,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QAC5C,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,4CAA4C;IAC5C,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC;SACnC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;SACjF,MAAM,CAAC,KAAK,CAAC;SACb,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEf,MAAM,SAAS,GAAG,IAAI,cAAc,CAAC,WAAW,EAAE,SAAS,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE/E,iBAAiB;IACjB,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,eAAe,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAE5E,SAAS;IACT,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;IAEtC,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;QAC7C,uCAAuC;QACvC,MAAM,QAAQ,GAAG,SAAS,CAAC,aAAa,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAC9D,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,6BAA6B,CAAC,CAAC;YACvD,OAAO,WAAW,CAAC;QACrB,CAAC;QACD,oCAAoC;QACpC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,mCAAmC,CAAC,CAAC;IAC/D,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,yBAAyB,CAAC,CAAC;IACrD,CAAC;IAED,wCAAwC;IACxC,MAAM,WAAW,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAC9C,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAEvC,OAAO,WAAW,CAAC;AACrB,CAAC"}
@@ -3,6 +3,7 @@
3
3
  * 提供命令列介面來操作 Agent IDE 功能
4
4
  */
5
5
  import { type IFileSystem } from '../../infrastructure/storage/index.js';
6
+ export declare function readPackageVersion(targetPath?: string): string;
6
7
  export declare class AgentIdeCLI {
7
8
  private program;
8
9
  private fileSystem;
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../src/interfaces/cli/cli.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,kCAAkC,CAAC;AA8BhF,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,UAAU,CAAc;IAEhC;;;OAGG;gBACS,UAAU,CAAC,EAAE,WAAW;IAQpC;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,WAAW,GAAG,WAAW;IAI7D;;OAEG;IACG,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxC,OAAO,CAAC,iBAAiB;IAkDzB,OAAO,CAAC,aAAa;IAsBrB;;OAEG;IACH,OAAO,CAAC,oBAAoB;CAK7B"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../src/interfaces/cli/cli.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAwBhF,wBAAgB,kBAAkB,CAAC,UAAU,GAAE,MAAwB,GAAG,MAAM,CAa/E;AAID,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,UAAU,CAAc;IAEhC;;;OAGG;gBACS,UAAU,CAAC,EAAE,WAAW;IAQpC;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,WAAW,GAAG,WAAW;IAI7D;;OAEG;IACG,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxC,OAAO,CAAC,iBAAiB;IA6CzB,OAAO,CAAC,aAAa;IAkCrB;;OAEG;IACH,OAAO,CAAC,oBAAoB;CAK7B"}
@@ -7,7 +7,9 @@ import { ParserRegistry } from '../../infrastructure/parser/registry.js';
7
7
  import { TypeScriptParser } from '../../plugins/typescript/parser.js';
8
8
  import { JavaScriptParser } from '../../plugins/javascript/parser.js';
9
9
  import { FileSystem } from '../../infrastructure/storage/index.js';
10
- import { setupMoveCommand, setupRenameCommand, setupChangeSignatureCommand, setupCyclesCommand, setupImpactCommand, setupSnapshotCommand, setupFindReferencesCommand, setupCallHierarchyCommand, setupDeadCodeCommand } from '../cli/commands/index.js';
10
+ import { logger, LogLevel } from '../../infrastructure/logging/index.js';
11
+ import { diagnostics } from '../../shared/errors/diagnostic-collector.js';
12
+ import { setupMoveCommand, setupRenameCommand, setupChangeSignatureCommand, setupCyclesCommand, setupImpactCommand, setupFindReferencesCommand, setupCallHierarchyCommand, setupDeadCodeCommand, setupSearchCommand } from '../cli/commands/index.js';
11
13
  import { readFileSync } from 'fs';
12
14
  import * as path from 'path';
13
15
  import { fileURLToPath } from 'url';
@@ -15,14 +17,20 @@ import { fileURLToPath } from 'url';
15
17
  const __filename = fileURLToPath(import.meta.url);
16
18
  const __dirname = path.dirname(__filename);
17
19
  const packageJsonPath = path.resolve(__dirname, '../../../package.json');
18
- let packageVersion = '0.1.0'; // fallback
19
- try {
20
- const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));
21
- packageVersion = packageJson.version;
22
- }
23
- catch {
24
- // 使用 fallback 版本
20
+ export function readPackageVersion(targetPath = packageJsonPath) {
21
+ let packageJson;
22
+ try {
23
+ packageJson = JSON.parse(readFileSync(targetPath, 'utf-8'));
24
+ }
25
+ catch (error) {
26
+ throw new Error(`Cannot read package version from ${targetPath}: ${error instanceof Error ? error.message : String(error)}`);
27
+ }
28
+ if (typeof packageJson.version !== 'string' || packageJson.version.trim().length === 0) {
29
+ throw new Error(`Invalid package version in ${targetPath}`);
30
+ }
31
+ return packageJson.version;
25
32
  }
33
+ const packageVersion = readPackageVersion();
26
34
  export class AgentIdeCLI {
27
35
  program;
28
36
  fileSystem;
@@ -54,7 +62,7 @@ export class AgentIdeCLI {
54
62
  const registry = ParserRegistry.getInstance();
55
63
  // 檢查 registry 是否可用
56
64
  if (!registry) {
57
- console.debug('Parser registry not available');
65
+ logger.verbose('parser', 'Parser registry not available');
58
66
  return;
59
67
  }
60
68
  // 在測試環境中,檢查是否已經有測試 Parser 註冊
@@ -74,9 +82,7 @@ export class AgentIdeCLI {
74
82
  }
75
83
  }
76
84
  catch (tsError) {
77
- // 如果 TypeScript Parser 載入失敗,記錄錯誤
78
- console.debug('TypeScript parser loading failed:', tsError);
79
- console.debug('TypeScript Parser initialization warning:', tsError);
85
+ logger.verbose('parser', `TypeScript parser loading failed: ${tsError}`);
80
86
  }
81
87
  // 嘗試註冊內建的 JavaScript Parser
82
88
  try {
@@ -86,21 +92,29 @@ export class AgentIdeCLI {
86
92
  }
87
93
  }
88
94
  catch (jsError) {
89
- // 如果 JavaScript Parser 載入失敗,記錄錯誤
90
- console.debug('JavaScript parser loading failed:', jsError);
91
- console.debug('JavaScript Parser initialization warning:', jsError);
95
+ logger.verbose('parser', `JavaScript parser loading failed: ${jsError}`);
92
96
  }
93
97
  }
94
98
  catch (error) {
95
- // 靜默處理初始化錯誤,避免影響 CLI 啟動
96
- console.debug('Parser initialization warning:', error);
99
+ logger.verbose('parser', `Parser initialization warning: ${error}`);
97
100
  }
98
101
  }
99
102
  setupCommands() {
100
103
  this.program
101
104
  .name('agent-ide')
102
105
  .description('程式碼智能工具集 for AI Agents')
103
- .version(packageVersion);
106
+ .version(packageVersion)
107
+ .option('--no-cache', '停用索引快取')
108
+ .option('--cache-dir <path>', '覆寫索引快取目錄')
109
+ .option('--verbose', '顯示詳細處理資訊');
110
+ this.program.hook('preAction', (thisCommand) => {
111
+ const opts = thisCommand.optsWithGlobals();
112
+ logger.setLevel(opts.verbose ? LogLevel.Verbose : LogLevel.Normal);
113
+ diagnostics.setSink({
114
+ warn: (module, message) => logger.warn(module, message),
115
+ error: (module, message) => logger.error(module, message)
116
+ });
117
+ });
104
118
  const context = this.createCommandContext();
105
119
  // Transform 命令
106
120
  setupRenameCommand(this.program, context);
@@ -109,10 +123,10 @@ export class AgentIdeCLI {
109
123
  // Query 命令
110
124
  setupCyclesCommand(this.program, context);
111
125
  setupImpactCommand(this.program, context);
112
- setupSnapshotCommand(this.program, context);
113
126
  setupFindReferencesCommand(this.program, context);
114
127
  setupCallHierarchyCommand(this.program, context);
115
128
  setupDeadCodeCommand(this.program, context);
129
+ setupSearchCommand(this.program, context);
116
130
  }
117
131
  /**
118
132
  * 建立命令共用 Context
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/interfaces/cli/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/interfaces/cli/cli.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  * 提供格式驗證和變更類命令執行的共用邏輯
4
4
  */
5
5
  import { type Changeset } from '../../infrastructure/changeset/index.js';
6
- import type { PreviewInput } from '../../infrastructure/formatters/index.js';
6
+ import { PreviewCommand, type PreviewInput } from '../../infrastructure/formatters/index.js';
7
7
  import type { IFileSystem } from '../../infrastructure/storage/file-system.interface.js';
8
8
  import { OutputFormat, type UnifiedOutputHandler } from '../cli/unified-output-handler.js';
9
9
  /** 格式驗證結果(使用 discriminated union 以支援類型收窄) */
@@ -30,6 +30,14 @@ export type FormatParseResult = {
30
30
  * ```
31
31
  */
32
32
  export declare function tryParseOutputFormat(formatStr: string, allowDiff: boolean, outputHandler?: UnifiedOutputHandler): FormatParseResult;
33
+ /**
34
+ * 驗證 CLI 輸入路徑存在,失敗時輸出統一錯誤並設定 exitCode。
35
+ */
36
+ export declare function ensurePathExists(pathToCheck: string, fileSystem: IFileSystem, outputHandler: UnifiedOutputHandler, format: OutputFormat): Promise<boolean>;
37
+ /**
38
+ * 驗證 CLI 輸入路徑存在且為目錄。
39
+ */
40
+ export declare function ensureDirectoryPath(pathToCheck: string, fileSystem: IFileSystem, outputHandler: UnifiedOutputHandler, format: OutputFormat): Promise<boolean>;
33
41
  /** 變更類命令執行選項 */
34
42
  export interface MutationExecutionOptions {
35
43
  /** 檔案系統 */
@@ -52,6 +60,14 @@ export interface MutationExecutionResult {
52
60
  /** PreviewInput(用於輸出) */
53
61
  previewInput?: PreviewInput;
54
62
  }
63
+ /**
64
+ * 建立無檔案變更的 mutation preview input。
65
+ */
66
+ export declare function createEmptyMutationPreviewInput(command: PreviewCommand, operationDescription: string): PreviewInput;
67
+ /**
68
+ * 輸出 mutation 結果,JSON 模式保留既有命令欄位並補齊統一 PreviewResult 欄位。
69
+ */
70
+ export declare function outputMutationWithLegacyFields(outputHandler: UnifiedOutputHandler, input: PreviewInput, format: OutputFormat, legacyFields?: Record<string, unknown>): void;
55
71
  /**
56
72
  * 執行變更類命令的統一流程
57
73
  *
@@ -1 +1 @@
1
- {"version":3,"file":"command-utils.d.ts","sourceRoot":"","sources":["../../../src/interfaces/cli/command-utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAoD,KAAK,SAAS,EAAE,MAAM,oCAAoC,CAAC;AACtH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kDAAkD,CAAC;AACpF,OAAO,EAGL,YAAY,EACZ,KAAK,oBAAoB,EAC1B,MAAM,2CAA2C,CAAC;AAEnD,6CAA6C;AAC7C,MAAM,MAAM,iBAAiB,GACzB;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GACvC;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,MAAM,CAAC,EAAE,SAAS,CAAA;CAAE,CAAC;AAE3C;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,OAAO,EAClB,aAAa,CAAC,EAAE,oBAAoB,GACnC,iBAAiB,CAWnB;AAED,gBAAgB;AAChB,MAAM,WAAW,wBAAwB;IACvC,WAAW;IACX,UAAU,EAAE,WAAW,CAAC;IACxB,WAAW;IACX,MAAM,EAAE,YAAY,CAAC;IACrB,qBAAqB;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY;IACZ,aAAa,EAAE,oBAAoB,CAAC;IACpC,mBAAmB;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4BAA4B;IAC5B,SAAS,CAAC,EAAE,CAAC,YAAY,EAAE,YAAY,KAAK,IAAI,CAAC;CAClD;AAED,gBAAgB;AAChB,MAAM,WAAW,uBAAuB;IACtC,aAAa;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,yBAAyB;IACzB,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAsB,sBAAsB,CAC1C,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,uBAAuB,CAAC,CA4ClC"}
1
+ {"version":3,"file":"command-utils.d.ts","sourceRoot":"","sources":["../../../src/interfaces/cli/command-utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAoD,KAAK,SAAS,EAAE,MAAM,oCAAoC,CAAC;AACtH,OAAO,EAAE,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACxF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kDAAkD,CAAC;AACpF,OAAO,EAGL,YAAY,EACZ,KAAK,oBAAoB,EAC1B,MAAM,2CAA2C,CAAC;AAEnD,6CAA6C;AAC7C,MAAM,MAAM,iBAAiB,GACzB;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GACvC;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,MAAM,CAAC,EAAE,SAAS,CAAA;CAAE,CAAC;AAE3C;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,OAAO,EAClB,aAAa,CAAC,EAAE,oBAAoB,GACnC,iBAAiB,CAWnB;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,WAAW,EACvB,aAAa,EAAE,oBAAoB,EACnC,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,OAAO,CAAC,CASlB;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,WAAW,EACvB,aAAa,EAAE,oBAAoB,EACnC,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,OAAO,CAAC,CAclB;AAED,gBAAgB;AAChB,MAAM,WAAW,wBAAwB;IACvC,WAAW;IACX,UAAU,EAAE,WAAW,CAAC;IACxB,WAAW;IACX,MAAM,EAAE,YAAY,CAAC;IACrB,qBAAqB;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY;IACZ,aAAa,EAAE,oBAAoB,CAAC;IACpC,mBAAmB;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4BAA4B;IAC5B,SAAS,CAAC,EAAE,CAAC,YAAY,EAAE,YAAY,KAAK,IAAI,CAAC;CAClD;AAED,gBAAgB;AAChB,MAAM,WAAW,uBAAuB;IACtC,aAAa;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,yBAAyB;IACzB,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED;;GAEG;AACH,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,cAAc,EACvB,oBAAoB,EAAE,MAAM,GAC3B,YAAY,CAOd;AAED;;GAEG;AACH,wBAAgB,8BAA8B,CAC5C,aAAa,EAAE,oBAAoB,EACnC,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,YAAY,EACpB,YAAY,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACzC,IAAI,CAQN;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAsB,sBAAsB,CAC1C,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,uBAAuB,CAAC,CA4ClC"}
@@ -25,13 +25,63 @@ export function tryParseOutputFormat(formatStr, allowDiff, outputHandler) {
25
25
  const format = parseOutputFormat(formatStr, allowDiff);
26
26
  return { success: true, format };
27
27
  }
28
- catch {
29
- const availableFormats = allowDiff ? 'json, summary, diff' : 'json, summary';
30
- handler.outputError(`不支援的輸出格式。可用格式: ${availableFormats}`, OutputFormat.Summary);
28
+ catch (error) {
29
+ const message = error instanceof Error ? error.message : String(error);
30
+ handler.outputError(message, OutputFormat.Summary);
31
31
  process.exitCode = 1;
32
32
  return { success: false };
33
33
  }
34
34
  }
35
+ /**
36
+ * 驗證 CLI 輸入路徑存在,失敗時輸出統一錯誤並設定 exitCode。
37
+ */
38
+ export async function ensurePathExists(pathToCheck, fileSystem, outputHandler, format) {
39
+ const exists = await fileSystem.exists(pathToCheck);
40
+ if (!exists) {
41
+ outputHandler.outputError(`路徑不存在: ${pathToCheck}`, format);
42
+ process.exitCode = 1;
43
+ return false;
44
+ }
45
+ return true;
46
+ }
47
+ /**
48
+ * 驗證 CLI 輸入路徑存在且為目錄。
49
+ */
50
+ export async function ensureDirectoryPath(pathToCheck, fileSystem, outputHandler, format) {
51
+ const exists = await ensurePathExists(pathToCheck, fileSystem, outputHandler, format);
52
+ if (!exists) {
53
+ return false;
54
+ }
55
+ const isDirectory = await fileSystem.isDirectory(pathToCheck);
56
+ if (!isDirectory) {
57
+ outputHandler.outputError(`路徑不是目錄: ${pathToCheck}`, format);
58
+ process.exitCode = 1;
59
+ return false;
60
+ }
61
+ return true;
62
+ }
63
+ /**
64
+ * 建立無檔案變更的 mutation preview input。
65
+ */
66
+ export function createEmptyMutationPreviewInput(command, operationDescription) {
67
+ return {
68
+ command,
69
+ success: true,
70
+ fileChanges: [],
71
+ operationDescription
72
+ };
73
+ }
74
+ /**
75
+ * 輸出 mutation 結果,JSON 模式保留既有命令欄位並補齊統一 PreviewResult 欄位。
76
+ */
77
+ export function outputMutationWithLegacyFields(outputHandler, input, format, legacyFields = {}) {
78
+ if (format === OutputFormat.Json) {
79
+ const result = outputHandler.createMutationResult(input);
80
+ outputHandler.outputJson({ ...legacyFields, ...result }, 2);
81
+ return;
82
+ }
83
+ outputHandler.outputMutation(input, format);
84
+ }
35
85
  /**
36
86
  * 執行變更類命令的統一流程
37
87
  *
@@ -1 +1 @@
1
- {"version":3,"file":"command-utils.js","sourceRoot":"","sources":["../../../src/interfaces/cli/command-utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,gBAAgB,EAAE,8BAA8B,EAAkB,MAAM,oCAAoC,CAAC;AAGtH,OAAO,EACL,0BAA0B,EAC1B,iBAAiB,EACjB,YAAY,EAEb,MAAM,2CAA2C,CAAC;AAOnD;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,oBAAoB,CAClC,SAAiB,EACjB,SAAkB,EAClB,aAAoC;IAEpC,MAAM,OAAO,GAAG,aAAa,IAAI,0BAA0B,EAAE,CAAC;IAC9D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACvD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,gBAAgB,GAAG,SAAS,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,eAAe,CAAC;QAC7E,OAAO,CAAC,WAAW,CAAC,kBAAkB,gBAAgB,EAAE,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;QAChF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC5B,CAAC;AACH,CAAC;AA0BD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,SAAoB,EACpB,OAAiC;IAEjC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAEtF,uBAAuB;IACvB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;QACvB,aAAa,CAAC,WAAW,CACvB,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,EACxC,MAAM,EACN,WAAW,CACZ,CAAC;QACF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC5B,CAAC;IAED,sBAAsB;IACtB,MAAM,YAAY,GAAG,MAAM,8BAA8B,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAEjF,qBAAqB;IACrB,IAAI,MAAM,EAAE,CAAC;QACX,aAAa,CAAC,cAAc,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QACnD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;IACzC,CAAC;IAED,eAAe;IACf,MAAM,UAAU,GAAG,IAAI,gBAAgB,CAAC,UAAU,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,SAAS,EAAE;QAC/C,MAAM,EAAE,IAAI;QACZ,eAAe,EAAE,IAAI;KACtB,CAAC,CAAC;IAEH,UAAU;IACV,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,aAAa,CAAC,cAAc,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QACnD,SAAS,EAAE,CAAC,YAAY,CAAC,CAAC;QAC1B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;IACzC,CAAC;SAAM,CAAC;QACN,aAAa,CAAC,WAAW,CACvB,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,EACnC,MAAM,EACN,WAAW,CACZ,CAAC;QACF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC5B,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"command-utils.js","sourceRoot":"","sources":["../../../src/interfaces/cli/command-utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,gBAAgB,EAAE,8BAA8B,EAAkB,MAAM,oCAAoC,CAAC;AAGtH,OAAO,EACL,0BAA0B,EAC1B,iBAAiB,EACjB,YAAY,EAEb,MAAM,2CAA2C,CAAC;AAOnD;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,oBAAoB,CAClC,SAAiB,EACjB,SAAkB,EAClB,aAAoC;IAEpC,MAAM,OAAO,GAAG,aAAa,IAAI,0BAA0B,EAAE,CAAC;IAC9D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACvD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IACnC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;QACnD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC5B,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,WAAmB,EACnB,UAAuB,EACvB,aAAmC,EACnC,MAAoB;IAEpB,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACpD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,aAAa,CAAC,WAAW,CAAC,UAAU,WAAW,EAAE,EAAE,MAAM,CAAC,CAAC;QAC3D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,WAAmB,EACnB,UAAuB,EACvB,aAAmC,EACnC,MAAoB;IAEpB,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;IACtF,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAC9D,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,aAAa,CAAC,WAAW,CAAC,WAAW,WAAW,EAAE,EAAE,MAAM,CAAC,CAAC;QAC5D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AA0BD;;GAEG;AACH,MAAM,UAAU,+BAA+B,CAC7C,OAAuB,EACvB,oBAA4B;IAE5B,OAAO;QACL,OAAO;QACP,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,EAAE;QACf,oBAAoB;KACrB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,8BAA8B,CAC5C,aAAmC,EACnC,KAAmB,EACnB,MAAoB,EACpB,eAAwC,EAAE;IAE1C,IAAI,MAAM,KAAK,YAAY,CAAC,IAAI,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,aAAa,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QACzD,aAAa,CAAC,UAAU,CAAC,EAAE,GAAG,YAAY,EAAE,GAAG,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;QAC5D,OAAO;IACT,CAAC;IAED,aAAa,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,SAAoB,EACpB,OAAiC;IAEjC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAEtF,uBAAuB;IACvB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;QACvB,aAAa,CAAC,WAAW,CACvB,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,EACxC,MAAM,EACN,WAAW,CACZ,CAAC;QACF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC5B,CAAC;IAED,sBAAsB;IACtB,MAAM,YAAY,GAAG,MAAM,8BAA8B,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAEjF,qBAAqB;IACrB,IAAI,MAAM,EAAE,CAAC;QACX,aAAa,CAAC,cAAc,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QACnD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;IACzC,CAAC;IAED,eAAe;IACf,MAAM,UAAU,GAAG,IAAI,gBAAgB,CAAC,UAAU,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,SAAS,EAAE;QAC/C,MAAM,EAAE,IAAI;QACZ,eAAe,EAAE,IAAI;KACtB,CAAC,CAAC;IAEH,UAAU;IACV,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,aAAa,CAAC,cAAc,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QACnD,SAAS,EAAE,CAAC,YAAY,CAAC,CAAC;QAC1B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;IACzC,CAAC;SAAM,CAAC;QACN,aAAa,CAAC,WAAW,CACvB,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,EACnC,MAAM,EACN,WAAW,CACZ,CAAC;QACF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC5B,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"call-hierarchy.command.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/cli/commands/call-hierarchy.command.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoBzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAWxE;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,CAWzF"}
1
+ {"version":3,"file":"call-hierarchy.command.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/cli/commands/call-hierarchy.command.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsBzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAWxE;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,CAWzF"}
@@ -2,12 +2,13 @@
2
2
  * call-hierarchy 命令
3
3
  * 顯示函數的呼叫者(incoming)和被呼叫者(outgoing)
4
4
  */
5
- import { IndexEngine, createIndexConfig, CLI_INDEX_DEFAULTS } from '../../../core/foundations/indexing/index.js';
5
+ import { CLI_INDEX_DEFAULTS } from '../../../core/foundations/indexing/index.js';
6
+ import { createAndIndexWithCache } from '../../cli/cached-index-engine.js';
6
7
  import { ParserRegistry } from '../../../infrastructure/parser/registry.js';
7
8
  import { createCallHierarchyAnalyzer } from '../../../core/call-hierarchy/index.js';
8
9
  import { QueryCommand } from '../../../infrastructure/formatters/index.js';
9
10
  import { createUnifiedOutputHandler, OutputFormat } from '../../cli/unified-output-handler.js';
10
- import { tryParseOutputFormat } from '../../cli/command-utils.js';
11
+ import { ensureDirectoryPath, tryParseOutputFormat } from '../../cli/command-utils.js';
11
12
  import { getErrorMessage } from '../../../shared/errors/index.js';
12
13
  /**
13
14
  * 設定 call-hierarchy 命令
@@ -20,14 +21,14 @@ export function setupCallHierarchyCommand(program, context) {
20
21
  .option('-d, --direction <direction>', '分析方向: incoming, outgoing, both', 'both')
21
22
  .option('--depth <n>', '遞迴深度(1-10)', '1')
22
23
  .option('--format <format>', '輸出格式 (json|summary)', 'summary')
23
- .action(async (functionName, options) => {
24
- await handleCallHierarchyCommand(functionName, options, context);
24
+ .action(async (functionName, options, command) => {
25
+ await handleCallHierarchyCommand(functionName, options, context, command);
25
26
  });
26
27
  }
27
28
  /**
28
29
  * 處理 call-hierarchy 命令
29
30
  */
30
- async function handleCallHierarchyCommand(functionName, options, context) {
31
+ async function handleCallHierarchyCommand(functionName, options, context, command) {
31
32
  const outputHandler = createUnifiedOutputHandler();
32
33
  // 解析輸出格式
33
34
  const formatResult = tryParseOutputFormat(options.format, false, outputHandler);
@@ -53,21 +54,29 @@ async function handleCallHierarchyCommand(functionName, options, context) {
53
54
  console.log(`📞 分析呼叫層次: ${functionName}...`);
54
55
  }
55
56
  const projectPath = options.path || process.cwd();
56
- // 建立索引引擎
57
- const indexConfig = createIndexConfig(projectPath, CLI_INDEX_DEFAULTS);
58
- const indexEngine = new IndexEngine(indexConfig, context.fileSystem);
57
+ const pathIsDirectory = await ensureDirectoryPath(projectPath, context.fileSystem, outputHandler, format);
58
+ if (!pathIsDirectory) {
59
+ return;
60
+ }
61
+ const globalOpts = command.optsWithGlobals();
62
+ const noCache = globalOpts.cache === false;
63
+ const indexEngine = await createAndIndexWithCache(projectPath, context.fileSystem, CLI_INDEX_DEFAULTS, { noCache, cacheDir: globalOpts.cacheDir });
59
64
  try {
60
- await indexEngine.indexProject(projectPath);
61
65
  const indexedFiles = indexEngine.getAllIndexedFiles();
62
66
  const filePaths = indexedFiles.map(f => f.filePath);
63
67
  // 使用 IndexEngine 查找函數定義(與 find-references 相同的方式)
64
68
  const symbolResults = await indexEngine.findSymbol(functionName);
65
69
  // 過濾出函數類型的符號(function 或 variable 用於 arrow function)
66
70
  const functionSymbols = symbolResults.filter(r => r.symbol.type === 'function' || r.symbol.type === 'variable');
71
+ // 優先選取 function 類型(排除 import specifier 等 variable 型別),
72
+ // 若無 function 類型則以 variable 為後備(arrow function 場景)
73
+ const purelyFunctionSymbols = functionSymbols.filter(r => r.symbol.type === 'function');
74
+ const preferredSymbols = purelyFunctionSymbols.length > 0 ? purelyFunctionSymbols : functionSymbols;
67
75
  // 若無函數類型,回退到所有結果
68
- const matchedSymbols = functionSymbols.length > 0 ? functionSymbols : symbolResults;
76
+ const matchedSymbols = preferredSymbols.length > 0 ? preferredSymbols : symbolResults;
69
77
  // 函數找不到的情況
70
78
  if (matchedSymbols.length === 0) {
79
+ const errorMessage = `找不到函數 "${functionName}"`;
71
80
  const errorResult = {
72
81
  command: QueryCommand.CallHierarchy,
73
82
  success: false,
@@ -82,7 +91,8 @@ async function handleCallHierarchyCommand(functionName, options, context) {
82
91
  outgoingCount: 0,
83
92
  uniqueFiles: 0
84
93
  },
85
- errors: [`找不到函數 "${functionName}"`]
94
+ error: errorMessage,
95
+ errors: [errorMessage]
86
96
  };
87
97
  outputHandler.outputQuery(errorResult, format);
88
98
  process.exitCode = 1;
@@ -98,7 +108,6 @@ async function handleCallHierarchyCommand(functionName, options, context) {
98
108
  const functionSymbol = matchedSymbols[0];
99
109
  const definitionFile = functionSymbol.symbol.location.filePath;
100
110
  const definitionLine = functionSymbol.symbol.location.range.start.line;
101
- const definitionRange = functionSymbol.symbol.location.range;
102
111
  // 建立分析器並執行分析
103
112
  const parserRegistry = ParserRegistry.getInstance();
104
113
  const analyzer = createCallHierarchyAnalyzer(parserRegistry, context.fileSystem);
@@ -106,22 +115,27 @@ async function handleCallHierarchyCommand(functionName, options, context) {
106
115
  direction,
107
116
  depth
108
117
  };
109
- const analysisResult = await analyzer.analyzeWithDefinition(functionName, definitionFile, definitionRange, filePaths, analysisOptions);
118
+ const analysisResults = [];
119
+ for (const matchedSymbol of matchedSymbols) {
120
+ const symbolDefinitionFile = matchedSymbol.symbol.location.filePath;
121
+ const symbolDefinitionRange = matchedSymbol.symbol.location.range;
122
+ analysisResults.push(await analyzer.analyzeWithDefinition(functionName, symbolDefinitionFile, symbolDefinitionRange, filePaths, analysisOptions));
123
+ }
110
124
  // 轉換為輸出格式
111
- const incoming = analysisResult.incoming.map(call => ({
125
+ const incoming = dedupeIncomingCalls(analysisResults.flatMap(result => result.incoming.map(call => ({
112
126
  caller: call.caller,
113
127
  file: call.location.filePath,
114
128
  line: call.location.range.start.line,
115
129
  column: call.location.range.start.column,
116
130
  context: call.context
117
- }));
118
- const outgoing = analysisResult.outgoing.map(call => ({
131
+ }))));
132
+ const outgoing = dedupeOutgoingCalls(analysisResults.flatMap(result => result.outgoing.map(call => ({
119
133
  callee: call.callee,
120
134
  file: call.location.filePath,
121
135
  line: call.location.range.start.line,
122
136
  column: call.location.range.start.column,
123
137
  context: call.context
124
- }));
138
+ }))));
125
139
  // 計算涉及的檔案數
126
140
  const uniqueFiles = new Set([
127
141
  ...incoming.map(i => i.file),
@@ -166,4 +180,30 @@ function validateDirection(dir) {
166
180
  }
167
181
  return null;
168
182
  }
183
+ function dedupeIncomingCalls(calls) {
184
+ const seen = new Set();
185
+ const uniqueCalls = [];
186
+ for (const call of calls) {
187
+ const key = `${call.caller}:${call.file}:${call.line}:${call.column ?? ''}:${call.context ?? ''}`;
188
+ if (seen.has(key)) {
189
+ continue;
190
+ }
191
+ seen.add(key);
192
+ uniqueCalls.push(call);
193
+ }
194
+ return uniqueCalls;
195
+ }
196
+ function dedupeOutgoingCalls(calls) {
197
+ const seen = new Set();
198
+ const uniqueCalls = [];
199
+ for (const call of calls) {
200
+ const key = `${call.callee}:${call.file}:${call.line}:${call.column ?? ''}:${call.context ?? ''}`;
201
+ if (seen.has(key)) {
202
+ continue;
203
+ }
204
+ seen.add(key);
205
+ uniqueCalls.push(call);
206
+ }
207
+ return uniqueCalls;
208
+ }
169
209
  //# sourceMappingURL=call-hierarchy.command.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"call-hierarchy.command.js","sourceRoot":"","sources":["../../../../src/interfaces/cli/commands/call-hierarchy.command.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzG,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EACL,2BAA2B,EAE5B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,YAAY,EAMb,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,0BAA0B,EAC1B,YAAY,EACb,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAExE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAU1D;;GAEG;AACH,MAAM,UAAU,yBAAyB,CAAC,OAAgB,EAAE,OAAuB;IACjF,OAAO;SACJ,OAAO,CAAC,2BAA2B,CAAC;SACpC,WAAW,CAAC,mCAAmC,CAAC;SAChD,MAAM,CAAC,mBAAmB,EAAE,MAAM,EAAE,GAAG,CAAC;SACxC,MAAM,CAAC,6BAA6B,EAAE,gCAAgC,EAAE,MAAM,CAAC;SAC/E,MAAM,CAAC,aAAa,EAAE,YAAY,EAAE,GAAG,CAAC;SACxC,MAAM,CAAC,mBAAmB,EAAE,qBAAqB,EAAE,SAAS,CAAC;SAC7D,MAAM,CAAC,KAAK,EAAE,YAAoB,EAAE,OAAoC,EAAE,EAAE;QAC3E,MAAM,0BAA0B,CAAC,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,0BAA0B,CACvC,YAAoB,EACpB,OAAoC,EACpC,OAAuB;IAEvB,MAAM,aAAa,GAAG,0BAA0B,EAAE,CAAC;IAEnD,SAAS;IACT,MAAM,YAAY,GAAG,oBAAoB,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;IAChF,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;QAAA,OAAO;IAAA,CAAC;IACpC,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;IAEnC,kBAAkB;IAClB,MAAM,SAAS,GAAG,iBAAiB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACvD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,aAAa,CAAC,WAAW,CAAC,gDAAgD,EAAE,MAAM,CAAC,CAAC;QACpF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,cAAc;IACd,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC1C,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,EAAE,CAAC;QAC5C,aAAa,CAAC,WAAW,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;QACvD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,IAAI,MAAM,KAAK,YAAY,CAAC,IAAI,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,cAAc,YAAY,KAAK,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAElD,SAAS;IACT,MAAM,WAAW,GAAG,iBAAiB,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;IAEvE,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,WAAW,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAErE,IAAI,CAAC;QACH,MAAM,WAAW,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QAE5C,MAAM,YAAY,GAAG,WAAW,CAAC,kBAAkB,EAAE,CAAC;QACtD,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAEpD,iDAAiD;QACjD,MAAM,aAAa,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QAEjE,oDAAoD;QACpD,MAAM,eAAe,GAAG,aAAa,CAAC,MAAM,CAC1C,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,CAClE,CAAC;QAEF,iBAAiB;QACjB,MAAM,cAAc,GAAG,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,aAAa,CAAC;QAEpF,WAAW;QACX,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,MAAM,WAAW,GAAwB;gBACvC,OAAO,EAAE,YAAY,CAAC,aAAa;gBACnC,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,YAAY;gBACtB,IAAI,EAAE,EAAE;gBACR,SAAS;gBACT,KAAK;gBACL,QAAQ,EAAE,EAAE;gBACZ,QAAQ,EAAE,EAAE;gBACZ,OAAO,EAAE;oBACP,aAAa,EAAE,CAAC;oBAChB,aAAa,EAAE,CAAC;oBAChB,WAAW,EAAE,CAAC;iBACf;gBACD,MAAM,EAAE,CAAC,UAAU,YAAY,GAAG,CAAC;aACpC,CAAC;YACF,aAAa,CAAC,WAAW,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;YAC/C,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QAED,oBAAoB;QACpB,MAAM,cAAc,GAA6B,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC1E,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ;YAClC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI;YAC1C,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI;SAClC,CAAC,CAAC,CAAC;QAEJ,oBAAoB;QACpB,MAAM,cAAc,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC/D,MAAM,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;QACvE,MAAM,eAAe,GAAG,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAE7D,aAAa;QACb,MAAM,cAAc,GAAG,cAAc,CAAC,WAAW,EAAE,CAAC;QACpD,MAAM,QAAQ,GAAG,2BAA2B,CAAC,cAAc,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;QAEjF,MAAM,eAAe,GAAyB;YAC5C,SAAS;YACT,KAAK;SACN,CAAC;QAEF,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC,qBAAqB,CACzD,YAAY,EACZ,cAAc,EACd,eAAe,EACf,SAAS,EACT,eAAe,CAChB,CAAC;QAEF,UAAU;QACV,MAAM,QAAQ,GAAuB,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACxE,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ;YAC5B,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI;YACpC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM;YACxC,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CAAC,CAAC;QAEJ,MAAM,QAAQ,GAAuB,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACxE,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ;YAC5B,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI;YACpC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM;YACxC,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CAAC,CAAC;QAEJ,WAAW;QACX,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC;YAC1B,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YAC5B,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SAC7B,CAAC,CAAC,IAAI,CAAC;QAER,MAAM,MAAM,GAAwB;YAClC,OAAO,EAAE,YAAY,CAAC,aAAa;YACnC,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,YAAY;YACtB,IAAI,EAAE,cAAc;YACpB,cAAc;YACd,WAAW,EAAE,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS;YACnE,SAAS;YACT,KAAK;YACL,QAAQ;YACR,QAAQ;YACR,OAAO,EAAE;gBACP,aAAa,EAAE,QAAQ,CAAC,MAAM;gBAC9B,aAAa,EAAE,QAAQ,CAAC,MAAM;gBAC9B,WAAW;gBACX,eAAe,EAAE,cAAc,CAAC,MAAM;aACvC;SACF,CAAC;QAEF,aAAa,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QAC5C,aAAa,CAAC,WAAW,CAAC,aAAa,YAAY,EAAE,EAAE,MAAM,CAAC,CAAC;QAC/D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;YAAS,CAAC;QACT,WAAW,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,GAAW;IACpC,MAAM,UAAU,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;IACrC,IAAI,UAAU,KAAK,UAAU,IAAI,UAAU,KAAK,UAAU,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;QACpF,OAAO,UAAoC,CAAC;IAC9C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"call-hierarchy.command.js","sourceRoot":"","sources":["../../../../src/interfaces/cli/commands/call-hierarchy.command.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EACL,2BAA2B,EAG5B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,YAAY,EAMb,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,0BAA0B,EAC1B,YAAY,EACb,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAE7F,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAU1D;;GAEG;AACH,MAAM,UAAU,yBAAyB,CAAC,OAAgB,EAAE,OAAuB;IACjF,OAAO;SACJ,OAAO,CAAC,2BAA2B,CAAC;SACpC,WAAW,CAAC,mCAAmC,CAAC;SAChD,MAAM,CAAC,mBAAmB,EAAE,MAAM,EAAE,GAAG,CAAC;SACxC,MAAM,CAAC,6BAA6B,EAAE,gCAAgC,EAAE,MAAM,CAAC;SAC/E,MAAM,CAAC,aAAa,EAAE,YAAY,EAAE,GAAG,CAAC;SACxC,MAAM,CAAC,mBAAmB,EAAE,qBAAqB,EAAE,SAAS,CAAC;SAC7D,MAAM,CAAC,KAAK,EAAE,YAAoB,EAAE,OAAoC,EAAE,OAAgB,EAAE,EAAE;QAC7F,MAAM,0BAA0B,CAAC,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,0BAA0B,CACvC,YAAoB,EACpB,OAAoC,EACpC,OAAuB,EACvB,OAAgB;IAEhB,MAAM,aAAa,GAAG,0BAA0B,EAAE,CAAC;IAEnD,SAAS;IACT,MAAM,YAAY,GAAG,oBAAoB,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;IAChF,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;QAAA,OAAO;IAAA,CAAC;IACpC,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;IAEnC,kBAAkB;IAClB,MAAM,SAAS,GAAG,iBAAiB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACvD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,aAAa,CAAC,WAAW,CAAC,gDAAgD,EAAE,MAAM,CAAC,CAAC;QACpF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,cAAc;IACd,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC1C,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,EAAE,CAAC;QAC5C,aAAa,CAAC,WAAW,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;QACvD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,IAAI,MAAM,KAAK,YAAY,CAAC,IAAI,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,cAAc,YAAY,KAAK,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAClD,MAAM,eAAe,GAAG,MAAM,mBAAmB,CAAC,WAAW,EAAE,OAAO,CAAC,UAAU,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;IAC1G,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,OAAO;IACT,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,eAAe,EAA4C,CAAC;IACvF,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,KAAK,KAAK,CAAC;IAE3C,MAAM,WAAW,GAAG,MAAM,uBAAuB,CAC/C,WAAW,EACX,OAAO,CAAC,UAAU,EAClB,kBAAkB,EAClB,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,QAAQ,EAAE,CAC3C,CAAC;IAEF,IAAI,CAAC;QAEH,MAAM,YAAY,GAAG,WAAW,CAAC,kBAAkB,EAAE,CAAC;QACtD,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAEpD,iDAAiD;QACjD,MAAM,aAAa,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QAEjE,oDAAoD;QACpD,MAAM,eAAe,GAAG,aAAa,CAAC,MAAM,CAC1C,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,CAClE,CAAC;QAEF,uDAAuD;QACvD,mDAAmD;QACnD,MAAM,qBAAqB,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;QACxF,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,eAAe,CAAC;QAEpG,iBAAiB;QACjB,MAAM,cAAc,GAAG,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,aAAa,CAAC;QAEtF,WAAW;QACX,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,MAAM,YAAY,GAAG,UAAU,YAAY,GAAG,CAAC;YAC/C,MAAM,WAAW,GAAwB;gBACvC,OAAO,EAAE,YAAY,CAAC,aAAa;gBACnC,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,YAAY;gBACtB,IAAI,EAAE,EAAE;gBACR,SAAS;gBACT,KAAK;gBACL,QAAQ,EAAE,EAAE;gBACZ,QAAQ,EAAE,EAAE;gBACZ,OAAO,EAAE;oBACP,aAAa,EAAE,CAAC;oBAChB,aAAa,EAAE,CAAC;oBAChB,WAAW,EAAE,CAAC;iBACf;gBACD,KAAK,EAAE,YAAY;gBACnB,MAAM,EAAE,CAAC,YAAY,CAAC;aACvB,CAAC;YACF,aAAa,CAAC,WAAW,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;YAC/C,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QAED,oBAAoB;QACpB,MAAM,cAAc,GAA6B,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC1E,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ;YAClC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI;YAC1C,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI;SAClC,CAAC,CAAC,CAAC;QAEJ,oBAAoB;QACpB,MAAM,cAAc,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC/D,MAAM,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;QAEvE,aAAa;QACb,MAAM,cAAc,GAAG,cAAc,CAAC,WAAW,EAAE,CAAC;QACpD,MAAM,QAAQ,GAAG,2BAA2B,CAAC,cAAc,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;QAEjF,MAAM,eAAe,GAAyB;YAC5C,SAAS;YACT,KAAK;SACN,CAAC;QAEF,MAAM,eAAe,GAAwB,EAAE,CAAC;QAChD,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE,CAAC;YAC3C,MAAM,oBAAoB,GAAG,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACpE,MAAM,qBAAqB,GAAG,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;YAClE,eAAe,CAAC,IAAI,CAAC,MAAM,QAAQ,CAAC,qBAAqB,CACvD,YAAY,EACZ,oBAAoB,EACpB,qBAAqB,EACrB,SAAS,EACT,eAAe,CAChB,CAAC,CAAC;QACL,CAAC;QAED,UAAU;QACV,MAAM,QAAQ,GAAuB,mBAAmB,CACtD,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC7D,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ;YAC5B,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI;YACpC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM;YACxC,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CAAC,CAAC,CACL,CAAC;QAEF,MAAM,QAAQ,GAAuB,mBAAmB,CACtD,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC7D,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ;YAC5B,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI;YACpC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM;YACxC,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CAAC,CAAC,CACL,CAAC;QAEF,WAAW;QACX,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC;YAC1B,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YAC5B,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SAC7B,CAAC,CAAC,IAAI,CAAC;QAER,MAAM,MAAM,GAAwB;YAClC,OAAO,EAAE,YAAY,CAAC,aAAa;YACnC,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,YAAY;YACtB,IAAI,EAAE,cAAc;YACpB,cAAc;YACd,WAAW,EAAE,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS;YACnE,SAAS;YACT,KAAK;YACL,QAAQ;YACR,QAAQ;YACR,OAAO,EAAE;gBACP,aAAa,EAAE,QAAQ,CAAC,MAAM;gBAC9B,aAAa,EAAE,QAAQ,CAAC,MAAM;gBAC9B,WAAW;gBACX,eAAe,EAAE,cAAc,CAAC,MAAM;aACvC;SACF,CAAC;QAEF,aAAa,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QAC5C,aAAa,CAAC,WAAW,CAAC,aAAa,YAAY,EAAE,EAAE,MAAM,CAAC,CAAC;QAC/D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;YAAS,CAAC;QACT,WAAW,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,GAAW;IACpC,MAAM,UAAU,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;IACrC,IAAI,UAAU,KAAK,UAAU,IAAI,UAAU,KAAK,UAAU,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;QACpF,OAAO,UAAoC,CAAC;IAC9C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAkC;IAC7D,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,WAAW,GAAuB,EAAE,CAAC;IAE3C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,EAAE,IAAI,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;QAClG,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAClB,SAAS;QACX,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAkC;IAC7D,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,WAAW,GAAuB,EAAE,CAAC;IAE3C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,EAAE,IAAI,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;QAClG,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAClB,SAAS;QACX,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC"}
@@ -4,8 +4,20 @@
4
4
  */
5
5
  import type { Command } from 'commander';
6
6
  import type { CommandContext } from '../../cli/commands/types.js';
7
+ import type { IFileSystem } from '../../../infrastructure/storage/file-system.interface.js';
7
8
  /**
8
9
  * 設定 change-signature 命令
9
10
  */
10
11
  export declare function setupChangeSignatureCommand(program: Command, context: CommandContext): void;
12
+ export interface ResolveChangeSignaturePathsOptions {
13
+ resolvedFile: string;
14
+ pathOption?: string;
15
+ cwd: string;
16
+ fileSystem: IFileSystem;
17
+ }
18
+ export interface ResolvedChangeSignaturePaths {
19
+ projectRoot: string;
20
+ filePath: string;
21
+ }
22
+ export declare function resolveChangeSignaturePaths(options: ResolveChangeSignaturePathsOptions): Promise<ResolvedChangeSignaturePaths>;
11
23
  //# sourceMappingURL=change-signature.command.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"change-signature.command.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/cli/commands/change-signature.command.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAexE;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,CAe3F"}
1
+ {"version":3,"file":"change-signature.command.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/cli/commands/change-signature.command.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAezC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAExE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kDAAkD,CAAC;AAgBpF;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,CAiB3F;AAsJD,MAAM,WAAW,kCAAkC;IACjD,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,WAAW,CAAC;CACzB;AAED,MAAM,WAAW,4BAA4B;IAC3C,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,kCAAkC,GAC1C,OAAO,CAAC,4BAA4B,CAAC,CAiBvC"}