agent-ide 0.1.10 → 0.3.3

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 (639) hide show
  1. package/README.md +28 -278
  2. package/dist/application/events/event-bus.d.ts.map +1 -1
  3. package/dist/application/events/event-bus.js.map +1 -1
  4. package/dist/application/index.d.ts +3 -1
  5. package/dist/application/index.d.ts.map +1 -1
  6. package/dist/application/index.js +10 -5
  7. package/dist/application/index.js.map +1 -1
  8. package/dist/application/services/cache-coordinator.service.d.ts.map +1 -1
  9. package/dist/application/services/cache-coordinator.service.js.map +1 -1
  10. package/dist/application/services/error-handler.service.d.ts.map +1 -1
  11. package/dist/application/services/error-handler.service.js.map +1 -1
  12. package/dist/application/services/module-coordinator.service.d.ts +13 -3
  13. package/dist/application/services/module-coordinator.service.d.ts.map +1 -1
  14. package/dist/application/services/module-coordinator.service.js +65 -25
  15. package/dist/application/services/module-coordinator.service.js.map +1 -1
  16. package/dist/application/services/session-manager.service.d.ts.map +1 -1
  17. package/dist/application/services/session-manager.service.js.map +1 -1
  18. package/dist/application/services/workflow-engine.service.d.ts +1 -1
  19. package/dist/application/services/workflow-engine.service.d.ts.map +1 -1
  20. package/dist/application/services/workflow-engine.service.js.map +1 -1
  21. package/dist/application/state/state-manager.d.ts +3 -3
  22. package/dist/application/state/state-manager.d.ts.map +1 -1
  23. package/dist/application/state/state-manager.js +3 -3
  24. package/dist/application/state/state-manager.js.map +1 -1
  25. package/dist/application/types.d.ts.map +1 -1
  26. package/dist/application/workflows/analysis-workflow.d.ts +1 -1
  27. package/dist/application/workflows/analysis-workflow.d.ts.map +1 -1
  28. package/dist/application/workflows/analysis-workflow.js +1 -1
  29. package/dist/application/workflows/analysis-workflow.js.map +1 -1
  30. package/dist/application/workflows/base-workflow.d.ts.map +1 -1
  31. package/dist/application/workflows/base-workflow.js.map +1 -1
  32. package/dist/application/workflows/index.d.ts +2 -2
  33. package/dist/application/workflows/index.d.ts.map +1 -1
  34. package/dist/application/workflows/index.js +2 -2
  35. package/dist/application/workflows/index.js.map +1 -1
  36. package/dist/application/workflows/refactor-workflow.d.ts +1 -1
  37. package/dist/application/workflows/refactor-workflow.d.ts.map +1 -1
  38. package/dist/application/workflows/refactor-workflow.js +1 -1
  39. package/dist/application/workflows/refactor-workflow.js.map +1 -1
  40. package/dist/core/dependency/cycle-detector.d.ts +1 -1
  41. package/dist/core/dependency/cycle-detector.d.ts.map +1 -1
  42. package/dist/core/dependency/cycle-detector.js +1 -1
  43. package/dist/core/dependency/cycle-detector.js.map +1 -1
  44. package/dist/core/dependency/dependency-analyzer.d.ts +3 -1
  45. package/dist/core/dependency/dependency-analyzer.d.ts.map +1 -1
  46. package/dist/core/dependency/dependency-analyzer.js +35 -24
  47. package/dist/core/dependency/dependency-analyzer.js.map +1 -1
  48. package/dist/core/dependency/types.d.ts.map +1 -1
  49. package/dist/core/indexing/file-index.d.ts.map +1 -1
  50. package/dist/core/indexing/file-index.js +1 -1
  51. package/dist/core/indexing/file-index.js.map +1 -1
  52. package/dist/core/indexing/file-watcher.d.ts +4 -2
  53. package/dist/core/indexing/file-watcher.d.ts.map +1 -1
  54. package/dist/core/indexing/file-watcher.js +10 -6
  55. package/dist/core/indexing/file-watcher.js.map +1 -1
  56. package/dist/core/indexing/index-engine.d.ts +7 -1
  57. package/dist/core/indexing/index-engine.d.ts.map +1 -1
  58. package/dist/core/indexing/index-engine.js +49 -16
  59. package/dist/core/indexing/index-engine.js.map +1 -1
  60. package/dist/core/indexing/symbol-index.d.ts +4 -0
  61. package/dist/core/indexing/symbol-index.d.ts.map +1 -1
  62. package/dist/core/indexing/symbol-index.js +17 -0
  63. package/dist/core/indexing/symbol-index.js.map +1 -1
  64. package/dist/core/indexing/types.d.ts.map +1 -1
  65. package/dist/core/search/engines/text-engine.d.ts +3 -0
  66. package/dist/core/search/engines/text-engine.d.ts.map +1 -1
  67. package/dist/core/search/engines/text-engine.js +8 -7
  68. package/dist/core/search/engines/text-engine.js.map +1 -1
  69. package/dist/core/search/service.d.ts +2 -1
  70. package/dist/core/search/service.d.ts.map +1 -1
  71. package/dist/core/search/service.js +3 -3
  72. package/dist/core/search/service.js.map +1 -1
  73. package/dist/core/search/types.d.ts.map +1 -1
  74. package/dist/core/snapshot/index.d.ts +7 -0
  75. package/dist/core/snapshot/index.d.ts.map +1 -0
  76. package/dist/core/snapshot/index.js +6 -0
  77. package/dist/core/snapshot/index.js.map +1 -0
  78. package/dist/core/snapshot/snapshot-generator.d.ts +66 -0
  79. package/dist/core/snapshot/snapshot-generator.d.ts.map +1 -0
  80. package/dist/core/snapshot/snapshot-generator.js +258 -0
  81. package/dist/core/snapshot/snapshot-generator.js.map +1 -0
  82. package/dist/core/snapshot/types.d.ts +67 -0
  83. package/dist/core/snapshot/types.d.ts.map +1 -0
  84. package/dist/core/snapshot/types.js +25 -0
  85. package/dist/core/snapshot/types.js.map +1 -0
  86. package/dist/core/transform/index.d.ts +10 -0
  87. package/dist/core/transform/index.d.ts.map +1 -0
  88. package/dist/core/transform/index.js +21 -0
  89. package/dist/core/transform/index.js.map +1 -0
  90. package/dist/core/transform/location/index.d.ts +8 -0
  91. package/dist/core/transform/location/index.d.ts.map +1 -0
  92. package/dist/core/transform/location/index.js +9 -0
  93. package/dist/core/transform/location/index.js.map +1 -0
  94. package/dist/core/{move → transform/location/move-file}/import-resolver.d.ts +1 -1
  95. package/dist/core/transform/location/move-file/import-resolver.d.ts.map +1 -0
  96. package/dist/core/{move → transform/location/move-file}/import-resolver.js +19 -12
  97. package/dist/core/transform/location/move-file/import-resolver.js.map +1 -0
  98. package/dist/core/{move → transform/location/move-file}/index.d.ts +2 -2
  99. package/dist/core/transform/location/move-file/index.d.ts.map +1 -0
  100. package/dist/core/{move → transform/location/move-file}/index.js +2 -2
  101. package/dist/core/transform/location/move-file/index.js.map +1 -0
  102. package/dist/core/{move → transform/location/move-file}/move-service.d.ts +5 -3
  103. package/dist/core/transform/location/move-file/move-service.d.ts.map +1 -0
  104. package/dist/core/{move → transform/location/move-file}/move-service.js +74 -92
  105. package/dist/core/transform/location/move-file/move-service.js.map +1 -0
  106. package/dist/core/{move → transform/location/move-file}/types.d.ts +1 -1
  107. package/dist/core/transform/location/move-file/types.d.ts.map +1 -0
  108. package/dist/core/transform/location/move-file/types.js.map +1 -0
  109. package/dist/core/transform/location/move-member/index.d.ts +10 -0
  110. package/dist/core/transform/location/move-member/index.d.ts.map +1 -0
  111. package/dist/core/transform/location/move-member/index.js +12 -0
  112. package/dist/core/transform/location/move-member/index.js.map +1 -0
  113. package/dist/core/transform/location/move-member/member-extractor.d.ts +96 -0
  114. package/dist/core/transform/location/move-member/member-extractor.d.ts.map +1 -0
  115. package/dist/core/transform/location/move-member/member-extractor.js +439 -0
  116. package/dist/core/transform/location/move-member/member-extractor.js.map +1 -0
  117. package/dist/core/transform/location/move-member/move-member-service.d.ts +87 -0
  118. package/dist/core/transform/location/move-member/move-member-service.d.ts.map +1 -0
  119. package/dist/core/transform/location/move-member/move-member-service.js +412 -0
  120. package/dist/core/transform/location/move-member/move-member-service.js.map +1 -0
  121. package/dist/core/transform/location/move-member/types.d.ts +182 -0
  122. package/dist/core/transform/location/move-member/types.d.ts.map +1 -0
  123. package/dist/core/transform/location/move-member/types.js +75 -0
  124. package/dist/core/transform/location/move-member/types.js.map +1 -0
  125. package/dist/core/transform/location/shift/file-generator.d.ts +45 -0
  126. package/dist/core/transform/location/shift/file-generator.d.ts.map +1 -0
  127. package/dist/core/transform/location/shift/file-generator.js +94 -0
  128. package/dist/core/transform/location/shift/file-generator.js.map +1 -0
  129. package/dist/core/transform/location/shift/index.d.ts +11 -0
  130. package/dist/core/transform/location/shift/index.d.ts.map +1 -0
  131. package/dist/core/transform/location/shift/index.js +13 -0
  132. package/dist/core/transform/location/shift/index.js.map +1 -0
  133. package/dist/core/transform/location/shift/line-extractor.d.ts +55 -0
  134. package/dist/core/transform/location/shift/line-extractor.d.ts.map +1 -0
  135. package/dist/core/transform/location/shift/line-extractor.js +123 -0
  136. package/dist/core/transform/location/shift/line-extractor.js.map +1 -0
  137. package/dist/core/transform/location/shift/shift-service.d.ts +57 -0
  138. package/dist/core/transform/location/shift/shift-service.d.ts.map +1 -0
  139. package/dist/core/transform/location/shift/shift-service.js +199 -0
  140. package/dist/core/transform/location/shift/shift-service.js.map +1 -0
  141. package/dist/core/transform/location/shift/types.d.ts +195 -0
  142. package/dist/core/transform/location/shift/types.d.ts.map +1 -0
  143. package/dist/core/transform/location/shift/types.js +89 -0
  144. package/dist/core/transform/location/shift/types.js.map +1 -0
  145. package/dist/core/transform/shared/code-editor.d.ts +70 -0
  146. package/dist/core/transform/shared/code-editor.d.ts.map +1 -0
  147. package/dist/core/transform/shared/code-editor.js +206 -0
  148. package/dist/core/transform/shared/code-editor.js.map +1 -0
  149. package/dist/core/transform/shared/index.d.ts +7 -0
  150. package/dist/core/transform/shared/index.d.ts.map +1 -0
  151. package/dist/core/transform/shared/index.js +7 -0
  152. package/dist/core/transform/shared/index.js.map +1 -0
  153. package/dist/core/transform/shared/symbol-finder.d.ts +154 -0
  154. package/dist/core/transform/shared/symbol-finder.d.ts.map +1 -0
  155. package/dist/core/transform/shared/symbol-finder.js +433 -0
  156. package/dist/core/transform/shared/symbol-finder.js.map +1 -0
  157. package/dist/core/transform/structure/extract/extract-function.d.ts.map +1 -0
  158. package/dist/core/{refactor → transform/structure/extract}/extract-function.js +1 -1
  159. package/dist/core/transform/structure/extract/extract-function.js.map +1 -0
  160. package/dist/core/transform/structure/extract/index.d.ts +7 -0
  161. package/dist/core/transform/structure/extract/index.d.ts.map +1 -0
  162. package/dist/core/transform/structure/extract/index.js +9 -0
  163. package/dist/core/transform/structure/extract/index.js.map +1 -0
  164. package/dist/core/transform/structure/extract/swift-extractor.d.ts +98 -0
  165. package/dist/core/transform/structure/extract/swift-extractor.d.ts.map +1 -0
  166. package/dist/core/transform/structure/extract/swift-extractor.js +283 -0
  167. package/dist/core/transform/structure/extract/swift-extractor.js.map +1 -0
  168. package/dist/core/transform/structure/index.d.ts +8 -0
  169. package/dist/core/transform/structure/index.d.ts.map +1 -0
  170. package/dist/core/transform/structure/index.js +8 -0
  171. package/dist/core/transform/structure/index.js.map +1 -0
  172. package/dist/core/transform/structure/inline/index.d.ts +6 -0
  173. package/dist/core/transform/structure/inline/index.d.ts.map +1 -0
  174. package/dist/core/transform/structure/inline/index.js +6 -0
  175. package/dist/core/transform/structure/inline/index.js.map +1 -0
  176. package/dist/core/transform/structure/inline/inline-function.d.ts.map +1 -0
  177. package/dist/core/{refactor → transform/structure/inline}/inline-function.js +37 -26
  178. package/dist/core/transform/structure/inline/inline-function.js.map +1 -0
  179. package/dist/core/transform/structure/patterns/design-patterns.d.ts.map +1 -0
  180. package/dist/core/transform/structure/patterns/design-patterns.js.map +1 -0
  181. package/dist/core/transform/structure/patterns/index.d.ts +6 -0
  182. package/dist/core/transform/structure/patterns/index.d.ts.map +1 -0
  183. package/dist/core/transform/structure/patterns/index.js +6 -0
  184. package/dist/core/transform/structure/patterns/index.js.map +1 -0
  185. package/dist/core/transform/symbol/change-signature/change-signature-service.d.ts +94 -0
  186. package/dist/core/transform/symbol/change-signature/change-signature-service.d.ts.map +1 -0
  187. package/dist/core/transform/symbol/change-signature/change-signature-service.js +544 -0
  188. package/dist/core/transform/symbol/change-signature/change-signature-service.js.map +1 -0
  189. package/dist/core/transform/symbol/change-signature/index.d.ts +10 -0
  190. package/dist/core/transform/symbol/change-signature/index.d.ts.map +1 -0
  191. package/dist/core/transform/symbol/change-signature/index.js +12 -0
  192. package/dist/core/transform/symbol/change-signature/index.js.map +1 -0
  193. package/dist/core/transform/symbol/change-signature/signature-parser.d.ts +76 -0
  194. package/dist/core/transform/symbol/change-signature/signature-parser.d.ts.map +1 -0
  195. package/dist/core/transform/symbol/change-signature/signature-parser.js +387 -0
  196. package/dist/core/transform/symbol/change-signature/signature-parser.js.map +1 -0
  197. package/dist/core/transform/symbol/change-signature/types.d.ts +244 -0
  198. package/dist/core/transform/symbol/change-signature/types.d.ts.map +1 -0
  199. package/dist/core/transform/symbol/change-signature/types.js +73 -0
  200. package/dist/core/transform/symbol/change-signature/types.js.map +1 -0
  201. package/dist/core/transform/symbol/index.d.ts +7 -0
  202. package/dist/core/transform/symbol/index.d.ts.map +1 -0
  203. package/dist/core/transform/symbol/index.js +7 -0
  204. package/dist/core/transform/symbol/index.js.map +1 -0
  205. package/dist/core/transform/symbol/rename/index.d.ts +9 -0
  206. package/dist/core/transform/symbol/rename/index.d.ts.map +1 -0
  207. package/dist/core/{rename → transform/symbol/rename}/index.js +5 -3
  208. package/dist/core/transform/symbol/rename/index.js.map +1 -0
  209. package/dist/core/{rename → transform/symbol/rename}/reference-updater.d.ts +2 -2
  210. package/dist/core/transform/symbol/rename/reference-updater.d.ts.map +1 -0
  211. package/dist/core/{rename → transform/symbol/rename}/reference-updater.js +16 -8
  212. package/dist/core/transform/symbol/rename/reference-updater.js.map +1 -0
  213. package/dist/core/{rename → transform/symbol/rename}/rename-engine.d.ts +2 -2
  214. package/dist/core/transform/symbol/rename/rename-engine.d.ts.map +1 -0
  215. package/dist/core/{rename → transform/symbol/rename}/rename-engine.js +3 -3
  216. package/dist/core/transform/symbol/rename/rename-engine.js.map +1 -0
  217. package/dist/core/{rename → transform/symbol/rename}/scope-analyzer.d.ts +3 -3
  218. package/dist/core/transform/symbol/rename/scope-analyzer.d.ts.map +1 -0
  219. package/dist/core/{rename → transform/symbol/rename}/scope-analyzer.js +2 -2
  220. package/dist/core/transform/symbol/rename/scope-analyzer.js.map +1 -0
  221. package/dist/core/{rename → transform/symbol/rename}/types.d.ts +2 -2
  222. package/dist/core/transform/symbol/rename/types.d.ts.map +1 -0
  223. package/dist/core/transform/symbol/rename/types.js.map +1 -0
  224. package/dist/core/transform/types.d.ts +185 -0
  225. package/dist/core/transform/types.d.ts.map +1 -0
  226. package/dist/core/transform/types.js +150 -0
  227. package/dist/core/transform/types.js.map +1 -0
  228. package/dist/infrastructure/cache/cache-manager.d.ts +1 -1
  229. package/dist/infrastructure/cache/cache-manager.d.ts.map +1 -1
  230. package/dist/infrastructure/cache/cache-manager.js +1 -1
  231. package/dist/infrastructure/cache/cache-manager.js.map +1 -1
  232. package/dist/infrastructure/cache/memory-cache.js +1 -1
  233. package/dist/infrastructure/cache/memory-cache.js.map +1 -1
  234. package/dist/infrastructure/cache/strategies.d.ts +1 -1
  235. package/dist/infrastructure/cache/strategies.d.ts.map +1 -1
  236. package/dist/infrastructure/cache/strategies.js +1 -1
  237. package/dist/infrastructure/cache/strategies.js.map +1 -1
  238. package/dist/infrastructure/formatters/diff-generator.d.ts +11 -0
  239. package/dist/infrastructure/formatters/diff-generator.d.ts.map +1 -0
  240. package/dist/infrastructure/formatters/diff-generator.js +217 -0
  241. package/dist/infrastructure/formatters/diff-generator.js.map +1 -0
  242. package/dist/infrastructure/formatters/index.d.ts +11 -0
  243. package/dist/infrastructure/formatters/index.d.ts.map +1 -0
  244. package/dist/infrastructure/formatters/index.js +13 -0
  245. package/dist/infrastructure/formatters/index.js.map +1 -0
  246. package/dist/infrastructure/formatters/preview-converter.d.ts +85 -0
  247. package/dist/infrastructure/formatters/preview-converter.d.ts.map +1 -0
  248. package/dist/infrastructure/formatters/preview-converter.js +209 -0
  249. package/dist/infrastructure/formatters/preview-converter.js.map +1 -0
  250. package/dist/infrastructure/formatters/preview-formatter.d.ts +61 -0
  251. package/dist/infrastructure/formatters/preview-formatter.d.ts.map +1 -0
  252. package/dist/infrastructure/formatters/preview-formatter.js +208 -0
  253. package/dist/infrastructure/formatters/preview-formatter.js.map +1 -0
  254. package/dist/infrastructure/formatters/query-formatter.d.ts +63 -0
  255. package/dist/infrastructure/formatters/query-formatter.d.ts.map +1 -0
  256. package/dist/infrastructure/formatters/query-formatter.js +218 -0
  257. package/dist/infrastructure/formatters/query-formatter.js.map +1 -0
  258. package/dist/infrastructure/formatters/query-types.d.ts +165 -0
  259. package/dist/infrastructure/formatters/query-types.d.ts.map +1 -0
  260. package/dist/infrastructure/formatters/query-types.js +30 -0
  261. package/dist/infrastructure/formatters/query-types.js.map +1 -0
  262. package/dist/infrastructure/formatters/types.d.ts +153 -0
  263. package/dist/infrastructure/formatters/types.d.ts.map +1 -0
  264. package/dist/infrastructure/formatters/types.js +27 -0
  265. package/dist/infrastructure/formatters/types.js.map +1 -0
  266. package/dist/infrastructure/parser/analysis-types.d.ts +198 -0
  267. package/dist/infrastructure/parser/analysis-types.d.ts.map +1 -0
  268. package/dist/infrastructure/parser/analysis-types.js +6 -0
  269. package/dist/infrastructure/parser/analysis-types.js.map +1 -0
  270. package/dist/infrastructure/parser/base.d.ts +37 -1
  271. package/dist/infrastructure/parser/base.d.ts.map +1 -1
  272. package/dist/infrastructure/parser/base.js +73 -1
  273. package/dist/infrastructure/parser/base.js.map +1 -1
  274. package/dist/infrastructure/parser/factory.d.ts +3 -3
  275. package/dist/infrastructure/parser/factory.d.ts.map +1 -1
  276. package/dist/infrastructure/parser/factory.js +1 -1
  277. package/dist/infrastructure/parser/factory.js.map +1 -1
  278. package/dist/infrastructure/parser/index.d.ts +1 -0
  279. package/dist/infrastructure/parser/index.d.ts.map +1 -1
  280. package/dist/infrastructure/parser/index.js.map +1 -1
  281. package/dist/infrastructure/parser/interface.d.ts +64 -1
  282. package/dist/infrastructure/parser/interface.d.ts.map +1 -1
  283. package/dist/infrastructure/parser/interface.js +11 -1
  284. package/dist/infrastructure/parser/interface.js.map +1 -1
  285. package/dist/infrastructure/parser/registry.d.ts +1 -1
  286. package/dist/infrastructure/parser/registry.d.ts.map +1 -1
  287. package/dist/infrastructure/parser/registry.js +1 -1
  288. package/dist/infrastructure/parser/registry.js.map +1 -1
  289. package/dist/infrastructure/parser/types.d.ts.map +1 -1
  290. package/dist/infrastructure/storage/file-system.d.ts +2 -1
  291. package/dist/infrastructure/storage/file-system.d.ts.map +1 -1
  292. package/dist/infrastructure/storage/file-system.interface.d.ts +69 -0
  293. package/dist/infrastructure/storage/file-system.interface.d.ts.map +1 -0
  294. package/dist/infrastructure/storage/file-system.interface.js +6 -0
  295. package/dist/infrastructure/storage/file-system.interface.js.map +1 -0
  296. package/dist/infrastructure/storage/file-system.js.map +1 -1
  297. package/dist/infrastructure/storage/index.d.ts +2 -2
  298. package/dist/infrastructure/storage/index.d.ts.map +1 -1
  299. package/dist/infrastructure/storage/index.js +1 -6
  300. package/dist/infrastructure/storage/index.js.map +1 -1
  301. package/dist/infrastructure/storage/mem-file-system.d.ts +44 -0
  302. package/dist/infrastructure/storage/mem-file-system.d.ts.map +1 -0
  303. package/dist/infrastructure/storage/mem-file-system.js +105 -0
  304. package/dist/infrastructure/storage/mem-file-system.js.map +1 -0
  305. package/dist/infrastructure/storage/path-utils.d.ts +1 -1
  306. package/dist/infrastructure/storage/path-utils.d.ts.map +1 -1
  307. package/dist/interfaces/cli/cli.d.ts +13 -70
  308. package/dist/interfaces/cli/cli.d.ts.map +1 -1
  309. package/dist/interfaces/cli/cli.js +65 -1186
  310. package/dist/interfaces/cli/cli.js.map +1 -1
  311. package/dist/interfaces/cli/commands/analyze.command.d.ts +11 -0
  312. package/dist/interfaces/cli/commands/analyze.command.d.ts.map +1 -0
  313. package/dist/interfaces/cli/commands/analyze.command.js +460 -0
  314. package/dist/interfaces/cli/commands/analyze.command.js.map +1 -0
  315. package/dist/interfaces/cli/commands/change-signature.command.d.ts +11 -0
  316. package/dist/interfaces/cli/commands/change-signature.command.d.ts.map +1 -0
  317. package/dist/interfaces/cli/commands/change-signature.command.js +299 -0
  318. package/dist/interfaces/cli/commands/change-signature.command.js.map +1 -0
  319. package/dist/interfaces/cli/commands/deps.command.d.ts +11 -0
  320. package/dist/interfaces/cli/commands/deps.command.d.ts.map +1 -0
  321. package/dist/interfaces/cli/commands/deps.command.js +143 -0
  322. package/dist/interfaces/cli/commands/deps.command.js.map +1 -0
  323. package/dist/interfaces/cli/commands/extract.command.d.ts +11 -0
  324. package/dist/interfaces/cli/commands/extract.command.d.ts.map +1 -0
  325. package/dist/interfaces/cli/commands/extract.command.js +314 -0
  326. package/dist/interfaces/cli/commands/extract.command.js.map +1 -0
  327. package/dist/interfaces/cli/commands/index.d.ts +16 -0
  328. package/dist/interfaces/cli/commands/index.d.ts.map +1 -0
  329. package/dist/interfaces/cli/commands/index.js +15 -0
  330. package/dist/interfaces/cli/commands/index.js.map +1 -0
  331. package/dist/interfaces/cli/commands/inline.command.d.ts +11 -0
  332. package/dist/interfaces/cli/commands/inline.command.d.ts.map +1 -0
  333. package/dist/interfaces/cli/commands/inline.command.js +208 -0
  334. package/dist/interfaces/cli/commands/inline.command.js.map +1 -0
  335. package/dist/interfaces/cli/commands/move-member.command.d.ts +11 -0
  336. package/dist/interfaces/cli/commands/move-member.command.d.ts.map +1 -0
  337. package/dist/interfaces/cli/commands/move-member.command.js +194 -0
  338. package/dist/interfaces/cli/commands/move-member.command.js.map +1 -0
  339. package/dist/interfaces/cli/commands/move.command.d.ts +11 -0
  340. package/dist/interfaces/cli/commands/move.command.d.ts.map +1 -0
  341. package/dist/interfaces/cli/commands/move.command.js +220 -0
  342. package/dist/interfaces/cli/commands/move.command.js.map +1 -0
  343. package/dist/interfaces/cli/commands/refactor.command.d.ts +11 -0
  344. package/dist/interfaces/cli/commands/refactor.command.d.ts.map +1 -0
  345. package/dist/interfaces/cli/commands/refactor.command.js +414 -0
  346. package/dist/interfaces/cli/commands/refactor.command.js.map +1 -0
  347. package/dist/interfaces/cli/commands/rename.command.d.ts +11 -0
  348. package/dist/interfaces/cli/commands/rename.command.d.ts.map +1 -0
  349. package/dist/interfaces/cli/commands/rename.command.js +272 -0
  350. package/dist/interfaces/cli/commands/rename.command.js.map +1 -0
  351. package/dist/interfaces/cli/commands/search.command.d.ts +11 -0
  352. package/dist/interfaces/cli/commands/search.command.d.ts.map +1 -0
  353. package/dist/interfaces/cli/commands/search.command.js +409 -0
  354. package/dist/interfaces/cli/commands/search.command.js.map +1 -0
  355. package/dist/interfaces/cli/commands/shift.command.d.ts +11 -0
  356. package/dist/interfaces/cli/commands/shift.command.d.ts.map +1 -0
  357. package/dist/interfaces/cli/commands/shift.command.js +143 -0
  358. package/dist/interfaces/cli/commands/shift.command.js.map +1 -0
  359. package/dist/interfaces/cli/commands/snapshot.command.d.ts +11 -0
  360. package/dist/interfaces/cli/commands/snapshot.command.d.ts.map +1 -0
  361. package/dist/interfaces/cli/commands/snapshot.command.js +68 -0
  362. package/dist/interfaces/cli/commands/snapshot.command.js.map +1 -0
  363. package/dist/interfaces/cli/commands/types.d.ts +18 -0
  364. package/dist/interfaces/cli/commands/types.d.ts.map +1 -0
  365. package/dist/interfaces/cli/commands/types.js +5 -0
  366. package/dist/interfaces/cli/commands/types.js.map +1 -0
  367. package/dist/interfaces/cli/index.d.ts +1 -1
  368. package/dist/interfaces/cli/index.d.ts.map +1 -1
  369. package/dist/interfaces/cli/index.js +1 -1
  370. package/dist/interfaces/cli/index.js.map +1 -1
  371. package/dist/interfaces/cli/preview-output-handler.d.ts +53 -0
  372. package/dist/interfaces/cli/preview-output-handler.d.ts.map +1 -0
  373. package/dist/interfaces/cli/preview-output-handler.js +73 -0
  374. package/dist/interfaces/cli/preview-output-handler.js.map +1 -0
  375. package/dist/interfaces/cli/unified-output-handler.d.ts +77 -0
  376. package/dist/interfaces/cli/unified-output-handler.d.ts.map +1 -0
  377. package/dist/interfaces/cli/unified-output-handler.js +140 -0
  378. package/dist/interfaces/cli/unified-output-handler.js.map +1 -0
  379. package/dist/plugins/javascript/index.d.ts +2 -2
  380. package/dist/plugins/javascript/index.d.ts.map +1 -1
  381. package/dist/plugins/javascript/index.js +1 -1
  382. package/dist/plugins/javascript/index.js.map +1 -1
  383. package/dist/plugins/javascript/parser.d.ts +41 -0
  384. package/dist/plugins/javascript/parser.d.ts.map +1 -1
  385. package/dist/plugins/javascript/parser.js +284 -0
  386. package/dist/plugins/javascript/parser.js.map +1 -1
  387. package/dist/plugins/javascript/types.d.ts.map +1 -1
  388. package/dist/plugins/javascript/types.js.map +1 -1
  389. package/dist/plugins/python/analyzers/complexity-analyzer.d.ts +50 -0
  390. package/dist/plugins/python/analyzers/complexity-analyzer.d.ts.map +1 -0
  391. package/dist/plugins/python/analyzers/complexity-analyzer.js +172 -0
  392. package/dist/plugins/python/analyzers/complexity-analyzer.js.map +1 -0
  393. package/dist/plugins/python/analyzers/duplication-detector.d.ts +39 -0
  394. package/dist/plugins/python/analyzers/duplication-detector.d.ts.map +1 -0
  395. package/dist/plugins/python/analyzers/duplication-detector.js +146 -0
  396. package/dist/plugins/python/analyzers/duplication-detector.js.map +1 -0
  397. package/dist/plugins/python/analyzers/error-handling-checker.d.ts +28 -0
  398. package/dist/plugins/python/analyzers/error-handling-checker.d.ts.map +1 -0
  399. package/dist/plugins/python/analyzers/error-handling-checker.js +143 -0
  400. package/dist/plugins/python/analyzers/error-handling-checker.js.map +1 -0
  401. package/dist/plugins/python/analyzers/naming-checker.d.ts +56 -0
  402. package/dist/plugins/python/analyzers/naming-checker.d.ts.map +1 -0
  403. package/dist/plugins/python/analyzers/naming-checker.js +220 -0
  404. package/dist/plugins/python/analyzers/naming-checker.js.map +1 -0
  405. package/dist/plugins/python/analyzers/pattern-detector.d.ts +44 -0
  406. package/dist/plugins/python/analyzers/pattern-detector.d.ts.map +1 -0
  407. package/dist/plugins/python/analyzers/pattern-detector.js +222 -0
  408. package/dist/plugins/python/analyzers/pattern-detector.js.map +1 -0
  409. package/dist/plugins/python/analyzers/security-checker.d.ts +56 -0
  410. package/dist/plugins/python/analyzers/security-checker.d.ts.map +1 -0
  411. package/dist/plugins/python/analyzers/security-checker.js +279 -0
  412. package/dist/plugins/python/analyzers/security-checker.js.map +1 -0
  413. package/dist/plugins/python/analyzers/type-safety-checker.d.ts +44 -0
  414. package/dist/plugins/python/analyzers/type-safety-checker.d.ts.map +1 -0
  415. package/dist/plugins/python/analyzers/type-safety-checker.js +177 -0
  416. package/dist/plugins/python/analyzers/type-safety-checker.js.map +1 -0
  417. package/dist/plugins/python/analyzers/unused-symbol-detector.d.ts +37 -0
  418. package/dist/plugins/python/analyzers/unused-symbol-detector.d.ts.map +1 -0
  419. package/dist/plugins/python/analyzers/unused-symbol-detector.js +141 -0
  420. package/dist/plugins/python/analyzers/unused-symbol-detector.js.map +1 -0
  421. package/dist/plugins/python/dependency-analyzer.d.ts +86 -0
  422. package/dist/plugins/python/dependency-analyzer.d.ts.map +1 -0
  423. package/dist/plugins/python/dependency-analyzer.js +252 -0
  424. package/dist/plugins/python/dependency-analyzer.js.map +1 -0
  425. package/dist/plugins/python/index.d.ts +17 -0
  426. package/dist/plugins/python/index.d.ts.map +1 -0
  427. package/dist/plugins/python/index.js +23 -0
  428. package/dist/plugins/python/index.js.map +1 -0
  429. package/dist/plugins/python/parser.d.ts +150 -0
  430. package/dist/plugins/python/parser.d.ts.map +1 -0
  431. package/dist/plugins/python/parser.js +476 -0
  432. package/dist/plugins/python/parser.js.map +1 -0
  433. package/dist/plugins/python/symbol-extractor.d.ts +108 -0
  434. package/dist/plugins/python/symbol-extractor.d.ts.map +1 -0
  435. package/dist/plugins/python/symbol-extractor.js +389 -0
  436. package/dist/plugins/python/symbol-extractor.js.map +1 -0
  437. package/dist/plugins/python/tree-sitter-bridge.d.ts +57 -0
  438. package/dist/plugins/python/tree-sitter-bridge.d.ts.map +1 -0
  439. package/dist/plugins/python/tree-sitter-bridge.js +267 -0
  440. package/dist/plugins/python/tree-sitter-bridge.js.map +1 -0
  441. package/dist/plugins/python/types.d.ts +179 -0
  442. package/dist/plugins/python/types.d.ts.map +1 -0
  443. package/dist/plugins/python/types.js +252 -0
  444. package/dist/plugins/python/types.js.map +1 -0
  445. package/dist/plugins/swift/analyzers/complexity-analyzer.d.ts +41 -0
  446. package/dist/plugins/swift/analyzers/complexity-analyzer.d.ts.map +1 -0
  447. package/dist/plugins/swift/analyzers/complexity-analyzer.js +206 -0
  448. package/dist/plugins/swift/analyzers/complexity-analyzer.js.map +1 -0
  449. package/dist/plugins/swift/analyzers/duplication-detector.d.ts +89 -0
  450. package/dist/plugins/swift/analyzers/duplication-detector.d.ts.map +1 -0
  451. package/dist/plugins/swift/analyzers/duplication-detector.js +271 -0
  452. package/dist/plugins/swift/analyzers/duplication-detector.js.map +1 -0
  453. package/dist/plugins/swift/analyzers/error-handling-checker.d.ts +34 -0
  454. package/dist/plugins/swift/analyzers/error-handling-checker.d.ts.map +1 -0
  455. package/dist/plugins/swift/analyzers/error-handling-checker.js +135 -0
  456. package/dist/plugins/swift/analyzers/error-handling-checker.js.map +1 -0
  457. package/dist/plugins/swift/analyzers/naming-checker.d.ts +47 -0
  458. package/dist/plugins/swift/analyzers/naming-checker.d.ts.map +1 -0
  459. package/dist/plugins/swift/analyzers/naming-checker.js +161 -0
  460. package/dist/plugins/swift/analyzers/naming-checker.js.map +1 -0
  461. package/dist/plugins/swift/analyzers/pattern-detector.d.ts +78 -0
  462. package/dist/plugins/swift/analyzers/pattern-detector.d.ts.map +1 -0
  463. package/dist/plugins/swift/analyzers/pattern-detector.js +247 -0
  464. package/dist/plugins/swift/analyzers/pattern-detector.js.map +1 -0
  465. package/dist/plugins/swift/analyzers/security-checker.d.ts +38 -0
  466. package/dist/plugins/swift/analyzers/security-checker.d.ts.map +1 -0
  467. package/dist/plugins/swift/analyzers/security-checker.js +135 -0
  468. package/dist/plugins/swift/analyzers/security-checker.js.map +1 -0
  469. package/dist/plugins/swift/analyzers/type-safety-checker.d.ts +41 -0
  470. package/dist/plugins/swift/analyzers/type-safety-checker.d.ts.map +1 -0
  471. package/dist/plugins/swift/analyzers/type-safety-checker.js +121 -0
  472. package/dist/plugins/swift/analyzers/type-safety-checker.js.map +1 -0
  473. package/dist/plugins/swift/analyzers/unused-symbol-detector.d.ts +38 -0
  474. package/dist/plugins/swift/analyzers/unused-symbol-detector.d.ts.map +1 -0
  475. package/dist/plugins/swift/analyzers/unused-symbol-detector.js +211 -0
  476. package/dist/plugins/swift/analyzers/unused-symbol-detector.js.map +1 -0
  477. package/dist/plugins/swift/dependency-analyzer.d.ts +33 -0
  478. package/dist/plugins/swift/dependency-analyzer.d.ts.map +1 -0
  479. package/dist/plugins/swift/dependency-analyzer.js +95 -0
  480. package/dist/plugins/swift/dependency-analyzer.js.map +1 -0
  481. package/dist/plugins/swift/index.d.ts +14 -0
  482. package/dist/plugins/swift/index.d.ts.map +1 -0
  483. package/dist/plugins/swift/index.js +19 -0
  484. package/dist/plugins/swift/index.js.map +1 -0
  485. package/dist/plugins/swift/parser.d.ts +160 -0
  486. package/dist/plugins/swift/parser.d.ts.map +1 -0
  487. package/dist/plugins/swift/parser.js +670 -0
  488. package/dist/plugins/swift/parser.js.map +1 -0
  489. package/dist/plugins/swift/swift-bridge/swift-parser +0 -0
  490. package/dist/plugins/swift/symbol-extractor.d.ts +46 -0
  491. package/dist/plugins/swift/symbol-extractor.d.ts.map +1 -0
  492. package/dist/plugins/swift/symbol-extractor.js +187 -0
  493. package/dist/plugins/swift/symbol-extractor.js.map +1 -0
  494. package/dist/plugins/swift/types.d.ts +137 -0
  495. package/dist/plugins/swift/types.d.ts.map +1 -0
  496. package/dist/plugins/swift/types.js +212 -0
  497. package/dist/plugins/swift/types.js.map +1 -0
  498. package/dist/plugins/typescript/analyzers/complexity-analyzer.d.ts +39 -0
  499. package/dist/plugins/typescript/analyzers/complexity-analyzer.d.ts.map +1 -0
  500. package/dist/plugins/typescript/analyzers/complexity-analyzer.js +196 -0
  501. package/dist/plugins/typescript/analyzers/complexity-analyzer.js.map +1 -0
  502. package/dist/{core/analysis → plugins/typescript/analyzers}/duplication-detector.d.ts +34 -3
  503. package/dist/plugins/typescript/analyzers/duplication-detector.d.ts.map +1 -0
  504. package/dist/plugins/typescript/analyzers/duplication-detector.js +695 -0
  505. package/dist/plugins/typescript/analyzers/duplication-detector.js.map +1 -0
  506. package/dist/plugins/typescript/analyzers/error-handling-checker.d.ts +26 -0
  507. package/dist/plugins/typescript/analyzers/error-handling-checker.d.ts.map +1 -0
  508. package/dist/plugins/typescript/analyzers/error-handling-checker.js +84 -0
  509. package/dist/plugins/typescript/analyzers/error-handling-checker.js.map +1 -0
  510. package/dist/plugins/typescript/analyzers/naming-checker.d.ts +30 -0
  511. package/dist/plugins/typescript/analyzers/naming-checker.d.ts.map +1 -0
  512. package/dist/plugins/typescript/analyzers/naming-checker.js +116 -0
  513. package/dist/plugins/typescript/analyzers/naming-checker.js.map +1 -0
  514. package/dist/plugins/typescript/analyzers/pattern-detector.d.ts +80 -0
  515. package/dist/plugins/typescript/analyzers/pattern-detector.d.ts.map +1 -0
  516. package/dist/plugins/typescript/analyzers/pattern-detector.js +267 -0
  517. package/dist/plugins/typescript/analyzers/pattern-detector.js.map +1 -0
  518. package/dist/plugins/typescript/analyzers/security-checker.d.ts +34 -0
  519. package/dist/plugins/typescript/analyzers/security-checker.d.ts.map +1 -0
  520. package/dist/plugins/typescript/analyzers/security-checker.js +126 -0
  521. package/dist/plugins/typescript/analyzers/security-checker.js.map +1 -0
  522. package/dist/plugins/typescript/analyzers/type-safety-checker.d.ts +32 -0
  523. package/dist/plugins/typescript/analyzers/type-safety-checker.d.ts.map +1 -0
  524. package/dist/plugins/typescript/analyzers/type-safety-checker.js +86 -0
  525. package/dist/plugins/typescript/analyzers/type-safety-checker.js.map +1 -0
  526. package/dist/plugins/typescript/analyzers/unused-symbol-detector.d.ts +47 -0
  527. package/dist/plugins/typescript/analyzers/unused-symbol-detector.d.ts.map +1 -0
  528. package/dist/plugins/typescript/analyzers/unused-symbol-detector.js +152 -0
  529. package/dist/plugins/typescript/analyzers/unused-symbol-detector.js.map +1 -0
  530. package/dist/plugins/typescript/parser.d.ts +41 -0
  531. package/dist/plugins/typescript/parser.d.ts.map +1 -1
  532. package/dist/plugins/typescript/parser.js +348 -3
  533. package/dist/plugins/typescript/parser.js.map +1 -1
  534. package/dist/plugins/typescript/symbol-extractor.d.ts.map +1 -1
  535. package/dist/plugins/typescript/symbol-extractor.js +12 -0
  536. package/dist/plugins/typescript/symbol-extractor.js.map +1 -1
  537. package/dist/plugins/typescript/types.d.ts.map +1 -1
  538. package/dist/plugins/typescript/types.js +10 -0
  539. package/dist/plugins/typescript/types.js.map +1 -1
  540. package/dist/shared/errors/config-error.d.ts +1 -1
  541. package/dist/shared/errors/config-error.d.ts.map +1 -1
  542. package/dist/shared/errors/config-error.js +1 -1
  543. package/dist/shared/errors/config-error.js.map +1 -1
  544. package/dist/shared/errors/file-error.d.ts +1 -1
  545. package/dist/shared/errors/file-error.d.ts.map +1 -1
  546. package/dist/shared/errors/file-error.js +1 -1
  547. package/dist/shared/errors/file-error.js.map +1 -1
  548. package/dist/shared/errors/index.d.ts +1 -1
  549. package/dist/shared/errors/index.d.ts.map +1 -1
  550. package/dist/shared/errors/index.js +4 -4
  551. package/dist/shared/errors/index.js.map +1 -1
  552. package/dist/shared/errors/parser-error.d.ts +1 -1
  553. package/dist/shared/errors/parser-error.d.ts.map +1 -1
  554. package/dist/shared/errors/parser-error.js +1 -1
  555. package/dist/shared/errors/parser-error.js.map +1 -1
  556. package/dist/shared/errors/validation-error.d.ts +1 -1
  557. package/dist/shared/errors/validation-error.d.ts.map +1 -1
  558. package/dist/shared/errors/validation-error.js +1 -1
  559. package/dist/shared/errors/validation-error.js.map +1 -1
  560. package/dist/shared/types/ast.d.ts +1 -1
  561. package/dist/shared/types/ast.d.ts.map +1 -1
  562. package/dist/shared/types/ast.js +1 -1
  563. package/dist/shared/types/ast.js.map +1 -1
  564. package/dist/shared/types/symbol.d.ts +8 -2
  565. package/dist/shared/types/symbol.d.ts.map +1 -1
  566. package/dist/shared/types/symbol.js +8 -2
  567. package/dist/shared/types/symbol.js.map +1 -1
  568. package/dist/shared/utils/index.d.ts +5 -5
  569. package/dist/shared/utils/index.d.ts.map +1 -1
  570. package/dist/shared/utils/index.js +5 -5
  571. package/dist/shared/utils/index.js.map +1 -1
  572. package/package.json +21 -9
  573. package/bin/mcp-server.js +0 -20
  574. package/dist/core/analysis/complexity-analyzer.d.ts +0 -81
  575. package/dist/core/analysis/complexity-analyzer.d.ts.map +0 -1
  576. package/dist/core/analysis/complexity-analyzer.js +0 -255
  577. package/dist/core/analysis/complexity-analyzer.js.map +0 -1
  578. package/dist/core/analysis/dead-code-detector.d.ts +0 -152
  579. package/dist/core/analysis/dead-code-detector.d.ts.map +0 -1
  580. package/dist/core/analysis/dead-code-detector.js +0 -351
  581. package/dist/core/analysis/dead-code-detector.js.map +0 -1
  582. package/dist/core/analysis/duplication-detector.d.ts.map +0 -1
  583. package/dist/core/analysis/duplication-detector.js +0 -433
  584. package/dist/core/analysis/duplication-detector.js.map +0 -1
  585. package/dist/core/analysis/index.d.ts +0 -9
  586. package/dist/core/analysis/index.d.ts.map +0 -1
  587. package/dist/core/analysis/index.js +0 -13
  588. package/dist/core/analysis/index.js.map +0 -1
  589. package/dist/core/analysis/quality-metrics.d.ts +0 -158
  590. package/dist/core/analysis/quality-metrics.d.ts.map +0 -1
  591. package/dist/core/analysis/quality-metrics.js +0 -442
  592. package/dist/core/analysis/quality-metrics.js.map +0 -1
  593. package/dist/core/move/import-resolver.d.ts.map +0 -1
  594. package/dist/core/move/import-resolver.js.map +0 -1
  595. package/dist/core/move/index.d.ts.map +0 -1
  596. package/dist/core/move/index.js.map +0 -1
  597. package/dist/core/move/move-service.d.ts.map +0 -1
  598. package/dist/core/move/move-service.js.map +0 -1
  599. package/dist/core/move/types.d.ts.map +0 -1
  600. package/dist/core/move/types.js.map +0 -1
  601. package/dist/core/refactor/design-patterns.d.ts.map +0 -1
  602. package/dist/core/refactor/design-patterns.js.map +0 -1
  603. package/dist/core/refactor/extract-function.d.ts.map +0 -1
  604. package/dist/core/refactor/extract-function.js.map +0 -1
  605. package/dist/core/refactor/index.d.ts +0 -8
  606. package/dist/core/refactor/index.d.ts.map +0 -1
  607. package/dist/core/refactor/index.js +0 -11
  608. package/dist/core/refactor/index.js.map +0 -1
  609. package/dist/core/refactor/inline-function.d.ts.map +0 -1
  610. package/dist/core/refactor/inline-function.js.map +0 -1
  611. package/dist/core/rename/index.d.ts +0 -9
  612. package/dist/core/rename/index.d.ts.map +0 -1
  613. package/dist/core/rename/index.js.map +0 -1
  614. package/dist/core/rename/reference-updater.d.ts.map +0 -1
  615. package/dist/core/rename/reference-updater.js.map +0 -1
  616. package/dist/core/rename/rename-engine.d.ts.map +0 -1
  617. package/dist/core/rename/rename-engine.js.map +0 -1
  618. package/dist/core/rename/scope-analyzer.d.ts.map +0 -1
  619. package/dist/core/rename/scope-analyzer.js.map +0 -1
  620. package/dist/core/rename/types.d.ts.map +0 -1
  621. package/dist/core/rename/types.js.map +0 -1
  622. package/dist/interfaces/mcp/index.d.ts +0 -7
  623. package/dist/interfaces/mcp/index.d.ts.map +0 -1
  624. package/dist/interfaces/mcp/index.js +0 -6
  625. package/dist/interfaces/mcp/index.js.map +0 -1
  626. package/dist/interfaces/mcp/mcp-server.d.ts +0 -34
  627. package/dist/interfaces/mcp/mcp-server.d.ts.map +0 -1
  628. package/dist/interfaces/mcp/mcp-server.js +0 -162
  629. package/dist/interfaces/mcp/mcp-server.js.map +0 -1
  630. package/dist/interfaces/mcp/mcp.d.ts +0 -52
  631. package/dist/interfaces/mcp/mcp.d.ts.map +0 -1
  632. package/dist/interfaces/mcp/mcp.js +0 -853
  633. package/dist/interfaces/mcp/mcp.js.map +0 -1
  634. /package/dist/core/{move → transform/location/move-file}/types.js +0 -0
  635. /package/dist/core/{refactor → transform/structure/extract}/extract-function.d.ts +0 -0
  636. /package/dist/core/{refactor → transform/structure/inline}/inline-function.d.ts +0 -0
  637. /package/dist/core/{refactor → transform/structure/patterns}/design-patterns.d.ts +0 -0
  638. /package/dist/core/{refactor → transform/structure/patterns}/design-patterns.js +0 -0
  639. /package/dist/core/{rename → transform/symbol/rename}/types.js +0 -0
