agent-ide 0.9.0 → 0.9.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 (322) hide show
  1. package/README.md +11 -11
  2. package/dist/core/call-hierarchy/call-hierarchy-analyzer.d.ts +1 -8
  3. package/dist/core/call-hierarchy/call-hierarchy-analyzer.d.ts.map +1 -1
  4. package/dist/core/call-hierarchy/call-hierarchy-analyzer.js +9 -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 +5 -7
  7. package/dist/core/change-signature/call-site-updater.d.ts.map +1 -1
  8. package/dist/core/change-signature/call-site-updater.js +7 -16
  9. package/dist/core/change-signature/call-site-updater.js.map +1 -1
  10. package/dist/core/change-signature/change-signature-service.d.ts +1 -8
  11. package/dist/core/change-signature/change-signature-service.d.ts.map +1 -1
  12. package/dist/core/change-signature/change-signature-service.js +36 -31
  13. package/dist/core/change-signature/change-signature-service.js.map +1 -1
  14. package/dist/core/change-signature/signature-parser.d.ts +1 -8
  15. package/dist/core/change-signature/signature-parser.d.ts.map +1 -1
  16. package/dist/core/change-signature/signature-parser.js +124 -167
  17. package/dist/core/change-signature/signature-parser.js.map +1 -1
  18. package/dist/core/cycles/cycle-detector.d.ts +1 -1
  19. package/dist/core/cycles/cycle-detector.d.ts.map +1 -1
  20. package/dist/core/cycles/cycle-detector.js +6 -7
  21. package/dist/core/cycles/cycle-detector.js.map +1 -1
  22. package/dist/core/deadcode/dead-code-detector.d.ts +2 -13
  23. package/dist/core/deadcode/dead-code-detector.d.ts.map +1 -1
  24. package/dist/core/deadcode/dead-code-detector.js +26 -40
  25. package/dist/core/deadcode/dead-code-detector.js.map +1 -1
  26. package/dist/core/deadcode/import-cleaner.js +1 -1
  27. package/dist/core/deadcode/import-cleaner.js.map +1 -1
  28. package/dist/core/deadcode/import-parser.d.ts +0 -4
  29. package/dist/core/deadcode/import-parser.d.ts.map +1 -1
  30. package/dist/core/deadcode/import-parser.js +4 -10
  31. package/dist/core/deadcode/import-parser.js.map +1 -1
  32. package/dist/core/deadcode/range-expander.d.ts +0 -4
  33. package/dist/core/deadcode/range-expander.d.ts.map +1 -1
  34. package/dist/core/deadcode/range-expander.js +14 -10
  35. package/dist/core/deadcode/range-expander.js.map +1 -1
  36. package/dist/core/find-references/index.d.ts +3 -3
  37. package/dist/core/find-references/index.d.ts.map +1 -1
  38. package/dist/core/find-references/index.js +2 -2
  39. package/dist/core/find-references/index.js.map +1 -1
  40. package/dist/core/foundations/dependency-graph/dependency-graph.d.ts.map +1 -0
  41. package/dist/core/{shared → foundations}/dependency-graph/dependency-graph.js +2 -1
  42. package/dist/core/foundations/dependency-graph/dependency-graph.js.map +1 -0
  43. package/dist/core/foundations/dependency-graph/index.d.ts.map +1 -0
  44. package/dist/core/foundations/dependency-graph/index.js.map +1 -0
  45. package/dist/core/foundations/dependency-graph/types.d.ts.map +1 -0
  46. package/dist/core/foundations/dependency-graph/types.js.map +1 -0
  47. package/dist/core/foundations/file-utils.d.ts +50 -0
  48. package/dist/core/foundations/file-utils.d.ts.map +1 -0
  49. package/dist/core/foundations/file-utils.js +75 -0
  50. package/dist/core/foundations/file-utils.js.map +1 -0
  51. package/dist/core/foundations/index.d.ts +13 -0
  52. package/dist/core/foundations/index.d.ts.map +1 -0
  53. package/dist/core/foundations/index.js +17 -0
  54. package/dist/core/foundations/index.js.map +1 -0
  55. package/dist/core/foundations/indexing/file-index.d.ts.map +1 -0
  56. package/dist/core/foundations/indexing/file-index.js.map +1 -0
  57. package/dist/core/{shared → foundations}/indexing/index-engine.d.ts +1 -0
  58. package/dist/core/foundations/indexing/index-engine.d.ts.map +1 -0
  59. package/dist/core/{shared → foundations}/indexing/index-engine.js +5 -9
  60. package/dist/core/foundations/indexing/index-engine.js.map +1 -0
  61. package/dist/core/foundations/indexing/index.d.ts.map +1 -0
  62. package/dist/core/foundations/indexing/index.js.map +1 -0
  63. package/dist/core/{shared → foundations}/indexing/symbol-index.d.ts +2 -0
  64. package/dist/core/foundations/indexing/symbol-index.d.ts.map +1 -0
  65. package/dist/core/{shared → foundations}/indexing/symbol-index.js +58 -23
  66. package/dist/core/foundations/indexing/symbol-index.js.map +1 -0
  67. package/dist/core/{shared → foundations}/indexing/types.d.ts +1 -1
  68. package/dist/core/foundations/indexing/types.d.ts.map +1 -0
  69. package/dist/core/{shared → foundations}/indexing/types.js +11 -1
  70. package/dist/core/foundations/indexing/types.js.map +1 -0
  71. package/dist/core/foundations/symbol-finder/call-site-parser.d.ts.map +1 -0
  72. package/dist/core/foundations/symbol-finder/call-site-parser.js.map +1 -0
  73. package/dist/core/foundations/symbol-finder/index.d.ts.map +1 -0
  74. package/dist/core/foundations/symbol-finder/index.js.map +1 -0
  75. package/dist/core/{shared → foundations}/symbol-finder/symbol-finder.d.ts +24 -10
  76. package/dist/core/foundations/symbol-finder/symbol-finder.d.ts.map +1 -0
  77. package/dist/core/{shared → foundations}/symbol-finder/symbol-finder.js +118 -148
  78. package/dist/core/foundations/symbol-finder/symbol-finder.js.map +1 -0
  79. package/dist/core/foundations/symbol-finder/text-matcher.d.ts.map +1 -0
  80. package/dist/core/foundations/symbol-finder/text-matcher.js.map +1 -0
  81. package/dist/core/foundations/symbol-finder/types.d.ts.map +1 -0
  82. package/dist/core/foundations/symbol-finder/types.js.map +1 -0
  83. package/dist/core/impact/impact-analyzer.d.ts +1 -1
  84. package/dist/core/impact/impact-analyzer.d.ts.map +1 -1
  85. package/dist/core/impact/impact-analyzer.js +13 -7
  86. package/dist/core/impact/impact-analyzer.js.map +1 -1
  87. package/dist/core/move/file-scanner.d.ts.map +1 -1
  88. package/dist/core/move/file-scanner.js +29 -6
  89. package/dist/core/move/file-scanner.js.map +1 -1
  90. package/dist/core/move/import-resolver.d.ts +1 -0
  91. package/dist/core/move/import-resolver.d.ts.map +1 -1
  92. package/dist/core/move/import-resolver.js +6 -4
  93. package/dist/core/move/import-resolver.js.map +1 -1
  94. package/dist/core/move-member/extractors/index.d.ts +7 -0
  95. package/dist/core/move-member/extractors/index.d.ts.map +1 -0
  96. package/dist/core/move-member/extractors/index.js +9 -0
  97. package/dist/core/move-member/extractors/index.js.map +1 -0
  98. package/dist/core/move-member/extractors/javascript-extractor.d.ts +29 -0
  99. package/dist/core/move-member/extractors/javascript-extractor.d.ts.map +1 -0
  100. package/dist/core/move-member/extractors/javascript-extractor.js +33 -0
  101. package/dist/core/move-member/extractors/javascript-extractor.js.map +1 -0
  102. package/dist/core/move-member/extractors/typescript-extractor.d.ts +40 -0
  103. package/dist/core/move-member/extractors/typescript-extractor.d.ts.map +1 -0
  104. package/dist/core/move-member/extractors/typescript-extractor.js +286 -0
  105. package/dist/core/move-member/extractors/typescript-extractor.js.map +1 -0
  106. package/dist/core/move-member/file-change-preparer.d.ts +6 -0
  107. package/dist/core/move-member/file-change-preparer.d.ts.map +1 -1
  108. package/dist/core/move-member/file-change-preparer.js +79 -57
  109. package/dist/core/move-member/file-change-preparer.js.map +1 -1
  110. package/dist/core/move-member/member-extractor.d.ts +12 -62
  111. package/dist/core/move-member/member-extractor.d.ts.map +1 -1
  112. package/dist/core/move-member/member-extractor.js +23 -391
  113. package/dist/core/move-member/member-extractor.js.map +1 -1
  114. package/dist/core/move-member/reference-updater.d.ts.map +1 -1
  115. package/dist/core/move-member/reference-updater.js +3 -1
  116. package/dist/core/move-member/reference-updater.js.map +1 -1
  117. package/dist/core/move-member/utils/range-finder.d.ts +40 -0
  118. package/dist/core/move-member/utils/range-finder.d.ts.map +1 -0
  119. package/dist/core/move-member/utils/range-finder.js +101 -0
  120. package/dist/core/move-member/utils/range-finder.js.map +1 -0
  121. package/dist/core/rename/reference-updater.d.ts +19 -4
  122. package/dist/core/rename/reference-updater.d.ts.map +1 -1
  123. package/dist/core/rename/reference-updater.js +56 -41
  124. package/dist/core/rename/reference-updater.js.map +1 -1
  125. package/dist/core/rename/types.d.ts.map +1 -1
  126. package/dist/core/snapshot/snapshot-generator.d.ts +0 -29
  127. package/dist/core/snapshot/snapshot-generator.d.ts.map +1 -1
  128. package/dist/core/snapshot/snapshot-generator.js +27 -188
  129. package/dist/core/snapshot/snapshot-generator.js.map +1 -1
  130. package/dist/core/snapshot/utils/bracket-balancer.d.ts +27 -0
  131. package/dist/core/snapshot/utils/bracket-balancer.d.ts.map +1 -0
  132. package/dist/core/snapshot/utils/bracket-balancer.js +70 -0
  133. package/dist/core/snapshot/utils/bracket-balancer.js.map +1 -0
  134. package/dist/core/snapshot/utils/factory-pattern-detector.d.ts +22 -0
  135. package/dist/core/snapshot/utils/factory-pattern-detector.d.ts.map +1 -0
  136. package/dist/core/snapshot/utils/factory-pattern-detector.js +70 -0
  137. package/dist/core/snapshot/utils/factory-pattern-detector.js.map +1 -0
  138. package/dist/core/snapshot/utils/index.d.ts +7 -0
  139. package/dist/core/snapshot/utils/index.d.ts.map +1 -0
  140. package/dist/core/snapshot/utils/index.js +7 -0
  141. package/dist/core/snapshot/utils/index.js.map +1 -0
  142. package/dist/core/snapshot/utils/symbol-formatter.d.ts +37 -0
  143. package/dist/core/snapshot/utils/symbol-formatter.d.ts.map +1 -0
  144. package/dist/core/snapshot/utils/symbol-formatter.js +89 -0
  145. package/dist/core/snapshot/utils/symbol-formatter.js.map +1 -0
  146. package/dist/infrastructure/cache/memory-cache.d.ts +1 -1
  147. package/dist/infrastructure/cache/memory-cache.d.ts.map +1 -1
  148. package/dist/infrastructure/cache/memory-cache.js +49 -5
  149. package/dist/infrastructure/cache/memory-cache.js.map +1 -1
  150. package/dist/infrastructure/cache/strategies.d.ts +1 -0
  151. package/dist/infrastructure/cache/strategies.d.ts.map +1 -1
  152. package/dist/infrastructure/cache/strategies.js +21 -21
  153. package/dist/infrastructure/cache/strategies.js.map +1 -1
  154. package/dist/infrastructure/changeset/change-applicator.d.ts.map +1 -1
  155. package/dist/infrastructure/changeset/change-applicator.js +12 -27
  156. package/dist/infrastructure/changeset/change-applicator.js.map +1 -1
  157. package/dist/infrastructure/changeset/changeset-builder.d.ts +4 -2
  158. package/dist/infrastructure/changeset/changeset-builder.d.ts.map +1 -1
  159. package/dist/infrastructure/changeset/changeset-builder.js +33 -21
  160. package/dist/infrastructure/changeset/changeset-builder.js.map +1 -1
  161. package/dist/infrastructure/changeset/changeset-converter.d.ts.map +1 -1
  162. package/dist/infrastructure/changeset/changeset-converter.js +11 -7
  163. package/dist/infrastructure/changeset/changeset-converter.js.map +1 -1
  164. package/dist/infrastructure/formatters/diff-generator.js +31 -42
  165. package/dist/infrastructure/formatters/diff-generator.js.map +1 -1
  166. package/dist/infrastructure/formatters/query-formatter.d.ts +4 -62
  167. package/dist/infrastructure/formatters/query-formatter.d.ts.map +1 -1
  168. package/dist/infrastructure/formatters/query-formatter.js +46 -435
  169. package/dist/infrastructure/formatters/query-formatter.js.map +1 -1
  170. package/dist/infrastructure/formatters/strategies/analyze-formatter.d.ts +24 -0
  171. package/dist/infrastructure/formatters/strategies/analyze-formatter.d.ts.map +1 -0
  172. package/dist/infrastructure/formatters/strategies/analyze-formatter.js +107 -0
  173. package/dist/infrastructure/formatters/strategies/analyze-formatter.js.map +1 -0
  174. package/dist/infrastructure/formatters/strategies/base-formatter.d.ts +67 -0
  175. package/dist/infrastructure/formatters/strategies/base-formatter.d.ts.map +1 -0
  176. package/dist/infrastructure/formatters/strategies/base-formatter.js +75 -0
  177. package/dist/infrastructure/formatters/strategies/base-formatter.js.map +1 -0
  178. package/dist/infrastructure/formatters/strategies/call-hierarchy-formatter.d.ts +19 -0
  179. package/dist/infrastructure/formatters/strategies/call-hierarchy-formatter.d.ts.map +1 -0
  180. package/dist/infrastructure/formatters/strategies/call-hierarchy-formatter.js +77 -0
  181. package/dist/infrastructure/formatters/strategies/call-hierarchy-formatter.js.map +1 -0
  182. package/dist/infrastructure/formatters/strategies/deps-formatter.d.ts +15 -0
  183. package/dist/infrastructure/formatters/strategies/deps-formatter.d.ts.map +1 -0
  184. package/dist/infrastructure/formatters/strategies/deps-formatter.js +47 -0
  185. package/dist/infrastructure/formatters/strategies/deps-formatter.js.map +1 -0
  186. package/dist/infrastructure/formatters/strategies/find-references-formatter.d.ts +23 -0
  187. package/dist/infrastructure/formatters/strategies/find-references-formatter.d.ts.map +1 -0
  188. package/dist/infrastructure/formatters/strategies/find-references-formatter.js +71 -0
  189. package/dist/infrastructure/formatters/strategies/find-references-formatter.js.map +1 -0
  190. package/dist/infrastructure/formatters/strategies/index.d.ts +11 -0
  191. package/dist/infrastructure/formatters/strategies/index.d.ts.map +1 -0
  192. package/dist/infrastructure/formatters/strategies/index.js +11 -0
  193. package/dist/infrastructure/formatters/strategies/index.js.map +1 -0
  194. package/dist/infrastructure/formatters/strategies/search-formatter.d.ts +15 -0
  195. package/dist/infrastructure/formatters/strategies/search-formatter.d.ts.map +1 -0
  196. package/dist/infrastructure/formatters/strategies/search-formatter.js +32 -0
  197. package/dist/infrastructure/formatters/strategies/search-formatter.js.map +1 -0
  198. package/dist/infrastructure/formatters/strategies/snapshot-formatter.d.ts +20 -0
  199. package/dist/infrastructure/formatters/strategies/snapshot-formatter.d.ts.map +1 -0
  200. package/dist/infrastructure/formatters/strategies/snapshot-formatter.js +101 -0
  201. package/dist/infrastructure/formatters/strategies/snapshot-formatter.js.map +1 -0
  202. package/dist/infrastructure/parser/registry.d.ts +6 -0
  203. package/dist/infrastructure/parser/registry.d.ts.map +1 -1
  204. package/dist/infrastructure/parser/registry.js +25 -8
  205. package/dist/infrastructure/parser/registry.js.map +1 -1
  206. package/dist/infrastructure/storage/file-system.d.ts.map +1 -1
  207. package/dist/infrastructure/storage/file-system.js +11 -3
  208. package/dist/infrastructure/storage/file-system.js.map +1 -1
  209. package/dist/interfaces/cli/commands/call-hierarchy.command.js +1 -1
  210. package/dist/interfaces/cli/commands/call-hierarchy.command.js.map +1 -1
  211. package/dist/interfaces/cli/commands/change-signature.command.js +3 -2
  212. package/dist/interfaces/cli/commands/change-signature.command.js.map +1 -1
  213. package/dist/interfaces/cli/commands/deadcode.command.js +1 -1
  214. package/dist/interfaces/cli/commands/deadcode.command.js.map +1 -1
  215. package/dist/interfaces/cli/commands/find-references.command.js +2 -2
  216. package/dist/interfaces/cli/commands/find-references.command.js.map +1 -1
  217. package/dist/interfaces/cli/commands/rename.command.js +2 -2
  218. package/dist/interfaces/cli/commands/rename.command.js.map +1 -1
  219. package/dist/interfaces/cli/preview-output-handler.d.ts.map +1 -1
  220. package/dist/interfaces/cli/preview-output-handler.js.map +1 -1
  221. package/dist/interfaces/cli/unified-output-handler.d.ts.map +1 -1
  222. package/dist/interfaces/cli/unified-output-handler.js.map +1 -1
  223. package/dist/plugins/javascript/declaration-analyzer.d.ts +16 -0
  224. package/dist/plugins/javascript/declaration-analyzer.d.ts.map +1 -1
  225. package/dist/plugins/javascript/declaration-analyzer.js +152 -113
  226. package/dist/plugins/javascript/declaration-analyzer.js.map +1 -1
  227. package/dist/plugins/javascript/parser.d.ts +6 -2
  228. package/dist/plugins/javascript/parser.d.ts.map +1 -1
  229. package/dist/plugins/javascript/parser.js +16 -21
  230. package/dist/plugins/javascript/parser.js.map +1 -1
  231. package/dist/plugins/javascript/reference-finder.d.ts +14 -2
  232. package/dist/plugins/javascript/reference-finder.d.ts.map +1 -1
  233. package/dist/plugins/javascript/reference-finder.js +57 -26
  234. package/dist/plugins/javascript/reference-finder.js.map +1 -1
  235. package/dist/plugins/javascript/types.d.ts.map +1 -1
  236. package/dist/plugins/javascript/types.js.map +1 -1
  237. package/dist/plugins/shared/index.d.ts +1 -0
  238. package/dist/plugins/shared/index.d.ts.map +1 -1
  239. package/dist/plugins/shared/index.js +2 -0
  240. package/dist/plugins/shared/index.js.map +1 -1
  241. package/dist/plugins/shared/utils/async.d.ts.map +1 -1
  242. package/dist/plugins/shared/utils/async.js.map +1 -1
  243. package/dist/plugins/shared/utils/object.js +5 -5
  244. package/dist/plugins/shared/utils/object.js.map +1 -1
  245. package/dist/plugins/shared/validators.d.ts +15 -0
  246. package/dist/plugins/shared/validators.d.ts.map +1 -0
  247. package/dist/plugins/shared/validators.js +29 -0
  248. package/dist/plugins/shared/validators.js.map +1 -0
  249. package/dist/plugins/typescript/declaration-analyzer.d.ts +12 -0
  250. package/dist/plugins/typescript/declaration-analyzer.d.ts.map +1 -1
  251. package/dist/plugins/typescript/declaration-analyzer.js +29 -4
  252. package/dist/plugins/typescript/declaration-analyzer.js.map +1 -1
  253. package/dist/plugins/typescript/dependency-analyzer.d.ts +5 -0
  254. package/dist/plugins/typescript/dependency-analyzer.d.ts.map +1 -1
  255. package/dist/plugins/typescript/dependency-analyzer.js +10 -5
  256. package/dist/plugins/typescript/dependency-analyzer.js.map +1 -1
  257. package/dist/plugins/typescript/language-service.d.ts +9 -0
  258. package/dist/plugins/typescript/language-service.d.ts.map +1 -1
  259. package/dist/plugins/typescript/language-service.js +16 -2
  260. package/dist/plugins/typescript/language-service.js.map +1 -1
  261. package/dist/plugins/typescript/parser.d.ts +0 -2
  262. package/dist/plugins/typescript/parser.d.ts.map +1 -1
  263. package/dist/plugins/typescript/parser.js +3 -19
  264. package/dist/plugins/typescript/parser.js.map +1 -1
  265. package/dist/plugins/typescript/scope-analyzer.d.ts +7 -2
  266. package/dist/plugins/typescript/scope-analyzer.d.ts.map +1 -1
  267. package/dist/plugins/typescript/scope-analyzer.js +26 -16
  268. package/dist/plugins/typescript/scope-analyzer.js.map +1 -1
  269. package/dist/plugins/typescript/symbol-extractor.d.ts +4 -5
  270. package/dist/plugins/typescript/symbol-extractor.d.ts.map +1 -1
  271. package/dist/plugins/typescript/symbol-extractor.js +19 -29
  272. package/dist/plugins/typescript/symbol-extractor.js.map +1 -1
  273. package/dist/plugins/typescript/types.d.ts.map +1 -1
  274. package/dist/plugins/typescript/types.js.map +1 -1
  275. package/package.json +1 -1
  276. package/dist/core/shared/dependency-graph/dependency-graph.d.ts.map +0 -1
  277. package/dist/core/shared/dependency-graph/dependency-graph.js.map +0 -1
  278. package/dist/core/shared/dependency-graph/index.d.ts.map +0 -1
  279. package/dist/core/shared/dependency-graph/index.js.map +0 -1
  280. package/dist/core/shared/dependency-graph/types.d.ts.map +0 -1
  281. package/dist/core/shared/dependency-graph/types.js.map +0 -1
  282. package/dist/core/shared/index.d.ts +0 -8
  283. package/dist/core/shared/index.d.ts.map +0 -1
  284. package/dist/core/shared/index.js +0 -11
  285. package/dist/core/shared/index.js.map +0 -1
  286. package/dist/core/shared/indexing/file-index.d.ts.map +0 -1
  287. package/dist/core/shared/indexing/file-index.js.map +0 -1
  288. package/dist/core/shared/indexing/index-engine.d.ts.map +0 -1
  289. package/dist/core/shared/indexing/index-engine.js.map +0 -1
  290. package/dist/core/shared/indexing/index.d.ts.map +0 -1
  291. package/dist/core/shared/indexing/index.js.map +0 -1
  292. package/dist/core/shared/indexing/symbol-index.d.ts.map +0 -1
  293. package/dist/core/shared/indexing/symbol-index.js.map +0 -1
  294. package/dist/core/shared/indexing/types.d.ts.map +0 -1
  295. package/dist/core/shared/indexing/types.js.map +0 -1
  296. package/dist/core/shared/symbol-finder/call-site-parser.d.ts.map +0 -1
  297. package/dist/core/shared/symbol-finder/call-site-parser.js.map +0 -1
  298. package/dist/core/shared/symbol-finder/index.d.ts.map +0 -1
  299. package/dist/core/shared/symbol-finder/index.js.map +0 -1
  300. package/dist/core/shared/symbol-finder/symbol-finder.d.ts.map +0 -1
  301. package/dist/core/shared/symbol-finder/symbol-finder.js.map +0 -1
  302. package/dist/core/shared/symbol-finder/text-matcher.d.ts.map +0 -1
  303. package/dist/core/shared/symbol-finder/text-matcher.js.map +0 -1
  304. package/dist/core/shared/symbol-finder/types.d.ts.map +0 -1
  305. package/dist/core/shared/symbol-finder/types.js.map +0 -1
  306. /package/dist/core/{shared → foundations}/dependency-graph/dependency-graph.d.ts +0 -0
  307. /package/dist/core/{shared → foundations}/dependency-graph/index.d.ts +0 -0
  308. /package/dist/core/{shared → foundations}/dependency-graph/index.js +0 -0
  309. /package/dist/core/{shared → foundations}/dependency-graph/types.d.ts +0 -0
  310. /package/dist/core/{shared → foundations}/dependency-graph/types.js +0 -0
  311. /package/dist/core/{shared → foundations}/indexing/file-index.d.ts +0 -0
  312. /package/dist/core/{shared → foundations}/indexing/file-index.js +0 -0
  313. /package/dist/core/{shared → foundations}/indexing/index.d.ts +0 -0
  314. /package/dist/core/{shared → foundations}/indexing/index.js +0 -0
  315. /package/dist/core/{shared → foundations}/symbol-finder/call-site-parser.d.ts +0 -0
  316. /package/dist/core/{shared → foundations}/symbol-finder/call-site-parser.js +0 -0
  317. /package/dist/core/{shared → foundations}/symbol-finder/index.d.ts +0 -0
  318. /package/dist/core/{shared → foundations}/symbol-finder/index.js +0 -0
  319. /package/dist/core/{shared → foundations}/symbol-finder/text-matcher.d.ts +0 -0
  320. /package/dist/core/{shared → foundations}/symbol-finder/text-matcher.js +0 -0
  321. /package/dist/core/{shared → foundations}/symbol-finder/types.d.ts +0 -0
  322. /package/dist/core/{shared → foundations}/symbol-finder/types.js +0 -0
