@mycodemap/mycodemap 2.0.0 → 2.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (424) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/README.md +59 -184
  3. package/dist/cli/commands/agent-metrics/human.d.ts +4 -0
  4. package/dist/cli/commands/agent-metrics/human.d.ts.map +1 -0
  5. package/dist/cli/commands/agent-metrics/human.js +134 -0
  6. package/dist/cli/commands/agent-metrics/human.js.map +1 -0
  7. package/dist/cli/commands/agent-metrics/index.d.ts +15 -0
  8. package/dist/cli/commands/agent-metrics/index.d.ts.map +1 -0
  9. package/dist/cli/commands/agent-metrics/index.js +116 -0
  10. package/dist/cli/commands/agent-metrics/index.js.map +1 -0
  11. package/dist/cli/commands/analyze.d.ts +3 -196
  12. package/dist/cli/commands/analyze.d.ts.map +1 -1
  13. package/dist/cli/commands/analyze.js +9 -1163
  14. package/dist/cli/commands/analyze.js.map +1 -1
  15. package/dist/cli/commands/benchmark.d.ts.map +1 -1
  16. package/dist/cli/commands/benchmark.js +5 -2
  17. package/dist/cli/commands/benchmark.js.map +1 -1
  18. package/dist/cli/commands/complexity.d.ts.map +1 -1
  19. package/dist/cli/commands/complexity.js +62 -95
  20. package/dist/cli/commands/complexity.js.map +1 -1
  21. package/dist/cli/commands/deps.d.ts +3 -60
  22. package/dist/cli/commands/deps.d.ts.map +1 -1
  23. package/dist/cli/commands/deps.js +16 -351
  24. package/dist/cli/commands/deps.js.map +1 -1
  25. package/dist/cli/commands/env-contract.d.ts +3 -0
  26. package/dist/cli/commands/env-contract.d.ts.map +1 -0
  27. package/dist/cli/commands/env-contract.js +221 -0
  28. package/dist/cli/commands/env-contract.js.map +1 -0
  29. package/dist/cli/commands/generate.d.ts +19 -1
  30. package/dist/cli/commands/generate.d.ts.map +1 -1
  31. package/dist/cli/commands/generate.js +735 -89
  32. package/dist/cli/commands/generate.js.map +1 -1
  33. package/dist/cli/commands/impact.d.ts +4 -38
  34. package/dist/cli/commands/impact.d.ts.map +1 -1
  35. package/dist/cli/commands/impact.js +133 -375
  36. package/dist/cli/commands/impact.js.map +1 -1
  37. package/dist/cli/commands/init.d.ts +1 -0
  38. package/dist/cli/commands/init.d.ts.map +1 -1
  39. package/dist/cli/commands/init.js +61 -2
  40. package/dist/cli/commands/init.js.map +1 -1
  41. package/dist/cli/commands/preview.d.ts +3 -0
  42. package/dist/cli/commands/preview.d.ts.map +1 -0
  43. package/dist/cli/commands/preview.js +216 -0
  44. package/dist/cli/commands/preview.js.map +1 -0
  45. package/dist/cli/commands/query.d.ts +2 -21
  46. package/dist/cli/commands/query.d.ts.map +1 -1
  47. package/dist/cli/commands/query.js +15 -683
  48. package/dist/cli/commands/query.js.map +1 -1
  49. package/dist/cli/commands/watch-foreground.d.ts.map +1 -1
  50. package/dist/cli/commands/watch-foreground.js +5 -1
  51. package/dist/cli/commands/watch-foreground.js.map +1 -1
  52. package/dist/cli/config-loader.d.ts.map +1 -1
  53. package/dist/cli/config-loader.js +51 -13
  54. package/dist/cli/config-loader.js.map +1 -1
  55. package/dist/cli/doctor/check-env-contract.d.ts +3 -0
  56. package/dist/cli/doctor/check-env-contract.d.ts.map +1 -0
  57. package/dist/cli/doctor/check-env-contract.js +96 -0
  58. package/dist/cli/doctor/check-env-contract.js.map +1 -0
  59. package/dist/cli/doctor/check-native-deps.d.ts.map +1 -1
  60. package/dist/cli/doctor/check-native-deps.js +20 -4
  61. package/dist/cli/doctor/check-native-deps.js.map +1 -1
  62. package/dist/cli/doctor/orchestrator.d.ts.map +1 -1
  63. package/dist/cli/doctor/orchestrator.js +5 -2
  64. package/dist/cli/doctor/orchestrator.js.map +1 -1
  65. package/dist/cli/env-contract/check.d.ts +18 -0
  66. package/dist/cli/env-contract/check.d.ts.map +1 -0
  67. package/dist/cli/env-contract/check.js +118 -0
  68. package/dist/cli/env-contract/check.js.map +1 -0
  69. package/dist/cli/env-contract/discovery.d.ts +12 -0
  70. package/dist/cli/env-contract/discovery.d.ts.map +1 -0
  71. package/dist/cli/env-contract/discovery.js +249 -0
  72. package/dist/cli/env-contract/discovery.js.map +1 -0
  73. package/dist/cli/env-contract/filters.d.ts +10 -0
  74. package/dist/cli/env-contract/filters.d.ts.map +1 -0
  75. package/dist/cli/env-contract/filters.js +23 -0
  76. package/dist/cli/env-contract/filters.js.map +1 -0
  77. package/dist/cli/env-contract/index.d.ts +6 -0
  78. package/dist/cli/env-contract/index.d.ts.map +1 -0
  79. package/dist/cli/env-contract/index.js +8 -0
  80. package/dist/cli/env-contract/index.js.map +1 -0
  81. package/dist/cli/env-contract/reminder-engine.d.ts +34 -0
  82. package/dist/cli/env-contract/reminder-engine.d.ts.map +1 -0
  83. package/dist/cli/env-contract/reminder-engine.js +51 -0
  84. package/dist/cli/env-contract/reminder-engine.js.map +1 -0
  85. package/dist/cli/env-contract/reminder-hook-runner.d.ts +45 -0
  86. package/dist/cli/env-contract/reminder-hook-runner.d.ts.map +1 -0
  87. package/dist/cli/env-contract/reminder-hook-runner.js +273 -0
  88. package/dist/cli/env-contract/reminder-hook-runner.js.map +1 -0
  89. package/dist/cli/env-contract/reminder-ledger.d.ts +11 -0
  90. package/dist/cli/env-contract/reminder-ledger.d.ts.map +1 -0
  91. package/dist/cli/env-contract/reminder-ledger.js +37 -0
  92. package/dist/cli/env-contract/reminder-ledger.js.map +1 -0
  93. package/dist/cli/env-contract/types.d.ts +48 -0
  94. package/dist/cli/env-contract/types.d.ts.map +1 -0
  95. package/dist/cli/env-contract/types.js +22 -0
  96. package/dist/cli/env-contract/types.js.map +1 -0
  97. package/dist/cli/env-contract/validation.d.ts +10 -0
  98. package/dist/cli/env-contract/validation.d.ts.map +1 -0
  99. package/dist/cli/env-contract/validation.js +116 -0
  100. package/dist/cli/env-contract/validation.js.map +1 -0
  101. package/dist/cli/first-run-guide.d.ts.map +1 -1
  102. package/dist/cli/first-run-guide.js +8 -3
  103. package/dist/cli/first-run-guide.js.map +1 -1
  104. package/dist/cli/index.js +23 -3
  105. package/dist/cli/index.js.map +1 -1
  106. package/dist/cli/init/assistant-plan.d.ts +14 -0
  107. package/dist/cli/init/assistant-plan.d.ts.map +1 -0
  108. package/dist/cli/init/assistant-plan.js +208 -0
  109. package/dist/cli/init/assistant-plan.js.map +1 -0
  110. package/dist/cli/init/detect.d.ts +28 -0
  111. package/dist/cli/init/detect.d.ts.map +1 -0
  112. package/dist/cli/init/detect.js +63 -0
  113. package/dist/cli/init/detect.js.map +1 -0
  114. package/dist/cli/init/env-contract-plan.d.ts +28 -0
  115. package/dist/cli/init/env-contract-plan.d.ts.map +1 -0
  116. package/dist/cli/init/env-contract-plan.js +184 -0
  117. package/dist/cli/init/env-contract-plan.js.map +1 -0
  118. package/dist/cli/init/manifest-extractors.d.ts +22 -0
  119. package/dist/cli/init/manifest-extractors.d.ts.map +1 -0
  120. package/dist/cli/init/manifest-extractors.js +185 -0
  121. package/dist/cli/init/manifest-extractors.js.map +1 -0
  122. package/dist/cli/init/profile-loader.d.ts +49 -0
  123. package/dist/cli/init/profile-loader.d.ts.map +1 -0
  124. package/dist/cli/init/profile-loader.js +107 -0
  125. package/dist/cli/init/profile-loader.js.map +1 -0
  126. package/dist/cli/init/profile-plan.d.ts +38 -0
  127. package/dist/cli/init/profile-plan.d.ts.map +1 -0
  128. package/dist/cli/init/profile-plan.js +120 -0
  129. package/dist/cli/init/profile-plan.js.map +1 -0
  130. package/dist/cli/init/profiles/generic.json +16 -0
  131. package/dist/cli/init/profiles/go.json +12 -0
  132. package/dist/cli/init/profiles/nodejs.json +16 -0
  133. package/dist/cli/init/profiles/python.json +17 -0
  134. package/dist/cli/init/profiles/rust.json +12 -0
  135. package/dist/cli/init/receipt.d.ts.map +1 -1
  136. package/dist/cli/init/receipt.js +107 -7
  137. package/dist/cli/init/receipt.js.map +1 -1
  138. package/dist/cli/init/reconciler.d.ts +10 -1
  139. package/dist/cli/init/reconciler.d.ts.map +1 -1
  140. package/dist/cli/init/reconciler.js +85 -15
  141. package/dist/cli/init/reconciler.js.map +1 -1
  142. package/dist/cli/interface-contract/commands/agent-metrics.d.ts +3 -0
  143. package/dist/cli/interface-contract/commands/agent-metrics.d.ts.map +1 -0
  144. package/dist/cli/interface-contract/commands/agent-metrics.js +217 -0
  145. package/dist/cli/interface-contract/commands/agent-metrics.js.map +1 -0
  146. package/dist/cli/interface-contract/commands/analyze.d.ts.map +1 -1
  147. package/dist/cli/interface-contract/commands/analyze.js +1 -0
  148. package/dist/cli/interface-contract/commands/analyze.js.map +1 -1
  149. package/dist/cli/interface-contract/commands/benchmark.d.ts.map +1 -1
  150. package/dist/cli/interface-contract/commands/benchmark.js +1 -0
  151. package/dist/cli/interface-contract/commands/benchmark.js.map +1 -1
  152. package/dist/cli/interface-contract/commands/deps.d.ts.map +1 -1
  153. package/dist/cli/interface-contract/commands/deps.js +1 -0
  154. package/dist/cli/interface-contract/commands/deps.js.map +1 -1
  155. package/dist/cli/interface-contract/commands/doctor.d.ts.map +1 -1
  156. package/dist/cli/interface-contract/commands/doctor.js +1 -0
  157. package/dist/cli/interface-contract/commands/doctor.js.map +1 -1
  158. package/dist/cli/interface-contract/commands/env-contract.d.ts +3 -0
  159. package/dist/cli/interface-contract/commands/env-contract.d.ts.map +1 -0
  160. package/dist/cli/interface-contract/commands/env-contract.js +168 -0
  161. package/dist/cli/interface-contract/commands/env-contract.js.map +1 -0
  162. package/dist/cli/interface-contract/commands/index.d.ts +5 -2
  163. package/dist/cli/interface-contract/commands/index.d.ts.map +1 -1
  164. package/dist/cli/interface-contract/commands/index.js +7 -1
  165. package/dist/cli/interface-contract/commands/index.js.map +1 -1
  166. package/dist/cli/interface-contract/commands/init.d.ts.map +1 -1
  167. package/dist/cli/interface-contract/commands/init.js +9 -0
  168. package/dist/cli/interface-contract/commands/init.js.map +1 -1
  169. package/dist/cli/interface-contract/commands/preview.d.ts +3 -0
  170. package/dist/cli/interface-contract/commands/preview.d.ts.map +1 -0
  171. package/dist/cli/interface-contract/commands/preview.js +118 -0
  172. package/dist/cli/interface-contract/commands/preview.js.map +1 -0
  173. package/dist/cli/interface-contract/commands/query.d.ts.map +1 -1
  174. package/dist/cli/interface-contract/commands/query.js +1 -0
  175. package/dist/cli/interface-contract/commands/query.js.map +1 -1
  176. package/dist/cli/interface-contract/index.d.ts +1 -1
  177. package/dist/cli/interface-contract/index.d.ts.map +1 -1
  178. package/dist/cli/interface-contract/index.js +2 -2
  179. package/dist/cli/interface-contract/index.js.map +1 -1
  180. package/dist/cli/interface-contract/schema.d.ts.map +1 -1
  181. package/dist/cli/interface-contract/schema.js +1 -0
  182. package/dist/cli/interface-contract/schema.js.map +1 -1
  183. package/dist/cli/interface-contract/types.d.ts +1 -0
  184. package/dist/cli/interface-contract/types.d.ts.map +1 -1
  185. package/dist/cli/output/error-codes.d.ts +2 -0
  186. package/dist/cli/output/error-codes.d.ts.map +1 -1
  187. package/dist/cli/output/error-codes.js +12 -0
  188. package/dist/cli/output/error-codes.js.map +1 -1
  189. package/dist/cli/output/errors.d.ts.map +1 -1
  190. package/dist/cli/output/errors.js +12 -0
  191. package/dist/cli/output/errors.js.map +1 -1
  192. package/dist/cli/output/wasm-fallback.d.ts +1 -0
  193. package/dist/cli/output/wasm-fallback.d.ts.map +1 -1
  194. package/dist/cli/output/wasm-fallback.js.map +1 -1
  195. package/dist/cli/preview/complexity-scanner.d.ts +21 -0
  196. package/dist/cli/preview/complexity-scanner.d.ts.map +1 -0
  197. package/dist/cli/preview/complexity-scanner.js +52 -0
  198. package/dist/cli/preview/complexity-scanner.js.map +1 -0
  199. package/dist/cli/preview/dependency-extractor.d.ts +38 -0
  200. package/dist/cli/preview/dependency-extractor.d.ts.map +1 -0
  201. package/dist/cli/preview/dependency-extractor.js +140 -0
  202. package/dist/cli/preview/dependency-extractor.js.map +1 -0
  203. package/dist/cli/preview/preview-renderer.d.ts +32 -0
  204. package/dist/cli/preview/preview-renderer.d.ts.map +1 -0
  205. package/dist/cli/preview/preview-renderer.js +54 -0
  206. package/dist/cli/preview/preview-renderer.js.map +1 -0
  207. package/dist/cli/storage-runtime.d.ts +7 -0
  208. package/dist/cli/storage-runtime.d.ts.map +1 -1
  209. package/dist/cli/storage-runtime.js +22 -0
  210. package/dist/cli/storage-runtime.js.map +1 -1
  211. package/dist/cli-new/index.js +1 -1
  212. package/dist/cli-new/index.js.map +1 -1
  213. package/dist/composition/parser-composition.d.ts +7 -0
  214. package/dist/composition/parser-composition.d.ts.map +1 -0
  215. package/dist/composition/parser-composition.js +15 -0
  216. package/dist/composition/parser-composition.js.map +1 -0
  217. package/dist/core/analyzer.d.ts.map +1 -1
  218. package/dist/core/analyzer.js +83 -67
  219. package/dist/core/analyzer.js.map +1 -1
  220. package/dist/core/ast-complexity-analyzer.d.ts +12 -6
  221. package/dist/core/ast-complexity-analyzer.d.ts.map +1 -1
  222. package/dist/core/ast-complexity-analyzer.js +368 -209
  223. package/dist/core/ast-complexity-analyzer.js.map +1 -1
  224. package/dist/core/file-discovery.d.ts +1 -1
  225. package/dist/core/file-discovery.d.ts.map +1 -1
  226. package/dist/core/file-discovery.js +3 -0
  227. package/dist/core/file-discovery.js.map +1 -1
  228. package/dist/core/global-index.d.ts +3 -1
  229. package/dist/core/global-index.d.ts.map +1 -1
  230. package/dist/core/global-index.js +69 -4
  231. package/dist/core/global-index.js.map +1 -1
  232. package/dist/domain/entities/CodeGraph.d.ts +3 -0
  233. package/dist/domain/entities/CodeGraph.d.ts.map +1 -1
  234. package/dist/domain/entities/CodeGraph.js +19 -2
  235. package/dist/domain/entities/CodeGraph.js.map +1 -1
  236. package/dist/domain/entities/Dependency.d.ts +5 -2
  237. package/dist/domain/entities/Dependency.d.ts.map +1 -1
  238. package/dist/domain/entities/Dependency.js +49 -3
  239. package/dist/domain/entities/Dependency.js.map +1 -1
  240. package/dist/domain/repositories/CodeGraphRepository.d.ts +5 -0
  241. package/dist/domain/repositories/CodeGraphRepository.d.ts.map +1 -1
  242. package/dist/domain/repositories/CodeGraphRepository.js.map +1 -1
  243. package/dist/execution/contract-tools/analyze.d.ts +205 -0
  244. package/dist/execution/contract-tools/analyze.d.ts.map +1 -0
  245. package/dist/execution/contract-tools/analyze.js +1215 -0
  246. package/dist/execution/contract-tools/analyze.js.map +1 -0
  247. package/dist/execution/contract-tools/deps.d.ts +62 -0
  248. package/dist/execution/contract-tools/deps.d.ts.map +1 -0
  249. package/dist/execution/contract-tools/deps.js +234 -0
  250. package/dist/execution/contract-tools/deps.js.map +1 -0
  251. package/dist/execution/contract-tools/index.d.ts +5 -0
  252. package/dist/execution/contract-tools/index.d.ts.map +1 -0
  253. package/dist/execution/contract-tools/index.js +7 -0
  254. package/dist/execution/contract-tools/index.js.map +1 -0
  255. package/dist/execution/contract-tools/query.d.ts +60 -0
  256. package/dist/execution/contract-tools/query.d.ts.map +1 -0
  257. package/dist/execution/contract-tools/query.js +532 -0
  258. package/dist/execution/contract-tools/query.js.map +1 -0
  259. package/dist/execution/contract-tools/types.d.ts +26 -0
  260. package/dist/execution/contract-tools/types.d.ts.map +1 -0
  261. package/dist/execution/contract-tools/types.js +32 -0
  262. package/dist/execution/contract-tools/types.js.map +1 -0
  263. package/dist/generator/index.d.ts.map +1 -1
  264. package/dist/generator/index.js +0 -3
  265. package/dist/generator/index.js.map +1 -1
  266. package/dist/infrastructure/parser/enhancers/TypeScriptTypeEnhancer.d.ts +12 -0
  267. package/dist/infrastructure/parser/enhancers/TypeScriptTypeEnhancer.d.ts.map +1 -0
  268. package/dist/infrastructure/parser/enhancers/TypeScriptTypeEnhancer.js +55 -0
  269. package/dist/infrastructure/parser/enhancers/TypeScriptTypeEnhancer.js.map +1 -0
  270. package/dist/infrastructure/parser/implementations/GoParser.d.ts +2 -1
  271. package/dist/infrastructure/parser/implementations/GoParser.d.ts.map +1 -1
  272. package/dist/infrastructure/parser/implementations/GoParser.js +13 -1
  273. package/dist/infrastructure/parser/implementations/GoParser.js.map +1 -1
  274. package/dist/infrastructure/parser/implementations/PythonTreeSitterParser.d.ts +114 -0
  275. package/dist/infrastructure/parser/implementations/PythonTreeSitterParser.d.ts.map +1 -0
  276. package/dist/infrastructure/parser/implementations/PythonTreeSitterParser.js +1022 -0
  277. package/dist/infrastructure/parser/implementations/PythonTreeSitterParser.js.map +1 -0
  278. package/dist/infrastructure/parser/implementations/TreeSitterParser.d.ts +78 -0
  279. package/dist/infrastructure/parser/implementations/TreeSitterParser.d.ts.map +1 -0
  280. package/dist/infrastructure/parser/implementations/TreeSitterParser.js +648 -0
  281. package/dist/infrastructure/parser/implementations/TreeSitterParser.js.map +1 -0
  282. package/dist/infrastructure/parser/implementations/TypeScriptParser.d.ts +3 -55
  283. package/dist/infrastructure/parser/implementations/TypeScriptParser.d.ts.map +1 -1
  284. package/dist/infrastructure/parser/implementations/TypeScriptParser.js +4 -411
  285. package/dist/infrastructure/parser/implementations/TypeScriptParser.js.map +1 -1
  286. package/dist/infrastructure/parser/index.d.ts +2 -0
  287. package/dist/infrastructure/parser/index.d.ts.map +1 -1
  288. package/dist/infrastructure/parser/index.js +9 -6
  289. package/dist/infrastructure/parser/index.js.map +1 -1
  290. package/dist/infrastructure/parser/interfaces/ParserBase.d.ts.map +1 -1
  291. package/dist/infrastructure/parser/interfaces/ParserBase.js +1 -0
  292. package/dist/infrastructure/parser/interfaces/ParserBase.js.map +1 -1
  293. package/dist/infrastructure/repositories/CodeGraphRepositoryImpl.d.ts +2 -0
  294. package/dist/infrastructure/repositories/CodeGraphRepositoryImpl.d.ts.map +1 -1
  295. package/dist/infrastructure/repositories/CodeGraphRepositoryImpl.js +4 -0
  296. package/dist/infrastructure/repositories/CodeGraphRepositoryImpl.js.map +1 -1
  297. package/dist/infrastructure/storage/StorageFactory.d.ts +5 -18
  298. package/dist/infrastructure/storage/StorageFactory.d.ts.map +1 -1
  299. package/dist/infrastructure/storage/StorageFactory.js +30 -98
  300. package/dist/infrastructure/storage/StorageFactory.js.map +1 -1
  301. package/dist/infrastructure/storage/adapters/SQLiteStorage.d.ts +13 -1
  302. package/dist/infrastructure/storage/adapters/SQLiteStorage.d.ts.map +1 -1
  303. package/dist/infrastructure/storage/adapters/SQLiteStorage.js +321 -75
  304. package/dist/infrastructure/storage/adapters/SQLiteStorage.js.map +1 -1
  305. package/dist/infrastructure/storage/adapters/sqlite-loader.d.ts +22 -0
  306. package/dist/infrastructure/storage/adapters/sqlite-loader.d.ts.map +1 -1
  307. package/dist/infrastructure/storage/adapters/sqlite-loader.js +78 -22
  308. package/dist/infrastructure/storage/adapters/sqlite-loader.js.map +1 -1
  309. package/dist/infrastructure/storage/community-helpers.d.ts +4 -0
  310. package/dist/infrastructure/storage/community-helpers.d.ts.map +1 -0
  311. package/dist/infrastructure/storage/community-helpers.js +392 -0
  312. package/dist/infrastructure/storage/community-helpers.js.map +1 -0
  313. package/dist/infrastructure/storage/graph-helpers.d.ts +22 -5
  314. package/dist/infrastructure/storage/graph-helpers.d.ts.map +1 -1
  315. package/dist/infrastructure/storage/graph-helpers.js +496 -91
  316. package/dist/infrastructure/storage/graph-helpers.js.map +1 -1
  317. package/dist/infrastructure/storage/index.d.ts +1 -1
  318. package/dist/infrastructure/storage/index.d.ts.map +1 -1
  319. package/dist/infrastructure/storage/index.js +1 -1
  320. package/dist/infrastructure/storage/index.js.map +1 -1
  321. package/dist/infrastructure/storage/interfaces/StorageBase.d.ts +2 -2
  322. package/dist/infrastructure/storage/interfaces/StorageBase.d.ts.map +1 -1
  323. package/dist/infrastructure/storage/interfaces/StorageBase.js.map +1 -1
  324. package/dist/infrastructure/storage/sqlite/GovernanceGraphCache.d.ts +2 -0
  325. package/dist/infrastructure/storage/sqlite/GovernanceGraphCache.d.ts.map +1 -1
  326. package/dist/infrastructure/storage/sqlite/GovernanceGraphCache.js +52 -12
  327. package/dist/infrastructure/storage/sqlite/GovernanceGraphCache.js.map +1 -1
  328. package/dist/infrastructure/storage/sqlite/schema.d.ts +2 -2
  329. package/dist/infrastructure/storage/sqlite/schema.d.ts.map +1 -1
  330. package/dist/infrastructure/storage/sqlite/schema.js +49 -1
  331. package/dist/infrastructure/storage/sqlite/schema.js.map +1 -1
  332. package/dist/interface/config/index.d.ts +5 -3
  333. package/dist/interface/config/index.d.ts.map +1 -1
  334. package/dist/interface/types/index.d.ts +37 -6
  335. package/dist/interface/types/index.d.ts.map +1 -1
  336. package/dist/interface/types/parser.d.ts +85 -0
  337. package/dist/interface/types/parser.d.ts.map +1 -1
  338. package/dist/interface/types/storage.d.ts +227 -10
  339. package/dist/interface/types/storage.d.ts.map +1 -1
  340. package/dist/orchestrator/agent-metrics-service.d.ts +126 -0
  341. package/dist/orchestrator/agent-metrics-service.d.ts.map +1 -0
  342. package/dist/orchestrator/agent-metrics-service.js +444 -0
  343. package/dist/orchestrator/agent-metrics-service.js.map +1 -0
  344. package/dist/parser/enhancers/PythonTypeEnhancer.d.ts +26 -0
  345. package/dist/parser/enhancers/PythonTypeEnhancer.d.ts.map +1 -0
  346. package/dist/parser/enhancers/PythonTypeEnhancer.js +440 -0
  347. package/dist/parser/enhancers/PythonTypeEnhancer.js.map +1 -0
  348. package/dist/parser/implementations/smart-parser.d.ts.map +1 -1
  349. package/dist/parser/implementations/smart-parser.js +7 -69
  350. package/dist/parser/implementations/smart-parser.js.map +1 -1
  351. package/dist/parser/implementations/tree-sitter-loader.d.ts +2 -0
  352. package/dist/parser/implementations/tree-sitter-loader.d.ts.map +1 -1
  353. package/dist/parser/implementations/tree-sitter-loader.js +46 -15
  354. package/dist/parser/implementations/tree-sitter-loader.js.map +1 -1
  355. package/dist/parser/index.d.ts +5 -3
  356. package/dist/parser/index.d.ts.map +1 -1
  357. package/dist/parser/index.js +68 -6
  358. package/dist/parser/index.js.map +1 -1
  359. package/dist/parser/interfaces/IParser.d.ts +19 -6
  360. package/dist/parser/interfaces/IParser.d.ts.map +1 -1
  361. package/dist/parser/interfaces/IParser.js +2 -3
  362. package/dist/parser/interfaces/IParser.js.map +1 -1
  363. package/dist/server/handlers/AnalysisHandler.d.ts +13 -2
  364. package/dist/server/handlers/AnalysisHandler.d.ts.map +1 -1
  365. package/dist/server/handlers/AnalysisHandler.js +24 -0
  366. package/dist/server/handlers/AnalysisHandler.js.map +1 -1
  367. package/dist/server/handlers/QueryHandler.d.ts.map +1 -1
  368. package/dist/server/handlers/QueryHandler.js +11 -30
  369. package/dist/server/handlers/QueryHandler.js.map +1 -1
  370. package/dist/server/mcp/context-tool.d.ts +9 -0
  371. package/dist/server/mcp/context-tool.d.ts.map +1 -0
  372. package/dist/server/mcp/context-tool.js +257 -0
  373. package/dist/server/mcp/context-tool.js.map +1 -0
  374. package/dist/server/mcp/schema-adapter.d.ts +11 -1
  375. package/dist/server/mcp/schema-adapter.d.ts.map +1 -1
  376. package/dist/server/mcp/schema-adapter.js +126 -7
  377. package/dist/server/mcp/schema-adapter.js.map +1 -1
  378. package/dist/server/mcp/server.d.ts +3 -3
  379. package/dist/server/mcp/server.d.ts.map +1 -1
  380. package/dist/server/mcp/server.js +114 -30
  381. package/dist/server/mcp/server.js.map +1 -1
  382. package/dist/server/mcp/service.d.ts +6 -2
  383. package/dist/server/mcp/service.d.ts.map +1 -1
  384. package/dist/server/mcp/service.js +138 -36
  385. package/dist/server/mcp/service.js.map +1 -1
  386. package/dist/server/mcp/stdio-transport.d.ts +23 -0
  387. package/dist/server/mcp/stdio-transport.d.ts.map +1 -0
  388. package/dist/server/mcp/stdio-transport.js +101 -0
  389. package/dist/server/mcp/stdio-transport.js.map +1 -0
  390. package/dist/server/mcp/types.d.ts +133 -8
  391. package/dist/server/mcp/types.d.ts.map +1 -1
  392. package/dist/server/routes/api.d.ts.map +1 -1
  393. package/dist/server/routes/api.js +11 -2
  394. package/dist/server/routes/api.js.map +1 -1
  395. package/docs/AI_ASSISTANT_SETUP.md +112 -0
  396. package/docs/API.md +170 -0
  397. package/docs/CONFIGURATION.md +141 -0
  398. package/docs/DEVELOPMENT.md +96 -0
  399. package/docs/GETTING-STARTED.md +114 -0
  400. package/docs/SETUP_GUIDE.md +49 -0
  401. package/docs/TESTING.md +81 -0
  402. package/docs/ai-guide/OUTPUT.md +51 -8
  403. package/docs/backlog.md +232 -144
  404. package/docs/brainstorms/2026-05-10-agent-effectiveness-validation-requirements.md +112 -0
  405. package/docs/generated/phase-58/subagent-evidence/claude-hook-example.json +15 -0
  406. package/docs/generated/phase-58/subagent-evidence/claude-session.md +146 -0
  407. package/docs/generated/phase-58/subagent-evidence/claude-subagent.json +28 -0
  408. package/docs/generated/phase-58/subagent-evidence/codex-agent-example.toml +19 -0
  409. package/docs/generated/phase-58/subagent-evidence/codex-session.md +150 -0
  410. package/docs/generated/phase-58/subagent-evidence/codex-subagent.json +20 -0
  411. package/docs/generated/phase-58/subagent-evidence/negative-no-retrieval.json +12 -0
  412. package/docs/generated/phase-58/subagent-evidence/verification-manifest.json +19 -0
  413. package/docs/ideation/2026-05-02-subagent-environment-contract-injection-ideation.md +183 -0
  414. package/docs/ideation/2026-05-04-subagent-hooks-deep-dive-ideation.md +133 -0
  415. package/docs/ideation/2026-05-10-agent-effectiveness-validation-ideation.md +219 -0
  416. package/package.json +8 -3
  417. package/scripts/copy-build-assets.mjs +23 -0
  418. package/scripts/hooks/templates/pre-commit +33 -2
  419. package/scripts/tests/test_rule_control_workflow.py +15 -1
  420. package/scripts/verify-subagent-env-contract.mjs +279 -0
  421. package/dist/parser/implementations/tree-sitter-parser.d.ts +0 -60
  422. package/dist/parser/implementations/tree-sitter-parser.d.ts.map +0 -1
  423. package/dist/parser/implementations/tree-sitter-parser.js +0 -380
  424. package/dist/parser/implementations/tree-sitter-parser.js.map +0 -1
