@optave/codegraph 3.3.0 → 3.4.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 (1305) hide show
  1. package/README.md +31 -28
  2. package/dist/ast-analysis/engine.d.ts +15 -13
  3. package/dist/ast-analysis/engine.d.ts.map +1 -1
  4. package/dist/ast-analysis/engine.js +40 -26
  5. package/dist/ast-analysis/engine.js.map +1 -1
  6. package/dist/ast-analysis/metrics.d.ts +4 -18
  7. package/dist/ast-analysis/metrics.d.ts.map +1 -1
  8. package/dist/ast-analysis/metrics.js.map +1 -1
  9. package/dist/ast-analysis/rules/csharp.d.ts +6 -23
  10. package/dist/ast-analysis/rules/csharp.d.ts.map +1 -1
  11. package/dist/ast-analysis/rules/csharp.js +0 -3
  12. package/dist/ast-analysis/rules/csharp.js.map +1 -1
  13. package/dist/ast-analysis/rules/go.d.ts +6 -23
  14. package/dist/ast-analysis/rules/go.d.ts.map +1 -1
  15. package/dist/ast-analysis/rules/go.js +0 -3
  16. package/dist/ast-analysis/rules/go.js.map +1 -1
  17. package/dist/ast-analysis/rules/index.d.ts +6 -30
  18. package/dist/ast-analysis/rules/index.d.ts.map +1 -1
  19. package/dist/ast-analysis/rules/index.js +0 -5
  20. package/dist/ast-analysis/rules/index.js.map +1 -1
  21. package/dist/ast-analysis/rules/java.d.ts +6 -23
  22. package/dist/ast-analysis/rules/java.d.ts.map +1 -1
  23. package/dist/ast-analysis/rules/java.js +0 -3
  24. package/dist/ast-analysis/rules/java.js.map +1 -1
  25. package/dist/ast-analysis/rules/javascript.d.ts +6 -30
  26. package/dist/ast-analysis/rules/javascript.d.ts.map +1 -1
  27. package/dist/ast-analysis/rules/javascript.js +0 -5
  28. package/dist/ast-analysis/rules/javascript.js.map +1 -1
  29. package/dist/ast-analysis/rules/php.d.ts +6 -23
  30. package/dist/ast-analysis/rules/php.d.ts.map +1 -1
  31. package/dist/ast-analysis/rules/php.js +0 -3
  32. package/dist/ast-analysis/rules/php.js.map +1 -1
  33. package/dist/ast-analysis/rules/python.d.ts +6 -23
  34. package/dist/ast-analysis/rules/python.d.ts.map +1 -1
  35. package/dist/ast-analysis/rules/python.js +0 -3
  36. package/dist/ast-analysis/rules/python.js.map +1 -1
  37. package/dist/ast-analysis/rules/ruby.d.ts +6 -23
  38. package/dist/ast-analysis/rules/ruby.d.ts.map +1 -1
  39. package/dist/ast-analysis/rules/ruby.js +0 -3
  40. package/dist/ast-analysis/rules/ruby.js.map +1 -1
  41. package/dist/ast-analysis/rules/rust.d.ts +6 -23
  42. package/dist/ast-analysis/rules/rust.d.ts.map +1 -1
  43. package/dist/ast-analysis/rules/rust.js +0 -3
  44. package/dist/ast-analysis/rules/rust.js.map +1 -1
  45. package/dist/ast-analysis/shared.d.ts +11 -105
  46. package/dist/ast-analysis/shared.d.ts.map +1 -1
  47. package/dist/ast-analysis/shared.js +1 -27
  48. package/dist/ast-analysis/shared.js.map +1 -1
  49. package/dist/ast-analysis/visitor-utils.d.ts +36 -11
  50. package/dist/ast-analysis/visitor-utils.d.ts.map +1 -1
  51. package/dist/ast-analysis/visitor-utils.js.map +1 -1
  52. package/dist/ast-analysis/visitor.d.ts +2 -94
  53. package/dist/ast-analysis/visitor.d.ts.map +1 -1
  54. package/dist/ast-analysis/visitor.js +0 -16
  55. package/dist/ast-analysis/visitor.js.map +1 -1
  56. package/dist/ast-analysis/visitors/ast-store-visitor.d.ts +2 -10
  57. package/dist/ast-analysis/visitors/ast-store-visitor.d.ts.map +1 -1
  58. package/dist/ast-analysis/visitors/ast-store-visitor.js +10 -20
  59. package/dist/ast-analysis/visitors/ast-store-visitor.js.map +1 -1
  60. package/dist/ast-analysis/visitors/cfg-visitor.d.ts +4 -7
  61. package/dist/ast-analysis/visitors/cfg-visitor.d.ts.map +1 -1
  62. package/dist/ast-analysis/visitors/cfg-visitor.js +20 -65
  63. package/dist/ast-analysis/visitors/cfg-visitor.js.map +1 -1
  64. package/dist/ast-analysis/visitors/complexity-visitor.d.ts +6 -15
  65. package/dist/ast-analysis/visitors/complexity-visitor.d.ts.map +1 -1
  66. package/dist/ast-analysis/visitors/complexity-visitor.js +6 -41
  67. package/dist/ast-analysis/visitors/complexity-visitor.js.map +1 -1
  68. package/dist/ast-analysis/visitors/dataflow-visitor.d.ts +4 -7
  69. package/dist/ast-analysis/visitors/dataflow-visitor.d.ts.map +1 -1
  70. package/dist/ast-analysis/visitors/dataflow-visitor.js +19 -33
  71. package/dist/ast-analysis/visitors/dataflow-visitor.js.map +1 -1
  72. package/dist/cli/commands/ast.d.ts +2 -8
  73. package/dist/cli/commands/ast.d.ts.map +1 -1
  74. package/dist/cli/commands/ast.js +1 -1
  75. package/dist/cli/commands/ast.js.map +1 -1
  76. package/dist/cli/commands/audit.d.ts +2 -8
  77. package/dist/cli/commands/audit.d.ts.map +1 -1
  78. package/dist/cli/commands/audit.js.map +1 -1
  79. package/dist/cli/commands/batch.d.ts +2 -8
  80. package/dist/cli/commands/batch.d.ts.map +1 -1
  81. package/dist/cli/commands/batch.js +9 -3
  82. package/dist/cli/commands/batch.js.map +1 -1
  83. package/dist/cli/commands/branch-compare.d.ts +2 -6
  84. package/dist/cli/commands/branch-compare.d.ts.map +1 -1
  85. package/dist/cli/commands/branch-compare.js +1 -1
  86. package/dist/cli/commands/branch-compare.js.map +1 -1
  87. package/dist/cli/commands/brief.d.ts +2 -6
  88. package/dist/cli/commands/brief.d.ts.map +1 -1
  89. package/dist/cli/commands/brief.js.map +1 -1
  90. package/dist/cli/commands/build.d.ts +2 -6
  91. package/dist/cli/commands/build.d.ts.map +1 -1
  92. package/dist/cli/commands/build.js +2 -2
  93. package/dist/cli/commands/build.js.map +1 -1
  94. package/dist/cli/commands/cfg.d.ts +2 -9
  95. package/dist/cli/commands/cfg.d.ts.map +1 -1
  96. package/dist/cli/commands/cfg.js.map +1 -1
  97. package/dist/cli/commands/check.d.ts +2 -7
  98. package/dist/cli/commands/check.d.ts.map +1 -1
  99. package/dist/cli/commands/check.js.map +1 -1
  100. package/dist/cli/commands/children.d.ts +2 -8
  101. package/dist/cli/commands/children.d.ts.map +1 -1
  102. package/dist/cli/commands/children.js.map +1 -1
  103. package/dist/cli/commands/co-change.d.ts +2 -6
  104. package/dist/cli/commands/co-change.d.ts.map +1 -1
  105. package/dist/cli/commands/co-change.js +9 -5
  106. package/dist/cli/commands/co-change.js.map +1 -1
  107. package/dist/cli/commands/communities.d.ts +2 -7
  108. package/dist/cli/commands/communities.d.ts.map +1 -1
  109. package/dist/cli/commands/communities.js.map +1 -1
  110. package/dist/cli/commands/complexity.d.ts +2 -8
  111. package/dist/cli/commands/complexity.d.ts.map +1 -1
  112. package/dist/cli/commands/complexity.js.map +1 -1
  113. package/dist/cli/commands/context.d.ts +2 -9
  114. package/dist/cli/commands/context.d.ts.map +1 -1
  115. package/dist/cli/commands/context.js.map +1 -1
  116. package/dist/cli/commands/cycles.d.ts +2 -6
  117. package/dist/cli/commands/cycles.d.ts.map +1 -1
  118. package/dist/cli/commands/cycles.js.map +1 -1
  119. package/dist/cli/commands/dataflow.d.ts +2 -9
  120. package/dist/cli/commands/dataflow.d.ts.map +1 -1
  121. package/dist/cli/commands/dataflow.js.map +1 -1
  122. package/dist/cli/commands/deps.d.ts +2 -7
  123. package/dist/cli/commands/deps.d.ts.map +1 -1
  124. package/dist/cli/commands/deps.js.map +1 -1
  125. package/dist/cli/commands/diff-impact.d.ts +2 -6
  126. package/dist/cli/commands/diff-impact.d.ts.map +1 -1
  127. package/dist/cli/commands/diff-impact.js.map +1 -1
  128. package/dist/cli/commands/embed.d.ts +2 -7
  129. package/dist/cli/commands/embed.d.ts.map +1 -1
  130. package/dist/cli/commands/embed.js +2 -1
  131. package/dist/cli/commands/embed.js.map +1 -1
  132. package/dist/cli/commands/export.d.ts +2 -6
  133. package/dist/cli/commands/export.d.ts.map +1 -1
  134. package/dist/cli/commands/export.js.map +1 -1
  135. package/dist/cli/commands/exports.d.ts +2 -7
  136. package/dist/cli/commands/exports.d.ts.map +1 -1
  137. package/dist/cli/commands/exports.js.map +1 -1
  138. package/dist/cli/commands/flow.d.ts +2 -9
  139. package/dist/cli/commands/flow.d.ts.map +1 -1
  140. package/dist/cli/commands/flow.js.map +1 -1
  141. package/dist/cli/commands/fn-impact.d.ts +2 -9
  142. package/dist/cli/commands/fn-impact.d.ts.map +1 -1
  143. package/dist/cli/commands/fn-impact.js.map +1 -1
  144. package/dist/cli/commands/impact.d.ts +2 -6
  145. package/dist/cli/commands/impact.d.ts.map +1 -1
  146. package/dist/cli/commands/impact.js.map +1 -1
  147. package/dist/cli/commands/implementations.d.ts +2 -9
  148. package/dist/cli/commands/implementations.d.ts.map +1 -1
  149. package/dist/cli/commands/implementations.js.map +1 -1
  150. package/dist/cli/commands/info.d.ts +2 -5
  151. package/dist/cli/commands/info.d.ts.map +1 -1
  152. package/dist/cli/commands/info.js +3 -2
  153. package/dist/cli/commands/info.js.map +1 -1
  154. package/dist/cli/commands/interfaces.d.ts +2 -9
  155. package/dist/cli/commands/interfaces.d.ts.map +1 -1
  156. package/dist/cli/commands/interfaces.js.map +1 -1
  157. package/dist/cli/commands/map.d.ts +2 -6
  158. package/dist/cli/commands/map.d.ts.map +1 -1
  159. package/dist/cli/commands/map.js.map +1 -1
  160. package/dist/cli/commands/mcp.d.ts +2 -6
  161. package/dist/cli/commands/mcp.d.ts.map +1 -1
  162. package/dist/cli/commands/mcp.js +4 -5
  163. package/dist/cli/commands/mcp.js.map +1 -1
  164. package/dist/cli/commands/models.d.ts +2 -5
  165. package/dist/cli/commands/models.d.ts.map +1 -1
  166. package/dist/cli/commands/models.js +5 -3
  167. package/dist/cli/commands/models.js.map +1 -1
  168. package/dist/cli/commands/owners.d.ts +2 -7
  169. package/dist/cli/commands/owners.d.ts.map +1 -1
  170. package/dist/cli/commands/owners.js.map +1 -1
  171. package/dist/cli/commands/path.d.ts +2 -7
  172. package/dist/cli/commands/path.d.ts.map +1 -1
  173. package/dist/cli/commands/path.js.map +1 -1
  174. package/dist/cli/commands/plot.d.ts +2 -6
  175. package/dist/cli/commands/plot.d.ts.map +1 -1
  176. package/dist/cli/commands/plot.js +3 -1
  177. package/dist/cli/commands/plot.js.map +1 -1
  178. package/dist/cli/commands/query.d.ts +2 -9
  179. package/dist/cli/commands/query.d.ts.map +1 -1
  180. package/dist/cli/commands/query.js.map +1 -1
  181. package/dist/cli/commands/registry.d.ts +2 -15
  182. package/dist/cli/commands/registry.d.ts.map +1 -1
  183. package/dist/cli/commands/registry.js.map +1 -1
  184. package/dist/cli/commands/roles.d.ts +2 -8
  185. package/dist/cli/commands/roles.d.ts.map +1 -1
  186. package/dist/cli/commands/roles.js.map +1 -1
  187. package/dist/cli/commands/search.d.ts +2 -8
  188. package/dist/cli/commands/search.d.ts.map +1 -1
  189. package/dist/cli/commands/search.js +1 -5
  190. package/dist/cli/commands/search.js.map +1 -1
  191. package/dist/cli/commands/sequence.d.ts +2 -9
  192. package/dist/cli/commands/sequence.d.ts.map +1 -1
  193. package/dist/cli/commands/sequence.js.map +1 -1
  194. package/dist/cli/commands/snapshot.d.ts +2 -10
  195. package/dist/cli/commands/snapshot.d.ts.map +1 -1
  196. package/dist/cli/commands/snapshot.js.map +1 -1
  197. package/dist/cli/commands/stats.d.ts +2 -6
  198. package/dist/cli/commands/stats.d.ts.map +1 -1
  199. package/dist/cli/commands/stats.js.map +1 -1
  200. package/dist/cli/commands/structure.d.ts +2 -6
  201. package/dist/cli/commands/structure.d.ts.map +1 -1
  202. package/dist/cli/commands/structure.js.map +1 -1
  203. package/dist/cli/commands/triage.d.ts +2 -7
  204. package/dist/cli/commands/triage.d.ts.map +1 -1
  205. package/dist/cli/commands/triage.js.map +1 -1
  206. package/dist/cli/commands/watch.d.ts +2 -5
  207. package/dist/cli/commands/watch.d.ts.map +1 -1
  208. package/dist/cli/commands/watch.js +1 -1
  209. package/dist/cli/commands/watch.js.map +1 -1
  210. package/dist/cli/commands/where.d.ts +2 -8
  211. package/dist/cli/commands/where.d.ts.map +1 -1
  212. package/dist/cli/commands/where.js +1 -1
  213. package/dist/cli/commands/where.js.map +1 -1
  214. package/dist/cli/index.d.ts +8 -17
  215. package/dist/cli/index.d.ts.map +1 -1
  216. package/dist/cli/index.js +27 -7
  217. package/dist/cli/index.js.map +1 -1
  218. package/dist/cli/shared/open-graph.d.ts +4 -7
  219. package/dist/cli/shared/open-graph.d.ts.map +1 -1
  220. package/dist/cli/shared/open-graph.js +0 -4
  221. package/dist/cli/shared/open-graph.js.map +1 -1
  222. package/dist/cli/shared/options.d.ts +8 -15
  223. package/dist/cli/shared/options.d.ts.map +1 -1
  224. package/dist/cli/shared/options.js +0 -2
  225. package/dist/cli/shared/options.js.map +1 -1
  226. package/dist/cli/shared/output.d.ts +1 -1
  227. package/dist/cli/shared/output.d.ts.map +1 -1
  228. package/dist/cli/shared/output.js.map +1 -1
  229. package/dist/cli/types.d.ts +30 -0
  230. package/dist/cli/types.d.ts.map +1 -0
  231. package/dist/cli/types.js +2 -0
  232. package/dist/cli/types.js.map +1 -0
  233. package/dist/cli.d.ts.map +1 -1
  234. package/dist/cli.js +2 -1
  235. package/dist/cli.js.map +1 -1
  236. package/dist/db/connection.d.ts +15 -19
  237. package/dist/db/connection.d.ts.map +1 -1
  238. package/dist/db/connection.js +2 -10
  239. package/dist/db/connection.js.map +1 -1
  240. package/dist/db/index.d.ts +5 -4
  241. package/dist/db/index.d.ts.map +1 -1
  242. package/dist/db/index.js +1 -1
  243. package/dist/db/index.js.map +1 -1
  244. package/dist/db/migrations.d.ts +8 -5
  245. package/dist/db/migrations.d.ts.map +1 -1
  246. package/dist/db/migrations.js +6 -3
  247. package/dist/db/migrations.js.map +1 -1
  248. package/dist/db/query-builder.d.ts +28 -46
  249. package/dist/db/query-builder.d.ts.map +1 -1
  250. package/dist/db/query-builder.js +2 -21
  251. package/dist/db/query-builder.js.map +1 -1
  252. package/dist/db/repository/base.d.ts +38 -101
  253. package/dist/db/repository/base.d.ts.map +1 -1
  254. package/dist/db/repository/base.js +6 -38
  255. package/dist/db/repository/base.js.map +1 -1
  256. package/dist/db/repository/build-stmts.d.ts +7 -16
  257. package/dist/db/repository/build-stmts.d.ts.map +1 -1
  258. package/dist/db/repository/build-stmts.js +0 -17
  259. package/dist/db/repository/build-stmts.js.map +1 -1
  260. package/dist/db/repository/cached-stmt.d.ts +2 -6
  261. package/dist/db/repository/cached-stmt.d.ts.map +1 -1
  262. package/dist/db/repository/cached-stmt.js +0 -5
  263. package/dist/db/repository/cached-stmt.js.map +1 -1
  264. package/dist/db/repository/cfg.d.ts +21 -14
  265. package/dist/db/repository/cfg.d.ts.map +1 -1
  266. package/dist/db/repository/cfg.js +0 -11
  267. package/dist/db/repository/cfg.js.map +1 -1
  268. package/dist/db/repository/cochange.d.ts +4 -10
  269. package/dist/db/repository/cochange.d.ts.map +1 -1
  270. package/dist/db/repository/cochange.js +0 -7
  271. package/dist/db/repository/cochange.js.map +1 -1
  272. package/dist/db/repository/complexity.d.ts +2 -10
  273. package/dist/db/repository/complexity.d.ts.map +1 -1
  274. package/dist/db/repository/complexity.js +0 -3
  275. package/dist/db/repository/complexity.js.map +1 -1
  276. package/dist/db/repository/dataflow.d.ts +2 -3
  277. package/dist/db/repository/dataflow.d.ts.map +1 -1
  278. package/dist/db/repository/dataflow.js +2 -3
  279. package/dist/db/repository/dataflow.js.map +1 -1
  280. package/dist/db/repository/edges.d.ts +25 -132
  281. package/dist/db/repository/edges.d.ts.map +1 -1
  282. package/dist/db/repository/edges.js +2 -58
  283. package/dist/db/repository/edges.js.map +1 -1
  284. package/dist/db/repository/embeddings.d.ts +4 -10
  285. package/dist/db/repository/embeddings.d.ts.map +1 -1
  286. package/dist/db/repository/embeddings.js +1 -8
  287. package/dist/db/repository/embeddings.js.map +1 -1
  288. package/dist/db/repository/graph-read.d.ts +5 -28
  289. package/dist/db/repository/graph-read.d.ts.map +1 -1
  290. package/dist/db/repository/graph-read.js +0 -8
  291. package/dist/db/repository/graph-read.js.map +1 -1
  292. package/dist/db/repository/in-memory-repository.d.ts +73 -141
  293. package/dist/db/repository/in-memory-repository.d.ts.map +1 -1
  294. package/dist/db/repository/in-memory-repository.js +28 -20
  295. package/dist/db/repository/in-memory-repository.js.map +1 -1
  296. package/dist/db/repository/index.d.ts +13 -13
  297. package/dist/db/repository/index.d.ts.map +1 -1
  298. package/dist/db/repository/index.js +1 -1
  299. package/dist/db/repository/index.js.map +1 -1
  300. package/dist/db/repository/nodes.d.ts +40 -105
  301. package/dist/db/repository/nodes.d.ts.map +1 -1
  302. package/dist/db/repository/nodes.js +29 -74
  303. package/dist/db/repository/nodes.js.map +1 -1
  304. package/dist/db/repository/sqlite-repository.d.ts +48 -93
  305. package/dist/db/repository/sqlite-repository.d.ts.map +1 -1
  306. package/dist/db/repository/sqlite-repository.js +7 -2
  307. package/dist/db/repository/sqlite-repository.js.map +1 -1
  308. package/dist/domain/analysis/brief.d.ts +16 -7
  309. package/dist/domain/analysis/brief.d.ts.map +1 -1
  310. package/dist/domain/analysis/brief.js +3 -8
  311. package/dist/domain/analysis/brief.js.map +1 -1
  312. package/dist/domain/analysis/context.d.ts +240 -2
  313. package/dist/domain/analysis/context.d.ts.map +1 -1
  314. package/dist/domain/analysis/context.js +39 -32
  315. package/dist/domain/analysis/context.js.map +1 -1
  316. package/dist/domain/analysis/dependencies.d.ts +113 -37
  317. package/dist/domain/analysis/dependencies.d.ts.map +1 -1
  318. package/dist/domain/analysis/dependencies.js +20 -27
  319. package/dist/domain/analysis/dependencies.js.map +1 -1
  320. package/dist/domain/analysis/exports.d.ts +7 -1
  321. package/dist/domain/analysis/exports.d.ts.map +1 -1
  322. package/dist/domain/analysis/exports.js +48 -33
  323. package/dist/domain/analysis/exports.js.map +1 -1
  324. package/dist/domain/analysis/impact.d.ts +128 -16
  325. package/dist/domain/analysis/impact.d.ts.map +1 -1
  326. package/dist/domain/analysis/impact.js +31 -56
  327. package/dist/domain/analysis/impact.js.map +1 -1
  328. package/dist/domain/analysis/implementations.d.ts +28 -28
  329. package/dist/domain/analysis/implementations.d.ts.map +1 -1
  330. package/dist/domain/analysis/implementations.js +0 -10
  331. package/dist/domain/analysis/implementations.js.map +1 -1
  332. package/dist/domain/analysis/module-map.d.ts +44 -24
  333. package/dist/domain/analysis/module-map.d.ts.map +1 -1
  334. package/dist/domain/analysis/module-map.js +19 -7
  335. package/dist/domain/analysis/module-map.js.map +1 -1
  336. package/dist/domain/analysis/roles.d.ts +13 -1
  337. package/dist/domain/analysis/roles.d.ts.map +1 -1
  338. package/dist/domain/analysis/roles.js +10 -2
  339. package/dist/domain/analysis/roles.js.map +1 -1
  340. package/dist/domain/analysis/symbol-lookup.d.ts +120 -7
  341. package/dist/domain/analysis/symbol-lookup.d.ts.map +1 -1
  342. package/dist/domain/analysis/symbol-lookup.js +11 -7
  343. package/dist/domain/analysis/symbol-lookup.js.map +1 -1
  344. package/dist/domain/graph/builder/context.d.ts +32 -67
  345. package/dist/domain/graph/builder/context.d.ts.map +1 -1
  346. package/dist/domain/graph/builder/context.js +0 -36
  347. package/dist/domain/graph/builder/context.js.map +1 -1
  348. package/dist/domain/graph/builder/helpers.d.ts +14 -14
  349. package/dist/domain/graph/builder/helpers.d.ts.map +1 -1
  350. package/dist/domain/graph/builder/helpers.js +62 -23
  351. package/dist/domain/graph/builder/helpers.js.map +1 -1
  352. package/dist/domain/graph/builder/incremental.d.ts +50 -13
  353. package/dist/domain/graph/builder/incremental.d.ts.map +1 -1
  354. package/dist/domain/graph/builder/incremental.js +246 -20
  355. package/dist/domain/graph/builder/incremental.js.map +1 -1
  356. package/dist/domain/graph/builder/pipeline.d.ts +2 -7
  357. package/dist/domain/graph/builder/pipeline.d.ts.map +1 -1
  358. package/dist/domain/graph/builder/pipeline.js +21 -19
  359. package/dist/domain/graph/builder/pipeline.js.map +1 -1
  360. package/dist/domain/graph/builder/stages/build-edges.d.ts +2 -4
  361. package/dist/domain/graph/builder/stages/build-edges.d.ts.map +1 -1
  362. package/dist/domain/graph/builder/stages/build-edges.js +6 -12
  363. package/dist/domain/graph/builder/stages/build-edges.js.map +1 -1
  364. package/dist/domain/graph/builder/stages/build-structure.d.ts +2 -4
  365. package/dist/domain/graph/builder/stages/build-structure.d.ts.map +1 -1
  366. package/dist/domain/graph/builder/stages/build-structure.js +8 -8
  367. package/dist/domain/graph/builder/stages/build-structure.js.map +1 -1
  368. package/dist/domain/graph/builder/stages/collect-files.d.ts +2 -4
  369. package/dist/domain/graph/builder/stages/collect-files.d.ts.map +1 -1
  370. package/dist/domain/graph/builder/stages/collect-files.js +0 -3
  371. package/dist/domain/graph/builder/stages/collect-files.js.map +1 -1
  372. package/dist/domain/graph/builder/stages/detect-changes.d.ts +2 -4
  373. package/dist/domain/graph/builder/stages/detect-changes.d.ts.map +1 -1
  374. package/dist/domain/graph/builder/stages/detect-changes.js +38 -45
  375. package/dist/domain/graph/builder/stages/detect-changes.js.map +1 -1
  376. package/dist/domain/graph/builder/stages/finalize.d.ts +2 -4
  377. package/dist/domain/graph/builder/stages/finalize.d.ts.map +1 -1
  378. package/dist/domain/graph/builder/stages/finalize.js +45 -26
  379. package/dist/domain/graph/builder/stages/finalize.js.map +1 -1
  380. package/dist/domain/graph/builder/stages/insert-nodes.d.ts +2 -4
  381. package/dist/domain/graph/builder/stages/insert-nodes.d.ts.map +1 -1
  382. package/dist/domain/graph/builder/stages/insert-nodes.js +57 -33
  383. package/dist/domain/graph/builder/stages/insert-nodes.js.map +1 -1
  384. package/dist/domain/graph/builder/stages/parse-files.d.ts +2 -4
  385. package/dist/domain/graph/builder/stages/parse-files.d.ts.map +1 -1
  386. package/dist/domain/graph/builder/stages/parse-files.js +0 -3
  387. package/dist/domain/graph/builder/stages/parse-files.js.map +1 -1
  388. package/dist/domain/graph/builder/stages/resolve-imports.d.ts +5 -17
  389. package/dist/domain/graph/builder/stages/resolve-imports.d.ts.map +1 -1
  390. package/dist/domain/graph/builder/stages/resolve-imports.js +0 -22
  391. package/dist/domain/graph/builder/stages/resolve-imports.js.map +1 -1
  392. package/dist/domain/graph/builder/stages/run-analyses.d.ts +2 -4
  393. package/dist/domain/graph/builder/stages/run-analyses.d.ts.map +1 -1
  394. package/dist/domain/graph/builder/stages/run-analyses.js +3 -4
  395. package/dist/domain/graph/builder/stages/run-analyses.js.map +1 -1
  396. package/dist/domain/graph/builder.d.ts +3 -3
  397. package/dist/domain/graph/builder.d.ts.map +1 -1
  398. package/dist/domain/graph/builder.js.map +1 -1
  399. package/dist/domain/graph/change-journal.d.ts +39 -46
  400. package/dist/domain/graph/change-journal.d.ts.map +1 -1
  401. package/dist/domain/graph/change-journal.js +1 -24
  402. package/dist/domain/graph/change-journal.js.map +1 -1
  403. package/dist/domain/graph/cycles.d.ts +10 -17
  404. package/dist/domain/graph/cycles.d.ts.map +1 -1
  405. package/dist/domain/graph/cycles.js +4 -24
  406. package/dist/domain/graph/cycles.js.map +1 -1
  407. package/dist/domain/graph/journal.d.ts +13 -25
  408. package/dist/domain/graph/journal.d.ts.map +1 -1
  409. package/dist/domain/graph/journal.js +0 -14
  410. package/dist/domain/graph/journal.js.map +1 -1
  411. package/dist/domain/graph/resolve.d.ts +20 -25
  412. package/dist/domain/graph/resolve.d.ts.map +1 -1
  413. package/dist/domain/graph/resolve.js +62 -9
  414. package/dist/domain/graph/resolve.js.map +1 -1
  415. package/dist/domain/graph/watcher.d.ts +3 -1
  416. package/dist/domain/graph/watcher.d.ts.map +1 -1
  417. package/dist/domain/graph/watcher.js +14 -6
  418. package/dist/domain/graph/watcher.js.map +1 -1
  419. package/dist/domain/parser.d.ts +26 -72
  420. package/dist/domain/parser.d.ts.map +1 -1
  421. package/dist/domain/parser.js +78 -50
  422. package/dist/domain/parser.js.map +1 -1
  423. package/dist/domain/queries.d.ts +20 -13
  424. package/dist/domain/queries.d.ts.map +1 -1
  425. package/dist/domain/queries.js +1 -1
  426. package/dist/domain/queries.js.map +1 -1
  427. package/dist/domain/search/generator.d.ts +5 -9
  428. package/dist/domain/search/generator.d.ts.map +1 -1
  429. package/dist/domain/search/generator.js +4 -8
  430. package/dist/domain/search/generator.js.map +1 -1
  431. package/dist/domain/search/index.d.ts +14 -7
  432. package/dist/domain/search/index.d.ts.map +1 -1
  433. package/dist/domain/search/index.js.map +1 -1
  434. package/dist/domain/search/models.d.ts +17 -60
  435. package/dist/domain/search/models.d.ts.map +1 -1
  436. package/dist/domain/search/models.js +13 -9
  437. package/dist/domain/search/models.js.map +1 -1
  438. package/dist/domain/search/search/cli-formatter.d.ts +9 -5
  439. package/dist/domain/search/search/cli-formatter.d.ts.map +1 -1
  440. package/dist/domain/search/search/cli-formatter.js +4 -10
  441. package/dist/domain/search/search/cli-formatter.js.map +1 -1
  442. package/dist/domain/search/search/filters.d.ts +8 -18
  443. package/dist/domain/search/search/filters.d.ts.map +1 -1
  444. package/dist/domain/search/search/filters.js +0 -17
  445. package/dist/domain/search/search/filters.js.map +1 -1
  446. package/dist/domain/search/search/hybrid.d.ts +20 -21
  447. package/dist/domain/search/search/hybrid.d.ts.map +1 -1
  448. package/dist/domain/search/search/hybrid.js +2 -13
  449. package/dist/domain/search/search/hybrid.js.map +1 -1
  450. package/dist/domain/search/search/keyword.d.ts +13 -12
  451. package/dist/domain/search/search/keyword.d.ts.map +1 -1
  452. package/dist/domain/search/search/keyword.js +2 -10
  453. package/dist/domain/search/search/keyword.js.map +1 -1
  454. package/dist/domain/search/search/prepare.d.ts +23 -11
  455. package/dist/domain/search/search/prepare.d.ts.map +1 -1
  456. package/dist/domain/search/search/prepare.js +0 -7
  457. package/dist/domain/search/search/prepare.js.map +1 -1
  458. package/dist/domain/search/search/semantic.d.ts +36 -29
  459. package/dist/domain/search/search/semantic.d.ts.map +1 -1
  460. package/dist/domain/search/search/semantic.js +3 -17
  461. package/dist/domain/search/search/semantic.js.map +1 -1
  462. package/dist/domain/search/stores/fts5.d.ts +3 -4
  463. package/dist/domain/search/stores/fts5.d.ts.map +1 -1
  464. package/dist/domain/search/stores/fts5.js +1 -5
  465. package/dist/domain/search/stores/fts5.js.map +1 -1
  466. package/dist/domain/search/stores/sqlite-blob.d.ts +1 -23
  467. package/dist/domain/search/stores/sqlite-blob.d.ts.map +1 -1
  468. package/dist/domain/search/stores/sqlite-blob.js +3 -9
  469. package/dist/domain/search/stores/sqlite-blob.js.map +1 -1
  470. package/dist/domain/search/strategies/source.d.ts +2 -1
  471. package/dist/domain/search/strategies/source.d.ts.map +1 -1
  472. package/dist/domain/search/strategies/source.js.map +1 -1
  473. package/dist/domain/search/strategies/structured.d.ts +6 -2
  474. package/dist/domain/search/strategies/structured.d.ts.map +1 -1
  475. package/dist/domain/search/strategies/structured.js +0 -5
  476. package/dist/domain/search/strategies/structured.js.map +1 -1
  477. package/dist/domain/search/strategies/text-utils.d.ts +3 -5
  478. package/dist/domain/search/strategies/text-utils.d.ts.map +1 -1
  479. package/dist/domain/search/strategies/text-utils.js +5 -7
  480. package/dist/domain/search/strategies/text-utils.js.map +1 -1
  481. package/dist/extractors/csharp.d.ts +2 -8
  482. package/dist/extractors/csharp.d.ts.map +1 -1
  483. package/dist/extractors/csharp.js +30 -19
  484. package/dist/extractors/csharp.js.map +1 -1
  485. package/dist/extractors/go.d.ts +2 -8
  486. package/dist/extractors/go.d.ts.map +1 -1
  487. package/dist/extractors/go.js +72 -10
  488. package/dist/extractors/go.js.map +1 -1
  489. package/dist/extractors/hcl.d.ts +2 -7
  490. package/dist/extractors/hcl.d.ts.map +1 -1
  491. package/dist/extractors/hcl.js +25 -16
  492. package/dist/extractors/hcl.js.map +1 -1
  493. package/dist/extractors/helpers.d.ts +7 -6
  494. package/dist/extractors/helpers.d.ts.map +1 -1
  495. package/dist/extractors/helpers.js +6 -5
  496. package/dist/extractors/helpers.js.map +1 -1
  497. package/dist/extractors/index.d.ts +9 -9
  498. package/dist/extractors/index.d.ts.map +1 -1
  499. package/dist/extractors/index.js.map +1 -1
  500. package/dist/extractors/java.d.ts +2 -8
  501. package/dist/extractors/java.d.ts.map +1 -1
  502. package/dist/extractors/java.js +7 -4
  503. package/dist/extractors/java.js.map +1 -1
  504. package/dist/extractors/javascript.d.ts +2 -75
  505. package/dist/extractors/javascript.d.ts.map +1 -1
  506. package/dist/extractors/javascript.js +62 -59
  507. package/dist/extractors/javascript.js.map +1 -1
  508. package/dist/extractors/php.d.ts +2 -8
  509. package/dist/extractors/php.d.ts.map +1 -1
  510. package/dist/extractors/php.js +13 -7
  511. package/dist/extractors/php.js.map +1 -1
  512. package/dist/extractors/python.d.ts +2 -8
  513. package/dist/extractors/python.d.ts.map +1 -1
  514. package/dist/extractors/python.js +23 -11
  515. package/dist/extractors/python.js.map +1 -1
  516. package/dist/extractors/ruby.d.ts +2 -7
  517. package/dist/extractors/ruby.d.ts.map +1 -1
  518. package/dist/extractors/ruby.js +8 -4
  519. package/dist/extractors/ruby.js.map +1 -1
  520. package/dist/extractors/rust.d.ts +2 -8
  521. package/dist/extractors/rust.d.ts.map +1 -1
  522. package/dist/extractors/rust.js +8 -5
  523. package/dist/extractors/rust.js.map +1 -1
  524. package/dist/features/ast.d.ts +59 -28
  525. package/dist/features/ast.d.ts.map +1 -1
  526. package/dist/features/ast.js +14 -53
  527. package/dist/features/ast.js.map +1 -1
  528. package/dist/features/audit.d.ts +13 -4
  529. package/dist/features/audit.d.ts.map +1 -1
  530. package/dist/features/audit.js +12 -21
  531. package/dist/features/audit.js.map +1 -1
  532. package/dist/features/batch.d.ts +44 -100
  533. package/dist/features/batch.d.ts.map +1 -1
  534. package/dist/features/batch.js +0 -41
  535. package/dist/features/batch.js.map +1 -1
  536. package/dist/features/boundaries.d.ts +42 -60
  537. package/dist/features/boundaries.d.ts.map +1 -1
  538. package/dist/features/boundaries.js +9 -87
  539. package/dist/features/boundaries.js.map +1 -1
  540. package/dist/features/branch-compare.d.ts +69 -50
  541. package/dist/features/branch-compare.d.ts.map +1 -1
  542. package/dist/features/branch-compare.js +27 -51
  543. package/dist/features/branch-compare.js.map +1 -1
  544. package/dist/features/cfg.d.ts +70 -48
  545. package/dist/features/cfg.d.ts.map +1 -1
  546. package/dist/features/cfg.js +81 -59
  547. package/dist/features/cfg.js.map +1 -1
  548. package/dist/features/check.d.ts +75 -90
  549. package/dist/features/check.d.ts.map +1 -1
  550. package/dist/features/check.js +2 -47
  551. package/dist/features/check.js.map +1 -1
  552. package/dist/features/cochange.d.ts +47 -98
  553. package/dist/features/cochange.d.ts.map +1 -1
  554. package/dist/features/cochange.js +10 -63
  555. package/dist/features/cochange.js.map +1 -1
  556. package/dist/features/communities.d.ts +18 -34
  557. package/dist/features/communities.d.ts.map +1 -1
  558. package/dist/features/communities.js +13 -41
  559. package/dist/features/communities.js.map +1 -1
  560. package/dist/features/complexity.d.ts +64 -117
  561. package/dist/features/complexity.d.ts.map +1 -1
  562. package/dist/features/complexity.js +58 -110
  563. package/dist/features/complexity.js.map +1 -1
  564. package/dist/features/dataflow.d.ts +56 -65
  565. package/dist/features/dataflow.d.ts.map +1 -1
  566. package/dist/features/dataflow.js +24 -55
  567. package/dist/features/dataflow.js.map +1 -1
  568. package/dist/features/export.d.ts +16 -9
  569. package/dist/features/export.d.ts.map +1 -1
  570. package/dist/features/export.js +20 -16
  571. package/dist/features/export.js.map +1 -1
  572. package/dist/features/flow.d.ts +17 -45
  573. package/dist/features/flow.d.ts.map +1 -1
  574. package/dist/features/flow.js +4 -27
  575. package/dist/features/flow.js.map +1 -1
  576. package/dist/features/graph-enrichment.d.ts +43 -53
  577. package/dist/features/graph-enrichment.d.ts.map +1 -1
  578. package/dist/features/graph-enrichment.js +15 -18
  579. package/dist/features/graph-enrichment.js.map +1 -1
  580. package/dist/features/manifesto.d.ts +18 -41
  581. package/dist/features/manifesto.d.ts.map +1 -1
  582. package/dist/features/manifesto.js +22 -39
  583. package/dist/features/manifesto.js.map +1 -1
  584. package/dist/features/owners.d.ts +44 -98
  585. package/dist/features/owners.d.ts.map +1 -1
  586. package/dist/features/owners.js +2 -54
  587. package/dist/features/owners.js.map +1 -1
  588. package/dist/features/sequence.d.ts +41 -32
  589. package/dist/features/sequence.d.ts.map +1 -1
  590. package/dist/features/sequence.js +7 -36
  591. package/dist/features/sequence.js.map +1 -1
  592. package/dist/features/shared/find-nodes.d.ts +6 -10
  593. package/dist/features/shared/find-nodes.d.ts.map +1 -1
  594. package/dist/features/shared/find-nodes.js +1 -10
  595. package/dist/features/shared/find-nodes.js.map +1 -1
  596. package/dist/features/snapshot.d.ts +16 -55
  597. package/dist/features/snapshot.d.ts.map +1 -1
  598. package/dist/features/snapshot.js +2 -40
  599. package/dist/features/snapshot.js.map +1 -1
  600. package/dist/features/structure.d.ts +80 -28
  601. package/dist/features/structure.d.ts.map +1 -1
  602. package/dist/features/structure.js +64 -76
  603. package/dist/features/structure.js.map +1 -1
  604. package/dist/features/triage.d.ts +45 -11
  605. package/dist/features/triage.d.ts.map +1 -1
  606. package/dist/features/triage.js +10 -27
  607. package/dist/features/triage.js.map +1 -1
  608. package/dist/graph/algorithms/bfs.d.ts +7 -8
  609. package/dist/graph/algorithms/bfs.d.ts.map +1 -1
  610. package/dist/graph/algorithms/bfs.js +1 -4
  611. package/dist/graph/algorithms/bfs.js.map +1 -1
  612. package/dist/graph/algorithms/centrality.d.ts +6 -7
  613. package/dist/graph/algorithms/centrality.d.ts.map +1 -1
  614. package/dist/graph/algorithms/centrality.js +0 -3
  615. package/dist/graph/algorithms/centrality.js.map +1 -1
  616. package/dist/graph/algorithms/index.d.ts +6 -5
  617. package/dist/graph/algorithms/index.d.ts.map +1 -1
  618. package/dist/graph/algorithms/index.js +1 -0
  619. package/dist/graph/algorithms/index.js.map +1 -1
  620. package/dist/graph/algorithms/leiden/adapter.d.ts +37 -0
  621. package/dist/graph/algorithms/leiden/adapter.d.ts.map +1 -0
  622. package/dist/graph/algorithms/leiden/adapter.js +165 -0
  623. package/dist/graph/algorithms/leiden/adapter.js.map +1 -0
  624. package/dist/graph/algorithms/leiden/cpm.d.ts +28 -0
  625. package/dist/graph/algorithms/leiden/cpm.d.ts.map +1 -0
  626. package/dist/graph/algorithms/leiden/cpm.js +48 -0
  627. package/dist/graph/algorithms/leiden/cpm.js.map +1 -0
  628. package/dist/graph/algorithms/leiden/index.d.ts +37 -0
  629. package/dist/graph/algorithms/leiden/index.d.ts.map +1 -0
  630. package/dist/graph/algorithms/leiden/index.js +142 -0
  631. package/dist/graph/algorithms/leiden/index.js.map +1 -0
  632. package/dist/graph/algorithms/leiden/modularity.d.ts +33 -0
  633. package/dist/graph/algorithms/leiden/modularity.d.ts.map +1 -0
  634. package/dist/graph/algorithms/leiden/modularity.js +80 -0
  635. package/dist/graph/algorithms/leiden/modularity.js.map +1 -0
  636. package/dist/graph/algorithms/leiden/optimiser.d.ts +62 -0
  637. package/dist/graph/algorithms/leiden/optimiser.d.ts.map +1 -0
  638. package/dist/graph/algorithms/leiden/optimiser.js +498 -0
  639. package/dist/graph/algorithms/leiden/optimiser.js.map +1 -0
  640. package/dist/graph/algorithms/leiden/partition.d.ts +44 -0
  641. package/dist/graph/algorithms/leiden/partition.d.ts.map +1 -0
  642. package/dist/graph/algorithms/leiden/partition.js +433 -0
  643. package/dist/graph/algorithms/leiden/partition.js.map +1 -0
  644. package/dist/graph/algorithms/leiden/rng.d.ts +9 -0
  645. package/dist/graph/algorithms/leiden/rng.d.ts.map +1 -0
  646. package/dist/graph/algorithms/leiden/rng.js +17 -0
  647. package/dist/graph/algorithms/leiden/rng.js.map +1 -0
  648. package/dist/graph/algorithms/louvain.d.ts +20 -4
  649. package/dist/graph/algorithms/louvain.d.ts.map +1 -1
  650. package/dist/graph/algorithms/louvain.js +15 -14
  651. package/dist/graph/algorithms/louvain.js.map +1 -1
  652. package/dist/graph/algorithms/shortest-path.d.ts +3 -5
  653. package/dist/graph/algorithms/shortest-path.d.ts.map +1 -1
  654. package/dist/graph/algorithms/shortest-path.js +2 -5
  655. package/dist/graph/algorithms/shortest-path.js.map +1 -1
  656. package/dist/graph/algorithms/tarjan.d.ts +3 -3
  657. package/dist/graph/algorithms/tarjan.d.ts.map +1 -1
  658. package/dist/graph/algorithms/tarjan.js +1 -2
  659. package/dist/graph/algorithms/tarjan.js.map +1 -1
  660. package/dist/graph/builders/dependency.d.ts +14 -11
  661. package/dist/graph/builders/dependency.d.ts.map +1 -1
  662. package/dist/graph/builders/dependency.js +2 -6
  663. package/dist/graph/builders/dependency.js.map +1 -1
  664. package/dist/graph/builders/index.d.ts +3 -3
  665. package/dist/graph/builders/index.d.ts.map +1 -1
  666. package/dist/graph/builders/index.js.map +1 -1
  667. package/dist/graph/builders/structure.d.ts +6 -3
  668. package/dist/graph/builders/structure.d.ts.map +1 -1
  669. package/dist/graph/builders/structure.js +5 -4
  670. package/dist/graph/builders/structure.js.map +1 -1
  671. package/dist/graph/builders/temporal.d.ts +9 -6
  672. package/dist/graph/builders/temporal.d.ts.map +1 -1
  673. package/dist/graph/builders/temporal.js +1 -3
  674. package/dist/graph/builders/temporal.js.map +1 -1
  675. package/dist/graph/classifiers/index.d.ts +2 -2
  676. package/dist/graph/classifiers/index.d.ts.map +1 -1
  677. package/dist/graph/classifiers/index.js.map +1 -1
  678. package/dist/graph/classifiers/risk.d.ts +25 -35
  679. package/dist/graph/classifiers/risk.d.ts.map +1 -1
  680. package/dist/graph/classifiers/risk.js +10 -16
  681. package/dist/graph/classifiers/risk.js.map +1 -1
  682. package/dist/graph/classifiers/roles.d.ts +19 -15
  683. package/dist/graph/classifiers/roles.d.ts.map +1 -1
  684. package/dist/graph/classifiers/roles.js +4 -7
  685. package/dist/graph/classifiers/roles.js.map +1 -1
  686. package/dist/graph/index.d.ts +4 -4
  687. package/dist/graph/index.d.ts.map +1 -1
  688. package/dist/graph/index.js.map +1 -1
  689. package/dist/graph/model.d.ts +39 -37
  690. package/dist/graph/model.d.ts.map +1 -1
  691. package/dist/graph/model.js +4 -25
  692. package/dist/graph/model.js.map +1 -1
  693. package/dist/index.cjs +0 -2
  694. package/dist/index.d.ts +35 -25
  695. package/dist/index.d.ts.map +1 -1
  696. package/dist/index.js.map +1 -1
  697. package/dist/infrastructure/config.d.ts +183 -210
  698. package/dist/infrastructure/config.d.ts.map +1 -1
  699. package/dist/infrastructure/config.js +43 -13
  700. package/dist/infrastructure/config.js.map +1 -1
  701. package/dist/infrastructure/logger.d.ts +6 -6
  702. package/dist/infrastructure/logger.d.ts.map +1 -1
  703. package/dist/infrastructure/logger.js.map +1 -1
  704. package/dist/infrastructure/native.d.ts +12 -4
  705. package/dist/infrastructure/native.d.ts.map +1 -1
  706. package/dist/infrastructure/native.js +2 -2
  707. package/dist/infrastructure/native.js.map +1 -1
  708. package/dist/infrastructure/registry.d.ts +34 -22
  709. package/dist/infrastructure/registry.d.ts.map +1 -1
  710. package/dist/infrastructure/registry.js +1 -1
  711. package/dist/infrastructure/registry.js.map +1 -1
  712. package/dist/infrastructure/result-formatter.d.ts +1 -1
  713. package/dist/infrastructure/result-formatter.d.ts.map +1 -1
  714. package/dist/infrastructure/result-formatter.js.map +1 -1
  715. package/dist/infrastructure/test-filter.d.ts +3 -3
  716. package/dist/infrastructure/test-filter.d.ts.map +1 -1
  717. package/dist/infrastructure/test-filter.js.map +1 -1
  718. package/dist/infrastructure/update-check.d.ts +12 -10
  719. package/dist/infrastructure/update-check.d.ts.map +1 -1
  720. package/dist/infrastructure/update-check.js +3 -7
  721. package/dist/infrastructure/update-check.js.map +1 -1
  722. package/dist/mcp/index.d.ts +2 -2
  723. package/dist/mcp/index.d.ts.map +1 -1
  724. package/dist/mcp/index.js.map +1 -1
  725. package/dist/mcp/middleware.d.ts +13 -13
  726. package/dist/mcp/middleware.d.ts.map +1 -1
  727. package/dist/mcp/middleware.js +0 -6
  728. package/dist/mcp/middleware.js.map +1 -1
  729. package/dist/mcp/server.d.ts +21 -1
  730. package/dist/mcp/server.d.ts.map +1 -1
  731. package/dist/mcp/server.js +79 -13
  732. package/dist/mcp/server.js.map +1 -1
  733. package/dist/mcp/tool-registry.d.ts +17 -4
  734. package/dist/mcp/tool-registry.d.ts.map +1 -1
  735. package/dist/mcp/tool-registry.js +0 -3
  736. package/dist/mcp/tool-registry.js.map +1 -1
  737. package/dist/mcp/tools/ast-query.d.ts +13 -8
  738. package/dist/mcp/tools/ast-query.d.ts.map +1 -1
  739. package/dist/mcp/tools/ast-query.js.map +1 -1
  740. package/dist/mcp/tools/audit.d.ts +14 -2
  741. package/dist/mcp/tools/audit.d.ts.map +1 -1
  742. package/dist/mcp/tools/audit.js +1 -1
  743. package/dist/mcp/tools/audit.js.map +1 -1
  744. package/dist/mcp/tools/batch-query.d.ts +11 -7
  745. package/dist/mcp/tools/batch-query.d.ts.map +1 -1
  746. package/dist/mcp/tools/batch-query.js.map +1 -1
  747. package/dist/mcp/tools/branch-compare.d.ts +11 -2
  748. package/dist/mcp/tools/branch-compare.d.ts.map +1 -1
  749. package/dist/mcp/tools/branch-compare.js.map +1 -1
  750. package/dist/mcp/tools/brief.d.ts +8 -2
  751. package/dist/mcp/tools/brief.d.ts.map +1 -1
  752. package/dist/mcp/tools/brief.js.map +1 -1
  753. package/dist/mcp/tools/cfg.d.ts +13 -9
  754. package/dist/mcp/tools/cfg.d.ts.map +1 -1
  755. package/dist/mcp/tools/cfg.js +1 -1
  756. package/dist/mcp/tools/cfg.js.map +1 -1
  757. package/dist/mcp/tools/check.d.ts +19 -23
  758. package/dist/mcp/tools/check.d.ts.map +1 -1
  759. package/dist/mcp/tools/check.js +2 -2
  760. package/dist/mcp/tools/check.js.map +1 -1
  761. package/dist/mcp/tools/co-changes.d.ts +11 -9
  762. package/dist/mcp/tools/co-changes.d.ts.map +1 -1
  763. package/dist/mcp/tools/co-changes.js.map +1 -1
  764. package/dist/mcp/tools/code-owners.d.ts +11 -47
  765. package/dist/mcp/tools/code-owners.d.ts.map +1 -1
  766. package/dist/mcp/tools/code-owners.js.map +1 -1
  767. package/dist/mcp/tools/communities.d.ts +12 -7
  768. package/dist/mcp/tools/communities.d.ts.map +1 -1
  769. package/dist/mcp/tools/communities.js.map +1 -1
  770. package/dist/mcp/tools/complexity.d.ts +15 -6
  771. package/dist/mcp/tools/complexity.d.ts.map +1 -1
  772. package/dist/mcp/tools/complexity.js +0 -1
  773. package/dist/mcp/tools/complexity.js.map +1 -1
  774. package/dist/mcp/tools/context.d.ts +15 -2
  775. package/dist/mcp/tools/context.d.ts.map +1 -1
  776. package/dist/mcp/tools/context.js.map +1 -1
  777. package/dist/mcp/tools/dataflow.d.ts +14 -5
  778. package/dist/mcp/tools/dataflow.d.ts.map +1 -1
  779. package/dist/mcp/tools/dataflow.js +2 -2
  780. package/dist/mcp/tools/dataflow.js.map +1 -1
  781. package/dist/mcp/tools/diff-impact.d.ts +13 -2
  782. package/dist/mcp/tools/diff-impact.d.ts.map +1 -1
  783. package/dist/mcp/tools/diff-impact.js.map +1 -1
  784. package/dist/mcp/tools/execution-flow.d.ts +14 -16
  785. package/dist/mcp/tools/execution-flow.d.ts.map +1 -1
  786. package/dist/mcp/tools/execution-flow.js.map +1 -1
  787. package/dist/mcp/tools/export-graph.d.ts +10 -2
  788. package/dist/mcp/tools/export-graph.d.ts.map +1 -1
  789. package/dist/mcp/tools/export-graph.js +3 -1
  790. package/dist/mcp/tools/export-graph.js.map +1 -1
  791. package/dist/mcp/tools/file-deps.d.ts +10 -2
  792. package/dist/mcp/tools/file-deps.d.ts.map +1 -1
  793. package/dist/mcp/tools/file-deps.js.map +1 -1
  794. package/dist/mcp/tools/file-exports.d.ts +11 -2
  795. package/dist/mcp/tools/file-exports.d.ts.map +1 -1
  796. package/dist/mcp/tools/file-exports.js.map +1 -1
  797. package/dist/mcp/tools/find-cycles.d.ts +3 -2
  798. package/dist/mcp/tools/find-cycles.d.ts.map +1 -1
  799. package/dist/mcp/tools/find-cycles.js.map +1 -1
  800. package/dist/mcp/tools/fn-impact.d.ts +13 -2
  801. package/dist/mcp/tools/fn-impact.d.ts.map +1 -1
  802. package/dist/mcp/tools/fn-impact.js.map +1 -1
  803. package/dist/mcp/tools/impact-analysis.d.ts +8 -2
  804. package/dist/mcp/tools/impact-analysis.d.ts.map +1 -1
  805. package/dist/mcp/tools/impact-analysis.js +0 -3
  806. package/dist/mcp/tools/impact-analysis.js.map +1 -1
  807. package/dist/mcp/tools/implementations.d.ts +12 -2
  808. package/dist/mcp/tools/implementations.d.ts.map +1 -1
  809. package/dist/mcp/tools/implementations.js.map +1 -1
  810. package/dist/mcp/tools/index.d.ts +9 -2
  811. package/dist/mcp/tools/index.d.ts.map +1 -1
  812. package/dist/mcp/tools/index.js +2 -2
  813. package/dist/mcp/tools/index.js.map +1 -1
  814. package/dist/mcp/tools/interfaces.d.ts +12 -2
  815. package/dist/mcp/tools/interfaces.d.ts.map +1 -1
  816. package/dist/mcp/tools/interfaces.js.map +1 -1
  817. package/dist/mcp/tools/list-functions.d.ts +11 -2
  818. package/dist/mcp/tools/list-functions.d.ts.map +1 -1
  819. package/dist/mcp/tools/list-functions.js.map +1 -1
  820. package/dist/mcp/tools/list-repos.d.ts +7 -10
  821. package/dist/mcp/tools/list-repos.d.ts.map +1 -1
  822. package/dist/mcp/tools/list-repos.js.map +1 -1
  823. package/dist/mcp/tools/module-map.d.ts +8 -2
  824. package/dist/mcp/tools/module-map.d.ts.map +1 -1
  825. package/dist/mcp/tools/module-map.js.map +1 -1
  826. package/dist/mcp/tools/node-roles.d.ts +11 -2
  827. package/dist/mcp/tools/node-roles.d.ts.map +1 -1
  828. package/dist/mcp/tools/node-roles.js.map +1 -1
  829. package/dist/mcp/tools/path.d.ts +13 -2
  830. package/dist/mcp/tools/path.d.ts.map +1 -1
  831. package/dist/mcp/tools/path.js.map +1 -1
  832. package/dist/mcp/tools/query.d.ts +19 -2
  833. package/dist/mcp/tools/query.d.ts.map +1 -1
  834. package/dist/mcp/tools/query.js +1 -1
  835. package/dist/mcp/tools/query.js.map +1 -1
  836. package/dist/mcp/tools/semantic-search.d.ts +11 -2
  837. package/dist/mcp/tools/semantic-search.d.ts.map +1 -1
  838. package/dist/mcp/tools/semantic-search.js +5 -5
  839. package/dist/mcp/tools/semantic-search.js.map +1 -1
  840. package/dist/mcp/tools/sequence.d.ts +15 -17
  841. package/dist/mcp/tools/sequence.d.ts.map +1 -1
  842. package/dist/mcp/tools/sequence.js +1 -1
  843. package/dist/mcp/tools/sequence.js.map +1 -1
  844. package/dist/mcp/tools/structure.d.ts +12 -2
  845. package/dist/mcp/tools/structure.d.ts.map +1 -1
  846. package/dist/mcp/tools/structure.js.map +1 -1
  847. package/dist/mcp/tools/symbol-children.d.ts +12 -2
  848. package/dist/mcp/tools/symbol-children.d.ts.map +1 -1
  849. package/dist/mcp/tools/symbol-children.js +1 -1
  850. package/dist/mcp/tools/symbol-children.js.map +1 -1
  851. package/dist/mcp/tools/triage.d.ts +16 -2
  852. package/dist/mcp/tools/triage.d.ts.map +1 -1
  853. package/dist/mcp/tools/triage.js +1 -1
  854. package/dist/mcp/tools/triage.js.map +1 -1
  855. package/dist/mcp/tools/where.d.ts +11 -2
  856. package/dist/mcp/tools/where.d.ts.map +1 -1
  857. package/dist/mcp/tools/where.js.map +1 -1
  858. package/dist/presentation/audit.d.ts +14 -4
  859. package/dist/presentation/audit.d.ts.map +1 -1
  860. package/dist/presentation/audit.js +1 -3
  861. package/dist/presentation/audit.js.map +1 -1
  862. package/dist/presentation/batch.d.ts +19 -9
  863. package/dist/presentation/batch.d.ts.map +1 -1
  864. package/dist/presentation/batch.js +3 -8
  865. package/dist/presentation/batch.js.map +1 -1
  866. package/dist/presentation/branch-compare.d.ts +12 -1
  867. package/dist/presentation/branch-compare.d.ts.map +1 -1
  868. package/dist/presentation/branch-compare.js +7 -9
  869. package/dist/presentation/branch-compare.js.map +1 -1
  870. package/dist/presentation/brief.d.ts +8 -11
  871. package/dist/presentation/brief.d.ts.map +1 -1
  872. package/dist/presentation/brief.js +0 -10
  873. package/dist/presentation/brief.js.map +1 -1
  874. package/dist/presentation/cfg.d.ts +12 -4
  875. package/dist/presentation/cfg.d.ts.map +1 -1
  876. package/dist/presentation/cfg.js +0 -3
  877. package/dist/presentation/cfg.js.map +1 -1
  878. package/dist/presentation/check.d.ts +18 -4
  879. package/dist/presentation/check.d.ts.map +1 -1
  880. package/dist/presentation/check.js +10 -4
  881. package/dist/presentation/check.js.map +1 -1
  882. package/dist/presentation/cochange.d.ts +31 -8
  883. package/dist/presentation/cochange.d.ts.map +1 -1
  884. package/dist/presentation/cochange.js +0 -6
  885. package/dist/presentation/cochange.js.map +1 -1
  886. package/dist/presentation/colors.d.ts +11 -25
  887. package/dist/presentation/colors.d.ts.map +1 -1
  888. package/dist/presentation/colors.js +3 -0
  889. package/dist/presentation/colors.js.map +1 -1
  890. package/dist/presentation/communities.d.ts +10 -4
  891. package/dist/presentation/communities.d.ts.map +1 -1
  892. package/dist/presentation/communities.js +0 -3
  893. package/dist/presentation/communities.js.map +1 -1
  894. package/dist/presentation/complexity.d.ts +16 -4
  895. package/dist/presentation/complexity.d.ts.map +1 -1
  896. package/dist/presentation/complexity.js +0 -3
  897. package/dist/presentation/complexity.js.map +1 -1
  898. package/dist/presentation/dataflow.d.ts +13 -4
  899. package/dist/presentation/dataflow.d.ts.map +1 -1
  900. package/dist/presentation/dataflow.js +12 -17
  901. package/dist/presentation/dataflow.js.map +1 -1
  902. package/dist/presentation/export.d.ts +82 -89
  903. package/dist/presentation/export.d.ts.map +1 -1
  904. package/dist/presentation/export.js +0 -63
  905. package/dist/presentation/export.js.map +1 -1
  906. package/dist/presentation/flow.d.ts +15 -4
  907. package/dist/presentation/flow.d.ts.map +1 -1
  908. package/dist/presentation/flow.js +6 -3
  909. package/dist/presentation/flow.js.map +1 -1
  910. package/dist/presentation/manifesto.d.ts +12 -4
  911. package/dist/presentation/manifesto.d.ts.map +1 -1
  912. package/dist/presentation/manifesto.js +1 -3
  913. package/dist/presentation/manifesto.js.map +1 -1
  914. package/dist/presentation/owners.d.ts +15 -4
  915. package/dist/presentation/owners.d.ts.map +1 -1
  916. package/dist/presentation/owners.js +0 -3
  917. package/dist/presentation/owners.js.map +1 -1
  918. package/dist/presentation/queries-cli/exports.d.ts +11 -1
  919. package/dist/presentation/queries-cli/exports.d.ts.map +1 -1
  920. package/dist/presentation/queries-cli/exports.js.map +1 -1
  921. package/dist/presentation/queries-cli/impact.d.ts +22 -5
  922. package/dist/presentation/queries-cli/impact.d.ts.map +1 -1
  923. package/dist/presentation/queries-cli/impact.js +2 -2
  924. package/dist/presentation/queries-cli/impact.js.map +1 -1
  925. package/dist/presentation/queries-cli/index.d.ts +5 -5
  926. package/dist/presentation/queries-cli/index.d.ts.map +1 -1
  927. package/dist/presentation/queries-cli/index.js.map +1 -1
  928. package/dist/presentation/queries-cli/inspect.d.ts +22 -7
  929. package/dist/presentation/queries-cli/inspect.d.ts.map +1 -1
  930. package/dist/presentation/queries-cli/inspect.js.map +1 -1
  931. package/dist/presentation/queries-cli/overview.d.ts +17 -3
  932. package/dist/presentation/queries-cli/overview.d.ts.map +1 -1
  933. package/dist/presentation/queries-cli/overview.js +1 -1
  934. package/dist/presentation/queries-cli/overview.js.map +1 -1
  935. package/dist/presentation/queries-cli/path.d.ts +14 -1
  936. package/dist/presentation/queries-cli/path.d.ts.map +1 -1
  937. package/dist/presentation/queries-cli/path.js.map +1 -1
  938. package/dist/presentation/queries-cli.d.ts +11 -1
  939. package/dist/presentation/queries-cli.d.ts.map +1 -1
  940. package/dist/presentation/queries-cli.js.map +1 -1
  941. package/dist/presentation/query.d.ts +1 -1
  942. package/dist/presentation/query.d.ts.map +1 -1
  943. package/dist/presentation/query.js +0 -4
  944. package/dist/presentation/query.js.map +1 -1
  945. package/dist/presentation/result-formatter.d.ts +12 -9
  946. package/dist/presentation/result-formatter.d.ts.map +1 -1
  947. package/dist/presentation/result-formatter.js +10 -35
  948. package/dist/presentation/result-formatter.js.map +1 -1
  949. package/dist/presentation/sequence-renderer.d.ts +18 -11
  950. package/dist/presentation/sequence-renderer.d.ts.map +1 -1
  951. package/dist/presentation/sequence-renderer.js +2 -15
  952. package/dist/presentation/sequence-renderer.js.map +1 -1
  953. package/dist/presentation/sequence.d.ts +14 -4
  954. package/dist/presentation/sequence.d.ts.map +1 -1
  955. package/dist/presentation/sequence.js +1 -3
  956. package/dist/presentation/sequence.js.map +1 -1
  957. package/dist/presentation/structure.d.ts +44 -6
  958. package/dist/presentation/structure.d.ts.map +1 -1
  959. package/dist/presentation/structure.js +1 -1
  960. package/dist/presentation/structure.js.map +1 -1
  961. package/dist/presentation/table.d.ts +12 -16
  962. package/dist/presentation/table.d.ts.map +1 -1
  963. package/dist/presentation/table.js +0 -6
  964. package/dist/presentation/table.js.map +1 -1
  965. package/dist/presentation/triage.d.ts +18 -4
  966. package/dist/presentation/triage.d.ts.map +1 -1
  967. package/dist/presentation/triage.js +3 -5
  968. package/dist/presentation/triage.js.map +1 -1
  969. package/dist/presentation/viewer.d.ts +79 -62
  970. package/dist/presentation/viewer.d.ts.map +1 -1
  971. package/dist/presentation/viewer.js +25 -47
  972. package/dist/presentation/viewer.js.map +1 -1
  973. package/dist/shared/constants.d.ts +6 -6
  974. package/dist/shared/constants.d.ts.map +1 -1
  975. package/dist/shared/constants.js.map +1 -1
  976. package/dist/shared/errors.d.ts +21 -29
  977. package/dist/shared/errors.d.ts.map +1 -1
  978. package/dist/shared/errors.js +0 -9
  979. package/dist/shared/errors.js.map +1 -1
  980. package/dist/shared/file-utils.d.ts +22 -9
  981. package/dist/shared/file-utils.d.ts.map +1 -1
  982. package/dist/shared/file-utils.js +2 -3
  983. package/dist/shared/file-utils.js.map +1 -1
  984. package/dist/shared/generators.d.ts +47 -52
  985. package/dist/shared/generators.d.ts.map +1 -1
  986. package/dist/shared/generators.js +5 -19
  987. package/dist/shared/generators.js.map +1 -1
  988. package/dist/shared/hierarchy.d.ts +2 -1
  989. package/dist/shared/hierarchy.d.ts.map +1 -1
  990. package/dist/shared/hierarchy.js.map +1 -1
  991. package/dist/shared/kinds.d.ts +11 -10
  992. package/dist/shared/kinds.d.ts.map +1 -1
  993. package/dist/shared/kinds.js +14 -3
  994. package/dist/shared/kinds.js.map +1 -1
  995. package/dist/shared/normalize.d.ts +24 -11
  996. package/dist/shared/normalize.d.ts.map +1 -1
  997. package/dist/shared/normalize.js +1 -5
  998. package/dist/shared/normalize.js.map +1 -1
  999. package/dist/shared/paginate.d.ts +33 -59
  1000. package/dist/shared/paginate.d.ts.map +1 -1
  1001. package/dist/shared/paginate.js +0 -14
  1002. package/dist/shared/paginate.js.map +1 -1
  1003. package/dist/types.d.ts +234 -15
  1004. package/dist/types.d.ts.map +1 -1
  1005. package/package.json +14 -14
  1006. package/src/ast-analysis/{engine.js → engine.ts} +151 -64
  1007. package/src/ast-analysis/{metrics.js → metrics.ts} +14 -4
  1008. package/src/ast-analysis/rules/{csharp.js → csharp.ts} +11 -9
  1009. package/src/ast-analysis/rules/{go.js → go.ts} +12 -10
  1010. package/src/ast-analysis/rules/{index.js → index.ts} +14 -14
  1011. package/src/ast-analysis/rules/{java.js → java.ts} +11 -9
  1012. package/src/ast-analysis/rules/{javascript.js → javascript.ts} +11 -11
  1013. package/src/ast-analysis/rules/{php.js → php.ts} +11 -9
  1014. package/src/ast-analysis/rules/{python.js → python.ts} +11 -9
  1015. package/src/ast-analysis/rules/{ruby.js → ruby.ts} +11 -9
  1016. package/src/ast-analysis/rules/{rust.js → rust.ts} +11 -9
  1017. package/src/ast-analysis/{shared.js → shared.ts} +44 -43
  1018. package/src/ast-analysis/{visitor-utils.js → visitor-utils.ts} +49 -12
  1019. package/src/ast-analysis/{visitor.js → visitor.ts} +29 -31
  1020. package/src/ast-analysis/visitors/{ast-store-visitor.js → ast-store-visitor.ts} +44 -36
  1021. package/src/ast-analysis/visitors/{cfg-visitor.js → cfg-visitor.ts} +251 -155
  1022. package/src/ast-analysis/visitors/{complexity-visitor.js → complexity-visitor.ts} +74 -61
  1023. package/src/ast-analysis/visitors/{dataflow-visitor.js → dataflow-visitor.ts} +149 -63
  1024. package/src/cli/commands/{ast.js → ast.ts} +4 -3
  1025. package/src/cli/commands/{audit.js → audit.ts} +7 -6
  1026. package/src/cli/commands/{batch.js → batch.ts} +30 -14
  1027. package/src/cli/commands/{branch-compare.js → branch-compare.ts} +6 -4
  1028. package/src/cli/commands/{brief.js → brief.ts} +3 -2
  1029. package/src/cli/commands/{build.js → build.ts} +10 -8
  1030. package/src/cli/commands/{cfg.js → cfg.ts} +4 -3
  1031. package/src/cli/commands/{check.js → check.ts} +7 -6
  1032. package/src/cli/commands/{children.js → children.ts} +4 -3
  1033. package/src/cli/commands/{co-change.js → co-change.ts} +17 -12
  1034. package/src/cli/commands/{communities.js → communities.ts} +4 -2
  1035. package/src/cli/commands/{complexity.js → complexity.ts} +5 -4
  1036. package/src/cli/commands/{context.js → context.ts} +5 -4
  1037. package/src/cli/commands/{cycles.js → cycles.ts} +4 -3
  1038. package/src/cli/commands/{dataflow.js → dataflow.ts} +5 -4
  1039. package/src/cli/commands/{deps.js → deps.ts} +4 -3
  1040. package/src/cli/commands/{diff-impact.js → diff-impact.ts} +3 -2
  1041. package/src/cli/commands/{embed.js → embed.ts} +6 -4
  1042. package/src/cli/commands/{export.js → export.ts} +8 -7
  1043. package/src/cli/commands/{exports.js → exports.ts} +3 -2
  1044. package/src/cli/commands/{flow.js → flow.ts} +4 -3
  1045. package/src/cli/commands/{fn-impact.js → fn-impact.ts} +5 -4
  1046. package/src/cli/commands/{impact.js → impact.ts} +3 -2
  1047. package/src/cli/commands/{implementations.js → implementations.ts} +4 -3
  1048. package/src/cli/commands/{info.js → info.ts} +7 -4
  1049. package/src/cli/commands/{interfaces.js → interfaces.ts} +4 -3
  1050. package/src/cli/commands/{map.js → map.ts} +3 -2
  1051. package/src/cli/commands/{mcp.js → mcp.ts} +8 -7
  1052. package/src/cli/commands/models.ts +29 -0
  1053. package/src/cli/commands/{owners.js → owners.ts} +3 -2
  1054. package/src/cli/commands/{path.js → path.ts} +6 -5
  1055. package/src/cli/commands/{plot.js → plot.ts} +35 -14
  1056. package/src/cli/commands/{query.js → query.ts} +8 -7
  1057. package/src/cli/commands/{registry.js → registry.ts} +12 -6
  1058. package/src/cli/commands/{roles.js → roles.ts} +3 -2
  1059. package/src/cli/commands/{search.js → search.ts} +12 -15
  1060. package/src/cli/commands/{sequence.js → sequence.ts} +5 -4
  1061. package/src/cli/commands/{snapshot.js → snapshot.ts} +5 -4
  1062. package/src/cli/commands/{stats.js → stats.ts} +2 -1
  1063. package/src/cli/commands/{structure.js → structure.ts} +4 -2
  1064. package/src/cli/commands/{triage.js → triage.ts} +14 -13
  1065. package/src/cli/commands/{watch.js → watch.ts} +3 -2
  1066. package/src/cli/commands/{where.js → where.ts} +3 -2
  1067. package/src/cli/{index.js → index.ts} +40 -15
  1068. package/src/cli/shared/{open-graph.js → open-graph.ts} +5 -5
  1069. package/src/cli/shared/{options.js → options.ts} +6 -6
  1070. package/src/cli/types.ts +33 -0
  1071. package/src/{cli.js → cli.ts} +3 -2
  1072. package/src/db/{connection.js → connection.ts} +46 -37
  1073. package/src/db/{index.js → index.ts} +4 -0
  1074. package/src/db/{migrations.js → migrations.ts} +33 -11
  1075. package/src/db/{query-builder.js → query-builder.ts} +50 -65
  1076. package/src/db/repository/base.ts +192 -0
  1077. package/src/db/repository/{build-stmts.js → build-stmts.ts} +28 -22
  1078. package/src/db/repository/{cached-stmt.js → cached-stmt.ts} +8 -7
  1079. package/src/db/repository/{cfg.js → cfg.ts} +27 -18
  1080. package/src/db/repository/{cochange.js → cochange.ts} +8 -14
  1081. package/src/db/repository/{complexity.js → complexity.ts} +6 -5
  1082. package/src/db/repository/dataflow.ts +19 -0
  1083. package/src/db/repository/{edges.js → edges.ts} +57 -95
  1084. package/src/db/repository/{embeddings.js → embeddings.ts} +10 -14
  1085. package/src/db/repository/{graph-read.js → graph-read.ts} +17 -17
  1086. package/src/db/repository/{in-memory-repository.js → in-memory-repository.ts} +155 -93
  1087. package/src/db/repository/{index.js → index.ts} +2 -0
  1088. package/src/db/repository/{nodes.js → nodes.ts} +120 -106
  1089. package/src/db/repository/{sqlite-repository.js → sqlite-repository.ts} +71 -42
  1090. package/src/domain/analysis/{brief.js → brief.ts} +34 -19
  1091. package/src/domain/analysis/{context.js → context.ts} +179 -79
  1092. package/src/domain/analysis/{dependencies.js → dependencies.ts} +149 -61
  1093. package/src/domain/analysis/{exports.js → exports.ts} +101 -54
  1094. package/src/domain/analysis/{impact.js → impact.ts} +193 -131
  1095. package/src/domain/analysis/{implementations.js → implementations.ts} +13 -14
  1096. package/src/domain/analysis/{module-map.js → module-map.ts} +128 -61
  1097. package/src/domain/analysis/{roles.js → roles.ts} +24 -6
  1098. package/src/domain/analysis/{symbol-lookup.js → symbol-lookup.ts} +78 -34
  1099. package/src/domain/graph/builder/context.ts +81 -0
  1100. package/src/domain/graph/builder/helpers.ts +289 -0
  1101. package/src/domain/graph/builder/incremental.ts +618 -0
  1102. package/src/domain/graph/builder/{pipeline.js → pipeline.ts} +33 -27
  1103. package/src/domain/graph/builder/stages/{build-edges.js → build-edges.ts} +174 -56
  1104. package/src/domain/graph/builder/stages/{build-structure.js → build-structure.ts} +34 -17
  1105. package/src/domain/graph/builder/stages/{collect-files.js → collect-files.ts} +6 -8
  1106. package/src/domain/graph/builder/stages/{detect-changes.js → detect-changes.ts} +156 -123
  1107. package/src/domain/graph/builder/stages/{finalize.js → finalize.ts} +79 -41
  1108. package/src/domain/graph/builder/stages/{insert-nodes.js → insert-nodes.ts} +102 -47
  1109. package/src/domain/graph/builder/stages/{parse-files.js → parse-files.ts} +2 -4
  1110. package/src/domain/graph/builder/stages/{resolve-imports.js → resolve-imports.ts} +26 -39
  1111. package/src/domain/graph/builder/stages/{run-analyses.js → run-analyses.ts} +10 -7
  1112. package/src/domain/graph/{change-journal.js → change-journal.ts} +48 -37
  1113. package/src/domain/graph/cycles.ts +66 -0
  1114. package/src/domain/graph/{journal.js → journal.ts} +22 -26
  1115. package/src/domain/graph/{resolve.js → resolve.ts} +125 -35
  1116. package/src/domain/graph/{watcher.js → watcher.ts} +45 -19
  1117. package/src/domain/{parser.js → parser.ts} +185 -102
  1118. package/src/domain/{queries.js → queries.ts} +1 -1
  1119. package/src/domain/search/{generator.js → generator.ts} +28 -21
  1120. package/src/domain/search/{index.js → index.ts} +2 -0
  1121. package/src/domain/search/{models.js → models.ts} +62 -38
  1122. package/src/domain/search/search/{cli-formatter.js → cli-formatter.ts} +22 -21
  1123. package/src/domain/search/search/{filters.js → filters.ts} +7 -19
  1124. package/src/domain/search/search/{hybrid.js → hybrid.ts} +69 -25
  1125. package/src/domain/search/search/{keyword.js → keyword.ts} +42 -16
  1126. package/src/domain/search/search/{prepare.js → prepare.ts} +34 -13
  1127. package/src/domain/search/search/{semantic.js → semantic.ts} +73 -37
  1128. package/src/domain/search/stores/{fts5.js → fts5.ts} +8 -8
  1129. package/src/domain/search/stores/sqlite-blob.ts +15 -0
  1130. package/src/domain/search/strategies/{source.js → source.ts} +6 -1
  1131. package/src/domain/search/strategies/{structured.js → structured.ts} +12 -7
  1132. package/src/domain/search/strategies/{text-utils.js → text-utils.ts} +9 -11
  1133. package/src/extractors/{csharp.js → csharp.ts} +71 -42
  1134. package/src/extractors/{go.js → go.ts} +105 -30
  1135. package/src/extractors/{hcl.js → hcl.ts} +52 -27
  1136. package/src/extractors/{helpers.js → helpers.ts} +20 -15
  1137. package/src/extractors/{java.js → java.ts} +43 -24
  1138. package/src/extractors/{javascript.js → javascript.ts} +165 -133
  1139. package/src/extractors/{php.js → php.ts} +45 -32
  1140. package/src/extractors/{python.js → python.ts} +63 -36
  1141. package/src/extractors/{ruby.js → ruby.ts} +40 -25
  1142. package/src/extractors/{rust.js → rust.ts} +41 -31
  1143. package/src/features/{ast.js → ast.ts} +117 -72
  1144. package/src/features/{audit.js → audit.ts} +173 -54
  1145. package/src/features/batch.ts +182 -0
  1146. package/src/features/{boundaries.js → boundaries.ts} +101 -116
  1147. package/src/features/{branch-compare.js → branch-compare.ts} +153 -81
  1148. package/src/features/{cfg.js → cfg.ts} +230 -88
  1149. package/src/features/{check.js → check.ts} +143 -70
  1150. package/src/features/{cochange.js → cochange.ts} +117 -97
  1151. package/src/features/{communities.js → communities.ts} +85 -57
  1152. package/src/features/{complexity.js → complexity.ts} +256 -156
  1153. package/src/features/{dataflow.js → dataflow.ts} +242 -143
  1154. package/src/features/{export.js → export.ts} +164 -52
  1155. package/src/features/{flow.js → flow.ts} +63 -45
  1156. package/src/features/{graph-enrichment.js → graph-enrichment.ts} +138 -49
  1157. package/src/features/{manifesto.js → manifesto.ts} +138 -77
  1158. package/src/features/{owners.js → owners.ts} +88 -73
  1159. package/src/features/{sequence.js → sequence.ts} +114 -65
  1160. package/src/features/shared/{find-nodes.js → find-nodes.ts} +10 -13
  1161. package/src/features/{snapshot.js → snapshot.ts} +28 -47
  1162. package/src/features/{structure.js → structure.ts} +309 -130
  1163. package/src/features/{triage.js → triage.ts} +80 -42
  1164. package/src/graph/algorithms/{bfs.js → bfs.ts} +18 -10
  1165. package/src/graph/algorithms/{centrality.js → centrality.ts} +9 -5
  1166. package/src/graph/algorithms/{index.js → index.ts} +1 -0
  1167. package/src/graph/algorithms/leiden/LICENSE +24 -0
  1168. package/src/graph/algorithms/leiden/adapter.ts +204 -0
  1169. package/src/graph/algorithms/leiden/cpm.ts +77 -0
  1170. package/src/graph/algorithms/leiden/index.ts +185 -0
  1171. package/src/graph/algorithms/leiden/modularity.ts +122 -0
  1172. package/src/graph/algorithms/leiden/optimiser.ts +598 -0
  1173. package/src/graph/algorithms/leiden/partition.ts +479 -0
  1174. package/src/graph/algorithms/leiden/rng.ts +20 -0
  1175. package/src/graph/algorithms/louvain.ts +47 -0
  1176. package/src/graph/algorithms/{shortest-path.js → shortest-path.ts} +9 -10
  1177. package/src/graph/algorithms/{tarjan.js → tarjan.ts} +15 -14
  1178. package/src/graph/builders/{dependency.js → dependency.ts} +43 -17
  1179. package/src/graph/builders/structure.ts +58 -0
  1180. package/src/graph/builders/temporal.ts +51 -0
  1181. package/src/graph/classifiers/{risk.js → risk.ts} +52 -22
  1182. package/src/graph/classifiers/{roles.js → roles.ts} +32 -16
  1183. package/src/graph/{model.js → model.ts} +49 -58
  1184. package/src/index.cjs +1 -1
  1185. package/src/infrastructure/{config.js → config.ts} +102 -54
  1186. package/src/infrastructure/{logger.js → logger.ts} +6 -6
  1187. package/src/infrastructure/{native.js → native.ts} +16 -15
  1188. package/src/infrastructure/{registry.js → registry.ts} +48 -16
  1189. package/src/infrastructure/{test-filter.js → test-filter.ts} +1 -1
  1190. package/src/infrastructure/{update-check.js → update-check.ts} +30 -16
  1191. package/src/mcp/{middleware.js → middleware.ts} +6 -12
  1192. package/src/mcp/server.ts +249 -0
  1193. package/src/mcp/{tool-registry.js → tool-registry.ts} +16 -9
  1194. package/src/mcp/tools/{ast-query.js → ast-query.ts} +12 -1
  1195. package/src/mcp/tools/{audit.js → audit.ts} +14 -2
  1196. package/src/mcp/tools/batch-query.ts +22 -0
  1197. package/src/mcp/tools/{branch-compare.js → branch-compare.ts} +11 -1
  1198. package/src/mcp/tools/brief.ts +15 -0
  1199. package/src/mcp/tools/{cfg.js → cfg.ts} +13 -2
  1200. package/src/mcp/tools/{check.js → check.ts} +20 -3
  1201. package/src/mcp/tools/{co-changes.js → co-changes.ts} +10 -1
  1202. package/src/mcp/tools/code-owners.ts +22 -0
  1203. package/src/mcp/tools/{communities.js → communities.ts} +11 -1
  1204. package/src/mcp/tools/{complexity.js → complexity.ts} +14 -2
  1205. package/src/mcp/tools/{context.js → context.ts} +14 -1
  1206. package/src/mcp/tools/{dataflow.js → dataflow.ts} +15 -3
  1207. package/src/mcp/tools/{diff-impact.js → diff-impact.ts} +12 -1
  1208. package/src/mcp/tools/{execution-flow.js → execution-flow.ts} +13 -1
  1209. package/src/mcp/tools/{export-graph.js → export-graph.ts} +13 -3
  1210. package/src/mcp/tools/{file-deps.js → file-deps.ts} +9 -1
  1211. package/src/mcp/tools/{file-exports.js → file-exports.ts} +10 -1
  1212. package/src/mcp/tools/{find-cycles.js → find-cycles.ts} +5 -1
  1213. package/src/mcp/tools/{fn-impact.js → fn-impact.ts} +12 -1
  1214. package/src/mcp/tools/impact-analysis.ts +15 -0
  1215. package/src/mcp/tools/{implementations.js → implementations.ts} +11 -1
  1216. package/src/mcp/tools/{index.js → index.ts} +11 -3
  1217. package/src/mcp/tools/{interfaces.js → interfaces.ts} +11 -1
  1218. package/src/mcp/tools/{list-functions.js → list-functions.ts} +10 -1
  1219. package/src/mcp/tools/list-repos.ts +17 -0
  1220. package/src/mcp/tools/module-map.ts +13 -0
  1221. package/src/mcp/tools/{node-roles.js → node-roles.ts} +10 -1
  1222. package/src/mcp/tools/path.ts +24 -0
  1223. package/src/mcp/tools/{query.js → query.ts} +19 -2
  1224. package/src/mcp/tools/{semantic-search.js → semantic-search.ts} +16 -7
  1225. package/src/mcp/tools/{sequence.js → sequence.ts} +15 -2
  1226. package/src/mcp/tools/{structure.js → structure.ts} +11 -1
  1227. package/src/mcp/tools/symbol-children.ts +24 -0
  1228. package/src/mcp/tools/{triage.js → triage.ts} +20 -5
  1229. package/src/mcp/tools/{where.js → where.ts} +10 -1
  1230. package/src/presentation/{audit.js → audit.ts} +23 -6
  1231. package/src/presentation/batch.ts +49 -0
  1232. package/src/presentation/{branch-compare.js → branch-compare.ts} +59 -12
  1233. package/src/presentation/{brief.js → brief.ts} +26 -14
  1234. package/src/presentation/{cfg.js → cfg.ts} +37 -5
  1235. package/src/presentation/{check.js → check.ts} +61 -5
  1236. package/src/presentation/{cochange.js → cochange.ts} +30 -10
  1237. package/src/presentation/{colors.js → colors.ts} +8 -3
  1238. package/src/presentation/{communities.js → communities.ts} +45 -5
  1239. package/src/presentation/{complexity.js → complexity.ts} +49 -5
  1240. package/src/presentation/dataflow.ts +173 -0
  1241. package/src/presentation/{export.js → export.ts} +160 -95
  1242. package/src/presentation/{flow.js → flow.ts} +39 -8
  1243. package/src/presentation/{manifesto.js → manifesto.ts} +26 -7
  1244. package/src/presentation/{owners.js → owners.ts} +43 -6
  1245. package/src/presentation/queries-cli/{exports.js → exports.ts} +49 -8
  1246. package/src/presentation/queries-cli/{impact.js → impact.ts} +139 -23
  1247. package/src/presentation/queries-cli/{inspect.js → inspect.ts} +209 -28
  1248. package/src/presentation/queries-cli/{overview.js → overview.ts} +151 -30
  1249. package/src/presentation/queries-cli/{path.js → path.ts} +53 -9
  1250. package/src/presentation/{query.js → query.ts} +0 -4
  1251. package/src/presentation/{result-formatter.js → result-formatter.ts} +44 -48
  1252. package/src/presentation/sequence-renderer.ts +46 -0
  1253. package/src/presentation/{sequence.js → sequence.ts} +16 -5
  1254. package/src/presentation/{structure.js → structure.ts} +62 -5
  1255. package/src/presentation/{table.js → table.ts} +14 -8
  1256. package/src/presentation/{triage.js → triage.ts} +44 -8
  1257. package/src/presentation/{viewer.js → viewer.ts} +96 -54
  1258. package/src/shared/{constants.js → constants.ts} +4 -4
  1259. package/src/shared/{errors.js → errors.ts} +16 -20
  1260. package/src/shared/{file-utils.js → file-utils.ts} +55 -23
  1261. package/src/shared/{generators.js → generators.ts} +78 -31
  1262. package/src/shared/{hierarchy.js → hierarchy.ts} +12 -6
  1263. package/src/shared/{kinds.js → kinds.ts} +34 -12
  1264. package/src/shared/{normalize.js → normalize.ts} +37 -10
  1265. package/src/shared/{paginate.js → paginate.ts} +30 -19
  1266. package/src/types.ts +258 -17
  1267. package/src/vendor.d.ts +39 -0
  1268. package/dist/index.cjs.map +0 -1
  1269. package/dist/index.d.cts +0 -3
  1270. package/dist/index.d.cts.map +0 -1
  1271. package/src/cli/commands/models.js +0 -19
  1272. package/src/db/repository/base.js +0 -201
  1273. package/src/db/repository/dataflow.js +0 -17
  1274. package/src/domain/graph/builder/context.js +0 -85
  1275. package/src/domain/graph/builder/helpers.js +0 -218
  1276. package/src/domain/graph/builder/incremental.js +0 -224
  1277. package/src/domain/graph/cycles.js +0 -82
  1278. package/src/domain/search/stores/sqlite-blob.js +0 -24
  1279. package/src/features/batch.js +0 -156
  1280. package/src/graph/algorithms/louvain.js +0 -26
  1281. package/src/graph/builders/structure.js +0 -40
  1282. package/src/graph/builders/temporal.js +0 -33
  1283. package/src/mcp/server.js +0 -143
  1284. package/src/mcp/tools/batch-query.js +0 -11
  1285. package/src/mcp/tools/brief.js +0 -8
  1286. package/src/mcp/tools/code-owners.js +0 -12
  1287. package/src/mcp/tools/impact-analysis.js +0 -12
  1288. package/src/mcp/tools/list-repos.js +0 -11
  1289. package/src/mcp/tools/module-map.js +0 -6
  1290. package/src/mcp/tools/path.js +0 -12
  1291. package/src/mcp/tools/symbol-children.js +0 -14
  1292. package/src/presentation/batch.js +0 -26
  1293. package/src/presentation/dataflow.js +0 -110
  1294. package/src/presentation/sequence-renderer.js +0 -43
  1295. /package/src/cli/shared/{output.js → output.ts} +0 -0
  1296. /package/src/domain/graph/{builder.js → builder.ts} +0 -0
  1297. /package/src/extractors/{index.js → index.ts} +0 -0
  1298. /package/src/graph/builders/{index.js → index.ts} +0 -0
  1299. /package/src/graph/classifiers/{index.js → index.ts} +0 -0
  1300. /package/src/graph/{index.js → index.ts} +0 -0
  1301. /package/src/{index.js → index.ts} +0 -0
  1302. /package/src/infrastructure/{result-formatter.js → result-formatter.ts} +0 -0
  1303. /package/src/mcp/{index.js → index.ts} +0 -0
  1304. /package/src/presentation/queries-cli/{index.js → index.ts} +0 -0
  1305. /package/src/presentation/{queries-cli.js → queries-cli.ts} +0 -0