@@ -18,10 +18,12 @@ import { FileOperationType, ChangesetCommand } from './types.js';
18
18
  * ```
19
19
  */
20
20
  export class ChangesetBuilder {
21
- /** 文字變更列表 */
22
- textChanges = [];
21
+ /** 文字變更 Map(filePath → FileTextChange),加速查詢 */
22
+ textChangesMap = new Map();
23
23
  /** 檔案操作列表 */
24
24
  fileOperations = [];
25
+ /** 已處理的檔案路徑,用於 O(1) 查詢重複操作 */
26
+ processedPaths = new Set();
25
27
  /** 變更描述 */
26
28
  description = '';
27
29
  /** 命令類型 */
@@ -58,23 +60,24 @@ export class ChangesetBuilder {
58
60
  * @returns this - 支援鏈式調用
59
61
  */
60
62
  addTextChange(filePath, edits, operationType) {
61
- const existing = this.textChanges.find(tc => tc.filePath === filePath);
63
+ const existing = this.textChangesMap.get(filePath);
62
64
  if (existing) {
63
65
  // 合併到現有的變更,去除重複的 edits(根據 range 比對)
64
- const existingIndex = this.textChanges.indexOf(existing);
65
- const deduplicatedEdits = edits.filter(newEdit => !existing.edits.some(existingEdit => existingEdit.range.start.line === newEdit.range.start.line
66
- && existingEdit.range.start.column === newEdit.range.start.column
67
- && existingEdit.range.end.line === newEdit.range.end.line
68
- && existingEdit.range.end.column === newEdit.range.end.column));
69
- this.textChanges[existingIndex] = {
66
+ // 使用 Set 基於 range hash 快速查詢 - O(n) 取代 O(n²)
67
+ const existingRanges = new Set(existing.edits.map(edit => `${edit.range.start.line}:${edit.range.start.column}-${edit.range.end.line}:${edit.range.end.column}`));
68
+ const deduplicatedEdits = edits.filter(newEdit => {
69
+ const rangeKey = `${newEdit.range.start.line}:${newEdit.range.start.column}-${newEdit.range.end.line}:${newEdit.range.end.column}`;
70
+ return !existingRanges.has(rangeKey);
71
+ });
72
+ this.textChangesMap.set(filePath, {
70
73
  ...existing,
71
74
  edits: [...existing.edits, ...deduplicatedEdits],
72
75
  operationType: operationType ?? existing.operationType
73
- };
76
+ });
74
77
  }
75
78
  else {
76
79
  // 新增變更
77
- this.textChanges.push({
80
+ this.textChangesMap.set(filePath, {
78
81
  filePath,
79
82
  edits,
80
83
  operationType
@@ -89,9 +92,11 @@ export class ChangesetBuilder {
89
92
  * @returns this - 支援鏈式調用
90
93
  */
91
94
  addFileCreate(filePath, content) {
92
- const existing = this.fileOperations.find(op => op.sourcePath === filePath);
93
- if (existing) {
94
- this.warnings.push(`重複的檔案操作: 已存在對 ${filePath} 的 ${existing.type} 操作`);
95
+ if (this.processedPaths.has(filePath)) {
96
+ const existing = this.fileOperations.find(op => op.sourcePath === filePath);
97
+ if (existing) {
98
+ this.warnings.push(`重複的檔案操作: 已存在對 ${filePath} 的 ${existing.type} 操作`);
99
+ }
95
100
  }
96
101
  this.fileOperations.push({
97
102
  type: FileOperationType.Create,
@@ -99,6 +104,7 @@ export class ChangesetBuilder {
99
104
  targetPath: filePath,
100
105
  content
101
106
  });
107
+ this.processedPaths.add(filePath);
102
108
  return this;
103
109
  }
104
110
  /**
@@ -107,14 +113,17 @@ export class ChangesetBuilder {
107
113
  * @returns this - 支援鏈式調用
108
114
  */
109
115
  addFileDelete(filePath) {
110
- const existing = this.fileOperations.find(op => op.sourcePath === filePath);
111
- if (existing) {
112
- this.warnings.push(`重複的檔案操作: 已存在對 ${filePath} 的 ${existing.type} 操作`);
116
+ if (this.processedPaths.has(filePath)) {
117
+ const existing = this.fileOperations.find(op => op.sourcePath === filePath);
118
+ if (existing) {
119
+ this.warnings.push(`重複的檔案操作: 已存在對 ${filePath} 的 ${existing.type} 操作`);
120
+ }
113
121
  }
114
122
  this.fileOperations.push({
115
123
  type: FileOperationType.Delete,
116
124
  sourcePath: filePath
117
125
  });
126
+ this.processedPaths.add(filePath);
118
127
  return this;
119
128
  }
120
129
  /**
@@ -124,15 +133,18 @@ export class ChangesetBuilder {
124
133
  * @returns this - 支援鏈式調用
125
134
  */
126
135
  addFileMove(sourcePath, targetPath) {
127
- const existing = this.fileOperations.find(op => op.sourcePath === sourcePath);
128
- if (existing) {
129
- this.warnings.push(`重複的檔案操作: 已存在對 ${sourcePath} 的 ${existing.type} 操作`);
136
+ if (this.processedPaths.has(sourcePath)) {
137
+ const existing = this.fileOperations.find(op => op.sourcePath === sourcePath);
138
+ if (existing) {
139
+ this.warnings.push(`重複的檔案操作: 已存在對 ${sourcePath} 的 ${existing.type} 操作`);
140
+ }
130
141
  }
131
142
  this.fileOperations.push({
132
143
  type: FileOperationType.Move,
133
144
  sourcePath,
134
145
  targetPath
135
146
  });
147
+ this.processedPaths.add(sourcePath);
136
148
  return this;
137
149
  }
138
150
  /**
@@ -159,7 +171,7 @@ export class ChangesetBuilder {
159
171
  */
160
172
  build() {
161
173
  return {
162
- textChanges: this.textChanges,
174
+ textChanges: Array.from(this.textChangesMap.values()),
163
175
  fileOperations: this.fileOperations,
164
176
  description: this.description,
165
177
  command: this.command,
@@ -1 +1 @@
1
- {"version":3,"file":"changeset-builder.js","sourceRoot":"","sources":["../../../src/infrastructure/changeset/changeset-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"changeset-builder.js","sourceRoot":"","sources":["../../../src/infrastructure/changeset/changeset-builder.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"changeset-converter.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/changeset/changeset-converter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAuC,KAAK,SAAS,EAA0D,MAAM,YAAY,CAAC;AACzI,OAAO,KAAK,EACV,YAAY,EAIb,MAAM,qCAAqC,CAAC;AAE7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kDAAkD,CAAC;AAkZpF;;;;;GAKG;AACH,wBAAsB,8BAA8B,CAClD,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,WAAW,GACtB,OAAO,CAAC,YAAY,CAAC,CA+BvB"}
1
+ {"version":3,"file":"changeset-converter.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/changeset/changeset-converter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAuC,KAAK,SAAS,EAA0D,MAAM,YAAY,CAAC;AACzI,OAAO,KAAK,EACV,YAAY,EAIb,MAAM,qCAAqC,CAAC;AAE7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kDAAkD,CAAC;AAkZpF;;;;;GAKG;AACH,wBAAsB,8BAA8B,CAClD,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,WAAW,GACtB,OAAO,CAAC,YAAY,CAAC,CA0CvB"}
@@ -340,18 +340,22 @@ function convertWarningsToConflicts(warnings) {
340
340
  * @returns PreviewInput 物件
341
341
  */
342
342
  export async function convertChangesetToPreviewInput(changeset, fileSystem) {
343
+ // 批次處理文字變更
344
+ const textChangePromises = changeset.textChanges.map(tc => convertFileTextChange(tc, fileSystem));
345
+ // 批次處理檔案操作
346
+ const fileOpPromises = changeset.fileOperations.map(op => convertFileOperation(op, fileSystem));
347
+ // 並行執行所有 I/O
348
+ const [textResults, opResults] = await Promise.all([
349
+ Promise.all(textChangePromises),
350
+ Promise.all(fileOpPromises)
351
+ ]);
343
352
  const fileChanges = [];
344
- // 轉換文字變更
345
- for (const textChange of changeset.textChanges) {
346
- const converted = await convertFileTextChange(textChange, fileSystem);
347
- // 只加入有實際變更的檔案
353
+ for (const converted of textResults) {
348
354
  if (converted.changes.length > 0) {
349
355
  fileChanges.push(converted);
350
356
  }
351
357
  }
352
- // 轉換檔案操作
353
- for (const operation of changeset.fileOperations) {
354
- const converted = await convertFileOperation(operation, fileSystem);
358
+ for (const converted of opResults) {
355
359
  if (converted !== null && converted.changes.length > 0) {
356
360
  fileChanges.push(converted);
357
361
  }
@@ -1 +1 @@
1
- {"version":3,"file":"changeset-converter.js","sourceRoot":"","sources":["../../../src/infrastructure/changeset/changeset-converter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"changeset-converter.js","sourceRoot":"","sources":["../../../src/infrastructure/changeset/changeset-converter.ts"],"names":[],"mappings":"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"}
@@ -9,8 +9,8 @@ import { ChangeLineType, PreviewCommand } from './types.js';
9
9
  */
10
10
  export function generatePreviewResult(input, contextLines = 3) {
11
11
  const files = input.fileChanges.map(fc => generateFileChange(fc, contextLines));
12
- const baseSummary = calculateSummary(files);
13
- const fileSummaries = generateFileSummaries(files, getDefaultChangeType(input.command));
12
+ // 單次遍歷同時計算總統計和檔案級統計
13
+ const { baseSummary, fileSummaries } = calculateSummaryAndFileSummaries(files, getDefaultChangeType(input.command));
14
14
  // 擴展 summary 以包含 rename 專用欄位
15
15
  const conflictCount = input.conflicts?.length ?? 0;
16
16
  const summary = {
@@ -222,58 +222,47 @@ function formatHunkHeader(oldStart, oldCount, newStart, newCount) {
222
222
  return `@@ -${oldPart} +${newPart} @@`;
223
223
  }
224
224
  /**
225
- * 計算變更統計摘要
225
+ * 單次遍歷同時計算總統計和檔案級統計
226
226
  */
227
- function calculateSummary(files) {
227
+ function calculateSummaryAndFileSummaries(files, defaultChangeType) {
228
228
  let totalChanges = 0;
229
- let additions = 0;
230
- let deletions = 0;
231
- files.forEach(file => {
232
- file.hunks.forEach(hunk => {
233
- hunk.lines.forEach(line => {
229
+ let totalAdditions = 0;
230
+ let totalDeletions = 0;
231
+ const fileSummaries = [];
232
+ for (const file of files) {
233
+ let fileAdditions = 0;
234
+ let fileDeletions = 0;
235
+ for (const hunk of file.hunks) {
236
+ for (const line of hunk.lines) {
234
237
  if (line.type === ChangeLineType.Add) {
235
- additions++;
238
+ fileAdditions++;
239
+ totalAdditions++;
236
240
  totalChanges++;
237
241
  }
238
242
  else if (line.type === ChangeLineType.Delete) {
239
- deletions++;
243
+ fileDeletions++;
244
+ totalDeletions++;
240
245
  totalChanges++;
241
246
  }
242
- });
247
+ }
248
+ }
249
+ fileSummaries.push({
250
+ filePath: file.filePath,
251
+ changeType: defaultChangeType,
252
+ additions: fileAdditions,
253
+ deletions: fileDeletions
243
254
  });
244
- });
255
+ }
245
256
  return {
246
- totalFiles: files.length,
247
- totalChanges,
248
- additions,
249
- deletions
257
+ baseSummary: {
258
+ totalFiles: files.length,
259
+ totalChanges,
260
+ additions: totalAdditions,
261
+ deletions: totalDeletions
262
+ },
263
+ fileSummaries
250
264
  };
251
265
  }
252
- /**
253
- * 從 FileChange 生成檔案變更摘要列表
254
- */
255
- function generateFileSummaries(files, defaultChangeType) {
256
- return files.map(file => {
257
- let additions = 0;
258
- let deletions = 0;
259
- file.hunks.forEach(hunk => {
260
- hunk.lines.forEach(line => {
261
- if (line.type === ChangeLineType.Add) {
262
- additions++;
263
- }
264
- if (line.type === ChangeLineType.Delete) {
265
- deletions++;
266
- }
267
- });
268
- });
269
- return {
270
- filePath: file.filePath,
271
- changeType: defaultChangeType,
272
- additions,
273
- deletions
274
- };
275
- });
276
- }
277
266
  /**
278
267
  * 根據命令類型取得預設變更描述
279
268
  */
@@ -1 +1 @@
1
- {"version":3,"file":"diff-generator.js","sourceRoot":"","sources":["../../../src/infrastructure/formatters/diff-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diff-generator.js","sourceRoot":"","sources":["../../../src/infrastructure/formatters/diff-generator.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * 唯讀命令格式化器
3
- * 提供 json 和 summary 兩種輸出格式
3
+ * 使用策略模式路由到對應的格式化策略
4
4
  */
5
5
  import { type QueryResult } from './query-types.js';
6
6
  /** QueryFormatter 選項 */
@@ -18,6 +18,7 @@ export declare enum QueryFormat {
18
18
  */
19
19
  export declare class QueryFormatter {
20
20
  private readonly color;
21
+ private readonly strategies;
21
22
  constructor(options?: Partial<QueryFormatterOptions>);
22
23
  /**
23
24
  * 格式化結果
@@ -32,72 +33,13 @@ export declare class QueryFormatter {
32
33
  */
33
34
  toSummary(result: QueryResult): string;
34
35
  /**
35
- * 格式化 Search 摘要
36
+ * 取得策略(延遲初始化)
36
37
  */
37
- private formatSearchSummary;
38
- /**
39
- * 格式化 Deps 摘要
40
- */
41
- private formatDepsSummary;
42
- /**
43
- * 將絕對路徑轉換為相對路徑
44
- * @param filePath 檔案路徑
45
- * @param basePath 專案根目錄
46
- * @returns 相對路徑(若無 basePath 則返回原路徑)
47
- */
48
- private toRelativePath;
49
- /**
50
- * 格式化 Analyze 摘要
51
- */
52
- private formatAnalyzeSummary;
53
- /**
54
- * 格式化 DeadCode 摘要
55
- */
56
- private formatDeadCodeSummary;
57
- /**
58
- * 取得類型標籤
59
- */
60
- private getTypeLabel;
61
- /**
62
- * 取得 Dead Code 圖示
63
- */
64
- private getDeadCodeIcon;
65
- /**
66
- * 格式化 Snapshot 摘要
67
- */
68
- private formatSnapshotSummary;
69
- /**
70
- * 格式化增量快照摘要
71
- */
72
- private formatIncrementalSnapshotSummary;
73
- /**
74
- * 格式化 FindReferences 摘要
75
- */
76
- private formatFindReferencesSummary;
77
- /**
78
- * 按檔案分組引用
79
- */
80
- private groupReferencesByFile;
81
- /**
82
- * 取得引用類型圖示
83
- */
84
- private getReferenceTypeIcon;
85
- /**
86
- * 格式化 CallHierarchy 摘要
87
- */
88
- private formatCallHierarchySummary;
89
- /**
90
- * 按檔案分組呼叫項目
91
- */
92
- private groupCallsByFile;
38
+ private getStrategy;
93
39
  /**
94
40
  * 格式化預設摘要(fallback)
95
41
  */
96
42
  private formatDefaultSummary;
97
- /**
98
- * 套用顏色(如果啟用)
99
- */
100
- private colorize;
101
43
  }
102
44
  /**
103
45
  * 建立 QueryFormatter 的工廠函數
@@ -1 +1 @@
1
- {"version":3,"file":"query-formatter.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/formatters/query-formatter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAIL,KAAK,WAAW,EAcjB,MAAM,kBAAkB,CAAC;AAqB1B,wBAAwB;AACxB,MAAM,WAAW,qBAAqB;IACpC,eAAe;IACf,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,WAAW;AACX,oBAAY,WAAW;IACrB,IAAI,SAAS;IACb,OAAO,YAAY;CACpB;AAED;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAU;gBAEpB,OAAO,GAAE,OAAO,CAAC,qBAAqB,CAAM;IAIxD;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,GAAG,MAAM;IAO9D;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM;IAInC;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM;IAoBtC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAyB3B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAqCzB;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAWtB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA+B5B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAyD7B;;OAEG;IACH,OAAO,CAAC,YAAY;IAepB;;OAEG;IACH,OAAO,CAAC,eAAe;IAWvB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA+B7B;;OAEG;IACH,OAAO,CAAC,gCAAgC;IA+DxC;;OAEG;IACH,OAAO,CAAC,2BAA2B;IAyCnC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAU7B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAU5B;;OAEG;IACH,OAAO,CAAC,0BAA0B;IA0DlC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAUxB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAsB5B;;OAEG;IACH,OAAO,CAAC,QAAQ;CAIjB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,OAAO,CAAC,qBAAqB,CAAM,GAAG,cAAc,CAKjG"}
1
+ {"version":3,"file":"query-formatter.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/formatters/query-formatter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAEL,KAAK,WAAW,EAOjB,MAAM,kBAAkB,CAAC;AAW1B,wBAAwB;AACxB,MAAM,WAAW,qBAAqB;IACpC,eAAe;IACf,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,WAAW;AACX,oBAAY,WAAW;IACrB,IAAI,SAAS;IACb,OAAO,YAAY;CACpB;AAED;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAU;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoC;gBAEnD,OAAO,GAAE,OAAO,CAAC,qBAAqB,CAAM;IAMxD;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,GAAG,MAAM;IAO9D;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM;IAInC;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM;IAsBtC;;OAEG;IACH,OAAO,CAAC,WAAW;IAsCnB;;OAEG;IACH,OAAO,CAAC,oBAAoB;CAqB7B;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,OAAO,CAAC,qBAAqB,CAAM,GAAG,cAAc,CAKjG"}