@@ -0,0 +1,38 @@
1
+ export interface DependencyExtractionResult {
2
+ direct: string[];
3
+ count: number;
4
+ }
5
+ /**
6
+ * Extract direct and dev dependencies from a Node.js package.json.
7
+ * Returns concatenated keys of `dependencies` and `devDependencies`.
8
+ * Returns [] on any error (missing file, invalid JSON, etc.).
9
+ */
10
+ export declare function extractNodeDeps(rootDir: string): string[];
11
+ /**
12
+ * Extract direct dependencies from a Go go.mod file.
13
+ * Handles both `require (` blocks and single-line `require` statements.
14
+ * Strips `// indirect` and `// direct` inline comments before parsing.
15
+ * Returns [] on any error (missing file, read failure, etc.).
16
+ */
17
+ export declare function extractGoDeps(rootDir: string): string[];
18
+ /**
19
+ * Extract direct and dev dependencies from a Rust Cargo.toml file.
20
+ * Uses smol-toml (dynamic import) for TOML parsing.
21
+ * Returns [] on any error (missing file, parse failure, smol-toml import failure, etc.).
22
+ */
23
+ export declare function extractRustDeps(rootDir: string): Promise<string[]>;
24
+ /**
25
+ * Extract direct dependencies from a Python pyproject.toml file.
26
+ * Supports both PEP 621 `[project.dependencies]` and Poetry
27
+ * `[tool.poetry.dependencies]` formats.
28
+ * Uses smol-toml (dynamic import) for TOML parsing.
29
+ * Returns [] on any error (missing file, parse failure, smol-toml import failure, etc.).
30
+ */
31
+ export declare function extractPythonDeps(rootDir: string): Promise<string[]>;
32
+ /**
33
+ * Extract all direct dependencies from all supported marker files.
34
+ * Calls all four extractors and deduplicates the results.
35
+ * Returns { direct: string[], count: number }.
36
+ */
37
+ export declare function extractDependencies(rootDir: string): Promise<DependencyExtractionResult>;
38
+ //# sourceMappingURL=dependency-extractor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dependency-extractor.d.ts","sourceRoot":"","sources":["../../../src/cli/preview/dependency-extractor.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAWzD;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAkCvD;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAiBxE;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CA2B1E;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAW9F"}
@@ -0,0 +1,140 @@
1
+ // [META] since:2026-05-02 | owner:cli-team | stable:false
2
+ // [WHY] Marker-file dependency extraction for codemap preview — reads package.json,
3
+ // go.mod, Cargo.toml, pyproject.toml to list direct dependencies without source-code
4
+ // parsing. Graceful degradation: each extractor returns [] on missing/unparseable files.
5
+ import { readFileSync } from 'node:fs';
6
+ import path from 'node:path';
7
+ /**
8
+ * Extract direct and dev dependencies from a Node.js package.json.
9
+ * Returns concatenated keys of `dependencies` and `devDependencies`.
10
+ * Returns [] on any error (missing file, invalid JSON, etc.).
11
+ */
12
+ export function extractNodeDeps(rootDir) {
13
+ try {
14
+ const content = readFileSync(path.join(rootDir, 'package.json'), 'utf8');
15
+ const pkg = JSON.parse(content);
16
+ return [
17
+ ...Object.keys(pkg.dependencies || {}),
18
+ ...Object.keys(pkg.devDependencies || {}),
19
+ ];
20
+ }
21
+ catch {
22
+ return [];
23
+ }
24
+ }
25
+ /**
26
+ * Extract direct dependencies from a Go go.mod file.
27
+ * Handles both `require (` blocks and single-line `require` statements.
28
+ * Strips `// indirect` and `// direct` inline comments before parsing.
29
+ * Returns [] on any error (missing file, read failure, etc.).
30
+ */
31
+ export function extractGoDeps(rootDir) {
32
+ try {
33
+ const content = readFileSync(path.join(rootDir, 'go.mod'), 'utf8');
34
+ const deps = [];
35
+ let inRequire = false;
36
+ for (const line of content.split('\n')) {
37
+ const trimmed = line.trim();
38
+ if (trimmed.startsWith('require (')) {
39
+ inRequire = true;
40
+ continue;
41
+ }
42
+ if (inRequire && trimmed === ')') {
43
+ inRequire = false;
44
+ continue;
45
+ }
46
+ if (inRequire) {
47
+ // Strip inline comments: "github.com/pkg v1.0 // indirect"
48
+ const depLine = trimmed.replace(/\/\/.*$/, '').trim();
49
+ const match = depLine.match(/^(\S+)\s+v\S+/);
50
+ if (match)
51
+ deps.push(match[1]);
52
+ }
53
+ else if (trimmed.startsWith('require ')) {
54
+ // Single-line require: "require github.com/pkg v1.0"
55
+ const depLine = trimmed.replace(/\/\/.*$/, '').trim();
56
+ const match = depLine.match(/^require\s+(\S+)\s+v\S+/);
57
+ if (match)
58
+ deps.push(match[1]);
59
+ }
60
+ }
61
+ return deps;
62
+ }
63
+ catch {
64
+ return [];
65
+ }
66
+ }
67
+ /**
68
+ * Extract direct and dev dependencies from a Rust Cargo.toml file.
69
+ * Uses smol-toml (dynamic import) for TOML parsing.
70
+ * Returns [] on any error (missing file, parse failure, smol-toml import failure, etc.).
71
+ */
72
+ export async function extractRustDeps(rootDir) {
73
+ try {
74
+ const content = readFileSync(path.join(rootDir, 'Cargo.toml'), 'utf8');
75
+ const { parse: parseToml } = await import('smol-toml');
76
+ const parsed = parseToml(content);
77
+ const deps = [];
78
+ if (parsed.dependencies && typeof parsed.dependencies === 'object') {
79
+ deps.push(...Object.keys(parsed.dependencies));
80
+ }
81
+ if (parsed['dev-dependencies'] && typeof parsed['dev-dependencies'] === 'object') {
82
+ deps.push(...Object.keys(parsed['dev-dependencies']));
83
+ }
84
+ return deps;
85
+ }
86
+ catch {
87
+ return [];
88
+ }
89
+ }
90
+ /**
91
+ * Extract direct dependencies from a Python pyproject.toml file.
92
+ * Supports both PEP 621 `[project.dependencies]` and Poetry
93
+ * `[tool.poetry.dependencies]` formats.
94
+ * Uses smol-toml (dynamic import) for TOML parsing.
95
+ * Returns [] on any error (missing file, parse failure, smol-toml import failure, etc.).
96
+ */
97
+ export async function extractPythonDeps(rootDir) {
98
+ try {
99
+ const content = readFileSync(path.join(rootDir, 'pyproject.toml'), 'utf8');
100
+ const { parse: parseToml } = await import('smol-toml');
101
+ const parsed = parseToml(content);
102
+ const deps = [];
103
+ // PEP 621 format: [project.dependencies]
104
+ const project = parsed.project;
105
+ if (project?.dependencies && Array.isArray(project.dependencies)) {
106
+ for (const dep of project.dependencies) {
107
+ const name = dep.match(/^([A-Za-z0-9_-]+)/)?.[1];
108
+ if (name)
109
+ deps.push(name);
110
+ }
111
+ }
112
+ // Poetry format: [tool.poetry.dependencies]
113
+ const tool = parsed.tool;
114
+ const poetry = tool?.poetry;
115
+ if (poetry?.dependencies && typeof poetry.dependencies === 'object') {
116
+ deps.push(...Object.keys(poetry.dependencies));
117
+ }
118
+ return deps;
119
+ }
120
+ catch {
121
+ return [];
122
+ }
123
+ }
124
+ /**
125
+ * Extract all direct dependencies from all supported marker files.
126
+ * Calls all four extractors and deduplicates the results.
127
+ * Returns { direct: string[], count: number }.
128
+ */
129
+ export async function extractDependencies(rootDir) {
130
+ const [nodeDeps, goDeps, rustDeps, pythonDeps] = await Promise.all([
131
+ Promise.resolve(extractNodeDeps(rootDir)),
132
+ Promise.resolve(extractGoDeps(rootDir)),
133
+ extractRustDeps(rootDir),
134
+ extractPythonDeps(rootDir),
135
+ ]);
136
+ const all = [...nodeDeps, ...goDeps, ...rustDeps, ...pythonDeps];
137
+ const direct = Array.from(new Set(all));
138
+ return { direct, count: direct.length };
139
+ }
140
+ //# sourceMappingURL=dependency-extractor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dependency-extractor.js","sourceRoot":"","sources":["../../../src/cli/preview/dependency-extractor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ export interface PreviewData {
2
+ projectType: string;
3
+ profile: string;
4
+ files: {
5
+ total: number;
6
+ byExtension: Record<string, number>;
7
+ };
8
+ modules: {
9
+ count: number;
10
+ top: string[];
11
+ };
12
+ dependencies: {
13
+ direct: string[];
14
+ count: number;
15
+ };
16
+ complexity: {
17
+ hotspots: Array<{
18
+ file: string;
19
+ score: number;
20
+ functions: number;
21
+ }>;
22
+ };
23
+ hint: string;
24
+ }
25
+ /**
26
+ * Format preview data as human-readable output with chalk colors.
27
+ *
28
+ * Renders four sections (files, modules, dependencies, complexity hotspots)
29
+ * and always appends the hint text at the end (per D-10).
30
+ */
31
+ export declare function formatPreviewHuman(data: PreviewData): string;
32
+ //# sourceMappingURL=preview-renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preview-renderer.d.ts","sourceRoot":"","sources":["../../../src/cli/preview/preview-renderer.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACrC,CAAC;IACF,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,EAAE,CAAC;KACf,CAAC;IACF,YAAY,EAAE;QACZ,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,UAAU,EAAE;QACV,QAAQ,EAAE,KAAK,CAAC;YACd,IAAI,EAAE,MAAM,CAAC;YACb,KAAK,EAAE,MAAM,CAAC;YACd,SAAS,EAAE,MAAM,CAAC;SACnB,CAAC,CAAC;KACJ,CAAC;IACF,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAiD5D"}
@@ -0,0 +1,54 @@
1
+ // [META] since:2026-05-02 | owner:cli-team | stable:false
2
+ // [WHY] Human-readable output formatting for codemap preview — renders the four-section
3
+ // summary as a table/color console output.
4
+ import chalk from 'chalk';
5
+ /**
6
+ * Format preview data as human-readable output with chalk colors.
7
+ *
8
+ * Renders four sections (files, modules, dependencies, complexity hotspots)
9
+ * and always appends the hint text at the end (per D-10).
10
+ */
11
+ export function formatPreviewHuman(data) {
12
+ const lines = [];
13
+ // Header
14
+ lines.push(chalk.cyan.bold('CodeMap Preview'));
15
+ lines.push('');
16
+ // Project type & profile
17
+ lines.push(chalk.white('Project: ') + `${data.projectType} (profile: ${data.profile})`);
18
+ lines.push('');
19
+ // Files section
20
+ const extBreakdown = Object.entries(data.files.byExtension)
21
+ .sort((a, b) => b[1] - a[1])
22
+ .map(([ext, count]) => `${ext.toUpperCase().replace('.', '')}: ${count}`)
23
+ .join(', ');
24
+ lines.push(chalk.blue('Files: ') + `${data.files.total} total source files` +
25
+ (extBreakdown ? ` (${extBreakdown})` : ''));
26
+ lines.push('');
27
+ // Modules section
28
+ const topDirs = data.modules.top.length > 0
29
+ ? data.modules.top.join(', ')
30
+ : 'none';
31
+ lines.push(chalk.blue('Modules: ') + `${data.modules.count} modules — ${topDirs}`);
32
+ lines.push('');
33
+ // Dependencies section
34
+ const depDisplay = data.dependencies.count > 0
35
+ ? `${data.dependencies.count} direct dependencies — ${data.dependencies.direct.slice(0, 10).join(', ')}`
36
+ : 'none detected';
37
+ lines.push(chalk.blue('Dependencies: ') + depDisplay);
38
+ lines.push('');
39
+ // Complexity hotspots section
40
+ lines.push(chalk.blue('Complexity hotspots:'));
41
+ if (data.complexity.hotspots.length === 0) {
42
+ lines.push(chalk.gray(' (no JS/TS files found for complexity analysis)'));
43
+ }
44
+ else {
45
+ data.complexity.hotspots.forEach((hotspot, i) => {
46
+ lines.push(` ${i + 1}. ${chalk.white(hotspot.file)} (score=${hotspot.score}, functions=${hotspot.functions})`);
47
+ });
48
+ }
49
+ lines.push('');
50
+ // Hint (always appended per D-10)
51
+ lines.push(chalk.gray(data.hint));
52
+ return lines.join('\n');
53
+ }
54
+ //# sourceMappingURL=preview-renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preview-renderer.js","sourceRoot":"","sources":["../../../src/cli/preview/preview-renderer.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,15 @@
1
1
  import type { IStorage } from '../interface/types/storage.js';