@@ -5,36 +5,36 @@ import { debug, warn } from '../../infrastructure/logger.js';
5
5
  export const CHANGE_EVENTS_FILENAME = 'change-events.ndjson';
6
6
  export const DEFAULT_MAX_BYTES = 1024 * 1024; // 1 MB
7
7
 
8
- /**
9
- * Returns the absolute path to the NDJSON change events file.
10
- */
11
- export function changeEventsPath(rootDir) {
8
+ export function changeEventsPath(rootDir: string): string {
12
9
  return path.join(rootDir, '.codegraph', CHANGE_EVENTS_FILENAME);
13
10
  }
14
11
 
15
- /**
16
- * Compare old and new symbol arrays, returning added/removed/modified sets.
17
- * Symbols are keyed on `name\0kind`. A symbol is "modified" if the same
18
- * name+kind exists in both but the line changed.
19
- *
20
- * @param {Array<{name:string, kind:string, line:number}>} oldSymbols
21
- * @param {Array<{name:string, kind:string, line:number}>} newSymbols
22
- * @returns {{ added: Array, removed: Array, modified: Array }}
23
- */
24
- export function diffSymbols(oldSymbols, newSymbols) {
25
- const oldMap = new Map();
12
+ interface SymbolEntry {
13
+ name: string;
14
+ kind: string;
15
+ line: number;
16
+ }
17
+
18
+ interface SymbolDiff {
19
+ added: Array<{ name: string; kind: string; line: number }>;
20
+ removed: Array<{ name: string; kind: string }>;
21
+ modified: Array<{ name: string; kind: string; line: number }>;
22
+ }
23
+
24
+ export function diffSymbols(oldSymbols: SymbolEntry[], newSymbols: SymbolEntry[]): SymbolDiff {
25
+ const oldMap = new Map<string, SymbolEntry>();
26
26
  for (const s of oldSymbols) {
27
27
  oldMap.set(`${s.name}\0${s.kind}`, s);
28
28
  }
29
29
 
30
- const newMap = new Map();
30
+ const newMap = new Map<string, SymbolEntry>();
31
31
  for (const s of newSymbols) {
32
32
  newMap.set(`${s.name}\0${s.kind}`, s);
33
33
  }
34
34
 
35
- const added = [];
36
- const removed = [];
37
- const modified = [];
35
+ const added: SymbolDiff['added'] = [];
36
+ const removed: SymbolDiff['removed'] = [];
37
+ const modified: SymbolDiff['modified'] = [];
38
38
 
39
39
  for (const [key, s] of newMap) {
40
40
  const old = oldMap.get(key);
@@ -54,10 +54,29 @@ export function diffSymbols(oldSymbols, newSymbols) {
54
54
  return { added, removed, modified };
55
55
  }
56
56
 
57
- /**
58
- * Assemble a single change event object.
59
- */
60
- export function buildChangeEvent(file, event, symbolDiff, counts) {
57
+ interface ChangeEvent {
58
+ ts: string;
59
+ file: string;
60
+ event: string;
61
+ symbols: unknown;
62
+ counts: {
63
+ nodes: { before: number; after: number };
64
+ edges: { added: number };
65
+ };
66
+ }
67
+
68
+ interface ChangeEventCounts {
69
+ nodesBefore?: number;
70
+ nodesAfter?: number;
71
+ edgesAdded?: number;
72
+ }
73
+
74
+ export function buildChangeEvent(
75
+ file: string,
76
+ event: string,
77
+ symbolDiff: unknown,
78
+ counts: ChangeEventCounts,
79
+ ): ChangeEvent {
61
80
  return {
62
81
  ts: new Date().toISOString(),
63
82
  file,
@@ -70,11 +89,7 @@ export function buildChangeEvent(file, event, symbolDiff, counts) {
70
89
  };
71
90
  }
72
91
 
73
- /**
74
- * Append change events as NDJSON lines to the change events file.
75
- * Creates the .codegraph directory if needed. Non-fatal on failure.
76
- */
77
- export function appendChangeEvents(rootDir, events) {
92
+ export function appendChangeEvents(rootDir: string, events: ChangeEvent[]): void {
78
93
  const filePath = changeEventsPath(rootDir);
79
94
  const dir = path.dirname(filePath);
80
95
 
@@ -86,7 +101,7 @@ export function appendChangeEvents(rootDir, events) {
86
101
  fs.appendFileSync(filePath, lines);
87
102
  debug(`Appended ${events.length} change event(s) to ${filePath}`);
88
103
  } catch (err) {
89
- warn(`Failed to append change events: ${err.message}`);
104
+ warn(`Failed to append change events: ${(err as Error).message}`);
90
105
  return;
91
106
  }
92
107
 
@@ -97,16 +112,12 @@ export function appendChangeEvents(rootDir, events) {
97
112
  }
98
113
  }
99
114
 
100
- /**
101
- * If the file exceeds maxBytes, keep the last ~half by finding
102
- * the first newline at or after the midpoint and rewriting from there.
103
- */
104
- export function rotateIfNeeded(filePath, maxBytes = DEFAULT_MAX_BYTES) {
105
- let stat;
115
+ export function rotateIfNeeded(filePath: string, maxBytes: number = DEFAULT_MAX_BYTES): void {
116
+ let stat: fs.Stats;
106
117
  try {
107
118
  stat = fs.statSync(filePath);
108
119
  } catch {
109
- return; // file doesn't exist, nothing to rotate
120
+ return;
110
121
  }
111
122
 
112
123
  if (stat.size <= maxBytes) return;
@@ -125,6 +136,6 @@ export function rotateIfNeeded(filePath, maxBytes = DEFAULT_MAX_BYTES) {
125
136
  fs.writeFileSync(filePath, kept);
126
137
  debug(`Rotated change events: ${stat.size} → ${kept.length} bytes`);
127
138
  } catch (err) {
128
- warn(`Failed to rotate change events: ${err.message}`);
139
+ warn(`Failed to rotate change events: ${(err as Error).message}`);
129
140
  }
130
141
  }
@@ -0,0 +1,66 @@
1
+ import { tarjan } from '../../graph/algorithms/tarjan.js';
2
+ import { buildDependencyGraph } from '../../graph/builders/dependency.js';
3
+ import { CodeGraph } from '../../graph/model.js';
4
+ import { loadNative } from '../../infrastructure/native.js';
5
+ import type { BetterSqlite3Database } from '../../types.js';
6
+
7
+ export function findCycles(
8
+ db: BetterSqlite3Database,
9
+ opts: { fileLevel?: boolean; noTests?: boolean } = {},
10
+ ): string[][] {
11
+ const fileLevel = opts.fileLevel !== false;
12
+ const noTests = opts.noTests || false;
13
+
14
+ const graph = buildDependencyGraph(db, { fileLevel, noTests });
15
+
16
+ const idToLabel = new Map<string, string>();
17
+ for (const [id, attrs] of graph.nodes()) {
18
+ if (fileLevel) {
19
+ idToLabel.set(id, attrs['file'] as string);
20
+ } else {
21
+ idToLabel.set(id, `${attrs['label']}|${attrs['file']}`);
22
+ }
23
+ }
24
+
25
+ const edges = graph.toEdgeArray().map((e) => ({
26
+ source: idToLabel.get(e.source) ?? e.source,
27
+ target: idToLabel.get(e.target) ?? e.target,
28
+ }));
29
+
30
+ const native = loadNative();
31
+ if (native) {
32
+ return native.detectCycles(edges) as string[][];
33
+ }
34
+
35
+ const labelGraph = new CodeGraph();
36
+ for (const { source, target } of edges) {
37
+ labelGraph.addEdge(source, target);
38
+ }
39
+ return tarjan(labelGraph);
40
+ }
41
+
42
+ export function findCyclesJS(edges: Array<{ source: string; target: string }>): string[][] {
43
+ const graph = new CodeGraph();
44
+ for (const { source, target } of edges) {
45
+ graph.addEdge(source, target);
46
+ }
47
+ return tarjan(graph);
48
+ }
49
+
50
+ export function formatCycles(cycles: string[][]): string {
51
+ if (cycles.length === 0) {
52
+ return 'No circular dependencies detected.';
53
+ }
54
+
55
+ const lines: string[] = [`Found ${cycles.length} circular dependency cycle(s):\n`];
56
+ for (let i = 0; i < cycles.length; i++) {
57
+ const cycle = cycles[i]!;
58
+ lines.push(` Cycle ${i + 1} (${cycle.length} files):`);
59
+ for (const file of cycle) {
60
+ lines.push(` -> ${file}`);
61
+ }
62
+ lines.push(` -> ${cycle[0]} (back to start)`);
63
+ lines.push('');
64
+ }
65
+ return lines.join('\n');
66
+ }
@@ -5,13 +5,16 @@ import { debug, warn } from '../../infrastructure/logger.js';
5
5
  export const JOURNAL_FILENAME = 'changes.journal';
6
6
  const HEADER_PREFIX = '# codegraph-journal v1 ';
7
7
 
8
- /**
9
- * Read and validate the change journal.
10
- * Returns { valid, timestamp, changed[], removed[] } or { valid: false }.
11
- */
12
- export function readJournal(rootDir) {
8
+ interface JournalResult {
9
+ valid: boolean;
10
+ timestamp?: number;
11
+ changed?: string[];
12
+ removed?: string[];
13
+ }
14
+
15
+ export function readJournal(rootDir: string): JournalResult {
13
16
  const journalPath = path.join(rootDir, '.codegraph', JOURNAL_FILENAME);
14
- let content;
17
+ let content: string;
15
18
  try {
16
19
  content = fs.readFileSync(journalPath, 'utf-8');
17
20
  } catch {
@@ -19,24 +22,24 @@ export function readJournal(rootDir) {
19
22
  }
20
23
 
21
24
  const lines = content.split('\n');
22
- if (lines.length === 0 || !lines[0].startsWith(HEADER_PREFIX)) {
25
+ if (lines.length === 0 || !lines[0]!.startsWith(HEADER_PREFIX)) {
23
26
  debug('Journal has malformed or missing header');
24
27
  return { valid: false };
25
28
  }
26
29
 
27
- const timestamp = Number(lines[0].slice(HEADER_PREFIX.length).trim());
30
+ const timestamp = Number(lines[0]!.slice(HEADER_PREFIX.length).trim());
28
31
  if (!Number.isFinite(timestamp) || timestamp <= 0) {
29
32
  debug('Journal has invalid timestamp');
30
33
  return { valid: false };
31
34
  }
32
35
 
33
- const changed = [];
34
- const removed = [];
35
- const seenChanged = new Set();
36
- const seenRemoved = new Set();
36
+ const changed: string[] = [];
37
+ const removed: string[] = [];
38
+ const seenChanged = new Set<string>();
39
+ const seenRemoved = new Set<string>();
37
40
 
38
41
  for (let i = 1; i < lines.length; i++) {
39
- const line = lines[i].trim();
42
+ const line = lines[i]!.trim();
40
43
  if (!line || line.startsWith('#')) continue;
41
44
 
42
45
  if (line.startsWith('DELETED ')) {
@@ -56,11 +59,10 @@ export function readJournal(rootDir) {
56
59
  return { valid: true, timestamp, changed, removed };
57
60
  }
58
61
 
59
- /**
60
- * Append changed/deleted paths to the journal.
61
- * Creates the journal with a header if it doesn't exist.
62
- */
63
- export function appendJournalEntries(rootDir, entries) {
62
+ export function appendJournalEntries(
63
+ rootDir: string,
64
+ entries: Array<{ file: string; deleted?: boolean }>,
65
+ ): void {
64
66
  const dir = path.join(rootDir, '.codegraph');
65
67
  const journalPath = path.join(dir, JOURNAL_FILENAME);
66
68
 
@@ -68,7 +70,6 @@ export function appendJournalEntries(rootDir, entries) {
68
70
  fs.mkdirSync(dir, { recursive: true });
69
71
  }
70
72
 
71
- // If journal doesn't exist, create with a placeholder header
72
73
  if (!fs.existsSync(journalPath)) {
73
74
  fs.writeFileSync(journalPath, `${HEADER_PREFIX}0\n`);
74
75
  }
@@ -81,11 +82,7 @@ export function appendJournalEntries(rootDir, entries) {
81
82
  fs.appendFileSync(journalPath, `${lines.join('\n')}\n`);
82
83
  }
83
84
 
84
- /**
85
- * Write a fresh journal header after a successful build.
86
- * Atomic: write to temp file then rename.
87
- */
88
- export function writeJournalHeader(rootDir, timestamp) {
85
+ export function writeJournalHeader(rootDir: string, timestamp: number): void {
89
86
  const dir = path.join(rootDir, '.codegraph');
90
87
  const journalPath = path.join(dir, JOURNAL_FILENAME);
91
88
  const tmpPath = `${journalPath}.tmp`;
@@ -98,8 +95,7 @@ export function writeJournalHeader(rootDir, timestamp) {
98
95
  fs.writeFileSync(tmpPath, `${HEADER_PREFIX}${timestamp}\n`);
99
96
  fs.renameSync(tmpPath, journalPath);
100
97
  } catch (err) {
101
- warn(`Failed to write journal header: ${err.message}`);
102
- // Clean up temp file if rename failed
98
+ warn(`Failed to write journal header: ${(err as Error).message}`);
103
99
  try {
104
100
  fs.unlinkSync(tmpPath);
105
101
  } catch {
@@ -2,11 +2,13 @@ import fs from 'node:fs';
2
2
  import path from 'node:path';
3
3
  import { loadNative } from '../../infrastructure/native.js';
4
4
  import { normalizePath } from '../../shared/constants.js';
5
+ import type { BareSpecifier, BatchResolvedMap, ImportBatchItem, PathAliases } from '../../types.js';
5
6
 
6
7
  // ── package.json exports resolution ─────────────────────────────────
7
8
 
8
9
  /** Cache: packageDir → parsed exports field (or null) */
9
- const _exportsCache = new Map();
10
+ // biome-ignore lint/suspicious/noExplicitAny: package.json exports field has no fixed schema
11
+ const _exportsCache: Map<string, any> = new Map();
10
12
 
11
13
  /**
12
14
  * Parse a bare specifier into { packageName, subpath }.
@@ -14,8 +16,8 @@ const _exportsCache = new Map();
14
16
  * Plain: "pkg/sub" → { packageName: "pkg", subpath: "./sub" }
15
17
  * No sub: "pkg" → { packageName: "pkg", subpath: "." }
16
18
  */
17
- export function parseBareSpecifier(specifier) {
18
- let packageName, rest;
19
+ export function parseBareSpecifier(specifier: string): BareSpecifier | null {
20
+ let packageName: string, rest: string;
19
21
  if (specifier.startsWith('@')) {
20
22
  const parts = specifier.split('/');
21
23
  if (parts.length < 2) return null;
@@ -38,7 +40,7 @@ export function parseBareSpecifier(specifier) {
38
40
  * Find the package directory for a given package name, starting from rootDir.
39
41
  * Walks up node_modules directories.
40
42
  */
41
- function findPackageDir(packageName, rootDir) {
43
+ function findPackageDir(packageName: string, rootDir: string): string | null {
42
44
  let dir = rootDir;
43
45
  while (true) {
44
46
  const candidate = path.join(dir, 'node_modules', packageName);
@@ -53,7 +55,8 @@ function findPackageDir(packageName, rootDir) {
53
55
  * Read and cache the exports field from a package's package.json.
54
56
  * Returns the exports value or null.
55
57
  */
56
- function getPackageExports(packageDir) {
58
+ // biome-ignore lint/suspicious/noExplicitAny: package.json exports field has no fixed schema
59
+ function getPackageExports(packageDir: string): any {
57
60
  if (_exportsCache.has(packageDir)) return _exportsCache.get(packageDir);
58
61
  try {
59
62
  const raw = fs.readFileSync(path.join(packageDir, 'package.json'), 'utf8');
@@ -68,13 +71,13 @@ function getPackageExports(packageDir) {
68
71
  }
69
72
 
70
73
  /** Condition names to try, in priority order. */
71
- const CONDITION_ORDER = ['import', 'require', 'default'];
74
+ const CONDITION_ORDER: readonly string[] = ['import', 'require', 'default'];
72
75
 
73
76
  /**
74
77
  * Resolve a conditional exports value (string, object with conditions, or array).
75
78
  * Returns a string target or null.
76
79
  */
77
- function resolveCondition(value) {
80
+ function resolveCondition(value: unknown): string | null {
78
81
  if (typeof value === 'string') return value;
79
82
  if (Array.isArray(value)) {
80
83
  for (const item of value) {
@@ -85,7 +88,8 @@ function resolveCondition(value) {
85
88
  }
86
89
  if (value && typeof value === 'object') {
87
90
  for (const cond of CONDITION_ORDER) {
88
- if (cond in value) return resolveCondition(value[cond]);
91
+ if (cond in (value as Record<string, unknown>))
92
+ return resolveCondition((value as Record<string, unknown>)[cond]);
89
93
  }
90
94
  return null;
91
95
  }
@@ -96,7 +100,7 @@ function resolveCondition(value) {
96
100
  * Match a subpath against an exports map key that uses a wildcard pattern.
97
101
  * Key: "./lib/*" matches subpath "./lib/foo/bar" → substitution "foo/bar"
98
102
  */
99
- function matchSubpathPattern(pattern, subpath) {
103
+ function matchSubpathPattern(pattern: string, subpath: string): string | null {
100
104
  const starIdx = pattern.indexOf('*');
101
105
  if (starIdx === -1) return null;
102
106
  const prefix = pattern.slice(0, starIdx);
@@ -112,7 +116,7 @@ function matchSubpathPattern(pattern, subpath) {
112
116
  * Resolve a bare specifier through the package.json exports field.
113
117
  * Returns an absolute path or null.
114
118
  */
115
- export function resolveViaExports(specifier, rootDir) {
119
+ export function resolveViaExports(specifier: string, rootDir: string): string | null {
116
120
  const parsed = parseBareSpecifier(specifier);
117
121
  if (!parsed) return null;
118
122
 
@@ -189,25 +193,26 @@ export function resolveViaExports(specifier, rootDir) {
189
193
  }
190
194
 
191
195
  /** Clear the exports cache (for testing). */
192
- export function clearExportsCache() {
196
+ export function clearExportsCache(): void {
193
197
  _exportsCache.clear();
194
198
  }
195
199
 
196
200
  // ── Monorepo workspace resolution ───────────────────────────────────
197
201
 
198
202
  /** Cache: rootDir → Map<packageName, { dir, entry }> */
199
- const _workspaceCache = new Map();
203
+ const _workspaceCache: Map<string, Map<string, { dir: string; entry: string | null }>> = new Map();
200
204
 
201
205
  /** Set of resolved relative paths that came from workspace resolution. */
202
- const _workspaceResolvedPaths = new Set();
206
+ const _workspaceResolvedPaths: Set<string> = new Set();
203
207
 
204
208
  /**
205
209
  * Set the workspace map for a given rootDir.
206
210
  * Called by the build pipeline after detecting workspaces.
207
- * @param {string} rootDir
208
- * @param {Map<string, { dir: string, entry: string|null }>} map
209
211
  */
210
- export function setWorkspaces(rootDir, map) {
212
+ export function setWorkspaces(
213
+ rootDir: string,
214
+ map: Map<string, { dir: string; entry: string | null }>,
215
+ ): void {
211
216
  _workspaceCache.set(rootDir, map);
212
217
  _workspaceResolvedPaths.clear();
213
218
  _exportsCache.clear();
@@ -216,7 +221,7 @@ export function setWorkspaces(rootDir, map) {
216
221
  /**
217
222
  * Get workspace packages for a rootDir. Returns empty map if not set.
218
223
  */
219
- function getWorkspaces(rootDir) {
224
+ function getWorkspaces(rootDir: string): Map<string, { dir: string; entry: string | null }> {
220
225
  return _workspaceCache.get(rootDir) || new Map();
221
226
  }
222
227
 
@@ -226,9 +231,9 @@ function getWorkspaces(rootDir) {
226
231
  * For "@myorg/utils" → finds the workspace package dir → resolves entry point.
227
232
  * For "@myorg/utils/sub" → finds package dir → tries exports field → filesystem probe.
228
233
  *
229
- * @returns {string|null} Absolute path to resolved file, or null.
234
+ * @returns Absolute path to resolved file, or null.
230
235
  */
231
- export function resolveViaWorkspace(specifier, rootDir) {
236
+ export function resolveViaWorkspace(specifier: string, rootDir: string): string | null {
232
237
  const parsed = parseBareSpecifier(specifier);
233
238
  if (!parsed) return null;
234
239
 
@@ -293,23 +298,77 @@ export function resolveViaWorkspace(specifier, rootDir) {
293
298
  * Check if a resolved relative path was resolved via workspace detection.
294
299
  * Used by computeConfidence to assign high confidence (0.95) to workspace imports.
295
300
  */
296
- export function isWorkspaceResolved(resolvedPath) {
301
+ export function isWorkspaceResolved(resolvedPath: string): boolean {
297
302
  return _workspaceResolvedPaths.has(resolvedPath);
298
303
  }
299
304
 
300
305
  /** Clear workspace caches (for testing). */
301
- export function clearWorkspaceCache() {
306
+ export function clearWorkspaceCache(): void {
302
307
  _workspaceCache.clear();
303
308
  _workspaceResolvedPaths.clear();
304
309
  }
305
310
 
311
+ // ── JS → TS extension remap cache ───────────────────────────────────
312
+
313
+ /** Cache: absolute .js path → remapped .ts/.tsx relative path (or null if no TS file exists). */
314
+ const _jsToTsCache: Map<string, string | null> = new Map();
315
+
316
+ /**
317
+ * If `resolved` ends with `.js`, check whether a `.ts` or `.tsx` counterpart
318
+ * exists on disk and return its relative path from `rootDir`. Results are
319
+ * cached for the lifetime of the process to avoid repeated stat calls in the
320
+ * batch hot path.
321
+ *
322
+ * The cache stores **absolute** `.ts`/`.tsx` paths (or `null`) so that the
323
+ * same cached entry is correct regardless of which `rootDir` is passed — the
324
+ * relative path is computed on every cache hit. This is important for MCP
325
+ * `--multi-repo` mode where the same absolute `.js` file may be resolved with
326
+ * different `rootDir` values.
327
+ *
328
+ * Always returns a normalised relative path from `rootDir` — both the remap
329
+ * branch and the fallback compute `path.relative(rootDir, abs)` to ensure a
330
+ * consistent format regardless of whether the native resolver returned an
331
+ * absolute or relative path.
332
+ */
333
+ function remapJsToTs(resolved: string, rootDir: string): string {
334
+ if (!resolved.endsWith('.js')) return resolved;
335
+ const abs = path.resolve(rootDir, resolved);
336
+ if (_jsToTsCache.has(abs)) {
337
+ const cachedAbs = _jsToTsCache.get(abs);
338
+ return cachedAbs
339
+ ? normalizePath(path.relative(rootDir, cachedAbs))
340
+ : normalizePath(path.relative(rootDir, abs));
341
+ }
342
+ const tsAbs = abs.replace(/\.js$/, '.ts');
343
+ if (fs.existsSync(tsAbs)) {
344
+ _jsToTsCache.set(abs, tsAbs);
345
+ return normalizePath(path.relative(rootDir, tsAbs));
346
+ }
347
+ const tsxAbs = abs.replace(/\.js$/, '.tsx');
348
+ if (fs.existsSync(tsxAbs)) {
349
+ _jsToTsCache.set(abs, tsxAbs);
350
+ return normalizePath(path.relative(rootDir, tsxAbs));
351
+ }
352
+ _jsToTsCache.set(abs, null);
353
+ // Normalise fallback to relative to stay consistent with the remap branch —
354
+ // avoids a format mismatch if the native resolver ever returns an absolute path.
355
+ return normalizePath(path.relative(rootDir, abs));
356
+ }
357
+
358
+ /** Clear the .js → .ts remap cache (for testing). */
359
+ export function clearJsToTsCache(): void {
360
+ _jsToTsCache.clear();
361
+ }
362
+
306
363
  // ── Alias format conversion ─────────────────────────────────────────
307
364
 
308
365
  /**
309
366
  * Convert JS alias format { baseUrl, paths: { pattern: [targets] } }
310
367
  * to native format { baseUrl, paths: [{ pattern, targets }] }.
311
368
  */
312
- export function convertAliasesForNative(aliases) {
369
+ export function convertAliasesForNative(
370
+ aliases: PathAliases | null | undefined,
371
+ ): { baseUrl: string; paths: { pattern: string; targets: string[] }[] } | null {
313
372
  if (!aliases) return null;
314
373
  return {
315
374
  baseUrl: aliases.baseUrl || '',
@@ -322,7 +381,11 @@ export function convertAliasesForNative(aliases) {
322
381
 
323
382
  // ── JS fallback implementations ─────────────────────────────────────
324
383
 
325
- function resolveViaAlias(importSource, aliases, _rootDir) {
384
+ function resolveViaAlias(
385
+ importSource: string,
386
+ aliases: PathAliases,
387
+ _rootDir: string,
388
+ ): string | null {
326
389
  if (aliases.baseUrl && !importSource.startsWith('.') && !importSource.startsWith('/')) {
327
390
  const candidate = path.resolve(aliases.baseUrl, importSource);
328
391
  for (const ext of ['', '.ts', '.tsx', '.js', '.jsx', '/index.ts', '/index.tsx', '/index.js']) {
@@ -355,7 +418,12 @@ function resolveViaAlias(importSource, aliases, _rootDir) {
355
418
  return null;
356
419
  }
357
420
 
358
- function resolveImportPathJS(fromFile, importSource, rootDir, aliases) {
421
+ function resolveImportPathJS(
422
+ fromFile: string,
423
+ importSource: string,
424
+ rootDir: string,
425
+ aliases: PathAliases | null,
426
+ ): string {
359
427
  if (!importSource.startsWith('.') && aliases) {
360
428
  const aliasResolved = resolveViaAlias(importSource, aliases, rootDir);
361
429
  if (aliasResolved) return normalizePath(path.relative(rootDir, aliasResolved));
@@ -404,7 +472,11 @@ function resolveImportPathJS(fromFile, importSource, rootDir, aliases) {
404
472
  return normalizePath(path.relative(rootDir, resolved));
405
473
  }
406
474
 
407
- function computeConfidenceJS(callerFile, targetFile, importedFrom) {
475
+ function computeConfidenceJS(
476
+ callerFile: string,
477
+ targetFile: string,
478
+ importedFrom: string | null,
479
+ ): number {
408
480
  if (!targetFile || !callerFile) return 0.3;
409
481
  if (callerFile === targetFile) return 1.0;
410
482
  if (importedFrom === targetFile) return 1.0;
@@ -423,7 +495,12 @@ function computeConfidenceJS(callerFile, targetFile, importedFrom) {
423
495
  * Resolve a single import path.
424
496
  * Tries native, falls back to JS.
425
497
  */
426
- export function resolveImportPath(fromFile, importSource, rootDir, aliases) {
498
+ export function resolveImportPath(
499
+ fromFile: string,
500
+ importSource: string,
501
+ rootDir: string,
502
+ aliases: PathAliases | null,
503
+ ): string {
427
504
  const native = loadNative();
428
505
  if (native) {
429
506
  try {
@@ -433,7 +510,11 @@ export function resolveImportPath(fromFile, importSource, rootDir, aliases) {
433
510
  rootDir,
434
511
  convertAliasesForNative(aliases),
435
512
  );
436
- return normalizePath(path.normalize(result));
513
+ const normalized = normalizePath(path.normalize(result));
514
+ // The native resolver's .js → .ts remap fails when paths contain
515
+ // unresolved ".." components (PathBuf::components().collect() doesn't
516
+ // collapse parent refs). Apply the remap on the JS side as a fallback.
517
+ return remapJsToTs(normalized, rootDir);
437
518
  } catch {
438
519
  // fall through to JS
439
520
  }
@@ -445,7 +526,11 @@ export function resolveImportPath(fromFile, importSource, rootDir, aliases) {
445
526
  * Compute proximity-based confidence for call resolution.
446
527
  * Tries native, falls back to JS.
447
528
  */
448
- export function computeConfidence(callerFile, targetFile, importedFrom) {
529
+ export function computeConfidence(
530
+ callerFile: string,
531
+ targetFile: string,
532
+ importedFrom: string | null,
533
+ ): number {
449
534
  const native = loadNative();
450
535
  if (native) {
451
536
  try {
@@ -460,12 +545,13 @@ export function computeConfidence(callerFile, targetFile, importedFrom) {
460
545
  /**
461
546
  * Batch resolve multiple imports in a single native call.
462
547
  * Returns Map<"fromFile|importSource", resolvedPath> or null when native unavailable.
463
- * @param {Array} inputs - Array of { fromFile, importSource }
464
- * @param {string} rootDir - Project root
465
- * @param {object} aliases - Path aliases
466
- * @param {string[]} [knownFiles] - Optional file paths for FS cache (avoids syscalls)
467
548
  */
468
- export function resolveImportsBatch(inputs, rootDir, aliases, knownFiles) {
549
+ export function resolveImportsBatch(
550
+ inputs: ImportBatchItem[],
551
+ rootDir: string,
552
+ aliases: PathAliases | null,
553
+ knownFiles?: string[] | null,
554
+ ): BatchResolvedMap | null {
469
555
  const native = loadNative();
470
556
  if (!native) return null;
471
557
 
@@ -480,9 +566,13 @@ export function resolveImportsBatch(inputs, rootDir, aliases, knownFiles) {
480
566
  convertAliasesForNative(aliases),
481
567
  knownFiles || null,
482
568
  );
483
- const map = new Map();
569
+ const map: BatchResolvedMap = new Map();
484
570
  for (const r of results) {
485
- map.set(`${r.fromFile}|${r.importSource}`, normalizePath(path.normalize(r.resolvedPath)));
571
+ const normalized = normalizePath(path.normalize(r.resolvedPath));
572
+ // Native resolver's .js → .ts remap fails on unnormalized paths —
573
+ // apply JS-side fallback (same fix as resolveImportPath).
574
+ const resolved = remapJsToTs(normalized, rootDir);
575
+ map.set(`${r.fromFile}|${r.importSource}`, resolved);
486
576
  }
487
577
  return map;
488
578
  } catch {