@@ -0,0 +1,267 @@
1
+ /**
2
+ * tree-sitter 橋接層
3
+ * 負責 Parser 初始化和節點轉換
4
+ */
5
+ import { Parser as TreeSitterParser, Language as TreeSitterLanguage } from 'web-tree-sitter';
6
+ import { createRequire } from 'module';
7
+ import path from 'path';
8
+ import { PythonNodeKind, nodeTypeToKind, tsNodeToRange } from './types.js';
9
+ const require = createRequire(import.meta.url);
10
+ /** 單例 Parser 實例 */
11
+ let parserInstance = null;
12
+ /** Python 語言實例 */
13
+ let pythonLanguage = null;
14
+ /** 初始化狀態 */
15
+ let isInitialized = false;
16
+ let initializationPromise = null;
17
+ /**
18
+ * 初始化 tree-sitter Parser
19
+ * 使用單例模式,確保只初始化一次
20
+ */
21
+ export async function initializeParser() {
22
+ if (parserInstance && isInitialized) {
23
+ return parserInstance;
24
+ }
25
+ // 避免重複初始化
26
+ if (initializationPromise) {
27
+ await initializationPromise;
28
+ return parserInstance;
29
+ }
30
+ initializationPromise = (async () => {
31
+ await TreeSitterParser.init();
32
+ parserInstance = new TreeSitterParser();
33
+ // 載入 Python 語言 WASM
34
+ const wasmPath = resolveWasmPath();
35
+ pythonLanguage = await TreeSitterLanguage.load(wasmPath);
36
+ parserInstance.setLanguage(pythonLanguage);
37
+ isInitialized = true;
38
+ })();
39
+ await initializationPromise;
40
+ return parserInstance;
41
+ }
42
+ /**
43
+ * 解析 WASM 檔案路徑
44
+ */
45
+ function resolveWasmPath() {
46
+ // 嘗試從 node_modules 解析
47
+ try {
48
+ const treeSitterPythonPath = require.resolve('tree-sitter-python');
49
+ const packageDir = path.dirname(treeSitterPythonPath);
50
+ return path.join(packageDir, 'tree-sitter-python.wasm');
51
+ }
52
+ catch {
53
+ // 備用路徑
54
+ return path.join(process.cwd(), 'node_modules', 'tree-sitter-python', 'tree-sitter-python.wasm');
55
+ }
56
+ }
57
+ /**
58
+ * 獲取 Parser 實例
59
+ * @throws 如果 Parser 未初始化
60
+ */
61
+ export function getParser() {
62
+ if (!parserInstance || !isInitialized) {
63
+ throw new Error('Parser 尚未初始化,請先調用 initializeParser()');
64
+ }
65
+ return parserInstance;
66
+ }
67
+ /**
68
+ * 檢查 Parser 是否已初始化
69
+ */
70
+ export function isParserInitialized() {
71
+ return isInitialized && parserInstance !== null;
72
+ }
73
+ /**
74
+ * 解析 Python 程式碼
75
+ */
76
+ export async function parseCode(code) {
77
+ const parser = await initializeParser();
78
+ const tree = parser.parse(code);
79
+ if (!tree) {
80
+ throw new Error('解析失敗:無法解析程式碼');
81
+ }
82
+ return tree;
83
+ }
84
+ /**
85
+ * 轉換 tree-sitter Node 為 PythonASTNode
86
+ */
87
+ export function convertNode(node, sourceFile) {
88
+ const type = node.type;
89
+ const range = tsNodeToRange(node);
90
+ const pythonKind = nodeTypeToKind(type);
91
+ // 提取節點屬性
92
+ const properties = {
93
+ nodeType: type,
94
+ isNamed: node.isNamed,
95
+ childCount: node.childCount,
96
+ namedChildCount: node.namedChildCount
97
+ };
98
+ // 提取名稱(如果存在)
99
+ const nameNode = node.childForFieldName('name');
100
+ if (nameNode) {
101
+ properties.name = nameNode.text;
102
+ }
103
+ // 提取型別註解(如果存在)
104
+ let typeAnnotation;
105
+ const typeNode = node.childForFieldName('type')
106
+ || node.childForFieldName('return_type');
107
+ if (typeNode) {
108
+ typeAnnotation = typeNode.text;
109
+ properties.typeAnnotation = typeAnnotation;
110
+ }
111
+ // 提取裝飾器(如果是 decorated_definition)
112
+ let decorators;
113
+ if (type === PythonNodeKind.DecoratedDefinition) {
114
+ decorators = extractDecorators(node);
115
+ if (decorators.length > 0) {
116
+ properties.decorators = decorators;
117
+ }
118
+ }
119
+ // 遞歸轉換子節點
120
+ const children = [];
121
+ for (let i = 0; i < node.namedChildCount; i++) {
122
+ const childNode = node.namedChild(i);
123
+ if (childNode) {
124
+ children.push(convertNode(childNode, sourceFile));
125
+ }
126
+ }
127
+ const astNode = {
128
+ type,
129
+ range,
130
+ properties,
131
+ children,
132
+ treeSitterNode: node,
133
+ pythonKind,
134
+ ...(decorators ? { decorators } : {}),
135
+ ...(typeAnnotation ? { typeAnnotation } : {})
136
+ };
137
+ // 設定父子關係
138
+ for (const child of children) {
139
+ child.parent = astNode;
140
+ }
141
+ return astNode;
142
+ }
143
+ /**
144
+ * 從 decorated_definition 節點提取裝飾器
145
+ */
146
+ function extractDecorators(node) {
147
+ const decorators = [];
148
+ for (let i = 0; i < node.childCount; i++) {
149
+ const child = node.child(i);
150
+ if (child?.type === 'decorator') {
151
+ // 提取裝飾器名稱(去掉 @)
152
+ const decoratorText = child.text.replace(/^@/, '').trim();
153
+ // 只取函數名稱部分(不含參數)
154
+ const nameMatch = decoratorText.match(/^[\w.]+/);
155
+ if (nameMatch) {
156
+ decorators.push(nameMatch[0]);
157
+ }
158
+ }
159
+ }
160
+ return decorators;
161
+ }
162
+ /**
163
+ * 創建 PythonAST
164
+ */
165
+ export function createPythonAST(tree, sourceFile, parseTime) {
166
+ const root = convertNode(tree.rootNode, sourceFile);
167
+ const nodeCount = countNodes(root);
168
+ const metadata = {
169
+ language: 'python',
170
+ version: '3.8+',
171
+ parserOptions: {},
172
+ parseTime,
173
+ nodeCount
174
+ };
175
+ return {
176
+ sourceFile,
177
+ root,
178
+ metadata,
179
+ tree
180
+ };
181
+ }
182
+ /**
183
+ * 計算節點總數
184
+ */
185
+ function countNodes(node) {
186
+ let count = 1;
187
+ for (const child of node.children) {
188
+ count += countNodes(child);
189
+ }
190
+ return count;
191
+ }
192
+ /**
193
+ * 遍歷 AST 節點
194
+ */
195
+ export function traverseAST(node, callback) {
196
+ const shouldContinue = callback(node);
197
+ if (shouldContinue === false) {
198
+ return;
199
+ }
200
+ for (const child of node.children) {
201
+ traverseAST(child, callback);
202
+ }
203
+ }
204
+ /**
205
+ * 查找特定類型的節點
206
+ */
207
+ export function findNodesByKind(root, kind) {
208
+ const result = [];
209
+ traverseAST(root, (node) => {
210
+ if (node.pythonKind === kind) {
211
+ result.push(node);
212
+ }
213
+ });
214
+ return result;
215
+ }
216
+ /**
217
+ * 查找包含指定位置的節點
218
+ */
219
+ export function findNodeAtPosition(root, line, column) {
220
+ let result = null;
221
+ traverseAST(root, (node) => {
222
+ const { start, end } = node.range;
223
+ const isInRange = ((line > start.line || (line === start.line && column >= start.column))
224
+ && (line < end.line || (line === end.line && column <= end.column)));
225
+ if (isInRange) {
226
+ result = node;
227
+ }
228
+ });
229
+ return result;
230
+ }
231
+ /**
232
+ * 獲取節點的文字內容
233
+ */
234
+ export function getNodeText(node) {
235
+ return node.treeSitterNode.text;
236
+ }
237
+ /**
238
+ * 獲取節點的指定欄位
239
+ */
240
+ export function getFieldNode(node, fieldName) {
241
+ const fieldNode = node.treeSitterNode.childForFieldName(fieldName);
242
+ if (!fieldNode) {
243
+ return null;
244
+ }
245
+ // 在 children 中找到對應的 PythonASTNode
246
+ for (const child of node.children) {
247
+ const pythonChild = child;
248
+ if (pythonChild.treeSitterNode === fieldNode) {
249
+ return pythonChild;
250
+ }
251
+ }
252
+ // 如果在 children 中找不到,可能是匿名節點,需要重新轉換
253
+ return convertNode(fieldNode, '');
254
+ }
255
+ /**
256
+ * 釋放 Parser 資源
257
+ */
258
+ export async function disposeParser() {
259
+ if (parserInstance) {
260
+ parserInstance.delete();
261
+ parserInstance = null;
262
+ }
263
+ pythonLanguage = null;
264
+ isInitialized = false;
265
+ initializationPromise = null;
266
+ }
267
+ //# sourceMappingURL=tree-sitter-bridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree-sitter-bridge.js","sourceRoot":"","sources":["../../../src/plugins/python/tree-sitter-bridge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,179 @@
1
+ /**
2
+ * Python Parser 特定型別定義
3
+ */
4
+ import type { AST, ASTNode, Position, Range } from '../../shared/types/index.js';
5
+ import { SymbolType } from '../../shared/types/index.js';
6
+ import type { Node as TreeSitterNode, Tree as TreeSitterTree, Point as TreeSitterPoint } from 'web-tree-sitter';
7
+ /**
8
+ * Python AST 節點類型(對應 tree-sitter-python)
9
+ */
10
+ export declare enum PythonNodeKind {
11
+ Module = "module",
12
+ ClassDefinition = "class_definition",
13
+ FunctionDefinition = "function_definition",
14
+ AsyncFunctionDefinition = "async_function_definition",
15
+ DecoratedDefinition = "decorated_definition",
16
+ Decorator = "decorator",
17
+ ImportStatement = "import_statement",
18
+ ImportFromStatement = "import_from_statement",
19
+ Assignment = "assignment",
20
+ AugmentedAssignment = "augmented_assignment",
21
+ AnnotatedAssignment = "annotated_assignment",
22
+ GlobalStatement = "global_statement",
23
+ NonlocalStatement = "nonlocal_statement",
24
+ ExpressionStatement = "expression_statement",
25
+ ReturnStatement = "return_statement",
26
+ PassStatement = "pass_statement",
27
+ BreakStatement = "break_statement",
28
+ ContinueStatement = "continue_statement",
29
+ RaiseStatement = "raise_statement",
30
+ AssertStatement = "assert_statement",
31
+ DeleteStatement = "delete_statement",
32
+ PrintStatement = "print_statement",
33
+ IfStatement = "if_statement",
34
+ ElifClause = "elif_clause",
35
+ ElseClause = "else_clause",
36
+ ForStatement = "for_statement",
37
+ WhileStatement = "while_statement",
38
+ TryStatement = "try_statement",
39
+ ExceptClause = "except_clause",
40
+ FinallyClause = "finally_clause",
41
+ WithStatement = "with_statement",
42
+ AsyncForStatement = "async_for_statement",
43
+ AsyncWithStatement = "async_with_statement",
44
+ MatchStatement = "match_statement",
45
+ CaseClause = "case_clause",
46
+ CasePattern = "case_pattern",
47
+ BinaryOperator = "binary_operator",
48
+ UnaryOperator = "unary_operator",
49
+ BooleanOperator = "boolean_operator",
50
+ ComparisonOperator = "comparison_operator",
51
+ ConditionalExpression = "conditional_expression",
52
+ LambdaExpression = "lambda",
53
+ Call = "call",
54
+ Attribute = "attribute",
55
+ Subscript = "subscript",
56
+ Slice = "slice",
57
+ List = "list",
58
+ Dictionary = "dictionary",
59
+ Set = "set",
60
+ Tuple = "tuple",
61
+ ListComprehension = "list_comprehension",
62
+ DictionaryComprehension = "dictionary_comprehension",
63
+ SetComprehension = "set_comprehension",
64
+ GeneratorExpression = "generator_expression",
65
+ Identifier = "identifier",
66
+ Integer = "integer",
67
+ Float = "float",
68
+ String = "string",
69
+ ConcatenatedString = "concatenated_string",
70
+ True = "true",
71
+ False = "false",
72
+ None = "none",
73
+ Comment = "comment",
74
+ Parameters = "parameters",
75
+ Parameter = "parameter",
76
+ DefaultParameter = "default_parameter",
77
+ TypedParameter = "typed_parameter",
78
+ TypedDefaultParameter = "typed_default_parameter",
79
+ ListSplatPattern = "list_splat_pattern",
80
+ DictionarySplatPattern = "dictionary_splat_pattern",
81
+ KeywordArgument = "keyword_argument",
82
+ Type = "type",
83
+ Block = "block",
84
+ ArgumentList = "argument_list",
85
+ DottedName = "dotted_name",
86
+ AliasedImport = "aliased_import",
87
+ WildcardImport = "wildcard_import",
88
+ RelativeImport = "relative_import",
89
+ ImportPrefix = "import_prefix"
90
+ }
91
+ /**
92
+ * Python AST 節點包裝器
93
+ */
94
+ export interface PythonASTNode extends ASTNode {
95
+ /** tree-sitter 原始節點 */
96
+ readonly treeSitterNode: TreeSitterNode;
97
+ /** Python 節點類型 */
98
+ readonly pythonKind: PythonNodeKind;
99
+ /** 裝飾器列表(如果有) */
100
+ readonly decorators?: readonly string[];
101
+ /** 型別註解(如果有) */
102
+ readonly typeAnnotation?: string;
103
+ }
104
+ /**
105
+ * Python AST 包裝器
106
+ */
107
+ export interface PythonAST extends AST {
108
+ readonly root: PythonASTNode;
109
+ /** tree-sitter 解析樹 */
110
+ readonly tree: TreeSitterTree;
111
+ }
112
+ /**
113
+ * Python 符號類型映射
114
+ */
115
+ export declare const PYTHON_SYMBOL_TYPE_MAP: Partial<Record<PythonNodeKind, SymbolType>>;
116
+ /**
117
+ * 控制流節點複雜度權重(用於複雜度分析)
118
+ */
119
+ export declare const COMPLEXITY_WEIGHTS: Partial<Record<PythonNodeKind, number>>;
120
+ /**
121
+ * 位置轉換:tree-sitter Point → Position
122
+ */
123
+ export declare function tsPointToPosition(point: TreeSitterPoint, offset: number): Position;
124
+ /**
125
+ * 範圍轉換:tree-sitter Node → Range
126
+ */
127
+ export declare function tsNodeToRange(node: TreeSitterNode): Range;
128
+ /**
129
+ * 節點類型字串轉 PythonNodeKind
130
+ */
131
+ export declare function nodeTypeToKind(type: string): PythonNodeKind;
132
+ /**
133
+ * 檢查路徑是否為相對導入
134
+ */
135
+ export declare function isRelativePath(path: string): boolean;
136
+ /**
137
+ * 驗證 Python 識別符名稱
138
+ */
139
+ export declare function isValidPythonIdentifier(name: string): boolean;
140
+ /**
141
+ * Python 解析錯誤類別
142
+ */
143
+ export declare class PythonParseError extends Error {
144
+ readonly filePath?: string | undefined;
145
+ readonly position?: Position | undefined;
146
+ constructor(message: string, filePath?: string | undefined, position?: Position | undefined);
147
+ }
148
+ /**
149
+ * 創建解析錯誤
150
+ */
151
+ export declare function createParseError(message: string, filePath?: string, position?: Position): PythonParseError;
152
+ /**
153
+ * Python 常用內建函數(用於安全檢查)
154
+ */
155
+ export declare const DANGEROUS_FUNCTIONS: Set<string>;
156
+ /**
157
+ * Python 安全性相關模組
158
+ */
159
+ export declare const SECURITY_SENSITIVE_MODULES: Set<string>;
160
+ /**
161
+ * PEP8 命名規範模式
162
+ */
163
+ export declare const NAMING_PATTERNS: {
164
+ /** snake_case:變數、函式、方法 */
165
+ snakeCase: RegExp;
166
+ /** UPPER_SNAKE_CASE:常量 */
167
+ upperSnakeCase: RegExp;
168
+ /** PascalCase:類別 */
169
+ pascalCase: RegExp;
170
+ /** _private:私有成員 */
171
+ privatePrefix: RegExp;
172
+ /** __dunder__:特殊方法 */
173
+ dunderPattern: RegExp;
174
+ };
175
+ /**
176
+ * 檢查是否為測試檔案
177
+ */
178
+ export declare function isPythonTestFile(filePath: string): boolean;
179
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/plugins/python/types.ts"],"names":[],"mappings":"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"}