2
+ import type { CodeMap } from '../types/index.js';
2
3
  import { type LoadedCodemapConfig } from './config-loader.js';
3
4
  export interface LoadedStorageRuntime {
4
5
  loadedConfig: LoadedCodemapConfig;
5
6
  storage: IStorage;
6
7
  }
8
+ export interface LoadedCodeMapRuntime {
9
+ rootDir: string;
10
+ dataPath: string;
11
+ codeMap: CodeMap;
12
+ }
7
13
  export declare function createConfiguredStorage(rootDir?: string): Promise<LoadedStorageRuntime>;
14
+ export declare function loadCodeMapRuntime(rootDir?: string): Promise<LoadedCodeMapRuntime>;
8
15
  //# sourceMappingURL=storage-runtime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"storage-runtime.d.ts","sourceRoot":"","sources":["../../src/cli/storage-runtime.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAE9D,OAAO,EAAqB,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEjF,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,mBAAmB,CAAC;IAClC,OAAO,EAAE,QAAQ,CAAC;CACnB;AAED,wBAAsB,uBAAuB,CAAC,OAAO,GAAE,MAAc,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAQpG"}
1
+ {"version":3,"file":"storage-runtime.d.ts","sourceRoot":"","sources":["../../src/cli/storage-runtime.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAGjD,OAAO,EAAqB,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEjF,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,mBAAmB,CAAC;IAClC,OAAO,EAAE,QAAQ,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,wBAAsB,uBAAuB,CAAC,OAAO,GAAE,MAAc,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAQpG;AAED,wBAAsB,kBAAkB,CAAC,OAAO,GAAE,MAAc,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAsB/F"}
@@ -1,7 +1,9 @@
1
1
  // [META] since:2026-03-24 | owner:cli-team | stable:false
2
2
  // [WHY] Centralize CLI storage configuration loading so runtime commands honor the configured backend
3
+ import { readFile } from 'node:fs/promises';
3
4
  import { cwd } from 'node:process';
4
5
  import { storageFactory } from '../infrastructure/storage/StorageFactory.js';
6
+ import { resolveDataPath } from './paths.js';
5
7
  import { loadCodemapConfig } from './config-loader.js';
6
8
  export async function createConfiguredStorage(rootDir = cwd()) {
7
9
  const loadedConfig = await loadCodemapConfig(rootDir);
@@ -11,4 +13,24 @@ export async function createConfiguredStorage(rootDir = cwd()) {
11
13
  storage,
12
14
  };
13
15
  }
16
+ export async function loadCodeMapRuntime(rootDir = cwd()) {
17
+ const dataPath = resolveDataPath(rootDir);
18
+ try {
19
+ const raw = await readFile(dataPath, 'utf-8');
20
+ return {
21
+ rootDir,
22
+ dataPath,
23
+ codeMap: JSON.parse(raw),
24
+ };
25
+ }
26
+ catch (error) {
27
+ const runtimeError = new Error(error instanceof Error && error.message
28
+ ? error.message
29
+ : 'Code map not found, run codemap generate first');
30
+ runtimeError.code = 'INDEX_NOT_FOUND';
31
+ runtimeError.remediation = 'Run codemap generate to create the code map';
32
+ runtimeError.cause = error;
33
+ throw runtimeError;
34
+ }
35
+ }
14
36
  //# sourceMappingURL=storage-runtime.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"storage-runtime.js","sourceRoot":"","sources":["../../src/cli/storage-runtime.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,sGAAsG;AAEtG,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAEnC,OAAO,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAA4B,MAAM,oBAAoB,CAAC;AAOjF,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,UAAkB,GAAG,EAAE;IACnE,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAE5F,OAAO;QACL,YAAY;QACZ,OAAO;KACR,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"storage-runtime.js","sourceRoot":"","sources":["../../src/cli/storage-runtime.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,sGAAsG;AAEtG,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAGnC,OAAO,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAA4B,MAAM,oBAAoB,CAAC;AAajF,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,UAAkB,GAAG,EAAE;IACnE,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAE5F,OAAO;QACL,YAAY;QACZ,OAAO;KACR,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,UAAkB,GAAG,EAAE;IAC9D,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAE1C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC9C,OAAO;YACL,OAAO;YACP,QAAQ;YACR,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY;SACpC,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,IAAI,KAAK,CAC5B,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO;YACrC,CAAC,CAAC,KAAK,CAAC,OAAO;YACf,CAAC,CAAC,gDAAgD,CACa,CAAC;QAEpE,YAAY,CAAC,IAAI,GAAG,iBAAiB,CAAC;QACtC,YAAY,CAAC,WAAW,GAAG,6CAA6C,CAAC;QACzE,YAAY,CAAC,KAAK,GAAG,KAAK,CAAC;QAC3B,MAAM,YAAY,CAAC;IACrB,CAAC;AACH,CAAC"}
@@ -38,7 +38,7 @@ export function createCLI() {
38
38
  program
39
39
  .command('generate')
40
40
  .description('生成代码地图(原有命令)')
41
- .option('-m, --mode <mode>', '分析模式: fast, smart, hybrid', 'hybrid')
41
+ .option('-m, --mode <mode>', 'Parser 兼容输入;默认走单一路径 parser,旧 mode 会被拒绝', 'tree-sitter')
42
42
  .option('-o, --output <path>', '输出目录')
43
43
  .option('-w, --watch', '监视模式')
44
44
  .action(async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli-new/index.ts"],"names":[],"mappings":";AACA,+DAA+D;AAC/D,sEAAsE;AACtE,+CAA+C;AAC/C,2BAA2B;AAC3B,+CAA+C;AAE/C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,qBAAqB;AACrB,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,oBAAoB,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;AACrF,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC;AAEvD;;GAEG;AACH,MAAM,UAAU,SAAS;IACvB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,SAAS,CAAC;SACf,WAAW,CAAC,oBAAoB,CAAC;SACjC,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,CAAC;SAC1C,MAAM,CAAC,WAAW,EAAE,QAAQ,EAAE,KAAK,CAAC;SACpC,MAAM,CAAC,UAAU,EAAE,YAAY,EAAE,KAAK,CAAC;SACvC,IAAI,CAAC,WAAW,EAAE,CAAC,WAAW,EAAE,EAAE;QACjC,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;QACnC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,iBAAiB,GAAG,MAAM,CAAC;QACzC,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,MAAM,CAAC;QACxC,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO;IACP,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAC1C,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAEzC,kBAAkB;IAClB,OAAO;SACJ,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,cAAc,CAAC;SAC3B,MAAM,CAAC,mBAAmB,EAAE,2BAA2B,EAAE,QAAQ,CAAC;SAClE,MAAM,CAAC,qBAAqB,EAAE,MAAM,CAAC;SACrC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC;SAC7B,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,uCAAuC,CAAC,CAAC,CAAC;QACnE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEL,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,OAAiB,OAAO,CAAC,IAAI;IACrD,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC;IAC5B,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC;AAED,YAAY;AACZ,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,UAAU,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACpD,GAAG,EAAE,CAAC;AACR,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli-new/index.ts"],"names":[],"mappings":";AACA,+DAA+D;AAC/D,sEAAsE;AACtE,+CAA+C;AAC/C,2BAA2B;AAC3B,+CAA+C;AAE/C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,qBAAqB;AACrB,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,oBAAoB,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;AACrF,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC;AAEvD;;GAEG;AACH,MAAM,UAAU,SAAS;IACvB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,SAAS,CAAC;SACf,WAAW,CAAC,oBAAoB,CAAC;SACjC,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,CAAC;SAC1C,MAAM,CAAC,WAAW,EAAE,QAAQ,EAAE,KAAK,CAAC;SACpC,MAAM,CAAC,UAAU,EAAE,YAAY,EAAE,KAAK,CAAC;SACvC,IAAI,CAAC,WAAW,EAAE,CAAC,WAAW,EAAE,EAAE;QACjC,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;QACnC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,iBAAiB,GAAG,MAAM,CAAC;QACzC,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,MAAM,CAAC;QACxC,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO;IACP,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAC1C,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAEzC,kBAAkB;IAClB,OAAO;SACJ,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,cAAc,CAAC;SAC3B,MAAM,CAAC,mBAAmB,EAAE,wCAAwC,EAAE,aAAa,CAAC;SACpF,MAAM,CAAC,qBAAqB,EAAE,MAAM,CAAC;SACrC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC;SAC7B,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,uCAAuC,CAAC,CAAC,CAAC;QACnE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEL,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,OAAiB,OAAO,CAAC,IAAI;IACrD,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC;IAC5B,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC;AAED,YAAY;AACZ,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,UAAU,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACpD,GAAG,EAAE,CAAC;AACR,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { IParserRegistry, ITypeEnhancer } from '../interface/types/parser.js';
2
+ export interface AnalysisContext {
3
+ parserRegistry: IParserRegistry;
4
+ typeEnhancers: ITypeEnhancer[];
5
+ }
6
+ export declare function buildAnalysisContext(rootDir: string, enhanceTypes?: boolean): AnalysisContext;
7
+ //# sourceMappingURL=parser-composition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser-composition.d.ts","sourceRoot":"","sources":["../../src/composition/parser-composition.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAEnF,MAAM,WAAW,eAAe;IAC9B,cAAc,EAAE,eAAe,CAAC;IAChC,aAAa,EAAE,aAAa,EAAE,CAAC;CAChC;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,UAAO,GAAG,eAAe,CAQ1F"}
@@ -0,0 +1,15 @@
1
+ // [META] since:2026-05 | owner:architecture-team | stable:false
2
+ // [WHY] Composition root for parser/analyzer wiring so Core consumes abstractions, not Infrastructure factories
3
+ import { createDefaultParserRegistry } from '../infrastructure/parser/index.js';
4
+ import { TypeScriptTypeEnhancer } from '../infrastructure/parser/enhancers/TypeScriptTypeEnhancer.js';
5
+ import { PythonTypeEnhancer } from '../parser/enhancers/PythonTypeEnhancer.js';
6
+ export function buildAnalysisContext(rootDir, enhanceTypes = true) {
7
+ return {
8
+ parserRegistry: createDefaultParserRegistry(),
9
+ typeEnhancers: [
10
+ new TypeScriptTypeEnhancer(rootDir, enhanceTypes),
11
+ new PythonTypeEnhancer(enhanceTypes),
12
+ ],
13
+ };
14
+ }
15
+ //# sourceMappingURL=parser-composition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser-composition.js","sourceRoot":"","sources":["../../src/composition/parser-composition.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,gHAAgH;AAEhH,OAAO,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8DAA8D,CAAC;AACtG,OAAO,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAQ/E,MAAM,UAAU,oBAAoB,CAAC,OAAe,EAAE,YAAY,GAAG,IAAI;IACvE,OAAO;QACL,cAAc,EAAE,2BAA2B,EAAE;QAC7C,aAAa,EAAE;YACb,IAAI,sBAAsB,CAAC,OAAO,EAAE,YAAY,CAAC;YACjD,IAAI,kBAAkB,CAAC,YAAY,CAAC;SACrC;KACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../../src/core/analyzer.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAA4D,MAAM,mBAAmB,CAAC;AAS5H,wBAAsB,OAAO,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,CAmHxE"}
1
+ {"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../../src/core/analyzer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAA4D,MAAM,mBAAmB,CAAC;AAU5H,wBAAsB,OAAO,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,CA6HxE"}
@@ -2,86 +2,77 @@
2
2
  // [WHY] Core analysis engine that orchestrates parsing, dependency analysis, and code map generation
3
3
  import path from 'path';
4
4
  import fs from 'fs/promises';
5
- import { parseFile, createParser } from '../parser/index.js';
6
- import { createGlobalIndex, GlobalSymbolIndexBuilder } from './global-index.js';
5
+ import { isDeprecatedParserMode } from '../parser/index.js';
6
+ import { createGlobalIndex } from './global-index.js';
7
7
  import { discoverProjectFiles, DEFAULT_DISCOVERY_EXCLUDES } from './file-discovery.js';
8
- // 阈值配置
9
- const HYBRID_THRESHOLD = 50; // 文件数 >= 50 时使用 Smart 模式
8
+ import { ErrorCodes } from '../cli/output/error-codes.js';
9
+ const DEFAULT_ANALYSIS_INCLUDE = ['src/**/*.{ts,tsx,js,jsx,py,go}'];
10
10
  // 主分析函数
11
11
  export async function analyze(options) {
12
- const { rootDir, include = ['src/**/*.ts'], exclude = DEFAULT_DISCOVERY_EXCLUDES, mode = 'hybrid' } = options;
12
+ const { rootDir, include = [...DEFAULT_ANALYSIS_INCLUDE], exclude = DEFAULT_DISCOVERY_EXCLUDES, mode = 'tree-sitter', enhanceTypes = true, parserRegistry, typeEnhancers = [], } = options;
13
+ if (isDeprecatedParserMode(mode)) {
14
+ const error = new Error(`Parser mode "${mode}" is deprecated. Remove the mode override and use the default parser flow.`);
15
+ error.code = ErrorCodes.DEPRECATED_PARSER_MODE;
16
+ throw error;
17
+ }
13
18
  // 1. 发现文件
14
19
  const files = await discoverProjectFiles({
15
20
  rootDir,
16
21
  include,
17
22
  exclude
18
23
  });
19
- // 2. Hybrid 模式自动选择
20
- let actualMode = mode === 'hybrid' ? 'fast' : mode;
21
- if (mode === 'hybrid') {
22
- if (files.length >= HYBRID_THRESHOLD) {
23
- actualMode = 'smart';
24
- }
25
- else {
26
- actualMode = 'fast';
27
- }
28
- console.log(`[Hybrid] 检测到 ${files.length} 个文件,自动选择 ${actualMode} 模式`);
24
+ if (!parserRegistry) {
25
+ throw new Error('AnalysisOptions.parserRegistry is required. Use the composition root to build analysis context.');
29
26
  }
30
- // 3. 解析文件
31
- const modules = [];
27
+ const initializedParsers = new Set();
32
28
  let parseResults = [];
33
- // 根据实际模式选择解析器
34
- if (actualMode === 'smart') {
35
- // Smart 模式:使用 SmartParser 获取复杂度、调用图、完整类型信息
36
- const parser = createParser({ mode: 'smart', rootDir });
29
+ for (const file of files) {
37
30
  try {
38
- parseResults = await parser.parseFiles(files);
39
- // 转换 ParseResult 到 ModuleInfo
40
- for (const result of parseResults) {
41
- const moduleInfo = convertToModuleInfo(result);
42
- modules.push(moduleInfo);
31
+ const parser = parserRegistry.getParserByFile(file);
32
+ if (!parser) {
33
+ console.warn(`Warning: No parser registered for ${file}`);
34
+ continue;
43
35
  }
36
+ if (!initializedParsers.has(parser.languageId)) {
37
+ await parser.initialize();
38
+ initializedParsers.add(parser.languageId);
39
+ }
40
+ const content = await fs.readFile(file, 'utf-8');
41
+ const parsed = await parser.parseFile(file, content, {
42
+ includeCallGraph: true,
43
+ includeComplexity: true,
44
+ includeTypeInfo: true,
45
+ });
46
+ parseResults.push(parsed);
44
47
  }
45
48
  catch (error) {
46
- console.warn(`Warning: Smart parse failed, falling back: ${error}`);
47
- // Fallback to basic parser
48
- for (const file of files) {
49
- try {
50
- const moduleInfo = await parseFile(file);
51
- moduleInfo.id = createModuleId(moduleInfo.path);
52
- moduleInfo.dependencies = Array.from(new Set(moduleInfo.dependencies));
53
- modules.push(moduleInfo);
54
- }
55
- catch (e) {
56
- console.warn(`Warning: Failed to parse ${file}: ${e}`);
57
- }
58
- }
49
+ console.warn(`Warning: Failed to parse ${file}: ${error}`);
59
50
  }
60
51
  }
61
- else {
62
- // Fast 模式:使用基础解析器
63
- for (const file of files) {
64
- try {
65
- const moduleInfo = await parseFile(file);
66
- moduleInfo.id = createModuleId(moduleInfo.path);
67
- moduleInfo.dependencies = Array.from(new Set(moduleInfo.dependencies));
68
- modules.push(moduleInfo);
69
- }
70
- catch (error) {
71
- console.warn(`Warning: Failed to parse ${file}: ${error}`);
72
- }
52
+ if (enhanceTypes) {
53
+ for (const enhancer of typeEnhancers) {
54
+ parseResults = await enhancer.enhance(parseResults);
73
55
  }
74
56
  }
75
- // 4. Smart 模式下构建全局符号索引和跨文件调用链
76
- if (actualMode === 'smart' && parseResults.length > 0) {
57
+ const modules = parseResults.map((result) => convertToModuleInfo(result));
58
+ for (const enhancer of typeEnhancers) {
59
+ enhancer.dispose();
60
+ }
61
+ await Promise.all(parserRegistry.getSupportedLanguages().map(async (language) => {
62
+ const parser = parserRegistry.getParser(language);
63
+ if (parser) {
64
+ await parser.dispose();
65
+ }
66
+ }));
67
+ // 3. 构建全局符号索引和跨文件调用链
68
+ if (parseResults.length > 0) {
77
69
  try {
78
70
  console.log('[Analyzer] 构建全局符号索引...');
79
71
  const globalIndex = createGlobalIndex(parseResults, rootDir);
80
72
  // 将跨文件调用信息添加到模块
81
73
  for (const mod of modules) {
82
74
  const relativePath = path.relative(rootDir, mod.path);
83
- const builder = new GlobalSymbolIndexBuilder(rootDir);
84
- const calls = builder.getCrossFileCalls(relativePath);
75
+ const calls = globalIndex.files.get(relativePath)?.crossFileCalls ?? [];
85
76
  if (calls.length > 0 && mod.callGraph) {
86
77
  // 增强 callGraph 包含跨文件调用信息
87
78
  mod.callGraph = {
@@ -96,12 +87,12 @@ export async function analyze(options) {
96
87
  console.warn(`Warning: 全局索引构建失败: ${error}`);
97
88
  }
98
89
  }
99
- // 5. 构建依赖图
90
+ // 4. 构建依赖图
100
91
  const dependencies = buildDependencyGraph(modules);
101
- // 6. 计算摘要
92
+ // 5. 计算摘要
102
93
  const summary = calculateSummary(modules);
103
94
  const graphIntegrity = calculateGraphIntegrity(files, modules);
104
- // 7. 获取项目信息
95
+ // 6. 获取项目信息
105
96
  const project = await getProjectInfo(rootDir);
106
97
  return {
107
98
  version: '1.0.0',
@@ -113,28 +104,53 @@ export async function analyze(options) {
113
104
  graphStatus: graphIntegrity.graphStatus,
114
105
  failedFileCount: graphIntegrity.failedFileCount,
115
106
  parseFailureFiles: graphIntegrity.parseFailureFiles,
116
- actualMode
117
107
  };
118
108
  }
119
109
  // 转换 ParseResult 到 ModuleInfo
120
110
  function convertToModuleInfo(result) {
121
111
  return {
122
- id: createModuleId(result.path),
123
- path: result.path,
124
- absolutePath: result.path,
125
- type: result.type,
126
- stats: result.stats,
112
+ id: createModuleId(result.filePath),
113
+ path: result.filePath,
114
+ absolutePath: result.filePath,
115
+ type: categorizeParsedFile(result.filePath),
116
+ stats: result.module.stats,
127
117
  exports: result.exports,
128
118
  imports: result.imports,
129
119
  symbols: result.symbols,
130
- dependencies: Array.from(new Set(result.dependencies)),
120
+ dependencies: Array.from(new Set(result.imports.map((entry) => resolveDependencyPath(result.filePath, entry.source)))),
131
121
  dependents: [],
132
- // Smart 模式额外信息
133
122
  complexity: result.complexity,
134
- callGraph: result.callGraph,
123
+ callGraph: result.callGraph
124
+ ? {
125
+ calls: result.callGraph.calls,
126
+ recursive: result.callGraph.recursive,
127
+ issues: result.callGraph.issues,
128
+ callCounts: result.callGraph.calls.reduce((counts, call) => {
129
+ counts[call.callee] = (counts[call.callee] ?? 0) + 1;
130
+ return counts;
131
+ }, {}),
132
+ }
133
+ : undefined,
135
134
  typeInfo: result.typeInfo
136
135
  };
137
136
  }
137
+ function categorizeParsedFile(filePath) {
138
+ if (filePath.includes('.test.') || filePath.includes('.spec.'))
139
+ return 'test';
140
+ if (filePath.includes('config.') || filePath.endsWith('config.ts'))
141
+ return 'config';
142
+ return 'source';
143
+ }
144
+ function resolveDependencyPath(fromPath, importPath) {
145
+ if (!importPath.startsWith('.')) {
146
+ return importPath;
147
+ }
148
+ const resolved = path.resolve(path.dirname(fromPath), importPath);
149
+ if (/\.(ts|tsx|js|jsx|py|go)$/i.test(resolved)) {
150
+ return resolved;
151
+ }
152
+ return `${resolved}.ts`;
153
+ }
138
154
  function calculateGraphIntegrity(discoveredFiles, modules) {
139
155
  const discoveredSet = new Set(discoveredFiles.map(filePath => normalizePath(filePath)));
140
156
  const parsedSet = new Set(modules.map(moduleInfo => normalizePath(moduleInfo.path)));